@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
60 lines • 11.4 kB
JavaScript
import { NgIf } from '@angular/common';
import { Component, effect, input, Optional, signal } from '@angular/core';
import { RouterLinkWithHref } from '@angular/router';
import { C8yTranslatePipe, CellRendererContext, IconDirective } from '@c8y/ngx-components';
import { RemoteAccessService } from '@c8y/ngx-components/remote-access/data';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components/remote-access/data";
import * as i2 from "@c8y/ngx-components";
export class RemoteAccessConnectButtonComponent {
constructor(remoteAccess, context) {
this.remoteAccess = remoteAccess;
this.context = context;
this.deviceId = input(null);
this.configurationId = input(null);
this.protocol = input(null);
this.protocolProviders = [];
this.protocolProviders = this.remoteAccess.getProtocolProviders();
this.connectHref = this.getEndpointHref();
}
getEndpointHref() {
const resultSignal = signal(null);
effect(async () => {
let deviceId = this.deviceId();
let configurationId = this.configurationId();
let protocol = this.protocol();
if (this.context) {
if (!deviceId) {
deviceId = this.context.property?.target;
}
if (!configurationId) {
configurationId = this.context.item.id;
}
if (!protocol) {
protocol = this.context.item.protocol;
}
}
if (!deviceId || !configurationId || !protocol) {
resultSignal.set(null);
return;
}
const provider = this.protocolProviders.find(p => p.protocolName === protocol);
if (!provider || !provider.connectEndpointHref) {
resultSignal.set(null);
return;
}
const href = await provider.connectEndpointHref(deviceId, this.context.item || { id: configurationId });
resultSignal.set(href);
}, { allowSignalWrites: true });
return resultSignal.asReadonly();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteAccessConnectButtonComponent, deps: [{ token: i1.RemoteAccessService }, { token: i2.CellRendererContext, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: RemoteAccessConnectButtonComponent, isStandalone: true, selector: "c8y-remote-access-connect-button", inputs: { deviceId: { classPropertyName: "deviceId", publicName: "deviceId", isSignal: true, isRequired: false, transformFunction: null }, configurationId: { classPropertyName: "configurationId", publicName: "configurationId", isSignal: true, isRequired: false, transformFunction: null }, protocol: { classPropertyName: "protocol", publicName: "protocol", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<a\n *ngIf=\"connectHref() as endpointHref\"\n [title]=\"'Connect' | translate\"\n [routerLink]=\"endpointHref\"\n [attr.data-cy]=\"'remoteAccessConnectButton'\"\n>\n <i [c8yIcon]=\"'connected'\"></i>\n</a>\n", dependencies: [{ kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteAccessConnectButtonComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-remote-access-connect-button', standalone: true, imports: [RouterLinkWithHref, IconDirective, NgIf, C8yTranslatePipe], template: "<a\n *ngIf=\"connectHref() as endpointHref\"\n [title]=\"'Connect' | translate\"\n [routerLink]=\"endpointHref\"\n [attr.data-cy]=\"'remoteAccessConnectButton'\"\n>\n <i [c8yIcon]=\"'connected'\"></i>\n</a>\n" }]
}], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.CellRendererContext, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL2NvbmZpZ3VyYXRpb25zL3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0L3JlbW90ZS1hY2Nlc3MtY29ubmVjdC1idXR0b24vcmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL2NvbmZpZ3VyYXRpb25zL3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0L3JlbW90ZS1hY2Nlc3MtY29ubmVjdC1idXR0b24vcmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFFTCxtQkFBbUIsRUFDcEIsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQVFoRCxNQUFNLE9BQU8sa0NBQWtDO0lBUzdDLFlBQ1UsWUFBaUMsRUFDckIsT0FBNkI7UUFEekMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBVm5ELGFBQVEsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDL0Isb0JBQWUsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLEtBQUssQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUl2QixzQkFBaUIsR0FBbUMsRUFBRSxDQUFDO1FBTTdELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLENBQUM7UUFFMUMsTUFBTSxDQUNKLEtBQUssSUFBSSxFQUFFO1lBQ1QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxRQUFRLEdBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFTLEVBQUUsTUFBTSxDQUFDO2dCQUNsRCxDQUFDO2dCQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckIsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQy9DLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMvQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLG1CQUFtQixDQUM3QyxRQUFRLEVBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLENBQzdDLENBQUM7WUFDRixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQzsrR0F4RFUsa0NBQWtDO21HQUFsQyxrQ0FBa0MsZ2dCQ2YvQyx1TkFRQSw0Q0RLWSxrQkFBa0Isb09BQUUsYUFBYSwyRUFBRSxJQUFJLHdGQUFFLGdCQUFnQjs7NEZBRXhELGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSxrQ0FBa0MsY0FFaEMsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQzs7MEJBYWpFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgT3B0aW9uYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEM4eVRyYW5zbGF0ZVBpcGUsIENlbGxSZW5kZXJlckNvbnRleHQsIEljb25EaXJlY3RpdmUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXIsXG4gIFJlbW90ZUFjY2Vzc1NlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL2RhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZW1vdGUtYWNjZXNzLWNvbm5lY3QtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlckxpbmtXaXRoSHJlZiwgSWNvbkRpcmVjdGl2ZSwgTmdJZiwgQzh5VHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlQWNjZXNzQ29ubmVjdEJ1dHRvbkNvbXBvbmVudCB7XG4gIGRldmljZUlkID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgY29uZmlndXJhdGlvbklkID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcHJvdG9jb2wgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuXG4gIGNvbm5lY3RIcmVmOiBSZXR1cm5UeXBlPFJlbW90ZUFjY2Vzc0Nvbm5lY3RCdXR0b25Db21wb25lbnRbJ2dldEVuZHBvaW50SHJlZiddPjtcblxuICBwcml2YXRlIHByb3RvY29sUHJvdmlkZXJzOiBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbW90ZUFjY2VzczogUmVtb3RlQWNjZXNzU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRleHQ/OiBDZWxsUmVuZGVyZXJDb250ZXh0XG4gICkge1xuICAgIHRoaXMucHJvdG9jb2xQcm92aWRlcnMgPSB0aGlzLnJlbW90ZUFjY2Vzcy5nZXRQcm90b2NvbFByb3ZpZGVycygpO1xuICAgIHRoaXMuY29ubmVjdEhyZWYgPSB0aGlzLmdldEVuZHBvaW50SHJlZigpO1xuICB9XG5cbiAgZ2V0RW5kcG9pbnRIcmVmKCkge1xuICAgIGNvbnN0IHJlc3VsdFNpZ25hbCA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuXG4gICAgZWZmZWN0KFxuICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgZGV2aWNlSWQgPSB0aGlzLmRldmljZUlkKCk7XG4gICAgICAgIGxldCBjb25maWd1cmF0aW9uSWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25JZCgpO1xuICAgICAgICBsZXQgcHJvdG9jb2wgPSB0aGlzLnByb3RvY29sKCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoIWRldmljZUlkKSB7XG4gICAgICAgICAgICBkZXZpY2VJZCA9ICg8YW55PnRoaXMuY29udGV4dC5wcm9wZXJ0eSk/LnRhcmdldDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uSWQpIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25JZCA9IHRoaXMuY29udGV4dC5pdGVtLmlkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXByb3RvY29sKSB7XG4gICAgICAgICAgICBwcm90b2NvbCA9IHRoaXMuY29udGV4dC5pdGVtLnByb3RvY29sO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRldmljZUlkIHx8ICFjb25maWd1cmF0aW9uSWQgfHwgIXByb3RvY29sKSB7XG4gICAgICAgICAgcmVzdWx0U2lnbmFsLnNldChudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucHJvdG9jb2xQcm92aWRlcnMuZmluZChwID0+IHAucHJvdG9jb2xOYW1lID09PSBwcm90b2NvbCk7XG4gICAgICAgIGlmICghcHJvdmlkZXIgfHwgIXByb3ZpZGVyLmNvbm5lY3RFbmRwb2ludEhyZWYpIHtcbiAgICAgICAgICByZXN1bHRTaWduYWwuc2V0KG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBocmVmID0gYXdhaXQgcHJvdmlkZXIuY29ubmVjdEVuZHBvaW50SHJlZihcbiAgICAgICAgICBkZXZpY2VJZCxcbiAgICAgICAgICB0aGlzLmNvbnRleHQuaXRlbSB8fCB7IGlkOiBjb25maWd1cmF0aW9uSWQgfVxuICAgICAgICApO1xuICAgICAgICByZXN1bHRTaWduYWwuc2V0KGhyZWYpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVzdWx0U2lnbmFsLmFzUmVhZG9ubHkoKTtcbiAgfVxufVxuIiwiPGFcbiAgKm5nSWY9XCJjb25uZWN0SHJlZigpIGFzIGVuZHBvaW50SHJlZlwiXG4gIFt0aXRsZV09XCInQ29ubmVjdCcgfCB0cmFuc2xhdGVcIlxuICBbcm91dGVyTGlua109XCJlbmRwb2ludEhyZWZcIlxuICBbYXR0ci5kYXRhLWN5XT1cIidyZW1vdGVBY2Nlc3NDb25uZWN0QnV0dG9uJ1wiXG4+XG4gIDxpIFtjOHlJY29uXT1cIidjb25uZWN0ZWQnXCI+PC9pPlxuPC9hPlxuIl19