UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

80 lines 3.09 kB
import { InjectionToken } from '@angular/core'; import { ApplicationType } from '@c8y/client'; import { GenericHookType, GenericHookOptions } 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 declare const HOOK_VERSION: InjectionToken<Version[]>; export declare const VERSION_MODULE_CONFIG: InjectionToken<VersionModuleConfig>; /** * 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 declare function hookVersion(versions: GenericHookType<Version>, options?: Partial<GenericHookOptions>): import("@angular/core").ValueProvider | import("@angular/core").ExistingProvider | import("@angular/core").ClassProvider; export interface Version extends CleanedVersion { /** Influences the order of the version within the list of versions */ priority?: number; /** Will hide the version in the whole UI (only included in download platform information) */ hidden?: boolean; } export interface CleanedVersion { /** Label of the version */ label: string; /** The version */ version: string; /** * Type of the version. * The JSON that can be copied to the clipboard will group the versions by type. * Types could e.g. be `MICROSERVICE` and `HOSTED` for apps */ type: ApplicationType | string; /** * Allows to provide any custom properties. * These will be part of the JSON structure that will be copied to clipboard. */ custom?: { [key: string]: any; }; } export interface VersionModuleConfig { /** Will disable the `WebSDKVersionFactory` in case it is set to true */ disableWebSDKVersionFactory?: boolean; /** Will disable the `WebSDKPluginVersionFactory` in case it is set to true */ disableWebSDKPluginVersionFactory?: boolean; /** Will disable the `BackendVersionFactory` in case it is set to true */ disableBackendVersionFactory?: boolean; } //# sourceMappingURL=version.model.d.ts.map