@o3r/dynamic-content 12.2.0-prerelease.30 → 12.2.0-prerelease.32

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/README.md CHANGED
@@ -25,27 +25,25 @@ ng add @o3r/dynamic-content
25
25
 
26
26
  ## Description
27
27
 
28
- In order to get your content from a different location than where your application is hosted, you may use the ``DynamicContentModule`` from ``@o3r/dynamic-content``. To include the module, you should just:
28
+ In order to get your content from a different location than where your application is hosted, you may use the ``O3rDynamicContentPipe`` or ``DynamicContentService`` from ``@o3r/dynamic-content``.
29
+
30
+ ### O3rDynamicContentPipe
29
31
 
30
32
  ```typescript
31
- import {DynamicContentModule} from '@o3r/dynamic-content';
33
+ import {O3rDynamicContentPipe} from '@o3r/dynamic-content';
32
34
 
33
- @NgModule({
34
- imports: [DynamicContentModule]
35
+ @Component({
36
+ ...
37
+ imports: [O3rDynamicContentPipe, ...]
35
38
  })
36
- export class MyModule {}
39
+ export class MyComponent {}
37
40
  ```
38
-
39
- The module provides two things:
40
-
41
- A pipe to be used in your component templates:
42
-
43
41
  ```html
44
42
  <img src="{{'assets-otter/imgs/logo.png' | o3rDynamicContent}}" /> or
45
43
  <img [src]="'assets-otter/imgs/logo.png' | o3rDynamicContent" />
46
44
  ```
47
45
 
48
- and a service to be used in your component classes, for example:
46
+ ### DynamicContentService
49
47
 
50
48
  ```typescript
51
49
 
@@ -53,11 +51,12 @@ and a service to be used in your component classes, for example:
53
51
  /* ... */
54
52
  })
55
53
  export class MyComponent {
56
- constructor(private service: DynamicContentService) {
57
- const imgSrc = this.service.getMediaPath('assets/assets-otter/imgs/logo.png');
58
- }
54
+ public readonly imgSrc = inject(DynamicContentService).getMediaPath('assets/assets-otter/imgs/logo.png');
59
55
  }
60
56
  ```
57
+ ```html
58
+ <img [src]="imgSrc" />
59
+ ```
61
60
 
62
61
  In both examples above, the result will be the same.
63
62
 
@@ -72,38 +71,34 @@ By default, both the service and the pipe will concatenate the assets path with
72
71
 
73
72
  If no tag is present, it defaults to empty string ``''``.
74
73
 
75
- In order to change the default behavior, you can use the ``forRoot`` method from the module and pass a new function. Example:
74
+ In order to change the default behavior, you can specify a configuration:
76
75
 
77
76
  ```typescript
78
- import {DynamicContentModule} from '@o3r/dynamic-content';
77
+ import {provideDynamicContent, withBasePath} from '@o3r/dynamic-content';
79
78
 
80
- @NgModule({
81
- imports: [
82
- DynamicContentModule.forRoot({content: 'a-different-path/'})
79
+ export const appConfig: ApplicationConfig = {
80
+ providers: [
81
+ // ...
82
+ provideDynamicContent(withBasePath('a-different-path/'))
83
83
  ]
84
- })
85
- export class MyModule {}
84
+ };
86
85
  ```
87
86
 
88
- If you need an external dependency to get the rootpath, you may need to provide the token directly.
89
- Example:
90
-
87
+ If you need an external dependency to get the rootpath, you may use need to provide a function.
91
88
  ```typescript
92
- import {DynamicContentModule, DYNAMIC_CONTENT_BASE_PATH_TOKEN} from '@o3r/dynamic-content';
89
+ import {provideDynamicContent, withBasePath} from '@o3r/dynamic-content';
93
90
 
94
91
  export function myContentPath() {
95
92
  return 'a-different-path/';
96
93
  }
97
94
 
98
- @NgModule({
99
- imports: [
100
- DynamicContentModule
101
- ],
102
- providers: {
103
- {provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN, useFactory: myContentPath}
104
- }
105
- })
106
- export class MyModule {}
95
+
96
+ export const appConfig: ApplicationConfig = {
97
+ providers: [
98
+ // ...
99
+ provideDynamicContent(withBasePath(myContentPath))
100
+ ]
101
+ };
107
102
  ```
108
103
 
109
104
  ## getContentPathStream
@@ -114,20 +109,17 @@ The content path is always related to the root of the application.
114
109
  It also ignores any path overrides from the `AssetPathOverrideStore` store, meaning that you will always get the same file.
115
110
 
116
111
  ```typescript
117
- import {Observable} from 'rxjs';
112
+ import {from, type Observable} from 'rxjs';
113
+ import {shareReplay, switchMap} from 'rxjs/operators';
118
114
 
119
115
  @Component({
120
116
  /** */
121
117
  })
122
118
  export class MyComponent {
123
-
124
- public dynamicConfig$: Observable<Response>;
125
-
126
- constructor(private service: DynamicContentService) {
127
- this.dynamicConfig$ = this.service.getContentPathStream('global.config.post.json').pipe(
128
- switchMap((filePath) => from(fetch(filePath))
129
- ));
130
- }
119
+ public dynamicConfig$: Observable<Response> = inject(DynamicContentService).getContentPathStream('global.config.post.json').pipe(
120
+ switchMap((filePath) => from(fetch(filePath))),
121
+ shareReplay({ bufferSize: 1, refCount: true })
122
+ );
131
123
  }
132
124
  ```
133
125
 
@@ -142,7 +134,7 @@ Example:
142
134
  /** */
143
135
  })
144
136
  export class MyComponent {
145
- constructor(private service: DynamicContentService) {}
137
+ private readonly dynamicContentService = inject(DynamicContentService);
146
138
 
147
139
  async getDynamicConfig() {
148
140
  const filePath = await firstValueFrom(this.service.getMediaPathStream('imgs/my-image.png'));
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, NgModule, Inject, Optional, Injectable, Pipe } from '@angular/core';
2
+ import { InjectionToken, NgModule, Inject, Optional, Injectable, Pipe, makeEnvironmentProviders } from '@angular/core';
3
3
  import * as i1 from '@ngrx/store';
4
4
  import { createAction, props, on, createReducer, StoreModule, createFeatureSelector, createSelector, select } from '@ngrx/store';
5
5
  import { of, firstValueFrom } from 'rxjs';
@@ -189,14 +189,13 @@ class O3rDynamicContentPipe {
189
189
  }
190
190
  }
191
191
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: O3rDynamicContentPipe, deps: [{ token: DynamicContentService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }
192
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: O3rDynamicContentPipe, isStandalone: false, name: "o3rDynamicContent", pure: false }); }
192
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: O3rDynamicContentPipe, isStandalone: true, name: "o3rDynamicContent", pure: false }); }
193
193
  }
194
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: O3rDynamicContentPipe, decorators: [{
195
195
  type: Pipe,
196
196
  args: [{
197
197
  name: 'o3rDynamicContent',
198
- pure: false,
199
- standalone: false
198
+ pure: false
200
199
  }]
201
200
  }], ctorParameters: () => [{ type: DynamicContentService }, { type: i0.ChangeDetectorRef }] });
202
201
 
@@ -215,6 +214,7 @@ function getCmsAssets() {
215
214
  }
216
215
  /**
217
216
  * DynamicContent module
217
+ * @deprecated Will be removed in v14.
218
218
  */
