@scandit/web-datacapture-core 8.5.0-beta.1 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/THIRD_PARTY.txt +45 -0
  2. package/build/js/Camera.js +1 -1
  3. package/build/js/{CameraManager-DskA2C7T.js → CameraManager-BTGb7HgX.js} +1 -1
  4. package/build/js/{DataCaptureContext-CbQes_57.js → DataCaptureContext-CVc_U_GE.js} +2 -2
  5. package/build/js/DataCaptureContext.js +1 -1
  6. package/build/js/DataCaptureVersion.js +1 -1
  7. package/build/js/DataCaptureView.js +1 -1
  8. package/build/js/ImageFrameSource.js +1 -1
  9. package/build/js/Vibration.js +1 -1
  10. package/build/js/{browserHelper-Dno5no9Z.d.ts → browserHelper-ChSOtve7.d.ts} +1 -0
  11. package/build/js/{browserHelper-BQPnAZ2Y.js → browserHelper-DuxFlAfF.js} +1 -1
  12. package/build/js/browserHelper.d.ts +1 -1
  13. package/build/js/browserHelper.js +1 -1
  14. package/build/js/controls/CameraFOVSwitchControl.js +1 -1
  15. package/build/js/controls/ZoomSwitchControl.js +1 -1
  16. package/build/js/{hybridDesktopPlatformHelpers-DPAJQLcX.js → hybridDesktopPlatformHelpers-OpmECgIg.js} +1 -1
  17. package/build/js/index.d.ts +1 -1
  18. package/build/js/index.js +1 -1
  19. package/build/js/private/CameraAccess.js +1 -1
  20. package/build/js/private/CameraManager.js +1 -1
  21. package/build/js/private/CoreModuleLicenseTextProvider.js +1 -1
  22. package/build/js/private/FrameReaders/FrameReader.js +1 -1
  23. package/build/js/private/FrameReaders/GrayScaleFrameReader.js +1 -1
  24. package/build/js/private/FrameReaders/index.js +1 -1
  25. package/build/js/private/OrientationObserver.js +1 -1
  26. package/build/js/private/SingleImageUploaderView.js +1 -1
  27. package/build/js/private/ViewControls_related.js +1 -1
  28. package/build/js/private/customHowler/Howl.js +1 -1
  29. package/build/js/private/customHowler/WebAudioContextManager.d.ts +2 -1
  30. package/build/js/private/customHowler/WebAudioContextManager.js +1 -1
  31. package/build/js/private/hybridDesktopPlatformHelpers.js +1 -1
  32. package/build/js/private/ui/molecules/CameraFOVSwitchButton.js +1 -1
  33. package/build/js/private/ui/molecules/CameraSwitchButton.js +1 -1
  34. package/build/js/private/ui/molecules/TorchSwitchIconButton.js +1 -1
  35. package/build/js/private/utils/polyfillLoader.js +1 -1
  36. package/build/js/private/utils/warnMultithreadingUnavailable.js +1 -1
  37. package/build/js/worker/dataCaptureLoader.js +1 -1
  38. package/package.json +1 -1
  39. package/sdc-lib/license/AUTHORS +606 -0
  40. package/sdc-lib/license/web-core-license.txt +14 -1
@@ -1 +1 @@
1
- import{t as e}from"./browserHelper-BQPnAZ2Y.js";const t=[119,101,98,107,105,116,84,114,97,110,115,112,111,114,116,68,117,112,108,101,120,67,104,97,110,110,101,108],n=[53,65,41,124,75,47,108,120,50,48,115,62,66,60,107,57],r=[111,74,88,52,51,101,51,112,66,79,38,88,40,65,36,94],i=String.fromCodePoint,a=i.apply(String,t);i.apply(String,n),i.apply(String,r);function o(){return globalThis.location.hostname===`localhost`||globalThis.location.hostname===`127.0.0.1`||globalThis.location.hostname===``}function s(e){let t=e;if(t!=null&&typeof t.getAppInfo==`function`&&typeof t.getKey==`function`)return t}function c(){let{name:t=``}=e.getUserAgentInfo().getBrowser();return t===`Electron`&&typeof s(window[a])==`object`&&o()}async function l(){var e;return(e=s(window[a]))==null?void 0:e.getAppInfo()}async function u(e){var t;return(t=s(window[a]))==null?void 0:t.getKey(e)}export{u as n,c as r,l as t};
1
+ import{t as e}from"./browserHelper-DuxFlAfF.js";const t=[119,101,98,107,105,116,84,114,97,110,115,112,111,114,116,68,117,112,108,101,120,67,104,97,110,110,101,108],n=[53,65,41,124,75,47,108,120,50,48,115,62,66,60,107,57],r=[111,74,88,52,51,101,51,112,66,79,38,88,40,65,36,94],i=String.fromCodePoint,a=i.apply(String,t);i.apply(String,n),i.apply(String,r);function o(){return globalThis.location.hostname===`localhost`||globalThis.location.hostname===`127.0.0.1`||globalThis.location.hostname===``}function s(e){let t=e;if(t!=null&&typeof t.getAppInfo==`function`&&typeof t.getKey==`function`)return t}function c(){let{name:t=``}=e.getUserAgentInfo().getBrowser();return t===`Electron`&&typeof s(window[a])==`object`&&o()}async function l(){var e;return(e=s(window[a]))==null?void 0:e.getAppInfo()}async function u(e){var t;return(t=s(window[a]))==null?void 0:t.getKey(e)}export{u as n,c as r,l as t};
@@ -17,7 +17,7 @@ import { t as INTERNAL_ACCESS } from "./privateAccess-Cy_yPta4.js";
17
17
  import { i as loadingStatus, n as LoadingStatusSubscriber, r as ProgressInfo, t as LoadingStatus } from "./LoadingStatus-0KzcUFiY.js";
18
18
  import { t as OverrideState } from "./OverrideState-CGTOUAyb.js";
19
19
  import { n as Feature, t as BrowserCompatibility } from "./browserCompatibility-DD4Tvtlv.js";
20
- import { n as DisplayMode, t as BrowserHelper } from "./browserHelper-Dno5no9Z.js";
20
+ import { n as DisplayMode, t as BrowserHelper } from "./browserHelper-ChSOtve7.js";
21
21
  import { t as Anchor } from "./Anchor-DxO9CbHk.js";
22
22
  import { t as Direction } from "./Direction-Cii3d0QY.js";
23
23
  import { t as JSONType } from "./JSONType-BJv7BUtr.js";
