UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

36 lines 12.4 kB
import { Component, Input } from '@angular/core'; import { CurrentDeviceService } from '@iotize/ionic'; import { TapGPIOController } from './tap-extension'; import * as i0 from "@angular/core"; import * as i1 from "@iotize/ionic"; import * as i2 from "@angular/common"; import * as i3 from "@ionic/angular"; export class TapGpioComponent { tapService; schema = []; lines = 'full'; pins; constructor(tapService) { this.tapService = tapService; this.pins = this.schema.map((entry) => { if (entry.pin.type === 'GPIO') { entry.controller = new TapGPIOController(this.tap, entry.pin); } return entry; }); } get tap() { return this.tapService.tap; } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapGpioComponent, deps: [{ token: i1.CurrentDeviceService }], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TapGpioComponent, selector: "tap-gpio", inputs: { schema: "schema", lines: "lines" }, ngImport: i0, template: "<ion-list [lines]=\"lines\">\n <ion-item *ngFor=\"let config of pins\">\n <ng-template [ngIf]=\"config.pin.type == 'GROUND'\" #ground>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'POWER'\" #power>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.power }}V</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'DISABLED'\" #disabledpin>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'GPIO'\" #gpio>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }} {{ config.pin.num }}</span>\n <ion-label>\n {{ config.title }}\n </ion-label>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'OUT' ? 'primary' : ''\"\n (click)=\"config.controller.setup('OUT')\"\n >OUT</ion-button\n >\n <ion-button (click)=\"config.controller.read()\">READ</ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'IN' ? 'primary' : ''\"\n (click)=\"config.controller.setup('IN')\"\n >IN</ion-button\n >\n <!-- <ion-toggle (click)=\"config.controller.toggle()\"></ion-toggle> -->\n <ion-button\n [color]=\"config.controller._state == 'LOW' ? 'primary' : ''\"\n (click)=\"config.controller.low()\"\n >LOW</ion-button\n >\n <ion-button\n [color]=\"config.controller._state == 'HIGH' ? 'primary' : ''\"\n (click)=\"config.controller.high()\"\n >HIGH</ion-button\n >\n </ion-buttons>\n </ng-template>\n </ion-item>\n</ion-list>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapGpioComponent, decorators: [{ type: Component, args: [{ selector: 'tap-gpio', template: "<ion-list [lines]=\"lines\">\n <ion-item *ngFor=\"let config of pins\">\n <ng-template [ngIf]=\"config.pin.type == 'GROUND'\" #ground>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'POWER'\" #power>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.power }}V</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'DISABLED'\" #disabledpin>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'GPIO'\" #gpio>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }} {{ config.pin.num }}</span>\n <ion-label>\n {{ config.title }}\n </ion-label>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'OUT' ? 'primary' : ''\"\n (click)=\"config.controller.setup('OUT')\"\n >OUT</ion-button\n >\n <ion-button (click)=\"config.controller.read()\">READ</ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'IN' ? 'primary' : ''\"\n (click)=\"config.controller.setup('IN')\"\n >IN</ion-button\n >\n <!-- <ion-toggle (click)=\"config.controller.toggle()\"></ion-toggle> -->\n <ion-button\n [color]=\"config.controller._state == 'LOW' ? 'primary' : ''\"\n (click)=\"config.controller.low()\"\n >LOW</ion-button\n >\n <ion-button\n [color]=\"config.controller._state == 'HIGH' ? 'primary' : ''\"\n (click)=\"config.controller.high()\"\n >HIGH</ion-button\n >\n </ion-buttons>\n </ng-template>\n </ion-item>\n</ion-list>\n" }] }], ctorParameters: () => [{ type: i1.CurrentDeviceService }], propDecorators: { schema: [{ type: Input }], lines: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWdwaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW90aXplLWlvbmljL2dwaW8vc3JjL2xpYi90YXAtZ3Bpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvZ3Bpby9zcmMvbGliL3RhcC1ncGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFPcEQsTUFBTSxPQUFPLGdCQUFnQjtJQU9SO0lBTkgsTUFBTSxHQUFjLEVBQUUsQ0FBQztJQUU5QixLQUFLLEdBQUcsTUFBTSxDQUFDO0lBRWpCLElBQUksQ0FBWTtJQUV2QixZQUFtQixVQUFnQztRQUFoQyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsS0FBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7WUFDRCxPQUFPLEtBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzdCLENBQUM7MkhBbEJVLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLDhGQ1g3Qiw4bUVBd0RBOzs0RkQ3Q2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVU7eUZBS0osTUFBTTtzQkFBckIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW50RGV2aWNlU2VydmljZSB9IGZyb20gJ0Bpb3RpemUvaW9uaWMnO1xuXG5pbXBvcnQgeyBQaW5TY2hlbWEgfSBmcm9tICcuL2RlZmluaXRpb25zJztcbmltcG9ydCB7IFRhcEdQSU9Db250cm9sbGVyIH0gZnJvbSAnLi90YXAtZXh0ZW5zaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFwLWdwaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFwLWdwaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXAtZ3Bpby5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYXBHcGlvQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIHNjaGVtYTogUGluU2NoZW1hID0gW107XG5cbiAgQElucHV0KCkgbGluZXMgPSAnZnVsbCc7XG5cbiAgcHVibGljIHBpbnM6IFBpblNjaGVtYTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFwU2VydmljZTogQ3VycmVudERldmljZVNlcnZpY2UpIHtcbiAgICB0aGlzLnBpbnMgPSB0aGlzLnNjaGVtYS5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkucGluLnR5cGUgPT09ICdHUElPJykge1xuICAgICAgICAoZW50cnkgYXMgYW55KS5jb250cm9sbGVyID0gbmV3IFRhcEdQSU9Db250cm9sbGVyKHRoaXMudGFwLCBlbnRyeS5waW4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5IGFzIGFueTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB0YXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFwU2VydmljZS50YXA7XG4gIH1cbn1cbiIsIjxpb24tbGlzdCBbbGluZXNdPVwibGluZXNcIj5cbiAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBjb25maWcgb2YgcGluc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb25maWcucGluLnR5cGUgPT0gJ0dST1VORCdcIiAjZ3JvdW5kPlxuICAgICAgPHNwYW4gc2xvdD1cInN0YXJ0XCI+e3sgY29uZmlnLm51bSB9fTwvc3Bhbj5cbiAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgIDxzcGFuIHNsb3Q9XCJzdGFydFwiPnt7IGNvbmZpZy5waW4udHlwZSB9fTwvc3Bhbj5cbiAgICAgIDwvaW9uLWxhYmVsPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImNvbmZpZy5waW4udHlwZSA9PSAnUE9XRVInXCIgI3Bvd2VyPlxuICAgICAgPHNwYW4gc2xvdD1cInN0YXJ0XCI+e3sgY29uZmlnLm51bSB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIHNsb3Q9XCJzdGFydFwiPnt7IGNvbmZpZy5waW4udHlwZSB9fTwvc3Bhbj5cbiAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgIDxzcGFuIHNsb3Q9XCJzdGFydFwiPnt7IGNvbmZpZy5wb3dlciB9fVY8L3NwYW4+XG4gICAgICA8L2lvbi1sYWJlbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb25maWcucGluLnR5cGUgPT0gJ0RJU0FCTEVEJ1wiICNkaXNhYmxlZHBpbj5cbiAgICAgIDxzcGFuIHNsb3Q9XCJzdGFydFwiPnt7IGNvbmZpZy5udW0gfX08L3NwYW4+XG4gICAgICA8aW9uLWxhYmVsPlxuICAgICAgICA8c3BhbiBzbG90PVwic3RhcnRcIj57eyBjb25maWcucGluLnR5cGUgfX08L3NwYW4+XG4gICAgICA8L2lvbi1sYWJlbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb25maWcucGluLnR5cGUgPT0gJ0dQSU8nXCIgI2dwaW8+XG4gICAgICA8c3BhbiBzbG90PVwic3RhcnRcIj57eyBjb25maWcubnVtIH19PC9zcGFuPlxuICAgICAgPHNwYW4gc2xvdD1cInN0YXJ0XCI+e3sgY29uZmlnLnBpbi50eXBlIH19IHt7IGNvbmZpZy5waW4ubnVtIH19PC9zcGFuPlxuICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAge3sgY29uZmlnLnRpdGxlIH19XG4gICAgICA8L2lvbi1sYWJlbD5cbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgW2NvbG9yXT1cImNvbmZpZy5jb250cm9sbGVyLl9tb2RlID09ICdPVVQnID8gJ3ByaW1hcnknIDogJydcIlxuICAgICAgICAgIChjbGljayk9XCJjb25maWcuY29udHJvbGxlci5zZXR1cCgnT1VUJylcIlxuICAgICAgICAgID5PVVQ8L2lvbi1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY29uZmlnLmNvbnRyb2xsZXIucmVhZCgpXCI+UkVBRDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29udHJvbGxlci5fbW9kZSA9PSAnSU4nID8gJ3ByaW1hcnknIDogJydcIlxuICAgICAgICAgIChjbGljayk9XCJjb25maWcuY29udHJvbGxlci5zZXR1cCgnSU4nKVwiXG4gICAgICAgICAgPklOPC9pb24tYnV0dG9uXG4gICAgICAgID5cbiAgICAgICAgPCEtLSA8aW9uLXRvZ2dsZSAoY2xpY2spPVwiY29uZmlnLmNvbnRyb2xsZXIudG9nZ2xlKClcIj48L2lvbi10b2dnbGU+IC0tPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29udHJvbGxlci5fc3RhdGUgPT0gJ0xPVycgPyAncHJpbWFyeScgOiAnJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNvbmZpZy5jb250cm9sbGVyLmxvdygpXCJcbiAgICAgICAgICA+TE9XPC9pb24tYnV0dG9uXG4gICAgICAgID5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBbY29sb3JdPVwiY29uZmlnLmNvbnRyb2xsZXIuX3N0YXRlID09ICdISUdIJyA/ICdwcmltYXJ5JyA6ICcnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlnLmNvbnRyb2xsZXIuaGlnaCgpXCJcbiAgICAgICAgICA+SElHSDwvaW9uLWJ1dHRvblxuICAgICAgICA+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvaW9uLWl0ZW0+XG48L2lvbi1saXN0PlxuIl19