UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

88 lines • 22.3 kB
import { InjectionToken } from '@angular/core'; import { hookGeneric } from '../common/extension-hooks'; /** * Time the hook waits until it emits an undefined value. * Used for not defined widgets -> by default after 5s we * show an error that the widget could not be loaded. */ export const RESOLVING_COMPONENT_WAIT_TIME = new InjectionToken('RESOLVING_COMPONENT_WAIT_TIME'); /** * A hook to add dynamic components to the UI (e.g. widgets). * @deprecated Consider using the `hookComponent` function instead. */ export const HOOK_COMPONENTS = new InjectionToken('HOOK_COMPONENTS'); /** * A hook to add dynamic components to the UI (e.g. widgets). * * You can either provide a single `DynamicComponentDefinition` as parameter: * ```typescript * hookComponent(...) * ``` * * Or an array to directly register multiple: * ```typescript * hookComponent([...]) * ``` * * Or you provide an Service that implements `ExtensionFactory<DynamicComponentDefinition>` * ```typescript * export class MyDynamicComponentDefinitionFactory implements ExtensionFactory<DynamicComponentDefinition> {...} * ... * hookComponent(MyDynamicComponentDefinitionFactory) * ``` * A typed alternative to `HOOK_COMPONENTS`. * @param components The `DynamicComponentDefinition`'s or `ExtensionFactory` to be provided. * @returns An `Provider` to be provided in your module. */ export function hookComponent(components, options) { return hookGeneric(components, HOOK_COMPONENTS, options); } /** * Hook to add dynamic widget components to the UI. * * You can either provide a single `DynamicWidgetDefinition` as parameter: * ```typescript * hookWidget(...) * ``` * * Or an array to directly register multiple: * ```typescript * hookWidget([...]) * ``` * * * Or you provide a Service that implements `ExtensionFactory<DynamicWidgetDefinition>` * ```typescript * export class MyDynamicWidgetDefinitionFactory implements ExtensionFactory<DynamicWidgetDefinition> {...} * ... * hookWidget(MyDynamicWidgetDefinitionFactory) * ``` * A widget specific alternative to `hookComponent`.. * @param components The `DynamicWidgetDefinition`'s or `ExtensionFactory` to be provided. * @param options Options to configure the hook. * @returns An `Provider` to be provided in your module. */ export function hookWidget(components, options) { return hookComponent(components, options); } export function isLazyDynamicComponents(componentDefinition) { return !!componentDefinition?.loadComponent; } export function isEagerDynamicComponents(componentDefinition) { return !!componentDefinition?.component; } export var DynamicComponentErrorStrategy; (function (DynamicComponentErrorStrategy) { /** * Will not render/initialize the Widget in case an error was detected. */ DynamicComponentErrorStrategy["NOT_RENDER"] = "NOT_RENDER"; /** * Will add an overlay over the Widget, displaying the error message. */ DynamicComponentErrorStrategy["OVERLAY_ERROR"] = "OVERLAY_ERROR"; /** * The widget implements error handling on its own. */ DynamicComponentErrorStrategy["CUSTOM"] = "CUSTOM"; })(DynamicComponentErrorStrategy || (DynamicComponentErrorStrategy = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFJTCxXQUFXLEVBQ1osTUFBTSwyQkFBMkIsQ0FBQztBQUtuQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELCtCQUErQixDQUNoQyxDQUFDO0FBeUJGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsaUJBQWlCLENBQUMsQ0FBQztBQUVsRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLFVBQXVELEVBQ3ZELE9BQXFDO0lBRXJDLE9BQU8sV0FBVyxDQUE2QixVQUFVLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixVQUFvRCxFQUNwRCxPQUFxQztJQUVyQyxPQUFPLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQTBPRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLG1CQUFzQztJQUV0QyxPQUFPLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsbUJBQXNDO0lBRXRDLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxDQUFOLElBQVksNkJBYVg7QUFiRCxXQUFZLDZCQUE2QjtJQUN2Qzs7T0FFRztJQUNILDBEQUF5QixDQUFBO0lBQ3pCOztPQUVHO0lBQ0gsZ0VBQStCLENBQUE7SUFDL0I7O09BRUc7SUFDSCxrREFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcsNkJBQTZCLEtBQTdCLDZCQUE2QixRQWF4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uRmFjdG9yeSxcbiAgR2VuZXJpY0hvb2tPcHRpb25zLFxuICBHZW5lcmljSG9va1R5cGUsXG4gIGhvb2tHZW5lcmljXG59IGZyb20gJy4uL2NvbW1vbi9leHRlbnNpb24taG9va3MnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEFsZXJ0QWdncmVnYXRvciB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQtYWxlcnQtYWdncmVnYXRvcic7XG5pbXBvcnQgeyBEeW5hbWljRGV0YWlsc1Jlc29sdmVyIH0gZnJvbSAnLi9keW5hbWljLWRldGFpbHMtcmVzb2x2ZXInO1xuaW1wb3J0IHsgSlNPTlNjaGVtYTcgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5cbi8qKlxuICogVGltZSB0aGUgaG9vayB3YWl0cyB1bnRpbCBpdCBlbWl0cyBhbiB1bmRlZmluZWQgdmFsdWUuXG4gKiBVc2VkIGZvciBub3QgZGVmaW5lZCB3aWRnZXRzIC0+IGJ5IGRlZmF1bHQgYWZ0ZXIgNXMgd2VcbiAqIHNob3cgYW4gZXJyb3IgdGhhdCB0aGUgd2lkZ2V0IGNvdWxkIG5vdCBiZSBsb2FkZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPTFZJTkdfQ09NUE9ORU5UX1dBSVRfVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFxuICAnUkVTT0xWSU5HX0NPTVBPTkVOVF9XQUlUX1RJTUUnXG4pO1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiBIT09LIGNhbiB1c2UgZWl0aGVyIGEgcHVyZSB2YWx1ZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICB7IHByb3ZpZGU6IEhPT0tfWCwgdXNlVmFsdWU6IHsgLi4uaG9va1ZhbHVlIH0sIG11bHRpOiB0cnVlIH1cbiAqIGBgYFxuICpcbiAqIE9yIGFuIGFycmF5IHRvIGRpcmVjdGx5IHJlZ2lzdGVyIG11bHRpcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIHsgcHJvdmlkZTogSE9PS19YLCB1c2VWYWx1ZTogW3sgLi4uaG9va1ZhbHVlcyB9XSwgbXVsdGk6IHRydWUgfVxuICogYGBgXG4gKlxuICogT3IgYW4gRXh0ZW5zaW9uRmFjdG9yeSB3aGljaCBhbGxvd3MgdG8gZGVmaW5lIGEgZ2V0KCkgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb25cbiAqIGdldHMgY2FsbGVkIG9uIGVhY2ggbmF2aWdhdGlvbiB3aXRoIHRoZSBjdXJyZW50IHJvdXRlIGFuZCBjYW4gcmV0dXJuIHZhbHVlc1xuICogYXN5bmMgKG9ic2VydmFibGUgb3IgcHJvbWlzZSkuXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgeyBwcm92aWRlOiBIT09LX1gsIHVzZUZhY3Rvcnk6IHsgZ2V0OiAocm91dGUpID0+IGRvU29tZXRoaW5nQXN5bmMocm91dGUpIH0sIG11bHRpOiB0cnVlIH1cbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50RXh0ZW5zaW9uID1cbiAgfCBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvblxuICB8IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uW11cbiAgfCBFeHRlbnNpb25GYWN0b3J5PER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uPjtcblxuLyoqXG4gKiBBIGhvb2sgdG8gYWRkIGR5bmFtaWMgY29tcG9uZW50cyB0byB0aGUgVUkgKGUuZy4gd2lkZ2V0cykuXG4gKiBAZGVwcmVjYXRlZCBDb25zaWRlciB1c2luZyB0aGUgYGhvb2tDb21wb25lbnRgIGZ1bmN0aW9uIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBIT09LX0NPTVBPTkVOVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RHluYW1pY0NvbXBvbmVudEV4dGVuc2lvbltdPignSE9PS19DT01QT05FTlRTJyk7XG5cbi8qKlxuICogQSBob29rIHRvIGFkZCBkeW5hbWljIGNvbXBvbmVudHMgdG8gdGhlIFVJIChlLmcuIHdpZGdldHMpLlxuICpcbiAqIFlvdSBjYW4gZWl0aGVyIHByb3ZpZGUgYSBzaW5nbGUgYER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uYCBhcyBwYXJhbWV0ZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgaG9va0NvbXBvbmVudCguLi4pXG4gKiBgYGBcbiAqXG4gKiBPciBhbiBhcnJheSB0byBkaXJlY3RseSByZWdpc3RlciBtdWx0aXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBob29rQ29tcG9uZW50KFsuLi5dKVxuICogYGBgXG4gKlxuICogT3IgeW91IHByb3ZpZGUgYW4gU2VydmljZSB0aGF0IGltcGxlbWVudHMgYEV4dGVuc2lvbkZhY3Rvcnk8RHluYW1pY0NvbXBvbmVudERlZmluaXRpb24+YFxuICogYGBgdHlwZXNjcmlwdFxuICogIGV4cG9ydCBjbGFzcyBNeUR5bmFtaWNDb21wb25lbnREZWZpbml0aW9uRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8RHluYW1pY0NvbXBvbmVudERlZmluaXRpb24+IHsuLi59XG4gKiAgLi4uXG4gKiAgaG9va0NvbXBvbmVudChNeUR5bmFtaWNDb21wb25lbnREZWZpbml0aW9uRmFjdG9yeSlcbiAqIGBgYFxuICogQSB0eXBlZCBhbHRlcm5hdGl2ZSB0byBgSE9PS19DT01QT05FTlRTYC5cbiAqIEBwYXJhbSBjb21wb25lbnRzIFRoZSBgRHluYW1pY0NvbXBvbmVudERlZmluaXRpb25gJ3Mgb3IgYEV4dGVuc2lvbkZhY3RvcnlgIHRvIGJlIHByb3ZpZGVkLlxuICogQHJldHVybnMgQW4gYFByb3ZpZGVyYCB0byBiZSBwcm92aWRlZCBpbiB5b3VyIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tDb21wb25lbnQoXG4gIGNvbXBvbmVudHM6IEdlbmVyaWNIb29rVHlwZTxEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbj4sXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPEdlbmVyaWNIb29rT3B0aW9ucz5cbikge1xuICByZXR1cm4gaG9va0dlbmVyaWM8RHluYW1pY0NvbXBvbmVudERlZmluaXRpb24+KGNvbXBvbmVudHMsIEhPT0tfQ09NUE9ORU5UUywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogSG9vayB0byBhZGQgZHluYW1pYyB3aWRnZXQgY29tcG9uZW50cyB0byB0aGUgVUkuXG4gKlxuICogWW91IGNhbiBlaXRoZXIgcHJvdmlkZSBhIHNpbmdsZSBgRHluYW1pY1dpZGdldERlZmluaXRpb25gIGFzIHBhcmFtZXRlcjpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBob29rV2lkZ2V0KC4uLilcbiAqIGBgYFxuICpcbiAqIE9yIGFuIGFycmF5IHRvIGRpcmVjdGx5IHJlZ2lzdGVyIG11bHRpcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIGhvb2tXaWRnZXQoWy4uLl0pXG4gKiBgYGBcbiAqXG4gKiAgKiBPciB5b3UgcHJvdmlkZSBhIFNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGBFeHRlbnNpb25GYWN0b3J5PER5bmFtaWNXaWRnZXREZWZpbml0aW9uPmBcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBleHBvcnQgY2xhc3MgTXlEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbkZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PER5bmFtaWNXaWRnZXREZWZpbml0aW9uPiB7Li4ufVxuICogIC4uLlxuICogIGhvb2tXaWRnZXQoTXlEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbkZhY3RvcnkpXG4gKiBgYGBcbiAqIEEgd2lkZ2V0IHNwZWNpZmljIGFsdGVybmF0aXZlIHRvIGBob29rQ29tcG9uZW50YC4uXG4gKiBAcGFyYW0gY29tcG9uZW50cyBUaGUgYER5bmFtaWNXaWRnZXREZWZpbml0aW9uYCdzIG9yIGBFeHRlbnNpb25GYWN0b3J5YCB0byBiZSBwcm92aWRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdG8gY29uZmlndXJlIHRoZSBob29rLlxuICogQHJldHVybnMgQW4gYFByb3ZpZGVyYCB0byBiZSBwcm92aWRlZCBpbiB5b3VyIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tXaWRnZXQoXG4gIGNvbXBvbmVudHM6IEdlbmVyaWNIb29rVHlwZTxEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbj4sXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPEdlbmVyaWNIb29rT3B0aW9ucz5cbikge1xuICByZXR1cm4gaG9va0NvbXBvbmVudChjb21wb25lbnRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIGR5bmFtaWMgY29tcG9uZW50IGNhbiBiZSBkZWZpbmVkIGluIGEgdGhlIEhPT0tfQ09NUE9ORU5UUyB0byBkaXNwbGF5IGFueSBraW5kXG4gKiBvZiBjb21wb25lbnQgZHluYW1pY2FsbHkganVzdCBieSByZWZlcmVuY2luZyBpdCdzIGlkLiBUaGUgbW9zdCBjb21tb24gdXNlIGNhc2UgaXMgb24gZGFzaGJvYXJkcyxcbiAqIHdoZXJlIHRoZSBgY29uZmlnQ29tcG9uZW50YCBpcyB1c2VkIHRvIGRlZmluZSB3aGF0IGlzIGRpc3BsYXllZCBvbiB0aGUgYGNvbXBvbmVudGBcbiAqIG9uIHRoZSBkYXNoYm9hcmQuXG4gKlxuICogVG8gdXNlIHRoZSBjb21wb25lbnQgeW91IGNhbiB1c2UgdGhlIGM4eS1keW5hbWljLWNvbXBvbmVudC5cbiAqXG4gKiBgYGBcbiAqICAgPGM4eS1keW5hbWljLWNvbXBvbmVudFxuICogICAgIGNvbXBvbmVudElkPVwiYW5ndWxhci53aWRnZXQuZGVtb1wiXG4gKiAgICAgW2NvbmZpZ109XCJ7IHRleHQ6ICdIZWxsbyB3b3JsZCcgfVwiXG4gKiAgICAgW21vZGVdPVwiZWRpdENvbXBvbmVudCA/ICdjb25maWcnIDogJ2NvbXBvbmVudCdcIlxuICogICA+PC9jOHktZHluYW1pYy1jb21wb25lbnQ+XG4gKiAgIGBgYFxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbiA9IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uQmFzZSAmIER5bmFtaWNDb21wb25lbnRzO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbiA9IER5bmFtaWNXaWRnZXREZWZpbml0aW9uQmFzZSAmIER5bmFtaWNDb21wb25lbnRzO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uQmFzZSBleHRlbmRzIERlZmluaXRpb25CYXNlIHtcbiAgLyoqXG4gICAqIEFkZCBhbnkgcmFuZG9tIGRhdGEsIHNwZWNpYWxseSB0byBhbmd1bGFyLmpzIGRhc2hib2FyZHMuXG4gICAqIFNob3VsZCBiZSBzZXJpYWxpemFibGUgdG8gYWxsb3cgdG8gc2F2ZSBpdCB0byB0aGUgQVBJLlxuICAgKi9cbiAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbkJhc2UgZXh0ZW5kcyBEZWZpbml0aW9uQmFzZSB7XG4gIC8qKlxuICAgKiBBZGQgYW55IHJhbmRvbSBkYXRhLCBzcGVjaWFsbHkgdG8gYW5ndWxhci5qcyBkYXNoYm9hcmRzLlxuICAgKiBTaG91bGQgYmUgc2VyaWFsaXphYmxlIHRvIGFsbG93IHRvIHNhdmUgaXQgdG8gdGhlIEFQSS5cbiAgICovXG4gIGRhdGE/OiBXaWRnZXREYXRhVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgc2VyaWFsaXphYmxlIGlkXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxhYmVsIHNob3duIGZvciB0aGlzIGR5bmFtaWMgY29tcG9uZW50IG9uIGFkZCB3aWRnZXRzXG4gICAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIHNob3duIG9uIGFkZCB3aWRnZXRcbiAgICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGQgYW55IHJhbmRvbSBkYXRhLCBzcGVjaWFsbHkgdG8gYW5ndWxhci5qcyBkYXNoYm9hcmRzLlxuICAgKiBTaG91bGQgYmUgc2VhcmlsemFibGVkIHRvIGFsbG93IHRvIHNhdmUgaXQgdG8gdGhlIEFQSS5cbiAgICovXG4gIGRhdGE/OiBhbnk7XG4gIC8qKlxuICAgKiBBbiB1cmwgdG8gYW4gcHJldmlldyBpbWFnZS5cbiAgICovXG4gIHByZXZpZXdJbWFnZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbmplY3RvciB0byB1c2UgdG8gaW5qZWN0IHRoaXMgY29tcG9uZW50LiBJZiB1c2VkIGluIGEgbW9kdWxlIGZlZGVyYXRpb25cbiAgICogcGx1Z2luLCB0aGUgaW5qZWN0b3Igb2YgdGhlIHBsdWdpbiBzaG91bGQgYmUgdXNlZC4gRGVmYXVsdHMgdG8gdGhlIHJvb3QgaW5qZWN0b3IuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICAvKipcbiAgICogQXR0cmlidXRlcyBvZiB0aGUgZHluYW1pYyBjb21wb25lbnRzIGNvbmZpZ3VyYXRpb24gdG8gYmUgcmVzb2x2ZWQuXG4gICAqL1xuICByZXNvbHZlPzogeyBba2V5OiBzdHJpbmddOiBUeXBlPER5bmFtaWNEZXRhaWxzUmVzb2x2ZXI+IH07XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGR5bmFtaWMgY29tcG9uZW50IG9yIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlbmRlciBhbGVydHMuXG4gICAqL1xuICBlcnJvclN0cmF0ZWd5PzogRHluYW1pY0NvbXBvbmVudEVycm9yU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBPcmRlcmluZyBvZiB0aGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbnR5cGUgV2lkZ2V0RGlzcGxheVNldHRpbmdzQ29yZSA9IHtcbiAgLyoqXG4gICAqIElmIGVuYWJsZWQgdGhlIHdpZGdldCBpcyBib3VuZCB0byB0aGUgZ2xvYmFsIHRpbWUgY29udGV4dC4gWW91IGNhbiBsaXN0ZW4gdG8gbmdPbkNoYW5nZXMoKSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAqIHRvIHJlYWN0IHRvIGNoYW5nZXMgb24gdGhlIGNvbnRleHQuIFdoZW4gYSBtb3JlIGRldGFpbGVkIGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLCB1c2UgdGhlIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dD5cbiAgICogY29tcG9uZW50IGluc3RlYWQuXG4gICAqL1xuICBnbG9iYWxUaW1lQ29udGV4dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBlbmFibGVkIHRoZSB3aWRnZXQgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCByZWFsdGltZSBjb250ZXh0LiBZb3UgY2FuIGxpc3RlbiB0byBuZ09uQ2hhbmdlcygpIGNoYW5nZSBkZXRlY3Rpb25cbiAgICogdG8gcmVhY3QgdG8gY2hhbmdlcyBvbiB0aGUgY29udGV4dC5cbiAgICovXG4gIGdsb2JhbFJlYWx0aW1lQ29udGV4dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBlbmFibGVkIHRoZSB3aWRnZXQgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCBhZ2dyZWdhdGlvbiBjb250ZXh0LiBZb3UgY2FuIGxpc3RlbiB0byBuZ09uQ2hhbmdlcygpIGNoYW5nZSBkZXRlY3Rpb25cbiAgICogdG8gcmVhY3QgdG8gY2hhbmdlcyBvbiB0aGUgY29udGV4dC5cbiAgICovXG4gIGdsb2JhbEFnZ3JlZ2F0aW9uQ29udGV4dD86IGJvb2xlYW47XG4gIGdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldERhdGFUeXBlIHtcbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgZGVmaW5lIHRoZSBjb250ZXh0IHRvIHdoaWNoIHRoZSB3aWRnZXQgaXMgYm91bmQuXG4gICAqIEUuZy4gZ2xvYmFsIHRpbWUgY29udGV4dCwgZ2xvYmFsIHJlYWx0aW1lIGNvbnRleHQsIGdsb2JhbCBhZ2dyZWdhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgZGlzcGxheVNldHRpbmdzPzogV2lkZ2V0RGlzcGxheVNldHRpbmdzQ29yZTtcbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgYXJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSB3aWRnZXQuXG4gICAqIFRoZXkgYXJlIHN0YXRpYyBhbmQgd2lsbCBub3QgYmUgc2F2ZWQuXG4gICAqL1xuICBzZXR0aW5ncz86IFdpZGdldFNldHRpbmdzO1xuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZ2V0IHRoZSBzY2hlbWEgZm9yIHRoZSB3aWRnZXQgZS5nLiBmb3Igd2lkZ2V0IGNvbmZpZyBKU09OIHZhbGlkYXRpb24gcHVycG9zZXMgaW4gcnVudGltZS5cbiAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgZmVhdHVyZSwgc2NoZW1hIHNob3VsZCBjb250YWluIGBjOHktc2NoZW1hLWxvYWRlcmAgcHJlZml4LCBpbnRlcmZhY2UgbmFtZSBhcyBwYXJhbVxuICAgKiBhbmQgcGF0aCB0byBmaWxlIHdoZXJlIGludGVyZmFjZSBpcyBkZWZpbmVkIHRvIG1hdGNoIFwiYzh5LXNjaGVtYS1sb2FkZXI/aW50ZXJmYWNlTmFtZT08aW50ZXJmYWNlIG5hbWU+ITxwYXRoIHRvIGZpbGU+XCIuXG4gICAqIGBgYHRzXG4gICAqIC8vIHNjaGVtYTogKCkgPT4gaW1wb3J0KCdjOHktc2NoZW1hLWxvYWRlcj9pbnRlcmZhY2VOYW1lPUtwaVdpZGdldENvbmZpZyFAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2twaScpXG4gICAqIGBgYFxuICAgKiBTY2hlbWEgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gYnVpbGQgcHJvY2VzcyBhbmQgd2lsbCBiZSBhdmFpbGFibGUgaW4gcnVudGltZS5cbiAgICovXG4gIHNjaGVtYT86ICgpID0+IFByb21pc2U8eyBzY2hlbWE6IEpTT05TY2hlbWE3IH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEF2b2lkcyB0byBzaG93IHRoZSB3aWRnZXQgaW4gdGhlIFwiYWRkIHdpZGdldFwiIG1vZGFsXG4gICAqL1xuICBub05ld1dpZGdldHM/OiBib29sZWFuO1xuICB1cGdyYWRlPzogYm9vbGVhbjtcbiAgd2lkZ2V0RGVmYXVsdHM/OiB7XG4gICAgX3dpZHRoPzogbnVtYmVyO1xuICAgIF9oZWlnaHQ/OiBudW1iZXI7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuICBuZzE/OiB7XG4gICAgb3B0aW9ucz86IHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IHRoaXMgdG8gZmFsc2UsIHRvIGhpZGUgdGhlIGRldmljZS9ncm91cCBzZWxlY3RvclxuICAgICAgICogQGRlcHJlY2F0ZWQ6IFRoaXMgaXMgY3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQgaW4gYW5ndWxhcmpzIGFuZCB3aWxsIGJlIGV4cG9ydGVkIHRvIGEgc2VwYXJhdGUgY29tcG9uZW50LlxuICAgICAgICovXG4gICAgICBub0RldmljZVRhcmdldD86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIFNldCB0aGlzIHRvIGZhbHNlIHRvIG9ubHkgc2VsZWN0IGRldmljZXNcbiAgICAgICAqIEBkZXByZWNhdGVkOiBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGluIGFuZ3VsYXJqcyBhbmQgd2lsbCBiZSBleHBvcnRlZCB0byBhIHNlcGFyYXRlIGNvbXBvbmVudC5cbiAgICAgICAqL1xuICAgICAgZ3JvdXBzU2VsZWN0YWJsZT86IGJvb2xlYW47XG4gICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGV4dCBmcm9tIHRoZSBkZXZpY2Ugc2VsZWN0b3IuXG4gICAgICovXG4gICAgY29udGV4dD86IHtcbiAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc2V0dGluZ3MgZm9yIHRoZSB3aWRnZXQuXG4gICAqL1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhckpTV2lkZ2V0U2V0dGluZ3MgZXh0ZW5kcyBXaWRnZXRTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlnIGNvbXBvbmVudCBuYW1lLlxuICAgKiBAZGVwcmVjYXRlZDogT25seSB1c2VkIGZvciBhbmd1bGFyanMgcGx1Z2lucy5cbiAgICovXG4gIGNvbmZpZ0NvbXBvbmVudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB3aWRnZXQgY29tcG9uZW50IG5hbWUuXG4gICAqIEBkZXByZWNhdGVkOiBPbmx5IHVzZWQgZm9yIGFuZ3VsYXJqcyBwbHVnaW5zLlxuICAgKi9cbiAgd2lkZ2V0Q29tcG9uZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbmZpZyB0ZW1wbGF0ZSBVUkwgZm9yIGxlZ2FjeSBwbHVnaW5zLlxuICAgKiBAZGVwcmVjYXRlZDogT25seSB1c2VkIGZvciBhbmd1bGFyanMgcGx1Z2lucy5cbiAgICovXG4gIGNvbmZpZ1RlbXBsYXRlVXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogVHJhbnNmb3JtcyB3aWRnZXQncyBjb25maWcgYnkgZXhlY3V0aW5nIHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICogVGhlIHRyYW5zZm9ybSBmdW5jdGlvbiBjYW4gdGFrZSBpbmplY3RhYmxlIGFyZ3VtZW50c1xuICAgKiBAZGVwcmVjYXRlZDogT25seSB1c2VkIGZvciBhbmd1bGFyanMgcGx1Z2lucy5cbiAgICovXG4gIHRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0PzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEF2b2lkcyB0byBzaG93IHRoZSB3aWRnZXQgaW4gdGhlIFwiYWRkIHdpZGdldFwiIG1vZGFsXG4gICAqL1xufVxuXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50cyA9IEVhZ2VyRHluYW1pY0NvbXBvbmVudHMgfCBMYXp5RHluYW1pY0NvbXBvbmVudHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJEeW5hbWljQ29tcG9uZW50cyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHdoaWNoIGlzIHVzZWQgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQgKGUuZy4gb24gYSBkYXNoYm9hcmQpXG4gICAqL1xuICBjb21wb25lbnQ6IFR5cGU8YW55PjtcbiAgbG9hZENvbXBvbmVudD86IG5ldmVyO1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gY29tcG9uZW50IHVzZWQgd2hlbiBhIHdpZGdldCBpcyBhZGRlZCBvciBlZGl0ZWQuXG4gICAqL1xuICBjb25maWdDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGxvYWRDb25maWdDb21wb25lbnQ/OiBuZXZlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXp5RHluYW1pY0NvbXBvbmVudHMge1xuICAvKipcbiAgICogQSBmdW5jdGlvbiByZXR1cm5pbmcgYSBwcm9taXNlIG9mIHRoZSBjb21wb25lbnQgd2hpY2ggaXMgdXNlZCB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc3BsYXllZCAoZS5nLiBvbiBhIGRhc2hib2FyZClcbiAgICpcbiAgICogQSBzYW1wbGUgZnVuY3Rpb24gdG8gYmUgcHJvdmlkZWQgY291bGQgbG9vayBsaWtlIHRoaXM6XG4gICAqIGBgYFxuICAgKiBhc3luYyBmdW5jdGlvbiBsb2FkVmlld0NvbXBvbmVudCgpIHtcbiAgICogIGNvbnN0IHsgTGF6eVdpZGdldFZpZXdDb21wb25lbnQgfSA9IGF3YWl0IGltcG9ydCgnLi9sYXp5LXdpZGdldC12aWV3Jyk7XG4gICAqICByZXR1cm4gTGF6eVdpZGdldFZpZXdDb21wb25lbnQ7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBsb2FkQ29tcG9uZW50OiAoKSA9PiBQcm9taXNlPFR5cGU8YW55Pj47XG4gIGNvbXBvbmVudD86IG5ldmVyO1xuICAvKipcbiAgICogQSBmdW5jdGlvbiByZXR1cm5pbmcgYSBwcm9taXNlIG9mIHRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudCB1c2VkIHdoZW4gYSB3aWRnZXQgaXMgYWRkZWQgb3IgZWRpdGVkLlxuICAgKlxuICAgKiBBIHNhbXBsZSBmdW5jdGlvbiB0byBiZSBwcm92aWRlZCBjb3VsZCBsb29rIGxpa2UgdGhpczpcbiAgICogYGBgXG4gICAqIGFzeW5jIGZ1bmN0aW9uIGxvYWRDb25maWdDb21wb25lbnQoKSB7XG4gICAqICBjb25zdCB7IExhenlXaWRnZXRDb25maWdDb21wb25lbnQgfSA9IGF3YWl0IGltcG9ydCgnLi9sYXp5LXdpZGdldC1jb25maWcnKTtcbiAgICogIHJldHVybiBMYXp5V2lkZ2V0Q29uZmlnQ29tcG9uZW50O1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgbG9hZENvbmZpZ0NvbXBvbmVudD86ICgpID0+IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgY29uZmlnQ29tcG9uZW50PzogbmV2ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xhenlEeW5hbWljQ29tcG9uZW50cyhcbiAgY29tcG9uZW50RGVmaW5pdGlvbjogRHluYW1pY0NvbXBvbmVudHNcbik6IGNvbXBvbmVudERlZmluaXRpb24gaXMgTGF6eUR5bmFtaWNDb21wb25lbnRzIHtcbiAgcmV0dXJuICEhY29tcG9uZW50RGVmaW5pdGlvbj8ubG9hZENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWFnZXJEeW5hbWljQ29tcG9uZW50cyhcbiAgY29tcG9uZW50RGVmaW5pdGlvbjogRHluYW1pY0NvbXBvbmVudHNcbik6IGNvbXBvbmVudERlZmluaXRpb24gaXMgRWFnZXJEeW5hbWljQ29tcG9uZW50cyB7XG4gIHJldHVybiAhIWNvbXBvbmVudERlZmluaXRpb24/LmNvbXBvbmVudDtcbn1cblxuZXhwb3J0IGVudW0gRHluYW1pY0NvbXBvbmVudEVycm9yU3RyYXRlZ3kge1xuICAvKipcbiAgICogV2lsbCBub3QgcmVuZGVyL2luaXRpYWxpemUgdGhlIFdpZGdldCBpbiBjYXNlIGFuIGVycm9yIHdhcyBkZXRlY3RlZC5cbiAgICovXG4gIE5PVF9SRU5ERVIgPSAnTk9UX1JFTkRFUicsXG4gIC8qKlxuICAgKiBXaWxsIGFkZCBhbiBvdmVybGF5IG92ZXIgdGhlIFdpZGdldCwgZGlzcGxheWluZyB0aGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIE9WRVJMQVlfRVJST1IgPSAnT1ZFUkxBWV9FUlJPUicsXG4gIC8qKlxuICAgKiBUaGUgd2lkZ2V0IGltcGxlbWVudHMgZXJyb3IgaGFuZGxpbmcgb24gaXRzIG93bi5cbiAgICovXG4gIENVU1RPTSA9ICdDVVNUT00nXG59XG5cbi8qKlxuICogVXNlIHRoaXMgaW50ZXJmYWNlIG9uIGFueSBjb21wb25lbnQgdG8gZGVmaW5lIHRoZSBpbnRlcmNoYW5nZSBiZXR3ZWVuXG4gKiBjb25maWcgYW5kIGRpc3BsYXkgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY29uZmlndXJhdGlvbiBjb21wb25lbnQgYW5kIGRpc3BsYXkgY29tcG9uZW50LlxuICAgKiBTaG91bGQgYmUgc2VhcmlsemFibGVkIHRvIGFsbG93IHRvIHNhdmUgaXQgdG8gdGhlIEFQSS5cbiAgICovXG4gIGNvbmZpZzogYW55O1xuICAvKipcbiAgICogQWxlcnRzIHJlbGF0ZWQgdG8gdGhlIGR5bmFtaWMgY29tcG9uZW50LlxuICAgKiBDYW4gZWl0aGVyIGJlIHNldCBieSB0aGUgZHluYW1pYyBjb21wb25lbnQgaXQgc2VsZiBvciB2aWEgaXQncyByZXNvbHZlcnMuXG4gICAqL1xuICBhbGVydHM/OiBEeW5hbWljQ29tcG9uZW50QWxlcnRBZ2dyZWdhdG9yO1xuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIG5nMUZvcm0gb24gYW5ndWxhcmpzIGRhc2hib2FyZHMgdG8gZGlzYWJsZS9lbmFibGUgdGhlIHNhdmUgYnV0dG9uLlxuICAgKiBAZGVwcmVjYXRlZDogV2lsbCBub3Qgd29yayBvbiBBbmd1bGFyLURhc2hib2FyZHMgKDEuNi4xLjApLiBVc2UgYENvbnRleHRTZXJ2aWNlRGFzaGJvYXJkLmZvcm1EaXNhYmxlZGAgaW5zdGVhZC5cbiAgICovXG4gIG5nMUZvcm1SZWY/OiBhbnk7XG59XG5cbi8qKlxuICogQW4gbGlmZWN5Y2xlIGhvb2sgd2hpY2ggaXMgY2FsbGVkIGJlZm9yZSBhbiBjb25maWd1cmF0aW9uIGlzIHNhdmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uQmVmb3JlU2F2ZSB7XG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGEgY29uZmlndXJhdGlvbiBvYmplY3QgaXMgc2F2ZWQuIFRoZSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBtYW5pcHVsYXRlIHRoZVxuICAgKiBwYXNzZWQgY29uZmlnIG9iamVjdCBvciB0byBjYW5jZWwgdGhlIHNhdmluZyAocmV0dXJuIGZhbHNlIG9yIE9ic2VydmFibGU8Ym9vbGVhbj4pLlxuICAgKi9cbiAgb25CZWZvcmVTYXZlKGNvbmZpZz86IGFueSk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cbiJdfQ==