# @acoustic-content-sdk/component-utils

> Framework independent collection of utility functions to implement services and components for sites next.

Latest version **9.0.10076** (published 2020-03-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install @acoustic-content-sdk/component-utils
pnpm add @acoustic-content-sdk/component-utils
yarn add @acoustic-content-sdk/component-utils
bun add @acoustic-content-sdk/component-utils
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 9.0.10076 |
| Published | 2020-03-26 |
| First published | 2020-01-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 4 |
| Unpacked size | 922.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Carsten Leue |
| Maintainers | carstenleue, daherbst, jim.patrick, joe.john, kevintap, mburati, neelkanthpatel, orenaksakal |
| Keywords | acoustic, acoustic-content, sdk |

## Links

- npm: https://www.npmjs.com/package/@acoustic-content-sdk/component-utils
- npm.io page: https://npm.io/package/@acoustic-content-sdk/component-utils

## Dependencies (4)

- [@acoustic-content-sdk/api](https://npm.io/package/@acoustic-content-sdk/api.md) 9.0.10076
- [@acoustic-content-sdk/utils](https://npm.io/package/@acoustic-content-sdk/utils.md) 9.0.10076
- [@acoustic-content-sdk/rest-api](https://npm.io/package/@acoustic-content-sdk/rest-api.md) 9.0.10076
- [@acoustic-content-sdk/component-api](https://npm.io/package/@acoustic-content-sdk/component-api.md) 9.0.10076

## Recent versions

- 9.0.10076 (latest) — 2020-03-26
- 9.0.10067 — 2020-03-25
- 9.0.10040 — 2020-03-20
- 9.0.10034 — 2020-03-20
- 9.0.495 — 2020-03-09
- 9.0.493 — 2020-03-08
- 9.0.462 — 2020-03-05
- 9.0.407 — 2020-02-28
- 9.0.384 — 2020-02-25
- 9.0.361 — 2020-02-21
- 9.0.360 — 2020-02-21
- 9.0.271 — 2020-02-11
- 9.0.270 — 2020-02-11
- 9.0.251 — 2020-02-07
- 9.0.242 — 2020-02-06
- … 4 more at https://npm.io/package/@acoustic-content-sdk/component-utils/versions

## README

<a name="_aa8da2f6c51e234aab957b3b92a9dc8a91db3b68e1b4c9caf972cecb15bc27e2"></a>
[![npm](https://img.shields.io/npm/v/@acoustic-content-sdk/component-utils.svg?style=flat-square)](https://www.npmjs.com/package/@acoustic-content-sdk/component-utils)

Framework independent collection of utility functions to implement services and components for sites next.

## Table of Contents

- [API Documentation](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0)

<a name="_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0)

## component-utils package

Framework independent collection of utility functions to implement services and components for sites next.

## Classes

|  Class | Description |
|  --- | --- |
|  [AbstractComponentResolverService](#_052cff19d84875d4291fa47bd512029df8c29cf3c8d18581e68db856f2bca33c) | Base class for component type resolvers |
|  [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef) |  |
|  [AbstractDeliverySearchResolverService](#_1b8c2741d4443f7750373bfde437fbb1b09324d9ac1646d33860f50fc18fbf76) |  |
|  [AbstractLayoutMappingResolver](#_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3) |  |
|  [AbstractLayoutResolverService](#_2887c6d134ca8842b13a43772be66613be3c57023bba9dd2e9cebf5fac1be8d0) |  |
|  [AbstractProtectedContentService](#_62eb143440211d0361af640bfe48cc18b9565df8efb370f96a894a4525b59d8a) | Service to tell whether or not to serve protected content |
|  [AbstractRenderingContextResolverService](#_0929500244afa8f9f1b646bf12a579383b0d2ed5e45c3f3279f96fc6bbb4f24c) | Implementation of a service that resolves the outbound parts of a rendering context |
|  [AbstractWchPageService](#_b5ad17d3d4885d8360c01c54a61bc94f3a2bea0d284715a8ef116183bc573d97) |  |

## Functions

|  Function | Description |
|  --- | --- |
|  [assertSameOrigin(aLeft, aRight, aLogSvc)](#_80a85eb0aef5809607422f24ee6122bf4d31ebd1bab7a6051c51bc777b08ef67) | Validates that the origin of both windows is the same, otherwise throws an exception |
|  [createLayoutComponentDecorator(aComponentConsumer, aLayoutMappingConsumer)](#_011c5c6af87c72fd879dc37c8b37ef2bac870aeb51b2338687878adb08e9c62e) | Layout decorator and metadata. |
|  [createLayoutMappingDecorator(aLayoutMappingConsumer)](#_d4ba0340f776d04a3571a40794d5f8e0ff7c7994a8d0996d9d03ef7f28c5acc0) | Constructs the laout mapping decorator. Will callback the given function with the decorated object |
|  [getEditHostWindow(aCurrentWindow)](#_1a7530ea49de2df5a2ed80abf041f9f2dff98d6c78e8b4302bfa9bd146eafe4e) | Returns the window that controls the application. This is either the parent window or the opener window. |

## Interfaces

|  Interface | Description |
|  --- | --- |
|  [AbstractRegisteredComponent](#_2e02a0e4c439c04bce2da604509657a113d72193fcf5647fef73d53a1def1c7c) |  |
|  [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0) |  |

## Variables

|  Variable | Description |
|  --- | --- |
|  [DEFAULT\_LAYOUT\_ID](#_bd26df307aaeeeab2ae87166c5606d7041df3cfe5898b274afdeaee353ca4362) | name of the default layout |
|  [PAGE\_NOT\_FOUND\_LAYOUT\_ID](#_6c0d93b31f9be0fbe86940ecc8f9d46473abffb17b78b9d4729999da5e9d1525) |  |
|  [selectId](#_8b8f690f9964cfe180631b8d44c6e7b4e6d9e73b69ae742226b31e8303891862) |  |
|  [selectIdFromRenderingContext](#_cd4b510736f6ccfd4c6210d33d896e4b175b860604e8a82f45c831c815f8cc5f) |  |
|  [selectMetadata](#_d89464159a5837bfcec79bb63d3c2b9b5f1e4997cb08e797f9a3146482afdece) |  |
|  [VERSION](#_91fbcde565acc176dfa5c2fdb824e8ef484643015c8801a0d5d16f40d18ab97a) | Version and build number of the package |

## Type Aliases

|  Type Alias | Description |
|  --- | --- |
|  [SendRequest](#_78fa289cd33eff602874c66fb80d179c5416b2a237f0aec0cd92f9a9f507eae4) |  |


<a name="_aa8da2f6c51e234aab957b3b92a9dc8a91db3b68e1b4c9caf972cecb15bc27e2"></a>

<a name="_052cff19d84875d4291fa47bd512029df8c29cf3c8d18581e68db856f2bca33c"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentResolverService](#_052cff19d84875d4291fa47bd512029df8c29cf3c8d18581e68db856f2bca33c)

## AbstractComponentResolverService class

Base class for component type resolvers

<b>Signature:</b>

```typescript
export declare class AbstractComponentResolverService<TYPE> implements AbstractComponentResolver<TYPE> 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aComponentsService, aLayoutResolverService, aLayoutMappingService, aComponentTypeRefResolvers, aLogSvc)](#_0f5458ec54a43dde2929cb2576289432b6ea2f6aad21c607856e18c161523d5c) |  | Constructs a new instance of the <code>AbstractComponentResolverService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [resolveComponent](#_057907990190c0b4c5654b14f91f1c9245e3f124e7db71405a7bc0bce1b143ca) |  | <code>(aRenderingContext: RenderingContextV2, aLayoutMode?: string) =&gt; Observable&lt;TYPE&gt;</code> |  |


<a name="_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef)

## AbstractComponentsService class

<b>Signature:</b>

```typescript
export declare class AbstractComponentsService<TYPE> implements AbstractComponentsRegistry<TYPE> 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aDefaultComponent, aPredicate, aLogSvc)](#_adaa8bd046206ea70b80efba77faa6340a1b9347bef5a3cc2856d30d6bdaf69c) |  | Initializes our constructor. We make sure to keep all private instance variables as part of the closure and override the methods on the instance level. Since this is a singleton service, that approach does not cause a performance problem. |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [getTypeByLayout](#_7c7b94668cb2f672831210c37921ef936b014bf2b7983e0162eda46d2e8045fd) |  | <code>(aLayout: Layout, aLayoutMode?: string) =&gt; Observable&lt;TYPE&gt;</code> | Returns the type object based on the layout configuration |
|  [getTypeBySelector](#_b7de8c390d9668c62bdb20525b80339b521bbc14ff0fb3de014738c4962881c6) |  | <code>(aSelector: string, aLayoutMode?: string) =&gt; Observable&lt;TYPE&gt;</code> | Returns the type object based on the layout selector |
|  [registerType](#_c999bbba265a26bf208a529915c5ff3cb9d002806324807b7542cfd532698d8b) |  | <code>(aController: string &#124; string[], aType: TYPE, aLayoutModes?: string &#124; string[]) =&gt; void</code> | define the methods |


<a name="_1b8c2741d4443f7750373bfde437fbb1b09324d9ac1646d33860f50fc18fbf76"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractDeliverySearchResolverService](#_1b8c2741d4443f7750373bfde437fbb1b09324d9ac1646d33860f50fc18fbf76)

## AbstractDeliverySearchResolverService class

<b>Signature:</b>

```typescript
export declare class AbstractDeliverySearchResolverService implements DeliverySearchResolver 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aFetchText, aProtected, aSeedResolver, aLogSvc)](#_6b869b8248ea28bbcaf696612ef4f2939cb676be2f8a8dd321b2eacba77439d3) |  | Constructs a new instance of the <code>AbstractDeliverySearchResolverService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [getDeliverySearchResults](#_4effdc122a48688703111b0705aaaade10fc2b6bff35601c92b942051f84f2fb) |  | <code>&lt;T&gt;(aQuery: QueryInput, aClassification: string) =&gt; Observable&lt;SearchResults&lt;T&gt;&gt;</code> |  |


<a name="_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutMappingResolver](#_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3)

## AbstractLayoutMappingResolver class

<b>Signature:</b>

```typescript
export declare class AbstractLayoutMappingResolver implements LayoutMappingResolver 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)()](#_e77dd7bd905ed353b91e94fcc70af5fa5a71eea087ba4d464a1eafefe23245ba) |  | Constructs a new instance of the <code>AbstractLayoutMappingResolver</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [getSelector](#_acbfa712869a7626f0d893e7e4e06fcc5fa4f6668bbbe4b340a96fe77fa51370) |  | <code>(aLayoutMode: string, aRenderingContext: RenderingContextV2) =&gt; string &#124; undefined</code> | Returns the layout selector based on the rendering context |
|  [registerMapping](#_04b0768a16e55cc3293fc25451d88364f7d5d034b279fda5bae2b5f611477b2e) |  | <code>(aId: string &#124; string[], aSelector: string &#124; string[], aLayoutMode?: string &#124; string[]) =&gt; void</code> | Registers a layout mapping |


<a name="_2887c6d134ca8842b13a43772be66613be3c57023bba9dd2e9cebf5fac1be8d0"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutResolverService](#_2887c6d134ca8842b13a43772be66613be3c57023bba9dd2e9cebf5fac1be8d0)

## AbstractLayoutResolverService class

<b>Signature:</b>

```typescript
export declare class AbstractLayoutResolverService implements LayoutResolver 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aDeliveryTypeResolver, aDeliveryLayoutMappingResolver, aDeliveryLayoutResolver, aLogSvc)](#_3cd75ad66fc46ce5c2e3f9027ba6d4aa63563465cfaa7558bfd20e902a1a8e96) |  | Constructs a new instance of the <code>AbstractLayoutResolverService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [resolveLayout](#_77246f5c3d4ae633119581a3b6d84057eaedbff92dee2bf8fbd254fdc63c0f6f) |  | <code>(aLayoutMode: string, aRenderingContext: RenderingContextV2) =&gt; Observable&lt;Layout&gt;</code> |  |


<a name="_62eb143440211d0361af640bfe48cc18b9565df8efb370f96a894a4525b59d8a"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractProtectedContentService](#_62eb143440211d0361af640bfe48cc18b9565df8efb370f96a894a4525b59d8a)

## AbstractProtectedContentService class

Service to tell whether or not to serve protected content

<b>Signature:</b>

```typescript
export declare class AbstractProtectedContentService implements ProtectedContent 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aUrlConfig$, aAuthStatus, aLogSvc)](#_a8827b9357e05b325165c3b2669270d61007be595bd37cddf0893f35123c566d) |  | Constructs a new instance of the <code>AbstractProtectedContentService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [protected$](#_5cd7a7340f6456b370cecebfab217718118e466882d4ec12f8cfc73ab1192314) |  | <code>Observable&lt;boolean&gt;</code> |  |


<a name="_0929500244afa8f9f1b646bf12a579383b0d2ed5e45c3f3279f96fc6bbb4f24c"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRenderingContextResolverService](#_0929500244afa8f9f1b646bf12a579383b0d2ed5e45c3f3279f96fc6bbb4f24c)

## AbstractRenderingContextResolverService class

Implementation of a service that resolves the outbound parts of a rendering context

<b>Signature:</b>

```typescript
export declare class AbstractRenderingContextResolverService implements RenderingContextResolver 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aDeliveryContentResolver, aLogSvc)](#_e3cd82f16aa2dbfe8be01a5cf2dc9e37ccb1eb2c47ad166f374b49927d9b48cd) |  | Constructs a new instance of the <code>AbstractRenderingContextResolverService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [resolveRenderingContext](#_b70b11017b2c493aecb5003fc49164f725eca3dbaaa69d21e818eadae9d72a5b) |  | <code>(aItem: RenderingContextInput, aProvider: RenderingContextProviderV2) =&gt; Observable&lt;RenderingContextV2&gt;</code> |  |


<a name="_b5ad17d3d4885d8360c01c54a61bc94f3a2bea0d284715a8ef116183bc573d97"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractWchPageService](#_b5ad17d3d4885d8360c01c54a61bc94f3a2bea0d284715a8ef116183bc573d97)

## AbstractWchPageService class

<b>Signature:</b>

```typescript
export declare class AbstractWchPageService implements WchPageService 
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(aDeliveryPageResolver, aUrlConfig$, aLogSvc)](#_1cecd96dbaf79aa007bd23ec2dbebbddb03a4335b156af23380595abd0eaeafa) |  | Constructs a new instance of the <code>AbstractWchPageService</code> class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [getRenderingContextByPath](#_67dd8eef10cea637dd92e853f54a0235a2a2fd17d7be2f7f60ac0fb4fb21fe81) |  | <code>(aPath: string) =&gt; Observable&lt;RenderingContextV2 &#124; null &#124; undefined&gt;</code> | Resolves the rendering context given the path |


<a name="_80a85eb0aef5809607422f24ee6122bf4d31ebd1bab7a6051c51bc777b08ef67"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [assertSameOrigin](#_80a85eb0aef5809607422f24ee6122bf4d31ebd1bab7a6051c51bc777b08ef67)

## assertSameOrigin() function

Validates that the origin of both windows is the same, otherwise throws an exception

<b>Signature:</b>

```typescript
export declare function assertSameOrigin(aLeft: WindowType, aRight: WindowType, aLogSvc?: LoggerService): void;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aLeft | <code>WindowType</code> | left window to check |
|  aRight | <code>WindowType</code> | right window to check |
|  aLogSvc | <code>LoggerService</code> | optionally the logger service |

<b>Returns:</b>

`void`


<a name="_011c5c6af87c72fd879dc37c8b37ef2bac870aeb51b2338687878adb08e9c62e"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [createLayoutComponentDecorator](#_011c5c6af87c72fd879dc37c8b37ef2bac870aeb51b2338687878adb08e9c62e)

## createLayoutComponentDecorator() function

Layout decorator and metadata.

<b>Signature:</b>

```typescript
export declare function createLayoutComponentDecorator<TYPE, DIRECTIVE extends AbstractLayoutComponentDirective>(aComponentConsumer: BiConsumer<TYPE, AbstractRegisteredComponent<TYPE, DIRECTIVE>>, aLayoutMappingConsumer: BiConsumer<TYPE, AbstractRegisteredLayoutMapping<TYPE>>): <T extends TYPE>(aDirective?: DIRECTIVE) => (cls: T) => void;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aComponentConsumer | <code>BiConsumer&lt;TYPE, AbstractRegisteredComponent&lt;TYPE, DIRECTIVE&gt;&gt;</code> |  |
|  aLayoutMappingConsumer | <code>BiConsumer&lt;TYPE, AbstractRegisteredLayoutMapping&lt;TYPE&gt;&gt;</code> |  |

<b>Returns:</b>

`<T extends TYPE>(aDirective?: DIRECTIVE) => (cls: T) => void`


<a name="_d4ba0340f776d04a3571a40794d5f8e0ff7c7994a8d0996d9d03ef7f28c5acc0"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [createLayoutMappingDecorator](#_d4ba0340f776d04a3571a40794d5f8e0ff7c7994a8d0996d9d03ef7f28c5acc0)

## createLayoutMappingDecorator() function

Constructs the laout mapping decorator. Will callback the given function with the decorated object

<b>Signature:</b>

```typescript
export declare function createLayoutMappingDecorator<TYPE>(aLayoutMappingConsumer: BiConsumer<TYPE, AbstractRegisteredLayoutMapping<TYPE>>): <T extends TYPE>(aID: string | string[] | LayoutMappingDirective, aSelector?: string | string[] | TYPE, aLayoutMode?: string | string[]) => (cls: T) => void;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aLayoutMappingConsumer | <code>BiConsumer&lt;TYPE, AbstractRegisteredLayoutMapping&lt;TYPE&gt;&gt;</code> |  |

<b>Returns:</b>

`<T extends TYPE>(aID: string | string[] | LayoutMappingDirective, aSelector?: string | string[] | TYPE, aLayoutMode?: string | string[]) => (cls: T) => void`


<a name="_1a7530ea49de2df5a2ed80abf041f9f2dff98d6c78e8b4302bfa9bd146eafe4e"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [getEditHostWindow](#_1a7530ea49de2df5a2ed80abf041f9f2dff98d6c78e8b4302bfa9bd146eafe4e)

## getEditHostWindow() function

Returns the window that controls the application. This is either the parent window or the opener window.

<b>Signature:</b>

```typescript
export declare function getEditHostWindow(aCurrentWindow: WindowType): WindowType;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aCurrentWindow | <code>WindowType</code> | the current window |

<b>Returns:</b>

`WindowType`

the controlling window


<a name="_2e02a0e4c439c04bce2da604509657a113d72193fcf5647fef73d53a1def1c7c"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredComponent](#_2e02a0e4c439c04bce2da604509657a113d72193fcf5647fef73d53a1def1c7c)

## AbstractRegisteredComponent interface

<b>Signature:</b>

```typescript
export interface AbstractRegisteredComponent<TYPE, DIRECTIVE extends AbstractLayoutComponentDirective> 
```

## Properties

|  Property | Type | Description |
|  --- | --- | --- |
|  [directive](#_a2e21c9038b6a2a6e126879fb26073543880c773beb95cd7e4b0a0246997f586) | <code>DIRECTIVE</code> |  |
|  [type](#_880a7f99b4b05a1e2f38fcb300cd367ffa4b7315ff633f0f3351c12d18c308be) | <code>TYPE</code> |  |


<a name="_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0)

## AbstractRegisteredLayoutMapping interface

<b>Signature:</b>

```typescript
export interface AbstractRegisteredLayoutMapping<TYPE> 
```

## Properties

|  Property | Type | Description |
|  --- | --- | --- |
|  [id](#_7399b3a8da317d2b1a3cb0b04ffe0a0fe784e6b77f9e42a7d2dd67ab5218e63f) | <code>string &#124; string[]</code> | Type IDs or content IDs to map this to |
|  [kind](#_01a4df882934ff2c0a8f1aa69914f0032a62b1c0f9e61e035d99da2700bf9100) | <code>CONTENT_ITEM_KIND &#124; CONTENT_ITEM_KIND[]</code> | Type IDs to map this to |
|  [layoutMode](#_6acbced73b42a6da2b1637431b2c5cd6fccde5f9a2afdd6d28003e8445ca4ae3) | <code>string &#124; string[]</code> | An optional layout mode used with this layout mapping. |
|  [selector](#_0ed0b82343caf55cba3203f7fabf960ae0a3b9b85995f7e6b9aea95f7ea7cae5) | <code>string &#124; string[] &#124; TYPE</code> | Defines the mapping between the layout controller to the layout implementation. If this property is missing, the selector of the component will be used instead. |


<a name="_bd26df307aaeeeab2ae87166c5606d7041df3cfe5898b274afdeaee353ca4362"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [DEFAULT\_LAYOUT\_ID](#_bd26df307aaeeeab2ae87166c5606d7041df3cfe5898b274afdeaee353ca4362)

## DEFAULT\_LAYOUT\_ID variable

name of the default layout

<b>Signature:</b>

```typescript
DEFAULT_LAYOUT_ID = "wch-default-layout"
```

<a name="_6c0d93b31f9be0fbe86940ecc8f9d46473abffb17b78b9d4729999da5e9d1525"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [PAGE\_NOT\_FOUND\_LAYOUT\_ID](#_6c0d93b31f9be0fbe86940ecc8f9d46473abffb17b78b9d4729999da5e9d1525)

## PAGE\_NOT\_FOUND\_LAYOUT\_ID variable

<b>Signature:</b>

```typescript
PAGE_NOT_FOUND_LAYOUT_ID = "wch-404"
```

<a name="_8b8f690f9964cfe180631b8d44c6e7b4e6d9e73b69ae742226b31e8303891862"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [selectId](#_8b8f690f9964cfe180631b8d44c6e7b4e6d9e73b69ae742226b31e8303891862)

## selectId variable

<b>Signature:</b>

```typescript
selectId: import("rxjs").UnaryFunction<any, any>
```

<a name="_cd4b510736f6ccfd4c6210d33d896e4b175b860604e8a82f45c831c815f8cc5f"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [selectIdFromRenderingContext](#_cd4b510736f6ccfd4c6210d33d896e4b175b860604e8a82f45c831c815f8cc5f)

## selectIdFromRenderingContext variable

<b>Signature:</b>

```typescript
selectIdFromRenderingContext: import("rxjs").UnaryFunction<any, string>
```

<a name="_d89464159a5837bfcec79bb63d3c2b9b5f1e4997cb08e797f9a3146482afdece"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [selectMetadata](#_d89464159a5837bfcec79bb63d3c2b9b5f1e4997cb08e797f9a3146482afdece)

## selectMetadata variable

<b>Signature:</b>

```typescript
selectMetadata: import("rxjs").UnaryFunction<DeliveryReferenceElement | DeliveryContentItem | DeliveryGroupElement | RenderingContextV2, import("@acoustic-content-sdk/api").DeliveryGroupElementMetadata | import("@acoustic-content-sdk/api").DeliveryReferenceElementMetadata | import("@acoustic-content-sdk/api").DeliveryContentMetadata>
```

<a name="_91fbcde565acc176dfa5c2fdb824e8ef484643015c8801a0d5d16f40d18ab97a"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [VERSION](#_91fbcde565acc176dfa5c2fdb824e8ef484643015c8801a0d5d16f40d18ab97a)

## VERSION variable

Version and build number of the package

<b>Signature:</b>

```typescript
VERSION: {
    version: {
        major: string;
        minor: string;
        patch: string;
        branch: string;
    };
    build: Date;
}
```

<a name="_78fa289cd33eff602874c66fb80d179c5416b2a237f0aec0cd92f9a9f507eae4"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [SendRequest](#_78fa289cd33eff602874c66fb80d179c5416b2a237f0aec0cd92f9a9f507eae4)

## SendRequest type

<b>Signature:</b>

```typescript
export declare type SendRequest = <T>(aUrl: string, aCredentials: boolean) => Observable<T>;
```

<a name="_0f5458ec54a43dde2929cb2576289432b6ea2f6aad21c607856e18c161523d5c"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentResolverService](#_052cff19d84875d4291fa47bd512029df8c29cf3c8d18581e68db856f2bca33c) &gt; [(constructor)](#_0f5458ec54a43dde2929cb2576289432b6ea2f6aad21c607856e18c161523d5c)

## AbstractComponentResolverService.(constructor)

Constructs a new instance of the `AbstractComponentResolverService` class

<b>Signature:</b>

```typescript
protected constructor(aComponentsService: AbstractComponentsService<TYPE>, aLayoutResolverService: LayoutResolver, aLayoutMappingService: LayoutMappingResolver, aComponentTypeRefResolvers?: AbstractComponentTypeRefResolver<TYPE>[], aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aComponentsService | <code>AbstractComponentsService&lt;TYPE&gt;</code> |  |
|  aLayoutResolverService | <code>LayoutResolver</code> |  |
|  aLayoutMappingService | <code>LayoutMappingResolver</code> |  |
|  aComponentTypeRefResolvers | <code>AbstractComponentTypeRefResolver&lt;TYPE&gt;[]</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_057907990190c0b4c5654b14f91f1c9245e3f124e7db71405a7bc0bce1b143ca"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentResolverService](#_052cff19d84875d4291fa47bd512029df8c29cf3c8d18581e68db856f2bca33c) &gt; [resolveComponent](#_057907990190c0b4c5654b14f91f1c9245e3f124e7db71405a7bc0bce1b143ca)

## AbstractComponentResolverService.resolveComponent property

<b>Signature:</b>

```typescript
resolveComponent: (aRenderingContext: RenderingContextV2, aLayoutMode?: string) => Observable<TYPE>;
```

<a name="_adaa8bd046206ea70b80efba77faa6340a1b9347bef5a3cc2856d30d6bdaf69c"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef) &gt; [(constructor)](#_adaa8bd046206ea70b80efba77faa6340a1b9347bef5a3cc2856d30d6bdaf69c)

## AbstractComponentsService.(constructor)

Initializes our constructor. We make sure to keep all private instance variables as part of the closure and override the methods on the instance level. Since this is a singleton service, that approach does not cause a performance problem.

<b>Signature:</b>

```typescript
protected constructor(aDefaultComponent: TYPE, aPredicate: EqualsPredicate<TYPE>, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aDefaultComponent | <code>TYPE</code> |  |
|  aPredicate | <code>EqualsPredicate&lt;TYPE&gt;</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_7c7b94668cb2f672831210c37921ef936b014bf2b7983e0162eda46d2e8045fd"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef) &gt; [getTypeByLayout](#_7c7b94668cb2f672831210c37921ef936b014bf2b7983e0162eda46d2e8045fd)

## AbstractComponentsService.getTypeByLayout property

Returns the type object based on the layout configuration

<b>Signature:</b>

```typescript
getTypeByLayout: (aLayout: Layout, aLayoutMode?: string) => Observable<TYPE>;
```

<a name="_b7de8c390d9668c62bdb20525b80339b521bbc14ff0fb3de014738c4962881c6"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef) &gt; [getTypeBySelector](#_b7de8c390d9668c62bdb20525b80339b521bbc14ff0fb3de014738c4962881c6)

## AbstractComponentsService.getTypeBySelector property

Returns the type object based on the layout selector

<b>Signature:</b>

```typescript
getTypeBySelector: (aSelector: string, aLayoutMode?: string) => Observable<TYPE>;
```

<a name="_c999bbba265a26bf208a529915c5ff3cb9d002806324807b7542cfd532698d8b"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractComponentsService](#_38a2235a315e70b611c4606bbd950193cd09c3a19b413e92007c233e27f970ef) &gt; [registerType](#_c999bbba265a26bf208a529915c5ff3cb9d002806324807b7542cfd532698d8b)

## AbstractComponentsService.registerType property

define the methods

<b>Signature:</b>

```typescript
registerType: (aController: string | string[], aType: TYPE, aLayoutModes?: string | string[]) => void;
```

<a name="_6b869b8248ea28bbcaf696612ef4f2939cb676be2f8a8dd321b2eacba77439d3"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractDeliverySearchResolverService](#_1b8c2741d4443f7750373bfde437fbb1b09324d9ac1646d33860f50fc18fbf76) &gt; [(constructor)](#_6b869b8248ea28bbcaf696612ef4f2939cb676be2f8a8dd321b2eacba77439d3)

## AbstractDeliverySearchResolverService.(constructor)

Constructs a new instance of the `AbstractDeliverySearchResolverService` class

<b>Signature:</b>

```typescript
protected constructor(aFetchText: FetchText, aProtected: ProtectedContent, aSeedResolver?: SeedResolver, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aFetchText | <code>FetchText</code> |  |
|  aProtected | <code>ProtectedContent</code> |  |
|  aSeedResolver | <code>SeedResolver</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_4effdc122a48688703111b0705aaaade10fc2b6bff35601c92b942051f84f2fb"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractDeliverySearchResolverService](#_1b8c2741d4443f7750373bfde437fbb1b09324d9ac1646d33860f50fc18fbf76) &gt; [getDeliverySearchResults](#_4effdc122a48688703111b0705aaaade10fc2b6bff35601c92b942051f84f2fb)

## AbstractDeliverySearchResolverService.getDeliverySearchResults property

<b>Signature:</b>

```typescript
getDeliverySearchResults: <T>(aQuery: QueryInput, aClassification: string) => Observable<SearchResults<T>>;
```

<a name="_e77dd7bd905ed353b91e94fcc70af5fa5a71eea087ba4d464a1eafefe23245ba"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutMappingResolver](#_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3) &gt; [(constructor)](#_e77dd7bd905ed353b91e94fcc70af5fa5a71eea087ba4d464a1eafefe23245ba)

## AbstractLayoutMappingResolver.(constructor)

Constructs a new instance of the `AbstractLayoutMappingResolver` class

<b>Signature:</b>

```typescript
protected constructor();
```

<a name="_acbfa712869a7626f0d893e7e4e06fcc5fa4f6668bbbe4b340a96fe77fa51370"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutMappingResolver](#_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3) &gt; [getSelector](#_acbfa712869a7626f0d893e7e4e06fcc5fa4f6668bbbe4b340a96fe77fa51370)

## AbstractLayoutMappingResolver.getSelector property

Returns the layout selector based on the rendering context

<b>Signature:</b>

```typescript
getSelector: (aLayoutMode: string, aRenderingContext: RenderingContextV2) => string | undefined;
```

<a name="_04b0768a16e55cc3293fc25451d88364f7d5d034b279fda5bae2b5f611477b2e"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutMappingResolver](#_317008d9d9602e054e576ee3fefc149abb37999eec5fb9699aedd54b414117f3) &gt; [registerMapping](#_04b0768a16e55cc3293fc25451d88364f7d5d034b279fda5bae2b5f611477b2e)

## AbstractLayoutMappingResolver.registerMapping property

Registers a layout mapping

<b>Signature:</b>

```typescript
registerMapping: (aId: string | string[], aSelector: string | string[], aLayoutMode?: string | string[]) => void;
```

<a name="_a8827b9357e05b325165c3b2669270d61007be595bd37cddf0893f35123c566d"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractProtectedContentService](#_62eb143440211d0361af640bfe48cc18b9565df8efb370f96a894a4525b59d8a) &gt; [(constructor)](#_a8827b9357e05b325165c3b2669270d61007be595bd37cddf0893f35123c566d)

## AbstractProtectedContentService.(constructor)

Constructs a new instance of the `AbstractProtectedContentService` class

<b>Signature:</b>

```typescript
protected constructor(aUrlConfig$: Observable<UrlConfig>, aAuthStatus: AuthStatus, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aUrlConfig$ | <code>Observable&lt;UrlConfig&gt;</code> |  |
|  aAuthStatus | <code>AuthStatus</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_5cd7a7340f6456b370cecebfab217718118e466882d4ec12f8cfc73ab1192314"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractProtectedContentService](#_62eb143440211d0361af640bfe48cc18b9565df8efb370f96a894a4525b59d8a) &gt; [protected$](#_5cd7a7340f6456b370cecebfab217718118e466882d4ec12f8cfc73ab1192314)

## AbstractProtectedContentService.protected$ property

<b>Signature:</b>

```typescript
protected$: Observable<boolean>;
```

<a name="_3cd75ad66fc46ce5c2e3f9027ba6d4aa63563465cfaa7558bfd20e902a1a8e96"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutResolverService](#_2887c6d134ca8842b13a43772be66613be3c57023bba9dd2e9cebf5fac1be8d0) &gt; [(constructor)](#_3cd75ad66fc46ce5c2e3f9027ba6d4aa63563465cfaa7558bfd20e902a1a8e96)

## AbstractLayoutResolverService.(constructor)

Constructs a new instance of the `AbstractLayoutResolverService` class

<b>Signature:</b>

```typescript
protected constructor(aDeliveryTypeResolver: DeliveryTypeResolver, aDeliveryLayoutMappingResolver: DeliveryLayoutMappingResolver, aDeliveryLayoutResolver: DeliveryLayoutResolver, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aDeliveryTypeResolver | <code>DeliveryTypeResolver</code> |  |
|  aDeliveryLayoutMappingResolver | <code>DeliveryLayoutMappingResolver</code> |  |
|  aDeliveryLayoutResolver | <code>DeliveryLayoutResolver</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_77246f5c3d4ae633119581a3b6d84057eaedbff92dee2bf8fbd254fdc63c0f6f"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractLayoutResolverService](#_2887c6d134ca8842b13a43772be66613be3c57023bba9dd2e9cebf5fac1be8d0) &gt; [resolveLayout](#_77246f5c3d4ae633119581a3b6d84057eaedbff92dee2bf8fbd254fdc63c0f6f)

## AbstractLayoutResolverService.resolveLayout property

<b>Signature:</b>

```typescript
resolveLayout: (aLayoutMode: string, aRenderingContext: RenderingContextV2) => Observable<Layout>;
```

<a name="_1cecd96dbaf79aa007bd23ec2dbebbddb03a4335b156af23380595abd0eaeafa"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractWchPageService](#_b5ad17d3d4885d8360c01c54a61bc94f3a2bea0d284715a8ef116183bc573d97) &gt; [(constructor)](#_1cecd96dbaf79aa007bd23ec2dbebbddb03a4335b156af23380595abd0eaeafa)

## AbstractWchPageService.(constructor)

Constructs a new instance of the `AbstractWchPageService` class

<b>Signature:</b>

```typescript
protected constructor(aDeliveryPageResolver: DeliveryPageResolver, aUrlConfig$: Observable<UrlConfig>, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aDeliveryPageResolver | <code>DeliveryPageResolver</code> |  |
|  aUrlConfig$ | <code>Observable&lt;UrlConfig&gt;</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_67dd8eef10cea637dd92e853f54a0235a2a2fd17d7be2f7f60ac0fb4fb21fe81"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractWchPageService](#_b5ad17d3d4885d8360c01c54a61bc94f3a2bea0d284715a8ef116183bc573d97) &gt; [getRenderingContextByPath](#_67dd8eef10cea637dd92e853f54a0235a2a2fd17d7be2f7f60ac0fb4fb21fe81)

## AbstractWchPageService.getRenderingContextByPath property

Resolves the rendering context given the path

<b>Signature:</b>

```typescript
getRenderingContextByPath: (aPath: string) => Observable<RenderingContextV2 | null | undefined>;
```

<a name="_e3cd82f16aa2dbfe8be01a5cf2dc9e37ccb1eb2c47ad166f374b49927d9b48cd"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRenderingContextResolverService](#_0929500244afa8f9f1b646bf12a579383b0d2ed5e45c3f3279f96fc6bbb4f24c) &gt; [(constructor)](#_e3cd82f16aa2dbfe8be01a5cf2dc9e37ccb1eb2c47ad166f374b49927d9b48cd)

## AbstractRenderingContextResolverService.(constructor)

Constructs a new instance of the `AbstractRenderingContextResolverService` class

<b>Signature:</b>

```typescript
protected constructor(aDeliveryContentResolver: DeliveryContentResolver, aLogSvc?: LoggerService);
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  aDeliveryContentResolver | <code>DeliveryContentResolver</code> |  |
|  aLogSvc | <code>LoggerService</code> |  |


<a name="_b70b11017b2c493aecb5003fc49164f725eca3dbaaa69d21e818eadae9d72a5b"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRenderingContextResolverService](#_0929500244afa8f9f1b646bf12a579383b0d2ed5e45c3f3279f96fc6bbb4f24c) &gt; [resolveRenderingContext](#_b70b11017b2c493aecb5003fc49164f725eca3dbaaa69d21e818eadae9d72a5b)

## AbstractRenderingContextResolverService.resolveRenderingContext property

<b>Signature:</b>

```typescript
resolveRenderingContext: (aItem: RenderingContextInput, aProvider: RenderingContextProviderV2) => Observable<RenderingContextV2>;
```

<a name="_7399b3a8da317d2b1a3cb0b04ffe0a0fe784e6b77f9e42a7d2dd67ab5218e63f"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0) &gt; [id](#_7399b3a8da317d2b1a3cb0b04ffe0a0fe784e6b77f9e42a7d2dd67ab5218e63f)

## AbstractRegisteredLayoutMapping.id property

Type IDs or content IDs to map this to

<b>Signature:</b>

```typescript
id?: string | string[];
```

<a name="_01a4df882934ff2c0a8f1aa69914f0032a62b1c0f9e61e035d99da2700bf9100"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0) &gt; [kind](#_01a4df882934ff2c0a8f1aa69914f0032a62b1c0f9e61e035d99da2700bf9100)

## AbstractRegisteredLayoutMapping.kind property

Type IDs to map this to

<b>Signature:</b>

```typescript
kind?: CONTENT_ITEM_KIND | CONTENT_ITEM_KIND[];
```

<a name="_6acbced73b42a6da2b1637431b2c5cd6fccde5f9a2afdd6d28003e8445ca4ae3"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0) &gt; [layoutMode](#_6acbced73b42a6da2b1637431b2c5cd6fccde5f9a2afdd6d28003e8445ca4ae3)

## AbstractRegisteredLayoutMapping.layoutMode property

An optional layout mode used with this layout mapping.

<b>Signature:</b>

```typescript
layoutMode?: string | string[];
```

<a name="_0ed0b82343caf55cba3203f7fabf960ae0a3b9b85995f7e6b9aea95f7ea7cae5"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredLayoutMapping](#_bc222478de1ce8905dcb5f813895f01f92506c68e79a77e1a9e3c5a5927470e0) &gt; [selector](#_0ed0b82343caf55cba3203f7fabf960ae0a3b9b85995f7e6b9aea95f7ea7cae5)

## AbstractRegisteredLayoutMapping.selector property

Defines the mapping between the layout controller to the layout implementation. If this property is missing, the selector of the component will be used instead.

<b>Signature:</b>

```typescript
selector: string | string[] | TYPE;
```

<a name="_a2e21c9038b6a2a6e126879fb26073543880c773beb95cd7e4b0a0246997f586"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredComponent](#_2e02a0e4c439c04bce2da604509657a113d72193fcf5647fef73d53a1def1c7c) &gt; [directive](#_a2e21c9038b6a2a6e126879fb26073543880c773beb95cd7e4b0a0246997f586)

## AbstractRegisteredComponent.directive property

<b>Signature:</b>

```typescript
directive: DIRECTIVE;
```

<a name="_880a7f99b4b05a1e2f38fcb300cd367ffa4b7315ff633f0f3351c12d18c308be"></a>
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](#_7e97d4e05014d5675dd89fe4fdc9e95cea0865b2668c02cd6be564baa6ee74e6) &gt; [@acoustic-content-sdk/component-utils](#_317628218fab476de65a8acab319b81b92e562b5f0097cd52328e92ade5c52c0) &gt; [AbstractRegisteredComponent](#_2e02a0e4c439c04bce2da604509657a113d72193fcf5647fef73d53a1def1c7c) &gt; [type](#_880a7f99b4b05a1e2f38fcb300cd367ffa4b7315ff633f0f3351c12d18c308be)

## AbstractRegisteredComponent.type property

<b>Signature:</b>

```typescript
type: TYPE;
```

---
_Source: https://npm.io/package/@acoustic-content-sdk/component-utils · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
