@makiwin/ngx-plyr
Version:
## ngx-plyr
1 lines • 16.9 kB
Source Map (JSON)
{"version":3,"file":"makiwin-ngx-plyr.mjs","sources":["../../../projects/ngx-plyr/src/lib/plyr-driver/default-plyr-driver.ts","../../../projects/ngx-plyr/src/lib/plyr/plyr.component.ts","../../../projects/ngx-plyr/src/lib/plyr/plyr.component.html","../../../projects/ngx-plyr/src/lib/plyr.module.ts","../../../projects/ngx-plyr/src/makiwin-ngx-plyr.ts"],"sourcesContent":["import Plyr from \"plyr\";\nimport {\n PlyrDriver,\n PlyrDriverCreateParams,\n PlyrDriverDestroyParams,\n PlyrDriverUpdateSourceParams,\n} from \"./plyr-driver\";\n\nexport class DefaultPlyrDriver implements PlyrDriver {\n create(params: PlyrDriverCreateParams) {\n console.log(Plyr, \"it is plyr\");\n return new Plyr(params.videoElement, params.options);\n }\n\n updateSource(params: PlyrDriverUpdateSourceParams) {\n params.plyr.source = params.source;\n }\n\n destroy(params: PlyrDriverDestroyParams) {\n params.plyr.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n ViewChild,\n} from \"@angular/core\";\nimport * as Plyr from \"plyr\";\nimport { BehaviorSubject, Observable, Subscription } from \"rxjs\";\nimport { filter, first, switchMap } from \"rxjs/operators\";\nimport { DefaultPlyrDriver } from \"../plyr-driver/default-plyr-driver\";\nimport { PlyrDriver } from \"../plyr-driver/plyr-driver\";\n\n@Component({\n selector: \"plyr, [plyr]\", // tslint:disable-line\n templateUrl: \"./plyr.component.html\",\n styleUrls: [\"./plyr.component.css\"],\n exportAs: \"plyr\",\n})\nexport class PlyrComponent implements AfterViewInit, OnChanges, OnDestroy {\n private playerChange = new BehaviorSubject<Plyr>(null);\n\n get player(): Plyr {\n return this.playerChange.getValue();\n }\n\n private events = new Map();\n\n @Input() plyrDriver: PlyrDriver;\n\n @Input() plyrType: Plyr.MediaType = \"video\";\n\n @Input() plyrTitle: string;\n\n @Input() plyrPoster: string;\n\n @Input() plyrSources: Plyr.Source[];\n\n @Input() plyrTracks: Plyr.Track[];\n\n @Input() plyrOptions: Plyr.Options;\n\n @Input() plyrCrossOrigin: boolean;\n\n @Input() plyrPlaysInline: boolean;\n\n @ViewChild(\"v\") private vr: ElementRef;\n\n // ngx-plyr events\n @Output() plyrInit = this.playerChange.pipe(\n filter((player) => !!player)\n ) as EventEmitter<Plyr>;\n\n // standard media events\n @Output() plyrProgress = this.createLazyEvent(\"progress\");\n @Output() plyrPlaying = this.createLazyEvent(\"playing\");\n @Output() plyrPlay = this.createLazyEvent(\"play\");\n @Output() plyrPause = this.createLazyEvent(\"pause\");\n @Output() plyrTimeUpdate = this.createLazyEvent(\"timeupdate\");\n @Output() plyrVolumeChange = this.createLazyEvent(\"volumechange\");\n @Output() plyrSeeking = this.createLazyEvent(\"seeking\");\n @Output() plyrSeeked = this.createLazyEvent(\"seeked\");\n @Output() plyrRateChange = this.createLazyEvent(\"ratechange\");\n @Output() plyrEnded = this.createLazyEvent(\"ended\");\n @Output() plyrEnterFullScreen = this.createLazyEvent(\"enterfullscreen\");\n @Output() plyrExitFullScreen = this.createLazyEvent(\"exitfullscreen\");\n @Output() plyrCaptionsEnabled = this.createLazyEvent(\"captionsenabled\");\n @Output() plyrCaptionsDisabled = this.createLazyEvent(\"captionsdisabled\");\n @Output() plyrLanguageChange = this.createLazyEvent(\"languagechange\");\n @Output() plyrControlsHidden = this.createLazyEvent(\"controlshidden\");\n @Output() plyrControlsShown = this.createLazyEvent(\"controlsshown\");\n @Output() plyrReady = this.createLazyEvent(\"ready\");\n\n // HTML5 events\n @Output() plyrLoadStart = this.createLazyEvent(\"loadstart\");\n @Output() plyrLoadedData = this.createLazyEvent(\"loadeddata\");\n @Output() plyrLoadedMetadata = this.createLazyEvent(\"loadedmetadata\");\n @Output() plyrQualityChange = this.createLazyEvent(\"qualitychange\");\n @Output() plyrCanPlay = this.createLazyEvent(\"canplay\");\n @Output() plyrCanPlayThrough = this.createLazyEvent(\"canplaythrough\");\n @Output() plyrStalled = this.createLazyEvent(\"stalled\");\n @Output() plyrWaiting = this.createLazyEvent(\"waiting\");\n @Output() plyrEmptied = this.createLazyEvent(\"emptied\");\n @Output() plyrCueChange = this.createLazyEvent(\"cuechange\");\n @Output() plyrError = this.createLazyEvent(\"error\");\n\n // YouTube events\n @Output() plyrStateChange = this.createLazyEvent(\"statechange\");\n\n private subscriptions: Subscription[] = [];\n\n private driver: PlyrDriver;\n\n private videoElement: HTMLVideoElement;\n\n constructor(\n private elementRef: ElementRef<HTMLDivElement>,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngOnChanges(changes: { [p in keyof PlyrComponent]?: SimpleChange }) {\n this.subscriptions.push(\n this.plyrInit.pipe(first()).subscribe((player: Plyr) => {\n const reinitTriggers = [\n changes.plyrOptions,\n changes.plyrPlaysInline,\n changes.plyrCrossOrigin,\n ].filter((t) => !!t);\n\n if (reinitTriggers.length) {\n if (reinitTriggers.some((t) => !t.firstChange)) {\n this.initPlyr(true);\n }\n } else {\n this.updatePlyrSource(player);\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.destroyPlayer();\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n ngAfterViewInit() {\n this.initPlyr();\n }\n\n private initPlyr(force = false) {\n if (force || !this.player) {\n this.ngZone.runOutsideAngular(() => {\n this.destroyPlayer();\n\n this.driver = this.plyrDriver || new DefaultPlyrDriver();\n\n this.ensureVideoElement();\n\n const newPlayer = this.driver.create({\n videoElement: this.videoElement,\n options: this.plyrOptions,\n });\n\n this.updatePlyrSource(newPlayer);\n\n this.playerChange.next(newPlayer);\n });\n }\n }\n\n private updatePlyrSource(plyr: Plyr) {\n this.driver.updateSource({\n videoElement: this.videoElement,\n plyr,\n source: {\n type: this.plyrType,\n title: this.plyrTitle,\n sources: this.plyrSources,\n poster: this.plyrPoster,\n tracks: this.plyrTracks,\n },\n });\n }\n\n // see https://stackoverflow.com/a/53704102/1990451\n private createLazyEvent<T extends Plyr.PlyrEvent>(\n name: Plyr.StandardEvent | Plyr.Html5Event | Plyr.YoutubeEvent\n ): EventEmitter<T> {\n return this.plyrInit.pipe(\n switchMap(\n () =>\n new Observable((observer) =>\n this.on(name, (data: T) =>\n this.ngZone.run(() => observer.next(data))\n )\n )\n )\n ) as EventEmitter<T>;\n }\n\n private destroyPlayer() {\n if (this.player) {\n Array.from(this.events.keys()).forEach((name) => this.off(name));\n\n this.driver.destroy({\n plyr: this.player,\n });\n\n this.videoElement = null;\n }\n }\n\n private get hostElement() {\n return this.elementRef.nativeElement;\n }\n\n // this method is required because the plyr inserts clone of the original element on destroy\n // so we catch the clone element right here and reuse it\n private ensureVideoElement() {\n const videoElement = this.hostElement.querySelector(\"video\");\n\n if (videoElement) {\n this.videoElement = videoElement;\n } else {\n this.videoElement = this.renderer.createElement(\"video\");\n this.videoElement.controls = true;\n\n if (this.plyrCrossOrigin) {\n this.videoElement.setAttribute(\"crossorigin\", \"\");\n }\n\n if (this.plyrPlaysInline) {\n this.videoElement.setAttribute(\"playsinline\", \"\");\n }\n\n this.renderer.appendChild(this.hostElement, this.videoElement);\n }\n }\n\n private on(name: string, handler: any) {\n this.events.set(name, handler);\n this.player.on(name as any, handler);\n }\n\n private off(name: string) {\n this.player.off(name as any, this.events.get(name));\n this.events.delete(name);\n }\n}\n","","import { NgModule } from '@angular/core';\nimport { PlyrComponent } from './plyr/plyr.component';\n\n@NgModule({\n declarations: [\n PlyrComponent,\n ],\n exports: [\n PlyrComponent,\n ]\n})\nexport class PlyrModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAQa,iBAAiB,CAAA;AAC5B,IAAA,MAAM,CAAC,MAA8B,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACtD;AAED,IAAA,YAAY,CAAC,MAAoC,EAAA;QAC/C,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KACpC;AAED,IAAA,OAAO,CAAC,MAA+B,EAAA;AACrC,QAAA,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;AACF;;MCKY,aAAa,CAAA;AAGxB,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KACrC;AAuED,IAAA,WAAA,CACU,UAAsC,EACtC,MAAc,EACd,QAAmB,EAAA;AAFnB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAA4B;AACtC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QA9ErB,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AAM/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAIlB,QAAA,IAAQ,CAAA,QAAA,GAAmB,OAAO,CAAC;;QAmBlC,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACzC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CACP,CAAC;;QAGd,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAChD,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACxC,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACxD,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;;QAG1C,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClD,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClD,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;;QAG1C,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAExD,QAAA,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;KAUvC;AAEJ,IAAA,WAAW,CAAC,OAAsD,EAAA;QAChE,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAY,KAAI;AACrD,YAAA,MAAM,cAAc,GAAG;AACrB,gBAAA,OAAO,CAAC,WAAW;AACnB,gBAAA,OAAO,CAAC,eAAe;AACvB,gBAAA,OAAO,CAAC,eAAe;aACxB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAErB,IAAI,cAAc,CAAC,MAAM,EAAE;AACzB,gBAAA,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AAC9C,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC/B,aAAA;SACF,CAAC,CACH,CAAC;KACH;IAED,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KACpD;IAED,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAEO,QAAQ,CAAC,KAAK,GAAG,KAAK,EAAA;AAC5B,QAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;gBACjC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBAEzD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE1B,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACnC,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,OAAO,EAAE,IAAI,CAAC,WAAW;AAC1B,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEjC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,IAAU,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI;AACJ,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,OAAO,EAAE,IAAI,CAAC,WAAW;gBACzB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,MAAM,EAAE,IAAI,CAAC,UAAU;AACxB,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;;AAGO,IAAA,eAAe,CACrB,IAA8D,EAAA;QAE9D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,SAAS,CACP,MACE,IAAI,UAAU,CAAC,CAAC,QAAQ,KACtB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAO,KACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CACF,CACJ,CACiB,CAAC;KACtB;IAEO,aAAa,GAAA;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjE,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,MAAM;AAClB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;AAED,IAAA,IAAY,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACtC;;;IAIO,kBAAkB,GAAA;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAE7D,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AAClC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;YAElC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnD,aAAA;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnD,aAAA;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,SAAA;KACF;IAEO,EAAE,CAAC,IAAY,EAAE,OAAY,EAAA;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAW,EAAE,OAAO,CAAC,CAAC;KACtC;AAEO,IAAA,GAAG,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAW,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC1B;;2GAjNU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,+8CC1B1B,EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FD0Ba,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YAGd,MAAM,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;8IAWP,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEkB,EAAE,EAAA,CAAA;sBAAzB,SAAS;uBAAC,GAAG,CAAA;gBAGJ,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAGG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAGG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEnFI,UAAU,CAAA;;wGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAV,UAAU,EAAA,YAAA,EAAA,CANnB,aAAa,CAAA,EAAA,OAAA,EAAA,CAGb,aAAa,CAAA,EAAA,CAAA,CAAA;yGAGJ,UAAU,EAAA,CAAA,CAAA;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;iBACF,CAAA;;;ACVD;;AAEG;;;;"}