UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

26 lines 13.4 kB
import { Component } from '@angular/core'; import { map } from 'rxjs/operators'; import { RegisterDeviceService } from '../register-device.service'; import { RegisterDeviceExtensionService } from './register-device-extension.service'; import * as i0 from "@angular/core"; import * as i1 from "./register-device-extension.service"; import * as i2 from "../register-device.service"; import * as i3 from "ngx-bootstrap/dropdown"; import * as i4 from "@c8y/ngx-components"; import * as i5 from "@angular/common"; export class RegisterDeviceDropdownComponent { constructor(registerDeviceExtensionService, registerDeviceService) { this.registerDeviceExtensionService = registerDeviceExtensionService; this.registerDeviceService = registerDeviceService; this.single$ = this.registerDeviceExtensionService.items$.pipe(map(items => items.filter(item => item.category === 'single').sort((a, b) => b.priority - a.priority))); this.bulk$ = this.registerDeviceExtensionService.items$.pipe(map(items => items.filter(item => item.category === 'bulk').sort((a, b) => b.priority - a.priority))); this.limit$ = this.registerDeviceService.limit$.pipe(map(limit => limit.isReached)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterDeviceDropdownComponent, deps: [{ token: i1.RegisterDeviceExtensionService }, { token: i2.RegisterDeviceService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RegisterDeviceDropdownComponent, selector: "c8y-register-device-dropdown", ngImport: i0, template: "<div class=\"dropdown\" dropdown>\n <button\n *ngIf=\"!(limit$ | async); else disable\"\n title=\"{{ 'Register device' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown d-flex a-i-center\"\n dropdownToggle\n aria-haspopup=\"true\"\n data-cy=\"register-device--dropdown-button\"\n >\n <span class=\"text-truncate\" translate>Register device</span>\n <i [c8yIcon]=\"'caret-down'\" class=\"m-l-4 text-primary\"></i>\n </button>\n <ng-template #disable>\n <button\n title=\"{{ 'Device registration disabled' | translate }}\"\n type=\"button\"\n class=\"btn btn-clean d-flex p-l-8\"\n disabled\n >\n <span class=\"text-truncate\" translate>Register device</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n </ng-template>\n\n <!-- dropdown for normal screen sizes -->\n <ul class=\"dropdown-menu dropdown-menu-right hidden-xs\" data-cy=\"register-device--dropdown\" *dropdownMenu>\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <!-- fake dropdown for mobile screen sizes. *dropdownMenu is missing by design! -->\n <ul class=\"dropdown-menu dropdown-menu visible-xs\">\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ng-template #dropdown>\n <ng-container *ngIf=\"single$ | async as single\">\n <li class=\"dropdown-header\" *ngIf=\"single.length > 0\" translate data-cy=\"single-group\">Single registration</li>\n <li *ngFor=\"let item of single\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </li>\n </ng-container>\n <ng-container *ngIf=\"bulk$ | async as bulk\">\n <li class=\"dropdown-header\" *ngIf=\"bulk.length > 0\" translate data-cy=\"bulk-group\">Bulk registration</li>\n <li *ngFor=\"let item of bulk\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </li>\n </ng-container>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i4.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterDeviceDropdownComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-register-device-dropdown', template: "<div class=\"dropdown\" dropdown>\n <button\n *ngIf=\"!(limit$ | async); else disable\"\n title=\"{{ 'Register device' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown d-flex a-i-center\"\n dropdownToggle\n aria-haspopup=\"true\"\n data-cy=\"register-device--dropdown-button\"\n >\n <span class=\"text-truncate\" translate>Register device</span>\n <i [c8yIcon]=\"'caret-down'\" class=\"m-l-4 text-primary\"></i>\n </button>\n <ng-template #disable>\n <button\n title=\"{{ 'Device registration disabled' | translate }}\"\n type=\"button\"\n class=\"btn btn-clean d-flex p-l-8\"\n disabled\n >\n <span class=\"text-truncate\" translate>Register device</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n </ng-template>\n\n <!-- dropdown for normal screen sizes -->\n <ul class=\"dropdown-menu dropdown-menu-right hidden-xs\" data-cy=\"register-device--dropdown\" *dropdownMenu>\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <!-- fake dropdown for mobile screen sizes. *dropdownMenu is missing by design! -->\n <ul class=\"dropdown-menu dropdown-menu visible-xs\">\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ng-template #dropdown>\n <ng-container *ngIf=\"single$ | async as single\">\n <li class=\"dropdown-header\" *ngIf=\"single.length > 0\" translate data-cy=\"single-group\">Single registration</li>\n <li *ngFor=\"let item of single\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </li>\n </ng-container>\n <ng-container *ngIf=\"bulk$ | async as bulk\">\n <li class=\"dropdown-header\" *ngIf=\"bulk.length > 0\" translate data-cy=\"bulk-group\">Bulk registration</li>\n <li *ngFor=\"let item of bulk\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </li>\n </ng-container>\n </ng-template>\n</div>\n" }] }], ctorParameters: () => [{ type: i1.RegisterDeviceExtensionService }, { type: i2.RegisterDeviceService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGV2aWNlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9kcm9wZG93bi9yZWdpc3Rlci1kZXZpY2UtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcmVnaXN0ZXItZGV2aWNlL2Ryb3Bkb3duL3JlZ2lzdGVyLWRldmljZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQU1yRixNQUFNLE9BQU8sK0JBQStCO0lBaUIxQyxZQUNVLDhCQUE4RCxFQUM5RCxxQkFBNEM7UUFENUMsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM5RCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbEJ0RCxZQUFPLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNWLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUN6RixDQUNGLENBQUM7UUFFRixVQUFLLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNWLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUN2RixDQUNGLENBQUM7UUFFRixXQUFNLEdBQXdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQzlCLENBQUM7SUFLQyxDQUFDOytHQXBCTywrQkFBK0I7bUdBQS9CLCtCQUErQixvRUNWNUMsbzdEQWtEQTs7NEZEeENhLCtCQUErQjtrQkFKM0MsU0FBUzsrQkFDRSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlZ2lzdGVyRGV2aWNlU2VydmljZSB9IGZyb20gJy4uL3JlZ2lzdGVyLWRldmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZ2lzdGVyRGV2aWNlRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vcmVnaXN0ZXItZGV2aWNlLWV4dGVuc2lvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJlZ2lzdGVyLWRldmljZS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Rlci1kZXZpY2UtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyRGV2aWNlRHJvcGRvd25Db21wb25lbnQge1xuICBzaW5nbGUkID0gdGhpcy5yZWdpc3RlckRldmljZUV4dGVuc2lvblNlcnZpY2UuaXRlbXMkLnBpcGUoXG4gICAgbWFwKGl0ZW1zID0+XG4gICAgICBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNhdGVnb3J5ID09PSAnc2luZ2xlJykuc29ydCgoYSwgYikgPT4gYi5wcmlvcml0eSAtIGEucHJpb3JpdHkpXG4gICAgKVxuICApO1xuXG4gIGJ1bGskID0gdGhpcy5yZWdpc3RlckRldmljZUV4dGVuc2lvblNlcnZpY2UuaXRlbXMkLnBpcGUoXG4gICAgbWFwKGl0ZW1zID0+XG4gICAgICBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNhdGVnb3J5ID09PSAnYnVsaycpLnNvcnQoKGEsIGIpID0+IGIucHJpb3JpdHkgLSBhLnByaW9yaXR5KVxuICAgIClcbiAgKTtcblxuICBsaW1pdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnJlZ2lzdGVyRGV2aWNlU2VydmljZS5saW1pdCQucGlwZShcbiAgICBtYXAobGltaXQgPT4gbGltaXQuaXNSZWFjaGVkKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVnaXN0ZXJEZXZpY2VFeHRlbnNpb25TZXJ2aWNlOiBSZWdpc3RlckRldmljZUV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RlckRldmljZVNlcnZpY2U6IFJlZ2lzdGVyRGV2aWNlU2VydmljZVxuICApIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBkcm9wZG93bj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiIShsaW1pdCQgfCBhc3luYyk7IGVsc2UgZGlzYWJsZVwiXG4gICAgdGl0bGU9XCJ7eyAnUmVnaXN0ZXIgZGV2aWNlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duIGQtZmxleCBhLWktY2VudGVyXCJcbiAgICBkcm9wZG93blRvZ2dsZVxuICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICBkYXRhLWN5PVwicmVnaXN0ZXItZGV2aWNlLS1kcm9wZG93bi1idXR0b25cIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCIgdHJhbnNsYXRlPlJlZ2lzdGVyIGRldmljZTwvc3Bhbj5cbiAgICA8aSBbYzh5SWNvbl09XCInY2FyZXQtZG93bidcIiBjbGFzcz1cIm0tbC00IHRleHQtcHJpbWFyeVwiPjwvaT5cbiAgPC9idXR0b24+XG4gIDxuZy10ZW1wbGF0ZSAjZGlzYWJsZT5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7ICdEZXZpY2UgcmVnaXN0cmF0aW9uIGRpc2FibGVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhbiBkLWZsZXggcC1sLThcIlxuICAgICAgZGlzYWJsZWRcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIiB0cmFuc2xhdGU+UmVnaXN0ZXIgZGV2aWNlPC9zcGFuPlxuICAgICAgPGkgW2M4eUljb25dPVwiJ2NhcmV0LWRvd24nXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gZHJvcGRvd24gZm9yIG5vcm1hbCBzY3JlZW4gc2l6ZXMgLS0+XG4gIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodCBoaWRkZW4teHNcIiBkYXRhLWN5PVwicmVnaXN0ZXItZGV2aWNlLS1kcm9wZG93blwiICpkcm9wZG93bk1lbnU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3Bkb3duXCI+PC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG5cbiAgPCEtLSBmYWtlIGRyb3Bkb3duIGZvciBtb2JpbGUgc2NyZWVuIHNpemVzLiAqZHJvcGRvd25NZW51IGlzIG1pc3NpbmcgYnkgZGVzaWduISAtLT5cbiAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51IHZpc2libGUteHNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW5nbGUkIHwgYXN5bmMgYXMgc2luZ2xlXCI+XG4gICAgICA8bGkgY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIiAqbmdJZj1cInNpbmdsZS5sZW5ndGggPiAwXCIgdHJhbnNsYXRlIGRhdGEtY3k9XCJzaW5nbGUtZ3JvdXBcIj5TaW5nbGUgcmVnaXN0cmF0aW9uPC9saT5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzaW5nbGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqYzh5T3V0bGV0PVwiaXRlbS50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnVsayQgfCBhc3luYyBhcyBidWxrXCI+XG4gICAgICA8bGkgY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIiAqbmdJZj1cImJ1bGsubGVuZ3RoID4gMFwiIHRyYW5zbGF0ZSBkYXRhLWN5PVwiYnVsay1ncm91cFwiPkJ1bGsgcmVnaXN0cmF0aW9uPC9saT5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBidWxrXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmM4eU91dGxldD1cIml0ZW0udGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==