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