@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
48 lines • 6.49 kB
JavaScript
import { InjectionToken } from '@angular/core';
import { hookGeneric } from '../common';
/**
* An extension HOOK can use either a pure value:
* ```typescript
* { provide: HOOK_X, useValue: { ...hookValue }, multi: true }
* ```
*
* Or an array to directly register multiple:
* ```typescript
* { provide: HOOK_X, useValue: [{ ...hookValues }], multi: true }
* ```
*
* Or an ExtensionFactory which allows to define a get() function. This function
* gets called on each navigation with the current route and can return values
* async (observable or promise).
* ```typescript
* { provide: HOOK_X, useFactory: { get: (route) => doSomethingAsync(route) }, multi: true }
* ```
* @deprecated Consider using the `hookVersion` function instead.
*/
export const HOOK_VERSION = new InjectionToken('HOOK_VERSION');
export const VERSION_MODULE_CONFIG = new InjectionToken('VERSION_MODULE_CONFIG');
/**
* You can either provide a single `Version` as parameter:
* ```typescript
* hookVersion(...)
* ```
*
* Or an array to directly register multiple:
* ```typescript
* hookVersion([...])
* ```
*
* Or you provide an Service that implements `ExtensionFactory<Version>`
* ```typescript
* export class MyVersionFactory implements ExtensionFactory<Version> {...}
* ...
* hookVersion(MyVersionFactory)
* ```
* A typed alternative to `HOOK_VERSION`.
* @param versions The `Version`'s or `ExtensionFactory` to be provided.
* @returns An `Provider` to be provided in your module.
*/
export function hookVersion(versions, options) {
return hookGeneric(versions, HOOK_VERSION, options);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvdmVyc2lvbi92ZXJzaW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUFtQixXQUFXLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBRTdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVksY0FBYyxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsUUFBa0MsRUFDbEMsT0FBcUM7SUFFckMsT0FBTyxXQUFXLENBQVUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVHlwZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEdlbmVyaWNIb29rVHlwZSwgaG9va0dlbmVyaWMsIEdlbmVyaWNIb29rT3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbic7XG5cbi8qKlxuICogQW4gZXh0ZW5zaW9uIEhPT0sgY2FuIHVzZSBlaXRoZXIgYSBwdXJlIHZhbHVlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIHsgcHJvdmlkZTogSE9PS19YLCB1c2VWYWx1ZTogeyAuLi5ob29rVmFsdWUgfSwgbXVsdGk6IHRydWUgfVxuICogYGBgXG4gKlxuICogT3IgYW4gYXJyYXkgdG8gZGlyZWN0bHkgcmVnaXN0ZXIgbXVsdGlwbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgeyBwcm92aWRlOiBIT09LX1gsIHVzZVZhbHVlOiBbeyAuLi5ob29rVmFsdWVzIH1dLCBtdWx0aTogdHJ1ZSB9XG4gKiBgYGBcbiAqXG4gKiBPciBhbiBFeHRlbnNpb25GYWN0b3J5IHdoaWNoIGFsbG93cyB0byBkZWZpbmUgYSBnZXQoKSBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvblxuICogZ2V0cyBjYWxsZWQgb24gZWFjaCBuYXZpZ2F0aW9uIHdpdGggdGhlIGN1cnJlbnQgcm91dGUgYW5kIGNhbiByZXR1cm4gdmFsdWVzXG4gKiBhc3luYyAob2JzZXJ2YWJsZSBvciBwcm9taXNlKS5cbiAqIGBgYHR5cGVzY3JpcHRcbiAqICB7IHByb3ZpZGU6IEhPT0tfWCwgdXNlRmFjdG9yeTogeyBnZXQ6IChyb3V0ZSkgPT4gZG9Tb21ldGhpbmdBc3luYyhyb3V0ZSkgfSwgbXVsdGk6IHRydWUgfVxuICogYGBgXG4gKiBAZGVwcmVjYXRlZCBDb25zaWRlciB1c2luZyB0aGUgYGhvb2tWZXJzaW9uYCBmdW5jdGlvbiBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgSE9PS19WRVJTSU9OID0gbmV3IEluamVjdGlvblRva2VuPFZlcnNpb25bXT4oJ0hPT0tfVkVSU0lPTicpO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTl9NT0RVTEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFZlcnNpb25Nb2R1bGVDb25maWc+KFxuICAnVkVSU0lPTl9NT0RVTEVfQ09ORklHJ1xuKTtcblxuLyoqXG4gKiBZb3UgY2FuIGVpdGhlciBwcm92aWRlIGEgc2luZ2xlIGBWZXJzaW9uYCBhcyBwYXJhbWV0ZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgaG9va1ZlcnNpb24oLi4uKVxuICogYGBgXG4gKlxuICogT3IgYW4gYXJyYXkgdG8gZGlyZWN0bHkgcmVnaXN0ZXIgbXVsdGlwbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgaG9va1ZlcnNpb24oWy4uLl0pXG4gKiBgYGBcbiAqXG4gKiBPciB5b3UgcHJvdmlkZSBhbiBTZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBgRXh0ZW5zaW9uRmFjdG9yeTxWZXJzaW9uPmBcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBleHBvcnQgY2xhc3MgTXlWZXJzaW9uRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8VmVyc2lvbj4gey4uLn1cbiAqICAuLi5cbiAqICBob29rVmVyc2lvbihNeVZlcnNpb25GYWN0b3J5KVxuICogYGBgXG4gKiBBIHR5cGVkIGFsdGVybmF0aXZlIHRvIGBIT09LX1ZFUlNJT05gLlxuICogQHBhcmFtIHZlcnNpb25zIFRoZSBgVmVyc2lvbmAncyBvciBgRXh0ZW5zaW9uRmFjdG9yeWAgdG8gYmUgcHJvdmlkZWQuXG4gKiBAcmV0dXJucyBBbiBgUHJvdmlkZXJgIHRvIGJlIHByb3ZpZGVkIGluIHlvdXIgbW9kdWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1ZlcnNpb24oXG4gIHZlcnNpb25zOiBHZW5lcmljSG9va1R5cGU8VmVyc2lvbj4sXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPEdlbmVyaWNIb29rT3B0aW9ucz5cbikge1xuICByZXR1cm4gaG9va0dlbmVyaWM8VmVyc2lvbj4odmVyc2lvbnMsIEhPT0tfVkVSU0lPTiwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbiBleHRlbmRzIENsZWFuZWRWZXJzaW9uIHtcbiAgLyoqIEluZmx1ZW5jZXMgdGhlIG9yZGVyIG9mIHRoZSB2ZXJzaW9uIHdpdGhpbiB0aGUgbGlzdCBvZiB2ZXJzaW9ucyAqL1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgLyoqIFdpbGwgaGlkZSB0aGUgdmVyc2lvbiBpbiB0aGUgd2hvbGUgVUkgKG9ubHkgaW5jbHVkZWQgaW4gZG93bmxvYWQgcGxhdGZvcm0gaW5mb3JtYXRpb24pICovXG4gIGhpZGRlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xlYW5lZFZlcnNpb24ge1xuICAvKiogTGFiZWwgb2YgdGhlIHZlcnNpb24gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFRoZSB2ZXJzaW9uICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIHZlcnNpb24uXG4gICAqIFRoZSBKU09OIHRoYXQgY2FuIGJlIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkIHdpbGwgZ3JvdXAgdGhlIHZlcnNpb25zIGJ5IHR5cGUuXG4gICAqIFR5cGVzIGNvdWxkIGUuZy4gYmUgYE1JQ1JPU0VSVklDRWAgYW5kIGBIT1NURURgIGZvciBhcHBzXG4gICAqL1xuICB0eXBlOiBBcHBsaWNhdGlvblR5cGUgfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gcHJvdmlkZSBhbnkgY3VzdG9tIHByb3BlcnRpZXMuXG4gICAqIFRoZXNlIHdpbGwgYmUgcGFydCBvZiB0aGUgSlNPTiBzdHJ1Y3R1cmUgdGhhdCB3aWxsIGJlIGNvcGllZCB0byBjbGlwYm9hcmQuXG4gICAqL1xuICBjdXN0b20/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25Nb2R1bGVDb25maWcge1xuICAvKiogV2lsbCBkaXNhYmxlIHRoZSBgV2ViU0RLVmVyc2lvbkZhY3RvcnlgIGluIGNhc2UgaXQgaXMgc2V0IHRvIHRydWUgKi9cbiAgZGlzYWJsZVdlYlNES1ZlcnNpb25GYWN0b3J5PzogYm9vbGVhbjtcbiAgLyoqIFdpbGwgZGlzYWJsZSB0aGUgYFdlYlNES1BsdWdpblZlcnNpb25GYWN0b3J5YCBpbiBjYXNlIGl0IGlzIHNldCB0byB0cnVlICovXG4gIGRpc2FibGVXZWJTREtQbHVnaW5WZXJzaW9uRmFjdG9yeT86IGJvb2xlYW47XG4gIC8qKiBXaWxsIGRpc2FibGUgdGhlIGBCYWNrZW5kVmVyc2lvbkZhY3RvcnlgIGluIGNhc2UgaXQgaXMgc2V0IHRvIHRydWUgKi9cbiAgZGlzYWJsZUJhY2tlbmRWZXJzaW9uRmFjdG9yeT86IGJvb2xlYW47XG59XG4iXX0=