UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

58 lines 6.47 kB
import { Component, EnvironmentInjector, Injector, Input, ViewChild } from '@angular/core'; import { ActionService } from './action.service'; import * as i0 from "@angular/core"; import * as i1 from "./action.service"; /** * A <c8y-action> can be added with content projection. * * ```html * <c8y-action> * <button class="btn" (click)="myAction()">My action</button> * </c8y-action> * ``` */ export class ActionComponent { constructor(actionService, _injector) { this.actionService = actionService; /** * Is this action disabled. */ this.disabled = false; /** * The priority of this action (the higher the number, the higher the action will be displayed; optional) */ this.priority = 0; this.injector = _injector; } /** * After page view is initialized, component adds itself to global action list. */ ngAfterViewInit() { this.viewInitTimeout = setTimeout(() => this.actionService.add(this)); } /** * Action is removed from global action list, if component is not used anymore. */ ngOnDestroy() { clearTimeout(this.viewInitTimeout); this.actionService.remove(this); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionComponent, deps: [{ token: i1.ActionService }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionComponent, selector: "c8y-action", inputs: { disabled: "disabled", priority: "priority", icon: "icon", injector: "injector" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0, template: "<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-action', template: "<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>" }] }], ctorParameters: () => [{ type: i1.ActionService }, { type: i0.EnvironmentInjector }], propDecorators: { disabled: [{ type: Input }], priority: [{ type: Input }], icon: [{ type: Input }], template: [{ type: ViewChild, args: ['template', { static: false }] }], injector: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2FjdGlvbi9hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUdqRDs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyxlQUFlO0lBb0IxQixZQUNVLGFBQTRCLEVBQ3BDLFNBQThCO1FBRHRCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEJ0Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBZ0JwQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXhDVSxlQUFlO21HQUFmLGVBQWUsb1BDbEI1Qix5RkFJYzs7NEZEY0QsZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxZQUFZO29IQU9iLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRW9DLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFL0IsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRW52aXJvbm1lbnRJbmplY3RvciwgSW5qZWN0b3IsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uV2l0aFRlbXBsYXRlIH0gZnJvbSAnLi9hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvci9pY29ucyc7XG5cbi8qKlxuICogQSA8Yzh5LWFjdGlvbj4gY2FuIGJlIGFkZGVkIHdpdGggY29udGVudCBwcm9qZWN0aW9uLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxjOHktYWN0aW9uPlxuICogICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cIm15QWN0aW9uKClcIj5NeSBhY3Rpb248L2J1dHRvbj5cbiAqIDwvYzh5LWFjdGlvbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWN0aW9uV2l0aFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIElzIHRoaXMgYWN0aW9uIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBvZiB0aGlzIGFjdGlvbiAodGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgaGlnaGVyIHRoZSBhY3Rpb24gd2lsbCBiZSBkaXNwbGF5ZWQ7IG9wdGlvbmFsKVxuICAgKi9cbiAgQElucHV0KCkgcHJpb3JpdHkgPSAwO1xuICAvKipcbiAgICogVGhlIGljb24gdG8gc2hvdyBvbiB0aGlzIGFjdGlvblxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucztcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSB0ZW1wbGF0ZTogYW55O1xuXG4gIEBJbnB1dCgpIGluamVjdG9yOiBJbmplY3RvcjtcblxuICBwcml2YXRlIHZpZXdJbml0VGltZW91dDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgX2luamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yXG4gICkge1xuICAgIHRoaXMuaW5qZWN0b3IgPSBfaW5qZWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgcGFnZSB2aWV3IGlzIGluaXRpYWxpemVkLCBjb21wb25lbnQgYWRkcyBpdHNlbGYgdG8gZ2xvYmFsIGFjdGlvbiBsaXN0LlxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudmlld0luaXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmFjdGlvblNlcnZpY2UuYWRkKHRoaXMgYXMgQWN0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aW9uIGlzIHJlbW92ZWQgZnJvbSBnbG9iYWwgYWN0aW9uIGxpc3QsIGlmIGNvbXBvbmVudCBpcyBub3QgdXNlZCBhbnltb3JlLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudmlld0luaXRUaW1lb3V0KTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2UucmVtb3ZlKHRoaXMgYXMgQWN0aW9uKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGxpPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+Il19