@ng-atomic/common 17.10.0 → 17.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/interceptors/authorization/authorization.interceptor.mjs +9 -3
- package/esm2022/interceptors/interceptors.module.mjs +9 -9
- package/esm2022/services/app/app.service.mjs +3 -1
- package/esm2022/services/auth/auth.service.mjs +3 -2
- package/esm2022/services/initializer/index.mjs +2 -0
- package/esm2022/services/initializer/initializer.service.mjs +44 -0
- package/esm2022/services/initializer/ng-atomic-common-services-initializer.mjs +5 -0
- package/esm2022/services/root-property/index.mjs +2 -1
- package/esm2022/services/root-property/root-property.di.mjs +14 -0
- package/esm2022/services/root-property/root-property.service.mjs +47 -15
- package/esm2022/services/side-nav-mode/side-nav-mode.service.mjs +1 -1
- package/esm2022/services/ui/ui.helpers.mjs +15 -6
- package/esm2022/stores/entities/di.mjs +3 -3
- package/esm2022/utils/inject/inject.mjs +26 -8
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +9 -3
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors.mjs +10 -10
- package/fesm2022/ng-atomic-common-interceptors.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-app.mjs +2 -0
- package/fesm2022/ng-atomic-common-services-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs +3 -2
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-initializer.mjs +50 -0
- package/fesm2022/ng-atomic-common-services-initializer.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-root-property.mjs +58 -15
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +15 -6
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs +2 -2
- package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils.mjs +26 -8
- package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
- package/interceptors/authorization/authorization.interceptor.d.ts +3 -2
- package/interceptors/interceptors.module.d.ts +4 -0
- package/package.json +8 -2
- package/services/app/app.service.d.ts +2 -0
- package/services/auth/auth.service.d.ts +1 -0
- package/services/initializer/index.d.ts +1 -0
- package/services/initializer/initializer.service.d.ts +22 -0
- package/services/root-property/index.d.ts +1 -0
- package/services/root-property/root-property.di.d.ts +6 -0
- package/services/root-property/root-property.service.d.ts +7 -5
- package/services/side-nav-mode/side-nav-mode.service.d.ts +2 -1
- package/services/ui/ui.helpers.d.ts +6 -4
- package/stores/entities/di.d.ts +11 -3
- package/utils/inject/inject.d.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ENVIRONMENT_INITIALIZER, ElementRef, Injectable, PLATFORM_ID, Provider, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig } from '@ng-atomic/common/services/ui';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (_, context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'large': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'xLarge': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n }\n };\n }, ['root', 'properties']);\n readonly config = RootPropertyService.Config.inject();\n\n readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n for (const [key, value] of Object.entries(this.config?.() ?? {})) {\n document.documentElement.style.setProperty(key, value);\n }\n }\n });\n }\n}\n\nexport function provideRootProperty(\n resolverFactoryFactory?: Parameters<typeof RootPropertyService.Config.provide>[0],\n): Provider[] {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => {\n return () => inject(RootPropertyService);\n },\n multi: true,\n },\n RootPropertyService.Config.provide(resolverFactoryFactory),\n ]\n}\n\n@Directive({ standalone: true, selector: '[atomicStyle]' })\nexport class NgAtomicStyleDirective {\n readonly #el = inject(ElementRef);\n readonly platformId = inject(PLATFORM_ID);\n\n constructor(private rootPropertyService: RootPropertyService) {\n effect(() => {\n for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {\n this.#el.nativeElement.style.setProperty(key, value);\n }\n });\n }\n}\n\n\n@Injectable({providedIn: 'root'})\nexport class RootPropertyGuard {\n\treadonly properties = RootPropertyService.Config.inject();\n\treadonly properties$ = toObservable(this.properties);\n\treadonly platformId = inject(PLATFORM_ID);\n\n\tcanActivate(): Observable<boolean> {\n\t\tif (isPlatformServer(this.platformId)) return of(null);\t\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => properties['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAOa,mBAAmB,CAAA;AACd,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,UAAU,CAAC,MAAK;AACvC,QAAA,OAAO,CAAC,CAAC,EAAE,OAAO,KAAI;YACpB,QAAQ,OAAO,CAAC,UAAU;gBACxB,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;AACF,gBAAA,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,MAAM;AACtB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,kEAAkE;AACtF,oBAAA,kBAAkB,EAAE,0DAA0D;AAC9E,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;gBACF,KAAK,OAAO,EAAE,OAAO;AACnB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,kGAAkG;AACtH,oBAAA,kBAAkB,EAAE,0EAA0E;AAC9F,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;gBACF,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,0FAA0F;AAC9G,oBAAA,kBAAkB,EAAE,kEAAkE;AACtF,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;AACH,aAAA;AACH,SAAC,CAAC;KACH,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAA;AAK3B,IAAA,WAAA,GAAA;AAJS,QAAA,IAAA,CAAA,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAE7C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAGxC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,EAAE;oBAChE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;8GAxEU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;AA4E5B,SAAU,mBAAmB,CACjC,sBAAiF,EAAA;IAEjF,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,MAAK;AACf,gBAAA,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;aAC1C;AACD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC;KAC3D,CAAA;AACH,CAAC;MAGY,sBAAsB,CAAA;AACxB,IAAA,GAAG,CAAsB;AAGlC,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAHnD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAGxC,MAAM,CAAC,MAAK;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,EAAE;AACpF,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;8GAVU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;;MAgB7C,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU1C,KAAA;IARA,WAAW,GAAA;AACV,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC3B,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,oBAAoB,CAAC,KAAM,SAAS,CAAC,EACrE,KAAK,CAAC,GAAG,CAAC,EACV,GAAG,CAAC,MAAM,IAAI,CAAC,CACf,CAAC;KACF;8GAZW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;AChHhC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.di.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ElementRef, Injectable, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig, UIContext } from '@ng-atomic/common/services/ui';\nimport { MaterialCssVarsService } from 'angular-material-css-vars';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'large': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'xLarge': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n }\n };\n }, ['root', 'properties']);\n static provideColorSchema1() {\n return RootPropertyService.Config.provide(() => {\n return (config) => ({\n ...config,\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--accent-color': '#d8ab12',\n '--background-color': '#ffffff',\n '--on-background-color': '#404040',\n '--menu-background-color': '#404040',\n '--menu-on-background-color': '#f0f0f0',\n '--navigator-background-color': '#404040',\n '--navigator-on-background-color': '#f0f0f0',\n '--loading-primary-color': 'var(--accent-color)',\n '--background-primary-color': 'var(--primary-color)',\n '--background-on-primary-color': 'var(--on-primary-color)',\n '--selection-color': 'var(--background-color)',\n '--selection-background-color': 'var(--on-background-color)',\n });\n });\n }\n\n static provideMenuWidthForIconButtonMenu() {\n return RootPropertyService.Config.provide(() => {\n const getMenuWidth = (context: UIContext) => {\n switch (context.breakpoint) {\n case 'xSmall': return '220px';\n case 'small':\n case 'medium':\n case 'large':\n case 'xLarge': return '64px';\n }\n }\n return (config, context) => ({\n ...config,\n '--menu-width': getMenuWidth(context),\n });\n });\n }\n\n readonly config = RootPropertyService.Config.inject();\n\n readonly platformId = inject(PLATFORM_ID);\n readonly matCssVar = inject(MaterialCssVarsService);\n\n constructor() {\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n for (const [key, value] of Object.entries(this.config?.() ?? {})) {\n document.documentElement.style.setProperty(key, value);\n }\n }\n this.matCssVar.setPrimaryColor(this.config()['--primary-color']);\n this.matCssVar.setAccentColor(this.config()['--accent-color']);\n this.matCssVar.setWarnColor(this.config()['--warn-color']);\n this.matCssVar.setDarkTheme(false);\n });\n }\n}\n\n@Directive({ standalone: true, selector: '[atomicStyle]' })\nexport class NgAtomicStyleDirective {\n readonly #el = inject(ElementRef);\n readonly platformId = inject(PLATFORM_ID);\n\n constructor(private rootPropertyService: RootPropertyService) {\n effect(() => {\n for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {\n this.#el.nativeElement.style.setProperty(key, value);\n }\n });\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class RootPropertyGuard {\n\treadonly properties = RootPropertyService.Config.inject();\n\treadonly properties$ = toObservable(this.properties);\n\treadonly platformId = inject(PLATFORM_ID);\n\n\tcanActivate(): Observable<boolean> {\n\t\tif (isPlatformServer(this.platformId)) return of(null);\t\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => properties['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}\n","import { ENVIRONMENT_INITIALIZER, inject } from \"@angular/core\";\nimport { provideMaterialCssVars } from \"angular-material-css-vars\";\nimport { RootPropertyService } from \"./root-property.service\";\n\nexport function provideRootProperty() {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => () => inject(RootPropertyService),\n multi: true,\n },\n provideMaterialCssVars({}),\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-side-nav-mode.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/side-nav-mode.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SideNavModeService {\n readonly sideNavMode = signal('collapsed');\n\n /** @deprecated use toggle() instead */\n toggleSideNav() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n toggle() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n collapse() {\n this.sideNavMode.set('collapsed');\n }\n\n expand() {\n this.sideNavMode.set('expanded');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-side-nav-mode.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/side-nav-mode.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\nexport type SideNavMode = 'expanded' | 'collapsed';\n\n@Injectable({ providedIn: 'root' })\nexport class SideNavModeService {\n readonly sideNavMode = signal<SideNavMode>('collapsed');\n\n /** @deprecated use toggle() instead */\n toggleSideNav() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n toggle() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n collapse() {\n this.sideNavMode.set('collapsed');\n }\n\n expand() {\n this.sideNavMode.set('expanded');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAc,WAAW,CAAC,CAAC;AAkBzD,KAAA;;IAfC,aAAa,GAAA;QACX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC;KACpF;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC;KACpF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACnC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;8GAlBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACJlC;;AAEG;;;;"}
|
|
@@ -164,6 +164,14 @@ function injectUiContext() {
|
|
|
164
164
|
return inject(UiService).uiContext;
|
|
165
165
|
}
|
|
166
166
|
const UI_CONFIG_REDUCER = new InjectionToken('UI_CONFIG_REDUCER');
|
|
167
|
+
const wrap = (defaultReducerFactory) => {
|
|
168
|
+
return (injector, hostInjector) => {
|
|
169
|
+
const reducer = defaultReducerFactory(injector, hostInjector);
|
|
170
|
+
return (_, context) => {
|
|
171
|
+
return reducer(context);
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
};
|
|
167
175
|
function call(signalOrValue) {
|
|
168
176
|
return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;
|
|
169
177
|
}
|
|
@@ -197,7 +205,7 @@ function provideUiConfig(reducerFactory, path = [], name = 'name') {
|
|
|
197
205
|
}
|
|
198
206
|
function injectRootConfig(paths = []) {
|
|
199
207
|
const uiContext = injectUiContext();
|
|
200
|
-
const factories =
|
|
208
|
+
const factories = injectReducerFactories(paths);
|
|
201
209
|
const hostInjector = inject(Injector);
|
|
202
210
|
const reducers = factories.map(factory => {
|
|
203
211
|
return runInInjectionContext(hostInjector, () => factory(hostInjector));
|
|
@@ -218,12 +226,13 @@ function injectUiConfig(paths = []) {
|
|
|
218
226
|
return scoped(rootConfig, paths);
|
|
219
227
|
}
|
|
220
228
|
function makeConfig(defaultUseFactory, path) {
|
|
229
|
+
const factory = wrap(defaultUseFactory);
|
|
221
230
|
return {
|
|
222
|
-
provide
|
|
223
|
-
useFactory ??=
|
|
231
|
+
provide(useFactory, label = useFactory ? 'custom' : 'default') {
|
|
232
|
+
useFactory ??= factory;
|
|
224
233
|
return provideUiConfig(useFactory, path, `[${path.join('.')}] ${label}`);
|
|
225
234
|
},
|
|
226
|
-
inject
|
|
235
|
+
inject() {
|
|
227
236
|
return injectUiConfig(path);
|
|
228
237
|
},
|
|
229
238
|
};
|
|
@@ -231,7 +240,7 @@ function makeConfig(defaultUseFactory, path) {
|
|
|
231
240
|
function injectReducers() {
|
|
232
241
|
return injectDeepMulti(UI_CONFIG_REDUCER);
|
|
233
242
|
}
|
|
234
|
-
function
|
|
243
|
+
function injectReducerFactories(path = []) {
|
|
235
244
|
return injectReducers().filter(factory => {
|
|
236
245
|
return getReducerPath(factory).every((p, i) => path[i] === p);
|
|
237
246
|
});
|
|
@@ -272,5 +281,5 @@ function debugInjector(injector = inject(Injector)) {
|
|
|
272
281
|
* Generated bundle index. Do not edit.
|
|
273
282
|
*/
|
|
274
283
|
|
|
275
|
-
export { NavActionId, UI_CONFIG_REDUCER, UiService, call, debugInjector, injectBreakpoint, injectDeepMulti, injectIsMobile, injectIsRootPage, injectIsRootPage$, injectNavStartActions, injectRootConfig, injectSideAppNavStartActions, injectUiConfig, injectUiContext, makeConfig, provideUiConfig, scoped };
|
|
284
|
+
export { NavActionId, UI_CONFIG_REDUCER, UiService, call, debugInjector, injectBreakpoint, injectDeepMulti, injectIsMobile, injectIsRootPage, injectIsRootPage$, injectNavStartActions, injectRootConfig, injectSideAppNavStartActions, injectUiConfig, injectUiContext, makeConfig, provideUiConfig, scoped, wrap };
|
|
276
285
|
//# sourceMappingURL=ng-atomic-common-services-ui.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-ui.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.helpers.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ng-atomic-common-services-ui.ts"],"sourcesContent":["\nimport { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart } from '@angular/router';\nimport { filter, map, startWith } from 'rxjs';\nimport { isPlatformBrowser } from '@angular/common';\nimport { RouterService } from '@ng-atomic/common/services/router';\nimport { Breakpoint, BreakpointService } from '@ng-atomic/common/services/breakpoint';\n\nexport interface UIContext {\n breakpoint: Breakpoint;\n paths: any[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiService {\n readonly breakpoint = inject(BreakpointService);\n readonly router = inject(RouterService);\n readonly platformId = inject(PLATFORM_ID);\n\n readonly paths$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: NavigationStart) => event.url),\n startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''),\n map(url => this.router.parseUrl(url)),\n map(urlTree => urlTree.root.children?.primary?.segments ?? []),\n );\n readonly paths = toSignal(this.paths$);\n\n readonly snapshot$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map(() => this.router.routerState.snapshot.root),\n );\n readonly snapshot = toSignal(this.snapshot$);\n\n readonly uiContext = computed(() => ({\n breakpoint: this.breakpoint.breakpoint(),\n paths: this.paths(),\n }));\n}\n","import { ElementRef, InjectionToken, Injector, Provider, ProviderToken, Signal, computed, effect, inject, isSignal, runInInjectionContext, signal } from \"@angular/core\";\nimport { UIContext, UiService } from \"./ui.service\";\nimport { get, set } from \"lodash-es\";\nimport { Action } from \"@ng-atomic/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { map, shareReplay, startWith } from \"rxjs\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { NavigationHistoryService } from \"@ng-atomic/common/services/navigation-history\";\n\nexport function scoped<T extends object, TKey extends keyof T>(source: Signal<T>, path: TKey | [TKey]): Signal<T[TKey]> {\n const scopedSignal = signal<T[TKey]>(get(source(), path));\n effect(() => {\n scopedSignal.set(get(source(), path, source()) as T[TKey]);\n }, {allowSignalWrites: true});\n return computed(() => scopedSignal());\n}\n\nexport function injectBreakpoint() {\n return inject(UiService).breakpoint.breakpoint;\n}\n\nexport function injectIsMobile() {\n const breakpoint = injectBreakpoint();\n return computed(() => ['xSmall', 'small'].includes(breakpoint()));\n}\n\nexport enum NavActionId {\n TOGGLE_SIDE_NAV = '[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV',\n BACK = '[@ng-atomic/common/services/ui] BACK',\n CLOSE = '[@ng-atomic/common/services/ui] CLOSE',\n}\n\nexport function injectIsRootPage$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => {\n const components = [];\n let route_ = route; \n while(route_) {\n if (!route_.parent) break;\n route_ = route_.parent;\n if (route_.component) {\n components.push(route_.component);\n }\n }\n return !!(components?.length === 1);\n }),\n map((route) => !!route),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectIsRootPage() {\n const isRootPage$ = injectIsRootPage$();\n const injector = inject(Injector);\n return computedAsync(() => isRootPage$, {injector});\n}\n\nexport function injectNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (navigationHistory.isInitial()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }]\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n}\n\nexport function injectSideAppNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n \n}\n\nexport function injectUiContext(): Signal<UIContext> {\n return inject(UiService).uiContext;\n}\n\nexport type UiConfigReducer<T extends object | string, C extends UIContext = any> = (config: T, context: C) => T;\nexport const UI_CONFIG_REDUCER = new InjectionToken<UiConfigReducer<any>>('UI_CONFIG_REDUCER');\nexport type ReducerFactory<T extends object | string, K extends T = any> \n = (injector: Injector, hostInjector: Injector) => (config: K, context: UIContext) => T;\n\nexport function call<T>(signalOrValue: Signal<T> | T): T {\n return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;\n}\n\nfunction setReducerPath(reducer: Function, path: string[]) {\n Object.defineProperty(reducer, 'path', { value: path, configurable: true });\n return reducer;\n}\n\nfunction getReducerPath(reducer: Function) {\n return reducer['path'];\n}\n\nexport function provideUiConfig<T extends object | string>(\n reducerFactory: ReducerFactory<T>,\n path: string[] = [],\n name = 'name',\n): Provider {\n return {\n provide: UI_CONFIG_REDUCER,\n useFactory: (injector: Injector) => {\n function _reducerFactory(hostInjector: Injector) {\n const reducer = reducerFactory(injector, hostInjector); \n return (config: T, context: any) => {\n if (path.length === 0) return reducer(config, context);\n return set(config as object, path, reducer(get<any, any>(config, path), context));\n }\n };\n Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });\n setReducerPath(_reducerFactory, path);\n return _reducerFactory;\n },\n deps: [Injector],\n multi: true,\n };\n}\n\nexport function injectRootConfig<T extends object>(paths: string[] = []): Signal<T> {\n const uiContext = injectUiContext();\n const factories = injectReducerFactoiries(paths);\n const hostInjector = inject(Injector);\n const reducers = factories.map(factory => {\n return runInInjectionContext(hostInjector, () => factory(hostInjector));\n });\n if (!reducers) return undefined;\n const rootConfig = computed(() => {\n const context = uiContext();\n return reducers.reduce((acc, reducer) => {\n return runInInjectionContext(hostInjector, () => reducer(acc, context));\n }, {} as T);\n });\n return rootConfig;\n}\n\n// TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。\nexport function injectUiConfig<T extends object>(paths: string[] = []): Signal<T> {\n const rootConfig = injectRootConfig<T>(paths);\n return scoped(rootConfig, paths as any);\n}\n\nexport function makeConfig<T extends object>(defaultUseFactory: ReducerFactory<T>, path: string[]) {\n return {\n provide: function provideConfig(useFactory?: ReducerFactory<T>, label = useFactory ? 'custom' : 'default') {\n useFactory ??= defaultUseFactory;\n return provideUiConfig<T>(useFactory, path, `[${path.join('.')}] ${label}`);\n },\n inject: function injectConfig() {\n return injectUiConfig<T>(path);\n },\n }\n}\n\nfunction injectReducers(): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectDeepMulti<(hostInjector: Injector) => UiConfigReducer<any>>(UI_CONFIG_REDUCER);\n}\n\nfunction injectReducerFactoiries(path: string[] = []): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectReducers().filter(factory => {\n return getReducerPath(factory).every((p, i) => path[i] === p);\n });\n}\n\nexport function injectDeepMulti<T>(token: ProviderToken<T>, injector: Injector = inject(Injector)): T[] {\n const valueOrArray = injector.get(token as ProviderToken<T[]>, [], {optional: true});\n const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];\n const parentInjector = injector.get(Injector, null, {skipSelf: true});\n if (!parentInjector) return items;\n return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];\n}\n\nexport function debugInjector(injector: Injector | null = inject(Injector)) {\n const getParent = (injector: Injector, n = 0): Injector | null => {\n while (injector && n-- > 0) {\n injector = injector.get(Injector, null, { skipSelf: true });\n }\n return injector;\n }\n\n const getInjectorName = (injector: Injector): string => {\n const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();\n if (name) return `<${name}>`;\n return `${injector['source']}`;\n }\n\n const isNodeInjector = (injector: Injector): boolean => {\n return injector.get(ElementRef, null) !== null;\n }\n\n const mapToNames = (reducers: any) => (reducers ?? []).map(reducer => reducer.name);\n\n for (let i = 0; i < 20; i++) {\n injector = getParent(injector, i);\n if (injector === Injector.NULL) break;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-ui.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ui.helpers.ts","../../../../../packages/@ng-atomic/common/src/lib/services/ui/ng-atomic-common-services-ui.ts"],"sourcesContent":["\nimport { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart } from '@angular/router';\nimport { filter, map, startWith } from 'rxjs';\nimport { isPlatformBrowser } from '@angular/common';\nimport { RouterService } from '@ng-atomic/common/services/router';\nimport { Breakpoint, BreakpointService } from '@ng-atomic/common/services/breakpoint';\n\nexport interface UIContext {\n breakpoint: Breakpoint;\n paths: any[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiService {\n readonly breakpoint = inject(BreakpointService);\n readonly router = inject(RouterService);\n readonly platformId = inject(PLATFORM_ID);\n\n readonly paths$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: NavigationStart) => event.url),\n startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''),\n map(url => this.router.parseUrl(url)),\n map(urlTree => urlTree.root.children?.primary?.segments ?? []),\n );\n readonly paths = toSignal(this.paths$);\n\n readonly snapshot$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map(() => this.router.routerState.snapshot.root),\n );\n readonly snapshot = toSignal(this.snapshot$);\n\n readonly uiContext = computed(() => ({\n breakpoint: this.breakpoint.breakpoint(),\n paths: this.paths(),\n }));\n}\n","import { ElementRef, InjectionToken, Injector, Provider, ProviderToken, Signal, computed, effect, inject, isSignal, runInInjectionContext, signal } from \"@angular/core\";\nimport { UIContext, UiService } from \"./ui.service\";\nimport { get, set } from \"lodash-es\";\nimport { Action } from \"@ng-atomic/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { map, shareReplay, startWith } from \"rxjs\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { NavigationHistoryService } from \"@ng-atomic/common/services/navigation-history\";\n\nexport function scoped<T extends object, TKey extends keyof T>(source: Signal<T>, path: TKey | [TKey]): Signal<T[TKey]> {\n const scopedSignal = signal<T[TKey]>(get(source(), path));\n effect(() => {\n scopedSignal.set(get(source(), path, source()) as T[TKey]);\n }, {allowSignalWrites: true});\n return computed(() => scopedSignal());\n}\n\nexport function injectBreakpoint() {\n return inject(UiService).breakpoint.breakpoint;\n}\n\nexport function injectIsMobile() {\n const breakpoint = injectBreakpoint();\n return computed(() => ['xSmall', 'small'].includes(breakpoint()));\n}\n\nexport enum NavActionId {\n TOGGLE_SIDE_NAV = '[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV',\n BACK = '[@ng-atomic/common/services/ui] BACK',\n CLOSE = '[@ng-atomic/common/services/ui] CLOSE',\n}\n\nexport function injectIsRootPage$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => {\n const components = [];\n let route_ = route; \n while(route_) {\n if (!route_.parent) break;\n route_ = route_.parent;\n if (route_.component) {\n components.push(route_.component);\n }\n }\n return !!(components?.length === 1);\n }),\n map((route) => !!route),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectIsRootPage() {\n const isRootPage$ = injectIsRootPage$();\n const injector = inject(Injector);\n return computedAsync(() => isRootPage$, {injector});\n}\n\nexport function injectNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (navigationHistory.isInitial()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }]\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n}\n\nexport function injectSideAppNavStartActions(\n isRootPage: Signal<boolean> = signal<boolean>(false),\n): Signal<Action[]> {\n const context = injectUiContext();\n const navigationHistory = inject(NavigationHistoryService);\n let isInitial: boolean;\n return computed(() => {\n switch(context().breakpoint) {\n case 'xLarge':\n case 'large':\n case 'medium':\n case 'small': {\n if (isRootPage()) {\n return [];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n case 'xSmall': {\n if (isRootPage()) {\n return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];\n } else {\n if (isInitial ??= navigationHistory.isInitial()) {\n return [{ id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' }];\n } else {\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n }\n default: {\n if (isRootPage()) return [];\n return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];\n }\n }\n });\n \n}\n\nexport function injectUiContext(): Signal<UIContext> {\n return inject(UiService).uiContext;\n}\n\nexport type UiConfigReducer<T extends object | string, C extends UIContext = any> = (config: T, context: C) => T;\nexport const UI_CONFIG_REDUCER = new InjectionToken<UiConfigReducer<any>>('UI_CONFIG_REDUCER');\nexport type ReducerFactory<T extends object | string> \n = (injector: Injector, hostInjector: Injector) => (config: T, context: UIContext) => T;\n\nexport type DefaultReducerFactory<T extends object | string>\n = (injector: Injector, hostInjector: Injector) => (context: UIContext) => T;\n\nexport const wrap = <T extends object | string>(\n defaultReducerFactory: DefaultReducerFactory<T>,\n): ReducerFactory<T> => {\n return (injector: Injector, hostInjector: Injector) => {\n const reducer = defaultReducerFactory(injector, hostInjector);\n return (_: T, context: UIContext) => {\n return reducer(context);\n }\n };\n}\n\nexport function call<T>(signalOrValue: Signal<T> | T): T {\n return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;\n}\n\nfunction setReducerPath(reducer: Function, path: string[]) {\n Object.defineProperty(reducer, 'path', { value: path, configurable: true });\n return reducer;\n}\n\nfunction getReducerPath(reducer: Function) {\n return reducer['path'];\n}\n\nexport function provideUiConfig<T extends object | string>(\n reducerFactory: ReducerFactory<T>,\n path: string[] = [],\n name = 'name',\n): Provider {\n return {\n provide: UI_CONFIG_REDUCER,\n useFactory: (injector: Injector) => {\n function _reducerFactory(hostInjector: Injector) {\n const reducer = reducerFactory(injector, hostInjector); \n return (config: T, context: any): T => {\n if (path.length === 0) return reducer(config, context);\n return set(config as object, path, reducer(get<any, any>(config, path), context)) as T;\n }\n };\n Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });\n setReducerPath(_reducerFactory, path);\n return _reducerFactory;\n },\n deps: [Injector],\n multi: true,\n };\n}\n\nexport function injectRootConfig<T extends object>(paths: string[] = []): Signal<T> {\n const uiContext = injectUiContext();\n const factories = injectReducerFactories(paths);\n const hostInjector = inject(Injector);\n const reducers = factories.map(factory => {\n return runInInjectionContext(hostInjector, () => factory(hostInjector));\n });\n if (!reducers) return undefined;\n const rootConfig = computed(() => {\n const context = uiContext();\n return reducers.reduce((acc, reducer) => {\n return runInInjectionContext(hostInjector, () => reducer(acc, context));\n }, {} as T);\n });\n return rootConfig;\n}\n\n// TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。\nexport function injectUiConfig<T extends object>(paths: string[] = []): Signal<T> {\n const rootConfig = injectRootConfig<T>(paths);\n return scoped(rootConfig, paths as any);\n}\n\nexport function makeConfig<T extends object>(defaultUseFactory: DefaultReducerFactory<T>, path: string[]) {\n const factory = wrap(defaultUseFactory);\n return {\n provide(useFactory?: ReducerFactory<T>, label = useFactory ? 'custom' : 'default') {\n useFactory ??= factory;\n return provideUiConfig<T>(useFactory, path, `[${path.join('.')}] ${label}`);\n },\n inject() {\n return injectUiConfig<T>(path);\n },\n }\n}\n\nfunction injectReducers(): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectDeepMulti<(hostInjector: Injector) => UiConfigReducer<any>>(UI_CONFIG_REDUCER);\n}\n\nfunction injectReducerFactories(path: string[] = []): ((hostInjector: Injector) => UiConfigReducer<any>)[] {\n return injectReducers().filter(factory => {\n return getReducerPath(factory).every((p, i) => path[i] === p);\n });\n}\n\nexport function injectDeepMulti<T>(token: ProviderToken<T>, injector: Injector = inject(Injector)): T[] {\n const valueOrArray = injector.get(token as ProviderToken<T[]>, [], {optional: true});\n const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];\n const parentInjector = injector.get(Injector, null, {skipSelf: true});\n if (!parentInjector) return items;\n return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];\n}\n\nexport function debugInjector(injector: Injector | null = inject(Injector)) {\n const getParent = (injector: Injector, n = 0): Injector | null => {\n while (injector && n-- > 0) {\n injector = injector.get(Injector, null, { skipSelf: true });\n }\n return injector;\n }\n\n const getInjectorName = (injector: Injector): string => {\n const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();\n if (name) return `<${name}>`;\n return `${injector['source']}`;\n }\n\n const isNodeInjector = (injector: Injector): boolean => {\n return injector.get(ElementRef, null) !== null;\n }\n\n const mapToNames = (reducers: any) => (reducers ?? []).map(reducer => reducer.name);\n\n for (let i = 0; i < 20; i++) {\n injector = getParent(injector, i);\n if (injector === Injector.NULL) break;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -253,7 +253,7 @@ function injectEntityStore(Entity) {
|
|
|
253
253
|
return inject(EntityStoreService).get(Entity);
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
function injectOne$(Entity, params
|
|
256
|
+
function injectOne$(Entity, params, resolverType) {
|
|
257
257
|
if (resolverType) {
|
|
258
258
|
return combineLatest({
|
|
259
259
|
resolver: injectResolver$(resolverType, params),
|
|
@@ -268,7 +268,7 @@ function signalMapToObs(map) {
|
|
|
268
268
|
return acc;
|
|
269
269
|
}, {});
|
|
270
270
|
}
|
|
271
|
-
function injectOne(Entity, params
|
|
271
|
+
function injectOne(Entity, params, resolverType) {
|
|
272
272
|
return toSignal(injectOne$(Entity, signalMapToObs(params), resolverType));
|
|
273
273
|
}
|
|
274
274
|
function injectAll$(Entity, params = {}, resolverType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class ProxyIdService {\n proxyMap = new Map<string, string>();\n\n isProxyId(id: string | null): boolean {\n return !!id?.startsWith('proxy-');\n }\n\n proxyId(_id: string): string {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id)) this.proxyMap.set(id, id);\n return id;\n }\n\n update(proxyId: string, id: string) {\n this.proxyMap.set(proxyId, id);\n }\n\n resolve(proxyIdOrId: string): string {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\n\nexport type Entity = {id: string};\n\ninterface BaseTask {\n type: 'create' | 'update' | 'delete' | 'noop';\n timestamp: number;\n}\n\ninterface CreateAction<T extends Entity> extends BaseTask {\n type: 'create';\n payload: T;\n}\n\ninterface UpdateAction<T extends Entity> extends BaseTask {\n type: 'update';\n payload: Partial<T> & Entity;\n}\n\ninterface DeleteAction extends BaseTask {\n type: 'delete';\n payload: Entity;\n}\n\ninterface NoopAction extends BaseTask {\n type: 'noop';\n payload: {};\n}\n\nexport type Task<T extends Entity> = CreateAction<T> | UpdateAction<T> | DeleteAction | NoopAction;\n\nexport function pushMap<T>(map: Map<string, T[]>, id: string, item: T): Map<string, T[]> {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TaskComposerService {\n readonly proxyId = inject(ProxyIdService);\n\n composeTasks<T extends Entity>(tasks: Task<T>[]): Task<T>[] {\n const map = new Map<string, Task<T>[]>();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = (task.payload as any)?.id;\n switch(task.type) {\n case 'noop':\n break\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, {...task, payload: {...task.payload, id}} as Task<T>);\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n\n const _tasks: Task<T>[] = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n\n compose<T extends Entity>(tasks: Task<T>[]): Task<T> {\n let created = false;\n return tasks.reduce((a, b) => {\n switch(b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n } as Task<T>;\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n }\n }, {type: 'noop', payload: {}} as Task<T>)\n }\n}\n","\nimport { InjectionToken, Injector, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Observable } from 'rxjs';\nimport { Entity } from './task-composer';\n\nexport class EntityStoreAdapter<E extends Entity> {\n list?(): Observable<E[]> {\n throw new Error('not implemented');\n }\n\n create?(entity: E): Promise<E> {\n throw new Error('not implemented');\n }\n\n update?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n\n delete?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n}\n\nexport const ENTITY_STORE_ADAPTER = new InjectionToken<{\n entity: Type<Entity>,\n adapter: EntityStoreAdapter<Entity>\n}[]>('ENTITY_STORE_ADAPTER');\n\nexport function provideEntityStoreAdapter<E extends Entity>(\n entity: Type<E>,\n adapterFactory: (injector: Injector) => EntityStoreAdapter<E>,\n) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector: Injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\n\nexport function injectEntityStoreAdapter<E extends Entity>(entity: Type<E>): EntityStoreAdapter<E> {\n const adapters = inject(ENTITY_STORE_ADAPTER, {optional: true}) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter as EntityStoreAdapter<E>;\n}\n","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { Observable, ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { Entity, Task, TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { EntityStoreAdapter, injectEntityStoreAdapter } from './entity-store-adapter';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport class BaseEntityStore<E extends Entity> extends ComponentStore<EntityState<E>> {\n protected adapter: EntityStoreAdapter<E>;\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.entityAdapter.getSelectors();\n readonly all$ = this.select(this.selectors.selectAll);\n readonly all = toSignal(this.all$);\n readonly total$ = this.select(this.selectors.selectTotal);\n readonly total = toSignal(this.total$);\n\n /** @deprecated use BaseEntityStore.all$ instead. */\n readonly entities$ = this.all$\n /** @deprecated use BaseEntityStore.all instead. */\n readonly entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n readonly size$ = this.total$;\n\n readonly addOne = this.updater((state, entity: E) => this.entityAdapter.addOne(entity, state));\n readonly addMany = this.updater((state, entities: E[]) => this.entityAdapter.addMany(entities, state));\n readonly updateOne = this.updater((state, update: {id: string, changes: Partial<E>}) => this.entityAdapter.updateOne(update, state));\n readonly updateMany = this.updater((state, updates: {id: string, changes: Partial<E>}[]) => this.entityAdapter.updateMany(updates, state));\n readonly upsertOne = this.updater((state, entity: E) => this.entityAdapter.upsertOne(entity, state));\n readonly upsertMany = this.updater((state, entities: E[]) => this.entityAdapter.upsertMany(entities, state));\n readonly removeOne = this.updater((state, id: string) => this.entityAdapter.removeOne(id, state));\n readonly removeMany = this.updater((state, ids: string[]) => this.entityAdapter.removeMany(ids, state));\n readonly removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n readonly setOne = this.updater((state, entity: E) => this.entityAdapter.setOne(entity, state));\n readonly setAll = this.updater((state, entities: E[]) => this.entityAdapter.setAll(entities, state));\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entityAdapter.getInitialState());\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n\n protected getEntities = this.effect((refresh$: Observable<void>) => refresh$.pipe(\n switchMap(() => this.adapter?.list() ?? of([])),\n tap((entities: E[]) => this.setAll(entities)),\n ));\n\n refresh() {\n this.refresh$.next();\n }\n\n mapToOne(valueOrObs: string | Observable<string>): Observable<E> {\n const wrap = (valueOrObs: string | Observable<string>) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(\n switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])),\n );\n }\n\n}\n\nexport class EntityStore<E extends Entity> extends BaseEntityStore<E> {\n protected proxyId = inject(ProxyIdService, {});\n protected composer = inject(TaskComposerService);\n protected taskSubject$ = new Subject<Task<E>>();\n protected task$: Observable<Task<E>> = this.taskSubject$.pipe(\n map(task => {\n switch(task.type) {\n case 'create': return merge(task, {payload: {id: this.proxyId.proxyId(task.payload.id)}});\n default: return task;\n }\n }),\n shareReplay(1),\n );\n protected composedTasks$ = this.task$.pipe(\n bufferTime(5 * 1000),\n filter(tasks => tasks.length > 0),\n map((tasks) => this.composer.composeTasks(tasks)),\n );\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entity, entityAdapter);\n this.task$.subscribe((task: Task<E>) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n\n dispatch(action: Task<E>) {\n this.taskSubject$.next(action);\n }\n\n protected async runTask(task: Task<E>): Promise<any> {\n switch(task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({id: task.payload.id, changes: task.payload});\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n\n protected async runComposedTasks(tasks: Task<E>[]): Promise<void> {\n return Promise.all(tasks.map((task) => {\n switch(task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({..._entity, id: entity.id});\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n } as any);\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n\n protected onSyncFailed() { }\n protected onSyncSucceeded() { }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nexport { distinctUntilChangedArray } from './entity-store';\n\n@Injectable({providedIn: 'root'})\nexport class EntityStoreService {\n protected storeMap = new Map<Type<Entity>, EntityStore<Entity>>();\n\n get<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity) as EntityStore<E>;\n }\n}\n\nexport function injectEntityStore<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n return inject(EntityStoreService).get(Entity);\n}\n","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Signal, computed, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Resolver, getResolver, injectResolver$ } from '@ng-atomic/common/utils';\nimport { Observable, combineLatest, isObservable, of, filter, map, shareReplay, switchMap, tap, distinctUntilChanged } from 'rxjs';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nimport { injectEntityStore } from './entity-store-manager';\nimport { computedAsync } from 'ngxtension/computed-async';\n\nexport function injectOne$<T extends Entity>(\n Entity: Type<T>,\n params: Record<string | 'id', Observable<any>> = {},\n resolverType?: new (params: Record<string, Observable<any>>) => Resolver<T>\n): Observable<T> {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(\n filter((Entity) => !!Entity)\n ),\n }).pipe(\n map(({ resolver, Entity }) => resolver.resolve(Entity)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).mapToOne(params.id).pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nfunction signalMapToObs(map: Record<string, Signal<any>>): Record<string, Observable<any>> {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value);\n return acc;\n }, {});\n}\n\n\nexport function injectOne<T extends Entity>(\n Entity: Type<T>,\n params: Record<string | 'id', Signal<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n return toSignal(injectOne$(Entity, signalMapToObs(params), resolverType));\n}\n\nexport function injectAll$<T extends Entity>(\n Entity: Type<T>,\n params: Record<string, Observable<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(\n map(({ resolver, entities }) => resolver.resolveMany(entities)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).entities$.pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport const callSignalMap = <T extends Record<string, Signal<any>>>(map: T): Signal<T> => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return {...acc, [key]: value()};\n }, {} as T));\n}\n\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\n\nexport function injectAll<T extends Entity>(\n Entity: Type<T>,\n params: Record<string, Signal<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n const $params = signalMapToObs(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return computedAsync(() => all$, {initialValue: []});\n}\n\nexport type ValueOrObservable<T> = T | Observable<T>;\n\nexport function mapToOne$<T extends {id: string}>(\n storeType: new () => EntityStore<T>,\n keyOrKey$: ValueOrObservable<string>,\n): Observable<T> {\n const store = inject<EntityStore<T>>(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class ProxyIdService {\n proxyMap = new Map<string, string>();\n\n isProxyId(id: string | null): boolean {\n return !!id?.startsWith('proxy-');\n }\n\n proxyId(_id: string): string {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id)) this.proxyMap.set(id, id);\n return id;\n }\n\n update(proxyId: string, id: string) {\n this.proxyMap.set(proxyId, id);\n }\n\n resolve(proxyIdOrId: string): string {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\n\nexport type Entity = {id: string};\n\ninterface BaseTask {\n type: 'create' | 'update' | 'delete' | 'noop';\n timestamp: number;\n}\n\ninterface CreateAction<T extends Entity> extends BaseTask {\n type: 'create';\n payload: T;\n}\n\ninterface UpdateAction<T extends Entity> extends BaseTask {\n type: 'update';\n payload: Partial<T> & Entity;\n}\n\ninterface DeleteAction extends BaseTask {\n type: 'delete';\n payload: Entity;\n}\n\ninterface NoopAction extends BaseTask {\n type: 'noop';\n payload: {};\n}\n\nexport type Task<T extends Entity> = CreateAction<T> | UpdateAction<T> | DeleteAction | NoopAction;\n\nexport function pushMap<T>(map: Map<string, T[]>, id: string, item: T): Map<string, T[]> {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TaskComposerService {\n readonly proxyId = inject(ProxyIdService);\n\n composeTasks<T extends Entity>(tasks: Task<T>[]): Task<T>[] {\n const map = new Map<string, Task<T>[]>();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = (task.payload as any)?.id;\n switch(task.type) {\n case 'noop':\n break\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, {...task, payload: {...task.payload, id}} as Task<T>);\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n\n const _tasks: Task<T>[] = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n\n compose<T extends Entity>(tasks: Task<T>[]): Task<T> {\n let created = false;\n return tasks.reduce((a, b) => {\n switch(b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n } as Task<T>;\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n }\n }, {type: 'noop', payload: {}} as Task<T>)\n }\n}\n","\nimport { InjectionToken, Injector, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Observable } from 'rxjs';\nimport { Entity } from './task-composer';\n\nexport class EntityStoreAdapter<E extends Entity> {\n list?(): Observable<E[]> {\n throw new Error('not implemented');\n }\n\n create?(entity: E): Promise<E> {\n throw new Error('not implemented');\n }\n\n update?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n\n delete?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n}\n\nexport const ENTITY_STORE_ADAPTER = new InjectionToken<{\n entity: Type<Entity>,\n adapter: EntityStoreAdapter<Entity>\n}[]>('ENTITY_STORE_ADAPTER');\n\nexport function provideEntityStoreAdapter<E extends Entity>(\n entity: Type<E>,\n adapterFactory: (injector: Injector) => EntityStoreAdapter<E>,\n) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector: Injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\n\nexport function injectEntityStoreAdapter<E extends Entity>(entity: Type<E>): EntityStoreAdapter<E> {\n const adapters = inject(ENTITY_STORE_ADAPTER, {optional: true}) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter as EntityStoreAdapter<E>;\n}\n","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { Observable, ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { Entity, Task, TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { EntityStoreAdapter, injectEntityStoreAdapter } from './entity-store-adapter';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport class BaseEntityStore<E extends Entity> extends ComponentStore<EntityState<E>> {\n protected adapter: EntityStoreAdapter<E>;\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.entityAdapter.getSelectors();\n readonly all$ = this.select(this.selectors.selectAll);\n readonly all = toSignal(this.all$);\n readonly total$ = this.select(this.selectors.selectTotal);\n readonly total = toSignal(this.total$);\n\n /** @deprecated use BaseEntityStore.all$ instead. */\n readonly entities$ = this.all$\n /** @deprecated use BaseEntityStore.all instead. */\n readonly entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n readonly size$ = this.total$;\n\n readonly addOne = this.updater((state, entity: E) => this.entityAdapter.addOne(entity, state));\n readonly addMany = this.updater((state, entities: E[]) => this.entityAdapter.addMany(entities, state));\n readonly updateOne = this.updater((state, update: {id: string, changes: Partial<E>}) => this.entityAdapter.updateOne(update, state));\n readonly updateMany = this.updater((state, updates: {id: string, changes: Partial<E>}[]) => this.entityAdapter.updateMany(updates, state));\n readonly upsertOne = this.updater((state, entity: E) => this.entityAdapter.upsertOne(entity, state));\n readonly upsertMany = this.updater((state, entities: E[]) => this.entityAdapter.upsertMany(entities, state));\n readonly removeOne = this.updater((state, id: string) => this.entityAdapter.removeOne(id, state));\n readonly removeMany = this.updater((state, ids: string[]) => this.entityAdapter.removeMany(ids, state));\n readonly removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n readonly setOne = this.updater((state, entity: E) => this.entityAdapter.setOne(entity, state));\n readonly setAll = this.updater((state, entities: E[]) => this.entityAdapter.setAll(entities, state));\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entityAdapter.getInitialState());\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n\n protected getEntities = this.effect((refresh$: Observable<void>) => refresh$.pipe(\n switchMap(() => this.adapter?.list() ?? of([])),\n tap((entities: E[]) => this.setAll(entities)),\n ));\n\n refresh() {\n this.refresh$.next();\n }\n\n mapToOne(valueOrObs: string | Observable<string>): Observable<E> {\n const wrap = (valueOrObs: string | Observable<string>) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(\n switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])),\n );\n }\n\n}\n\nexport class EntityStore<E extends Entity> extends BaseEntityStore<E> {\n protected proxyId = inject(ProxyIdService, {});\n protected composer = inject(TaskComposerService);\n protected taskSubject$ = new Subject<Task<E>>();\n protected task$: Observable<Task<E>> = this.taskSubject$.pipe(\n map(task => {\n switch(task.type) {\n case 'create': return merge(task, {payload: {id: this.proxyId.proxyId(task.payload.id)}});\n default: return task;\n }\n }),\n shareReplay(1),\n );\n protected composedTasks$ = this.task$.pipe(\n bufferTime(5 * 1000),\n filter(tasks => tasks.length > 0),\n map((tasks) => this.composer.composeTasks(tasks)),\n );\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entity, entityAdapter);\n this.task$.subscribe((task: Task<E>) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n\n dispatch(action: Task<E>) {\n this.taskSubject$.next(action);\n }\n\n protected async runTask(task: Task<E>): Promise<any> {\n switch(task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({id: task.payload.id, changes: task.payload});\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n\n protected async runComposedTasks(tasks: Task<E>[]): Promise<void> {\n return Promise.all(tasks.map((task) => {\n switch(task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({..._entity, id: entity.id});\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n } as any);\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n\n protected onSyncFailed() { }\n protected onSyncSucceeded() { }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nexport { distinctUntilChangedArray } from './entity-store';\n\n@Injectable({providedIn: 'root'})\nexport class EntityStoreService {\n protected storeMap = new Map<Type<Entity>, EntityStore<Entity>>();\n\n get<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity) as EntityStore<E>;\n }\n}\n\nexport function injectEntityStore<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n return inject(EntityStoreService).get(Entity);\n}\n","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Signal, computed, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Resolver, getResolver, injectResolver$ } from '@ng-atomic/common/utils';\nimport { Observable, combineLatest, isObservable, of, filter, map, shareReplay, switchMap, tap, distinctUntilChanged } from 'rxjs';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nimport { injectEntityStore } from './entity-store-manager';\nimport { computedAsync } from 'ngxtension/computed-async';\n\ntype OneProps<V> = {id: V, [key: string]: V};\ntype AllProps<V> = {[key: string]: V};\n\nexport function injectOne$<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Observable<any>>,\n resolverType?: new (params: Record<string, Observable<any>>) => Resolver<T>\n): Observable<T> {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(\n filter((Entity) => !!Entity)\n ),\n }).pipe(\n map(({ resolver, Entity }) => resolver.resolve(Entity)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).mapToOne(params.id).pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nfunction signalMapToObs(map: AllProps<Signal<any>>): AllProps<Observable<any>> {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value as any);\n return acc;\n }, {} as AllProps<Observable<any>>);\n}\n\n\nexport function injectOne<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Signal<any>>,\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n return toSignal(injectOne$(Entity, signalMapToObs(params) as any, resolverType));\n}\n\nexport function injectAll$<T extends Entity>(\n Entity: Type<T>,\n params: Record<string, Observable<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(\n map(({ resolver, entities }) => resolver.resolveMany(entities)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).entities$.pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport const callSignalMap = <T extends Record<string, Signal<any>>>(map: T): Signal<T> => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return {...acc, [key]: value()};\n }, {} as T));\n}\n\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\n\nexport function injectAll<T extends Entity>(\n Entity: Type<T>,\n params: AllProps<Signal<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n const $params = signalMapToObs(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return computedAsync(() => all$, {initialValue: []});\n}\n\nexport type ValueOrObservable<T> = T | Observable<T>;\n\nexport function mapToOne$<T extends {id: string}>(\n storeType: new () => EntityStore<T>,\n keyOrKey$: ValueOrObservable<string>,\n): Observable<T> {\n const store = inject<EntityStore<T>>(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { merge, of, map, startWith, shareReplay,
|
|
3
|
+
import { merge, of, map, startWith, shareReplay, filter, switchMap, combineLatest } from 'rxjs';
|
|
4
4
|
import { computedAsync } from 'ngxtension/computed-async';
|
|
5
5
|
import { computeFake } from '@ng-atomic/core';
|
|
6
6
|
import _get from 'lodash.get';
|
|
@@ -107,18 +107,36 @@ function injectRouteParams$() {
|
|
|
107
107
|
function injectRouteParams() {
|
|
108
108
|
return toSignal(injectRouteParams$());
|
|
109
109
|
}
|
|
110
|
-
function
|
|
111
|
-
const route = inject(ActivatedRoute);
|
|
110
|
+
function injectRouteNavigated$() {
|
|
112
111
|
const router = inject(Router);
|
|
113
|
-
|
|
112
|
+
const route = inject(ActivatedRoute);
|
|
113
|
+
return router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => route));
|
|
114
|
+
}
|
|
115
|
+
function injectRouteNavigated() {
|
|
116
|
+
return toSignal(injectRouteNavigated$());
|
|
117
|
+
}
|
|
118
|
+
function injectPrimaryPaths$() {
|
|
119
|
+
return injectRouteNavigated$().pipe(map(route => {
|
|
120
|
+
const paths = [];
|
|
121
|
+
let current = route.root;
|
|
122
|
+
while (current) {
|
|
123
|
+
paths.push(current?.routeConfig?.path ?? null);
|
|
124
|
+
current = current.firstChild;
|
|
125
|
+
}
|
|
126
|
+
return paths.filter(Boolean);
|
|
127
|
+
}), shareReplay(1), takeUntilDestroyed());
|
|
128
|
+
}
|
|
129
|
+
function injectPrimaryPaths() {
|
|
130
|
+
return toSignal(injectPrimaryPaths$());
|
|
131
|
+
}
|
|
132
|
+
function injectChildRouteParam$(key) {
|
|
133
|
+
return injectRouteNavigated$().pipe(switchMap((route) => route?.firstChild ? route.firstChild.paramMap : of(new Map())), map((params) => params.get(key)), shareReplay(1), takeUntilDestroyed());
|
|
114
134
|
}
|
|
115
135
|
function injectChildRouteParam(key) {
|
|
116
136
|
return toSignal(injectChildRouteParam$(key));
|
|
117
137
|
}
|
|
118
138
|
function injectChildRoute$() {
|
|
119
|
-
|
|
120
|
-
const route = inject(ActivatedRoute);
|
|
121
|
-
return router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => route?.firstChild?.firstChild), shareReplay(1), takeUntilDestroyed());
|
|
139
|
+
return injectRouteNavigated$().pipe(map((route) => route?.firstChild?.firstChild), shareReplay(1), takeUntilDestroyed());
|
|
122
140
|
}
|
|
123
141
|
function injectChildRoute() {
|
|
124
142
|
return toSignal(injectChildRoute$());
|
|
@@ -524,5 +542,5 @@ function formatSeconds(seconds) {
|
|
|
524
542
|
* Generated bundle index. Do not edit.
|
|
525
543
|
*/
|
|
526
544
|
|
|
527
|
-
export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, ResolverManager, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, compareByIdFactory, computedRawValue, diff, formatSeconds, get, getInvalid, getInvalid$, getRawValue, getRawValue$, getResolver, getValue, getValue$, injectActivatedComponents, injectChildRoute, injectChildRoute$, injectChildRouteParam, injectChildRouteParam$, injectHasNext, injectHasNext$, injectResolver$, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteParamMap$, injectRouteParams, injectRouteParams$, injectRouteQueryParam, injectRouteQueryParam$, injectRouterParam, injectRouterParam$, injectRouterQueryParam, injectRouterQueryParam$, isDateStr, isDateTimeStr, isIsoString, provideDayjsDateAdapter, provideResolver, removeComma, skippedResolver, smartExpTransformer, timestampToDayjs, toObject, walkActivatedRouteSnapshot, wrapRoutes, yenTransform };
|
|
545
|
+
export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, ResolverManager, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, compareByIdFactory, computedRawValue, diff, formatSeconds, get, getInvalid, getInvalid$, getRawValue, getRawValue$, getResolver, getValue, getValue$, injectActivatedComponents, injectChildRoute, injectChildRoute$, injectChildRouteParam, injectChildRouteParam$, injectHasNext, injectHasNext$, injectPrimaryPaths, injectPrimaryPaths$, injectResolver$, injectRouteData, injectRouteData$, injectRouteNavigated, injectRouteNavigated$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteParamMap$, injectRouteParams, injectRouteParams$, injectRouteQueryParam, injectRouteQueryParam$, injectRouterParam, injectRouterParam$, injectRouterQueryParam, injectRouterQueryParam$, isDateStr, isDateTimeStr, isIsoString, provideDayjsDateAdapter, provideResolver, removeComma, skippedResolver, smartExpTransformer, timestampToDayjs, toObject, walkActivatedRouteSnapshot, wrapRoutes, yenTransform };
|
|
528
546
|
//# sourceMappingURL=ng-atomic-common-utils.mjs.map
|