@o3r/dynamic-content 12.1.8 → 12.1.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-dynamic-content-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/request-parameters.fixture.jasmine.ts","../../src/fixtures/jasmine/o3r-dynamic-content-fixtures-jasmine.ts"],"sourcesContent":["import type {\n InterfaceOf,\n} from '@o3r/core';\nimport type {\n RequestParametersConfig,\n RequestParametersService,\n} from '@o3r/dynamic-content';\nimport {\n StorageStrategy,\n} from '@o3r/dynamic-content';\n\n/**\n * Fixture file for requestParameters service\n */\nexport class RequestParametersServiceFixture implements InterfaceOf<RequestParametersService> {\n public query: { [key: string]: string } = {};\n public post: { [key: string]: string } = {};\n public config: RequestParametersConfig = {\n strategy: StorageStrategy.Rehydrate,\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n queryParamsValue: '{}',\n postParamsValue: '{}'\n };\n\n public getQueryParameter: jasmine.Spy;\n public getQueryParameterAsBoolean: jasmine.Spy;\n public getPostParameter: jasmine.Spy;\n public getPostParameterAsBoolean: jasmine.Spy;\n public getParameter: jasmine.Spy;\n public getParameterAsBoolean: jasmine.Spy;\n public clearQueryParameters: jasmine.Spy;\n public clearPostParameters: jasmine.Spy;\n public getFilteredParameters: jasmine.Spy;\n public getParams: jasmine.Spy;\n\n constructor() {\n this.getQueryParameter = jasmine.createSpy('getQueryParameter');\n this.getQueryParameterAsBoolean = jasmine.createSpy('getQueryParameterAsBoolean');\n this.getPostParameter = jasmine.createSpy('getPostParameter');\n this.getPostParameterAsBoolean = jasmine.createSpy('getPostParameterAsBoolean');\n this.getParameter = jasmine.createSpy('getParameter');\n this.getParameterAsBoolean = jasmine.createSpy('getParameterAsBoolean');\n this.clearQueryParameters = jasmine.createSpy('clearQueryParameters');\n this.clearPostParameters = jasmine.createSpy('clearPostParameters');\n this.getParams = jasmine.createSpy('getParams');\n this.getFilteredParameters = jasmine.createSpy('filterParameters');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAWA;;AAEG;MACU,+BAA+B,CAAA;AAqB1C,IAAA,WAAA,GAAA;QApBO,IAAK,CAAA,KAAA,GAA8B,EAAE;QACrC,IAAI,CAAA,IAAA,GAA8B,EAAE;AACpC,QAAA,IAAA,CAAA,MAAM,GAA4B;YACvC,QAAQ,EAAE,eAAe,CAAC,SAAS;AACnC,YAAA,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAC5E,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,eAAe,EAAE;SAClB;QAcC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC;QAC/D,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC,4BAA4B,CAAC;QACjF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC7D,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC;QAC/E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACvE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACrE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;;AAErE;;AC/CD;;AAEG;;;;"}
1
+ {"version":3,"file":"o3r-dynamic-content-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/request-parameters.fixture.jasmine.ts","../../src/fixtures/jasmine/o3r-dynamic-content-fixtures-jasmine.ts"],"sourcesContent":["import type {\n InterfaceOf,\n} from '@o3r/core';\nimport type {\n RequestParametersConfig,\n RequestParametersService,\n} from '@o3r/dynamic-content';\nimport {\n StorageStrategy,\n} from '@o3r/dynamic-content';\n\n/**\n * Fixture file for requestParameters service\n */\nexport class RequestParametersServiceFixture implements InterfaceOf<RequestParametersService> {\n public query: { [key: string]: string } = {};\n public post: { [key: string]: string } = {};\n public config: RequestParametersConfig = {\n strategy: StorageStrategy.Rehydrate,\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n queryParamsValue: '{}',\n postParamsValue: '{}'\n };\n\n public getQueryParameter: jasmine.Spy;\n public getQueryParameterAsBoolean: jasmine.Spy;\n public getPostParameter: jasmine.Spy;\n public getPostParameterAsBoolean: jasmine.Spy;\n public getParameter: jasmine.Spy;\n public getParameterAsBoolean: jasmine.Spy;\n public clearQueryParameters: jasmine.Spy;\n public clearPostParameters: jasmine.Spy;\n public getFilteredParameters: jasmine.Spy;\n public getParams: jasmine.Spy;\n\n constructor() {\n this.getQueryParameter = jasmine.createSpy('getQueryParameter');\n this.getQueryParameterAsBoolean = jasmine.createSpy('getQueryParameterAsBoolean');\n this.getPostParameter = jasmine.createSpy('getPostParameter');\n this.getPostParameterAsBoolean = jasmine.createSpy('getPostParameterAsBoolean');\n this.getParameter = jasmine.createSpy('getParameter');\n this.getParameterAsBoolean = jasmine.createSpy('getParameterAsBoolean');\n this.clearQueryParameters = jasmine.createSpy('clearQueryParameters');\n this.clearPostParameters = jasmine.createSpy('clearPostParameters');\n this.getParams = jasmine.createSpy('getParams');\n this.getFilteredParameters = jasmine.createSpy('filterParameters');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAWA;;AAEG;MACU,+BAA+B,CAAA;AAqB1C,IAAA,WAAA,GAAA;QApBO,IAAA,CAAA,KAAK,GAA8B,EAAE;QACrC,IAAA,CAAA,IAAI,GAA8B,EAAE;AACpC,QAAA,IAAA,CAAA,MAAM,GAA4B;YACvC,QAAQ,EAAE,eAAe,CAAC,SAAS;AACnC,YAAA,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAC5E,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,eAAe,EAAE;SAClB;QAcC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC;QAC/D,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC,4BAA4B,CAAC;QACjF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC7D,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC;QAC/E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACvE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACrE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;;AAErE;;AC/CD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-dynamic-content-fixtures-jest.mjs","sources":["../../src/fixtures/jest/request-parameters.fixture.jest.ts","../../src/fixtures/jest/o3r-dynamic-content-fixtures-jest.ts"],"sourcesContent":["import type {\n InterfaceOf,\n} from '@o3r/core';\nimport type {\n RequestParametersConfig,\n RequestParametersService,\n} from '@o3r/dynamic-content';\nimport {\n StorageStrategy,\n} from '@o3r/dynamic-content';\n\n/**\n * Fixture file for requestParameters service\n */\nexport class RequestParametersServiceFixture implements InterfaceOf<RequestParametersService> {\n public query: { [key: string]: string } = {};\n public post: { [key: string]: string } = {};\n public config: RequestParametersConfig = {\n strategy: StorageStrategy.Rehydrate,\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n queryParamsValue: '{}',\n postParamsValue: '{}'\n };\n\n public getQueryParameter: jest.Mock<any, any>;\n public getQueryParameterAsBoolean: jest.Mock<any, any>;\n public getPostParameter: jest.Mock<any, any>;\n public getPostParameterAsBoolean: jest.Mock<any, any>;\n public getParameter: jest.Mock<any, any>;\n public getParameterAsBoolean: jest.Mock<any, any>;\n public clearQueryParameters: jest.Mock<any, any>;\n public clearPostParameters: jest.Mock<any, any>;\n public getFilteredParameters: jest.Mock<any, any>;\n public getParams: jest.Mock<any, any>;\n\n constructor() {\n this.getQueryParameter = jest.fn();\n this.getQueryParameterAsBoolean = jest.fn();\n this.getPostParameter = jest.fn();\n this.getPostParameterAsBoolean = jest.fn();\n this.getParameter = jest.fn();\n this.getParameterAsBoolean = jest.fn();\n this.clearQueryParameters = jest.fn();\n this.clearPostParameters = jest.fn();\n this.getParams = jest.fn();\n this.getFilteredParameters = jest.fn();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAWA;;AAEG;MACU,+BAA+B,CAAA;AAqB1C,IAAA,WAAA,GAAA;QApBO,IAAK,CAAA,KAAA,GAA8B,EAAE;QACrC,IAAI,CAAA,IAAA,GAA8B,EAAE;AACpC,QAAA,IAAA,CAAA,MAAM,GAA4B;YACvC,QAAQ,EAAE,eAAe,CAAC,SAAS;AACnC,YAAA,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAC5E,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,eAAe,EAAE;SAClB;AAcC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE;AAClC,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE;AAC3C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE;AACjC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE;AAC7B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE;AACtC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE;;AAEzC;;AC/CD;;AAEG;;;;"}
1
+ {"version":3,"file":"o3r-dynamic-content-fixtures-jest.mjs","sources":["../../src/fixtures/jest/request-parameters.fixture.jest.ts","../../src/fixtures/jest/o3r-dynamic-content-fixtures-jest.ts"],"sourcesContent":["import type {\n InterfaceOf,\n} from '@o3r/core';\nimport type {\n RequestParametersConfig,\n RequestParametersService,\n} from '@o3r/dynamic-content';\nimport {\n StorageStrategy,\n} from '@o3r/dynamic-content';\n\n/**\n * Fixture file for requestParameters service\n */\nexport class RequestParametersServiceFixture implements InterfaceOf<RequestParametersService> {\n public query: { [key: string]: string } = {};\n public post: { [key: string]: string } = {};\n public config: RequestParametersConfig = {\n strategy: StorageStrategy.Rehydrate,\n storage: (typeof window === 'undefined') ? undefined : window.sessionStorage,\n queryParamsValue: '{}',\n postParamsValue: '{}'\n };\n\n public getQueryParameter: jest.Mock<any, any>;\n public getQueryParameterAsBoolean: jest.Mock<any, any>;\n public getPostParameter: jest.Mock<any, any>;\n public getPostParameterAsBoolean: jest.Mock<any, any>;\n public getParameter: jest.Mock<any, any>;\n public getParameterAsBoolean: jest.Mock<any, any>;\n public clearQueryParameters: jest.Mock<any, any>;\n public clearPostParameters: jest.Mock<any, any>;\n public getFilteredParameters: jest.Mock<any, any>;\n public getParams: jest.Mock<any, any>;\n\n constructor() {\n this.getQueryParameter = jest.fn();\n this.getQueryParameterAsBoolean = jest.fn();\n this.getPostParameter = jest.fn();\n this.getPostParameterAsBoolean = jest.fn();\n this.getParameter = jest.fn();\n this.getParameterAsBoolean = jest.fn();\n this.clearQueryParameters = jest.fn();\n this.clearPostParameters = jest.fn();\n this.getParams = jest.fn();\n this.getFilteredParameters = jest.fn();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAWA;;AAEG;MACU,+BAA+B,CAAA;AAqB1C,IAAA,WAAA,GAAA;QApBO,IAAA,CAAA,KAAK,GAA8B,EAAE;QACrC,IAAA,CAAA,IAAI,GAA8B,EAAE;AACpC,QAAA,IAAA,CAAA,MAAM,GAA4B;YACvC,QAAQ,EAAE,eAAe,CAAC,SAAS;AACnC,YAAA,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAC5E,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,eAAe,EAAE;SAClB;AAcC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE;AAClC,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE;AAC3C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE;AACjC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE;AAC7B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE;AACtC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE;;AAEzC;;AC/CD;;AAEG;;;;"}
@@ -23,21 +23,21 @@ class AssetRulesEngineActionHandler {
23
23
  }, {});
24
24
  this.store.dispatch(setAssetPathOverride({ state: { assetPathOverrides } }));
25
25
  }
26
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionHandler, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionHandler }); }
26
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionHandler, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionHandler }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionHandler, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionHandler, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: () => [{ type: i1.Store }] });
32
32
 