package/build/js/index.js CHANGED
@@ -1 +1 @@
1
- import{n as e,t}from"./browserHelper-BQPnAZ2Y.js";import{Color as n}from"./commons/Color.js";import{NumberWithUnit as r}from"./commons/NumberWithUnit.js";import{SizingMode as i}from"./commons/SizeMode.js";import{SizeWithAspect as a}from"./commons/SizeWithAspect.js";import{SizeWithUnit as o}from"./commons/SizeWithUnit.js";import{SizeWithUnitAndAspect as s}from"./commons/SizeWithUnitAndAspect.js";import{RectangularViewfinderAnimation as c,RectangularViewfinderLineStyle as l,RectangularViewfinderStyle as u}from"./ViewfinderPlusRelated.js";import{AimerViewfinder as d}from"./AimerViewfinder.js";import{Brush as f}from"./Brush.js";import{Logger as p}from"./logger.js";import{Feature as m}from"./browserCompatibility.js";import{CameraPosition as h,CameraSettings as g,FocusGestureStrategy as _,FrameSourceState as v,TorchState as y,VideoResolution as b,isCameraFrameSource as x}from"./CameraRelated.js";import{DataCaptureError as S}from"./DataCaptureError.js";import{Point as C}from"./commons/Point.js";import{Rect as w}from"./commons/Rect.js";import{Size as T}from"./commons/Size.js";import{INTERNAL_ACCESS as E}from"./private/privateAccess.js";import{assert as D,assertUnreachable as O,assertUnreachableThrowException as k}from"./tsHelper.js";import{Camera as A}from"./Camera.js";import{ContextStatus as j,PrivateMirrorAxis as M}from"./DataCaptureContextRelated.js";import{DataCaptureContextSettings as N}from"./DataCaptureContextSettings.js";import{Localization as P}from"./Localization.js";import{OverrideState as F}from"./worker/OverrideState.js";import I from"./LoadingStatus.js";import{t as L}from"./DataCaptureContext-CbQes_57.js";import{ScanditHTMLElement as R}from"./private/utils/ScanditHTMLElement.js";import{DataCaptureVersion as z}from"./DataCaptureVersion.js";import{NotificationConfiguration as B}from"./NotificationPresenter/NotificationConfiguration.js";import{NotificationStyle as V}from"./NotificationPresenter/NotificationStyle.js";import{MeasureUnit as H}from"./commons/MeasureUnit.js";import{MarginsWithUnit as U}from"./commons/MarginsWithUnit.js";import{Orientation as W}from"./commons/Orientation.js";import{Quadrilateral as G}from"./commons/Quadrilateral.js";import{Anchor as K}from"./commons/Anchor.js";import{AnchorPositions as q}from"./private/AnchorPositions.js";import{PointWithUnit as J}from"./commons/PointWithUnit.js";import{LogoStyle as Y,PinchToZoom as X,SwipeToZoom as Z,TapToFocus as Q}from"./DataCaptureViewPlusRelated.js";import{AdditionalLayerPosition as $}from"./private/AdditionalLayerPosition.js";import{DataCaptureView as ee}from"./DataCaptureView.js";import{Sound as te}from"./Sound.js";import{Vibration as ne}from"./Vibration.js";import{Feedback as re}from"./Feedback.js";import{convertToPublicFrameData as ie}from"./FrameData.js";import{ImageFrameSource as ae}from"./ImageFrameSource.js";import{LaserlineViewfinder as oe}from"./LaserlineViewfinder.js";import{PrivateNoneLocationSelection as se,RadiusLocationSelection as ce,RectangularLocationSelection as le}from"./LocationSelection.js";import{RectangularViewfinder as ue}from"./RectangularViewfinder.js";import{ScanditIcon as de,ScanditIconShape as fe}from"./ScanditIcon.js";import{ScanditIconBuilder as pe,ScanditIconForIconType as me,ScanditIconType as he}from"./ScanditIconBuilder.js";import{SingleImageUploaderSettings as ge}from"./SingleImageUploaderSettings.js";import{SingleImageUploader as _e}from"./SingleImageUploader.js";import{NoViewfinder as ve}from"./Viewfinder.js";import{ZoomSwitchOrientation as ye}from"./ZoomSwitchOrientation.js";import{Direction as be}from"./commons/Direction.js";import{RectWithUnit as xe}from"./commons/RectWithUnit.js";import{CameraFOVSwitchControl as Se}from"./controls/CameraFOVSwitchControl.js";import{CameraSwitchControl as Ce}from"./controls/CameraSwitchControl.js";import{TorchSwitchControl as we}from"./controls/TorchSwitchControl.js";import{ZoomSwitchControl as Te}from"./controls/ZoomSwitchControl.js";import"./controls/index.js";import"./moduleLoader.js";import{NotificationBuilder as Ee}from"./NotificationPresenter/NotificationBuilder.js";import"./NotificationPresenter/index.js";import{DataCaptureLoader as De}from"./worker/dataCaptureLoader.js";import{WorkerMain as Oe}from"./worker/WorkerMain.js";export{$ as AdditionalLayerPosition,d as AimerViewfinder,K as Anchor,q as AnchorPositions,t as BrowserHelper,f as Brush,A as Camera,Se as CameraFOVSwitchControl,h as CameraPosition,g as CameraSettings,Ce as CameraSwitchControl,n as Color,j as ContextStatus,L as DataCaptureContext,N as DataCaptureContextSettings,S as DataCaptureError,De as DataCaptureLoader,z as DataCaptureVersion,ee as DataCaptureView,be as Direction,e as DisplayMode,m as Feature,re as Feedback,_ as FocusGestureStrategy,v as FrameSourceState,E as INTERNAL_ACCESS,ae as ImageFrameSource,oe as LaserlineViewfinder,P as Localization,p as Logger,Y as LogoStyle,U as MarginsWithUnit,H as MeasureUnit,ve as NoViewfinder,Ee as NotificationBuilder,B as NotificationConfiguration,V as NotificationStyle,r as NumberWithUnit,W as Orientation,F as OverrideState,X as PinchToZoom,C as Point,J as PointWithUnit,M as PrivateMirrorAxis,se as PrivateNoneLocationSelection,G as Quadrilateral,ce as RadiusLocationSelection,w as Rect,xe as RectWithUnit,le as RectangularLocationSelection,ue as RectangularViewfinder,c as RectangularViewfinderAnimation,l as RectangularViewfinderLineStyle,u as RectangularViewfinderStyle,R as ScanditHTMLElement,de as ScanditIcon,pe as ScanditIconBuilder,me as ScanditIconForIconType,fe as ScanditIconShape,he as ScanditIconType,_e as SingleImageUploader,ge as SingleImageUploaderSettings,T as Size,a as SizeWithAspect,o as SizeWithUnit,s as SizeWithUnitAndAspect,i as SizingMode,te as Sound,Z as SwipeToZoom,Q as TapToFocus,y as TorchState,we as TorchSwitchControl,ne as Vibration,b as VideoResolution,Oe as WorkerMain,Te as ZoomSwitchControl,ye as ZoomSwitchOrientation,D as assert,O as assertUnreachable,k as assertUnreachableThrowException,ie as convertToPublicFrameData,x as isCameraFrameSource,I as loadingStatus};
1
+ import{n as e,t}from"./browserHelper-DuxFlAfF.js";import{Color as n}from"./commons/Color.js";import{NumberWithUnit as r}from"./commons/NumberWithUnit.js";import{SizingMode as i}from"./commons/SizeMode.js";import{SizeWithAspect as a}from"./commons/SizeWithAspect.js";import{SizeWithUnit as o}from"./commons/SizeWithUnit.js";import{SizeWithUnitAndAspect as s}from"./commons/SizeWithUnitAndAspect.js";import{RectangularViewfinderAnimation as c,RectangularViewfinderLineStyle as l,RectangularViewfinderStyle as u}from"./ViewfinderPlusRelated.js";import{AimerViewfinder as d}from"./AimerViewfinder.js";import{Brush as f}from"./Brush.js";import{Logger as p}from"./logger.js";import{Feature as m}from"./browserCompatibility.js";import{CameraPosition as h,CameraSettings as g,FocusGestureStrategy as _,FrameSourceState as v,TorchState as y,VideoResolution as b,isCameraFrameSource as x}from"./CameraRelated.js";import{DataCaptureError as S}from"./DataCaptureError.js";import{Point as C}from"./commons/Point.js";import{Rect as w}from"./commons/Rect.js";import{Size as T}from"./commons/Size.js";import{INTERNAL_ACCESS as E}from"./private/privateAccess.js";import{assert as D,assertUnreachable as O,assertUnreachableThrowException as k}from"./tsHelper.js";import{Camera as A}from"./Camera.js";import{ContextStatus as j,PrivateMirrorAxis as M}from"./DataCaptureContextRelated.js";import{DataCaptureContextSettings as N}from"./DataCaptureContextSettings.js";import{Localization as P}from"./Localization.js";import{OverrideState as F}from"./worker/OverrideState.js";import I from"./LoadingStatus.js";import{t as L}from"./DataCaptureContext-CVc_U_GE.js";import{ScanditHTMLElement as R}from"./private/utils/ScanditHTMLElement.js";import{DataCaptureVersion as z}from"./DataCaptureVersion.js";import{NotificationConfiguration as B}from"./NotificationPresenter/NotificationConfiguration.js";import{NotificationStyle as V}from"./NotificationPresenter/NotificationStyle.js";import{MeasureUnit as H}from"./commons/MeasureUnit.js";import{MarginsWithUnit as U}from"./commons/MarginsWithUnit.js";import{Orientation as W}from"./commons/Orientation.js";import{Quadrilateral as G}from"./commons/Quadrilateral.js";import{Anchor as K}from"./commons/Anchor.js";import{AnchorPositions as q}from"./private/AnchorPositions.js";import{PointWithUnit as J}from"./commons/PointWithUnit.js";import{LogoStyle as Y,PinchToZoom as X,SwipeToZoom as Z,TapToFocus as Q}from"./DataCaptureViewPlusRelated.js";import{AdditionalLayerPosition as $}from"./private/AdditionalLayerPosition.js";import{DataCaptureView as ee}from"./DataCaptureView.js";import{Sound as te}from"./Sound.js";import{Vibration as ne}from"./Vibration.js";import{Feedback as re}from"./Feedback.js";import{convertToPublicFrameData as ie}from"./FrameData.js";import{ImageFrameSource as ae}from"./ImageFrameSource.js";import{LaserlineViewfinder as oe}from"./LaserlineViewfinder.js";import{PrivateNoneLocationSelection as se,RadiusLocationSelection as ce,RectangularLocationSelection as le}from"./LocationSelection.js";import{RectangularViewfinder as ue}from"./RectangularViewfinder.js";import{ScanditIcon as de,ScanditIconShape as fe}from"./ScanditIcon.js";import{ScanditIconBuilder as pe,ScanditIconForIconType as me,ScanditIconType as he}from"./ScanditIconBuilder.js";import{SingleImageUploaderSettings as ge}from"./SingleImageUploaderSettings.js";import{SingleImageUploader as _e}from"./SingleImageUploader.js";import{NoViewfinder as ve}from"./Viewfinder.js";import{ZoomSwitchOrientation as ye}from"./ZoomSwitchOrientation.js";import{Direction as be}from"./commons/Direction.js";import{RectWithUnit as xe}from"./commons/RectWithUnit.js";import{CameraFOVSwitchControl as Se}from"./controls/CameraFOVSwitchControl.js";import{CameraSwitchControl as Ce}from"./controls/CameraSwitchControl.js";import{TorchSwitchControl as we}from"./controls/TorchSwitchControl.js";import{ZoomSwitchControl as Te}from"./controls/ZoomSwitchControl.js";import"./controls/index.js";import"./moduleLoader.js";import{NotificationBuilder as Ee}from"./NotificationPresenter/NotificationBuilder.js";import"./NotificationPresenter/index.js";import{DataCaptureLoader as De}from"./worker/dataCaptureLoader.js";import{WorkerMain as Oe}from"./worker/WorkerMain.js";export{$ as AdditionalLayerPosition,d as AimerViewfinder,K as Anchor,q as AnchorPositions,t as BrowserHelper,f as Brush,A as Camera,Se as CameraFOVSwitchControl,h as CameraPosition,g as CameraSettings,Ce as CameraSwitchControl,n as Color,j as ContextStatus,L as DataCaptureContext,N as DataCaptureContextSettings,S as DataCaptureError,De as DataCaptureLoader,z as DataCaptureVersion,ee as DataCaptureView,be as Direction,e as DisplayMode,m as Feature,re as Feedback,_ as FocusGestureStrategy,v as FrameSourceState,E as INTERNAL_ACCESS,ae as ImageFrameSource,oe as LaserlineViewfinder,P as Localization,p as Logger,Y as LogoStyle,U as MarginsWithUnit,H as MeasureUnit,ve as NoViewfinder,Ee as NotificationBuilder,B as NotificationConfiguration,V as NotificationStyle,r as NumberWithUnit,W as Orientation,F as OverrideState,X as PinchToZoom,C as Point,J as PointWithUnit,M as PrivateMirrorAxis,se as PrivateNoneLocationSelection,G as Quadrilateral,ce as RadiusLocationSelection,w as Rect,xe as RectWithUnit,le as RectangularLocationSelection,ue as RectangularViewfinder,c as RectangularViewfinderAnimation,l as RectangularViewfinderLineStyle,u as RectangularViewfinderStyle,R as ScanditHTMLElement,de as ScanditIcon,pe as ScanditIconBuilder,me as ScanditIconForIconType,fe as ScanditIconShape,he as ScanditIconType,_e as SingleImageUploader,ge as SingleImageUploaderSettings,T as Size,a as SizeWithAspect,o as SizeWithUnit,s as SizeWithUnitAndAspect,i as SizingMode,te as Sound,Z as SwipeToZoom,Q as TapToFocus,y as TorchState,we as TorchSwitchControl,ne as Vibration,b as VideoResolution,Oe as WorkerMain,Te as ZoomSwitchControl,ye as ZoomSwitchOrientation,D as assert,O as assertUnreachable,k as assertUnreachableThrowException,ie as convertToPublicFrameData,x as isCameraFrameSource,I as loadingStatus};
@@ -1 +1 @@
1
- import{t as e}from"../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../logger.js";import"../browserCompatibility.js";import{DataCaptureError as n}from"../DataCaptureError.js";import{UnsupportedBrowserError as r}from"./unsupportedBrowserError.js";let i=function(e){return e.WorldFacing=`worldFacing`,e.UserFacing=`userFacing`,e}({}),a=function(e){return e[e.ULTRA_HD=0]=`ULTRA_HD`,e[e.FULL_HD=1]=`FULL_HD`,e[e.HD=2]=`HD`,e[e.SD=3]=`SD`,e[e.NONE=4]=`NONE`,e}({}),o=function(e){return e.AUTO=`auto`,e.FOUR_TO_THREE=`fourToThree`,e.SIXTEEN_TO_NINE=`sixteenToNine`,e}({}),s;(function(i){let a=new Map([[`DeviceCaptureError`,`AbortError`],[`NotSupportedError`,`AbortError`],[`ScreenCaptureError`,`AbortError`],[`TabCaptureError`,`AbortError`],[`TypeError`,`AbortError`],[`InvalidStateError`,`NotAllowedError`],[`MediaDeviceFailedDueToShutdown`,`NotAllowedError`],[`MediaDeviceKillSwitchOn`,`NotAllowedError`],[`PermissionDeniedError`,`NotAllowedError`],[`PermissionDismissedError`,`NotAllowedError`],[`DevicesNotFoundError`,`NotFoundError`],[`SourceUnavailableError`,`NotReadableError`],[`TrackStartError`,`NotReadableError`],[`ConstraintNotSatisfiedError`,`OverconstrainedError`]]),o=`rear.back.rück.arrière.trasera.trás.traseira.posteriore.后面.後面.背面.后置.後置.背置.задней.الخلفية.후.arka.achterzijde.หลัง.baksidan.bagside.sau.bak.tylny.takakamera.belakang.אחורית.πίσω.spate.hátsó.zadní.darrere.posterior.zadná.задня.stražnja.belakang.बैक`.split(`.`),s=new Set(`Desk View Camera.Schreibtischansicht-Kamera.Caméra Desk\xA0View.Cámara de Vista Cenital.Câmara da Vista de Secretária.Fotocamera di Panoramica Scrivania.桌上视角相机.デスクビューカメラ.Камера Обзора стола.Masa Görüntüsü Kamerası.Bureauweergave-camera.كاميرا العرض الرأسي.กล้องดูด้านหน้าโต๊ะ.Bordsvisningskamera.Kamera til Visning af skrivebord.Camera Desk View.Bordvisning-kamera.Kamera w\xA0aplikacji Widok blatu.Työpöytänäkymän kamera.Kamera Tampilan Meja.מצלמת ״תצוגת שולחן״.Κάμερα της Προβολής γραφείου.Cameră Vizualizare birou.Íróasztal nézet kamerája.Stolní kamera.Càmera de l’app Vista de l’Escriptori`.split(`.`)),c=new Set([`MacBook Pro Desk View Camera`]),l=new Set(`Front Camera.Frontkamera.Appareil photo avant.Cámara frontal.Câmera Frontal.Câmara frontal.Fotocamera (anteriore).前置相机.前置相機.前面カメラ.Камера на передней панели.Ön Kamera.Camera aan voorzijde.الكاميرا الأمامية.กล้องด้านหน้า.Kamera på framsidan.Forsidekamera.Camera mặt trước.Kamera foran.Przedni aparat.Etukamera.Kamera Depan.מצלמה קדמית.Μπροστινή κάμερα.Cameră față.Elülső kamera.Přední fotoaparát.Càmera frontal.Predná kamera.Передня камера.Prednja kamera.Kamera Depan.फ़्रंट कैमरा`.split(`.`)),u=new Set(`Back Camera.Rückkamera.Caméra arrière.Cámara trasera.Câmera Traseira.Câmara traseira.Fotocamera (posteriore).后置相机.後置相機.背面カメラ.Камера на задней панели.Arka Kamera.Camera aan achterzijde.الكاميرا الخلفية.กล้องด้านหลัง.Kamera på baksidan.Bagsidekamera.Camera mặt sau.Kamera bak.Tylny aparat.Takakamera.Kamera Belakang.מצלמה אחורית.Πίσω κάμερα.Cameră spate.Hátsó kamera.Zadní fotoaparát.Càmera posterior.Zadná kamera.Задня камера.Stražnja kamera.Kamera Belakang.बैक कैमरा`.split(`.`)),d=new Set(`Back Dual Wide Camera.Rückseitige Dual-Weitwinkelkamera.Double appareil photo grand angle arrière.Cámara trasera dual con gran angular.Câmera Dupla Grande-Angular Traseira.Câmara grande angular dupla traseira.Fotocamera doppia con grandangolo (posteriore).后置双广角镜头.後置雙廣角相機.背面デュアル広角カメラ.Задняя двойная широкоугольная камера.Çift Geniş Kamera Arka Yüzü.كاميرا خلفية مزدوجة عريضة.กล้องคู่ด้านหลังมุมกว้าง.Dubbel vidvinkelkamera på baksidan.Camera kép rộng mặt sau.Dobbelt vidvinkelkamera bak.Tylny dwuobiektywowy aparat szerokokątny.Laajakulmainen kaksoistakakamera.Kamera Lebar Belakang Ganda.מצלמה כפולה רחבה אחורית.Πίσω διπλή ευρεία κάμερα.Cameră dublă cu obiectiv superangular spate.Hátsó, kettős, széles látószögű kamera.Zadní duální širokoúhlý fotoaparát.Càmera dual posterior amb gran angular.Zadná duálna širokouhlá kamera.Задня здвоєна ширококутна камера.Stražnja dvostruka široka kamera.Dwikamera Lebar Belakang.बैक ड्युअल वाइड कैमरा`.split(`.`)),f=new Set(`Back Ultra Wide Camera.Rückseitige Ultra-Weitwinkelkamera.Appareil photo ultra grand angle arrière.Cámara trasera con ultra gran angular.Câmera Ultra-Angular Traseira.Câmara ultra grande angular traseira.Fotocamera con ultra-grandangolo (posteriore).后置超广角相机.後置超廣角相機.背面超広角カメラ.Задняя сверхширокоугольная камера.Ultra Geniş Kamera Arka Yüzü.Ultrabrede camera aan achterzijde.كاميرا خلفية عريضة جدًا.กล้องด้านหลังมุมกว้างอัลตร้า.Ultravidvinkelkamera på baksidan.Ultravidvinkelkameraet på bagsiden.Camera cực rộng mặt sau.Ultravidvinkelkamera bak.Tylny aparat ultraszerokokątny.Ultralaajakulmainen takakamera.Kamera Ultra Lebar Belakang.מצלמה אולטרה רחבה אחורית.Πίσω υπερευρεία κάμερα.Cameră cu obiectiv ultra‑superangular spate.Hátsó, ultraszéles látószögű kamera.Zadní ultra širokoúhlý fotoaparát.Càmera posterior amb ultra gran angular.Zadná ultraširokouhlá kamera.Задня надширококутна камера.Stražnja ultra široka kamera.Kamera Ultralebar Belakang.बैक अल्ट्रा वाइड कैमरा`.split(`.`)),p,m=!1,h=i.mainCameraForPositionOverridesOnDesktop=new Map,g=i.deviceIdToCameraObjects=new Map,_=i.inaccessibleDeviceIds=new Set,v=new Set;function y(e){v.add(e)}i.addVideoDevicesListener=y;function b(e,t){h.set(e,t)}i.setMainCameraForPositionOverridesOnDesktop=b;function x(){h.clear()}i.clearMainCameraForPositionOverridesOnDesktop=x;function S(){return navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices)}function C(){if(typeof navigator.enumerateDevices==`function`)return navigator.enumerateDevices.bind(navigator);if(typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.enumerateDevices==`function`)return navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices)}function w(){m=!0}function T(e){let t=e.toLowerCase();return o.some(e=>t.includes(e))}function E(e){return l.has(e)}i.isIOSFrontCameraLabel=E;function D(e){return u.has(e)}i.isIOSBackCameraLabel=D;function O(e){return d.has(e)}i.isIOSBackDualWideCameraLabel=O;function k(e){return f.has(e)}i.isIOSUltraWideBackCameraLabel=k;function A(e){let t=e.message===`Invalid constraint`?`OverconstrainedError`:a.get(e.name)??e.name;Object.defineProperty(e,`name`,{value:t})}function j(e){if(e.length===0)return{areSomeCameraLabelsFilled:!1,areAllCameraLabelsFilled:!1,areAllCameraLabelsUnfilled:!1};let t=0;for(let n of e)n.label!==``&&t++;let n=t===e.length,r=t===0;return{areSomeCameraLabelsFilled:t>0&&t<e.length,areAllCameraLabelsFilled:n,areAllCameraLabelsUnfilled:r}}function M(e,t){return h.get(t)??e.find(e=>e.position===t)}function N(e,t){let n=t===`worldFacing`?D:E;for(let t of e)if(n(t.label))return t}function P(e,t){if(t===`worldFacing`){let t;for(let n of e){if(O(n.label))return n;!t&&D(n.label)&&(t=n)}return t}else for(let t of e)if(E(t.label))return t}function F(t,n){let{areSomeCameraLabelsFilled:r,areAllCameraLabelsUnfilled:i}=j(t),a=e.getUserAgentInfo().getOS().name===`iOS`;if(i)return t[n===`userFacing`?0:t.length-1];let o=t.filter(e=>e.position===n);if(o.length===1)return o[0];if(r){if(a){let e=N(o,n);if(e!=null)return e}return o[n===`userFacing`?0:o.length-1]}if(a){let e=P(t,n);if(e)return e}return o.sort((e,t)=>e.label.localeCompare(t.label))[0]}function I(t,n){return e.isDesktopDevice()?M(t,n):F(t,n)}i.getMainCameraForPosition=I;function L(e,t){return e.unshift(e.splice(t,1)[0])}function R(t,n){function r(e,t){let n=h.get(t);return n!=null&&e.includes(n)&&(e=e.filter(e=>e!==n),e.unshift(n)),e}let i=t.filter(e=>e.position===`userFacing`),a=t.filter(e=>e.position===`worldFacing`);return e.isDesktopDevice()?(i=r(i,`userFacing`),a=r(a,`worldFacing`)):t.every(e=>e.label===``)?a.reverse():(i.sort((e,t)=>e.label.localeCompare(t.label)),a.sort((e,t)=>e.label.localeCompare(t.label)),e.getUserAgentInfo().getOS().name===`iOS`&&(i.some((e,t)=>E(e.label)&&L(i,t)>=0),a.some((e,t)=>k(e.label)&&L(a,t)>=0),a.some((e,t)=>O(e.label)&&L(a,t)>=0)||a.some((e,t)=>D(e.label)&&L(a,t)>=0))),n===`userFacing`?[...i,...a]:[...a,...i]}i.sortCamerasForCameraPosition=R;function z(e,t){let n=e.getVideoTracks();if(n.length>0){let e=n[0],r;typeof e.getSettings==`function`&&(r=e.getSettings(),r.facingMode!=null&&r.facingMode.length>0&&(t.position=r.facingMode===`environment`?`worldFacing`:`userFacing`));let{label:i=``}=e;i.length>0&&(t.label=i)}}i.adjustCameraFromMediaStream=z;function B(t,n,r){if(g.has(t.deviceId))return g.get(t.deviceId);let{label:i=``,deviceId:a}=t,o;return o=!e.isDesktopDevice()&&r.every(e=>e.label===``&&!g.has(e.deviceId))?r.length===1||n+1<=Math.floor(r.length/2)?`userFacing`:`worldFacing`:T(i)?`worldFacing`:`userFacing`,{position:o,label:i,deviceId:a}}function V(t){let n=t.map((e,t,n)=>B(e,t,n)).map(e=>(e.deviceId!==``&&g.set(e.deviceId,e),e)).filter(e=>!/\b(?:ir|infrared)\b/i.test(e.label)||/^IR UVC WebCam$/i.test(e.label.toUpperCase())).filter(e=>!s.has(e.label)).filter(e=>!c.has(e.label)).filter(e=>!_.has(e.deviceId));if(!e.isDesktopDevice()&&n.length>1&&!n.some(e=>e.position===`worldFacing`)){let e=n.length-1,t=n.map(e=>{let t=/\b(\d+)mp?\b/i.exec(e.label);return t==null?NaN:Number.parseInt(t[1],10)});t.some(e=>Number.isNaN(e))||(e=t.lastIndexOf(Math.max(...t))),n[e].position=`worldFacing`}return n}async function H(){if(p!=null&&p.length>0&&p.every(e=>e.label===``&&!g.has(e.deviceId)))try{return await S()({video:!0,audio:!1})}catch{}}function U(e,n){if(n.length>0&&e.length===n.length&&!n.every((t,n)=>e[n].deviceId===t.deviceId)){let i={};for(let[t,a]of e.entries()){var r;let e=g.get(a.deviceId);if(e==null||e.label!==(((r=n[t])==null?void 0:r.label)??``))continue;let o=n[t].deviceId;i[e.deviceId]=o,_.has(e.deviceId)&&_.add(o),e.deviceId=o,g.set(o,e)}t.log(t.Level.Debug,`Detected updated camera deviceId information and updated it accordingly`,i)}}function W(){typeof navigator.mediaDevices.addEventListener==`function`?navigator.mediaDevices.addEventListener(`devicechange`,w):navigator.mediaDevices.ondevicechange=w}async function G(){let e,t=C();if(t)e=await t();else throw new r({fullSupport:!1,scannerSupport:!0,missingFeatures:[`mediaDevices`]});return e.filter(e=>e.kind===`videoinput`)}async function K(n=!1,i=!1){let a=e.checkBrowserCompatibility();if(!a.fullSupport)throw new r(a);if(W(),p==null||n||m){m=!1;let e,n=p??[];p=[];try{p=await G(),i||(e=await H(),e!=null&&(p=await G())),t.debug(`Camera list (devices):`,...p),p.length>0&&p.every(e=>e.deviceId===``)&&t.log(t.Level.Debug,`Incomplete camera information listed due to user permission denial, cameras will not be accessible`),U(n,p)}catch(e){throw A(e),e}finally{for(let t of(e==null?void 0:e.getVideoTracks())??[])t.stop()}}let o=V(p);t.log(t.Level.Debug,`Camera list (cameras): `,...o);for(let e of v)e([...o]);return[...o]}i.getCameras=K;async function q(e){return t.debug(`Attempt to access camera (parameters):`,e.video),new Promise((t,r)=>{setTimeout(async()=>{try{let i=await S()(e);if(i==null){r(new n({name:`AbortError`,message:`Cannot get stream from getUserMedia function.`}));return}t(i)}catch(e){r(e)}},0)})}function J(e,t){let n={resizeMode:`none`};switch(e){case 0:return{...n,width:{min:2880,ideal:t===`fourToThree`?2880:3840,max:4096},height:{min:1800,ideal:2160,max:2400}};case 1:return{...n,width:{min:1440,ideal:t===`fourToThree`?1440:1920,max:2160},height:{min:900,ideal:1080,max:1440}};case 2:return{...n,width:{min:960,ideal:t===`fourToThree`?960:1280,max:1440},height:{min:480,ideal:720,max:960}};case 3:return{...n,width:{min:640,ideal:640,max:800},height:{min:360,ideal:t===`fourToThree`?480:360,max:640}};default:return{}}}i.getUserMediaVideoParameters=J;function Y(e){e.deviceId!==``&&(t.log(t.Level.Debug,`Camera marked to be inaccessible:`,e),_.add(e.deviceId))}i.markCameraAsInaccessible=Y;async function X(e,n,r){t.log(t.Level.Debug,`Attempt to access camera (camera):`,e);let i={audio:!1,video:J(n,r)};e.deviceId===``?i.video.facingMode={ideal:e.position===`worldFacing`?`environment`:`user`}:i.video.deviceId={exact:e.deviceId};try{let t=await q(i);return z(t,e),t}catch(t){throw A(t),[`OverconstrainedError`,`NotReadableError`,`NotAllowedError`].includes(t.name)||Y(e),t}}i.accessCameraStream=X})(s||={});export{o as AspectRatio,s as CameraAccess,i as CameraPosition,a as CameraResolutionConstraint};
1
+ import{t as e}from"../browserHelper-DuxFlAfF.js";import{Logger as t}from"../logger.js";import"../browserCompatibility.js";import{DataCaptureError as n}from"../DataCaptureError.js";import{UnsupportedBrowserError as r}from"./unsupportedBrowserError.js";let i=function(e){return e.WorldFacing=`worldFacing`,e.UserFacing=`userFacing`,e}({}),a=function(e){return e[e.ULTRA_HD=0]=`ULTRA_HD`,e[e.FULL_HD=1]=`FULL_HD`,e[e.HD=2]=`HD`,e[e.SD=3]=`SD`,e[e.NONE=4]=`NONE`,e}({}),o=function(e){return e.AUTO=`auto`,e.FOUR_TO_THREE=`fourToThree`,e.SIXTEEN_TO_NINE=`sixteenToNine`,e}({}),s;(function(i){let a=new Map([[`DeviceCaptureError`,`AbortError`],[`NotSupportedError`,`AbortError`],[`ScreenCaptureError`,`AbortError`],[`TabCaptureError`,`AbortError`],[`TypeError`,`AbortError`],[`InvalidStateError`,`NotAllowedError`],[`MediaDeviceFailedDueToShutdown`,`NotAllowedError`],[`MediaDeviceKillSwitchOn`,`NotAllowedError`],[`PermissionDeniedError`,`NotAllowedError`],[`PermissionDismissedError`,`NotAllowedError`],[`DevicesNotFoundError`,`NotFoundError`],[`SourceUnavailableError`,`NotReadableError`],[`TrackStartError`,`NotReadableError`],[`ConstraintNotSatisfiedError`,`OverconstrainedError`]]),o=`rear.back.rück.arrière.trasera.trás.traseira.posteriore.后面.後面.背面.后置.後置.背置.задней.الخلفية.후.arka.achterzijde.หลัง.baksidan.bagside.sau.bak.tylny.takakamera.belakang.אחורית.πίσω.spate.hátsó.zadní.darrere.posterior.zadná.задня.stražnja.belakang.बैक`.split(`.`),s=new Set(`Desk View Camera.Schreibtischansicht-Kamera.Caméra Desk\xA0View.Cámara de Vista Cenital.Câmara da Vista de Secretária.Fotocamera di Panoramica Scrivania.桌上视角相机.デスクビューカメラ.Камера Обзора стола.Masa Görüntüsü Kamerası.Bureauweergave-camera.كاميرا العرض الرأسي.กล้องดูด้านหน้าโต๊ะ.Bordsvisningskamera.Kamera til Visning af skrivebord.Camera Desk View.Bordvisning-kamera.Kamera w\xA0aplikacji Widok blatu.Työpöytänäkymän kamera.Kamera Tampilan Meja.מצלמת ״תצוגת שולחן״.Κάμερα της Προβολής γραφείου.Cameră Vizualizare birou.Íróasztal nézet kamerája.Stolní kamera.Càmera de l’app Vista de l’Escriptori`.split(`.`)),c=new Set([`MacBook Pro Desk View Camera`]),l=new Set(`Front Camera.Frontkamera.Appareil photo avant.Cámara frontal.Câmera Frontal.Câmara frontal.Fotocamera (anteriore).前置相机.前置相機.前面カメラ.Камера на передней панели.Ön Kamera.Camera aan voorzijde.الكاميرا الأمامية.กล้องด้านหน้า.Kamera på framsidan.Forsidekamera.Camera mặt trước.Kamera foran.Przedni aparat.Etukamera.Kamera Depan.מצלמה קדמית.Μπροστινή κάμερα.Cameră față.Elülső kamera.Přední fotoaparát.Càmera frontal.Predná kamera.Передня камера.Prednja kamera.Kamera Depan.फ़्रंट कैमरा`.split(`.`)),u=new Set(`Back Camera.Rückkamera.Caméra arrière.Cámara trasera.Câmera Traseira.Câmara traseira.Fotocamera (posteriore).后置相机.後置相機.背面カメラ.Камера на задней панели.Arka Kamera.Camera aan achterzijde.الكاميرا الخلفية.กล้องด้านหลัง.Kamera på baksidan.Bagsidekamera.Camera mặt sau.Kamera bak.Tylny aparat.Takakamera.Kamera Belakang.מצלמה אחורית.Πίσω κάμερα.Cameră spate.Hátsó kamera.Zadní fotoaparát.Càmera posterior.Zadná kamera.Задня камера.Stražnja kamera.Kamera Belakang.बैक कैमरा`.split(`.`)),d=new Set(`Back Dual Wide Camera.Rückseitige Dual-Weitwinkelkamera.Double appareil photo grand angle arrière.Cámara trasera dual con gran angular.Câmera Dupla Grande-Angular Traseira.Câmara grande angular dupla traseira.Fotocamera doppia con grandangolo (posteriore).后置双广角镜头.後置雙廣角相機.背面デュアル広角カメラ.Задняя двойная широкоугольная камера.Çift Geniş Kamera Arka Yüzü.كاميرا خلفية مزدوجة عريضة.กล้องคู่ด้านหลังมุมกว้าง.Dubbel vidvinkelkamera på baksidan.Camera kép rộng mặt sau.Dobbelt vidvinkelkamera bak.Tylny dwuobiektywowy aparat szerokokątny.Laajakulmainen kaksoistakakamera.Kamera Lebar Belakang Ganda.מצלמה כפולה רחבה אחורית.Πίσω διπλή ευρεία κάμερα.Cameră dublă cu obiectiv superangular spate.Hátsó, kettős, széles látószögű kamera.Zadní duální širokoúhlý fotoaparát.Càmera dual posterior amb gran angular.Zadná duálna širokouhlá kamera.Задня здвоєна ширококутна камера.Stražnja dvostruka široka kamera.Dwikamera Lebar Belakang.बैक ड्युअल वाइड कैमरा`.split(`.`)),f=new Set(`Back Ultra Wide Camera.Rückseitige Ultra-Weitwinkelkamera.Appareil photo ultra grand angle arrière.Cámara trasera con ultra gran angular.Câmera Ultra-Angular Traseira.Câmara ultra grande angular traseira.Fotocamera con ultra-grandangolo (posteriore).后置超广角相机.後置超廣角相機.背面超広角カメラ.Задняя сверхширокоугольная камера.Ultra Geniş Kamera Arka Yüzü.Ultrabrede camera aan achterzijde.كاميرا خلفية عريضة جدًا.กล้องด้านหลังมุมกว้างอัลตร้า.Ultravidvinkelkamera på baksidan.Ultravidvinkelkameraet på bagsiden.Camera cực rộng mặt sau.Ultravidvinkelkamera bak.Tylny aparat ultraszerokokątny.Ultralaajakulmainen takakamera.Kamera Ultra Lebar Belakang.מצלמה אולטרה רחבה אחורית.Πίσω υπερευρεία κάμερα.Cameră cu obiectiv ultra‑superangular spate.Hátsó, ultraszéles látószögű kamera.Zadní ultra širokoúhlý fotoaparát.Càmera posterior amb ultra gran angular.Zadná ultraširokouhlá kamera.Задня надширококутна камера.Stražnja ultra široka kamera.Kamera Ultralebar Belakang.बैक अल्ट्रा वाइड कैमरा`.split(`.`)),p,m=!1,h=i.mainCameraForPositionOverridesOnDesktop=new Map,g=i.deviceIdToCameraObjects=new Map,_=i.inaccessibleDeviceIds=new Set,v=new Set;function y(e){v.add(e)}i.addVideoDevicesListener=y;function b(e,t){h.set(e,t)}i.setMainCameraForPositionOverridesOnDesktop=b;function x(){h.clear()}i.clearMainCameraForPositionOverridesOnDesktop=x;function S(){return navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices)}function C(){if(typeof navigator.enumerateDevices==`function`)return navigator.enumerateDevices.bind(navigator);if(typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.enumerateDevices==`function`)return navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices)}function w(){m=!0}function T(e){let t=e.toLowerCase();return o.some(e=>t.includes(e))}function E(e){return l.has(e)}i.isIOSFrontCameraLabel=E;function D(e){return u.has(e)}i.isIOSBackCameraLabel=D;function O(e){return d.has(e)}i.isIOSBackDualWideCameraLabel=O;function k(e){return f.has(e)}i.isIOSUltraWideBackCameraLabel=k;function A(e){let t=e.message===`Invalid constraint`?`OverconstrainedError`:a.get(e.name)??e.name;Object.defineProperty(e,`name`,{value:t})}function j(e){if(e.length===0)return{areSomeCameraLabelsFilled:!1,areAllCameraLabelsFilled:!1,areAllCameraLabelsUnfilled:!1};let t=0;for(let n of e)n.label!==``&&t++;let n=t===e.length,r=t===0;return{areSomeCameraLabelsFilled:t>0&&t<e.length,areAllCameraLabelsFilled:n,areAllCameraLabelsUnfilled:r}}function M(e,t){return h.get(t)??e.find(e=>e.position===t)}function N(e,t){let n=t===`worldFacing`?D:E;for(let t of e)if(n(t.label))return t}function P(e,t){if(t===`worldFacing`){let t;for(let n of e){if(O(n.label))return n;!t&&D(n.label)&&(t=n)}return t}else for(let t of e)if(E(t.label))return t}function F(t,n){let{areSomeCameraLabelsFilled:r,areAllCameraLabelsUnfilled:i}=j(t),a=e.getUserAgentInfo().getOS().name===`iOS`;if(i)return t[n===`userFacing`?0:t.length-1];let o=t.filter(e=>e.position===n);if(o.length===1)return o[0];if(r){if(a){let e=N(o,n);if(e!=null)return e}return o[n===`userFacing`?0:o.length-1]}if(a){let e=P(t,n);if(e)return e}return o.sort((e,t)=>e.label.localeCompare(t.label))[0]}function I(t,n){return e.isDesktopDevice()?M(t,n):F(t,n)}i.getMainCameraForPosition=I;function L(e,t){return e.unshift(e.splice(t,1)[0])}function R(t,n){function r(e,t){let n=h.get(t);return n!=null&&e.includes(n)&&(e=e.filter(e=>e!==n),e.unshift(n)),e}let i=t.filter(e=>e.position===`userFacing`),a=t.filter(e=>e.position===`worldFacing`);return e.isDesktopDevice()?(i=r(i,`userFacing`),a=r(a,`worldFacing`)):t.every(e=>e.label===``)?a.reverse():(i.sort((e,t)=>e.label.localeCompare(t.label)),a.sort((e,t)=>e.label.localeCompare(t.label)),e.getUserAgentInfo().getOS().name===`iOS`&&(i.some((e,t)=>E(e.label)&&L(i,t)>=0),a.some((e,t)=>k(e.label)&&L(a,t)>=0),a.some((e,t)=>O(e.label)&&L(a,t)>=0)||a.some((e,t)=>D(e.label)&&L(a,t)>=0))),n===`userFacing`?[...i,...a]:[...a,...i]}i.sortCamerasForCameraPosition=R;function z(e,t){let n=e.getVideoTracks();if(n.length>0){let e=n[0],r;typeof e.getSettings==`function`&&(r=e.getSettings(),r.facingMode!=null&&r.facingMode.length>0&&(t.position=r.facingMode===`environment`?`worldFacing`:`userFacing`));let{label:i=``}=e;i.length>0&&(t.label=i)}}i.adjustCameraFromMediaStream=z;function B(t,n,r){if(g.has(t.deviceId))return g.get(t.deviceId);let{label:i=``,deviceId:a}=t,o;return o=!e.isDesktopDevice()&&r.every(e=>e.label===``&&!g.has(e.deviceId))?r.length===1||n+1<=Math.floor(r.length/2)?`userFacing`:`worldFacing`:T(i)?`worldFacing`:`userFacing`,{position:o,label:i,deviceId:a}}function V(t){let n=t.map((e,t,n)=>B(e,t,n)).map(e=>(e.deviceId!==``&&g.set(e.deviceId,e),e)).filter(e=>!/\b(?:ir|infrared)\b/i.test(e.label)||/^IR UVC WebCam$/i.test(e.label.toUpperCase())).filter(e=>!s.has(e.label)).filter(e=>!c.has(e.label)).filter(e=>!_.has(e.deviceId));if(!e.isDesktopDevice()&&n.length>1&&!n.some(e=>e.position===`worldFacing`)){let e=n.length-1,t=n.map(e=>{let t=/\b(\d+)mp?\b/i.exec(e.label);return t==null?NaN:Number.parseInt(t[1],10)});t.some(e=>Number.isNaN(e))||(e=t.lastIndexOf(Math.max(...t))),n[e].position=`worldFacing`}return n}async function H(){if(p!=null&&p.length>0&&p.every(e=>e.label===``&&!g.has(e.deviceId)))try{return await S()({video:!0,audio:!1})}catch{}}function U(e,n){if(n.length>0&&e.length===n.length&&!n.every((t,n)=>e[n].deviceId===t.deviceId)){let i={};for(let[t,a]of e.entries()){var r;let e=g.get(a.deviceId);if(e==null||e.label!==(((r=n[t])==null?void 0:r.label)??``))continue;let o=n[t].deviceId;i[e.deviceId]=o,_.has(e.deviceId)&&_.add(o),e.deviceId=o,g.set(o,e)}t.log(t.Level.Debug,`Detected updated camera deviceId information and updated it accordingly`,i)}}function W(){typeof navigator.mediaDevices.addEventListener==`function`?navigator.mediaDevices.addEventListener(`devicechange`,w):navigator.mediaDevices.ondevicechange=w}async function G(){let e,t=C();if(t)e=await t();else throw new r({fullSupport:!1,scannerSupport:!0,missingFeatures:[`mediaDevices`]});return e.filter(e=>e.kind===`videoinput`)}async function K(n=!1,i=!1){let a=e.checkBrowserCompatibility();if(!a.fullSupport)throw new r(a);if(W(),p==null||n||m){m=!1;let e,n=p??[];p=[];try{p=await G(),i||(e=await H(),e!=null&&(p=await G())),t.debug(`Camera list (devices):`,...p),p.length>0&&p.every(e=>e.deviceId===``)&&t.log(t.Level.Debug,`Incomplete camera information listed due to user permission denial, cameras will not be accessible`),U(n,p)}catch(e){throw A(e),e}finally{for(let t of(e==null?void 0:e.getVideoTracks())??[])t.stop()}}let o=V(p);t.log(t.Level.Debug,`Camera list (cameras): `,...o);for(let e of v)e([...o]);return[...o]}i.getCameras=K;async function q(e){return t.debug(`Attempt to access camera (parameters):`,e.video),new Promise((t,r)=>{setTimeout(async()=>{try{let i=await S()(e);if(i==null){r(new n({name:`AbortError`,message:`Cannot get stream from getUserMedia function.`}));return}t(i)}catch(e){r(e)}},0)})}function J(e,t){let n={resizeMode:`none`};switch(e){case 0:return{...n,width:{min:2880,ideal:t===`fourToThree`?2880:3840,max:4096},height:{min:1800,ideal:2160,max:2400}};case 1:return{...n,width:{min:1440,ideal:t===`fourToThree`?1440:1920,max:2160},height:{min:900,ideal:1080,max:1440}};case 2:return{...n,width:{min:960,ideal:t===`fourToThree`?960:1280,max:1440},height:{min:480,ideal:720,max:960}};case 3:return{...n,width:{min:640,ideal:640,max:800},height:{min:360,ideal:t===`fourToThree`?480:360,max:640}};default:return{}}}i.getUserMediaVideoParameters=J;function Y(e){e.deviceId!==``&&(t.log(t.Level.Debug,`Camera marked to be inaccessible:`,e),_.add(e.deviceId))}i.markCameraAsInaccessible=Y;async function X(e,n,r){t.log(t.Level.Debug,`Attempt to access camera (camera):`,e);let i={audio:!1,video:J(n,r)};e.deviceId===``?i.video.facingMode={ideal:e.position===`worldFacing`?`environment`:`user`}:i.video.deviceId={exact:e.deviceId};try{let t=await q(i);return z(t,e),t}catch(t){throw A(t),[`OverconstrainedError`,`NotReadableError`,`NotAllowedError`].includes(t.name)||Y(e),t}}i.accessCameraStream=X})(s||={});export{o as AspectRatio,s as CameraAccess,i as CameraPosition,a as CameraResolutionConstraint};
@@ -1 +1 @@
1
- import{a as e,i as t,n,r,t as i}from"../CameraManager-DskA2C7T.js";export{i as CameraManager,n as CameraManagerEvent,r as CameraResolutionConstraint,t as MeteringMode,e as createFrameId};
1
+ import{a as e,i as t,n,r,t as i}from"../CameraManager-BTGb7HgX.js";export{i as CameraManager,n as CameraManagerEvent,r as CameraResolutionConstraint,t as MeteringMode,e as createFrameId};
@@ -1 +1 @@
1
- import{n as e}from"../DataCaptureContext-CbQes_57.js";export{e as CoreModuleLicenseTextProvider};
1
+ import{n as e}from"../DataCaptureContext-CVc_U_GE.js";export{e as CoreModuleLicenseTextProvider};
@@ -1 +1 @@
1
- import{s as e}from"../../CameraManager-DskA2C7T.js";export{e as FrameReader};
1
+ import{s as e}from"../../CameraManager-BTGb7HgX.js";export{e as FrameReader};
@@ -1 +1 @@
1
- import{o as e}from"../../CameraManager-DskA2C7T.js";export{e as GrayScaleFrameReader};
1
+ import{o as e}from"../../CameraManager-BTGb7HgX.js";export{e as GrayScaleFrameReader};
@@ -1 +1 @@
1
- import{ColorType as e}from"./ColorType.js";import{o as t,s as n}from"../../CameraManager-DskA2C7T.js";export{n as FrameReader,e as FrameReaderType,t as GrayScaleFrameReader};
1
+ import{ColorType as e}from"./ColorType.js";import{o as t,s as n}from"../../CameraManager-BTGb7HgX.js";export{n as FrameReader,e as FrameReaderType,t as GrayScaleFrameReader};
@@ -1 +1 @@
1
- import{t as e}from"../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../logger.js";import{debounce as n}from"./utils/debounce.js";import"../commons/Orientation.js";const r=`orientationchange`,i={"portrait-primary":{type:`portrait-primary`,angle:0,value:`portrait`},"portrait-secondary":{type:`portrait-secondary`,angle:180,value:`portraitUpsideDown`},"landscape-primary":{type:`landscape-primary`,angle:90,value:`landscapeLeft`},"landscape-secondary":{type:`landscape-secondary`,angle:270,value:`landscapeRight`}};var a=class extends EventTarget{constructor(...e){super(...e),this.orientation={value:`portrait`,type:`portrait-primary`,angle:0},this._landscapeOrientationMediaQuery=null,this.screenOrientationChangeListener=this.onScreenOrientationChange.bind(this),this.landscapeOrientationMediaQueryChangeListener=this.onLandscapeOrientationMediaQueryChange.bind(this),this.windowResizeListener=n(this.handleWindowResize.bind(this),700),this.lastWidth=null,this.lastHeight=null}get landscapeOrientationMediaQuery(){return this._landscapeOrientationMediaQuery===null&&(this._landscapeOrientationMediaQuery=globalThis.matchMedia(`(orientation: landscape)`)),this._landscapeOrientationMediaQuery}get isIosPwaMode(){return e.isIOS()&&(e.isPwaDisplayMode(`standalone`)||e.isPwaDisplayMode(`fullscreen`)||e.isPwaDisplayMode(`minimal-ui`))}register(){if(this.isScreenOrientationApiSupported()&&!this.isIosPwaMode)screen.orientation.addEventListener(`change`,this.screenOrientationChangeListener),this.onScreenOrientationChange();else if(this.isIosPwaMode){var e,t;(e=(t=globalThis).addEventListener)==null||e.call(t,`resize`,this.windowResizeListener),this.handleWindowResize()}else{var n;(n=this.landscapeOrientationMediaQuery)==null||n.addEventListener(`change`,this.landscapeOrientationMediaQueryChangeListener),this.onLandscapeOrientationMediaQueryChange(new MediaQueryListEvent(`change`,{matches:this.landscapeOrientationMediaQuery.matches}))}}unregister(){globalThis.removeEventListener(`resize`,this.windowResizeListener),this.isScreenOrientationApiSupported()&&screen.orientation.removeEventListener(`change`,this.screenOrientationChangeListener),this.landscapeOrientationMediaQuery.removeEventListener(`change`,this.landscapeOrientationMediaQueryChangeListener)}isScreenOrientationApiSupported(){return`screen`in globalThis&&`orientation`in screen&&typeof screen.orientation.addEventListener==`function`}dispatchOrientationChangeEvent(e){this.dispatchEvent(new CustomEvent(r,{detail:e}))}onScreenOrientationChange(){this.orientation=i[screen.orientation.type],this.dispatchOrientationChangeEvent(this.orientation)}onLandscapeOrientationMediaQueryChange(e){let t=e;this.orientation=t.matches?i[`landscape-primary`]:i[`portrait-primary`],this.dispatchOrientationChangeEvent(this.orientation)}handleWindowResize(){let e=globalThis.innerWidth,n=globalThis.innerHeight,r=this.lastWidth===null||this.lastHeight===null;if(!r&&e===this.lastWidth&&n===this.lastHeight)return;let a=e>n?i[`landscape-primary`]:i[`portrait-primary`];(r||this.orientation.value!==a.value)&&(t.debug(`OrientationObserver: dispatching orientation change event`,{newOrientation:a,currentOrientation:this.orientation}),this.orientation=a,this.dispatchOrientationChangeEvent(this.orientation)),this.lastWidth=e,this.lastHeight=n}};export{a as OrientationObserver,r as orientationChangeEvent};
1
+ import{t as e}from"../browserHelper-DuxFlAfF.js";import{Logger as t}from"../logger.js";import{debounce as n}from"./utils/debounce.js";import"../commons/Orientation.js";const r=`orientationchange`,i={"portrait-primary":{type:`portrait-primary`,angle:0,value:`portrait`},"portrait-secondary":{type:`portrait-secondary`,angle:180,value:`portraitUpsideDown`},"landscape-primary":{type:`landscape-primary`,angle:90,value:`landscapeLeft`},"landscape-secondary":{type:`landscape-secondary`,angle:270,value:`landscapeRight`}};var a=class extends EventTarget{constructor(...e){super(...e),this.orientation={value:`portrait`,type:`portrait-primary`,angle:0},this._landscapeOrientationMediaQuery=null,this.screenOrientationChangeListener=this.onScreenOrientationChange.bind(this),this.landscapeOrientationMediaQueryChangeListener=this.onLandscapeOrientationMediaQueryChange.bind(this),this.windowResizeListener=n(this.handleWindowResize.bind(this),700),this.lastWidth=null,this.lastHeight=null}get landscapeOrientationMediaQuery(){return this._landscapeOrientationMediaQuery===null&&(this._landscapeOrientationMediaQuery=globalThis.matchMedia(`(orientation: landscape)`)),this._landscapeOrientationMediaQuery}get isIosPwaMode(){return e.isIOS()&&(e.isPwaDisplayMode(`standalone`)||e.isPwaDisplayMode(`fullscreen`)||e.isPwaDisplayMode(`minimal-ui`))}register(){if(this.isScreenOrientationApiSupported()&&!this.isIosPwaMode)screen.orientation.addEventListener(`change`,this.screenOrientationChangeListener),this.onScreenOrientationChange();else if(this.isIosPwaMode){var e,t;(e=(t=globalThis).addEventListener)==null||e.call(t,`resize`,this.windowResizeListener),this.handleWindowResize()}else{var n;(n=this.landscapeOrientationMediaQuery)==null||n.addEventListener(`change`,this.landscapeOrientationMediaQueryChangeListener),this.onLandscapeOrientationMediaQueryChange(new MediaQueryListEvent(`change`,{matches:this.landscapeOrientationMediaQuery.matches}))}}unregister(){globalThis.removeEventListener(`resize`,this.windowResizeListener),this.isScreenOrientationApiSupported()&&screen.orientation.removeEventListener(`change`,this.screenOrientationChangeListener),this.landscapeOrientationMediaQuery.removeEventListener(`change`,this.landscapeOrientationMediaQueryChangeListener)}isScreenOrientationApiSupported(){return`screen`in globalThis&&`orientation`in screen&&typeof screen.orientation.addEventListener==`function`}dispatchOrientationChangeEvent(e){this.dispatchEvent(new CustomEvent(r,{detail:e}))}onScreenOrientationChange(){this.orientation=i[screen.orientation.type],this.dispatchOrientationChangeEvent(this.orientation)}onLandscapeOrientationMediaQueryChange(e){let t=e;this.orientation=t.matches?i[`landscape-primary`]:i[`portrait-primary`],this.dispatchOrientationChangeEvent(this.orientation)}handleWindowResize(){let e=globalThis.innerWidth,n=globalThis.innerHeight,r=this.lastWidth===null||this.lastHeight===null;if(!r&&e===this.lastWidth&&n===this.lastHeight)return;let a=e>n?i[`landscape-primary`]:i[`portrait-primary`];(r||this.orientation.value!==a.value)&&(t.debug(`OrientationObserver: dispatching orientation change event`,{newOrientation:a,currentOrientation:this.orientation}),this.orientation=a,this.dispatchOrientationChangeEvent(this.orientation)),this.lastWidth=e,this.lastHeight=n}};export{a as OrientationObserver,r as orientationChangeEvent};
@@ -1 +1 @@
1
- import{t as e}from"../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../logger.js";import{a as n}from"../CameraManager-DskA2C7T.js";import{Localization as r}from"../Localization.js";import{scanningByScandit as i}from"../assets/scanningByScandit.js";import{classNames as a,css as o,styles as s}from"./SingleImageUploaderViewStyles.js";var c=class c{constructor(e){this.canUploadFile=!1,this._mounted=!1,this._loading=!1,this._htmlRoot=void 0,this._canvas=void 0,this._onInputCheck=void 0,this._onBeforeFileRead=void 0,this._onImageLoadError=void 0,this._onFileReaderError=void 0,this._onCaptureReady=void 0,this._resizedImageSizeLimit=1440,this._inputElement=void 0,this._buttonElement=void 0,this._informationElement=void 0,this._chooseImageText=``,this._localizationSubscription=void 0,this._onLocalizationUpdated=this.onLocalizationUpdated.bind(this),this._settings=e}get canvas(){return this._canvas||=document.createElement(`canvas`),this._canvas}get canvasContext(){return this._canvasContext||=this.canvas.getContext(`2d`,{willReadFrequently:!0}),this._canvasContext}mount(t){if(this._mounted)return;if(!document.head.querySelector(`[data-component=${c.componentName}]`)){let e=document.createElement(`style`);e.dataset.component=c.componentName,e.textContent=o,document.head.append(e)}let n=document.createElement(`div`);n.className=a.SINGLE_IMAGE_UPLOADER_CONTAINER,Object.assign(n.style,s.SINGLE_IMAGE_UPLOADER_CONTAINER_STYLE,this._settings.containerStyle),t.append(n);let{iconElement:l,iconStyle:u,informationElement:d,informationStyle:f,buttonElement:p,buttonStyle:m,onlyCameraCapture:h}=this._settings;Object.assign(l.style,s.SINGLE_IMAGE_UPLOADER_ICON_STYLE,u,{maxWidth:`100px`,maxHeight:`100px`}),n.append(l),d.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(Object.assign(d.style,s.SINGLE_IMAGE_UPLOADER_INFORMATION_STYLE,f),d.textContent=r.getInstance().get(`core.singleImageUploader.title`)),n.append(d);let g=document.createElement(`input`);if(g.type=`file`,h)g.accept=`image/*`,g.capture=`environment`,g.dataset.onlyCaptureOnMobile=`environment`;else{var _;g.accept=e.isAndroid()&&(_=e.getUserAgentInfo().getBrowser().name)!=null&&_.toLowerCase().includes(`chrome`)?`image/*;capture=camera`:`image/*`}g.addEventListener(`change`,e=>{this.onFileUpload(e)}),g.addEventListener(`click`,e=>{var t;(t=this._onInputCheck)==null||t.call(this,e)}),g.addEventListener(`keydown`,e=>{var t;(t=this._onInputCheck)==null||t.call(this,e)});let v=document.createElement(`label`);v.append(g),p.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&Object.assign(p.style,s.SINGLE_IMAGE_UPLOADER_BUTTON_STYLE,m),v.append(p),n.append(v);let y=document.createRange().createContextualFragment(atob(i)).firstElementChild;Object.assign(y.style,{position:`absolute`,bottom:`1em`,right:`1em`,width:`10em`}),n.append(y),this._htmlRoot=n,this._mounted=!0,this._inputElement=g,this._buttonElement=p,this._chooseImageText=p.textContent??``,this._informationElement=d,this._localizationSubscription=r.getInstance().subscribe(this._onLocalizationUpdated)}unmount(){var e,t,n;this._mounted&&=((e=this._htmlRoot)==null||e.remove(),(t=document.head.querySelector(`[data-component=${c.componentName}]`))==null||t.remove(),(n=this._localizationSubscription)==null||n.cancel(),!1)}setButtonState(e){this._inputElement&&(this._inputElement.disabled=e===`disabled`)}getButtonState(){return this._inputElement?this._inputElement.disabled?`disabled`:`enabled`:`disabled`}onInputCheck(e){this._onInputCheck=e}onBeforeFileRead(e){this._onBeforeFileRead=e}onImageLoadError(e){this._onImageLoadError=e}onFileReaderError(e){this._onFileReaderError=e}onCaptureReady(e){this._onCaptureReady=e}onAfterImageProcessed(){this.setLoading(!1)}onLocalizationUpdated(){var e,t;(e=this._buttonElement)!=null&&e.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(this._buttonElement.textContent=r.getInstance().get(`core.singleImageUploader.button`)),(t=this._informationElement)!=null&&t.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(this._informationElement.textContent=r.getInstance().get(`core.singleImageUploader.title`))}setLoading(e){this._buttonElement&&(this.setButtonState(e?`disabled`:`enabled`),this._buttonElement.textContent=e?`...`:this._chooseImageText,this._loading=e)}getResizedImageDimensions(e,t){return e<=this._resizedImageSizeLimit&&t<=this._resizedImageSizeLimit?{width:e,height:t}:e>t?{width:this._resizedImageSizeLimit,height:Math.round(t/e*this._resizedImageSizeLimit)}:{width:Math.round(e/t*this._resizedImageSizeLimit),height:this._resizedImageSizeLimit}}onImageLoad(e){var t;let{height:r,width:i}=this.getResizedImageDimensions(e.naturalWidth,e.naturalHeight);this.canvasContext.canvas.width=i,this.canvasContext.canvas.height=r,this.canvasContext.drawImage(e,0,0,i,r);let a={data:this.canvasContext.getImageData(0,0,i,r).data,frameId:n(),width:i,height:r};(t=this._onCaptureReady)==null||t.call(this,a)}onFileReaderLoad(e,t,n){e.value=``,t.result!=null&&(n.addEventListener(`load`,()=>{this.onImageLoad(n)},{once:!0}),n.addEventListener(`error`,e=>{var t;(t=this._onImageLoadError)==null||t.call(this,e),this.setLoading(!1)},{once:!0}),n.src=t.result)}async onFileUpload(e){var n;this.setLoading(!0);let r=e.currentTarget,{files:i}=r;if(i==null||i.length===0){this.setLoading(!1);return}let a=(n=this._onBeforeFileRead)==null?void 0:n.call(this,e);if(a instanceof Promise&&await a,!this.canUploadFile){r.value=``,t.warn(`Can't upload file, no capture mode enabled.`),this.setLoading(!1);return}let o=new Image,s=new FileReader;s.addEventListener(`load`,()=>{this.onFileReaderLoad(r,s,o)}),s.addEventListener(`error`,e=>{var t;(t=this._onFileReaderError)==null||t.call(this,e),this.setLoading(!1)}),s.readAsDataURL(i[0])}};c.componentName=`SingleImageUploaderView`,c.DEFAULT_DOM_ATTRIBUTE=`data-scandit-default`;export{c as SingleImageUploaderView};
1
+ import{t as e}from"../browserHelper-DuxFlAfF.js";import{Logger as t}from"../logger.js";import{a as n}from"../CameraManager-BTGb7HgX.js";import{Localization as r}from"../Localization.js";import{scanningByScandit as i}from"../assets/scanningByScandit.js";import{classNames as a,css as o,styles as s}from"./SingleImageUploaderViewStyles.js";var c=class c{constructor(e){this.canUploadFile=!1,this._mounted=!1,this._loading=!1,this._htmlRoot=void 0,this._canvas=void 0,this._onInputCheck=void 0,this._onBeforeFileRead=void 0,this._onImageLoadError=void 0,this._onFileReaderError=void 0,this._onCaptureReady=void 0,this._resizedImageSizeLimit=1440,this._inputElement=void 0,this._buttonElement=void 0,this._informationElement=void 0,this._chooseImageText=``,this._localizationSubscription=void 0,this._onLocalizationUpdated=this.onLocalizationUpdated.bind(this),this._settings=e}get canvas(){return this._canvas||=document.createElement(`canvas`),this._canvas}get canvasContext(){return this._canvasContext||=this.canvas.getContext(`2d`,{willReadFrequently:!0}),this._canvasContext}mount(t){if(this._mounted)return;if(!document.head.querySelector(`[data-component=${c.componentName}]`)){let e=document.createElement(`style`);e.dataset.component=c.componentName,e.textContent=o,document.head.append(e)}let n=document.createElement(`div`);n.className=a.SINGLE_IMAGE_UPLOADER_CONTAINER,Object.assign(n.style,s.SINGLE_IMAGE_UPLOADER_CONTAINER_STYLE,this._settings.containerStyle),t.append(n);let{iconElement:l,iconStyle:u,informationElement:d,informationStyle:f,buttonElement:p,buttonStyle:m,onlyCameraCapture:h}=this._settings;Object.assign(l.style,s.SINGLE_IMAGE_UPLOADER_ICON_STYLE,u,{maxWidth:`100px`,maxHeight:`100px`}),n.append(l),d.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(Object.assign(d.style,s.SINGLE_IMAGE_UPLOADER_INFORMATION_STYLE,f),d.textContent=r.getInstance().get(`core.singleImageUploader.title`)),n.append(d);let g=document.createElement(`input`);if(g.type=`file`,h)g.accept=`image/*`,g.capture=`environment`,g.dataset.onlyCaptureOnMobile=`environment`;else{var _;g.accept=e.isAndroid()&&(_=e.getUserAgentInfo().getBrowser().name)!=null&&_.toLowerCase().includes(`chrome`)?`image/*;capture=camera`:`image/*`}g.addEventListener(`change`,e=>{this.onFileUpload(e)}),g.addEventListener(`click`,e=>{var t;(t=this._onInputCheck)==null||t.call(this,e)}),g.addEventListener(`keydown`,e=>{var t;(t=this._onInputCheck)==null||t.call(this,e)});let v=document.createElement(`label`);v.append(g),p.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&Object.assign(p.style,s.SINGLE_IMAGE_UPLOADER_BUTTON_STYLE,m),v.append(p),n.append(v);let y=document.createRange().createContextualFragment(atob(i)).firstElementChild;Object.assign(y.style,{position:`absolute`,bottom:`1em`,right:`1em`,width:`10em`}),n.append(y),this._htmlRoot=n,this._mounted=!0,this._inputElement=g,this._buttonElement=p,this._chooseImageText=p.textContent??``,this._informationElement=d,this._localizationSubscription=r.getInstance().subscribe(this._onLocalizationUpdated)}unmount(){var e,t,n;this._mounted&&=((e=this._htmlRoot)==null||e.remove(),(t=document.head.querySelector(`[data-component=${c.componentName}]`))==null||t.remove(),(n=this._localizationSubscription)==null||n.cancel(),!1)}setButtonState(e){this._inputElement&&(this._inputElement.disabled=e===`disabled`)}getButtonState(){return this._inputElement?this._inputElement.disabled?`disabled`:`enabled`:`disabled`}onInputCheck(e){this._onInputCheck=e}onBeforeFileRead(e){this._onBeforeFileRead=e}onImageLoadError(e){this._onImageLoadError=e}onFileReaderError(e){this._onFileReaderError=e}onCaptureReady(e){this._onCaptureReady=e}onAfterImageProcessed(){this.setLoading(!1)}onLocalizationUpdated(){var e,t;(e=this._buttonElement)!=null&&e.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(this._buttonElement.textContent=r.getInstance().get(`core.singleImageUploader.button`)),(t=this._informationElement)!=null&&t.hasAttribute(c.DEFAULT_DOM_ATTRIBUTE)&&(this._informationElement.textContent=r.getInstance().get(`core.singleImageUploader.title`))}setLoading(e){this._buttonElement&&(this.setButtonState(e?`disabled`:`enabled`),this._buttonElement.textContent=e?`...`:this._chooseImageText,this._loading=e)}getResizedImageDimensions(e,t){return e<=this._resizedImageSizeLimit&&t<=this._resizedImageSizeLimit?{width:e,height:t}:e>t?{width:this._resizedImageSizeLimit,height:Math.round(t/e*this._resizedImageSizeLimit)}:{width:Math.round(e/t*this._resizedImageSizeLimit),height:this._resizedImageSizeLimit}}onImageLoad(e){var t;let{height:r,width:i}=this.getResizedImageDimensions(e.naturalWidth,e.naturalHeight);this.canvasContext.canvas.width=i,this.canvasContext.canvas.height=r,this.canvasContext.drawImage(e,0,0,i,r);let a={data:this.canvasContext.getImageData(0,0,i,r).data,frameId:n(),width:i,height:r};(t=this._onCaptureReady)==null||t.call(this,a)}onFileReaderLoad(e,t,n){e.value=``,t.result!=null&&(n.addEventListener(`load`,()=>{this.onImageLoad(n)},{once:!0}),n.addEventListener(`error`,e=>{var t;(t=this._onImageLoadError)==null||t.call(this,e),this.setLoading(!1)},{once:!0}),n.src=t.result)}async onFileUpload(e){var n;this.setLoading(!0);let r=e.currentTarget,{files:i}=r;if(i==null||i.length===0){this.setLoading(!1);return}let a=(n=this._onBeforeFileRead)==null?void 0:n.call(this,e);if(a instanceof Promise&&await a,!this.canUploadFile){r.value=``,t.warn(`Can't upload file, no capture mode enabled.`),this.setLoading(!1);return}let o=new Image,s=new FileReader;s.addEventListener(`load`,()=>{this.onFileReaderLoad(r,s,o)}),s.addEventListener(`error`,e=>{var t;(t=this._onFileReaderError)==null||t.call(this,e),this.setLoading(!1)}),s.readAsDataURL(i[0])}};c.componentName=`SingleImageUploaderView`,c.DEFAULT_DOM_ATTRIBUTE=`data-scandit-default`;export{c as SingleImageUploaderView};
@@ -1 +1 @@
1
- import{t as e}from"../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../logger.js";import{CameraSettings as n,isCameraFrameSource as r}from"../CameraRelated.js";import{CameraAccess as i}from"./CameraAccess.js";import{Camera as a}from"../Camera.js";let o=function(e){return e.Idle=`idle`,e.Pressed=`pressed`,e}({});var s=class{constructor(e,t){this.state=`idle`,this.isHover=!1,this.controlTypeToAriaLabelMap={"camera-fov":`Switch camera field of view`,camera:`Switch camera`,torch:`Toggle torch`},this.control=e,this.domHost=t,this.onTouchStartListener=this.onTouchStart.bind(this),this.onMouseEnterListener=this.onMouseEnter.bind(this),this.onMouseLeaveListener=this.onMouseLeave.bind(this),this.onClickListener=this.onClick.bind(this),this.setup()}get frameSource(){var e;return(e=this.control.view)==null||(e=e.getContext())==null?void 0:e.frameSource}get context(){var e;return(e=this.control.view)==null?void 0:e.getContext()}async install(){this.button||this.setup();let e=await this.canShow();return e?(this.updateButtonBackground(this.button,this.getImageFromState()),this.show()):this.hide(),e}remove(e=!1){e&&this.button?(this.button.removeEventListener(`mouseenter`,this.onMouseEnterListener),this.button.removeEventListener(`mouseleave`,this.onMouseLeaveListener),this.button.removeEventListener(`touchstart`,this.onTouchStartListener),this.button.removeEventListener(`click`,this.onClickListener),this.button.remove(),this.isHover=!1,this.button=void 0):this.hide()}hide(){this.button&&(this.button.style.display=`none`)}show(){this.button&&(this.button.style.display=`block`)}setupButton(){let t=document.createElement(`button`);t.type=`button`,t.style.display=`none`,t.className=`scandit-control-widget scandit-control-widget-${this.control.type}`,this.updateButtonBackground(t,this.getImageFromState()),this.domHost.append(t),t.addEventListener(`mouseenter`,this.onMouseEnterListener),t.addEventListener(`mouseleave`,this.onMouseLeaveListener),e.isDesktopDevice()||t.addEventListener(`touchstart`,this.onTouchStartListener),t.addEventListener(`click`,this.onClickListener),t.setAttribute(`aria-pressed`,String(this.state===`pressed`));let n=this.control.type,r=this.controlTypeToAriaLabelMap[n];return t.setAttribute(`aria-label`,r),this.button=t,this.button}setup(){this.setupButton()}onTouchStart(){var e,t;(e=this.button)==null||e.removeEventListener(`mouseenter`,this.onMouseEnterListener),(t=this.button)==null||t.removeEventListener(`mouseleave`,this.onMouseLeaveListener)}onMouseEnter(){this.isHover=!0,this.updateButtonBackground(this.button,this.getImageFromState())}onMouseLeave(){this.isHover=!1,this.updateButtonBackground(this.button,this.getImageFromState())}onClick(){var e;this.state=this.state===`pressed`?`idle`:`pressed`,this.buttonClicked(),this.updateButtonBackground(this.button,this.getImageFromState()),(e=this.button)==null||e.setAttribute(`aria-pressed`,String(this.state===`pressed`))}updateButtonBackground(e,t){t!=null&&e!=null&&(e.style.backgroundImage=`url(${JSON.stringify(t)})`)}},c=class extends s{constructor(e,t){super(e,t)}async buttonClicked(){await this.frameSource.setDesiredTorchState(this.retrieveTorchState()===`on`?`off`:`on`)}async canShow(){return this.isTorchAvailable()}getImageFromState(){return this.retrieveTorchState()===`on`?this.isHover?this.control.torchOnPressedImage:this.control.torchOnImage:this.isHover?this.control.torchOffPressedImage:this.control.torchOffImage}setup(){if(this.control.torchOffImage==null||this.control.torchOnImage==null){t.log(t.Level.Warn,`TorchSwitchControl icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async isTorchAvailable(){return r(this.frameSource)?this.frameSource.isTorchAvailable():!1}retrieveTorchState(){return r(this.frameSource)?this.frameSource.getDesiredTorchState():`off`}},l=class extends s{constructor(e,t){super(e,t)}async canShow(){return(await a.getAll()).length>1}getImageFromState(){return this.isHover?this.control.pressedImage:this.control.idleImage}async buttonClicked(){if(this.isTransitioning)return;let e=await this.getNextDeviceCamera();e&&await this.switchCameras(e)}setup(){if(this.control.idleImage==null){t.log(t.Level.Warn,`CameraSwitchControl idle icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async getNextDeviceCamera(){let e=await a.getAll(!1,!0),t=this.frameSource?this.frameSource:null,n=t==null?void 0:t.deviceId,r=e.findIndex(e=>e.deviceId===n);return r>-1?e[r+1]??e[0]:e.length>0?e[0]:null}async switchCameras(e){var t,r,i;this.isTransitioning=!0;let a=(t=this.context)==null?void 0:t.frameSource,o,s;a!=null&&(o=new n(a.settings),s=a.desiredState),await(a==null?void 0:a.switchToDesiredState(`off`)),o!=null&&await e.applySettings(o),await((r=this.context)==null?void 0:r.setFrameSource(e)),await((i=this.context)==null?void 0:i.frameSource).switchToDesiredState(s??`on`),this.isTransitioning=!1}},u=class extends s{constructor(e,t){super(e,t)}async install(){let e=await super.install();return e&&await this.setInitialCamera(),e}async canShow(){return!e.isIOSDeviceWithExtendedCameraAccess()||!r(this.frameSource)?!1:i.isIOSBackDualWideCameraLabel(this.frameSource.label)||i.isIOSBackCameraLabel(this.frameSource.label)||i.isIOSUltraWideBackCameraLabel(this.frameSource.label)}getImageFromState(){return this.isUltraWideBackCamera()?this.isHover?this.control.cameraFOVUltraWidePressedImage:this.control.cameraFOVUltraWideImage:this.isHover?this.control.cameraFOVWidePressedImage:this.control.cameraFOVWideImage}async buttonClicked(){if(this.isTransitioning)return;let e=await this.getAlternativeCamera();e&&await this.switchCameras(e)}setup(){if(this.control.cameraFOVUltraWideImage==null||this.control.cameraFOVWideImage==null){t.log(t.Level.Warn,`CameraFOVSwitchControl icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async setInitialCamera(){var e;if(!this.isTransitioning&&!i.isIOSBackCameraLabel(((e=this.frameSource)==null?void 0:e.label)??``)){let e=(await a.getAll()).find(e=>i.isIOSBackCameraLabel(e.label));e&&await this.switchCameras(e)}}isUltraWideBackCamera(){return r(this.frameSource)?i.isIOSUltraWideBackCameraLabel(this.frameSource.label):!1}async getAlternativeCamera(){return(await a.getAll()).find(e=>this.isUltraWideBackCamera()?i.isIOSBackCameraLabel(e.label):i.isIOSUltraWideBackCameraLabel(e.label))}async switchCameras(e){var t,r,i;this.isTransitioning=!0;let a=(t=this.context)==null?void 0:t.frameSource,o,s;a!=null&&(o=new n(a.settings),s=a.desiredState),await(a==null?void 0:a.switchToDesiredState(`off`)),o!=null&&await e.applySettings(o),await((r=this.context)==null?void 0:r.setFrameSource(e)),await((i=this.context)==null?void 0:i.frameSource).switchToDesiredState(s??`on`),this.isTransitioning=!1}};export{o as ButtonState,l as CameraSwitchControlWidget,u as PrivateCameraFOVSwitchControlWidget,c as PrivateTorchControlWidget};
1
+ import{t as e}from"../browserHelper-DuxFlAfF.js";import{Logger as t}from"../logger.js";import{CameraSettings as n,isCameraFrameSource as r}from"../CameraRelated.js";import{CameraAccess as i}from"./CameraAccess.js";import{Camera as a}from"../Camera.js";let o=function(e){return e.Idle=`idle`,e.Pressed=`pressed`,e}({});var s=class{constructor(e,t){this.state=`idle`,this.isHover=!1,this.controlTypeToAriaLabelMap={"camera-fov":`Switch camera field of view`,camera:`Switch camera`,torch:`Toggle torch`},this.control=e,this.domHost=t,this.onTouchStartListener=this.onTouchStart.bind(this),this.onMouseEnterListener=this.onMouseEnter.bind(this),this.onMouseLeaveListener=this.onMouseLeave.bind(this),this.onClickListener=this.onClick.bind(this),this.setup()}get frameSource(){var e;return(e=this.control.view)==null||(e=e.getContext())==null?void 0:e.frameSource}get context(){var e;return(e=this.control.view)==null?void 0:e.getContext()}async install(){this.button||this.setup();let e=await this.canShow();return e?(this.updateButtonBackground(this.button,this.getImageFromState()),this.show()):this.hide(),e}remove(e=!1){e&&this.button?(this.button.removeEventListener(`mouseenter`,this.onMouseEnterListener),this.button.removeEventListener(`mouseleave`,this.onMouseLeaveListener),this.button.removeEventListener(`touchstart`,this.onTouchStartListener),this.button.removeEventListener(`click`,this.onClickListener),this.button.remove(),this.isHover=!1,this.button=void 0):this.hide()}hide(){this.button&&(this.button.style.display=`none`)}show(){this.button&&(this.button.style.display=`block`)}setupButton(){let t=document.createElement(`button`);t.type=`button`,t.style.display=`none`,t.className=`scandit-control-widget scandit-control-widget-${this.control.type}`,this.updateButtonBackground(t,this.getImageFromState()),this.domHost.append(t),t.addEventListener(`mouseenter`,this.onMouseEnterListener),t.addEventListener(`mouseleave`,this.onMouseLeaveListener),e.isDesktopDevice()||t.addEventListener(`touchstart`,this.onTouchStartListener),t.addEventListener(`click`,this.onClickListener),t.setAttribute(`aria-pressed`,String(this.state===`pressed`));let n=this.control.type,r=this.controlTypeToAriaLabelMap[n];return t.setAttribute(`aria-label`,r),this.button=t,this.button}setup(){this.setupButton()}onTouchStart(){var e,t;(e=this.button)==null||e.removeEventListener(`mouseenter`,this.onMouseEnterListener),(t=this.button)==null||t.removeEventListener(`mouseleave`,this.onMouseLeaveListener)}onMouseEnter(){this.isHover=!0,this.updateButtonBackground(this.button,this.getImageFromState())}onMouseLeave(){this.isHover=!1,this.updateButtonBackground(this.button,this.getImageFromState())}onClick(){var e;this.state=this.state===`pressed`?`idle`:`pressed`,this.buttonClicked(),this.updateButtonBackground(this.button,this.getImageFromState()),(e=this.button)==null||e.setAttribute(`aria-pressed`,String(this.state===`pressed`))}updateButtonBackground(e,t){t!=null&&e!=null&&(e.style.backgroundImage=`url(${JSON.stringify(t)})`)}},c=class extends s{constructor(e,t){super(e,t)}async buttonClicked(){await this.frameSource.setDesiredTorchState(this.retrieveTorchState()===`on`?`off`:`on`)}async canShow(){return this.isTorchAvailable()}getImageFromState(){return this.retrieveTorchState()===`on`?this.isHover?this.control.torchOnPressedImage:this.control.torchOnImage:this.isHover?this.control.torchOffPressedImage:this.control.torchOffImage}setup(){if(this.control.torchOffImage==null||this.control.torchOnImage==null){t.log(t.Level.Warn,`TorchSwitchControl icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async isTorchAvailable(){return r(this.frameSource)?this.frameSource.isTorchAvailable():!1}retrieveTorchState(){return r(this.frameSource)?this.frameSource.getDesiredTorchState():`off`}},l=class extends s{constructor(e,t){super(e,t)}async canShow(){return(await a.getAll()).length>1}getImageFromState(){return this.isHover?this.control.pressedImage:this.control.idleImage}async buttonClicked(){if(this.isTransitioning)return;let e=await this.getNextDeviceCamera();e&&await this.switchCameras(e)}setup(){if(this.control.idleImage==null){t.log(t.Level.Warn,`CameraSwitchControl idle icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async getNextDeviceCamera(){let e=await a.getAll(!1,!0),t=this.frameSource?this.frameSource:null,n=t==null?void 0:t.deviceId,r=e.findIndex(e=>e.deviceId===n);return r>-1?e[r+1]??e[0]:e.length>0?e[0]:null}async switchCameras(e){var t,r,i;this.isTransitioning=!0;let a=(t=this.context)==null?void 0:t.frameSource,o,s;a!=null&&(o=new n(a.settings),s=a.desiredState),await(a==null?void 0:a.switchToDesiredState(`off`)),o!=null&&await e.applySettings(o),await((r=this.context)==null?void 0:r.setFrameSource(e)),await((i=this.context)==null?void 0:i.frameSource).switchToDesiredState(s??`on`),this.isTransitioning=!1}},u=class extends s{constructor(e,t){super(e,t)}async install(){let e=await super.install();return e&&await this.setInitialCamera(),e}async canShow(){return!e.isIOSDeviceWithExtendedCameraAccess()||!r(this.frameSource)?!1:i.isIOSBackDualWideCameraLabel(this.frameSource.label)||i.isIOSBackCameraLabel(this.frameSource.label)||i.isIOSUltraWideBackCameraLabel(this.frameSource.label)}getImageFromState(){return this.isUltraWideBackCamera()?this.isHover?this.control.cameraFOVUltraWidePressedImage:this.control.cameraFOVUltraWideImage:this.isHover?this.control.cameraFOVWidePressedImage:this.control.cameraFOVWideImage}async buttonClicked(){if(this.isTransitioning)return;let e=await this.getAlternativeCamera();e&&await this.switchCameras(e)}setup(){if(this.control.cameraFOVUltraWideImage==null||this.control.cameraFOVWideImage==null){t.log(t.Level.Warn,`CameraFOVSwitchControl icon is not set or is empty, the control will not be rendered.`);return}super.setup()}async setInitialCamera(){var e;if(!this.isTransitioning&&!i.isIOSBackCameraLabel(((e=this.frameSource)==null?void 0:e.label)??``)){let e=(await a.getAll()).find(e=>i.isIOSBackCameraLabel(e.label));e&&await this.switchCameras(e)}}isUltraWideBackCamera(){return r(this.frameSource)?i.isIOSUltraWideBackCameraLabel(this.frameSource.label):!1}async getAlternativeCamera(){return(await a.getAll()).find(e=>this.isUltraWideBackCamera()?i.isIOSBackCameraLabel(e.label):i.isIOSUltraWideBackCameraLabel(e.label))}async switchCameras(e){var t,r,i;this.isTransitioning=!0;let a=(t=this.context)==null?void 0:t.frameSource,o,s;a!=null&&(o=new n(a.settings),s=a.desiredState),await(a==null?void 0:a.switchToDesiredState(`off`)),o!=null&&await e.applySettings(o),await((r=this.context)==null?void 0:r.setFrameSource(e)),await((i=this.context)==null?void 0:i.frameSource).switchToDesiredState(s??`on`),this.isTransitioning=!1}};export{o as ButtonState,l as CameraSwitchControlWidget,u as PrivateCameraFOVSwitchControlWidget,c as PrivateTorchControlWidget};
@@ -1 +1 @@
1
- import{t as e}from"../../browserHelper-BQPnAZ2Y.js";import"./debug.js";import{Html5Sound as t}from"./Html5Sound.js";import{getAudioCacheInstance as n}from"./WebAudioContextManager.js";import{registerHowlInstance as r,unregisterHowlInstance as i}from"./HowlRegistry.js";import{ensureUnlockSetup as a,getGlobalAudioContext as o}from"./setup.js";var s=class{constructor(t){this.audioBuffer=null,this.loadPromise=null,this.soundPool=[],this.soundPoolSize=25,this.inactiveSounds=new Set,this.src=Array.isArray(t.src)?t.src[0]:t.src,t.html5===void 0?this.html5=e.isIOS():this.html5=t.html5,r(this),a()}async load(){if(this.loadPromise)return this.loadPromise;if(this.audioBuffer)return this.audioBuffer;let e=n().get(this.src);return e?(this.loadPromise=e,this.audioBuffer=await e,this.audioBuffer):(this.loadPromise=(async()=>{try{let e=o().getContext(),t;if(this.src.startsWith(`data:`)){let e=this.src.split(`,`)[1],n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);t=r.buffer}else t=await(await fetch(this.src)).arrayBuffer();let n=await e.decodeAudioData(t);return this.audioBuffer=n,n}catch(e){throw e}})(),n().set(this.src,this.loadPromise),this.loadPromise)}getSoundFromPool(){if(this.inactiveSounds.size>0){let e=[...this.inactiveSounds][0];return this.inactiveSounds.delete(e),e}if(this.soundPool.length<this.soundPoolSize){let e=new t(this.src,e=>{this.inactiveSounds.add(e)});return this.soundPool.push(e),e}let e=this.soundPool[0];return this.inactiveSounds.delete(e),e}verifyAudioBuffer(e){}handlePlaybackError(e){e instanceof DOMException&&(e.name===`NotAllowedError`||e.name)}async prepareAudioContext(e){e.unlocked||await e.unlock(),e.checkAndRecreateContextIfSampleRateChanged();let t=e.getContext();return t.state===`suspended`&&await t.resume(),t}playHTML5(){try{this.getSoundFromPool().play()}catch{}}play(){this.playAsync()}async playAsync(){try{if(this.html5)return this.playHTML5();let e=o(),t=await this.prepareAudioContext(e),n=await this.load();this.verifyAudioBuffer(n);let r=t.createBufferSource();r.buffer=n,r.loop=!1;let i=t.createGain();i.gain.value=1,r.connect(i);let a=e.getDestination();i.connect(a),r.onended=()=>{r.disconnect()},r.start(0)}catch(e){this.handlePlaybackError(e)}}dispose(){for(let e of this.soundPool)e.stop(),e.dispose();this.soundPool=[],this.inactiveSounds.clear(),i(this)}};export{s as Howl};
1
+ import{t as e}from"../../browserHelper-DuxFlAfF.js";import"./debug.js";import{Html5Sound as t}from"./Html5Sound.js";import{getAudioCacheInstance as n}from"./WebAudioContextManager.js";import{registerHowlInstance as r,unregisterHowlInstance as i}from"./HowlRegistry.js";import{ensureUnlockSetup as a,getGlobalAudioContext as o}from"./setup.js";var s=class{constructor(t){this.audioBuffer=null,this.loadPromise=null,this.soundPool=[],this.soundPoolSize=25,this.inactiveSounds=new Set,this.src=Array.isArray(t.src)?t.src[0]:t.src,t.html5===void 0?this.html5=e.isIOS():this.html5=t.html5,r(this),a()}async load(){if(this.loadPromise)return this.loadPromise;if(this.audioBuffer)return this.audioBuffer;let e=n().get(this.src);return e?(this.loadPromise=e,this.audioBuffer=await e,this.audioBuffer):(this.loadPromise=(async()=>{try{let e=o().getContext(),t;if(this.src.startsWith(`data:`)){let e=this.src.split(`,`)[1],n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);t=r.buffer}else t=await(await fetch(this.src)).arrayBuffer();let n=await e.decodeAudioData(t);return this.audioBuffer=n,n}catch(e){throw e}})(),n().set(this.src,this.loadPromise),this.loadPromise)}getSoundFromPool(){if(this.inactiveSounds.size>0){let e=[...this.inactiveSounds][0];return this.inactiveSounds.delete(e),e}if(this.soundPool.length<this.soundPoolSize){let e=new t(this.src,e=>{this.inactiveSounds.add(e)});return this.soundPool.push(e),e}let e=this.soundPool[0];return this.inactiveSounds.delete(e),e}verifyAudioBuffer(e){}handlePlaybackError(e){e instanceof DOMException&&(e.name===`NotAllowedError`||e.name)}async prepareAudioContext(e){e.unlocked||await e.unlock(),e.checkAndRecreateContextIfSampleRateChanged();let t=e.getContext(),n=t.state;return(n===`suspended`||n===`interrupted`)&&await t.resume(),t}playHTML5(){try{this.getSoundFromPool().play()}catch{}}play(){this.playAsync()}async playAsync(){try{if(this.html5)return this.playHTML5();let e=o(),t=await this.prepareAudioContext(e),n=await this.load();this.verifyAudioBuffer(n);let r=t.createBufferSource();r.buffer=n,r.loop=!1;let i=t.createGain();i.gain.value=1,r.connect(i);let a=e.getDestination();i.connect(a),r.onended=()=>{r.disconnect()},r.start(0)}catch(e){this.handlePlaybackError(e)}}dispose(){for(let e of this.soundPool)e.stop(),e.dispose();this.soundPool=[],this.inactiveSounds.clear(),i(this)}};export{s as Howl};
@@ -1,6 +1,7 @@
1
1
  import { t as AudioCache } from "../../AudioCache-D893YEVZ.js";
2
2
 
3
3
  //#region src/main/private/customHowler/WebAudioContextManager.d.ts
4
+ type AudioContextStateExtended = AudioContextState | "interrupted";
4
5
  declare function getAudioCacheInstance(): AudioCache;
5
6
  /**
6
7
  * Global Web Audio Context manager
@@ -158,4 +159,4 @@ declare class WebAudioContextManager {
158
159
  get unlocked(): boolean;
159
160
  }
160
161
  //#endregion
161
- export { WebAudioContextManager, getAudioCacheInstance };
162
+ export { AudioContextStateExtended, WebAudioContextManager, getAudioCacheInstance };
@@ -1 +1 @@
1
- import{t as e}from"../../browserHelper-BQPnAZ2Y.js";import"./debug.js";import{AudioCache as t}from"./AudioCache.js";function n(){return document.visibilityState===`visible`}function r(t=44100){let n=new AudioContext;if(e.isIOS()&&n.sampleRate!==t){let e=n.createBuffer(1,1,t),r=n.createBufferSource();return r.buffer=e,r.connect(n.destination),r.start(0),r.disconnect(),n.close(),new AudioContext}return n}let i=null;function a(){return i||=new t,i}var o=class{constructor(){this.audioContext=null,this.isUnlocked=!1,this.unlockPromise=null,this.unlockAttempts=0,this.MAX_UNLOCK_ATTEMPTS=3,this.lastKnownSampleRate=-1,this.mediaStreamDestination=null,this.streamAudioElement=null,this.handlerStreamAudioElementError=this.onStreamAudioElementError.bind(this),this.handlerStreamAudioElementPause=this.onStreamAudioElementPause.bind(this)}getContext(){return this.audioContext||(this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate),this.audioContext}getDestination(){let t=this.getContext();return e.isIOS()?(this.mediaStreamDestination||(this.mediaStreamDestination=t.createMediaStreamDestination(),this.streamAudioElement=new Audio,this.streamAudioElement.srcObject=this.mediaStreamDestination.stream,this.streamAudioElement.addEventListener(`error`,this.handlerStreamAudioElementError),this.streamAudioElement.addEventListener(`pause`,this.handlerStreamAudioElementPause),this.streamAudioElement.play().catch(e=>{})),this.mediaStreamDestination):t.destination}onStreamAudioElementError(){var e;n()&&((e=this.streamAudioElement)==null||e.play().catch(e=>{}))}onStreamAudioElementPause(){var e;n()&&((e=this.streamAudioElement)==null||e.play().catch(e=>{}))}checkAndRecreateContextIfSampleRateChanged(){if(!this.audioContext)return;let e=this.audioContext.sampleRate;this.lastKnownSampleRate!==-1&&e!==this.lastKnownSampleRate&&this.recreateContext()}recreateContext(){try{this.audioContext&&this.audioContext.state!==`closed`&&typeof this.audioContext.close==`function`&&this.audioContext.close(),this.audioContext=null,this.mediaStreamDestination=null,this.streamAudioElement&&(this.streamAudioElement.pause(),this.streamAudioElement.srcObject=null),a().clear(),this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate,this.isUnlocked=!1}catch{}}createContext(){this.audioContext||(this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate)}async unlock(){if(!this.isUnlocked){if(this.unlockPromise){await this.unlockPromise;return}this.unlockAttempts>=this.MAX_UNLOCK_ATTEMPTS||(this.unlockAttempts++,this.unlockPromise=(async()=>{this.createContext();let e=this.audioContext;e.state===`suspended`&&e.resume();try{if(e.state===`suspended`)for(let t=0;t<10&&(await new Promise(e=>setTimeout(e,10)),e.state!==`running`);t++);let t=e.createBuffer(2,1,e.sampleRate),n=e.createBufferSource();n.buffer=t,n.loop=!1;let r=e.createGain();r.gain.value=1,n.connect(r);let i=this.getDestination();r.connect(i),await new Promise(e=>{n.onended=()=>{e()},n.start(0)}),this.isUnlocked=!0}catch{}finally{this.unlockPromise=null}})(),await this.unlockPromise)}}get unlocked(){return this.isUnlocked}dispose(){this.streamAudioElement&&=(this.streamAudioElement.removeEventListener(`error`,this.handlerStreamAudioElementError),this.streamAudioElement.removeEventListener(`pause`,this.handlerStreamAudioElementPause),this.streamAudioElement.pause(),this.streamAudioElement.srcObject=null,null),this.audioContext&&this.audioContext.state!==`closed`&&typeof this.audioContext.close==`function`&&this.audioContext.close(),this.audioContext=null,this.isUnlocked=!1,this.unlockPromise=null,this.unlockAttempts=0,this.mediaStreamDestination=null}};export{o as WebAudioContextManager,r as createAudioContext,a as getAudioCacheInstance};
1
+ import{t as e}from"../../browserHelper-DuxFlAfF.js";import"./debug.js";import{AudioCache as t}from"./AudioCache.js";function n(){return document.visibilityState===`visible`}function r(t=44100){let n=new AudioContext;if(e.isIOS()&&n.sampleRate!==t){let e=n.createBuffer(1,1,t),r=n.createBufferSource();return r.buffer=e,r.connect(n.destination),r.start(0),r.disconnect(),n.close(),new AudioContext}return n}let i=null;function a(){return i||=new t,i}var o=class{constructor(){this.audioContext=null,this.isUnlocked=!1,this.unlockPromise=null,this.unlockAttempts=0,this.MAX_UNLOCK_ATTEMPTS=3,this.lastKnownSampleRate=-1,this.mediaStreamDestination=null,this.streamAudioElement=null,this.handlerStreamAudioElementError=this.onStreamAudioElementError.bind(this),this.handlerStreamAudioElementPause=this.onStreamAudioElementPause.bind(this)}getContext(){return this.audioContext||(this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate),this.audioContext}getDestination(){let t=this.getContext();return e.isIOS()?(this.mediaStreamDestination||(this.mediaStreamDestination=t.createMediaStreamDestination(),this.streamAudioElement=new Audio,this.streamAudioElement.srcObject=this.mediaStreamDestination.stream,this.streamAudioElement.addEventListener(`error`,this.handlerStreamAudioElementError),this.streamAudioElement.addEventListener(`pause`,this.handlerStreamAudioElementPause),this.streamAudioElement.play().catch(e=>{})),this.mediaStreamDestination):t.destination}onStreamAudioElementError(){var e;n()&&((e=this.streamAudioElement)==null||e.play().catch(e=>{}))}onStreamAudioElementPause(){var e;n()&&((e=this.streamAudioElement)==null||e.play().catch(e=>{}))}checkAndRecreateContextIfSampleRateChanged(){if(!this.audioContext)return;let e=this.audioContext.sampleRate;this.lastKnownSampleRate!==-1&&e!==this.lastKnownSampleRate&&this.recreateContext()}recreateContext(){try{this.audioContext&&this.audioContext.state!==`closed`&&typeof this.audioContext.close==`function`&&this.audioContext.close(),this.audioContext=null,this.mediaStreamDestination=null,this.streamAudioElement&&(this.streamAudioElement.pause(),this.streamAudioElement.srcObject=null),a().clear(),this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate,this.isUnlocked=!1}catch{}}createContext(){this.audioContext||(this.audioContext=r(),this.lastKnownSampleRate=this.audioContext.sampleRate)}async unlock(){if(!this.isUnlocked){if(this.unlockPromise){await this.unlockPromise;return}this.unlockAttempts>=this.MAX_UNLOCK_ATTEMPTS||(this.unlockAttempts++,this.unlockPromise=(async()=>{this.createContext();let e=this.audioContext,t=e.state;(t===`suspended`||t===`interrupted`)&&e.resume();try{if(e.state===`suspended`)for(let t=0;t<10&&(await new Promise(e=>setTimeout(e,10)),e.state!==`running`);t++);let t=e.createBuffer(2,1,e.sampleRate),n=e.createBufferSource();n.buffer=t,n.loop=!1;let r=e.createGain();r.gain.value=1,n.connect(r);let i=this.getDestination();r.connect(i),await new Promise(e=>{n.onended=()=>{e()},n.start(0)}),this.isUnlocked=!0}catch{}finally{this.unlockPromise=null}})(),await this.unlockPromise)}}get unlocked(){return this.isUnlocked}dispose(){this.streamAudioElement&&=(this.streamAudioElement.removeEventListener(`error`,this.handlerStreamAudioElementError),this.streamAudioElement.removeEventListener(`pause`,this.handlerStreamAudioElementPause),this.streamAudioElement.pause(),this.streamAudioElement.srcObject=null,null),this.audioContext&&this.audioContext.state!==`closed`&&typeof this.audioContext.close==`function`&&this.audioContext.close(),this.audioContext=null,this.isUnlocked=!1,this.unlockPromise=null,this.unlockAttempts=0,this.mediaStreamDestination=null}};export{o as WebAudioContextManager,r as createAudioContext,a as getAudioCacheInstance};
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../hybridDesktopPlatformHelpers-DPAJQLcX.js";export{n as getAppInfo,e as getKey,t as isElectron};
1
+ import{n as e,r as t,t as n}from"../hybridDesktopPlatformHelpers-OpmECgIg.js";export{n as getAppInfo,e as getKey,t as isElectron};
@@ -1 +1 @@
1
- import{defineCustomElements as e}from"../../utils/defineCustomElements.js";import{css as t}from"../../utils/css.js";import{html as n}from"../../utils/html.js";import{ScanditHTMLElement as r}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as i}from"../../GestureRecognizer/GestureRecognizer.js";import{CameraFOVUltrawideSvgIcon as a}from"../atoms/CameraFOVUltrawideSvgIcon.js";import{CameraFOVWideSvgIcon as o}from"../atoms/CameraFOVWideSvgIcon.js";import{CameraFOVChangedEvent as s}from"./ButtonEvents.js";var c=class c extends r{get wideIcon(){return this.querySelector(o.tag)??void 0}get ultraWideIcon(){return this.querySelector(a.tag)??void 0}constructor(){super(),this._currentMode=`1.0x`,this._ariaLabel=`Switch between wide and ultra-wide field of view`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=n`<div><slot></slot></div>`,e.append(c.createStyleElement().cloneNode(!0))}static create(){return document.createElement(c.tag)}static register(){e({[c.tag]:c})}static createStyleElement(){return t`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--camera-fov-wide-idle:none;--camera-fov-wide-pressed:none;--camera-fov-ultrawide-idle:none;--camera-fov-ultrawide-pressed:none;border:none;cursor:pointer;height:var(--button-size);margin:0;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:50%;transform-origin:center;transition:outline .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true]){background-image:var(--camera-fov-wide-idle)}:host([data-use-custom-images=true][data-pressed=true]){background-image:var(--camera-fov-wide-pressed)}:host([data-use-custom-images=true][data-current-mode="0.5x"]){background-image:var(--camera-fov-ultrawide-idle)}:host([data-use-custom-images=true][data-current-mode="0.5x"][data-pressed=true]){background-image:var(--camera-fov-ultrawide-pressed)}`}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setupButtonWithSvgIcons(),this._gestureRecognizer||(this._gestureRecognizer=new i(this),this._gestureRecognizer.addListener(this)),this.mode=this._currentMode}setupButtonWithSvgIcons(){if(o.register(),a.register(),!this.wideIcon){let e=o.create();e.size=24,e.style.display=`flex`,this.appendChild(e)}if(!this.ultraWideIcon){let e=a.create();e.size=24,e.style.display=`none`,this.appendChild(e)}}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}set mode(e){if(e!==`0.5x`&&e!==`1.0x`)return;this._currentMode=e,this.setAttribute(`data-current-mode`,e),this.setAttribute(`aria-pressed`,e===`0.5x`?`true`:`false`);let t=e===`0.5x`?`Switch to wide field of view`:`Switch to ultra-wide field of view`;this.setAttribute(`aria-label`,t),this.updateIconVisibility()}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.wide.idle?`url(${JSON.stringify(e.wide.idle)})`:`none`,r=e.wide.pressed?`url(${JSON.stringify(e.wide.pressed)})`:`none`,i=e.ultraWide.idle?`url(${JSON.stringify(e.ultraWide.idle)})`:`none`,a=e.ultraWide.pressed?`url(${JSON.stringify(e.ultraWide.pressed)})`:`none`;t.setProperty(`--camera-fov-wide-idle`,n),t.setProperty(`--camera-fov-wide-pressed`,r),t.setProperty(`--camera-fov-ultrawide-idle`,i),t.setProperty(`--camera-fov-ultrawide-pressed`,a),this.useCustomImages=!0}updateIconVisibility(){let e=this.wideIcon,t=this.ultraWideIcon;!e||!t||(this._currentMode===`0.5x`?(e.style.display=`none`,t.style.display=`flex`):(e.style.display=`flex`,t.style.display=`none`))}onTap(){this.dispatchEvent(new s({currentMode:this._currentMode}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};c.tag=`scandit-camera-fov-switch-button`;export{c as CameraFOVSwitchButton};
1
+ import{defineCustomElements as e}from"../../utils/defineCustomElements.js";import{css as t}from"../../utils/css.js";import{html as n}from"../../utils/html.js";import{ScanditHTMLElement as r}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as i}from"../../GestureRecognizer/GestureRecognizer.js";import{CameraFOVChangedEvent as a}from"./ButtonEvents.js";import{CameraFOVUltrawideSvgIcon as o}from"../atoms/CameraFOVUltrawideSvgIcon.js";import{CameraFOVWideSvgIcon as s}from"../atoms/CameraFOVWideSvgIcon.js";var c=class c extends r{get wideIcon(){return this.querySelector(s.tag)??void 0}get ultraWideIcon(){return this.querySelector(o.tag)??void 0}constructor(){super(),this._currentMode=`1.0x`,this._ariaLabel=`Switch between wide and ultra-wide field of view`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=n`<div><slot></slot></div>`,e.append(c.createStyleElement().cloneNode(!0))}static create(){return document.createElement(c.tag)}static register(){e({[c.tag]:c})}static createStyleElement(){return t`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--camera-fov-wide-idle:none;--camera-fov-wide-pressed:none;--camera-fov-ultrawide-idle:none;--camera-fov-ultrawide-pressed:none;border:none;cursor:pointer;height:var(--button-size);margin:0;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:50%;transform-origin:center;transition:outline .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true]){background-image:var(--camera-fov-wide-idle)}:host([data-use-custom-images=true][data-pressed=true]){background-image:var(--camera-fov-wide-pressed)}:host([data-use-custom-images=true][data-current-mode="0.5x"]){background-image:var(--camera-fov-ultrawide-idle)}:host([data-use-custom-images=true][data-current-mode="0.5x"][data-pressed=true]){background-image:var(--camera-fov-ultrawide-pressed)}`}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setupButtonWithSvgIcons(),this._gestureRecognizer||(this._gestureRecognizer=new i(this),this._gestureRecognizer.addListener(this)),this.mode=this._currentMode}setupButtonWithSvgIcons(){if(s.register(),o.register(),!this.wideIcon){let e=s.create();e.size=24,e.style.display=`flex`,this.appendChild(e)}if(!this.ultraWideIcon){let e=o.create();e.size=24,e.style.display=`none`,this.appendChild(e)}}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}set mode(e){if(e!==`0.5x`&&e!==`1.0x`)return;this._currentMode=e,this.setAttribute(`data-current-mode`,e),this.setAttribute(`aria-pressed`,e===`0.5x`?`true`:`false`);let t=e===`0.5x`?`Switch to wide field of view`:`Switch to ultra-wide field of view`;this.setAttribute(`aria-label`,t),this.updateIconVisibility()}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.wide.idle?`url(${JSON.stringify(e.wide.idle)})`:`none`,r=e.wide.pressed?`url(${JSON.stringify(e.wide.pressed)})`:`none`,i=e.ultraWide.idle?`url(${JSON.stringify(e.ultraWide.idle)})`:`none`,a=e.ultraWide.pressed?`url(${JSON.stringify(e.ultraWide.pressed)})`:`none`;t.setProperty(`--camera-fov-wide-idle`,n),t.setProperty(`--camera-fov-wide-pressed`,r),t.setProperty(`--camera-fov-ultrawide-idle`,i),t.setProperty(`--camera-fov-ultrawide-pressed`,a),this.useCustomImages=!0}updateIconVisibility(){let e=this.wideIcon,t=this.ultraWideIcon;!e||!t||(this._currentMode===`0.5x`?(e.style.display=`none`,t.style.display=`flex`):(e.style.display=`flex`,t.style.display=`none`))}onTap(){this.dispatchEvent(new a({currentMode:this._currentMode}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};c.tag=`scandit-camera-fov-switch-button`;export{c as CameraFOVSwitchButton};
@@ -1 +1 @@
1
- import{Color as e}from"../../../commons/Color.js";import{defineCustomElements as t}from"../../utils/defineCustomElements.js";import{css as n}from"../../utils/css.js";import{html as r}from"../../utils/html.js";import{ScanditHTMLElement as i}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as a}from"../../GestureRecognizer/GestureRecognizer.js";import{CameraSwitchReverseSvgIcon as o}from"../atoms/CameraSwitchReverseSvgIcon.js";import{CameraSwitchSvgIcon as s}from"../atoms/CameraSwitchSvgIcon.js";import{CameraSwitchedEvent as c}from"./ButtonEvents.js";var l=class l extends i{get frontIcon(){return this.querySelector(s.tag)??void 0}get backIcon(){return this.querySelector(o.tag)??void 0}constructor(){super(),this._currentMode=`back`,this._ariaLabel=`Cycle through available cameras`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=r`<div><slot></slot></div>`,e.append(l.createStyleElement().cloneNode(!0))}static create(){return document.createElement(l.tag)}static register(){t({[l.tag]:l})}static createStyleElement(){return n`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--camera-switch-idle:none;--camera-switch-pressed:none;border:none;cursor:pointer;height:var(--button-size);margin:0;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:50%;opacity:1;transform-origin:center;transition:outline .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true]){background-image:var(--camera-switch-idle)}:host([data-use-custom-images=true][data-pressed=true]){background-image:var(--camera-switch-pressed)}`}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setupButtonWithSvgIcons(),this._gestureRecognizer||(this._gestureRecognizer=new a(this),this._gestureRecognizer.addListener(this)),this.setAttribute(`aria-label`,this._ariaLabel)}setupButtonWithSvgIcons(){s.register(),o.register();let t=e.fromHex(`#FFFFFF`);if(!this.frontIcon){let e=s.create();e.fill=`#${t.toJSON()}`,e.size=24,e.style.display=`flex`,this.appendChild(e)}if(!this.backIcon){let e=o.create();e.fill=`#${t.toJSON()}`,e.size=24,e.style.display=`none`,this.appendChild(e)}}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}set mode(e){e!==`front`&&e!==`back`||(this._currentMode=e,this.updateIconVisibility())}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.idle?`url(${JSON.stringify(e.idle)})`:`none`,r=e.pressed?`url(${JSON.stringify(e.pressed)})`:`none`;t.setProperty(`--camera-switch-idle`,n),t.setProperty(`--camera-switch-pressed`,r),this.useCustomImages=!0}updateIconVisibility(){let e=this.frontIcon,t=this.backIcon;!e||!t||(this._currentMode===`back`?(e.style.display=`none`,t.style.display=`flex`):(e.style.display=`flex`,t.style.display=`none`))}onTap(){this.dispatchEvent(new c({currentMode:this._currentMode}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};l.tag=`scandit-camera-switch-button`;export{l as CameraSwitchButton};
1
+ import{Color as e}from"../../../commons/Color.js";import{defineCustomElements as t}from"../../utils/defineCustomElements.js";import{css as n}from"../../utils/css.js";import{html as r}from"../../utils/html.js";import{ScanditHTMLElement as i}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as a}from"../../GestureRecognizer/GestureRecognizer.js";import{CameraSwitchedEvent as o}from"./ButtonEvents.js";import{CameraSwitchReverseSvgIcon as s}from"../atoms/CameraSwitchReverseSvgIcon.js";import{CameraSwitchSvgIcon as c}from"../atoms/CameraSwitchSvgIcon.js";var l=class l extends i{get frontIcon(){return this.querySelector(c.tag)??void 0}get backIcon(){return this.querySelector(s.tag)??void 0}constructor(){super(),this._currentMode=`back`,this._ariaLabel=`Cycle through available cameras`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=r`<div><slot></slot></div>`,e.append(l.createStyleElement().cloneNode(!0))}static create(){return document.createElement(l.tag)}static register(){t({[l.tag]:l})}static createStyleElement(){return n`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--camera-switch-idle:none;--camera-switch-pressed:none;border:none;cursor:pointer;height:var(--button-size);margin:0;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:50%;opacity:1;transform-origin:center;transition:outline .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true]){background-image:var(--camera-switch-idle)}:host([data-use-custom-images=true][data-pressed=true]){background-image:var(--camera-switch-pressed)}`}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setupButtonWithSvgIcons(),this._gestureRecognizer||(this._gestureRecognizer=new a(this),this._gestureRecognizer.addListener(this)),this.setAttribute(`aria-label`,this._ariaLabel)}setupButtonWithSvgIcons(){c.register(),s.register();let t=e.fromHex(`#FFFFFF`);if(!this.frontIcon){let e=c.create();e.fill=`#${t.toJSON()}`,e.size=24,e.style.display=`flex`,this.appendChild(e)}if(!this.backIcon){let e=s.create();e.fill=`#${t.toJSON()}`,e.size=24,e.style.display=`none`,this.appendChild(e)}}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}set mode(e){e!==`front`&&e!==`back`||(this._currentMode=e,this.updateIconVisibility())}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.idle?`url(${JSON.stringify(e.idle)})`:`none`,r=e.pressed?`url(${JSON.stringify(e.pressed)})`:`none`;t.setProperty(`--camera-switch-idle`,n),t.setProperty(`--camera-switch-pressed`,r),this.useCustomImages=!0}updateIconVisibility(){let e=this.frontIcon,t=this.backIcon;!e||!t||(this._currentMode===`back`?(e.style.display=`none`,t.style.display=`flex`):(e.style.display=`flex`,t.style.display=`none`))}onTap(){this.dispatchEvent(new o({currentMode:this._currentMode}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};l.tag=`scandit-camera-switch-button`;export{l as CameraSwitchButton};
@@ -1 +1 @@
1
- import{Color as e}from"../../../commons/Color.js";import"../../../CameraRelated.js";import{defineCustomElements as t}from"../../utils/defineCustomElements.js";import{css as n}from"../../utils/css.js";import{html as r}from"../../utils/html.js";import{ScanditHTMLElement as i}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as a}from"../../GestureRecognizer/GestureRecognizer.js";import{TorchOffSvgIcon as o}from"../atoms/TorchOffSvgIcon.js";import{TorchOnSvgIcon as s}from"../atoms/TorchOnSvgIcon.js";import{TorchToggledEvent as c}from"./ButtonEvents.js";var l=class l extends i{get onIcon(){return this.querySelector(s.tag)??void 0}get offIcon(){return this.querySelector(o.tag)??void 0}constructor(){super(),this._size=24,this._shadow=!1,this._ariaLabel=`Turn on flashlight`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=r`<div><slot></slot></div>`,e.append(l.createStyleElement().cloneNode(!0))}set size(e){this._size=e;let t=this.onIcon,n=this.offIcon;t&&(t.size=this._size),n&&(n.size=this._size)}get size(){return this._size}set shadow(e){this._shadow=e;let t=this.onIcon,n=this.offIcon;t&&t.toggleAttribute(`shadow`,this._shadow),n&&n.toggleAttribute(`shadow`,this._shadow)}get shadow(){return this._shadow}get state(){return this.getAttribute(`state`)??`off`}set state(e){this.setAttribute(`state`,e);let t=e===`on`;this.setAttribute(`aria-pressed`,t?`true`:`false`),this.setAttribute(`aria-label`,`Turn ${t?`off`:`on`} flashlight`)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.on.idle?`url(${JSON.stringify(e.on.idle)})`:`none`,r=e.on.pressed?`url(${JSON.stringify(e.on.pressed)})`:`none`,i=e.off.idle?`url(${JSON.stringify(e.off.idle)})`:`none`,a=e.off.pressed?`url(${JSON.stringify(e.off.pressed)})`:`none`;t.setProperty(`--torch-on-idle`,n),t.setProperty(`--torch-on-pressed`,r),t.setProperty(`--torch-off-idle`,i),t.setProperty(`--torch-off-pressed`,a),this.useCustomImages=!0}static create(){return document.createElement(l.tag)}static register(){t({[l.tag]:l})}static createStyleElement(){return n`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--torch-on-idle:none;--torch-on-pressed:none;--torch-off-idle:none;--torch-off-pressed:none;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border:none;border-radius:50%;cursor:pointer;height:var(--button-size);margin:0;opacity:1;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;transform-origin:center;transition:outline .2s ease-in-out,opacity .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([state=off]){opacity:.5}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true][state=on]){background-image:var(--torch-on-idle)}:host([data-use-custom-images=true][state=on][data-pressed=true]){background-image:var(--torch-on-pressed)}:host([data-use-custom-images=true][state=off]){background-image:var(--torch-off-idle)}:host([data-use-custom-images=true][state=off][data-pressed=true]){background-image:var(--torch-off-pressed)}`}connectedCallback(){if(this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),s.register(),o.register(),!this.onIcon||!this.offIcon){let t=e.fromHex(`#FFFFFF`),n=s.create(),r=o.create();n.toggleAttribute(`shadow`,this._shadow),r.toggleAttribute(`shadow`,this._shadow),n.size=this._size,r.size=this._size,r.fill=`#${t.toJSON()}`,n.fill=`#${t.toJSON()}`,this.appendChild(n),this.appendChild(r)}let t=`off`;(this.getAttribute(`state`)===`on`||this.getAttribute(`state`)===`off`)&&(t=this.getAttribute(`state`)),this.state=t,this._gestureRecognizer||(this._gestureRecognizer=new a(this),this._gestureRecognizer.addListener(this))}attributeChangedCallback(e,t,n){e===`state`&&this.render(n)}render(e){let t=this.onIcon,n=this.offIcon;e===`on`?(n!=null&&(n.style.display=`none`),t!=null&&(t.style.display=`flex`)):(t!=null&&(t.style.display=`none`),n!=null&&(n.style.display=`flex`))}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}onTap(){this.dispatchEvent(new c({currentState:this.state}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};l.tag=`scandit-torch-switch-icon-button`,l.observedAttributes=[`state`];export{l as TorchSwitchIconButton};
1
+ import{Color as e}from"../../../commons/Color.js";import"../../../CameraRelated.js";import{defineCustomElements as t}from"../../utils/defineCustomElements.js";import{css as n}from"../../utils/css.js";import{html as r}from"../../utils/html.js";import{ScanditHTMLElement as i}from"../../utils/ScanditHTMLElement.js";import{GestureRecognizer as a}from"../../GestureRecognizer/GestureRecognizer.js";import{TorchToggledEvent as o}from"./ButtonEvents.js";import{TorchOffSvgIcon as s}from"../atoms/TorchOffSvgIcon.js";import{TorchOnSvgIcon as c}from"../atoms/TorchOnSvgIcon.js";var l=class l extends i{get onIcon(){return this.querySelector(c.tag)??void 0}get offIcon(){return this.querySelector(s.tag)??void 0}constructor(){super(),this._size=24,this._shadow=!1,this._ariaLabel=`Turn on flashlight`,this._useCustomImages=!1;let e=this.attachShadow({mode:`open`});e.innerHTML=r`<div><slot></slot></div>`,e.append(l.createStyleElement().cloneNode(!0))}set size(e){this._size=e;let t=this.onIcon,n=this.offIcon;t&&(t.size=this._size),n&&(n.size=this._size)}get size(){return this._size}set shadow(e){this._shadow=e;let t=this.onIcon,n=this.offIcon;t&&t.toggleAttribute(`shadow`,this._shadow),n&&n.toggleAttribute(`shadow`,this._shadow)}get shadow(){return this._shadow}get state(){return this.getAttribute(`state`)??`off`}set state(e){this.setAttribute(`state`,e);let t=e===`on`;this.setAttribute(`aria-pressed`,t?`true`:`false`),this.setAttribute(`aria-label`,`Turn ${t?`off`:`on`} flashlight`)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute(`aria-label`,e)}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute(`data-use-custom-images`,`true`):this.removeAttribute(`data-use-custom-images`)}setCustomImages(e){let t=this.style,n=e.on.idle?`url(${JSON.stringify(e.on.idle)})`:`none`,r=e.on.pressed?`url(${JSON.stringify(e.on.pressed)})`:`none`,i=e.off.idle?`url(${JSON.stringify(e.off.idle)})`:`none`,a=e.off.pressed?`url(${JSON.stringify(e.off.pressed)})`:`none`;t.setProperty(`--torch-on-idle`,n),t.setProperty(`--torch-on-pressed`,r),t.setProperty(`--torch-off-idle`,i),t.setProperty(`--torch-off-pressed`,a),this.useCustomImages=!0}static create(){return document.createElement(l.tag)}static register(){t({[l.tag]:l})}static createStyleElement(){return n`:host{align-items:center;display:inline-flex;justify-content:center;--button-size:36px;--torch-on-idle:none;--torch-on-pressed:none;--torch-off-idle:none;--torch-off-pressed:none;background-color:#4242428c;background-position:50%;background-repeat:no-repeat;background-size:contain;border:none;border-radius:50%;cursor:pointer;height:var(--button-size);margin:0;opacity:1;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;transform-origin:center;transition:outline .2s ease-in-out,opacity .2s ease-in-out,transform .1s ease-in-out}:host([hidden]){display:none!important}:host([state=off]){opacity:.5}:host([data-pressed=true]){transform:scale(.95)}:host([data-pressed=false]){transform:scale(1)}:host(:focus-visible){outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true][state=on]){background-image:var(--torch-on-idle)}:host([data-use-custom-images=true][state=on][data-pressed=true]){background-image:var(--torch-on-pressed)}:host([data-use-custom-images=true][state=off]){background-image:var(--torch-off-idle)}:host([data-use-custom-images=true][state=off][data-pressed=true]){background-image:var(--torch-off-pressed)}`}connectedCallback(){if(this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),c.register(),s.register(),!this.onIcon||!this.offIcon){let t=e.fromHex(`#FFFFFF`),n=c.create(),r=s.create();n.toggleAttribute(`shadow`,this._shadow),r.toggleAttribute(`shadow`,this._shadow),n.size=this._size,r.size=this._size,r.fill=`#${t.toJSON()}`,n.fill=`#${t.toJSON()}`,this.appendChild(n),this.appendChild(r)}let t=`off`;(this.getAttribute(`state`)===`on`||this.getAttribute(`state`)===`off`)&&(t=this.getAttribute(`state`)),this.state=t,this._gestureRecognizer||(this._gestureRecognizer=new a(this),this._gestureRecognizer.addListener(this))}attributeChangedCallback(e,t,n){e===`state`&&this.render(n)}render(e){let t=this.onIcon,n=this.offIcon;e===`on`?(n!=null&&(n.style.display=`none`),t!=null&&(t.style.display=`flex`)):(t!=null&&(t.style.display=`none`),n!=null&&(n.style.display=`flex`))}disconnectedCallback(){this._gestureRecognizer&&=(this._gestureRecognizer.removeAllListeners(),void 0)}onTap(){this.dispatchEvent(new o({currentState:this.state}))}onPress(){this.setAttribute(`data-pressed`,`true`)}onRelease(){this.setAttribute(`data-pressed`,`false`)}};l.tag=`scandit-torch-switch-icon-button`,l.observedAttributes=[`state`];export{l as TorchSwitchIconButton};
@@ -1 +1 @@
1
- import{t as e}from"../../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../../logger.js";async function n(n){if(!e.isAnimationApiSupported()||n)try{n?t.debug(`Force loading animation polyfill as requested.`):t.debug(`Web Animation API not fully supported, you might need to add https://www.npmjs.com/package/web-animations-js polyfill to see some animations.`);let{polyfill:e}=await import(`./AnimationSimplePolyfill.js`);e()}catch(e){t.warn(`Error importing AnimationSimplePolyfill.js, the Animation API will not be polyfilled. This is not a problem for most browsers, but it might be a problem for older browsers like Chrome 75<`,e)}}async function r(e){if(typeof globalThis.structuredClone!=`function`||e)try{e?t.debug(`Force loading structuredClone polyfill as requested.`):t.debug(`structuredClone API not supported, loading polyfill for older browsers.`);let{structuredClonePolyfill:n}=await import(`./structuredClonePolyfill.js`);n()}catch(e){t.warn(`Error importing structuredClonePolyfill.js, the structuredClone API will not be polyfilled. This might cause issues in older browsers.`,e)}}async function i(e){if(!(typeof globalThis<`u`&&`cookieStore`in globalThis&&globalThis.cookieStore!=null&&!e))try{e?t.debug(`Force loading CookieStore polyfill as requested.`):t.debug(`CookieStore API not supported, loading polyfill for older browsers.`);let{installCookieStorePolyfill:n}=await import(`./cookieStorePolyfill.js`);n()}catch(e){t.warn(`Error importing cookieStorePolyfill.js, the CookieStore API will not be polyfilled. This might cause issues with cookie management in older browsers.`,e)}}async function a(e={}){let{forceAnimationPolyfill:t=!1,forceStructuredClonePolyfill:a=!1,forceCookieStorePolyfill:o=!1,forceAllPolyfills:s=!1}=e,c=s||t,l=s||a,u=s||o;await Promise.all([n(c),r(l),i(u)])}export{a as loadPolyfills};
1
+ import{t as e}from"../../browserHelper-DuxFlAfF.js";import{Logger as t}from"../../logger.js";async function n(n){if(!e.isAnimationApiSupported()||n)try{n?t.debug(`Force loading animation polyfill as requested.`):t.debug(`Web Animation API not fully supported, you might need to add https://www.npmjs.com/package/web-animations-js polyfill to see some animations.`);let{polyfill:e}=await import(`./AnimationSimplePolyfill.js`);e()}catch(e){t.warn(`Error importing AnimationSimplePolyfill.js, the Animation API will not be polyfilled. This is not a problem for most browsers, but it might be a problem for older browsers like Chrome 75<`,e)}}async function r(e){if(typeof globalThis.structuredClone!=`function`||e)try{e?t.debug(`Force loading structuredClone polyfill as requested.`):t.debug(`structuredClone API not supported, loading polyfill for older browsers.`);let{structuredClonePolyfill:n}=await import(`./structuredClonePolyfill.js`);n()}catch(e){t.warn(`Error importing structuredClonePolyfill.js, the structuredClone API will not be polyfilled. This might cause issues in older browsers.`,e)}}async function i(e){if(!(typeof globalThis<`u`&&`cookieStore`in globalThis&&globalThis.cookieStore!=null&&!e))try{e?t.debug(`Force loading CookieStore polyfill as requested.`):t.debug(`CookieStore API not supported, loading polyfill for older browsers.`);let{installCookieStorePolyfill:n}=await import(`./cookieStorePolyfill.js`);n()}catch(e){t.warn(`Error importing cookieStorePolyfill.js, the CookieStore API will not be polyfilled. This might cause issues with cookie management in older browsers.`,e)}}async function a(e={}){let{forceAnimationPolyfill:t=!1,forceStructuredClonePolyfill:a=!1,forceCookieStorePolyfill:o=!1,forceAllPolyfills:s=!1}=e,c=s||t,l=s||a,u=s||o;await Promise.all([n(c),r(l),i(u)])}export{a as loadPolyfills};
@@ -1 +1 @@
1
- import{t as e}from"../../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../../logger.js";import"../../browserCompatibility.js";async function n(){let[{missingFeatures:n},r]=await Promise.all([e.checkBrowserCompatibility(),e.checkMultithreadingSupport()]);r||(t.warn(`Multithreading is not supported.`),n.includes(`crossOriginIsolated`)&&t.warn(`Headers for Multithreading are absent or misconfigured: please check how to configure them properly: https://docs.scandit.com/sdks/web/matrixscan/get-started#enable-browser-multithreading`),n.includes(`sharedArrayBuffer`)&&t.warn(`SharedArrayBuffer not supported. Check the requirements here: https://docs.scandit.com/system-requirements#web-sdk`))}export{n as warnMultithreadingUnavailable};
1
+ import{t as e}from"../../browserHelper-DuxFlAfF.js";import{Logger as t}from"../../logger.js";import"../../browserCompatibility.js";async function n(){let[{missingFeatures:n},r]=await Promise.all([e.checkBrowserCompatibility(),e.checkMultithreadingSupport()]);r||(t.warn(`Multithreading is not supported.`),n.includes(`crossOriginIsolated`)&&t.warn(`Headers for Multithreading are absent or misconfigured: please check how to configure them properly: https://docs.scandit.com/sdks/web/matrixscan/get-started#enable-browser-multithreading`),n.includes(`sharedArrayBuffer`)&&t.warn(`SharedArrayBuffer not supported. Check the requirements here: https://docs.scandit.com/system-requirements#web-sdk`))}export{n as warnMultithreadingUnavailable};
@@ -1 +1 @@
1
- import{t as e}from"../browserHelper-BQPnAZ2Y.js";import{Logger as t}from"../logger.js";import{SafeStorage as n}from"../private/utils/safeStorage.js";var r=class r{constructor(e){this.workerCommandId=1,this.workerTasks=new Map,this.workerListeners=[],this.libraryLocation=e.libraryLocation,this.workerMessageListener=this.onWorkerMessage.bind(this),this.verifyResponseHash=e.verifyResponseHash,this.highEndBlurryRecognition=e.highEndBlurryRecognition??!1,this.simdSupport=e.simdSupport,this.threadsSupport=e.threadsSupport,this.logLevel=e.logLevel??t.Level.Debug,typeof e.loadProgressNotifier==`function`&&this.addWorkerListener(t=>{if(t.type===`loadLibraryProgress`){var n;(n=e.loadProgressNotifier)==null||n.call(e,t.payload)}})}addWorkerMessageListener(){this.dataCaptureWorker.addEventListener(`message`,this.workerMessageListener)}get dataCaptureWorker(){if(!this._dataCaptureWorker)throw Error(`Worker not initialized. Use DataCaptureLoader.create() to instantiate.`);return this._dataCaptureWorker}get name(){return`CoreLoader`}get fixedWasmMemory(){return this.threadsSupport&&e.isFixedMemoryRequired()?300:null}static async create(e){let t=new r(e);return t._dataCaptureWorker=await t.createDataCaptureWorker(),t.addWorkerMessageListener(),await t.workerCommand(`setLogLevel`,{level:t.logLevel}),await t.load(),t}createDataCaptureWorker(){throw Error(`DataCaptureLoader.createDataCaptureWorker must be overridden by a capture-mode subclass`)}getIndexedDBTimeoutMs(){let e=n.getInstanceFor(`localStorage`),t=Number.parseInt(e.getItem(`IndexedDBBlockedTimeoutMs`)??`1500`,10);return Number.isNaN(t)&&(t=1500),t}async load(){try{await this.workerCommand(`loadLibrary`,{libraryLocation:this.libraryLocation,locationPath:window.location.pathname,referredOrigin:window.location.origin,writableDataPathOverride:n.getInstanceFor(`localStorage`).getItem(`scanditWritableDataPathOverride`)??void 0,indexedDBTimeoutMs:this.getIndexedDBTimeoutMs(),verifyResponseHash:this.verifyResponseHash,fixedWasmMemory:this.fixedWasmMemory,simdSupport:this.simdSupport,threadsSupport:this.threadsSupport})}catch(e){if(typeof e==`object`&&e&&typeof e.error==`string`&&e.error.includes(`BlockedIndexedDB`))return await this.terminateDataCaptureWorker(!1),this._dataCaptureWorker=await this.createDataCaptureWorker(),this.addWorkerMessageListener(),await this.workerCommand(`setLogLevel`,{level:this.logLevel}),n.getInstanceFor(`localStorage`).setItem(`scanditWritableDataPathOverride`,`/scandit_sync_folder_${[...crypto.getRandomValues(new Uint32Array(2))].map(e=>e.toString(32)).join(``)}`),this.load();throw e}}async workerCommand(e,t,n){return new Promise((r,i)=>{let a=this.workerCommandId++;this.workerTasks.set(a,{resolve:r,reject:i,command:e});let o={...t,command:e,id:a};this.dataCaptureWorker.postMessage(o,n)})}async terminateDataCaptureWorker(e=!0){var t,n;e&&await this.workerCommand(`dispose`,{}),(t=this._dataCaptureWorker)==null||t.removeEventListener(`message`,this.workerMessageListener),(n=this._dataCaptureWorker)==null||n.terminate(),this._dataCaptureWorker=void 0}addWorkerListener(e){this.workerListeners.push(e)}removeWorkerListener(e){this.workerListeners.includes(e)&&this.workerListeners.splice(this.workerListeners.indexOf(e),1)}getOptions(){return{libraryLocation:this.libraryLocation,simdSupport:this.simdSupport,threadsSupport:this.threadsSupport,verifyResponseHash:this.verifyResponseHash}}onWorkerMessage(e){let t=e.data;if(t.type===`workerTaskId`&&typeof t.id==`number`){let{id:e,error:n,payload:r}=t,i=this.workerTasks.get(e);n==null?i==null||i.resolve(r):i==null||i.reject(t),this.workerTasks.delete(e)}else for(let e of this.workerListeners)e(t)}};export{r as DataCaptureLoader};
1
+ import{t as e}from"../browserHelper-DuxFlAfF.js";import{Logger as t}from"../logger.js";import{SafeStorage as n}from"../private/utils/safeStorage.js";var r=class r{constructor(e){this.workerCommandId=1,this.workerTasks=new Map,this.workerListeners=[],this.libraryLocation=e.libraryLocation,this.workerMessageListener=this.onWorkerMessage.bind(this),this.verifyResponseHash=e.verifyResponseHash,this.highEndBlurryRecognition=e.highEndBlurryRecognition??!1,this.simdSupport=e.simdSupport,this.threadsSupport=e.threadsSupport,this.logLevel=e.logLevel??t.Level.Debug,typeof e.loadProgressNotifier==`function`&&this.addWorkerListener(t=>{if(t.type===`loadLibraryProgress`){var n;(n=e.loadProgressNotifier)==null||n.call(e,t.payload)}})}addWorkerMessageListener(){this.dataCaptureWorker.addEventListener(`message`,this.workerMessageListener)}get dataCaptureWorker(){if(!this._dataCaptureWorker)throw Error(`Worker not initialized. Use DataCaptureLoader.create() to instantiate.`);return this._dataCaptureWorker}get name(){return`CoreLoader`}get fixedWasmMemory(){return this.threadsSupport&&e.isFixedMemoryRequired()?300:null}static async create(e){let t=new r(e);return t._dataCaptureWorker=await t.createDataCaptureWorker(),t.addWorkerMessageListener(),await t.workerCommand(`setLogLevel`,{level:t.logLevel}),await t.load(),t}createDataCaptureWorker(){throw Error(`DataCaptureLoader.createDataCaptureWorker must be overridden by a capture-mode subclass`)}getIndexedDBTimeoutMs(){let e=n.getInstanceFor(`localStorage`),t=Number.parseInt(e.getItem(`IndexedDBBlockedTimeoutMs`)??`1500`,10);return Number.isNaN(t)&&(t=1500),t}async load(){try{await this.workerCommand(`loadLibrary`,{libraryLocation:this.libraryLocation,locationPath:window.location.pathname,referredOrigin:window.location.origin,writableDataPathOverride:n.getInstanceFor(`localStorage`).getItem(`scanditWritableDataPathOverride`)??void 0,indexedDBTimeoutMs:this.getIndexedDBTimeoutMs(),verifyResponseHash:this.verifyResponseHash,fixedWasmMemory:this.fixedWasmMemory,simdSupport:this.simdSupport,threadsSupport:this.threadsSupport})}catch(e){if(typeof e==`object`&&e&&typeof e.error==`string`&&e.error.includes(`BlockedIndexedDB`))return await this.terminateDataCaptureWorker(!1),this._dataCaptureWorker=await this.createDataCaptureWorker(),this.addWorkerMessageListener(),await this.workerCommand(`setLogLevel`,{level:this.logLevel}),n.getInstanceFor(`localStorage`).setItem(`scanditWritableDataPathOverride`,`/scandit_sync_folder_${[...crypto.getRandomValues(new Uint32Array(2))].map(e=>e.toString(32)).join(``)}`),this.load();throw e}}async workerCommand(e,t,n){return new Promise((r,i)=>{let a=this.workerCommandId++;this.workerTasks.set(a,{resolve:r,reject:i,command:e});let o={...t,command:e,id:a};this.dataCaptureWorker.postMessage(o,n)})}async terminateDataCaptureWorker(e=!0){var t,n;e&&await this.workerCommand(`dispose`,{}),(t=this._dataCaptureWorker)==null||t.removeEventListener(`message`,this.workerMessageListener),(n=this._dataCaptureWorker)==null||n.terminate(),this._dataCaptureWorker=void 0}addWorkerListener(e){this.workerListeners.push(e)}removeWorkerListener(e){this.workerListeners.includes(e)&&this.workerListeners.splice(this.workerListeners.indexOf(e),1)}getOptions(){return{libraryLocation:this.libraryLocation,simdSupport:this.simdSupport,threadsSupport:this.threadsSupport,verifyResponseHash:this.verifyResponseHash}}onWorkerMessage(e){let t=e.data;if(t.type===`workerTaskId`&&typeof t.id==`number`){let{id:e,error:n,payload:r}=t,i=this.workerTasks.get(e);n==null?i==null||i.resolve(r):i==null||i.reject(t),this.workerTasks.delete(e)}else for(let e of this.workerListeners)e(t)}};export{r as DataCaptureLoader};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scandit/web-datacapture-core",
3
- "version": "8.5.0-beta.1",
3
+ "version": "8.5.0",
4
4
  "description": "Scandit Data Capture SDK for the Web",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "sideEffects": false,