UNPKG

@theforce/angular

Version:

Angular library for TheForce hand tracking

1 lines 7.34 kB
{"version":3,"file":"theforce-angular.mjs","sources":["../../src/lib/hand-tracker.service.ts","../../src/lib/hand-tracker.component.ts","../../src/lib/hoverable.directive.ts","../../src/lib/hand-tracker.module.ts","../../src/theforce-angular.ts"],"sourcesContent":["import { Injectable, NgZone, OnDestroy } from '@angular/core';\r\nimport { HandTracker, HandTrackerConfig } from '@theforce/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HandTrackerService implements OnDestroy {\r\n private handTracker: HandTracker | null = null;\r\n private handLandmarksSubject = new BehaviorSubject<any[]>([]);\r\n private isTracking = false;\r\n\r\n constructor(private ngZone: NgZone) {}\r\n\r\n public get handLandmarks$(): Observable<any[]> {\r\n return this.handLandmarksSubject.asObservable();\r\n }\r\n\r\n public get tracking(): boolean {\r\n return this.isTracking;\r\n }\r\n\r\n public async initialize(config: HandTrackerConfig = {}): Promise<void> {\r\n this.handTracker = new HandTracker(config);\r\n \r\n this.handTracker.onResults((results) => {\r\n this.ngZone.run(() => {\r\n this.handLandmarksSubject.next(results.multiHandLandmarks || []);\r\n });\r\n });\r\n }\r\n\r\n public async start(config?: HandTrackerConfig): Promise<void> {\r\n if (this.isTracking) {\r\n return;\r\n }\r\n\r\n if (!this.handTracker) {\r\n await this.initialize(config);\r\n }\r\n \r\n if (this.handTracker) {\r\n await this.handTracker.start();\r\n this.isTracking = true;\r\n }\r\n }\r\n\r\n public async stop(): Promise<void> {\r\n if (!this.isTracking || !this.handTracker) {\r\n return;\r\n }\r\n\r\n await this.handTracker.stop();\r\n this.isTracking = false;\r\n this.handLandmarksSubject.next([]);\r\n }\r\n\r\n public async restart(config?: HandTrackerConfig): Promise<void> {\r\n await this.stop();\r\n await this.start(config);\r\n }\r\n\r\n public getTracker(): HandTracker | null {\r\n return this.handTracker;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.handTracker) {\r\n this.handTracker.stop();\r\n this.handTracker = null;\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport type { HandTrackerConfig } from '@theforce/core';\r\nimport { HandTrackerService } from './hand-tracker.service';\r\n\r\n@Component({\r\n selector: 'force-hand-tracker',\r\n template: `\r\n <video #video style=\"display: none;\"></video>\r\n <ng-content></ng-content>\r\n `\r\n})\r\nexport class HandTrackerComponent implements OnInit {\r\n @Input() options: HandTrackerConfig = {};\r\n\r\n constructor(\r\n private handTrackerService: HandTrackerService\r\n ) {}\r\n\r\n async ngOnInit(): Promise<void> {\r\n \r\n await this.handTrackerService.initialize(this.options);\r\n }\r\n} ","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[forceHoverable]'\r\n})\r\nexport class HoverableDirective {\r\n constructor(private elementRef: ElementRef) {\r\n this.elementRef.nativeElement.classList.add('force-hoverable');\r\n }\r\n} ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HandTrackerService } from './hand-tracker.service';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n providers: [\n HandTrackerService\n ]\n})\nexport class HandTrackerModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.HandTrackerService"],"mappings":"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"}