219
219
  class DynamicContentModule {
220
220
  /**
@@ -223,6 +223,7 @@ class DynamicContentModule {
223
223
  * @param dynamicPath.content The string will be used as base path of dynamic content
224
224
  * @param dynamicPath.cmsAssets The string will be used for the the base path of cms assets
225
225
  * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content
226
+ * @deprecated Please use {@link provideDynamicContent} instead. Will be removed in v14.
226
227
  */
227
228
  static forRoot(dynamicPath) {
228
229
  const providers = [];
@@ -244,7 +245,7 @@ class DynamicContentModule {
244
245
  };
245
246
  }
246
247
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
247
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, declarations: [O3rDynamicContentPipe], exports: [O3rDynamicContentPipe] }); }
248
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, imports: [O3rDynamicContentPipe] }); }
248
249
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, providers: [
249
250
  {
250
251
  provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,
@@ -260,7 +261,6 @@ class DynamicContentModule {
260
261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, decorators: [{
261
262
  type: NgModule,
262
263
  args: [{
263
- declarations: [O3rDynamicContentPipe],
264
264
  providers: [
265
265
  {
266
266
  provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,
@@ -272,9 +272,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
272
272
  },
273
273
  DynamicContentService
274
274
  ],
275
- exports: [O3rDynamicContentPipe]
275
+ imports: [O3rDynamicContentPipe]
276
276
  }]
277
277
  }] });
278
+ /**
279
+ * Specify a custom base path
280
+ * @param basePath
281
+ */
282
+ function withBasePath(basePath) {
283
+ return {
284
+ ɵkind: 'base-path',
285
+ ɵproviders: [
286
+ {
287
+ provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,
288
+ ...(typeof basePath === 'string'
289
+ ? { useValue: basePath }
290
+ : { useFactory: basePath })
291
+ }
292
+ ]
293
+ };
294
+ }
295
+ /**
296
+ * Specify a custom CMS assets path
297
+ * @param cmsAssetsPath
298
+ */
299
+ function withCmsAssetsPath(cmsAssetsPath) {
300
+ return {
301
+ ɵkind: 'cms-assets-path',
302
+ ɵproviders: [
303
+ {
304
+ provide: CMS_ASSETS_PATH_TOKEN,
305
+ ...(typeof cmsAssetsPath === 'string'
306
+ ? { useValue: cmsAssetsPath }
307
+ : { useFactory: cmsAssetsPath })
308
+ }
309
+ ]
310
+ };
311
+ }
312
+ /**
313
+ * Provide dynamic content default configuration.
314
+ * To customize the location where the application will search for the base path of dynamic content
315
+ * @see {@link withBasePath}
316
+ * @see {@link withCmsAssetsPath}
317
+ * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content
318
+ * @param features
319
+ * @example
320
+ * ```typescript
321
+ * bootstrapApplication(AppComponent,
322
+ * {
323
+ * providers: [
324
+ * provideDynamicContent(
325
+ * withBasePath('custom/base/path'),
326
+ * withCmsAssetsPath('custom/cms/assets/path'),
327
+ * )
328
+ * ]
329
+ * }
330
+ * );
331
+ */
332
+ function provideDynamicContent(...features) {
333
+ const providers = [
334
+ DynamicContentService
335
+ ];
336
+ const basePathFeature = features.find((f) => f.ɵkind === 'base-path') ?? withBasePath(getDynamicContent);
337
+ providers.push(basePathFeature.ɵproviders);
338
+ const cmsAssetsPathFeature = features.find((f) => f.ɵkind === 'cms-assets-path') ?? withCmsAssetsPath(getCmsAssets);
339
+ providers.push(cmsAssetsPathFeature.ɵproviders);
340
+ return makeEnvironmentProviders(providers);
341
+ }
278
342
 
279
343
  /**
280
344
  * Strategies available to read / write data in the RequestParameters service.
@@ -494,8 +558,14 @@ function defaultConfigFactory() {
494
558
  }
495
559
  /**
496
560
  * RequestParametersService Module
561
+ * @deprecated Will be removed in v14.
497
562
  */
498
563
  class RequestParametersModule {
564
+ /**
565
+ * Provide request parameters config
566
+ * @param config
567
+ * @deprecated Please use {@link provideRequestParameters} instead. Will be removed in v14.
568
+ */
499
569
  static forRoot(config = defaultConfigFactory) {
500
570
  return {
501
571
  ngModule: RequestParametersModule,
@@ -531,6 +601,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
531
601
  ]
532
602
  }]
533
603
  }] });
604
+ /**
605
+ * Provide request parameters config
606
+ * We don't provide directly the value and use a factory because otherwise AOT compilation will resolve to undefined whatever is taken from window
607
+ * @param config
608
+ */
609
+ function provideRequestParameters(config = defaultConfigFactory) {
610
+ return makeEnvironmentProviders([
611
+ {
612
+ provide: REQUEST_PARAMETERS_CONFIG_TOKEN,
613
+ useFactory: config
614
+ },
615
+ RequestParametersService
616
+ ]);
617
+ }
534
618
 
