@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
80 lines • 3.09 kB
TypeScript
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