33
33
  class AssetRulesEngineActionModule {
34
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionModule, imports: [AssetPathOverrideStoreModule] }); }
36
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionModule, providers: [
34
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionModule, imports: [AssetPathOverrideStoreModule] }); }
36
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionModule, providers: [
37
37
  AssetRulesEngineActionHandler
38
38
  ], imports: [AssetPathOverrideStoreModule] }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetRulesEngineActionModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetRulesEngineActionModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-dynamic-content-rules-engine.mjs","sources":["../../src/rules-engine/asset.interfaces.ts","../../src/rules-engine/asset.handler-action.ts","../../src/rules-engine/asset.rules-engine.module.ts","../../src/rules-engine/o3r-dynamic-content-rules-engine.ts"],"sourcesContent":["import type {\n RulesEngineAction,\n} from '@o3r/core';\n\n/** ActionUpdateAssetBlock */\nexport const RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE = 'UPDATE_ASSET';\n\n/**\n * Content of action that updates asset\n */\nexport interface ActionUpdateAssetBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE;\n asset: string;\n value: string;\n}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n Store,\n} from '@ngrx/store';\nimport type {\n RulesEngineActionHandler,\n} from '@o3r/core';\nimport {\n ActionUpdateAssetBlock,\n RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE,\n} from './asset.interfaces';\nimport {\n AssetPathOverrideStore,\n setAssetPathOverride,\n} from '@o3r/dynamic-content';\n\n/**\n * Service to handle async Asset actions\n */\n@Injectable()\nexport class AssetRulesEngineActionHandler implements RulesEngineActionHandler<ActionUpdateAssetBlock> {\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE] as const;\n\n constructor(private readonly store: Store<AssetPathOverrideStore>) {}\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdateAssetBlock[]): void | Promise<void> {\n const assetPathOverrides = actions.reduce<Record<string, string>>((acc, { asset, value }) => {\n acc[asset] = value;\n return acc;\n }, {});\n\n this.store.dispatch(setAssetPathOverride({ state: { assetPathOverrides } }));\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n AssetRulesEngineActionHandler,\n} from './asset.handler-action';\nimport {\n AssetPathOverrideStoreModule,\n} from '@o3r/dynamic-content';\n\n@NgModule({\n imports: [\n AssetPathOverrideStoreModule\n ],\n providers: [\n AssetRulesEngineActionHandler\n ]\n})\nexport class AssetRulesEngineActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAIA;AACO,MAAM,qCAAqC,GAAG;;ACarD;;AAEG;MAEU,6BAA6B,CAAA;AAIxC,IAAA,WAAA,CAA6B,KAAoC,EAAA;QAApC,IAAK,CAAA,KAAA,GAAL,KAAK;;AAFlB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,qCAAqC,CAAU;;;AAK7E,IAAA,cAAc,CAAC,OAAiC,EAAA;AACrD,QAAA,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;AAC1F,YAAA,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK;AAClB,YAAA,OAAO,GAAG;SACX,EAAE,EAAE,CAAC;AAEN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;;iIAbnE,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAA7B,6BAA6B,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC;;;MCHY,4BAA4B,CAAA;iIAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YANrC,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAMnB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAJ5B,SAAA,EAAA;YACT;AACD,SAAA,EAAA,OAAA,EAAA,CAJC,4BAA4B,CAAA,EAAA,CAAA,CAAA;;2FAMnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT;AACD;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"o3r-dynamic-content-rules-engine.mjs","sources":["../../src/rules-engine/asset.interfaces.ts","../../src/rules-engine/asset.handler-action.ts","../../src/rules-engine/asset.rules-engine.module.ts","../../src/rules-engine/o3r-dynamic-content-rules-engine.ts"],"sourcesContent":["import type {\n RulesEngineAction,\n} from '@o3r/core';\n\n/** ActionUpdateAssetBlock */\nexport const RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE = 'UPDATE_ASSET';\n\n/**\n * Content of action that updates asset\n */\nexport interface ActionUpdateAssetBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE;\n asset: string;\n value: string;\n}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n Store,\n} from '@ngrx/store';\nimport type {\n RulesEngineActionHandler,\n} from '@o3r/core';\nimport {\n ActionUpdateAssetBlock,\n RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE,\n} from './asset.interfaces';\nimport {\n AssetPathOverrideStore,\n setAssetPathOverride,\n} from '@o3r/dynamic-content';\n\n/**\n * Service to handle async Asset actions\n */\n@Injectable()\nexport class AssetRulesEngineActionHandler implements RulesEngineActionHandler<ActionUpdateAssetBlock> {\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_ASSET_UPDATE_ACTION_TYPE] as const;\n\n constructor(private readonly store: Store<AssetPathOverrideStore>) {}\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdateAssetBlock[]): void | Promise<void> {\n const assetPathOverrides = actions.reduce<Record<string, string>>((acc, { asset, value }) => {\n acc[asset] = value;\n return acc;\n }, {});\n\n this.store.dispatch(setAssetPathOverride({ state: { assetPathOverrides } }));\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n AssetRulesEngineActionHandler,\n} from './asset.handler-action';\nimport {\n AssetPathOverrideStoreModule,\n} from '@o3r/dynamic-content';\n\n@NgModule({\n imports: [\n AssetPathOverrideStoreModule\n ],\n providers: [\n AssetRulesEngineActionHandler\n ]\n})\nexport class AssetRulesEngineActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAIA;AACO,MAAM,qCAAqC,GAAG;;ACarD;;AAEG;MAEU,6BAA6B,CAAA;AAIxC,IAAA,WAAA,CAA6B,KAAoC,EAAA;QAApC,IAAA,CAAA,KAAK,GAAL,KAAK;;AAFlB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,qCAAqC,CAAU;;;AAK7E,IAAA,cAAc,CAAC,OAAiC,EAAA;AACrD,QAAA,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;AAC1F,YAAA,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK;AAClB,YAAA,OAAO,GAAG;SACX,EAAE,EAAE,CAAC;AAEN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;;kIAbnE,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAA7B,6BAA6B,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC;;;MCHY,4BAA4B,CAAA;kIAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YANrC,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAMnB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,SAAA,EAJ5B;YACT;AACD,SAAA,EAAA,OAAA,EAAA,CAJC,4BAA4B,CAAA,EAAA,CAAA,CAAA;;4FAMnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT;AACD;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}
@@ -47,13 +47,13 @@ class AssetPathOverrideStoreModule {
47
47
  ]
48
48
  };