535
619
  class StyleLazyLoaderModule {
536
620
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -600,5 +684,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
600
684
  * Generated bundle index. Do not edit.
601
685
  */
602
686
 
603
- export { ASSET_PATH_OVERRIDE_REDUCER_TOKEN, ASSET_PATH_OVERRIDE_STORE_NAME, AssetPathOverrideStoreModule, CMS_ASSETS_PATH_TOKEN, DYNAMIC_CONTENT_BASE_PATH_TOKEN, DynamicContentModule, DynamicContentService, O3rDynamicContentPipe, RequestParametersModule, RequestParametersService, StorageStrategy, StyleLazyLoader, StyleLazyLoaderModule, assetPathOverrideInitialState, assetPathOverrideReducer, assetPathOverrideReducerFeatures, assetPathOverrideStorageDeserializer, assetPathOverrideStorageSync, defaultConfigFactory, defaultRequestParametersConfig, getCmsAssets, getDefaultAssetPathOverrideReducer, getDynamicContent, selectAssetPathOverride, selectAssetPathOverrideState, setAssetPathOverride };
687
+ export { ASSET_PATH_OVERRIDE_REDUCER_TOKEN, ASSET_PATH_OVERRIDE_STORE_NAME, AssetPathOverrideStoreModule, CMS_ASSETS_PATH_TOKEN, DYNAMIC_CONTENT_BASE_PATH_TOKEN, DynamicContentModule, DynamicContentService, O3rDynamicContentPipe, RequestParametersModule, RequestParametersService, StorageStrategy, StyleLazyLoader, StyleLazyLoaderModule, assetPathOverrideInitialState, assetPathOverrideReducer, assetPathOverrideReducerFeatures, assetPathOverrideStorageDeserializer, assetPathOverrideStorageSync, defaultConfigFactory, defaultRequestParametersConfig, getCmsAssets, getDefaultAssetPathOverrideReducer, getDynamicContent, provideDynamicContent, provideRequestParameters, selectAssetPathOverride, selectAssetPathOverrideState, setAssetPathOverride, withBasePath, withCmsAssetsPath };
604
688
  //# sourceMappingURL=o3r-dynamic-content.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-dynamic-content.mjs","sources":["../../src/stores/asset-path-override/asset-path-override.actions.ts","../../src/stores/asset-path-override/asset-path-override.reducer.ts","../../src/stores/asset-path-override/asset-path-override.state.ts","../../src/stores/asset-path-override/asset-path-override.module.ts","../../src/stores/asset-path-override/asset-path-override.selectors.ts","../../src/stores/asset-path-override/asset-path-override.sync.ts","../../src/services/dynamic-content/dynamic-content.token.ts","../../src/services/dynamic-content/dynamic-content.service.ts","../../src/services/dynamic-content/dynamic-content.pipe.ts","../../src/services/dynamic-content/dynamic-content.module.ts","../../src/services/request-parameters/request-parameters.config.ts","../../src/services/request-parameters/request-parameters.token.ts","../../src/services/request-parameters/request-parameters.service.ts","../../src/services/request-parameters/request-parameters.module.ts","../../src/services/styling/style-lazy-loader.module.ts","../../src/services/styling/style-lazy-loader.service.ts","../../src/o3r-dynamic-content.ts"],"sourcesContent":["import {\n createAction,\n props,\n} from '@ngrx/store';\nimport type {\n SetStateActionPayload,\n} from '@o3r/core';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Actions */\nconst ACTION_SET = '[AssetPathOverride] set entities';\n\n/**\n * Clear all overrides and fill the store with the payload\n */\nexport const setAssetPathOverride = createAction(ACTION_SET, props<SetStateActionPayload<AssetPathOverrideState>>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './asset-path-override.actions';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/**\n * AssetPathOverride Store initial value\n */\nexport const assetPathOverrideInitialState: AssetPathOverrideState = { assetPathOverrides: {} };\n\n/**\n * List of basic actions for AssetPathOverride Store\n */\nexport const assetPathOverrideReducerFeatures: ReducerTypes<AssetPathOverrideState, ActionCreator[]>[] = [\n on(actions.setAssetPathOverride, (_state, payload) => ({ ...payload.state }))\n];\n\n/**\n * AssetPathOverride Store reducer\n */\nexport const assetPathOverrideReducer = createReducer(\n assetPathOverrideInitialState,\n ...assetPathOverrideReducerFeatures\n);\n","/**\n * AssetPathOverride store state\n */\nexport interface AssetPathOverrideState {\n /** Mapping of asset path (key) and its override (value)*/\n assetPathOverrides: Record<string, string>;\n}\n\n/**\n * Name of the AssetPathOverride Store\n */\nexport const ASSET_PATH_OVERRIDE_STORE_NAME = 'assetPathOverride';\n\n/**\n * AssetPathOverride Store Interface\n */\nexport interface AssetPathOverrideStore {\n /** AssetPathOverride state */\n [ASSET_PATH_OVERRIDE_STORE_NAME]: AssetPathOverrideState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n assetPathOverrideReducer,\n} from './asset-path-override.reducer';\nimport {\n ASSET_PATH_OVERRIDE_STORE_NAME,\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Token of the AssetPathOverride reducer */\nexport const ASSET_PATH_OVERRIDE_REDUCER_TOKEN = new InjectionToken<ActionReducer<AssetPathOverrideState, Action>>('Feature AssetPathOverride Reducer');\n\n/** Provide default reducer for AssetPathOverride store */\nexport function getDefaultAssetPathOverrideReducer() {\n return assetPathOverrideReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(ASSET_PATH_OVERRIDE_STORE_NAME, ASSET_PATH_OVERRIDE_REDUCER_TOKEN)\n ],\n providers: [\n { provide: ASSET_PATH_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultAssetPathOverrideReducer }\n ]\n})\nexport class AssetPathOverrideStoreModule {\n public static forRoot<T extends AssetPathOverrideState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<AssetPathOverrideStoreModule> {\n return {\n ngModule: AssetPathOverrideStoreModule,\n providers: [\n { provide: ASSET_PATH_OVERRIDE_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n ASSET_PATH_OVERRIDE_STORE_NAME,\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Select AssetPathOverride State */\nexport const selectAssetPathOverrideState = createFeatureSelector<AssetPathOverrideState>(ASSET_PATH_OVERRIDE_STORE_NAME);\n\n/** Select all assetPath override map */\nexport const selectAssetPathOverride = createSelector(selectAssetPathOverrideState, (state) => state?.assetPathOverrides || {});\n","import type {\n Serializer,\n} from '@o3r/core';\nimport {\n assetPathOverrideInitialState,\n} from './asset-path-override.reducer';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/**\n * Deserializer\n * @param rawObject\n */\nexport const assetPathOverrideStorageDeserializer = (rawObject: any) => {\n if (!rawObject) {\n return assetPathOverrideInitialState;\n }\n return rawObject;\n};\n\nexport const assetPathOverrideStorageSync: Serializer<AssetPathOverrideState> = {\n deserialize: assetPathOverrideStorageDeserializer\n};\n","import {\n InjectionToken,\n} from '@angular/core';\n\n/**\n * Injection token for the rootpath of dynamic content\n */\nexport const DYNAMIC_CONTENT_BASE_PATH_TOKEN: InjectionToken<string> = new InjectionToken('Dynamic content path injection token');\n\n/**\n * Injection token for the assets path injected by the cms\n * This token will be injected only in editor mode\n */\nexport const CMS_ASSETS_PATH_TOKEN: InjectionToken<string> = new InjectionToken('CMS assets path injection token');\n","import {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n of,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n} from 'rxjs/operators';\nimport {\n AssetPathOverrideStore,\n selectAssetPathOverride,\n} from '../../stores/index';\nimport {\n CMS_ASSETS_PATH_TOKEN,\n DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n} from './dynamic-content.token';\n\nconst MEDIA_FOLDER_NAME = 'assets';\n\n/**\n * Service for getting dynamic content path\n */\n@Injectable()\nexport class DynamicContentService {\n public readonly basePath: string;\n\n private readonly mediaFolder: string;\n\n constructor(@Inject(DYNAMIC_CONTENT_BASE_PATH_TOKEN) dynamicContentPath: string,\n @Inject(CMS_ASSETS_PATH_TOKEN) private readonly cmsOnlyAssetsPath: string,\n @Optional() private readonly store?: Store<AssetPathOverrideStore>) {\n this.basePath = dynamicContentPath.replace(/\\/$/, '');\n this.mediaFolder = MEDIA_FOLDER_NAME;\n }\n\n private normalizePath(assetPath?: string) {\n return assetPath ? assetPath.replace(/^\\//, '') : '';\n }\n\n private getContentPath(assetPath?: string) {\n const normalizedAssetPath = this.normalizePath(assetPath);\n return this.basePath === '' ? assetPath || '' : `${this.basePath}/${normalizedAssetPath}`;\n }\n\n private getMediaPath(assetPath?: string) {\n if (this.cmsOnlyAssetsPath && assetPath) {\n return assetPath.startsWith('/') ? assetPath : `${this.cmsOnlyAssetsPath.replace(/\\/$/, '')}/${assetPath}`;\n }\n return this.getContentPath(this.mediaFolder ? `${this.mediaFolder}/${this.normalizePath(assetPath)}` : assetPath);\n }\n\n /**\n * Gets the full path of a content relative to the root\n * Content path doesn't consider any override, you will always get the same file\n * @param assetPath asset location in the root folder\n * @example\n * ```typescript\n * getMediaPath('assets/imgs/my-image.png') // will give you the basePath + 'assets/imgs/my-image.png'\n * ```\n */\n public getContentPathStream(assetPath?: string) {\n return of(this.getContentPath(assetPath));\n }\n\n /**\n * Gets the stream that provides the full path of a media content\n * A Media content is always stored in the 'assets' media folder, no external content will be accessible through this function\n * If any override is applied to the content, returns the override path instead\n * @param assetPath asset location in the media folder (e.g imgs/my-image.png)\n * @example\n * ```typescript\n * getMediaPathStream('imgs/my-image.png') // will give you the basePath + mediaFolder + 'imgs/my-image.png'\n * ```\n */\n public getMediaPathStream(assetPath?: string) {\n if (!this.store) {\n return of(this.getMediaPath(assetPath));\n }\n return this.store.pipe(\n select(selectAssetPathOverride),\n map((entities) => assetPath && entities && entities[assetPath] ? entities[assetPath] : assetPath),\n map((finalAssetPath) => this.getMediaPath(finalAssetPath)),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n }\n}\n","import {\n ChangeDetectorRef,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport {\n Subscription,\n} from 'rxjs';\nimport {\n DynamicContentService,\n} from './dynamic-content.service';\n\n@Pipe({\n name: 'o3rDynamicContent',\n pure: false,\n standalone: false\n})\nexport class O3rDynamicContentPipe implements PipeTransform, OnDestroy {\n /** Last query value */\n protected lastQuery?: string;\n\n /** Subscription to retrieve media path */\n protected onMediaPathChange?: Subscription;\n\n /** Path to the media */\n protected mediaPath = '';\n\n constructor(protected readonly service: DynamicContentService, protected readonly cd: ChangeDetectorRef) {}\n\n /** @inheritDoc */\n public transform(query?: string) {\n if (query !== this.lastQuery) {\n this.lastQuery = query;\n if (this.onMediaPathChange) {\n this.onMediaPathChange.unsubscribe();\n }\n this.onMediaPathChange = this.service.getMediaPathStream(query).subscribe((mediaPath) => {\n this.mediaPath = mediaPath;\n this.cd.markForCheck();\n });\n }\n\n return this.mediaPath;\n }\n\n /** @inheritDoc */\n public ngOnDestroy(): void {\n if (this.onMediaPathChange) {\n this.onMediaPathChange.unsubscribe();\n }\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n O3rDynamicContentPipe,\n} from './dynamic-content.pipe';\nimport {\n DynamicContentService,\n} from './dynamic-content.service';\nimport {\n CMS_ASSETS_PATH_TOKEN,\n DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n} from './dynamic-content.token';\n\n/**\n * Function to get dynamic content from body dataset\n */\nexport function getDynamicContent() {\n return document.body.dataset.dynamiccontentpath || '';\n}\n\n/**\n * Function to get the cms assets from body dataset\n * This will be used only in a CMS context(not in local or prod) to display correctly the assets in the editor\n */\nexport function getCmsAssets() {\n return document.body.dataset.cmsassetspath || '';\n}\n\n@NgModule({\n declarations: [O3rDynamicContentPipe],\n providers: [\n {\n provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n useFactory: getDynamicContent\n },\n {\n provide: CMS_ASSETS_PATH_TOKEN,\n useFactory: getCmsAssets\n },\n DynamicContentService\n ],\n exports: [O3rDynamicContentPipe]\n})\n/**\n * DynamicContent module\n */\nexport class DynamicContentModule {\n /**\n * Customize the location where the application will search for the base path of dynamic content\n * @param dynamicPath Configuration for dynamic content path\n * @param dynamicPath.content The string will be used as base path of dynamic content\n * @param dynamicPath.cmsAssets The string will be used for the the base path of cms assets\n * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content\n */\n public static forRoot(dynamicPath: { content: string } | { cmsAssets: string }): ModuleWithProviders<DynamicContentModule> {\n const providers = [];\n if ('content' in dynamicPath) {\n providers.push({\n provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n useValue: dynamicPath.content\n });\n }\n if ('cmsAssets' in dynamicPath) {\n providers.push({\n provide: CMS_ASSETS_PATH_TOKEN,\n useValue: dynamicPath.cmsAssets\n });\n }\n\n return {\n ngModule: DynamicContentModule,\n providers\n };\n }\n}\n","/**\n * Strategies available to read / write data in the RequestParameters service.\n * Rehydrate: if the storage already have data, those will be used by the service, ignoring new data. Otherwise set the storage\n * Merge: storage data will be merged with the ones provided. (provided data has priority)\n * Replace: storage data will be completely replaced by the ones provided\n * ReplaceIfNotEmpty: If no parameters are provided, use the content from storage. Otherwise use the ones provided and update the storage with them.\n */\n\nexport enum StorageStrategy {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Rehydrate = 0,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Merge = 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Replace = 2,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n ReplaceIfNotEmpty = 3\n}\n\n/**\n * Configuration used by a user to feed the request parameters service.\n */\nexport interface RequestParametersConfig {\n /**\n * Strategy used by the RequestParameters Service. See StorageStrategy for more info\n */\n strategy: StorageStrategy;\n /**\n * Storage used by the RequestParameters service\n */\n storage?: Storage;\n /**\n * Value of the DOM element containing your query parameters (e.g. `document.body.dataset.query`)\n */\n queryParamsValue: string;\n /**\n * Value of the DOM element containing your post parameters (e.g. `document.body.dataset.post`)\n */\n postParamsValue: string;\n}\n\nexport const defaultRequestParametersConfig: Readonly<RequestParametersConfig> = {\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n strategy: StorageStrategy.Rehydrate,\n queryParamsValue: (typeof document !== 'undefined' && document.body?.dataset?.query) || '{}',\n postParamsValue: (typeof document !== 'undefined' && document.body?.dataset?.post) || '{}'\n} as const;\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n RequestParametersConfig,\n} from './request-parameters.config';\n\n/**\n * Token to be provided in case of service customization needs.\n */\nexport const REQUEST_PARAMETERS_CONFIG_TOKEN = new InjectionToken<Partial<RequestParametersConfig>>('RequestParametersConfig injection token', { factory: () => ({}) });\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\nimport {\n defaultRequestParametersConfig,\n RequestParametersConfig,\n StorageStrategy,\n} from './request-parameters.config';\nimport {\n REQUEST_PARAMETERS_CONFIG_TOKEN,\n} from './request-parameters.token';\n\nexport type ParamsList = 'query' | 'post';\n\nexport type ParamsType = { [k in ParamsList]: { [key: string]: string } };\n\n/**\n * Partial configuration for RequestParameters Service\n */\nexport interface PartialRequestParametersConfig extends Partial<RequestParametersConfig> {}\n\n/**\n * Service used to store the request parameters of your requests so that subsequent calls or refresh the page will preserve\n * them.\n */\n@Injectable()\nexport class RequestParametersService implements ParamsType {\n private _query: { [key: string]: any } = {};\n private _post: { [key: string]: any } = {};\n\n private readonly config: RequestParametersConfig;\n\n constructor(@Inject(REQUEST_PARAMETERS_CONFIG_TOKEN) config: PartialRequestParametersConfig) {\n this.config = defaultRequestParametersConfig;\n (Object.keys(config) as (keyof RequestParametersConfig)[])\n .filter((key) => config[key] !== undefined)\n .forEach((key) => (this.config as any)[key] = config[key]);\n\n this.setParameters('query', JSON.parse(this.config.queryParamsValue));\n this.setParameters('post', JSON.parse(this.config.postParamsValue));\n }\n\n /**\n * Depending on the strategy, set the internal values for the parameters.\n * See StorageStrategy for more info.\n * @param key\n * @param value\n */\n private setParameters(key: ParamsList, value: { [key: string]: string }) {\n const privateKey: `_${ParamsList}` = `_${key}`;\n if (!this.config.storage) {\n // No storage is available , cannot set items\n return;\n }\n switch (this.config.strategy) {\n case StorageStrategy.Rehydrate: {\n if (!this.config.storage.getItem(privateKey)) {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n this[privateKey] = JSON.parse(this.config.storage.getItem(privateKey) || '{}');\n break;\n }\n case StorageStrategy.Replace: {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n case StorageStrategy.Merge: {\n const storageData = Object.assign(JSON.parse(this.config.storage.getItem(privateKey) || '{}'), value);\n this[privateKey] = storageData;\n this.config.storage.setItem(privateKey, JSON.stringify(storageData));\n break;\n }\n case StorageStrategy.ReplaceIfNotEmpty: {\n if (Object.keys(value).length > 0) {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n this[privateKey] = JSON.parse(this.config.storage.getItem(privateKey) || '{}');\n break;\n }\n }\n }\n\n /**\n * Get all the query parameters in a map.\n */\n public get query() {\n return this._query;\n }\n\n /**\n * Get all the post parameters in a map.\n */\n public get post() {\n return this._post;\n }\n\n /**\n * Get a specific query parameter value, given the key.\n * @param key\n */\n public getQueryParameter(key: string): string | undefined {\n return this._query[key];\n }\n\n /**\n * Get a specific query parameter value as boolean, given the key.\n * @param key\n */\n public getQueryParameterAsBoolean(key: string): boolean | undefined {\n const queryParameter: string | undefined = this.getQueryParameter(key);\n return queryParameter ? queryParameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Get a specific post parameter value, given the key.\n * @param key\n */\n public getPostParameter(key: string): string | undefined {\n return this._post[key];\n }\n\n /**\n * Get a specific post parameter value as boolean, given the key.\n * @param key\n */\n public getPostParameterAsBoolean(key: string): boolean | undefined {\n const postParameter: string | undefined = this.getPostParameter(key);\n return postParameter ? postParameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Get a specific parameter value, given the key.\n * @param key\n */\n public getParameter(key: string): string | undefined {\n return this._query[key] || this._post[key];\n }\n\n /**\n * Get a specific parameter value as boolean, given the key.\n * @param key\n */\n public getParameterAsBoolean(key: string): boolean | undefined {\n const parameter: string | undefined = this.getParameter(key);\n return parameter ? parameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Clear GET parameters from the storage\n * @param paramsToClear the list on key that you want to clear in get parameters\n */\n public clearQueryParameters(paramsToClear?: string[]) {\n const newQuery = (paramsToClear ? Object.keys(this._query).filter((key) => !paramsToClear.includes(key)) : [])\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = this._query[key];\n return acc;\n }, {});\n if (this.config.storage) {\n this.config.storage.setItem('_query', JSON.stringify(newQuery));\n }\n this._query = newQuery;\n }\n\n /**\n * Clear POST parameters from the storage\n * @param paramsToClear the list on key that you want to clean in post parameters\n */\n public clearPostParameters(paramsToClear?: string[]) {\n const newPost = (paramsToClear ? Object.keys(this._post).filter((key) => !paramsToClear.includes(key)) : [])\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = this._post[key];\n return acc;\n }, {});\n if (this.config.storage) {\n this.config.storage.setItem('_post', JSON.stringify(newPost));\n }\n this._post = newPost;\n }\n\n /**\n * Get all the parameters in a map.\n * @param priority the parameter to be given priority in case same key is in get and post params.\n */\n public getParams(priority: ParamsList = 'query') {\n return priority === 'query' ? { ...this._post, ...this._query } : { ...this._query, ...this._post };\n }\n\n /**\n * Filter Parameters(both Query/POST) from the storage\n * @param paramstoFilter the list on key that you want to filter from parameters\n * @param priority the priorty of the parameter type(POST/Query)\n */\n public getFilteredParameters(paramstoFilter?: string[], priority: ParamsList = 'query') {\n const params = this.getParams(priority);\n if (!paramstoFilter) {\n return params;\n }\n return Object.keys(params)\n .filter((key) => !paramstoFilter.includes(key))\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = params[key];\n return acc;\n }, {});\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n RequestParametersConfig,\n} from './request-parameters.config';\nimport {\n RequestParametersService,\n} from './request-parameters.service';\nimport {\n REQUEST_PARAMETERS_CONFIG_TOKEN,\n} from './request-parameters.token';\n\n/**\n * Empty configuration factory, used when config is not provided. It needs a separate function for AOT.\n */\nexport function defaultConfigFactory() {\n return {};\n}\n/**\n * RequestParametersService Module\n */\n@NgModule({\n imports: [],\n providers: [\n {\n provide: REQUEST_PARAMETERS_CONFIG_TOKEN,\n useValue: {}\n },\n RequestParametersService\n ]\n})\nexport class RequestParametersModule {\n public static forRoot(config: () => Partial<RequestParametersConfig> = defaultConfigFactory): ModuleWithProviders<RequestParametersModule> {\n return {\n ngModule: RequestParametersModule,\n providers: [\n {\n provide: REQUEST_PARAMETERS_CONFIG_TOKEN,\n useFactory: config\n },\n RequestParametersService\n ]\n };\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n DynamicContentModule,\n} from '../dynamic-content/index';\n\n@NgModule({\n imports: [DynamicContentModule]\n})\nexport class StyleLazyLoaderModule {}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n DynamicContentService,\n} from '../dynamic-content/index';\nimport {\n StyleLazyLoaderModule,\n} from './style-lazy-loader.module';\n\n/**\n * Interface to describe a style to lazy load from a url.\n */\nexport interface StyleURL {\n /** url to file */\n href: string;\n /** id of the HTML element */\n id?: string;\n /** html integrity attribute to verify fetched resources */\n integrity?: string;\n /** html crossOrigin attribute for CORS support. */\n crossOrigin?: 'anonymous' | 'use-credentials' | '';\n}\n\n/**\n * Service to lazy load a CSS file\n */\n@Injectable({\n providedIn: StyleLazyLoaderModule\n})\nexport class StyleLazyLoader {\n private readonly DEFAULT_STYLE_ELEMENT_ID = 'external-theme';\n\n constructor(private readonly dcService: DynamicContentService) {}\n\n /**\n * Load a new CSS from an absolute URL, if we already HTML element exists with the url, otherwise\n * @param styleUrlConfig object containing CSS File absolute URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag.\n */\n public loadStyleFromURL(styleUrlConfig: StyleURL) {\n const elementId = styleUrlConfig.id || this.DEFAULT_STYLE_ELEMENT_ID;\n let style = document.querySelector<HTMLLinkElement>(`#${elementId}`);\n\n if (style === null) {\n style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n const head = document.querySelectorAll('head')[0];\n head.append(style);\n }\n if (styleUrlConfig.integrity) {\n style.integrity = styleUrlConfig.integrity;\n }\n if (styleUrlConfig.crossOrigin !== undefined) {\n style.crossOrigin = styleUrlConfig.crossOrigin;\n }\n style.href = styleUrlConfig.href;\n\n return style;\n }\n\n /**\n * Load a new CSS File\n * @param styleUrlConfig CSS File config containing URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag\n */\n public async asyncLoadStyleFromDynamicContent(styleUrlConfig: StyleURL) {\n const dynamicContentPath = await firstValueFrom(\n this.dcService.getContentPathStream(styleUrlConfig.href)\n );\n styleUrlConfig.href = dynamicContentPath;\n this.loadStyleFromURL(styleUrlConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setAssetPathOverride","i1.DynamicContentService"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-dynamic-content.mjs","sources":["../../src/stores/asset-path-override/asset-path-override.actions.ts","../../src/stores/asset-path-override/asset-path-override.reducer.ts","../../src/stores/asset-path-override/asset-path-override.state.ts","../../src/stores/asset-path-override/asset-path-override.module.ts","../../src/stores/asset-path-override/asset-path-override.selectors.ts","../../src/stores/asset-path-override/asset-path-override.sync.ts","../../src/services/dynamic-content/dynamic-content.token.ts","../../src/services/dynamic-content/dynamic-content.service.ts","../../src/services/dynamic-content/dynamic-content.pipe.ts","../../src/services/dynamic-content/dynamic-content.module.ts","../../src/services/request-parameters/request-parameters.config.ts","../../src/services/request-parameters/request-parameters.token.ts","../../src/services/request-parameters/request-parameters.service.ts","../../src/services/request-parameters/request-parameters.module.ts","../../src/services/styling/style-lazy-loader.module.ts","../../src/services/styling/style-lazy-loader.service.ts","../../src/o3r-dynamic-content.ts"],"sourcesContent":["import {\n createAction,\n props,\n} from '@ngrx/store';\nimport type {\n SetStateActionPayload,\n} from '@o3r/core';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Actions */\nconst ACTION_SET = '[AssetPathOverride] set entities';\n\n/**\n * Clear all overrides and fill the store with the payload\n */\nexport const setAssetPathOverride = createAction(ACTION_SET, props<SetStateActionPayload<AssetPathOverrideState>>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './asset-path-override.actions';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/**\n * AssetPathOverride Store initial value\n */\nexport const assetPathOverrideInitialState: AssetPathOverrideState = { assetPathOverrides: {} };\n\n/**\n * List of basic actions for AssetPathOverride Store\n */\nexport const assetPathOverrideReducerFeatures: ReducerTypes<AssetPathOverrideState, ActionCreator[]>[] = [\n on(actions.setAssetPathOverride, (_state, payload) => ({ ...payload.state }))\n];\n\n/**\n * AssetPathOverride Store reducer\n */\nexport const assetPathOverrideReducer = createReducer(\n assetPathOverrideInitialState,\n ...assetPathOverrideReducerFeatures\n);\n","/**\n * AssetPathOverride store state\n */\nexport interface AssetPathOverrideState {\n /** Mapping of asset path (key) and its override (value)*/\n assetPathOverrides: Record<string, string>;\n}\n\n/**\n * Name of the AssetPathOverride Store\n */\nexport const ASSET_PATH_OVERRIDE_STORE_NAME = 'assetPathOverride';\n\n/**\n * AssetPathOverride Store Interface\n */\nexport interface AssetPathOverrideStore {\n /** AssetPathOverride state */\n [ASSET_PATH_OVERRIDE_STORE_NAME]: AssetPathOverrideState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n assetPathOverrideReducer,\n} from './asset-path-override.reducer';\nimport {\n ASSET_PATH_OVERRIDE_STORE_NAME,\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Token of the AssetPathOverride reducer */\nexport const ASSET_PATH_OVERRIDE_REDUCER_TOKEN = new InjectionToken<ActionReducer<AssetPathOverrideState, Action>>('Feature AssetPathOverride Reducer');\n\n/** Provide default reducer for AssetPathOverride store */\nexport function getDefaultAssetPathOverrideReducer() {\n return assetPathOverrideReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(ASSET_PATH_OVERRIDE_STORE_NAME, ASSET_PATH_OVERRIDE_REDUCER_TOKEN)\n ],\n providers: [\n { provide: ASSET_PATH_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultAssetPathOverrideReducer }\n ]\n})\nexport class AssetPathOverrideStoreModule {\n public static forRoot<T extends AssetPathOverrideState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<AssetPathOverrideStoreModule> {\n return {\n ngModule: AssetPathOverrideStoreModule,\n providers: [\n { provide: ASSET_PATH_OVERRIDE_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n ASSET_PATH_OVERRIDE_STORE_NAME,\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/** Select AssetPathOverride State */\nexport const selectAssetPathOverrideState = createFeatureSelector<AssetPathOverrideState>(ASSET_PATH_OVERRIDE_STORE_NAME);\n\n/** Select all assetPath override map */\nexport const selectAssetPathOverride = createSelector(selectAssetPathOverrideState, (state) => state?.assetPathOverrides || {});\n","import type {\n Serializer,\n} from '@o3r/core';\nimport {\n assetPathOverrideInitialState,\n} from './asset-path-override.reducer';\nimport {\n AssetPathOverrideState,\n} from './asset-path-override.state';\n\n/**\n * Deserializer\n * @param rawObject\n */\nexport const assetPathOverrideStorageDeserializer = (rawObject: any) => {\n if (!rawObject) {\n return assetPathOverrideInitialState;\n }\n return rawObject;\n};\n\nexport const assetPathOverrideStorageSync: Serializer<AssetPathOverrideState> = {\n deserialize: assetPathOverrideStorageDeserializer\n};\n","import {\n InjectionToken,\n} from '@angular/core';\n\n/**\n * Injection token for the rootpath of dynamic content\n */\nexport const DYNAMIC_CONTENT_BASE_PATH_TOKEN: InjectionToken<string> = new InjectionToken('Dynamic content path injection token');\n\n/**\n * Injection token for the assets path injected by the cms\n * This token will be injected only in editor mode\n */\nexport const CMS_ASSETS_PATH_TOKEN: InjectionToken<string> = new InjectionToken('CMS assets path injection token');\n","import {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport {\n of,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n} from 'rxjs/operators';\nimport {\n AssetPathOverrideStore,\n selectAssetPathOverride,\n} from '../../stores/index';\nimport {\n CMS_ASSETS_PATH_TOKEN,\n DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n} from './dynamic-content.token';\n\nconst MEDIA_FOLDER_NAME = 'assets';\n\n/**\n * Service for getting dynamic content path\n */\n@Injectable()\nexport class DynamicContentService {\n public readonly basePath: string;\n\n private readonly mediaFolder: string;\n\n constructor(@Inject(DYNAMIC_CONTENT_BASE_PATH_TOKEN) dynamicContentPath: string,\n @Inject(CMS_ASSETS_PATH_TOKEN) private readonly cmsOnlyAssetsPath: string,\n @Optional() private readonly store?: Store<AssetPathOverrideStore>) {\n this.basePath = dynamicContentPath.replace(/\\/$/, '');\n this.mediaFolder = MEDIA_FOLDER_NAME;\n }\n\n private normalizePath(assetPath?: string) {\n return assetPath ? assetPath.replace(/^\\//, '') : '';\n }\n\n private getContentPath(assetPath?: string) {\n const normalizedAssetPath = this.normalizePath(assetPath);\n return this.basePath === '' ? assetPath || '' : `${this.basePath}/${normalizedAssetPath}`;\n }\n\n private getMediaPath(assetPath?: string) {\n if (this.cmsOnlyAssetsPath && assetPath) {\n return assetPath.startsWith('/') ? assetPath : `${this.cmsOnlyAssetsPath.replace(/\\/$/, '')}/${assetPath}`;\n }\n return this.getContentPath(this.mediaFolder ? `${this.mediaFolder}/${this.normalizePath(assetPath)}` : assetPath);\n }\n\n /**\n * Gets the full path of a content relative to the root\n * Content path doesn't consider any override, you will always get the same file\n * @param assetPath asset location in the root folder\n * @example\n * ```typescript\n * getMediaPath('assets/imgs/my-image.png') // will give you the basePath + 'assets/imgs/my-image.png'\n * ```\n */\n public getContentPathStream(assetPath?: string) {\n return of(this.getContentPath(assetPath));\n }\n\n /**\n * Gets the stream that provides the full path of a media content\n * A Media content is always stored in the 'assets' media folder, no external content will be accessible through this function\n * If any override is applied to the content, returns the override path instead\n * @param assetPath asset location in the media folder (e.g imgs/my-image.png)\n * @example\n * ```typescript\n * getMediaPathStream('imgs/my-image.png') // will give you the basePath + mediaFolder + 'imgs/my-image.png'\n * ```\n */\n public getMediaPathStream(assetPath?: string) {\n if (!this.store) {\n return of(this.getMediaPath(assetPath));\n }\n return this.store.pipe(\n select(selectAssetPathOverride),\n map((entities) => assetPath && entities && entities[assetPath] ? entities[assetPath] : assetPath),\n map((finalAssetPath) => this.getMediaPath(finalAssetPath)),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n }\n}\n","import {\n ChangeDetectorRef,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport {\n Subscription,\n} from 'rxjs';\nimport {\n DynamicContentService,\n} from './dynamic-content.service';\n\n@Pipe({\n name: 'o3rDynamicContent',\n pure: false\n})\nexport class O3rDynamicContentPipe implements PipeTransform, OnDestroy {\n /** Last query value */\n protected lastQuery?: string;\n\n /** Subscription to retrieve media path */\n protected onMediaPathChange?: Subscription;\n\n /** Path to the media */\n protected mediaPath = '';\n\n constructor(protected readonly service: DynamicContentService, protected readonly cd: ChangeDetectorRef) {}\n\n /** @inheritDoc */\n public transform(query?: string) {\n if (query !== this.lastQuery) {\n this.lastQuery = query;\n if (this.onMediaPathChange) {\n this.onMediaPathChange.unsubscribe();\n }\n this.onMediaPathChange = this.service.getMediaPathStream(query).subscribe((mediaPath) => {\n this.mediaPath = mediaPath;\n this.cd.markForCheck();\n });\n }\n\n return this.mediaPath;\n }\n\n /** @inheritDoc */\n public ngOnDestroy(): void {\n if (this.onMediaPathChange) {\n this.onMediaPathChange.unsubscribe();\n }\n }\n}\n","import {\n type EnvironmentProviders,\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n type Provider,\n} from '@angular/core';\nimport {\n O3rDynamicContentPipe,\n} from './dynamic-content.pipe';\nimport {\n DynamicContentService,\n} from './dynamic-content.service';\nimport {\n CMS_ASSETS_PATH_TOKEN,\n DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n} from './dynamic-content.token';\n\n/**\n * Function to get dynamic content from body dataset\n */\nexport function getDynamicContent() {\n return document.body.dataset.dynamiccontentpath || '';\n}\n\n/**\n * Function to get the cms assets from body dataset\n * This will be used only in a CMS context(not in local or prod) to display correctly the assets in the editor\n */\nexport function getCmsAssets() {\n return document.body.dataset.cmsassetspath || '';\n}\n\n/**\n * DynamicContent module\n * @deprecated Will be removed in v14.\n */\n@NgModule({\n providers: [\n {\n provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n useFactory: getDynamicContent\n },\n {\n provide: CMS_ASSETS_PATH_TOKEN,\n useFactory: getCmsAssets\n },\n DynamicContentService\n ],\n imports: [O3rDynamicContentPipe]\n})\nexport class DynamicContentModule {\n /**\n * Customize the location where the application will search for the base path of dynamic content\n * @param dynamicPath Configuration for dynamic content path\n * @param dynamicPath.content The string will be used as base path of dynamic content\n * @param dynamicPath.cmsAssets The string will be used for the the base path of cms assets\n * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content\n * @deprecated Please use {@link provideDynamicContent} instead. Will be removed in v14.\n */\n public static forRoot(dynamicPath: { content: string } | { cmsAssets: string }): ModuleWithProviders<DynamicContentModule> {\n const providers = [];\n if ('content' in dynamicPath) {\n providers.push({\n provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n useValue: dynamicPath.content\n });\n }\n if ('cmsAssets' in dynamicPath) {\n providers.push({\n provide: CMS_ASSETS_PATH_TOKEN,\n useValue: dynamicPath.cmsAssets\n });\n }\n\n return {\n ngModule: DynamicContentModule,\n providers\n };\n }\n}\n\ntype DynamicContentFeatureKind = 'base-path' | 'cms-assets-path';\n\ninterface DynamicContentFeature<FeatureKind extends DynamicContentFeatureKind> {\n ɵkind: FeatureKind;\n ɵproviders: Provider[];\n}\n\ntype BasePathFeature = DynamicContentFeature<'base-path'>;\ntype CmsAssetsPathFeature = DynamicContentFeature<'cms-assets-path'>;\n\ntype DynamicContentFeatures = BasePathFeature | CmsAssetsPathFeature;\n\n/**\n * Specify a custom base path\n * @param basePath\n */\nexport function withBasePath(basePath: string | (() => string)): BasePathFeature {\n return {\n ɵkind: 'base-path',\n ɵproviders: [\n {\n provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,\n ...(\n typeof basePath === 'string'\n ? { useValue: basePath }\n : { useFactory: basePath }\n )\n }\n ]\n };\n}\n\n/**\n * Specify a custom CMS assets path\n * @param cmsAssetsPath\n */\nexport function withCmsAssetsPath(cmsAssetsPath: string | (() => string)): DynamicContentFeature<'cms-assets-path'> {\n return {\n ɵkind: 'cms-assets-path',\n ɵproviders: [\n {\n provide: CMS_ASSETS_PATH_TOKEN,\n ...(\n typeof cmsAssetsPath === 'string'\n ? { useValue: cmsAssetsPath }\n : { useFactory: cmsAssetsPath }\n )\n }\n ]\n };\n}\n\n/**\n * Provide dynamic content default configuration.\n * To customize the location where the application will search for the base path of dynamic content\n * @see {@link withBasePath}\n * @see {@link withCmsAssetsPath}\n * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content\n * @param features\n * @example\n * ```typescript\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideDynamicContent(\n * withBasePath('custom/base/path'),\n * withCmsAssetsPath('custom/cms/assets/path'),\n * )\n * ]\n * }\n * );\n */\nexport function provideDynamicContent(...features: DynamicContentFeatures[]) {\n const providers: (Provider | EnvironmentProviders)[] = [\n DynamicContentService\n ];\n\n const basePathFeature = features.find((f) => f.ɵkind === 'base-path') ?? withBasePath(getDynamicContent);\n providers.push(basePathFeature.ɵproviders);\n\n const cmsAssetsPathFeature = features.find((f) => f.ɵkind === 'cms-assets-path') ?? withCmsAssetsPath(getCmsAssets);\n providers.push(cmsAssetsPathFeature.ɵproviders);\n\n return makeEnvironmentProviders(providers);\n}\n","/**\n * Strategies available to read / write data in the RequestParameters service.\n * Rehydrate: if the storage already have data, those will be used by the service, ignoring new data. Otherwise set the storage\n * Merge: storage data will be merged with the ones provided. (provided data has priority)\n * Replace: storage data will be completely replaced by the ones provided\n * ReplaceIfNotEmpty: If no parameters are provided, use the content from storage. Otherwise use the ones provided and update the storage with them.\n */\n\nexport enum StorageStrategy {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Rehydrate = 0,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Merge = 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n Replace = 2,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- required naming convention\n ReplaceIfNotEmpty = 3\n}\n\n/**\n * Configuration used by a user to feed the request parameters service.\n */\nexport interface RequestParametersConfig {\n /**\n * Strategy used by the RequestParameters Service. See StorageStrategy for more info\n */\n strategy: StorageStrategy;\n /**\n * Storage used by the RequestParameters service\n */\n storage?: Storage;\n /**\n * Value of the DOM element containing your query parameters (e.g. `document.body.dataset.query`)\n */\n queryParamsValue: string;\n /**\n * Value of the DOM element containing your post parameters (e.g. `document.body.dataset.post`)\n */\n postParamsValue: string;\n}\n\nexport const defaultRequestParametersConfig: Readonly<RequestParametersConfig> = {\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n strategy: StorageStrategy.Rehydrate,\n queryParamsValue: (typeof document !== 'undefined' && document.body?.dataset?.query) || '{}',\n postParamsValue: (typeof document !== 'undefined' && document.body?.dataset?.post) || '{}'\n} as const;\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n RequestParametersConfig,\n} from './request-parameters.config';\n\n/**\n * Token to be provided in case of service customization needs.\n */\nexport const REQUEST_PARAMETERS_CONFIG_TOKEN = new InjectionToken<Partial<RequestParametersConfig>>('RequestParametersConfig injection token', { factory: () => ({}) });\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\nimport {\n defaultRequestParametersConfig,\n RequestParametersConfig,\n StorageStrategy,\n} from './request-parameters.config';\nimport {\n REQUEST_PARAMETERS_CONFIG_TOKEN,\n} from './request-parameters.token';\n\nexport type ParamsList = 'query' | 'post';\n\nexport type ParamsType = { [k in ParamsList]: { [key: string]: string } };\n\n/**\n * Partial configuration for RequestParameters Service\n */\nexport interface PartialRequestParametersConfig extends Partial<RequestParametersConfig> {}\n\n/**\n * Service used to store the request parameters of your requests so that subsequent calls or refresh the page will preserve\n * them.\n */\n@Injectable()\nexport class RequestParametersService implements ParamsType {\n private _query: { [key: string]: any } = {};\n private _post: { [key: string]: any } = {};\n\n private readonly config: RequestParametersConfig;\n\n constructor(@Inject(REQUEST_PARAMETERS_CONFIG_TOKEN) config: PartialRequestParametersConfig) {\n this.config = defaultRequestParametersConfig;\n (Object.keys(config) as (keyof RequestParametersConfig)[])\n .filter((key) => config[key] !== undefined)\n .forEach((key) => (this.config as any)[key] = config[key]);\n\n this.setParameters('query', JSON.parse(this.config.queryParamsValue));\n this.setParameters('post', JSON.parse(this.config.postParamsValue));\n }\n\n /**\n * Depending on the strategy, set the internal values for the parameters.\n * See StorageStrategy for more info.\n * @param key\n * @param value\n */\n private setParameters(key: ParamsList, value: { [key: string]: string }) {\n const privateKey: `_${ParamsList}` = `_${key}`;\n if (!this.config.storage) {\n // No storage is available , cannot set items\n return;\n }\n switch (this.config.strategy) {\n case StorageStrategy.Rehydrate: {\n if (!this.config.storage.getItem(privateKey)) {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n this[privateKey] = JSON.parse(this.config.storage.getItem(privateKey) || '{}');\n break;\n }\n case StorageStrategy.Replace: {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n case StorageStrategy.Merge: {\n const storageData = Object.assign(JSON.parse(this.config.storage.getItem(privateKey) || '{}'), value);\n this[privateKey] = storageData;\n this.config.storage.setItem(privateKey, JSON.stringify(storageData));\n break;\n }\n case StorageStrategy.ReplaceIfNotEmpty: {\n if (Object.keys(value).length > 0) {\n this[privateKey] = value;\n this.config.storage.setItem(privateKey, JSON.stringify(value));\n break;\n }\n this[privateKey] = JSON.parse(this.config.storage.getItem(privateKey) || '{}');\n break;\n }\n }\n }\n\n /**\n * Get all the query parameters in a map.\n */\n public get query() {\n return this._query;\n }\n\n /**\n * Get all the post parameters in a map.\n */\n public get post() {\n return this._post;\n }\n\n /**\n * Get a specific query parameter value, given the key.\n * @param key\n */\n public getQueryParameter(key: string): string | undefined {\n return this._query[key];\n }\n\n /**\n * Get a specific query parameter value as boolean, given the key.\n * @param key\n */\n public getQueryParameterAsBoolean(key: string): boolean | undefined {\n const queryParameter: string | undefined = this.getQueryParameter(key);\n return queryParameter ? queryParameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Get a specific post parameter value, given the key.\n * @param key\n */\n public getPostParameter(key: string): string | undefined {\n return this._post[key];\n }\n\n /**\n * Get a specific post parameter value as boolean, given the key.\n * @param key\n */\n public getPostParameterAsBoolean(key: string): boolean | undefined {\n const postParameter: string | undefined = this.getPostParameter(key);\n return postParameter ? postParameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Get a specific parameter value, given the key.\n * @param key\n */\n public getParameter(key: string): string | undefined {\n return this._query[key] || this._post[key];\n }\n\n /**\n * Get a specific parameter value as boolean, given the key.\n * @param key\n */\n public getParameterAsBoolean(key: string): boolean | undefined {\n const parameter: string | undefined = this.getParameter(key);\n return parameter ? parameter.toLowerCase() === 'true' : undefined;\n }\n\n /**\n * Clear GET parameters from the storage\n * @param paramsToClear the list on key that you want to clear in get parameters\n */\n public clearQueryParameters(paramsToClear?: string[]) {\n const newQuery = (paramsToClear ? Object.keys(this._query).filter((key) => !paramsToClear.includes(key)) : [])\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = this._query[key];\n return acc;\n }, {});\n if (this.config.storage) {\n this.config.storage.setItem('_query', JSON.stringify(newQuery));\n }\n this._query = newQuery;\n }\n\n /**\n * Clear POST parameters from the storage\n * @param paramsToClear the list on key that you want to clean in post parameters\n */\n public clearPostParameters(paramsToClear?: string[]) {\n const newPost = (paramsToClear ? Object.keys(this._post).filter((key) => !paramsToClear.includes(key)) : [])\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = this._post[key];\n return acc;\n }, {});\n if (this.config.storage) {\n this.config.storage.setItem('_post', JSON.stringify(newPost));\n }\n this._post = newPost;\n }\n\n /**\n * Get all the parameters in a map.\n * @param priority the parameter to be given priority in case same key is in get and post params.\n */\n public getParams(priority: ParamsList = 'query') {\n return priority === 'query' ? { ...this._post, ...this._query } : { ...this._query, ...this._post };\n }\n\n /**\n * Filter Parameters(both Query/POST) from the storage\n * @param paramstoFilter the list on key that you want to filter from parameters\n * @param priority the priorty of the parameter type(POST/Query)\n */\n public getFilteredParameters(paramstoFilter?: string[], priority: ParamsList = 'query') {\n const params = this.getParams(priority);\n if (!paramstoFilter) {\n return params;\n }\n return Object.keys(params)\n .filter((key) => !paramstoFilter.includes(key))\n .reduce<{ [k: string]: string }>((acc, key) => {\n acc[key] = params[key];\n return acc;\n }, {});\n }\n}\n","import {\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n RequestParametersConfig,\n} from './request-parameters.config';\nimport {\n RequestParametersService,\n} from './request-parameters.service';\nimport {\n REQUEST_PARAMETERS_CONFIG_TOKEN,\n} from './request-parameters.token';\n\n/**\n * Empty configuration factory, used when config is not provided. It needs a separate function for AOT.\n */\nexport function defaultConfigFactory() {\n return {};\n}\n/**\n * RequestParametersService Module\n * @deprecated Will be removed in v14.\n */\n@NgModule({\n imports: [],\n providers: [\n {\n provide: REQUEST_PARAMETERS_CONFIG_TOKEN,\n useValue: {}\n },\n RequestParametersService\n ]\n})\nexport class RequestParametersModule {\n /**\n * Provide request parameters config\n * @param config\n * @deprecated Please use {@link provideRequestParameters} instead. Will be removed in v14.\n */\n public static forRoot(config: () => Partial<RequestParametersConfig> = defaultConfigFactory): ModuleWithProviders<RequestParametersModule> {\n return {\n ngModule: RequestParametersModule,\n providers: [\n {\n provide: REQUEST_PARAMETERS_CONFIG_TOKEN,\n useFactory: config\n },\n RequestParametersService\n ]\n };\n }\n}\n\n/**\n * Provide request parameters config\n * We don't provide directly the value and use a factory because otherwise AOT compilation will resolve to undefined whatever is taken from window\n * @param config\n */\nexport function provideRequestParameters(config: () => Partial<RequestParametersConfig> = defaultConfigFactory) {\n return makeEnvironmentProviders([\n {\n provide: REQUEST_PARAMETERS_CONFIG_TOKEN,\n useFactory: config\n },\n RequestParametersService\n ]);\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n DynamicContentModule,\n} from '../dynamic-content/index';\n\n@NgModule({\n imports: [DynamicContentModule]\n})\nexport class StyleLazyLoaderModule {}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n DynamicContentService,\n} from '../dynamic-content/index';\nimport {\n StyleLazyLoaderModule,\n} from './style-lazy-loader.module';\n\n/**\n * Interface to describe a style to lazy load from a url.\n */\nexport interface StyleURL {\n /** url to file */\n href: string;\n /** id of the HTML element */\n id?: string;\n /** html integrity attribute to verify fetched resources */\n integrity?: string;\n /** html crossOrigin attribute for CORS support. */\n crossOrigin?: 'anonymous' | 'use-credentials' | '';\n}\n\n/**\n * Service to lazy load a CSS file\n */\n@Injectable({\n providedIn: StyleLazyLoaderModule\n})\nexport class StyleLazyLoader {\n private readonly DEFAULT_STYLE_ELEMENT_ID = 'external-theme';\n\n constructor(private readonly dcService: DynamicContentService) {}\n\n /**\n * Load a new CSS from an absolute URL, if we already HTML element exists with the url, otherwise\n * @param styleUrlConfig object containing CSS File absolute URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag.\n */\n public loadStyleFromURL(styleUrlConfig: StyleURL) {\n const elementId = styleUrlConfig.id || this.DEFAULT_STYLE_ELEMENT_ID;\n let style = document.querySelector<HTMLLinkElement>(`#${elementId}`);\n\n if (style === null) {\n style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n const head = document.querySelectorAll('head')[0];\n head.append(style);\n }\n if (styleUrlConfig.integrity) {\n style.integrity = styleUrlConfig.integrity;\n }\n if (styleUrlConfig.crossOrigin !== undefined) {\n style.crossOrigin = styleUrlConfig.crossOrigin;\n }\n style.href = styleUrlConfig.href;\n\n return style;\n }\n\n /**\n * Load a new CSS File\n * @param styleUrlConfig CSS File config containing URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag\n */\n public async asyncLoadStyleFromDynamicContent(styleUrlConfig: StyleURL) {\n const dynamicContentPath = await firstValueFrom(\n this.dcService.getContentPathStream(styleUrlConfig.href)\n );\n styleUrlConfig.href = dynamicContentPath;\n this.loadStyleFromURL(styleUrlConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setAssetPathOverride","i1.DynamicContentService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/dynamic-content",
3
- "version": "12.2.0-prerelease.30",
3
+ "version": "12.2.0-prerelease.32",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -42,8 +42,8 @@
42
42
  "@angular/core": "^19.0.0",
43
43
  "@angular/platform-browser-dynamic": "^19.0.0",
44
44
  "@ngrx/store": "^19.0.0",
45
- "@o3r/core": "^12.2.0-prerelease.30",
46
- "@o3r/schematics": "^12.2.0-prerelease.30",
45
+ "@o3r/core": "^12.2.0-prerelease.32",
46
+ "@o3r/schematics": "^12.2.0-prerelease.32",
47
47
  "@schematics/angular": "^19.0.0",
48
48
  "cheerio": "^1.0.0-rc.10",
49
49
  "express-interceptor": "^1.2.0",
@@ -1,4 +1,4 @@
1
- import { ModuleWithProviders } from '@angular/core';
1
+ import { type EnvironmentProviders, ModuleWithProviders, type Provider } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./dynamic-content.pipe";
4
4
  /**
@@ -10,6 +10,10 @@ export declare function getDynamicContent(): string;
10
10
  * This will be used only in a CMS context(not in local or prod) to display correctly the assets in the editor
11
11
  */
12
12
  export declare function getCmsAssets(): string;
13
+ /**
14
+ * DynamicContent module
15
+ * @deprecated Will be removed in v14.
16
+ */
13
17
  export declare class DynamicContentModule {
14
18
  /**
15
19
  * Customize the location where the application will search for the base path of dynamic content
@@ -17,6 +21,7 @@ export declare class DynamicContentModule {
17
21
  * @param dynamicPath.content The string will be used as base path of dynamic content
18
22
  * @param dynamicPath.cmsAssets The string will be used for the the base path of cms assets
19
23
  * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content
24
+ * @deprecated Please use {@link provideDynamicContent} instead. Will be removed in v14.
20
25
  */
21
26
  static forRoot(dynamicPath: {
22
27
  content: string;
@@ -24,7 +29,47 @@ export declare class DynamicContentModule {
24
29
  cmsAssets: string;
25
30
  }): ModuleWithProviders<DynamicContentModule>;
26
31
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicContentModule, never>;
27
- static ɵmod: i0.ɵɵNgModuleDeclaration<DynamicContentModule, [typeof i1.O3rDynamicContentPipe], never, [typeof i1.O3rDynamicContentPipe]>;
32
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DynamicContentModule, never, [typeof i1.O3rDynamicContentPipe], never>;
28
33
  static ɵinj: i0.ɵɵInjectorDeclaration<DynamicContentModule>;
29
34
  }
35
+ type DynamicContentFeatureKind = 'base-path' | 'cms-assets-path';
36
+ interface DynamicContentFeature<FeatureKind extends DynamicContentFeatureKind> {
37
+ ɵkind: FeatureKind;
38
+ ɵproviders: Provider[];
39
+ }
40
+ type BasePathFeature = DynamicContentFeature<'base-path'>;
41
+ type CmsAssetsPathFeature = DynamicContentFeature<'cms-assets-path'>;
42
+ type DynamicContentFeatures = BasePathFeature | CmsAssetsPathFeature;
43
+ /**
44
+ * Specify a custom base path
45
+ * @param basePath
46
+ */
47
+ export declare function withBasePath(basePath: string | (() => string)): BasePathFeature;
48
+ /**
49
+ * Specify a custom CMS assets path
50
+ * @param cmsAssetsPath
51
+ */
52
+ export declare function withCmsAssetsPath(cmsAssetsPath: string | (() => string)): DynamicContentFeature<'cms-assets-path'>;
53
+ /**
54
+ * Provide dynamic content default configuration.
55
+ * To customize the location where the application will search for the base path of dynamic content
56
+ * @see {@link withBasePath}
57
+ * @see {@link withCmsAssetsPath}
58
+ * @note The cmsAssets will be used only in the cms editor mode and it will take priority over dynamic content
59
+ * @param features
60
+ * @example
61
+ * ```typescript
62
+ * bootstrapApplication(AppComponent,
63
+ * {
64
+ * providers: [
65
+ * provideDynamicContent(
66
+ * withBasePath('custom/base/path'),
67
+ * withCmsAssetsPath('custom/cms/assets/path'),
68
+ * )
69
+ * ]
70
+ * }
71
+ * );
72
+ */
73
+ export declare function provideDynamicContent(...features: DynamicContentFeatures[]): EnvironmentProviders;
74
+ export {};
30
75
  //# sourceMappingURL=dynamic-content.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-content.module.d.ts","sourceRoot":"","sources":["../../../src/services/dynamic-content/dynamic-content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;;;AAYvB;;GAEG;AACH,wBAAgB,iBAAiB,WAEhC;AAED;;;GAGG;AACH,wBAAgB,YAAY,WAE3B;AAED,qBAkBa,oBAAoB;IAC/B;;;;;;OAMG;WACW,OAAO,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;yCAR/G,oBAAoB;0CAApB,oBAAoB;0CAApB,oBAAoB;CA4BhC"}
1
+ {"version":3,"file":"dynamic-content.module.d.ts","sourceRoot":"","sources":["../../../src/services/dynamic-content/dynamic-content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EAEzB,mBAAmB,EAEnB,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;;;AAYvB;;GAEG;AACH,wBAAgB,iBAAiB,WAEhC;AAED;;;GAGG;AACH,wBAAgB,YAAY,WAE3B;AAED;;;GAGG;AACH,qBAca,oBAAoB;IAC/B;;;;;;;OAOG;WACW,OAAO,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;yCAT/G,oBAAoB;0CAApB,oBAAoB;0CAApB,oBAAoB;CA6BhC;AAED,KAAK,yBAAyB,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEjE,UAAU,qBAAqB,CAAC,WAAW,SAAS,yBAAyB;IAC3E,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,KAAK,eAAe,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC1D,KAAK,oBAAoB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AAErE,KAAK,sBAAsB,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,eAAe,CAc/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAclH;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,QAAQ,EAAE,sBAAsB,EAAE,wBAY1E"}
@@ -17,6 +17,6 @@ export declare class O3rDynamicContentPipe implements PipeTransform, OnDestroy {
17
17
  /** @inheritDoc */
18
18
  ngOnDestroy(): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<O3rDynamicContentPipe, never>;
20
- static ɵpipe: i0.ɵɵPipeDeclaration<O3rDynamicContentPipe, "o3rDynamicContent", false>;
20
+ static ɵpipe: i0.ɵɵPipeDeclaration<O3rDynamicContentPipe, "o3rDynamicContent", true>;
21
21
  }
22
22
  //# sourceMappingURL=dynamic-content.pipe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-content.pipe.d.ts","sourceRoot":"","sources":["../../../src/services/dynamic-content/dynamic-content.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EAET,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACb,MAAM,MAAM,CAAC;AACd,OAAO,EACL,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;;AAEnC,qBAKa,qBAAsB,YAAW,aAAa,EAAE,SAAS;IAUxD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,iBAAiB;IATvG,wBAAwB;IACxB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,SAAS,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC;IAE3C,wBAAwB;IACxB,SAAS,CAAC,SAAS,SAAM;gBAEM,OAAO,EAAE,qBAAqB,EAAqB,EAAE,EAAE,iBAAiB;IAEvG,kBAAkB;IACX,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM;IAe/B,kBAAkB;IACX,WAAW,IAAI,IAAI;yCA7Bf,qBAAqB;uCAArB,qBAAqB;CAkCjC"}
1
+ {"version":3,"file":"dynamic-content.pipe.d.ts","sourceRoot":"","sources":["../../../src/services/dynamic-content/dynamic-content.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EAET,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACb,MAAM,MAAM,CAAC;AACd,OAAO,EACL,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;;AAEnC,qBAIa,qBAAsB,YAAW,aAAa,EAAE,SAAS;IAUxD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,iBAAiB;IATvG,wBAAwB;IACxB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,SAAS,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC;IAE3C,wBAAwB;IACxB,SAAS,CAAC,SAAS,SAAM;gBAEM,OAAO,EAAE,qBAAqB,EAAqB,EAAE,EAAE,iBAAiB;IAEvG,kBAAkB;IACX,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM;IAe/B,kBAAkB;IACX,WAAW,IAAI,IAAI;yCA7Bf,qBAAqB;uCAArB,qBAAqB;CAkCjC"}
@@ -7,11 +7,23 @@ import * as i0 from "@angular/core";
7
7
  export declare function defaultConfigFactory(): {};
8
8
  /**
9
9
  * RequestParametersService Module
10
+ * @deprecated Will be removed in v14.
10
11
  */
11
12
  export declare class RequestParametersModule {
13
+ /**
14
+ * Provide request parameters config
15
+ * @param config
16
+ * @deprecated Please use {@link provideRequestParameters} instead. Will be removed in v14.
17
+ */
12
18
  static forRoot(config?: () => Partial<RequestParametersConfig>): ModuleWithProviders<RequestParametersModule>;
13
19
  static ɵfac: i0.ɵɵFactoryDeclaration<RequestParametersModule, never>;
14
20
  static ɵmod: i0.ɵɵNgModuleDeclaration<RequestParametersModule, never, never, never>;
15
21
  static ɵinj: i0.ɵɵInjectorDeclaration<RequestParametersModule>;
16
22
  }
23
+ /**
24
+ * Provide request parameters config
25
+ * We don't provide directly the value and use a factory because otherwise AOT compilation will resolve to undefined whatever is taken from window
26
+ * @param config
27
+ */
28
+ export declare function provideRequestParameters(config?: () => Partial<RequestParametersConfig>): import("@angular/core").EnvironmentProviders;
17
29
  //# sourceMappingURL=request-parameters.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-parameters.module.d.ts","sourceRoot":"","sources":["../../../src/services/request-parameters/request-parameters.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;;AAQrC;;GAEG;AACH,wBAAgB,oBAAoB,OAEnC;AACD;;GAEG;AACH,qBAUa,uBAAuB;WACpB,OAAO,CAAC,MAAM,GAAE,MAAM,OAAO,CAAC,uBAAuB,CAAwB,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;yCAD/H,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAanC"}
1
+ {"version":3,"file":"request-parameters.module.d.ts","sourceRoot":"","sources":["../../../src/services/request-parameters/request-parameters.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;;AAQrC;;GAEG;AACH,wBAAgB,oBAAoB,OAEnC;AACD;;;GAGG;AACH,qBAUa,uBAAuB;IAClC;;;;OAIG;WACW,OAAO,CAAC,MAAM,GAAE,MAAM,OAAO,CAAC,uBAAuB,CAAwB,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;yCAN/H,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAkBnC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,MAAM,OAAO,CAAC,uBAAuB,CAAwB,gDAQ7G"}