kwikid-camera
Version:
KwikID's Camera Component
105 lines • 13.5 kB
JavaScript
import { __decorate } from "tslib";
import { Component, EventEmitter, Input, Output } from "@angular/core";
import { checkObjectKeyExists, logMethod } from "kwikid-toolkit";
import * as i0 from "@angular/core";
import * as i1 from "./components/kwikid-camera-view/kwikid-camera-view.component";
import * as i2 from "./components/kwikid-camera-capture/kwikid-camera-capture.component";
import * as i3 from "./components/kwikid-camera-record/kwikid-camera-record.component";
import * as i4 from "@angular/common";
export class KwikIDCameraComponent {
constructor() {
this.type = "VIEW";
this.config = {
flipHorizontal: true
};
this.data = undefined;
this.image = "";
this.video = "";
this.onClickBack = new EventEmitter();
this.onClickClose = new EventEmitter();
this.getImage = new EventEmitter();
this.onClickSave = new EventEmitter();
this.getVideo = new EventEmitter();
}
ngOnChanges(changes) {
const verifyChange = (key) => {
return checkObjectKeyExists(changes, key) && !changes[key].firstChange;
};
if (verifyChange("type")) {
this.type = changes.type.currentValue;
}
if (verifyChange("config")) {
this.config = Object.assign(Object.assign({}, this.config), changes.config.currentValue);
}
if (verifyChange("image")) {
this.image = changes.image.currentValue;
}
if (verifyChange("video")) {
this.video = changes.video.currentValue;
}
}
handleOnClickBack(e) {
this.onClickBack.emit(e);
}
handleOnClickClose(e) {
this.onClickClose.emit(e);
}
handleGetImage(e) {
this.getImage.emit(e);
}
handleOnClickSave(e) {
this.onClickSave.emit(e);
}
/**
* All things Record Component
*/
handleGetVideo(e) {
this.getVideo.emit(e);
}
}
/** @nocollapse */ KwikIDCameraComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDCameraComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ KwikIDCameraComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDCameraComponent, selector: "kwikid-camera", inputs: { type: "type", config: "config", data: "data", image: "image", video: "video" }, outputs: { onClickBack: "onClickBack", onClickClose: "onClickClose", getImage: "getImage", onClickSave: "onClickSave", getVideo: "getVideo" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"kwikid-camera\">\n <ng-container *ngIf=\"type === 'VIEW'\">\n <kwikid-camera-view [config]=\"config\">\n <ng-container slot=\"capture-header\">\n <ng-content select=\"[slot='view-header']\"></ng-content>\n </ng-container>\n </kwikid-camera-view>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'CAPTURE'\">\n <kwikid-camera-capture\n [config]=\"config\"\n [image]=\"image\"\n [data]=\"data\"\n (getImage)=\"handleGetImage($event)\"\n (onClickSave)=\"handleOnClickSave($event)\"\n >\n <ng-container slot=\"capture-header\">\n <ng-content select=\"[slot='capture-header']\"></ng-content>\n </ng-container>\n </kwikid-camera-capture>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'RECORD'\">\n <kwikid-camera-record\n [config]=\"config\"\n [video]=\"video\"\n (getVideo)=\"handleGetVideo($event)\"\n (onClickSave)=\"handleOnClickSave($event)\"\n >\n <ng-container slot=\"record-header\">\n <ng-content select=\"[slot='record-header']\"></ng-content>\n </ng-container>\n </kwikid-camera-record>\n </ng-container>\n</div>\n", styles: [":host{position:relative;height:100%}.kwikid-camera{width:100%;height:100%}\n"], components: [{ type: i1.KwikIDCameraViewComponent, selector: "kwikid-camera-view", inputs: ["config"] }, { type: i2.KwikIDCameraCaptureComponent, selector: "kwikid-camera-capture", inputs: ["config", "image", "data"], outputs: ["getImage", "onClickBack", "onClickClose", "onClickSave"] }, { type: i3.KwikIDCameraRecordComponent, selector: "kwikid-camera-record", inputs: ["config", "video"], outputs: ["getVideo", "onClickBack", "onClickClose", "onClickSave"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
__decorate([
logMethod
], KwikIDCameraComponent.prototype, "handleOnClickBack", null);
__decorate([
logMethod
], KwikIDCameraComponent.prototype, "handleOnClickClose", null);
__decorate([
logMethod
], KwikIDCameraComponent.prototype, "handleGetImage", null);
__decorate([
logMethod
], KwikIDCameraComponent.prototype, "handleOnClickSave", null);
__decorate([
logMethod
], KwikIDCameraComponent.prototype, "handleGetVideo", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDCameraComponent, decorators: [{
type: Component,
args: [{
selector: "kwikid-camera",
templateUrl: "./kwikid-camera.component.html",
styleUrls: ["./kwikid-camera.component.scss"]
}]
}], propDecorators: { type: [{
type: Input
}], config: [{
type: Input
}], data: [{
type: Input
}], image: [{
type: Input
}], video: [{
type: Input
}], onClickBack: [{
type: Output
}], onClickClose: [{
type: Output
}], getImage: [{
type: Output
}], onClickSave: [{
type: Output
}], getVideo: [{
type: Output
}], handleOnClickBack: [], handleOnClickClose: [], handleGetImage: [], handleOnClickSave: [], handleGetVideo: [] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3dpa2lkLWNhbWVyYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtY2FtZXJhL3NyYy9saWIva3dpa2lkLWNhbWVyYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtY2FtZXJhL3NyYy9saWIva3dpa2lkLWNhbWVyYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU9qRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBT0UsU0FBSSxHQUFrQyxNQUFNLENBQUM7UUFHN0MsV0FBTSxHQUFRO1lBQ1osY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQztRQUdGLFNBQUksR0FBUSxTQUFTLENBQUM7UUFHdEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHWCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3pELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHMUQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3RELGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHekQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0tBb0R2RDtJQWxEQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDekUsQ0FBQyxDQUFDO1FBRUYsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUN2QztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLG1DQUNOLElBQUksQ0FBQyxNQUFNLEdBQ1gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQy9CLENBQUM7U0FDSDtRQUNELElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDekM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUdELGlCQUFpQixDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUdELGtCQUFrQixDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELGNBQWMsQ0FBQyxDQUFNO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxDQUFNO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUVILGNBQWMsQ0FBQyxDQUFNO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7O3NJQWxGVSxxQkFBcUI7MEhBQXJCLHFCQUFxQixtVENmbEMsbXBDQW9DQTtBRG9DRTtJQURDLFNBQVM7OERBR1Q7QUFHRDtJQURDLFNBQVM7K0RBR1Q7QUFHRDtJQURDLFNBQVM7MkRBR1Q7QUFHRDtJQURDLFNBQVM7OERBR1Q7QUFNRDtJQURDLFNBQVM7MkRBR1Q7NEZBbEZVLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDOzhCQUdDLElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTTtnQkEyQlAsaUJBQWlCLE1BS2pCLGtCQUFrQixNQUtsQixjQUFjLE1BS2QsaUJBQWlCLE1BUWpCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjaGVja09iamVjdEtleUV4aXN0cywgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtY2FtZXJhXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4va3dpa2lkLWNhbWVyYS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4va3dpa2lkLWNhbWVyYS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURDYW1lcmFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICB0eXBlOiBcIlZJRVdcIiB8IFwiQ0FQVFVSRVwiIHwgXCJSRUNPUkRcIiA9IFwiVklFV1wiO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogYW55ID0ge1xuICAgIGZsaXBIb3Jpem9udGFsOiB0cnVlXG4gIH07XG5cbiAgQElucHV0KClcbiAgZGF0YTogYW55ID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGltYWdlID0gXCJcIjtcblxuICBASW5wdXQoKVxuICB2aWRlbyA9IFwiXCI7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2tCYWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGdldEltYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KClcbiAgZ2V0VmlkZW86IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGNoYW5nZXMsIGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcbiAgICB9O1xuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcInR5cGVcIikpIHtcbiAgICAgIHRoaXMudHlwZSA9IGNoYW5nZXMudHlwZS5jdXJyZW50VmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImNvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgIC4uLnRoaXMuY29uZmlnLFxuICAgICAgICAuLi5jaGFuZ2VzLmNvbmZpZy5jdXJyZW50VmFsdWVcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJpbWFnZVwiKSkge1xuICAgICAgdGhpcy5pbWFnZSA9IGNoYW5nZXMuaW1hZ2UuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwidmlkZW9cIikpIHtcbiAgICAgIHRoaXMudmlkZW8gPSBjaGFuZ2VzLnZpZGVvLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uQ2xpY2tCYWNrKGU6IGFueSkge1xuICAgIHRoaXMub25DbGlja0JhY2suZW1pdChlKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25DbGlja0Nsb3NlKGU6IGFueSkge1xuICAgIHRoaXMub25DbGlja0Nsb3NlLmVtaXQoZSk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZUdldEltYWdlKGU6IGFueSkge1xuICAgIHRoaXMuZ2V0SW1hZ2UuZW1pdChlKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25DbGlja1NhdmUoZTogYW55KSB7XG4gICAgdGhpcy5vbkNsaWNrU2F2ZS5lbWl0KGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCB0aGluZ3MgUmVjb3JkIENvbXBvbmVudFxuICAgKi9cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVHZXRWaWRlbyhlOiBhbnkpIHtcbiAgICB0aGlzLmdldFZpZGVvLmVtaXQoZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJrd2lraWQtY2FtZXJhXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnVklFVydcIj5cbiAgICA8a3dpa2lkLWNhbWVyYS12aWV3IFtjb25maWddPVwiY29uZmlnXCI+XG4gICAgICA8bmctY29udGFpbmVyIHNsb3Q9XCJjYXB0dXJlLWhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD0ndmlldy1oZWFkZXInXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwva3dpa2lkLWNhbWVyYS12aWV3PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ0NBUFRVUkUnXCI+XG4gICAgPGt3aWtpZC1jYW1lcmEtY2FwdHVyZVxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgW2ltYWdlXT1cImltYWdlXCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgKGdldEltYWdlKT1cImhhbmRsZUdldEltYWdlKCRldmVudClcIlxuICAgICAgKG9uQ2xpY2tTYXZlKT1cImhhbmRsZU9uQ2xpY2tTYXZlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgc2xvdD1cImNhcHR1cmUtaGVhZGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PSdjYXB0dXJlLWhlYWRlciddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9rd2lraWQtY2FtZXJhLWNhcHR1cmU+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnUkVDT1JEJ1wiPlxuICAgIDxrd2lraWQtY2FtZXJhLXJlY29yZFxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgW3ZpZGVvXT1cInZpZGVvXCJcbiAgICAgIChnZXRWaWRlbyk9XCJoYW5kbGVHZXRWaWRlbygkZXZlbnQpXCJcbiAgICAgIChvbkNsaWNrU2F2ZSk9XCJoYW5kbGVPbkNsaWNrU2F2ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIHNsb3Q9XCJyZWNvcmQtaGVhZGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PSdyZWNvcmQtaGVhZGVyJ11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2t3aWtpZC1jYW1lcmEtcmVjb3JkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19