49
49
  }
50
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetPathOverrideStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
51
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: AssetPathOverrideStoreModule, imports: [i1.StoreFeatureModule] }); }
52
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetPathOverrideStoreModule, providers: [
50
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetPathOverrideStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
51
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: AssetPathOverrideStoreModule, imports: [i1.StoreFeatureModule] }); }
52
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetPathOverrideStoreModule, providers: [
53
53
  { provide: ASSET_PATH_OVERRIDE_REDUCER_TOKEN, useFactory: getDefaultAssetPathOverrideReducer }
54
54
  ], imports: [StoreModule.forFeature(ASSET_PATH_OVERRIDE_STORE_NAME, ASSET_PATH_OVERRIDE_REDUCER_TOKEN)] }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AssetPathOverrideStoreModule, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetPathOverrideStoreModule, decorators: [{
57
57
  type: NgModule,
58
58
  args: [{
59
59
  imports: [
@@ -146,10 +146,10 @@ class DynamicContentService {
146
146
  }
147
147
  return this.store.pipe(select(selectAssetPathOverride), map((entities) => assetPath && entities && entities[assetPath] ? entities[assetPath] : assetPath), map((finalAssetPath) => this.getMediaPath(finalAssetPath)), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
148
148
  }
149
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentService, deps: [{ token: DYNAMIC_CONTENT_BASE_PATH_TOKEN }, { token: CMS_ASSETS_PATH_TOKEN }, { token: i1.Store, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
150
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentService }); }
149
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentService, deps: [{ token: DYNAMIC_CONTENT_BASE_PATH_TOKEN }, { token: CMS_ASSETS_PATH_TOKEN }, { token: i1.Store, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
150
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentService }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentService, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentService, decorators: [{
153
153
  type: Injectable
154
154
  }], ctorParameters: () => [{ type: undefined, decorators: [{
155
155
  type: Inject,
@@ -188,10 +188,10 @@ class O3rDynamicContentPipe {
188
188
  this.onMediaPathChange.unsubscribe();
189
189
  }
190
190
  }
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 }); }
191
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", 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.14", ngImport: i0, type: O3rDynamicContentPipe, isStandalone: false, name: "o3rDynamicContent", pure: false }); }
193
193
  }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: O3rDynamicContentPipe, decorators: [{
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: O3rDynamicContentPipe, decorators: [{
195
195
  type: Pipe,
196
196
  args: [{
197
197
  name: 'o3rDynamicContent',
@@ -243,9 +243,9 @@ class DynamicContentModule {
243
243
  providers
244
244
  };
245
245
  }
246
- /** @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.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, providers: [
246
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
247
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentModule, declarations: [O3rDynamicContentPipe], exports: [O3rDynamicContentPipe] }); }
248
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentModule, providers: [
249
249
  {
250
250
  provide: DYNAMIC_CONTENT_BASE_PATH_TOKEN,
251
251
  useFactory: getDynamicContent
@@ -257,7 +257,7 @@ class DynamicContentModule {
257
257
  DynamicContentService
258
258
  ] }); }
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DynamicContentModule, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DynamicContentModule, decorators: [{
261
261
  type: NgModule,
262
262
  args: [{
263
263
  declarations: [O3rDynamicContentPipe],
@@ -476,10 +476,10 @@ class RequestParametersService {
476
476
  return acc;
477
477
  }, {});
478
478
  }
479
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersService, deps: [{ token: REQUEST_PARAMETERS_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
480
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersService }); }
479
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersService, deps: [{ token: REQUEST_PARAMETERS_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
480
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersService }); }
481
481
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersService, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersService, decorators: [{
483
483
  type: Injectable
484
484
  }], ctorParameters: () => [{ type: undefined, decorators: [{
485
485
  type: Inject,
@@ -508,9 +508,9 @@ class RequestParametersModule {
508
508
  ]
509
509
  };
510
510
  }
511
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
512
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersModule }); }
513
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersModule, providers: [
511
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
512
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersModule }); }
513
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersModule, providers: [
514
514
  {
515
515
  provide: REQUEST_PARAMETERS_CONFIG_TOKEN,
516
516
  useValue: {}
@@ -518,7 +518,7 @@ class RequestParametersModule {
518
518
  RequestParametersService
519
519
  ] }); }
520
520
  }
521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestParametersModule, decorators: [{
521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RequestParametersModule, decorators: [{
522
522
  type: NgModule,
523
523
  args: [{
524
524
  imports: [],
@@ -533,11 +533,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
533
533
  }] });
534
534
 
535
535
  class StyleLazyLoaderModule {
536
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
537
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoaderModule, imports: [DynamicContentModule] }); }
538
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoaderModule, imports: [DynamicContentModule] }); }
536
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
537
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoaderModule, imports: [DynamicContentModule] }); }
538
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoaderModule, imports: [DynamicContentModule] }); }
539
539
  }
540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoaderModule, decorators: [{
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoaderModule, decorators: [{
541
541
  type: NgModule,
542
542
  args: [{
543
543
  imports: [DynamicContentModule]
@@ -586,10 +586,10 @@ class StyleLazyLoader {
586
586
  styleUrlConfig.href = dynamicContentPath;
587
587
  this.loadStyleFromURL(styleUrlConfig);
588
588
  }
589
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoader, deps: [{ token: DynamicContentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
590
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoader, providedIn: StyleLazyLoaderModule }); }
589
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoader, deps: [{ token: DynamicContentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
590
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoader, providedIn: StyleLazyLoaderModule }); }
591
591
  }
592
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StyleLazyLoader, decorators: [{
592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StyleLazyLoader, decorators: [{
593
593
  type: Injectable,
594
594
  args: [{
595
595
  providedIn: StyleLazyLoaderModule
@@ -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 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/dynamic-content",
3
- "version": "12.1.8",
3
+ "version": "12.1.11",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -42,14 +42,15 @@
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.1.8",
46
- "@o3r/schematics": "^12.1.8",
45
+ "@o3r/core": "^12.1.11",
46
+ "@o3r/schematics": "^12.1.11",
47
47
  "@schematics/angular": "^19.0.0",
48
48
  "cheerio": "^1.0.0-rc.10",
49
49
  "express-interceptor": "^1.2.0",
50
50
  "jasmine": "^5.0.0",
51
51
  "rxjs": "^7.8.1",
52
- "ts-node": "~10.9.2"
52
+ "ts-node": "~10.9.2",
53
+ "type-fest": "^4.30.1"
53
54
  },
54
55
  "peerDependenciesMeta": {
55
56
  "@angular-devkit/schematics": {
@@ -69,6 +70,9 @@
69
70
  },
70
71
  "jasmine": {
71
72
  "optional": true
73
+ },
74
+ "type-fest": {
75
+ "optional": true
72
76
  }
73
77
  },
74
78
  "dependencies": {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAyBlB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,qBAAqB,KAAG,IAKtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACL,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AA4DlB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,qBAAqB,KAAG,IAKtD,CAAC"}
@@ -8,17 +8,46 @@ const reportMissingSchematicsDep = (logger) => (reason) => {
8
8
  You need to install '@o3r/schematics' to be able to use the o3r apis-manager package. Please run 'ng add @o3r/schematics' .`);
9
9
  throw reason;
10
10
  };
11
+ /**
12
+ * List of external dependencies to be added to the project as peer dependencies
13
+ */
14
+ const dependenciesToInstall = [
15
+ '@angular/core',
16
+ '@angular/platform-browser-dynamic',
17
+ '@ngrx/store',
18
+ 'rxjs'
19
+ ];
20
+ /**
21
+ * List of external dependencies to be added to the project as dev dependencies
22
+ */
23
+ const devDependenciesToInstall = [
24
+ '@angular/compiler-cli',
25
+ 'rxjs'
26
+ ];
11
27
  /**
12
28
  * Add Otter dynamic-content to an Angular Project
13
29
  * @param options
14
30
  */
15
31
  function ngAddFn(options) {
16
32
  /* ng add rules */
17
- return async (tree) => {
18
- const { getPackageInstallConfig, setupDependencies } = await Promise.resolve().then(() => require('@o3r/schematics'));
33
+ return async (tree, context) => {
34
+ const { getExternalDependenciesInfo, getPackageInstallConfig, getWorkspaceConfig, setupDependencies } = await Promise.resolve().then(() => require('@o3r/schematics'));
35
+ const workspaceProject = options.projectName ? getWorkspaceConfig(tree)?.projects[options.projectName] : undefined;
36
+ const projectDirectory = workspaceProject?.root || '.';
37
+ const projectPackageJson = tree.readJson(path.posix.join(projectDirectory, 'package.json'));
38
+ const externalDependenciesInfo = getExternalDependenciesInfo({
39
+ devDependenciesToInstall,
40
+ dependenciesToInstall,
41
+ projectType: workspaceProject?.projectType,
42
+ o3rPackageJsonPath: packageJsonPath,
43
+ projectPackageJson
44
+ }, context.logger);
19
45
  return setupDependencies({
20
46
  projectName: options.projectName,
21
- dependencies: getPackageInstallConfig(packageJsonPath, tree, options.projectName, false, !!options.exactO3rVersion)
47
+ dependencies: {
48
+ ...getPackageInstallConfig(packageJsonPath, tree, options.projectName, false, !!options.exactO3rVersion),
49
+ ...externalDependenciesInfo
50
+ }
22
51
  });
23
52
  };
24
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAQlC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,MAA2C,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;IAClG,MAAM,CAAC,KAAK,CAAC;4HAC6G,CAAC,CAAC;IAC5H,MAAM,MAAM,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,kBAAkB;IAClB,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,2CAAa,iBAAiB,EAAC,CAAC;QACvF,OAAO,iBAAiB,CAAC;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,uBAAuB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;SACpH,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACrF,MAAM,EACJ,oBAAoB,EACrB,GAAG,MAAM,qCAAO,iBAAiB,GAAE,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAWlC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,MAA2C,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;IAClG,MAAM,CAAC,KAAK,CAAC;4HAC6G,CAAC,CAAC;IAC5H,MAAM,MAAM,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,eAAe;IACf,mCAAmC;IACnC,aAAa;IACb,MAAM;CACP,CAAC;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAAG;IAC/B,uBAAuB;IACvB,MAAM;CACP,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,kBAAkB;IAClB,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,2CAAa,iBAAiB,EAAC,CAAC;QACxI,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,IAAI,IAAI,GAAG,CAAC;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAgB,CAAC;QAE3G,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;YAC3D,wBAAwB;YACxB,qBAAqB;YACrB,WAAW,EAAE,gBAAgB,EAAE,WAAW;YAC1C,kBAAkB,EAAE,eAAe;YACnC,kBAAkB;SACnB,EACD,OAAO,CAAC,MAAM,CACb,CAAC;QAEF,OAAO,iBAAiB,CAAC;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE;gBACZ,GAAG,uBAAuB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;gBACxG,GAAG,wBAAwB;aAC5B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACrF,MAAM,EACJ,oBAAoB,EACrB,GAAG,MAAM,qCAAO,iBAAiB,GAAE,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}