@scandit/web-datacapture-barcode 8.6.0 → 8.6.1

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 (89) hide show
  1. package/build/js/{BarcodeArInfoAnnotationBodyComponent-BXOaa1oT.d.ts → BarcodeArInfoAnnotationBodyComponent-BGaYDIeF.d.ts} +3 -1
  2. package/build/js/{BarcodeArMode-KtDRsTYm.d.ts → BarcodeArMode-DNYeJc-r.d.ts} +1 -1
  3. package/build/js/BarcodeCapture.d.ts +1 -1
  4. package/build/js/{BarcodeCaptureSettings-Cjf__Ral.d.ts → BarcodeCaptureSettings-DcE4bdDZ.d.ts} +5 -1
  5. package/build/js/BarcodeCaptureSettings.d.ts +1 -1
  6. package/build/js/BarcodeCaptureSettings.js +1 -1
  7. package/build/js/{BarcodeCaptureWorkerManager-ZfiS6RXC.js → BarcodeCaptureWorkerManager-Du3qKmee.js} +1 -1
  8. package/build/js/{SparkScan-Cqq70mCV.d.ts → SparkScan-nhve8-Am.d.ts} +1 -1
  9. package/build/js/{SparkScanSettings-Vp9xrjc-.d.ts → SparkScanSettings-CtptH4fx.d.ts} +5 -1
  10. package/build/js/{SparkScanView-D3QZs23s.d.ts → SparkScanView-r3hp5Y4N.d.ts} +2 -1
  11. package/build/js/{SparkScanViewMiniPreview-CXYokFio.d.ts → SparkScanViewMiniPreview-BhW0WBwD.d.ts} +3 -0
  12. package/build/js/{SparkScanViewPresenter-B3_WS-oD.d.ts → SparkScanViewPresenter-4zc-flTz.d.ts} +2 -2
  13. package/build/js/SparkScanViewPresenter-BZe3-fs5.js +1 -0
  14. package/build/js/{SparkScanViewTriggerButton-0C1PbogB.d.ts → SparkScanViewTriggerButton-BcqKB5he.d.ts} +1 -0
  15. package/build/js/ar/BarcodeArView.d.ts +1 -1
  16. package/build/js/ar/BarcodeArView.js +1 -1
  17. package/build/js/ar/ui/atoms/BarcodeArInfoAnnotationBodyComponent.d.ts +2 -2
  18. package/build/js/ar/ui/atoms/BarcodeArInfoAnnotationBodyComponent.js +1 -1
  19. package/build/js/ar/ui/atoms/private/BarcodeArInfoAnnotationHeaderFooterUtils.js +1 -1
  20. package/build/js/ar/ui/atoms/private/BarcodeStatusIconContainer.d.ts +3 -0
  21. package/build/js/ar/ui/atoms/private/BarcodeStatusIconContainer.js +1 -1
  22. package/build/js/ar/ui/atoms/private/CssArrows.js +1 -1
  23. package/build/js/ar/ui/molecules/private/CameraSwitchButton.js +1 -1
  24. package/build/js/ar/ui/organisms/BarcodeArInfoAnnotation.d.ts +1 -1
  25. package/build/js/ar/ui/organisms/BarcodeArInfoAnnotation.js +1 -1
  26. package/build/js/ar/ui/organisms/BarcodeArPopoverAnnotation.d.ts +5 -2
  27. package/build/js/ar/ui/organisms/BarcodeArPopoverAnnotation.js +1 -1
  28. package/build/js/ar/ui/organisms/BarcodeArPopoverAnnotationButton.js +1 -1
  29. package/build/js/ar/ui/organisms/BarcodeArStatusIconAnnotation.d.ts +2 -1
  30. package/build/js/ar/ui/organisms/BarcodeArStatusIconAnnotation.js +1 -1
  31. package/build/js/ar/ui/organisms/private/annotationTriggerBehavior.d.ts +7 -0
  32. package/build/js/ar/ui/organisms/private/annotationTriggerBehavior.js +1 -0
  33. package/build/js/ar/ui/private/slots.d.ts +8 -0
  34. package/build/js/ar/ui/private/slots.js +1 -0
  35. package/build/js/{dataCaptureWorkerRelated-DCtM_1Ae.d.ts → dataCaptureWorkerRelated-BX9zd72O.d.ts} +1 -1
  36. package/build/js/defaults/DefaultsBarcodeFind.js +1 -1
  37. package/build/js/find/BarcodeFindView.js +1 -1
  38. package/build/js/{index-D5TKa6KC.d.ts → index-B35SSKej.d.ts} +4 -4
  39. package/build/js/{index-Co5DndWE.d.ts → index-B8as6wQU.d.ts} +3 -3
  40. package/build/js/index.d.ts +7 -7
  41. package/build/js/index.js +1 -1
  42. package/build/js/moduleLoader.js +1 -1
  43. package/build/js/spark/SparkScan.d.ts +1 -1
  44. package/build/js/spark/SparkScanOverlay.d.ts +1 -1
  45. package/build/js/spark/SparkScanSettings.d.ts +1 -1
  46. package/build/js/spark/SparkScanSettings.js +1 -1
  47. package/build/js/spark/index.d.ts +4 -4
  48. package/build/js/spark/ui/SparkScanOverlayManager.d.ts +1 -2
  49. package/build/js/spark/ui/SparkScanOverlayManager.js +1 -1
  50. package/build/js/spark/ui/SparkScanView.d.ts +1 -1
  51. package/build/js/spark/ui/SparkScanView.js +1 -1
  52. package/build/js/spark/ui/SparkScanViewMiniPreview.d.ts +1 -1
  53. package/build/js/spark/ui/SparkScanViewMiniPreview.js +1 -1
  54. package/build/js/spark/ui/SparkScanViewPresenter.d.ts +1 -1
  55. package/build/js/spark/ui/SparkScanViewPresenter.js +1 -1
  56. package/build/js/spark/ui/SparkScanViewTriggerButton.d.ts +1 -1
  57. package/build/js/spark/ui/SparkScanViewTriggerButton.js +1 -1
  58. package/build/js/spark/ui/SparkScanViewUiListener.d.ts +1 -1
  59. package/build/js/spark/ui/controllers/LongPressController.js +1 -1
  60. package/build/js/spark/ui/index.d.ts +5 -5
  61. package/build/js/spark/ui/index.js +1 -1
  62. package/build/js/umd/index.js +1 -1
  63. package/build/js/worker/BarcodeArMode.d.ts +1 -1
  64. package/build/js/worker/BarcodeBatchMode.d.ts +1 -1
  65. package/build/js/worker/BarcodeCaptureMode.d.ts +1 -1
  66. package/build/js/worker/BarcodeCaptureWorkerManager.d.ts +1 -1
  67. package/build/js/worker/BarcodeCaptureWorkerManager.js +1 -1
  68. package/build/js/worker/BarcodeFindMode.d.ts +1 -1
  69. package/build/js/worker/SparkScanMode.d.ts +1 -1
  70. package/build/js/worker/WorkerMain.d.ts +2 -2
  71. package/build/js/worker/dataCaptureEngine.d.ts +1 -1
  72. package/build/js/worker/dataCaptureEngine.js +1 -1
  73. package/build/js/worker/dataCaptureWorkerRelated.d.ts +1 -1
  74. package/build/js/worker/index.d.ts +1 -1
  75. package/package.json +2 -2
  76. package/sdc-lib/{barcode-worker-8.6.0.js → barcode-worker-8.6.1.js} +1 -1
  77. package/sdc-lib/resources/models/id_outline_localization_model_kpts.e8f897f3d185.model +0 -0
  78. package/sdc-lib/resources/models/via_id_template_database.2729cd6f48dd.model +0 -0
  79. package/sdc-lib/scandit-datacapture-sdk-barcode-pthreads.js +1 -1
  80. package/sdc-lib/scandit-datacapture-sdk-barcode-pthreads.wasm +0 -0
  81. package/sdc-lib/scandit-datacapture-sdk-barcode-simd-pthreads.js +1 -1
  82. package/sdc-lib/scandit-datacapture-sdk-barcode-simd-pthreads.wasm +0 -0
  83. package/sdc-lib/scandit-datacapture-sdk-barcode-simd.js +1 -1
  84. package/sdc-lib/scandit-datacapture-sdk-barcode-simd.wasm +0 -0
  85. package/sdc-lib/scandit-datacapture-sdk-barcode.js +1 -1
  86. package/sdc-lib/scandit-datacapture-sdk-barcode.wasm +0 -0
  87. package/build/js/SparkScanViewPresenter-CxLG_H-K.js +0 -1
  88. package/sdc-lib/resources/models/id_outline_localization_model_kpts.376104335628.model +0 -0
  89. package/sdc-lib/resources/models/via_id_template_database.948ef137372d.model +0 -0
@@ -1,6 +1,8 @@
1
1
  import { Color, Optional, ScanditIcon } from "@scandit/web-datacapture-core";
2
2
  import { ScanditHTMLElement as ScanditHTMLElement$1 } from "@scandit/web-datacapture-core/build/js/private/utils/index.js";
3
3
  //#region src/main/ar/ui/atoms/BarcodeArInfoAnnotationBodyComponent.d.ts
4
+ declare const LEFT_ICON_SLOT_NAME = "left-barcode-icon";
5
+ declare const RIGHT_ICON_SLOT_NAME = "right-barcode-icon";
4
6
  declare class BarcodeArInfoAnnotationBodyComponent extends ScanditHTMLElement$1 {
5
7
  static tag: "scandit-barcode-ar-info-annotation-body";
6
8
  isLeftIconTappable: boolean;
@@ -30,4 +32,4 @@ declare global {
30
32
  }
31
33
  }
32
34
  //#endregion
33
- export { BarcodeArInfoAnnotationBodyComponent as t };
35
+ export { LEFT_ICON_SLOT_NAME as n, RIGHT_ICON_SLOT_NAME as r, BarcodeArInfoAnnotationBodyComponent as t };
@@ -2,7 +2,7 @@ import { n as BarcodeArSettingsJSON } from "./BarcodeArSettings-CDjBEQBe.js";
2
2
  import { r as BarcodeFindItemJSON } from "./BarcodeFindItem-B-Z3k7wI.js";
3
3
  import { n as BarcodeFindSettingsJSON } from "./BarcodeFindSettings-B_STCRxz.js";
4
4
  import { n as BarcodeFindBasicOverlayJSON } from "./BarcodeFindBasicOverlay-o6FxUPuD.js";
5
- import { H as Module$1, ct as JSONParseable, h as BarcodeCaptureModule, lt as WasmFrameData, st as CaptureModeDeserializerInstance, z as DataCaptureCallbackMessage$1 } from "./dataCaptureWorkerRelated-DCtM_1Ae.js";
5
+ import { H as Module$1, ct as JSONParseable, h as BarcodeCaptureModule, lt as WasmFrameData, st as CaptureModeDeserializerInstance, z as DataCaptureCallbackMessage$1 } from "./dataCaptureWorkerRelated-BX9zd72O.js";
6
6
  import { t as Property } from "./PropertyBehaviorSubject-C6JRRRVs.js";
7
7
  import { DataCaptureEngine } from "@scandit/web-datacapture-core/build/js/worker/index.js";
8
8
  import { ModuleHandler, Vector, WorkerFunctions } from "@scandit/web-datacapture-core/build/js/worker/index";
@@ -1,6 +1,6 @@
1
1
  import { n as BarcodeCaptureFeedbackJSON, t as BarcodeCaptureFeedback } from "./BarcodeCaptureFeedback-DZfIn9Lo.js";
2
2
  import { t as BarcodeCaptureSession } from "./BarcodeCaptureSession-Lyn8h1Oc.js";
3
- import { n as BarcodeCaptureSettingsJSON, t as BarcodeCaptureSettings } from "./BarcodeCaptureSettings-Cjf__Ral.js";
3
+ import { n as BarcodeCaptureSettingsJSON, t as BarcodeCaptureSettings } from "./BarcodeCaptureSettings-DcE4bdDZ.js";
4
4
  import { CameraSettings, DataCaptureContext, DataCaptureMode, DataCaptureModeJSON, FrameData, PrivateDataCaptureMode } from "@scandit/web-datacapture-core";
5
5
  import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Serializable";
6
6
  //#region src/main/BarcodeCapture.d.ts
@@ -8,6 +8,7 @@ import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Ser
8
8
  //#region src/main/BarcodeCaptureSettings.d.ts
9
9
  interface BarcodeCaptureSettingsJSON {
10
10
  codeDuplicateFilter: number;
11
+ codeDuplicateFilterExplicitlySet?: boolean;
11
12
  enabledCompositeTypes: string[];
12
13
  locationSelection: LocationSelectionJSON | null;
13
14
  symbologies: Record<Symbology, SymbologySettingsJSON>;
@@ -17,7 +18,6 @@ interface BarcodeCaptureSettingsJSON {
17
18
  arucoDictionary: ArucoDictionaryJSON | null;
18
19
  }
19
20
  declare class BarcodeCaptureSettings implements Serializable<BarcodeCaptureSettingsJSON> {
20
- codeDuplicateFilter: number;
21
21
  locationSelection: LocationSelection | null;
22
22
  enabledCompositeTypes: CompositeType[];
23
23
  scanIntention?: ScanIntention;
@@ -25,7 +25,11 @@ declare class BarcodeCaptureSettings implements Serializable<BarcodeCaptureSetti
25
25
  private properties;
26
26
  private symbologies;
27
27
  private _arucoDictionary;
28
+ private _codeDuplicateFilter;
29
+ private _codeDuplicateFilterExplicitlySet;
28
30
  constructor();
31
+ get codeDuplicateFilter(): number;
32
+ set codeDuplicateFilter(codeDuplicateFilter: number);
29
33
  get enabledSymbologies(): Symbology[];
30
34
  private get compositeTypeDescriptions();
31
35
  settingsForSymbology(symbology: Symbology): SymbologySettings;
@@ -1,2 +1,2 @@
1
- import { n as BarcodeCaptureSettingsJSON, t as BarcodeCaptureSettings } from "./BarcodeCaptureSettings-Cjf__Ral.js";
1
+ import { n as BarcodeCaptureSettingsJSON, t as BarcodeCaptureSettings } from "./BarcodeCaptureSettings-DcE4bdDZ.js";
2
2
  export { BarcodeCaptureSettings, BarcodeCaptureSettingsJSON };
@@ -1 +1 @@
1
- import{ArucoDictionary as e}from"./ArucoDictionary.js";import"./ArucoDictionaryPreset.js";import"./Barcode.js";import{defaultSymbologies as t}from"./defaults/DefaultsSymbologies.js";import{defaultBarcodeCapture as n}from"./defaults/DefaultsBarcodeCapture.js";import"./ScanIntention.js";import"./SelectionMode.js";import{PrivateNoneLocationSelection as r}from"@scandit/web-datacapture-core";var i=class{constructor(){this.codeDuplicateFilter=n.BarcodeCaptureSettings.codeDuplicateFilter,this.locationSelection=null,this.enabledCompositeTypes=[],this.scanIntention=`manual`,this.selectionMode=`off`,this.properties={},this.symbologies={},this._arucoDictionary=null}get enabledSymbologies(){return Object.keys(this.symbologies).filter(e=>{var t;return(t=this.symbologies[e])==null?void 0:t.isEnabled})}get compositeTypeDescriptions(){return t.CompositeTypeDescriptions.reduce((e,t)=>(e[t.types[0]]=t,e),{})}settingsForSymbology(e){if(!this.symbologies[e]){let n=t.SymbologySettings[e];n._symbology=e,this.symbologies[e]=n}return this.symbologies[e]}setProperty(e,t){this.properties[e]=t}getProperty(e){return this.properties[e]}enableSymbologies(e){for(let t of e)this.enableSymbology(t,!0)}enableSymbology(t,n){this.settingsForSymbology(t).isEnabled=n,t===`aruco`&&(this._arucoDictionary=e.fromPreset(`5X5_50`))}enableSymbologiesForCompositeTypes(e){for(let t of e)this.enableSymbologies(this.compositeTypeDescriptions[t].symbologies)}setArucoDictionary(e){this._arucoDictionary=e}toJSONObject(){var e,t;let n={};return{codeDuplicateFilter:this.codeDuplicateFilter,enabledCompositeTypes:[...this.enabledCompositeTypes],locationSelection:((e=this.locationSelection)==null?void 0:e.toJSONObject())??r,properties:{...this.properties},symbologies:Object.keys(this.symbologies).reduce((e,t)=>{var n;let r=(n=this.symbologies[t])==null?void 0:n.toJSONObject();return r&&(e[t]=r),e},n),scanIntention:this.scanIntention??null,selectionMode:this.selectionMode??null,arucoDictionary:((t=this._arucoDictionary)==null?void 0:t.toJSONObject())??null}}};export{i as BarcodeCaptureSettings};
1
+ import{ArucoDictionary as e}from"./ArucoDictionary.js";import"./ArucoDictionaryPreset.js";import"./Barcode.js";import{defaultSymbologies as t}from"./defaults/DefaultsSymbologies.js";import{defaultBarcodeCapture as n}from"./defaults/DefaultsBarcodeCapture.js";import"./ScanIntention.js";import"./SelectionMode.js";import{PrivateNoneLocationSelection as r}from"@scandit/web-datacapture-core";var i=class{constructor(){this.locationSelection=null,this.enabledCompositeTypes=[],this.scanIntention=`manual`,this.selectionMode=`off`,this.properties={},this.symbologies={},this._arucoDictionary=null,this._codeDuplicateFilter=n.BarcodeCaptureSettings.codeDuplicateFilter,this._codeDuplicateFilterExplicitlySet=!1}get codeDuplicateFilter(){return this._codeDuplicateFilter}set codeDuplicateFilter(e){this._codeDuplicateFilter=e,this._codeDuplicateFilterExplicitlySet=!0}get enabledSymbologies(){return Object.keys(this.symbologies).filter(e=>{var t;return(t=this.symbologies[e])==null?void 0:t.isEnabled})}get compositeTypeDescriptions(){return t.CompositeTypeDescriptions.reduce((e,t)=>(e[t.types[0]]=t,e),{})}settingsForSymbology(e){if(!this.symbologies[e]){let n=t.SymbologySettings[e];n._symbology=e,this.symbologies[e]=n}return this.symbologies[e]}setProperty(e,t){this.properties[e]=t}getProperty(e){return this.properties[e]}enableSymbologies(e){for(let t of e)this.enableSymbology(t,!0)}enableSymbology(t,n){this.settingsForSymbology(t).isEnabled=n,t===`aruco`&&(this._arucoDictionary=e.fromPreset(`5X5_50`))}enableSymbologiesForCompositeTypes(e){for(let t of e)this.enableSymbologies(this.compositeTypeDescriptions[t].symbologies)}setArucoDictionary(e){this._arucoDictionary=e}toJSONObject(){var e,t;let n={};return{codeDuplicateFilter:this._codeDuplicateFilter,codeDuplicateFilterExplicitlySet:this._codeDuplicateFilterExplicitlySet,enabledCompositeTypes:[...this.enabledCompositeTypes],locationSelection:((e=this.locationSelection)==null?void 0:e.toJSONObject())??r,properties:{...this.properties},symbologies:Object.keys(this.symbologies).reduce((e,t)=>{var n;let r=(n=this.symbologies[t])==null?void 0:n.toJSONObject();return r&&(e[t]=r),e},n),scanIntention:this.scanIntention??null,selectionMode:this.selectionMode??null,arucoDictionary:((t=this._arucoDictionary)==null?void 0:t.toJSONObject())??null}}};export{i as BarcodeCaptureSettings};
@@ -1 +1 @@
1
- import{DataCaptureLoader as e}from"@scandit/web-datacapture-core";var t=`barcode-worker-8.6.0.js`;function n(e){try{var n=e.endsWith(`/`)?e:e+`/`;return new URL(t,n).href}catch(n){var r=n instanceof Error?n.message:String(n);throw Error(`Invalid worker URL: `+e+`/`+t+` (`+r+`)`)}}function r(e){try{return new URL(e).origin===location.origin}catch(n){var t=n instanceof Error?n.message:String(n);return console.warn(`Could not determine origin for worker URL "`+e+`": `+t+`. Defaulting to cross-origin path.`),!1}}function i(e,t){/javascript|ecmascript/i.test(e.type)||(e=new Blob([e],{type:`application/javascript`}));var n=URL.createObjectURL(e),r=new Worker(n,{name:t});return setTimeout(function(){URL.revokeObjectURL(n)},0),r}async function a(e){if(!e||!e.libraryLocation)throw Error(`ExternalWorker requires options.libraryLocation`);var t=n(e.libraryLocation);try{var a=await fetch(t,r(t)?{}:{mode:`cors`});if(!a.ok)throw Error(`Failed to load worker script: `+t+` (status `+a.status+`)`);var o=await a.blob();return r(t)?new Worker(t,{name:e.name}):i(o,e.name)}catch(e){throw e instanceof Error&&e.message.startsWith(`Failed to load worker script:`)?e:Error(`Failed to load worker script: `+t+` (`+(e instanceof Error?e.message:e)+`)`)}}var o=class t extends e{constructor(...e){super(...e),this._name=`BarcodeCapture`}get dataCaptureWorker(){if(!this._dataCaptureWorker)throw Error(`Worker not initialized. Use BarcodeCaptureWorkerManager.create() to instantiate.`);return this._dataCaptureWorker}get name(){return this._name}async createDataCaptureWorker(){return await a({name:this.name,libraryLocation:this.libraryLocation})}static async create(e){let n=new t(e);return n._dataCaptureWorker=await n.createDataCaptureWorker(),n.addWorkerMessageListener(),await n.workerCommand(`setLogLevel`,{level:n.logLevel}),await n.load(),n}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)})}};export{o as t};
1
+ import{DataCaptureLoader as e}from"@scandit/web-datacapture-core";var t=`barcode-worker-8.6.1.js`;function n(e){try{var n=e.endsWith(`/`)?e:e+`/`;return new URL(t,n).href}catch(n){var r=n instanceof Error?n.message:String(n);throw Error(`Invalid worker URL: `+e+`/`+t+` (`+r+`)`)}}function r(e){try{return new URL(e).origin===location.origin}catch(n){var t=n instanceof Error?n.message:String(n);return console.warn(`Could not determine origin for worker URL "`+e+`": `+t+`. Defaulting to cross-origin path.`),!1}}function i(e,t){/javascript|ecmascript/i.test(e.type)||(e=new Blob([e],{type:`application/javascript`}));var n=URL.createObjectURL(e),r=new Worker(n,{name:t});return setTimeout(function(){URL.revokeObjectURL(n)},0),r}async function a(e){if(!e||!e.libraryLocation)throw Error(`ExternalWorker requires options.libraryLocation`);var t=n(e.libraryLocation);try{var a=await fetch(t,r(t)?{}:{mode:`cors`});if(!a.ok)throw Error(`Failed to load worker script: `+t+` (status `+a.status+`)`);var o=await a.blob();return r(t)?new Worker(t,{name:e.name}):i(o,e.name)}catch(e){throw e instanceof Error&&e.message.startsWith(`Failed to load worker script:`)?e:Error(`Failed to load worker script: `+t+` (`+(e instanceof Error?e.message:e)+`)`)}}var o=class t extends e{constructor(...e){super(...e),this._name=`BarcodeCapture`}get dataCaptureWorker(){if(!this._dataCaptureWorker)throw Error(`Worker not initialized. Use BarcodeCaptureWorkerManager.create() to instantiate.`);return this._dataCaptureWorker}get name(){return this._name}async createDataCaptureWorker(){return await a({name:this.name,libraryLocation:this.libraryLocation})}static async create(e){let n=new t(e);return n._dataCaptureWorker=await n.createDataCaptureWorker(),n.addWorkerMessageListener(),await n.workerCommand(`setLogLevel`,{level:n.logLevel}),await n.load(),n}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)})}};export{o as t};
@@ -1,5 +1,5 @@
1
1
  import { t as SparkScanSession } from "./SparkScanSession-CI6W5VK1.js";
2
- import { n as SparkScanSettingsJSON, t as SparkScanSettings } from "./SparkScanSettings-Vp9xrjc-.js";
2
+ import { n as SparkScanSettingsJSON, t as SparkScanSettings } from "./SparkScanSettings-CtptH4fx.js";
3
3
  import { DataCaptureContext, DataCaptureMode, DataCaptureModeJSON, FrameData } from "@scandit/web-datacapture-core";
4
4
  import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Serializable";
5
5
  //#region src/main/spark/SparkScan.d.ts
@@ -7,6 +7,7 @@ import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Ser
7
7
  //#region src/main/spark/SparkScanSettings.d.ts
8
8
  interface SparkScanSettingsJSON {
9
9
  codeDuplicateFilter: number;
10
+ codeDuplicateFilterExplicitlySet?: boolean;
10
11
  enabledCompositeTypes: string[];
11
12
  locationSelection: LocationSelectionJSON;
12
13
  symbologies: Record<Symbology, SymbologySettingsJSON>;
@@ -15,15 +16,18 @@ interface SparkScanSettingsJSON {
15
16
  selectionMode: SelectionMode | null;
16
17
  }
17
18
  declare class SparkScanSettings implements Serializable<SparkScanSettingsJSON> {
18
- codeDuplicateFilter: number;
19
19
  enabledCompositeTypes: CompositeType[];
20
20
  selectionMode?: SelectionMode;
21
+ private _codeDuplicateFilter;
22
+ private _codeDuplicateFilterExplicitlySet;
21
23
  private _scanIntention?;
22
24
  private _scanIntentionExplicitlySet;
23
25
  private locationSelection;
24
26
  private properties;
25
27
  private symbologies;
26
28
  constructor();
29
+ get codeDuplicateFilter(): number;
30
+ set codeDuplicateFilter(codeDuplicateFilter: number);
27
31
  get scanIntention(): Optional<ScanIntention>;
28
32
  set scanIntention(scanIntention: Optional<ScanIntention>);
29
33
  get enabledSymbologies(): Symbology[];
@@ -1,4 +1,4 @@
1
- import { t as SparkScan } from "./SparkScan-Cqq70mCV.js";
1
+ import { t as SparkScan } from "./SparkScan-nhve8-Am.js";
2
2
  import { t as SparkScanScanningMode } from "./SparkScanScanningMode-OfggiH2E.js";
3
3
  import { t as SparkScanViewState } from "./SparkScanViewState-DQ4Mf4ZI.js";
4
4
  import { t as SparkScanFeedbackDelegate } from "./SparkScanFeedbackDelegate-qMCBitM8.js";
@@ -30,6 +30,7 @@ declare class SparkScanView extends ScanditHTMLElement$1 {
30
30
  private _isZoomAvailable;
31
31
  private _isConnected;
32
32
  private _sizingMode;
33
+ static get defaultTriggerButtonImage(): SVGElement;
33
34
  /**
34
35
  * @deprecated Use `selectionModeButtonVisible` instead. Will be removed in 9.0.
35
36
  */
@@ -26,7 +26,9 @@ declare class SparkScanViewMiniPreview extends ScanditHTMLElement$1 {
26
26
  private torchButton?;
27
27
  private torchButtonIcon?;
28
28
  private closeButton?;
29
+ private controls?;
29
30
  private buttonContainerList?;
31
+ private controlsPointerDownListener;
30
32
  private resizeButtonTapListener;
31
33
  private zoomButtonTapListener;
32
34
  private torchButtonTapListener;
@@ -79,6 +81,7 @@ declare class SparkScanViewMiniPreview extends ScanditHTMLElement$1 {
79
81
  rewindAnimation(): Promise<void>;
80
82
  translateTo(point: Point): void;
81
83
  private render;
84
+ private onControlsPointerDown;
82
85
  private onResizeButtonTap;
83
86
  private onZoomButtonTap;
84
87
  private onTorchButtonTap;
@@ -1,7 +1,7 @@
1
1
  import { t as SelectionMode } from "./SelectionMode-BJr-FYzy.js";
2
2
  import { t as SparkScanSession } from "./SparkScanSession-CI6W5VK1.js";
3
- import { n as SparkScanDelegate, r as SparkScanListener, t as SparkScan } from "./SparkScan-Cqq70mCV.js";
4
- import { n as SparkScanViewUiListener, t as SparkScanView } from "./SparkScanView-D3QZs23s.js";
3
+ import { n as SparkScanDelegate, r as SparkScanListener, t as SparkScan } from "./SparkScan-nhve8-Am.js";
4
+ import { n as SparkScanViewUiListener, t as SparkScanView } from "./SparkScanView-r3hp5Y4N.js";
5
5
  import { t as SparkScanViewSettings } from "./SparkScanViewSettings-D5HpDX8Z.js";
6
6
  import { n as SparkScanTimeoutManagerDelegate } from "./SparkScanTimeoutManager-010BnuQP.js";
7
7
  import { n as SparkScanViewSessionStopReason } from "./SparkScanAnalyticsManager-CQU_edU0.js";
@@ -0,0 +1 @@
1
+ import"./SelectionMode.js";import"./spark/ui/SparkScanMiniPreviewSize.js";import{defaultSparkScan as e}from"./defaults/DefaultsSparkScan.js";import"./spark/SparkScanPreviewBehavior.js";import"./spark/SparkScanScanningBehavior.js";import{SparkScanScanningModeDefault as t,SparkScanScanningModeTarget as n}from"./spark/SparkScanScanningMode.js";import{SparkScanAnalyticsManager as r}from"./spark/SparkScanAnalyticsManager.js";import{SparkScanBarcodeErrorFeedback as i,SparkScanBarcodeFeedback as a,SparkScanBarcodeSuccessFeedback as o}from"./spark/SparkScanBarcodeFeedback.js";import"./spark/ui/constants/constants.js";import{SparkScanCameraManager as s}from"./spark/ui/SparkScanCameraManager.js";import"./spark/ui/SparkScanViewState.js";import{SparkScanOverlayManager as c}from"./spark/ui/SparkScanOverlayManager.js";import{SparkScanTimeoutManager as l}from"./spark/ui/SparkScanTimeoutManager.js";import{SparkScanViewFeedbackManager as u}from"./spark/ui/SparkScanViewFeedbackManager.js";import{SparkScanViewPreferenceManager as d}from"./spark/ui/SparkScanViewPreferenceManager.js";import{SparkScanViewStateManager as f}from"./spark/ui/SparkScanViewStateManager.js";import{Anchor as p,Color as m,DataCaptureView as h,Logger as g,LogoStyle as _,NumberWithUnit as v,RadiusLocationSelection as y,TorchState as b}from"@scandit/web-datacapture-core";import{SafeStorage as x}from"@scandit/web-datacapture-core/build/js/private/utils/safeStorage.js";function S(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function C(e,t,n){let r=n.value;return typeof r==`function`?r.constructor.name!==`AsyncFunction`&&r.constructor!==(async()=>{}).constructor?(g.warn(`@afterPrepareScanning applied to non-async method: ${t}`),n):(n.value=function(...e){return this._preparationPromise?this._preparationPromise.then(()=>r.apply(this,e)):Promise.reject(Error(`prepare should be called before calling ${t} method`))},n):(g.warn(`@afterPrepareScanning applied to non-function: ${t}`),n)}var w=class g{get camera(){return this.cameraManager.camera}constructor(e,t){this._context=null,this._sparkScan=null,this._preparationPromise=null,this._stopScanningPromise=null,this._dataCaptureView=null,this.preferenceManager=new d(x.getInstanceFor(`localStorage`)),this.defaultSuccessBrush=a.defaultSuccessBrush(),this.defaultErrorBrush=a.defaultErrorBrush(),this.sparkScanView=e,this.cameraManager=new s,this.setSparkScanViewSettings(t)}set context(e){this._context!==e&&(this._preparationPromise=null,this._context=e,e&&(this.analyticsManager=r.forContext(e)))}get context(){return this._context}set sparkScan(e){this._sparkScan!==e&&(this._preparationPromise=null,this._sparkScan=e)}get sparkScan(){return this._sparkScan}get sparkScan$(){if(!this._sparkScan)throw Error(`SparkScan mode is required to be set before calling this method`);return this._sparkScan}get context$(){if(!this._context)throw Error(`Context is required to be set before calling this method`);return this._context}setSparkScanViewSettings(e){var t;this.sparkScanViewSettings=e,this.overlayManager?this.overlayManager.setViewSettings(this.sparkScanViewSettings):this.overlayManager=new c(this.sparkScanViewSettings),this.stateManager?this.stateManager.setViewSettings(this.sparkScanViewSettings):this.stateManager=new f(this.sparkScanViewSettings,this.preferenceManager),this.feedbackManager=u.withDefaults(this.sparkScanViewSettings.soundEnabled,this.sparkScanViewSettings.hapticEnabled),(t=this.timeoutManager)==null||t.stopCurrentTimeout(),this.timeoutManager=new l(this.sparkScanViewSettings,this)}get portraitOrientationTriggerButtonTranslateX(){return this.stateManager.portraitOrientationTriggerButtonTranslateX??this.defaultTriggerButtonTranslateX}get portraitOrientationTriggerButtonTranslateY(){return this.stateManager.portraitOrientationTriggerButtonTranslateY??this.defaultTriggerButtonTranslateY}get landscapeOrientationTriggerButtonTranslateX(){return this.stateManager.landscapeOrientationTriggerButtonTranslateX??this.defaultTriggerButtonTranslateX}get landscapeOrientationTriggerButtonTranslateY(){return this.stateManager.landscapeOrientationTriggerButtonTranslateY??this.defaultTriggerButtonTranslateY}get portraitOrientationMiniPreviewTranslateX(){return this.stateManager.portraitOrientationMiniPreviewTranslateX??this.defaultMiniPreviewTranslateX}get portraitOrientationMiniPreviewTranslateY(){return this.stateManager.portraitOrientationMiniPreviewTranslateY??this.defaultMiniPreviewTranslateY}get landscapeOrientationMiniPreviewTranslateX(){return this.stateManager.landscapeOrientationMiniPreviewTranslateX??this.defaultMiniPreviewTranslateX}get landscapeOrientationMiniPreviewTranslateY(){return this.stateManager.landscapeOrientationMiniPreviewTranslateY??this.defaultMiniPreviewTranslateY}get defaultTriggerButtonTranslateX(){return this.parentViewSizes.width-Math.min(this.parentViewSizes.width/3,110)-90/2}get defaultTriggerButtonTranslateY(){return this.parentViewSizes.height-Math.min(this.parentViewSizes.height/3,250)-90/2}get defaultMiniPreviewTranslateX(){return this.parentViewSizes.width-225-16}get parentViewSizes(){return{width:this.sparkScanView.parentElement.clientWidth??window.innerWidth,height:this.sparkScanView.parentElement.clientHeight??window.innerHeight}}get defaultMiniPreviewTranslateY(){return 16}static forView(e,t){return new g(e,t)}async prepareScanning(e){if(this._preparationPromise)return this._preparationPromise;this._stopScanningPromise&&await this._stopScanningPromise,this._preparationPromise=this._internalPrepareScanning(e);try{await this._preparationPromise}catch(e){throw this._preparationPromise=null,e}return this._preparationPromise}async _internalPrepareScanning(e){var t;let n=this.context$,r=this.sparkScan$;(t=this._dataCaptureView)==null||t.detachFromElement(),this._dataCaptureView=await h.forContext(n),this._dataCaptureView.logoAnchor=p.BottomCenter,this._dataCaptureView.logoStyle=_.Minimal,this._dataCaptureView.setProperty(`stopVideoTracksOnVisibilityChange`,!1),this._dataCaptureView.setProperty(`freezeFrameWhenStoppingFrameSource`,!1),this._dataCaptureView.connectToElement(e);let i=await this.cameraManager.prepareScanning(n,this.sparkScanViewSettings);this.sparkScanView.setTorchAvailable(i.isTorchAvailable),this.sparkScanView.setZoomAvailable(i.isZoomAvailable),this.sparkScanView.cameraSwitchButtonTapped(i.isTorchAvailable,i.cameraPosition),await n.setMode(r),r.addListener(this),r.setDelegate(this),await this.overlayManager.prepareScanning(r,this._dataCaptureView,this.stateManager.scanningBehavior),this.analyticsManager.startSession({cameraPosition:this.camera.position,hapticEnabled:this.sparkScanViewSettings.hapticEnabled,scanningMode:this.stateManager.scanningMode,soundEnabled:this.sparkScanViewSettings.soundEnabled,torchState:this.camera.getDesiredTorchState()}),await this.applyPreferences(),await this.switchToIdleState()}async stopScanning(e){if(this._stopScanningPromise)return this._stopScanningPromise;if(this.stateManager.state!==`Initial`){this._preparationPromise=null,this._stopScanningPromise=this._internalStopScanning(e);try{await this._stopScanningPromise}finally{this._stopScanningPromise=null}}}async _internalStopScanning(e){var t;this.timeoutManager.stopCurrentTimeout();let n=this.context$,r=this.sparkScan$;await r.setEnabled(!1),r.removeListener(this),r.setDelegate(void 0),await n.removeMode(r),await this.cameraManager.stopScanning(),(t=this._dataCaptureView)==null||t.detachFromElement(),this.analyticsManager.setSessionStopReason(e.sessionStopReason),this.setState(`Initial`)}async startScanning(){await this.switchToActiveState()}async pauseScanning(){await this.switchToInactiveState({sessionStopReason:`user`})}async onTriggerButtonPointerDown(){this.stateManager.triggerButtonPressed=!0}async onTriggerButtonTap(){switch(this.stateManager.state){case`Initial`:this.stateManager.triggerButtonPressed=!1;return;case`idle`:case`inactive`:case`error`:await this.switchToActiveState({barcodeFeedback:this.tapBarcodeFeedback});return;case`active`:if(this.stateManager.inSmartScanSelection){this.timeoutManager.restartCurrentTimeout(),await this.sparkScan$.selectItemWithSmartScanSelection();return}await(this.stateManager.continuousModeEnabled?this.switchToInactiveState({sessionStopReason:`user`,barcodeFeedback:this.silentBarcodeFeedback}):this.switchToActiveState({barcodeFeedback:this.tapBarcodeFeedback}))}}async onTriggerButtonLongPressStart(){this.stateManager.triggerButtonPressed=!0,this.sparkScanViewSettings.holdToScanEnabled&&!this.isSelectionModeOn()&&(this.scanningBehaviorCache=this.stateManager.scanningBehavior,this.stateManager.scanningBehavior=`continuous`,this.stateManager.holdingToScan=!0,await this.overlayManager.setShouldRemoveLocationsAfterScan(!0),await this.switchToActiveState({barcodeFeedback:this.tapBarcodeFeedback}))}isSelectionModeOn(){return this.sparkScan$.settings.selectionMode===`on`}async onTriggerButtonLongPressEnd(){this.stateManager.holdingToScan&&this.stateManager.state!==`error`?(await this.cancelInProgressLongPress(),await this.switchToInactiveState({sessionStopReason:`user`,barcodeFeedback:this.silentErrorBarcodeFeedback})):this.stateManager.triggerButtonPressed=!1}async cancelInProgressLongPress(){this.stateManager.scanningBehavior=this.scanningBehaviorCache??`single`,this.stateManager.holdingToScan=!1,await this.overlayManager.setShouldRemoveLocationsAfterScan(this.stateManager.continuousModeEnabled)}async onClickOutside(){this.stateManager.idleState||await this.switchToIdleState({emitTapFeedback:!0})}async onVisibilityChange(){await this.switchToIdleState()}async onTargetModeButtonTap(e,r=this.feedbackManager.tapFeedback,i=!0){r.emit(),e&&this.stateManager.holdingToScan&&await this.cancelInProgressLongPress();let a=String(e),o={true:e&&this.stateManager.scanningMode instanceof t,false:!e&&this.stateManager.scanningMode instanceof n}[a];if(!this._sparkScan&&o&&(this.stateManager.scanningMode=this.stateManager.scanningMode.changeMode()),this.enableTargetModeLocationSelection(e),this._sparkScan&&(this._sparkScan.settings.selectionMode!==`auto`&&(this._sparkScan.settings.selectionMode=e?`on`:`off`),await this._sparkScan.applySettings(this._sparkScan.settings)),await this.overlayManager.setShouldDrawViewfinder(e),this.timeoutManager.restartCurrentTimeout(),this.sparkScanView.targetModeButtonTapped(e,i),o){var s,c;(s=this.listener)==null||(c=s.didChangeScanningMode)==null||c.call(s,this.stateManager.scanningMode),this.analyticsManager.setScanningMode(this.stateManager.scanningMode)}this.updateSizeControlVisibility()}async onScanningBehaviorButtonTap(e,t=this.feedbackManager.tapFeedback,n=!0){t.emit(),this.stateManager.scanningMode=this.stateManager.scanningMode.copyWith(e?`continuous`:`single`),await this.overlayManager.setShouldRemoveLocationsAfterScan(e),this.timeoutManager.restartCurrentTimeout(),this.sparkScanView.scanningBehaviorButtonTapped(e,n),this.analyticsManager.setScanningMode(this.stateManager.scanningMode)}async onBarcodeFindButtonTap(){var e,t;await this.switchToIdleState({sessionStopReason:`user`,emitTapFeedback:!0}),(e=this.listener)==null||(t=e.didTapBarcodeFindButton)==null||t.call(e,this.sparkScanView),this.timeoutManager.restartCurrentTimeout()}async onLabelCaptureButtonTap(){var e,t;await this.switchToIdleState({sessionStopReason:`user`,emitTapFeedback:!0}),(e=this.listener)==null||(t=e.didTapLabelCaptureButton)==null||t.call(e,this.sparkScanView),this.timeoutManager.restartCurrentTimeout()}async onCameraSwitchButtonTap(){if(this.feedbackManager.emitTapFeedback(),this.timeoutManager.restartCurrentTimeout(),!this.camera||this.stateManager.state===`error`)return;let e=await this.cameraManager.onCameraSwitchButtonTap();e&&(this.sparkScanView.cameraSwitchButtonTapped(e.isTorchAvailable,e.cameraPosition),this.analyticsManager.setCameraPosition(e.cameraPosition))}async onTorchButtonTap(e,t=this.feedbackManager.tapFeedback,n=!0){t.emit(),this.stateManager.torchState=e?b.On:b.Off,await this.cameraManager.onTorchButtonTap(this.stateManager.torchState),this.timeoutManager.restartCurrentTimeout(),this.sparkScanView.torchButtonTapped(e,n),this.analyticsManager.setTorchState(this.stateManager.torchState)}async onTriggerButtonCollapseTimeout(){this.stateManager.state!==`idle`&&this._preparationPromise&&await this.switchToIdleState({sessionStopReason:`timeout`})}async onInactiveStateTimeout(){this.stateManager.state!==`inactive`&&!this.stateManager.holdingToScan&&this._preparationPromise&&await this.switchToInactiveState({sessionStopReason:`timeout`})}async onResumeCapturingTimeout(){this.stateManager.state!==`active`&&this._preparationPromise&&await this.switchToActiveState()}async onMiniPreviewCloseButtonTap(){await this.switchToIdleState({sessionStopReason:`user`,emitTapFeedback:!0})}onMiniPreviewResizeButtonTap(){(this.stateManager.state===`active`||this.stateManager.state===`inactive`)&&(this.feedbackManager.emitTapFeedback(),this.timeoutManager.restartCurrentTimeout())}async onMiniPreviewZoomButtonTap(e){this.feedbackManager.emitTapFeedback(),this.stateManager.zoomFactor=e,await this.cameraManager.onMiniPreviewZoomButtonTap(e),this.timeoutManager.restartCurrentTimeout()}async onMiniPreviewDrag(e,t){switch(this.stateManager.state===`active`&&await this.sparkScan$.setEnabled(!1),t){case`landscape-primary`:case`landscape-secondary`:this.stateManager.landscapeOrientationMiniPreviewTranslateX=e.x,this.stateManager.landscapeOrientationMiniPreviewTranslateY=e.y;break;case`portrait-primary`:case`portrait-secondary`:this.stateManager.portraitOrientationMiniPreviewTranslateX=e.x,this.stateManager.portraitOrientationMiniPreviewTranslateY=e.y;break}this.timeoutManager.restartCurrentTimeout()}onMiniPreviewPointerMove(){this.timeoutManager.restartCurrentTimeout()}async onMiniPreviewPointerUp(){this.stateManager.inSmartScanSelection||await this.switchToActiveState()}async onMiniPreviewDragEnd(){this.stateManager.state===`active`&&await this.sparkScan$.setEnabled(!0)}async onMiniPreviewVisibilityChange(e){e&&this.sparkScanView.repositionMiniPreviewIfOutOfBounds(),this.stateManager.inSmartScanSelection&&!e&&await this.onSwitchedAwayFromSmartScanSelection()}onTriggerButtonDrag(e,t){switch(t){case`landscape-primary`:case`landscape-secondary`:this.stateManager.landscapeOrientationTriggerButtonTranslateX=e.x,this.stateManager.landscapeOrientationTriggerButtonTranslateY=e.y;break;case`portrait-primary`:case`portrait-secondary`:this.stateManager.portraitOrientationTriggerButtonTranslateX=e.x,this.stateManager.portraitOrientationTriggerButtonTranslateY=e.y;break}}async onOrientationChange(){if(this.stateManager.state===`active`&&this.stateManager.holdingToScan){this.timeoutManager.restartCurrentTimeout();return}this.stateManager.state===`error`&&await this.switchToInactiveState({sessionStopReason:`user`})}async didScan(e,t){if(!t.newlyRecognizedBarcode)return;let n=this.sparkScanView.feedbackDelegate.getFeedbackForBarcode(t.newlyRecognizedBarcode);if(n){if(n instanceof i){await this.switchToErrorState({barcodeFeedback:n}),this.timeoutManager.restartCurrentTimeout();return}if(n instanceof o){if(this.stateManager.continuousModeEnabled){await this.switchToActiveState({barcodeFeedback:n}),this.timeoutManager.restartCurrentTimeout();return}await this.switchToInactiveState({barcodeFeedback:n,emitSuccessFeedback:!0,sessionStopReason:`user`}),this.timeoutManager.restartCurrentTimeout()}}}setListener(e){this.listener=e}async onSwitchedToSmartScanSelection(){if(this.overlayManager.isReady){this.stateManager.inSmartScanSelection=!0,this.stateManager.previewSizeControlVisibleBeforeSmartScanSelection=this.sparkScanView.previewSizeControlVisible,await this.overlayManager.onSwitchedToSmartScanSelection(this._dataCaptureView);let e=this.sparkScan$.settings.selectionMode,t=e===`on`;this.stateManager.selectionModeOn=t,(e===`auto`||!this.stateManager.targetModeEnabled&&!t)&&(this.stateManager.miniPreviewSizeBeforeSmartScanSelection=this.sparkScanView.miniPreviewSize,this.sparkScanView.miniPreviewSize=`expanded`),this.updateSizeControlVisibility()}}async onSwitchedAwayFromSmartScanSelection(){this.overlayManager.isReady&&this.stateManager.inSmartScanSelection&&(this.stateManager.inSmartScanSelection=!1,this.stateManager.selectionModeOn=!1,await this.overlayManager.onSwitchedAwayFromSmartScanSelection(this._dataCaptureView),this.stateManager.miniPreviewSizeBeforeSmartScanSelection!=null&&(this.sparkScanView.miniPreviewSize=this.stateManager.miniPreviewSizeBeforeSmartScanSelection,this.stateManager.miniPreviewSizeBeforeSmartScanSelection=void 0),this.updateSizeControlVisibility())}get tapBarcodeFeedback(){return new o(m.fromRGBA(0,0,0,0),this.defaultSuccessBrush,this.feedbackManager.tapFeedback)}get silentBarcodeFeedback(){return new o(m.fromRGBA(0,0,0,0),this.defaultSuccessBrush,this.feedbackManager.noFeedback)}get silentErrorBarcodeFeedback(){return new i(``,0,m.fromRGBA(0,0,0,0),this.defaultErrorBrush,this.feedbackManager.noFeedback)}async switchToIdleState(e={}){await this.sparkScan$.setEnabled(!1),await this.cameraManager.onSwitchToIdleState(),e.emitTapFeedback===!0&&this.feedbackManager.emitTapFeedback(),await this.overlayManager.onSwitchToIdleState(),this.setState(`idle`),this.timeoutManager.onSwitchToIdleState(),this.stateManager.triggerButtonPressed=!1,this.sparkScanView.switchToIdleState(),e.sessionStopReason!=null&&this.analyticsManager.setSessionStopReason(e.sessionStopReason)}async switchToActiveState(e={}){var t;let n=this.stateManager.state;await this.cameraManager.onSwitchToActiveState(this.stateManager.torchState),await this.overlayManager.onSwitchToActiveState(n,this.stateManager.continuousModeEnabled,e.barcodeFeedback),this.feedbackManager.emitBarcodeFeedback(e.barcodeFeedback),this.timeoutManager.onSwitchToActiveState(this.stateManager.holdingToScan),await this.sparkScanView.switchToActiveState(this.sparkScanViewSettings.visualFeedbackEnabled&&e.barcodeFeedback instanceof o,this.stateManager.scanningBehavior,(t=e.barcodeFeedback)==null?void 0:t.visualFeedbackColor,this.stateManager.zoomedIn&&n!==`active`),await this.sparkScan$.setEnabled(!0),this.setState(`active`)}async switchToInactiveState(e){var t;this.stateManager.inSmartScanSelection?await this.sparkScan$.setEnabled(!1):this.stateManager.shouldEnableSuppression?await this.sparkScan$.setResultSuppressionEnabled(!0):await this.sparkScan$.setEnabled(!1),this.stateManager.triggerButtonPressed=!1,this.stateManager.scanningMode.previewBehavior===`persistent`&&e.barcodeFeedback instanceof o&&await this.overlayManager.setShouldRemoveLocationsAfterScan(!0),await this.cameraManager.onSwitchToInactiveState(this.stateManager.scanningMode.previewBehavior),e.emitSuccessFeedback??=!0,this.setState(`inactive`),e.barcodeFeedback&&await this.overlayManager.setBrushForFeedback(e.barcodeFeedback),this.feedbackManager.emitBarcodeFeedback(e.barcodeFeedback),await this.overlayManager.overlayReadyForDraw(),this.timeoutManager.onSwitchToInactiveState(),await this.sparkScanView.switchToInactiveState(e.barcodeFeedback instanceof o&&e.emitSuccessFeedback,this.stateManager.scanningBehavior,this.stateManager.previewBehavior,(t=e.barcodeFeedback)==null?void 0:t.visualFeedbackColor),this.analyticsManager.setSessionStopReason(e.sessionStopReason)}async switchToErrorState(e){let t=e.barcodeFeedback.resumeCapturingDelay>0;t&&(await this.sparkScan$.setEnabled(!1),await this.cameraManager.onSwitchToErrorState(),this.setState(`error`),this.stateManager.scanningBehavior=`single`),this.timeoutManager.onSwitchToErrorState(t,e.barcodeFeedback.resumeCapturingDelay),await this.overlayManager.onSwitchToErrorState(e.barcodeFeedback),await this.sparkScan$.workerCommand(`sparkScanEmitErrorFeedback`,{shouldRemoveBrush:!t}),this.feedbackManager.emitBarcodeFeedback(e.barcodeFeedback),await this.sparkScanView.switchToErrorState(e.barcodeFeedback,this.sparkScanViewSettings.visualFeedbackEnabled)}applySelectionModeToScanningMode(e){if(e==null)return;if(e===`auto`){this.stateManager.scanningMode instanceof n&&(this.stateManager.scanningMode=this.stateManager.scanningMode.changeMode());return}let t=e===`on`;this.stateManager.scanningMode instanceof n!==t&&(this.stateManager.scanningMode=this.stateManager.scanningMode.changeMode())}enableTargetModeLocationSelection(t){let n=new v(t?e.SparkScanSettings.targetModeLocationSelection.radius:e.SparkScanSettings.locationSelection.radius,t?e.SparkScanSettings.targetModeLocationSelection.unit:e.SparkScanSettings.locationSelection.unit);this.sparkScan$.settings.locationSelection=new y(n),this.overlayManager.setRadius(n)}async applyPreferences(){await this.onTargetModeButtonTap(this.stateManager.targetModeEnabled,this.feedbackManager.noFeedback,!1),await this.onScanningBehaviorButtonTap(this.stateManager.continuousModeEnabled,this.feedbackManager.noFeedback,!1),await this.onTorchButtonTap(this.stateManager.torchEnabled,this.feedbackManager.noFeedback,!1),this.sparkScanView.repositionElementsIfOutOfBounds()}setState(e){if(e!==this.stateManager.state){var t,n;this.stateManager.state=e,(t=this.listener)==null||(n=t.didChangeViewState)==null||n.call(t,e)}}updateSizeControlVisibility(){if(!this.stateManager.inSmartScanSelection&&this.stateManager.previewSizeControlVisibleBeforeSmartScanSelection!==void 0){this.sparkScanView.previewSizeControlVisible=this.stateManager.previewSizeControlVisibleBeforeSmartScanSelection,this.stateManager.previewSizeControlVisibleBeforeSmartScanSelection=void 0;return}let e=this.stateManager.inSmartScanSelection&&!this.stateManager.targetModeEnabled&&!this.stateManager.selectionModeOn,t=this.sparkScanView.previewSizeControlVisible;this.sparkScanView.previewSizeControlVisible=t&&!e}};S([C],w.prototype,`switchToActiveState`,null),S([C],w.prototype,`switchToInactiveState`,null),S([C],w.prototype,`switchToErrorState`,null);export{w as t};
@@ -24,6 +24,7 @@ declare class SparkScanViewTriggerButton extends ScanditHTMLElement$1 {
24
24
  set visible(visible: boolean);
25
25
  set useViewportBounds(value: boolean);
26
26
  static create(): SparkScanViewTriggerButton;
27
+ static createDefaultImage(): SVGElement;
27
28
  connectedCallback(): void;
28
29
  disconnectedCallback(): void;
29
30
  repositionIfOutOfBounds(): void;
@@ -67,12 +67,12 @@ declare class BarcodeArView extends ScanditHTMLElement$1 {
67
67
  private disconnectedCallback;
68
68
  private isPopoverAnnotation;
69
69
  private isAnnotation;
70
- private areMultiplePopoverAllowed;
71
70
  private onLayoutPointerDown;
72
71
  private handleHighlightClick;
73
72
  private handlePopoverHighlightClick;
74
73
  private handleAnnotationClick;
75
74
  private handleClickOutside;
75
+ private exclusiveVisiblePopovers;
76
76
  private onInfoAnnotationTap;
77
77
  private showBarcodeArPopover;
78
78
  private hideBarcodeArPopover;
@@ -1 +1 @@
1
- import{isDataCaptureView as e}from"../private/isDataCaptureView.js";import{BarcodeAr as t}from"./BarcodeAr.js";import{BarcodeArPresenter as n}from"./BarcodeArPresenter.js";import{BarcodeArViewSettings as r}from"./BarcodeArViewSettings.js";import{hashedId as i}from"./hashedId.js";import{CameraSwitchButton as a}from"./ui/molecules/private/CameraSwitchButton.js";import"./ui/organisms/BarcodeArAnnotation.js";import"./ui/organisms/BarcodeArInfoAnnotation.js";import{BarcodeArPopoverAnnotation as o}from"./ui/organisms/BarcodeArPopoverAnnotation.js";import{CheckLayout as s}from"./ui/organisms/private/CheckLayout.js";import{BarcodeArCircleHighlight as c}from"./ui/organisms/BarcodeArCircleHighlight.js";import{BarcodeArRectangleHighlight as l}from"./ui/organisms/BarcodeArRectangleHighlight.js";import{BarcodeArResponsiveAnnotation as u}from"./ui/organisms/BarcodeArResponsiveAnnotation.js";import{Anchor as d,DataCaptureView as f,Direction as p,Point as m,Size as h,ZoomSwitchControl as g}from"@scandit/web-datacapture-core";import{clamp as _}from"@scandit/web-datacapture-core/build/js/private/utils/clamp.js";import{Timeout as v}from"@scandit/web-datacapture-core/build/js/private/utils/timeout.js";import{ScanditHTMLElement as y}from"@scandit/web-datacapture-core/build/js/private/utils/ScanditHTMLElement.js";import{defineCustomElements as b}from"@scandit/web-datacapture-core/build/js/private/utils/defineCustomElements.js";import{TorchSwitchIconButton as x}from"@scandit/web-datacapture-core/build/js/private/ui/molecules/TorchSwitchIconButton.js";import{Backdrop as S}from"@scandit/web-datacapture-core/build/js/private/ui/atoms/Backdrop.js";import{css as C}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";import{calculateArea as w,calculateHeight as T,calculateWidth as E}from"@scandit/web-datacapture-core/build/js/private/utils/quadrilateralUtils.js";const D={async highlightForBarcode(e,t){t(l.create(e))}};var O=class l extends y{constructor(...e){super(...e),this.torchSwitchIconButton=null,this.cameraSwitchButton=null,this.zoomSwitchControl=null,this._shouldShowTorchControl=!1,this._isTorchAvailable=!1,this.onTorchButtonClickHandler=this.onTorchButtonClick.bind(this),this.onCameraSwitchButtonHandler=this.onCameraSwitchButtonClick.bind(this),this.onLayoutPointerDownHandler=this.onLayoutPointerDown.bind(this),this.onInfoAnnotationTapHandler=this.onInfoAnnotationTap.bind(this),this.pendingDeletionTimeout=null}set shouldShowZoomControl(e){var t;let n=(t=this.zoomSwitchControl)==null?void 0:t.zoomSwitchPill;n&&(n.hidden=!e)}get shouldShowZoomControl(){var e;let t=(e=this.zoomSwitchControl)==null?void 0:e.zoomSwitchPill;return t?!t.hidden:!1}set shouldShowCameraSwitchControl(e){this.cameraSwitchButton&&(this.cameraSwitchButton.hidden=!e)}get shouldShowCameraSwitchControl(){return this.cameraSwitchButton!==null&&!this.cameraSwitchButton.hidden}set shouldShowTorchControl(e){this.torchSwitchIconButton!==null&&(this._shouldShowTorchControl=e,this.torchSwitchIconButton.hidden=!(e&&this._isTorchAvailable))}get shouldShowTorchControl(){return this._shouldShowTorchControl}set torchControlPosition(e){var t;(t=this.torchSwitchIconButton)==null||t.setAttribute(`slot`,`controls-${e===d.Center?d.TopLeft:e}`)}get torchControlPosition(){var e;let t=((e=this.torchSwitchIconButton)==null?void 0:e.getAttribute(`slot`))??``;return t===``?d.TopLeft:t.replace(`controls-`,``)}set zoomControlPosition(e){var t;let n=(t=this.zoomSwitchControl)==null?void 0:t.zoomSwitchPill;n==null||n.setAttribute(`slot`,`controls-${e===d.Center?d.BottomRight:e}`)}get zoomControlPosition(){var e;let t=(e=this.zoomSwitchControl)==null?void 0:e.zoomSwitchPill,n=(t==null?void 0:t.getAttribute(`slot`))??``;return n===``?d.BottomRight:n.replace(`controls-`,``)}set cameraSwitchControlPosition(e){var t;(t=this.cameraSwitchButton)==null||t.setAttribute(`slot`,`controls-${e===d.Center?d.TopRight:e}`)}get cameraSwitchControlPosition(){var e;let t=((e=this.cameraSwitchButton)==null?void 0:e.getAttribute(`slot`))??``;return t===``?d.TopRight:t.replace(`controls-`,``)}get logoStyle(){return this.dataCaptureView.logoStyle}set logoStyle(e){this.dataCaptureView.logoStyle=e}get logoAnchor(){return this.dataCaptureView.logoAnchor}set logoAnchor(e){this.dataCaptureView.logoAnchor=e}get logoOffset(){return this.dataCaptureView.logoOffset}set logoOffset(e){this.dataCaptureView.logoOffset=e}static async createWithSettings(r,i,a,o,c){l.register();let u=document.createElement(l.tag);return u.barcodeArViewSettings=o,u.layout=s.create(),u.append(u.layout),e(r)?(u.dataCaptureView=r,u.dataCaptureView.containerElement.prepend(u),await r.setContext(i)):(u.dataCaptureView=await f.forContext(i),u.dataCaptureView.connectToElement(r),u.dataCaptureView.containerElement.prepend(u)),u.presenter=new n(u,i,a,o,c??t.createRecommendedCameraSettings()),await u.presenter.prepare(),await u.installZoomControl(),u}static async create(e,t,n){return l.createWithSettings(e,t,n,new r)}static register(){b({[s.tag]:s,[a.tag]:a,[x.tag]:x,[l.tag]:l,[S.tag]:S,[u.tag]:u})}static createStyleElement(){return C`[data-could-be-deleted=true]{display:none!important}[data-on-foreground=true]{z-index:3}${l.tag}{inset:0;position:absolute;z-index:1}`}getHighlightForBarcode(e){return this.queryHighlightByDataId(i(e))}getAnnotationForBarcode(e){return this.queryAnnotationByDataId(i(e))}async start(){return this.presenter.startSearching()}async stop(){return this.presenter.stopSearching()}async pause(){return this.presenter.pauseSearching()}reset(){this.deletePendingViews(),this.deleteAllViews()}getNotificationPresenter(){return this.dataCaptureView.getNotificationPresenter()}setTorchAvailable(e){this._isTorchAvailable=e,this.torchSwitchIconButton!==null&&(this.torchSwitchIconButton.hidden=!(this._shouldShowTorchControl&&this._isTorchAvailable))}toggleTorchIcon(e){this.torchSwitchIconButton!==null&&(this.torchSwitchIconButton.state=e)}onTorchButtonClick(){this.presenter.onTorchButtonClicked()}onCameraSwitchButtonClick(){this.presenter.onCameraSwitchButtonClicked()}async installZoomControl(){this.zoomSwitchControl=new g,await this.zoomSwitchControl.install(this.dataCaptureView);let e=this.zoomSwitchControl.zoomSwitchPill;e&&(e.setAttribute(`slot`,`controls-${d.BottomRight}`),e.hidden=!0,this.layout.append(e))}connectedCallback(){this.torchSwitchIconButton=x.create(),this.torchSwitchIconButton.shadow=!0,this.torchSwitchIconButton.size=36,this.torchSwitchIconButton.slot=`controls-${this.torchControlPosition}`,this.torchSwitchIconButton.hidden=!0,this.torchSwitchIconButton.addEventListener(`pointerdown`,this.onTorchButtonClickHandler),this.cameraSwitchButton=a.create(),this.cameraSwitchButton.slot=`controls-${this.cameraSwitchControlPosition}`,this.cameraSwitchButton.hidden=!0,this.cameraSwitchButton.addEventListener(`pointerdown`,this.onCameraSwitchButtonHandler),this.layout.append(this.torchSwitchIconButton,this.cameraSwitchButton),this.layout.addEventListener(`pointerdown`,this.onLayoutPointerDownHandler),this.layout.addEventListener(`BarcodeArInfoAnnotationEventTap`,this.onInfoAnnotationTapHandler),this.backdrop=S.create(),this.layout.append(this.backdrop),this.pendingDeletionTimeout=new v(1e3,()=>{this.deletePendingViews()}),this.prepend(l.createStyleElement())}disconnectedCallback(){var e,t,n;this.deleteAllViews(),this.presenter.release(),(e=this.torchSwitchIconButton)==null||e.removeEventListener(`pointerdown`,this.onTorchButtonClickHandler),(t=this.cameraSwitchButton)==null||t.removeEventListener(`pointerdown`,this.onCameraSwitchButtonHandler),(n=this.zoomSwitchControl)==null||n.remove(),this.layout.removeEventListener(`pointerdown`,this.onLayoutPointerDownHandler),this.layout.removeEventListener(`BarcodeArInfoAnnotationEventTap`,this.onInfoAnnotationTapHandler)}isPopoverAnnotation(e){return e instanceof o}isAnnotation(e){var t;return((t=e.dataset)==null?void 0:t.identifier)!=null&&e.dataset.identifier.endsWith(`-annotation`)}areMultiplePopoverAllowed(){for(let e of this.layout.querySelectorAll(`[data-identifier$='-annotation']`))if(e&&this.isPopoverAnnotation(e)&&e.annotationTrigger===`highlightTapAndBarcodeScan`)return!0;return!1}async onLayoutPointerDown(e){let t=e.target,n=t==null?void 0:t.closest(`[data-identifier$='-highlight']`),r=t==null?void 0:t.closest(o.tag);if((n==null?void 0:n.dataset.id)!=null){await this.handleHighlightClick(n);return}if((r==null?void 0:r.dataset.id)!=null){await this.handleAnnotationClick(r);return}await this.handleClickOutside()}async handleHighlightClick(e){var t;this.presenter.emitTappedFeedback(),(t=this.listener)==null||t.didTapHighlightForBarcode(this.presenter.barcodeAr,e.barcode,e);let n=this.queryAnnotationByDataIdentifier(e.dataset.identifier.replace(`-highlight`,``));!n||n.annotationTrigger===`barcodeScan`||(this.isPopoverAnnotation(n)?await this.handlePopoverHighlightClick(n,e):n.hidden=!n.hidden)}async handlePopoverHighlightClick(e,t){if(!this.areMultiplePopoverAllowed()){var n;let e=this.layout.querySelector(`${o.tag}[data-on-foreground="true"]`),t=e==null||(n=e.dataset.identifier)==null?void 0:n.replace(`-annotation`,`-highlight`),r=this.layout.querySelector(`[data-identifier="${t}"]`);e!=null&&r!=null&&await this.hideBarcodeArPopover(e,r,!1)}await this.toggleBarcodeArPopover(e,t)}async handleAnnotationClick(e){var t;let n=(t=e.dataset.identifier)==null?void 0:t.replace(`-annotation`,`-highlight`),r=this.layout.querySelector(`[data-identifier="${n}"]`);r&&await this.toggleBarcodeArPopover(e,r)}async handleClickOutside(){var e;if(this.areMultiplePopoverAllowed())return;let t=this.layout.querySelector(`${o.tag}[data-on-foreground="true"]`);if(!t)return;let n=(e=t.dataset.identifier)==null?void 0:e.replace(`-annotation`,`-highlight`),r=this.layout.querySelector(`[data-identifier="${n}"]`);r&&await this.hideBarcodeArPopover(t,r)}onInfoAnnotationTap(){this.presenter.emitTappedFeedback()}async showBarcodeArPopover(e,t){e.dataset.onForeground=`true`,e.hidden=!1,t.dataset.onForeground=`true`,this.backdrop.open=!0}async hideBarcodeArPopover(e,t,n=!0){e.dataset.onForeground=`false`,e.hidden=!0,t&&(t.dataset.onForeground=`false`),n&&this.hideBackdropIfNoPopovers()}hideBackdropIfNoPopovers(){[...this.layout.querySelectorAll(`${o.tag}`)].every(e=>e.hidden)&&(this.backdrop.open=!1)}async toggleBarcodeArPopover(e,t){e.hidden?await this.showBarcodeArPopover(e,t):await this.hideBarcodeArPopover(e,t)}deleteAllViews(){for(let e of this.layout.querySelectorAll(`[data-identifier]`))e.remove()}deletePendingViews(){for(let e of this.layout.querySelectorAll(`[data-could-be-deleted='true']`))e.remove();this.hideBackdropIfNoPopovers()}identifierForHighlight(e){return`${e}-highlight`}identifierForAnnotation(e){return`${e}-annotation`}async onHighlightsOrAnnotationForTrackedBarcode(e){var t,n;await((t=this.highlightProvider??D)==null?void 0:t.highlightForBarcode(e.barcode,async t=>this.onHighlight(e,t))),await((n=this.annotationProvider)==null?void 0:n.annotationForBarcode(e.barcode,async t=>this.onAnnotation(e,t)))}async onAnnotation(e,t){let n=t,r=i(e.barcode);this.updateExistingAnnotation(r)||(await this.setupNewAnnotation(n,r,e),this.updateAnnotationPosition(e,n))}updateExistingAnnotation(e){let t=this.queryAnnotationByDataId(e);return t?(t.dataset.couldBeDeleted=`false`,!0):!1}async setupNewAnnotation(e,t,n){if(e.dataset.id=t,e.dataset.identifier=this.identifierForAnnotation(n.identifier),e.hidden=!0,this.layout.append(e),this.isPopoverAnnotation(e)){if(e.direction=p.Vertical,e.anchor??=`bottom-center`,this.areMultiplePopoverAllowed()||e.annotationTrigger===`highlightTapAndBarcodeScan`){let n=this.queryHighlightByDataId(t);n&&await this.showBarcodeArPopover(e,n)}}else e.hidden=e.annotationTrigger===`highlightTap`}getAreaRatioForQuad(e){let t=e.anchorPositions,n=w(t),r=this.dataCaptureView.width*this.dataCaptureView.height;return n<=0||r<=0?NaN:_(n/r,0,1)}async onHighlight(e,t){let n=i(e.barcode),r=this.queryHighlightByDataId(n);r?r.dataset.couldBeDeleted=`false`:(t.dataset.id=n,t.dataset.identifier=this.identifierForHighlight(e.identifier),this.updateHighlightPosition(e,t),this.layout.append(t))}queryHighlightByDataIdentifier(e){return this.layout.querySelector(`[data-identifier$="${e}-highlight"]`)}queryAnnotationByDataIdentifier(e){return this.layout.querySelector(`[data-identifier$="${e}-annotation"]`)}queryHighlightByDataId(e){return this.layout.querySelector(`[data-identifier$="-highlight"][data-id="${e}"]`)}queryAnnotationByDataId(e){return this.layout.querySelector(`[data-identifier$="-annotation"][data-id="${e}"]`)}updateRemovedTrackedBarcodes(e){var t;let n=this.querySelectorAll(`[data-identifier]`);if(Object.keys(e.allTrackedBarcodes).length===0){var r;for(let e of n)e.dataset.couldBeDeleted=`true`;if(!((r=this.pendingDeletionTimeout)!=null&&r.running)){var i;(i=this.pendingDeletionTimeout)==null||i.start()}return}let a=new Set(e.removedTrackedBarcodes);for(let e of n){var o;let t=(o=e.dataset.identifier)==null?void 0:o.replace(`-highlight`,``).replace(`-annotation`,``);t!=null&&a.has(t)&&(e.dataset.couldBeDeleted=`true`)}if(!((t=this.pendingDeletionTimeout)!=null&&t.running)){var s;(s=this.pendingDeletionTimeout)==null||s.start()}}render(e){for(let[t,n]of Object.entries(e.allTrackedBarcodes)){e.addedTrackedBarcodes[t]!=null&&this.onHighlightsOrAnnotationForTrackedBarcode(n);let r=i(n.barcode),a=this.queryAnnotationByDataId(r),o=this.queryHighlightByDataId(r);o&&(this.updateBrushSize(o,n),this.updateHighlightPosition(n,o)),a&&this.updateAnnotationPosition(n,a,o)}this.updateRemovedTrackedBarcodes(e)}updateHighlightPosition(e,t,n=`center`){if(t.hidden)return;let r=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(e.anchorPositions),i=this.normalizedViewPointFromFrameAnchorPositions(r,n);t.updatePosition(i,new m(-50,-50),this.calculateRotationAngle(r.topLeft,r.topRight))}updateBrushSize(e,t){if(e.width==null||e.height==null)return;let n=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(t.anchorPositions),r=Math.round(E(n)),i=Math.round(T(n));e.width!==r&&(e.width=r),e.height!==i&&(e.height=i)}getTransformOrigin(e){return{"top-center":new m(-50,0),"bottom-center":new m(-50,-100),"left-center":new m(0,-50),"right-center":new m(-100,-50)}[e]}calculateAnnotationPosition(e,t,n){let r=e.orderVerticesByPosition(),i=this.normalizedViewPointFromFrameAnchorPositions(e,`center`),a={"bottom-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`topCenter`);return new m(e.x,e.y-7)},"top-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`bottomCenter`);return new m(e.x,e.y+7)},"right-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`centerLeft`);return new m(e.x-7,e.y)},"left-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`centerRight`);return new m(e.x+7,e.y)}}[t]();return n?(n instanceof c,{"bottom-center":new m(i.x,i.y-7-n.clientHeight/2),"top-center":new m(i.x,i.y+7+n.clientHeight/2),"right-center":new m(i.x-7-n.clientWidth/2,i.y),"left-center":new m(i.x+7+n.clientWidth/2,i.y)}[t]??a):a}updateAnnotationPosition(e,t,n){var r;let i=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(e.anchorPositions);t.anchor||=`top-center`,(r=t.updateForAreaRatio)==null||r.call(t,this.getAreaRatioForQuad(e));let a=this.getTransformOrigin(t.anchor),o=this.calculateAnnotationPosition(i,t.anchor,n);t.updatePosition(o,a,this.calculateRotationAngle(i.topLeft,i.topRight))}normalizedViewPointFromFrameAnchorPositions(e,t=`center`){let n=this.presenter.currentCamera.getMirrorImageEnabled(),r=new h(this.dataCaptureView.width,this.dataCaptureView.height);if(n){let n=e[{centerLeft:`centerRight`,centerRight:`centerLeft`,center:`center`,topCenter:`topCenter`,bottomCenter:`bottomCenter`}[t]];return m.mirrorX(n,r)}return e[t]}calculateRotationAngle(e,t){let n=t.x-e.x,r=this.presenter.isCameraMirrored()?-(t.y-e.y):t.y-e.y;return Math.round(180/Math.PI*Math.atan2(r,n))}};O.tag=`scandit-barcode-ar-view`;export{O as BarcodeArView};
1
+ import{isDataCaptureView as e}from"../private/isDataCaptureView.js";import{BarcodeAr as t}from"./BarcodeAr.js";import{BarcodeArPresenter as n}from"./BarcodeArPresenter.js";import{BarcodeArViewSettings as r}from"./BarcodeArViewSettings.js";import{hashedId as i}from"./hashedId.js";import{CameraSwitchButton as a}from"./ui/molecules/private/CameraSwitchButton.js";import"./ui/organisms/BarcodeArAnnotation.js";import{showsOnBarcodeScan as o,togglesOnUserInteraction as s}from"./ui/organisms/private/annotationTriggerBehavior.js";import"./ui/organisms/BarcodeArInfoAnnotation.js";import{BarcodeArPopoverAnnotation as c,EXCLUSIVE_WHILE_VISIBLE_ATTRIBUTE as l}from"./ui/organisms/BarcodeArPopoverAnnotation.js";import{CheckLayout as u}from"./ui/organisms/private/CheckLayout.js";import{BarcodeArCircleHighlight as d}from"./ui/organisms/BarcodeArCircleHighlight.js";import{BarcodeArRectangleHighlight as f}from"./ui/organisms/BarcodeArRectangleHighlight.js";import{BarcodeArResponsiveAnnotation as p}from"./ui/organisms/BarcodeArResponsiveAnnotation.js";import{Anchor as m,DataCaptureView as h,Direction as g,Point as _,Size as v,ZoomSwitchControl as y}from"@scandit/web-datacapture-core";import{clamp as b}from"@scandit/web-datacapture-core/build/js/private/utils/clamp.js";import{Timeout as x}from"@scandit/web-datacapture-core/build/js/private/utils/timeout.js";import{ScanditHTMLElement as S}from"@scandit/web-datacapture-core/build/js/private/utils/ScanditHTMLElement.js";import{defineCustomElements as C}from"@scandit/web-datacapture-core/build/js/private/utils/defineCustomElements.js";import{TorchSwitchIconButton as w}from"@scandit/web-datacapture-core/build/js/private/ui/molecules/TorchSwitchIconButton.js";import{Backdrop as T}from"@scandit/web-datacapture-core/build/js/private/ui/atoms/Backdrop.js";import{css as E}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";import{calculateArea as D,calculateHeight as O,calculateWidth as k}from"@scandit/web-datacapture-core/build/js/private/utils/quadrilateralUtils.js";const A={async highlightForBarcode(e,t){t(f.create(e))}};var j=class f extends S{constructor(...e){super(...e),this.torchSwitchIconButton=null,this.cameraSwitchButton=null,this.zoomSwitchControl=null,this._shouldShowTorchControl=!1,this._isTorchAvailable=!1,this.onTorchButtonClickHandler=this.onTorchButtonClick.bind(this),this.onCameraSwitchButtonHandler=this.onCameraSwitchButtonClick.bind(this),this.onLayoutPointerDownHandler=this.onLayoutPointerDown.bind(this),this.onInfoAnnotationTapHandler=this.onInfoAnnotationTap.bind(this),this.pendingDeletionTimeout=null}set shouldShowZoomControl(e){var t;let n=(t=this.zoomSwitchControl)==null?void 0:t.zoomSwitchPill;n&&(n.hidden=!e)}get shouldShowZoomControl(){var e;let t=(e=this.zoomSwitchControl)==null?void 0:e.zoomSwitchPill;return t?!t.hidden:!1}set shouldShowCameraSwitchControl(e){this.cameraSwitchButton&&(this.cameraSwitchButton.hidden=!e)}get shouldShowCameraSwitchControl(){return this.cameraSwitchButton!==null&&!this.cameraSwitchButton.hidden}set shouldShowTorchControl(e){this.torchSwitchIconButton!==null&&(this._shouldShowTorchControl=e,this.torchSwitchIconButton.hidden=!(e&&this._isTorchAvailable))}get shouldShowTorchControl(){return this._shouldShowTorchControl}set torchControlPosition(e){var t;(t=this.torchSwitchIconButton)==null||t.setAttribute(`slot`,`controls-${e===m.Center?m.TopLeft:e}`)}get torchControlPosition(){var e;let t=((e=this.torchSwitchIconButton)==null?void 0:e.getAttribute(`slot`))??``;return t===``?m.TopLeft:t.replace(`controls-`,``)}set zoomControlPosition(e){var t;let n=(t=this.zoomSwitchControl)==null?void 0:t.zoomSwitchPill;n==null||n.setAttribute(`slot`,`controls-${e===m.Center?m.BottomRight:e}`)}get zoomControlPosition(){var e;let t=(e=this.zoomSwitchControl)==null?void 0:e.zoomSwitchPill,n=(t==null?void 0:t.getAttribute(`slot`))??``;return n===``?m.BottomRight:n.replace(`controls-`,``)}set cameraSwitchControlPosition(e){var t;(t=this.cameraSwitchButton)==null||t.setAttribute(`slot`,`controls-${e===m.Center?m.TopRight:e}`)}get cameraSwitchControlPosition(){var e;let t=((e=this.cameraSwitchButton)==null?void 0:e.getAttribute(`slot`))??``;return t===``?m.TopRight:t.replace(`controls-`,``)}get logoStyle(){return this.dataCaptureView.logoStyle}set logoStyle(e){this.dataCaptureView.logoStyle=e}get logoAnchor(){return this.dataCaptureView.logoAnchor}set logoAnchor(e){this.dataCaptureView.logoAnchor=e}get logoOffset(){return this.dataCaptureView.logoOffset}set logoOffset(e){this.dataCaptureView.logoOffset=e}static async createWithSettings(r,i,a,o,s){f.register();let c=document.createElement(f.tag);return c.barcodeArViewSettings=o,c.layout=u.create(),c.append(c.layout),e(r)?(c.dataCaptureView=r,c.dataCaptureView.containerElement.prepend(c),await r.setContext(i)):(c.dataCaptureView=await h.forContext(i),c.dataCaptureView.connectToElement(r),c.dataCaptureView.containerElement.prepend(c)),c.presenter=new n(c,i,a,o,s??t.createRecommendedCameraSettings()),await c.presenter.prepare(),await c.installZoomControl(),c}static async create(e,t,n){return f.createWithSettings(e,t,n,new r)}static register(){C({[u.tag]:u,[a.tag]:a,[w.tag]:w,[f.tag]:f,[T.tag]:T,[p.tag]:p})}static createStyleElement(){return E`[data-could-be-deleted=true]{display:none!important}[data-on-foreground=true]{z-index:3}${f.tag}{inset:0;position:absolute;z-index:1}`}getHighlightForBarcode(e){return this.queryHighlightByDataId(i(e))}getAnnotationForBarcode(e){return this.queryAnnotationByDataId(i(e))}async start(){return this.presenter.startSearching()}async stop(){return this.presenter.stopSearching()}async pause(){return this.presenter.pauseSearching()}reset(){this.deletePendingViews(),this.deleteAllViews()}getNotificationPresenter(){return this.dataCaptureView.getNotificationPresenter()}setTorchAvailable(e){this._isTorchAvailable=e,this.torchSwitchIconButton!==null&&(this.torchSwitchIconButton.hidden=!(this._shouldShowTorchControl&&this._isTorchAvailable))}toggleTorchIcon(e){this.torchSwitchIconButton!==null&&(this.torchSwitchIconButton.state=e)}onTorchButtonClick(){this.presenter.onTorchButtonClicked()}onCameraSwitchButtonClick(){this.presenter.onCameraSwitchButtonClicked()}async installZoomControl(){this.zoomSwitchControl=new y,await this.zoomSwitchControl.install(this.dataCaptureView);let e=this.zoomSwitchControl.zoomSwitchPill;e&&(e.setAttribute(`slot`,`controls-${m.BottomRight}`),e.hidden=!0,this.layout.append(e))}connectedCallback(){this.torchSwitchIconButton=w.create(),this.torchSwitchIconButton.shadow=!0,this.torchSwitchIconButton.size=36,this.torchSwitchIconButton.slot=`controls-${this.torchControlPosition}`,this.torchSwitchIconButton.hidden=!0,this.torchSwitchIconButton.addEventListener(`pointerdown`,this.onTorchButtonClickHandler),this.cameraSwitchButton=a.create(),this.cameraSwitchButton.slot=`controls-${this.cameraSwitchControlPosition}`,this.cameraSwitchButton.hidden=!0,this.cameraSwitchButton.addEventListener(`pointerdown`,this.onCameraSwitchButtonHandler),this.layout.append(this.torchSwitchIconButton,this.cameraSwitchButton),this.layout.addEventListener(`pointerdown`,this.onLayoutPointerDownHandler),this.layout.addEventListener(`BarcodeArInfoAnnotationEventTap`,this.onInfoAnnotationTapHandler),this.backdrop=T.create(),this.layout.append(this.backdrop),this.pendingDeletionTimeout=new x(1e3,()=>{this.deletePendingViews()}),this.prepend(f.createStyleElement())}disconnectedCallback(){var e,t,n;this.deleteAllViews(),this.presenter.release(),(e=this.torchSwitchIconButton)==null||e.removeEventListener(`pointerdown`,this.onTorchButtonClickHandler),(t=this.cameraSwitchButton)==null||t.removeEventListener(`pointerdown`,this.onCameraSwitchButtonHandler),(n=this.zoomSwitchControl)==null||n.remove(),this.layout.removeEventListener(`pointerdown`,this.onLayoutPointerDownHandler),this.layout.removeEventListener(`BarcodeArInfoAnnotationEventTap`,this.onInfoAnnotationTapHandler)}isPopoverAnnotation(e){return e instanceof c}isAnnotation(e){var t;return((t=e.dataset)==null?void 0:t.identifier)!=null&&e.dataset.identifier.endsWith(`-annotation`)}async onLayoutPointerDown(e){let t=e.target,n=t==null?void 0:t.closest(`[data-identifier$='-highlight']`),r=t==null?void 0:t.closest(c.tag);if((n==null?void 0:n.dataset.id)!=null){await this.handleHighlightClick(n);return}if((r==null?void 0:r.dataset.id)!=null){await this.handleAnnotationClick(r);return}await this.handleClickOutside()}async handleHighlightClick(e){var t;this.presenter.emitTappedFeedback(),(t=this.listener)==null||t.didTapHighlightForBarcode(this.presenter.barcodeAr,e.barcode,e);let n=this.queryAnnotationByDataIdentifier(e.dataset.identifier.replace(`-highlight`,``));!n||!s(n.annotationTrigger)||(this.isPopoverAnnotation(n)?await this.handlePopoverHighlightClick(n,e):n.hidden=!n.hidden)}async handlePopoverHighlightClick(e,t){for(let t of this.exclusiveVisiblePopovers()){var n;if(t===e)continue;let r=(n=t.dataset.identifier)==null?void 0:n.replace(`-annotation`,`-highlight`),i=this.layout.querySelector(`[data-identifier="${r}"]`);i!=null&&await this.hideBarcodeArPopover(t,i,!1)}await this.toggleBarcodeArPopover(e,t)}async handleAnnotationClick(e){var t;if(!s(e.annotationTrigger))return;let n=(t=e.dataset.identifier)==null?void 0:t.replace(`-annotation`,`-highlight`),r=this.layout.querySelector(`[data-identifier="${n}"]`);r&&await this.toggleBarcodeArPopover(e,r)}async handleClickOutside(){for(let t of this.exclusiveVisiblePopovers()){var e;let n=(e=t.dataset.identifier)==null?void 0:e.replace(`-annotation`,`-highlight`),r=this.layout.querySelector(`[data-identifier="${n}"]`);r!=null&&await this.hideBarcodeArPopover(t,r)}}exclusiveVisiblePopovers(){return[...this.layout.querySelectorAll(`${c.tag}[data-on-foreground="true"][${l}]`)]}onInfoAnnotationTap(){this.presenter.emitTappedFeedback()}async showBarcodeArPopover(e,t){e.dataset.onForeground=`true`,e.hidden=!1,t.dataset.onForeground=`true`,this.backdrop.open=!0}async hideBarcodeArPopover(e,t,n=!0){e.dataset.onForeground=`false`,e.hidden=!0,t&&(t.dataset.onForeground=`false`),n&&this.hideBackdropIfNoPopovers()}hideBackdropIfNoPopovers(){[...this.layout.querySelectorAll(`${c.tag}`)].every(e=>e.hidden)&&(this.backdrop.open=!1)}async toggleBarcodeArPopover(e,t){e.hidden?await this.showBarcodeArPopover(e,t):await this.hideBarcodeArPopover(e,t)}deleteAllViews(){for(let e of this.layout.querySelectorAll(`[data-identifier]`))e.remove();this.hideBackdropIfNoPopovers()}deletePendingViews(){for(let e of this.layout.querySelectorAll(`[data-could-be-deleted='true']`))e.remove();this.hideBackdropIfNoPopovers()}identifierForHighlight(e){return`${e}-highlight`}identifierForAnnotation(e){return`${e}-annotation`}async onHighlightsOrAnnotationForTrackedBarcode(e){var t,n;await((t=this.highlightProvider??A)==null?void 0:t.highlightForBarcode(e.barcode,async t=>this.onHighlight(e,t))),await((n=this.annotationProvider)==null?void 0:n.annotationForBarcode(e.barcode,async t=>this.onAnnotation(e,t)))}async onAnnotation(e,t){let n=t,r=i(e.barcode);this.updateExistingAnnotation(r)||(await this.setupNewAnnotation(n,r,e),this.updateAnnotationPosition(e,n))}updateExistingAnnotation(e){let t=this.queryAnnotationByDataId(e);return t?(t.dataset.couldBeDeleted=`false`,!0):!1}async setupNewAnnotation(e,t,n){if(e.dataset.id=t,e.dataset.identifier=this.identifierForAnnotation(n.identifier),e.hidden=!0,this.layout.append(e),this.isPopoverAnnotation(e)){if(e.direction=g.Vertical,e.anchor??=`bottom-center`,o(e.annotationTrigger)){let n=this.queryHighlightByDataId(t);n&&await this.showBarcodeArPopover(e,n)}}else e.hidden=!o(e.annotationTrigger)}getAreaRatioForQuad(e){let t=e.anchorPositions,n=D(t),r=this.dataCaptureView.width*this.dataCaptureView.height;return n<=0||r<=0?NaN:b(n/r,0,1)}async onHighlight(e,t){let n=i(e.barcode),r=this.queryHighlightByDataId(n);r?r.dataset.couldBeDeleted=`false`:(t.dataset.id=n,t.dataset.identifier=this.identifierForHighlight(e.identifier),this.updateHighlightPosition(e,t),this.layout.append(t))}queryHighlightByDataIdentifier(e){return this.layout.querySelector(`[data-identifier$="${e}-highlight"]`)}queryAnnotationByDataIdentifier(e){return this.layout.querySelector(`[data-identifier$="${e}-annotation"]`)}queryHighlightByDataId(e){return this.layout.querySelector(`[data-identifier$="-highlight"][data-id="${e}"]`)}queryAnnotationByDataId(e){return this.layout.querySelector(`[data-identifier$="-annotation"][data-id="${e}"]`)}updateRemovedTrackedBarcodes(e){var t;let n=this.querySelectorAll(`[data-identifier]`);if(Object.keys(e.allTrackedBarcodes).length===0){var r;for(let e of n)e.dataset.couldBeDeleted=`true`;if(!((r=this.pendingDeletionTimeout)!=null&&r.running)){var i;(i=this.pendingDeletionTimeout)==null||i.start()}return}let a=new Set(e.removedTrackedBarcodes);for(let e of n){var o;let t=(o=e.dataset.identifier)==null?void 0:o.replace(`-highlight`,``).replace(`-annotation`,``);t!=null&&a.has(t)&&(e.dataset.couldBeDeleted=`true`)}if(!((t=this.pendingDeletionTimeout)!=null&&t.running)){var s;(s=this.pendingDeletionTimeout)==null||s.start()}}render(e){for(let[t,n]of Object.entries(e.allTrackedBarcodes)){e.addedTrackedBarcodes[t]!=null&&this.onHighlightsOrAnnotationForTrackedBarcode(n);let r=i(n.barcode),a=this.queryAnnotationByDataId(r),o=this.queryHighlightByDataId(r);o&&(this.updateBrushSize(o,n),this.updateHighlightPosition(n,o)),a&&this.updateAnnotationPosition(n,a,o)}this.updateRemovedTrackedBarcodes(e)}updateHighlightPosition(e,t,n=`center`){if(t.hidden)return;let r=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(e.anchorPositions),i=this.normalizedViewPointFromFrameAnchorPositions(r,n);t.updatePosition(i,new _(-50,-50),this.calculateRotationAngle(r.topLeft,r.topRight))}updateBrushSize(e,t){if(e.width==null||e.height==null)return;let n=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(t.anchorPositions),r=Math.round(k(n)),i=Math.round(O(n));e.width!==r&&(e.width=r),e.height!==i&&(e.height=i)}getTransformOrigin(e){return{"top-center":new _(-50,0),"bottom-center":new _(-50,-100),"left-center":new _(0,-50),"right-center":new _(-100,-50)}[e]}calculateAnnotationPosition(e,t,n){let r=e.orderVerticesByPosition(),i=this.normalizedViewPointFromFrameAnchorPositions(e,`center`),a={"bottom-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`topCenter`);return new _(e.x,e.y-7)},"top-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`bottomCenter`);return new _(e.x,e.y+7)},"right-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`centerLeft`);return new _(e.x-7,e.y)},"left-center":()=>{let e=this.normalizedViewPointFromFrameAnchorPositions(r,`centerRight`);return new _(e.x+7,e.y)}}[t]();return n&&n instanceof d?{"bottom-center":new _(i.x,i.y-7-n.clientHeight/2),"top-center":new _(i.x,i.y+7+n.clientHeight/2),"right-center":new _(i.x-7-n.clientWidth/2,i.y),"left-center":new _(i.x+7+n.clientWidth/2,i.y)}[t]??a:a}updateAnnotationPosition(e,t,n){var r;let i=this.dataCaptureView.viewAnchorPositionsForFrameAnchorPositions(e.anchorPositions);t.anchor||=`bottom-center`,(r=t.updateForAreaRatio)==null||r.call(t,this.getAreaRatioForQuad(e));let a=this.getTransformOrigin(t.anchor),o=this.calculateAnnotationPosition(i,t.anchor,n);t.updatePosition(o,a,this.calculateRotationAngle(i.topLeft,i.topRight))}normalizedViewPointFromFrameAnchorPositions(e,t=`center`){let n=this.presenter.currentCamera.getMirrorImageEnabled(),r=new v(this.dataCaptureView.width,this.dataCaptureView.height);if(n){let n=e[{centerLeft:`centerRight`,centerRight:`centerLeft`,center:`center`,topCenter:`topCenter`,bottomCenter:`bottomCenter`}[t]];return _.mirrorX(n,r)}return e[t]}calculateRotationAngle(e,t){let n=t.x-e.x,r=this.presenter.isCameraMirrored()?-(t.y-e.y):t.y-e.y;return Math.round(180/Math.PI*Math.atan2(r,n))}};j.tag=`scandit-barcode-ar-view`;export{j as BarcodeArView};
@@ -1,2 +1,2 @@
1
- import { t as BarcodeArInfoAnnotationBodyComponent } from "../../../BarcodeArInfoAnnotationBodyComponent-BXOaa1oT.js";
2
- export { BarcodeArInfoAnnotationBodyComponent };
1
+ import { n as LEFT_ICON_SLOT_NAME, r as RIGHT_ICON_SLOT_NAME, t as BarcodeArInfoAnnotationBodyComponent } from "../../../BarcodeArInfoAnnotationBodyComponent-BGaYDIeF.js";
2
+ export { BarcodeArInfoAnnotationBodyComponent, LEFT_ICON_SLOT_NAME, RIGHT_ICON_SLOT_NAME };
@@ -1 +1 @@
1
- import{Color as e}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as t,css as n,defineCustomElements as r,html as i}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as a}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";var o=class o extends t{constructor(){super(),this.isLeftIconTappable=!0,this.isRightIconTappable=!0;let e=this.attachShadow({mode:`open`});e.innerHTML=i`<div class="container"><slot name="left-barcode-icon"></slot><div class="text"></div><slot name="right-barcode-icon"></slot></div>`,e.append(o.createStyleElement().cloneNode(!0)),this.textElement=e.querySelector(`.text`),this.containerElement=e.querySelector(`.container`)}set rightIcon(e){var t;let n=(t=this.shadowRoot)==null?void 0:t.querySelector(`[slot='right-barcode-icon']`);(n==null?void 0:n.assignedSlot)!==e&&(n&&e==null&&n.remove(),e&&(e.slot=`right-barcode-icon`,this.append(e)))}get rightIcon(){var e;return(((e=this.shadowRoot)==null||(e=e.querySelector(`slot[name='right-barcode-icon']`))==null?void 0:e.assignedElements())??[])[0]}set leftIcon(e){var t;let n=(t=this.shadowRoot)==null?void 0:t.querySelector(`[slot='left-barcode-icon']`);(n==null?void 0:n.assignedSlot)!==e&&(n&&e==null&&n.remove(),e&&(e.slot=`left-barcode-icon`,this.append(e)))}get leftIcon(){var e;return(((e=this.shadowRoot)==null||(e=e.querySelector(`slot[name='left-barcode-icon']`))==null?void 0:e.assignedElements())??[])[0]}get text(){return this.textElement.textContent??``}set text(e){this.textElement.textContent=e}get textSize(){return Number.parseInt(this.style.getPropertyValue(`--text-size`),10)}set textSize(e){this.style.setProperty(`--text-size`,`${e}px`)}get textAlignment(){return this.containerElement.getAttribute(`text-alignment`)??`center`}set textAlignment(e){this.containerElement.setAttribute(`text-alignment`,e)}get textColor(){let t=this.style.getPropertyValue(`--text-color`);return t===``?e.fromRGBA(0,0,0,1):e.fromHex(t)}set textColor(e){this.style.setProperty(`--text-color`,`#${e.toJSON()}`)}static create(){return o.register(),document.createElement(o.tag)}static register(){r({[o.tag]:o})}static createStyleElement(){return n`:host{--text-color:#${a.toJSON()};--text-size:14px}.container{align-items:center;display:flex;font-size:var(--text-size);gap:.75rem;justify-content:center;padding:1rem 1rem 0}.container .text{color:var(--text-color)}.container[text-alignment=start]{justify-content:flex-start}.container[text-alignment=center]{justify-content:center}.container[text-alignment=end]{justify-content:flex-end}.container[text-alignment=start] .text{text-align:start}.container[text-alignment=center] .text{text-align:center}.container[text-alignment=end] .text{text-align:end}`}};o.tag=`scandit-barcode-ar-info-annotation-body`;export{o as BarcodeArInfoAnnotationBodyComponent};
1
+ import{getSlotted as e,setSlotted as t}from"../private/slots.js";import{Color as n}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as r,css as i,defineCustomElements as a,html as o}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as s}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";const c=`left-barcode-icon`,l=`right-barcode-icon`;var u=class u extends r{constructor(){super(),this.isLeftIconTappable=!0,this.isRightIconTappable=!0;let e=this.attachShadow({mode:`open`});e.innerHTML=o`<div class="container"><slot name="${c}"></slot><div class="text"></div><slot name="${l}"></slot></div>`,e.append(u.createStyleElement().cloneNode(!0)),this.textElement=e.querySelector(`.text`),this.containerElement=e.querySelector(`.container`)}set rightIcon(e){t(this,l,e)}get rightIcon(){return e(this,l)}set leftIcon(e){t(this,c,e)}get leftIcon(){return e(this,c)}get text(){return this.textElement.textContent??``}set text(e){this.textElement.textContent=e}get textSize(){return Number.parseInt(this.style.getPropertyValue(`--text-size`),10)}set textSize(e){this.style.setProperty(`--text-size`,`${e}px`)}get textAlignment(){return this.containerElement.getAttribute(`text-alignment`)??`center`}set textAlignment(e){this.containerElement.setAttribute(`text-alignment`,e)}get textColor(){let e=this.style.getPropertyValue(`--text-color`);return e===``?n.fromRGBA(0,0,0,1):n.fromHex(e)}set textColor(e){this.style.setProperty(`--text-color`,`#${e.toJSON()}`)}static create(){return u.register(),document.createElement(u.tag)}static register(){a({[u.tag]:u})}static createStyleElement(){return i`:host{--text-color:#${s.toJSON()};--text-size:14px}.container{align-items:center;display:flex;font-size:var(--text-size);gap:.75rem;justify-content:center;padding:1rem 1rem 0}.container .text{color:var(--text-color)}.container[text-alignment=start]{justify-content:flex-start}.container[text-alignment=center]{justify-content:center}.container[text-alignment=end]{justify-content:flex-end}.container[text-alignment=start] .text{text-align:start}.container[text-alignment=center] .text{text-align:center}.container[text-alignment=end] .text{text-align:end}`}};u.tag=`scandit-barcode-ar-info-annotation-body`;export{u as BarcodeArInfoAnnotationBodyComponent,c as LEFT_ICON_SLOT_NAME,l as RIGHT_ICON_SLOT_NAME};
@@ -1 +1 @@
1
- import{Color as e}from"@scandit/web-datacapture-core";import{css as t}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{html as n}from"@scandit/web-datacapture-core/build/js/private/utils/html.js";const r=`.container`,i=`.icon-text`,a=`.text`;function o(){return n`<div class="container"><div class="icon-text"><slot name="barcode-icon"></slot><div class="text">Text</div></div></div>`}function s(){return t`:host{--background-color:#0000;--text-color:#000;--top-left-corner-radius:0px;--top-right-corner-radius:0px;--bottom-left-corner-radius:0px;--bottom-right-corner-radius:0px;--text-size:16px}.container{align-items:center;background-color:var(--background-color);border-radius:var(--top-left-corner-radius) var(--top-right-corner-radius) var(--bottom-right-corner-radius) var(--bottom-left-corner-radius);display:flex;flex-direction:row;justify-content:center;overflow:hidden;padding:.75rem;transition:.3s ease}.container.highlighted{opacity:.75}.icon-text{align-items:center;display:flex;gap:.5rem}.text{color:var(--text-color);font-size:var(--text-size);font-weight:600;width:100%}`}function c(e){var t;return(t=e.shadowRoot)==null||(t=t.querySelector(`[slot='barcode-icon']`))==null?void 0:t.assignedElements()[0]}function l(e,t){let n=c(e);n!==t&&(n&&t==null&&n.remove(),t&&(t.slot=`barcode-icon`,e.append(t)))}function u(t,n){let r=t.style.getPropertyValue(`--background-color`);return r===``?n:e.fromHex(r)}function d(e,t){e.style.setProperty(`--background-color`,`#${t.toJSON()}`)}function f(t,n){let r=t.style.getPropertyValue(`--text-color`);return r===``?n:e.fromHex(r)}function p(e,t){e.style.setProperty(`--text-color`,`#${t.toJSON()}`)}function m(e){return Number.parseFloat(e.style.getPropertyValue(`--text-size`))}function h(e,t){e.style.setProperty(`--text-size`,`${t}px`)}function g(e){return e.textContent??``}function _(e,t){e.textContent=t}export{r as CONTAINER_SELECTOR,i as ICON_TEXT_SELECTOR,a as TEXT_SELECTOR,s as createStyles,o as createTemplate,u as getBackgroundColor,c as getIcon,g as getText,f as getTextColor,m as getTextSize,d as setBackgroundColor,_ as setText,p as setTextColor,h as setTextSize,l as updateIcon};
1
+ import{getSlotted as e,setSlotted as t}from"../../private/slots.js";import{Color as n}from"@scandit/web-datacapture-core";import{css as r}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{html as i}from"@scandit/web-datacapture-core/build/js/private/utils/html.js";const a=`barcode-icon`,o=`.container`,s=`.icon-text`,c=`.text`;function l(){return i`<div class="container"><div class="icon-text"><slot name="${a}"></slot><div class="text">Text</div></div></div>`}function u(){return r`:host{--background-color:#0000;--text-color:#000;--top-left-corner-radius:0px;--top-right-corner-radius:0px;--bottom-left-corner-radius:0px;--bottom-right-corner-radius:0px;--text-size:16px}.container{align-items:center;background-color:var(--background-color);border-radius:var(--top-left-corner-radius) var(--top-right-corner-radius) var(--bottom-right-corner-radius) var(--bottom-left-corner-radius);display:flex;flex-direction:row;justify-content:center;overflow:hidden;padding:.75rem;transition:.3s ease}.container.highlighted{opacity:.75}.icon-text{align-items:center;display:flex;gap:.5rem}.text{color:var(--text-color);font-size:var(--text-size);font-weight:600;width:100%}`}function d(t){return e(t,a)}function f(e,n){t(e,a,n)}function p(e,t){let r=e.style.getPropertyValue(`--background-color`);return r===``?t:n.fromHex(r)}function m(e,t){e.style.setProperty(`--background-color`,`#${t.toJSON()}`)}function h(e,t){let r=e.style.getPropertyValue(`--text-color`);return r===``?t:n.fromHex(r)}function g(e,t){e.style.setProperty(`--text-color`,`#${t.toJSON()}`)}function _(e){return Number.parseFloat(e.style.getPropertyValue(`--text-size`))}function v(e,t){e.style.setProperty(`--text-size`,`${t}px`)}function y(e){return e.textContent??``}function b(e,t){e.textContent=t}export{o as CONTAINER_SELECTOR,s as ICON_TEXT_SELECTOR,c as TEXT_SELECTOR,u as createStyles,l as createTemplate,p as getBackgroundColor,d as getIcon,y as getText,h as getTextColor,_ as getTextSize,m as setBackgroundColor,b as setText,g as setTextColor,v as setTextSize,f as updateIcon};
@@ -1,3 +1,4 @@
1
+ import { n as BarcodeArAnnotationAnchor } from "../../../../BarcodeArAnnotation-BTMTqI9o.js";
1
2
  import { Color } from "@scandit/web-datacapture-core";
2
3
  import { ScanditHTMLElement as ScanditHTMLElement$1 } from "@scandit/web-datacapture-core/build/js/private/utils/index.js";
3
4
  //#region src/main/ar/ui/atoms/private/BarcodeStatusIconContainer.d.ts
@@ -11,6 +12,8 @@ declare class BarcodeStatusIconContainer extends ScanditHTMLElement$1 {
11
12
  get text(): string;
12
13
  set tip(value: boolean);
13
14
  get tip(): boolean;
15
+ set anchor(value: BarcodeArAnnotationAnchor);
16
+ get anchor(): BarcodeArAnnotationAnchor;
14
17
  set textColor(color: Color);
15
18
  get textColor(): Color;
16
19
  set expanded(value: boolean);
@@ -1 +1 @@
1
- import{cssArrows as e}from"./CssArrows.js";import{Color as t}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as n,css as r,defineCustomElements as i,html as a}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as o}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";var s=class s extends n{constructor(){super();let t=this.attachShadow({mode:`open`});t.innerHTML=a`<div class="container"><span class="ghost-arrow arw-bottom-center"></span><div class="icon-container"><slot name="barcode-icon"></slot></div><span class="text"></span></div>`,this.containerElement=t.querySelector(`.container`),this.textContainer=this.containerElement.querySelector(`.text`),t.append(s.createStyleElement().cloneNode(!0)),t.append(e())}set text(e){this.updateText(e)}get text(){return this.textContainer.textContent??``}set tip(e){this.toggleTip(e)}get tip(){var e;return((e=this.containerElement.querySelector(`.ghost-arrow`))==null?void 0:e.classList.value.includes(`arw-`))??!1}set textColor(e){this.style.setProperty(`--text-color`,`#${e.toJSON()}`)}get textColor(){return t.fromJSON(this.style.getPropertyValue(`--text-color`))}set expanded(e){this.toggleAttribute(`expanded`,e)}set backgroundColor(e){this.style.setProperty(`--background-color`,`#${e.toJSON()}`),this.style.setProperty(`--arrow-background-color`,`#${e.toJSON()}`)}get backgroundColor(){let e=this.style.getPropertyValue(`--background-color`);return t.fromJSON(e===``?`FFFFFF`:e)}get expanded(){return this.hasAttribute(`expanded`)}static create(){return document.createElement(s.tag)}static register(){i({[s.tag]:s})}static createStyleElement(){return r`:host{display:inline-flex;--size:32px;--padding:0px;--background-color:#fff;--text-color:#${o.toJSON()};--expanded-width:190px;--arrow-size:calc(var(--size)/5);--arrow-background-color:#fff;--arrow-offset:0px;cursor:pointer;font-family:SF Pro Text,sans-serif;font-size:1rem;font-style:normal;font-weight:600;transition:transform .25s ease-in-out;user-select:none;-webkit-tap-highlight-color:transparent}.ghost-arrow{height:var(--size);left:0;position:absolute;top:-2px;width:var(--size)}:host([hidden]){display:none}.container{background-color:var(--background-color);border-radius:calc(var(--size) + var(--padding)/2);box-shadow:0 1px 2px 0 #${o.withAlpha(.3).toJSON()};display:inline-flex;flex-direction:row;gap:10px;padding:var(--padding);position:relative;transition:width .25s ease-in-out;white-space:nowrap}.container,.icon-container{align-items:center;height:var(--size);width:var(--size)}.icon-container{display:flex;justify-content:center;position:absolute}.container span.text{color:var(--text-color);max-width:0;opacity:0;overflow:hidden;position:absolute;transform:translateX(0);transition:opacity .25s ease-in-out,transform .25s ease-in-out,max-width .25s ease-in-out;white-space:nowrap}:host([expanded]) .container span.text{max-width:calc(var(--expanded-width) - var(--size) - 2px);opacity:1;transform:translateX(var(--size))}:host([expanded]){transform:translateX(calc(var(--expanded-width) - 50% - 2px - var(--size)/2))}:host([expanded]) .container{width:var(--expanded-width)}`}connectedCallback(){this.setAttribute(`tip`,`true`)}attributeChangedCallback(e,t,n){e===`text`?this.updateText(n):e===`tip`&&this.toggleTip(n===`true`||n===``)}updateText(e){this.textContainer.textContent=e.slice(0,20)}toggleTip(e){var t;(t=this.containerElement.querySelector(`.ghost-arrow`))==null||t.classList.toggle(`arw-bottom-center`,e)}};s.tag=`scandit-status-icon-container`,s.observedAttributes=[`text`,`tip`];export{s as BarcodeStatusIconContainer};
1
+ import"../../organisms/BarcodeArAnnotation.js";import{cssArrows as e}from"./CssArrows.js";import{Color as t}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as n,css as r,defineCustomElements as i,html as a}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as o}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";var s=class s extends n{constructor(){super();let t=this.attachShadow({mode:`open`});t.innerHTML=a`<div class="container"><span class="ghost-arrow arw-bottom-center"></span><div class="icon-container"><slot name="barcode-icon"></slot></div><span class="text"></span></div>`,this.containerElement=t.querySelector(`.container`),this.textContainer=this.containerElement.querySelector(`.text`),t.append(s.createStyleElement().cloneNode(!0)),t.append(e())}set text(e){this.updateText(e)}get text(){return this.textContainer.textContent??``}set tip(e){this.toggleTip(e)}get tip(){var e;return((e=this.containerElement.querySelector(`.ghost-arrow`))==null?void 0:e.classList.value.includes(`arw-`))??!1}set anchor(e){this.setAttribute(`anchor`,e)}get anchor(){return this.getAttribute(`anchor`)??`bottom-center`}set textColor(e){this.style.setProperty(`--text-color`,`#${e.toJSON()}`)}get textColor(){return t.fromJSON(this.style.getPropertyValue(`--text-color`))}set expanded(e){this.toggleAttribute(`expanded`,e)}set backgroundColor(e){this.style.setProperty(`--background-color`,`#${e.toJSON()}`),this.style.setProperty(`--arrow-background-color`,`#${e.toJSON()}`)}get backgroundColor(){let e=this.style.getPropertyValue(`--background-color`);return t.fromJSON(e===``?`FFFFFF`:e)}get expanded(){return this.hasAttribute(`expanded`)}static create(){return document.createElement(s.tag)}static register(){i({[s.tag]:s})}static createStyleElement(){return r`:host{display:inline-flex;--size:32px;--padding:0px;--background-color:#fff;--text-color:#${o.toJSON()};--expanded-width:190px;--arrow-size:calc(var(--size)/5);--arrow-background-color:#fff;--arrow-offset-x:0px;--arrow-offset-y:0px;cursor:pointer;font-family:SF Pro Text,sans-serif;font-size:1rem;font-style:normal;font-weight:600;transition:transform .25s ease-in-out;user-select:none;-webkit-tap-highlight-color:transparent}.ghost-arrow{height:var(--size);left:0;position:absolute;top:0;width:var(--size)}.arw-bottom-center{--arrow-offset-y:calc(var(--size)/-16)}.arw-top-center{--arrow-offset-y:calc(var(--size)/16)}.arw-left-center{--arrow-offset-x:calc(var(--size)/16)}.arw-right-center{--arrow-offset-x:calc(var(--size)/-16)}:host([hidden]){display:none}.container{background-color:var(--background-color);border-radius:calc(var(--size) + var(--padding)/2);box-shadow:0 1px 2px 0 #${o.withAlpha(.3).toJSON()};display:inline-flex;flex-direction:row;gap:10px;padding:var(--padding);position:relative;transition:width .25s ease-in-out;white-space:nowrap}.container,.icon-container{align-items:center;height:var(--size);width:var(--size)}.icon-container{display:flex;justify-content:center;position:absolute}.container span.text{color:var(--text-color);max-width:0;opacity:0;overflow:hidden;position:absolute;transform:translateX(0);transition:opacity .25s ease-in-out,transform .25s ease-in-out,max-width .25s ease-in-out;white-space:nowrap}:host([expanded]) .container span.text{max-width:calc(var(--expanded-width) - var(--size) - 2px);opacity:1;transform:translateX(var(--size))}:host([expanded]) .container{width:var(--expanded-width)}`}connectedCallback(){this.setAttribute(`tip`,`true`)}attributeChangedCallback(e,t,n){e===`text`?this.updateText(n):e===`tip`?this.toggleTip(n===`true`||n===``):e===`anchor`&&this.toggleTip(this.tip)}updateText(e){this.textContainer.textContent=e.slice(0,20)}toggleTip(e){let t=this.containerElement.querySelector(`.ghost-arrow`);if(t){for(let e of[...t.classList])e.startsWith(`arw-`)&&t.classList.remove(e);e&&t.classList.add(`arw-${this.anchor}`)}}};s.tag=`scandit-status-icon-container`,s.observedAttributes=[`text`,`tip`,`anchor`];export{s as BarcodeStatusIconContainer};
@@ -1 +1 @@
1
- import{css as e}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";function t(){return e`[class*=arw-]:after{border-color:#0000;border-style:solid;content:" ";height:0;pointer-events:none;position:absolute;width:0}.arw-bottom-center:after{border-top-color:var(--arrow-background-color);border-width:var(--arrow-size);left:50%;top:100%;transform:translate(-50%)}.arw-top-center:after{border-bottom-color:var(--arrow-background-color);border-width:var(--arrow-size);left:50%;top:0;transform:translate(-50%,-100%)}.arw-right-center:after{border-left-color:var(--arrow-background-color);border-width:var(--arrow-size);right:0;top:50%;transform:translate(100%,-50%)}.arw-left-center:after{border-right-color:var(--arrow-background-color);border-width:var(--arrow-size);left:0;top:50%;transform:translate(-100%,-50%)}`}export{t as cssArrows};
1
+ import{css as e}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";function t(){return e`[class*=arw-]:after{border-color:#0000;border-style:solid;content:" ";height:0;pointer-events:none;position:absolute;width:0}.arw-bottom-center:after{border-top-color:var(--arrow-background-color);border-width:var(--arrow-size);left:50%;top:100%;transform:translate(calc(-50% + var(--arrow-offset-x, 0px)),var(--arrow-offset-y,0))}.arw-top-center:after{border-bottom-color:var(--arrow-background-color);border-width:var(--arrow-size);left:50%;top:0;transform:translate(calc(-50% + var(--arrow-offset-x, 0px)),calc(-100% + var(--arrow-offset-y, 0px)))}.arw-right-center:after{border-left-color:var(--arrow-background-color);border-width:var(--arrow-size);right:0;top:50%;transform:translate(calc(100% + var(--arrow-offset-x, 0px)),calc(-50% + var(--arrow-offset-y, 0px)))}.arw-left-center:after{border-right-color:var(--arrow-background-color);border-width:var(--arrow-size);left:0;top:50%;transform:translate(calc(-100% + var(--arrow-offset-x, 0px)),calc(-50% + var(--arrow-offset-y, 0px)))}`}export{t as cssArrows};
@@ -1 +1 @@
1
- import{Color as e,ScanditIconBuilder as t,ScanditIconShape as n,ScanditIconType as r}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as i,css as a,defineCustomElements as o,html as s}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as c}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";const l=e.fromRGBA(255,255,255,1);var u=class e extends i{constructor(){super(),this.onPressedHandler=this.onPressed.bind(this),this.onReleasedHandler=this.onReleased.bind(this);let t=this.attachShadow({mode:`open`});t.innerHTML=s`<button type="button"><slot></slot></button>`,t.append(e.createStyleElement().cloneNode(!0))}static create(){return document.createElement(e.tag)}static register(){o({[e.tag]:e})}static createStyleElement(){return a`:host[hidden]{display:none}:host button{background:none;border:none;display:flex;margin:0;outline:none;padding:0;-webkit-tap-highlight-color:transparent}`}async connectedCallback(){var e,i,a;let o=new t;this.icon=await o.withIcon(r.CameraSwitch).withBackgroundShape(n.Circle).withBackgroundColor(c.withAlpha(.3)).withBackgroundStrokeColor(c).withWidth(36).withHeight(36).withIconSize(28).build(),(e=this.shadowRoot)==null||e.append(this.icon),(i=this.shadowRoot)==null||i.addEventListener(`pointerdown`,this.onPressedHandler),(a=this.shadowRoot)==null||a.addEventListener(`pointerup`,this.onReleasedHandler)}disconnectedCallback(){var e,t;(e=this.shadowRoot)==null||e.removeEventListener(`pointerdown`,this.onPressedHandler),(t=this.shadowRoot)==null||t.removeEventListener(`pointerup`,this.onReleasedHandler)}onPressed(){this.icon.iconColor=l.withAlpha(.3)}onReleased(){this.icon.iconColor=l}};u.tag=`scandit-check-switch-camera-button`;export{u as CameraSwitchButton};
1
+ import{Color as e,ScanditIconBuilder as t,ScanditIconShape as n,ScanditIconType as r}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as i,css as a,defineCustomElements as o,html as s}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as c}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";const l=e.fromRGBA(255,255,255,1);var u=class e extends i{constructor(){super(),this.onPressedHandler=this.onPressed.bind(this),this.onReleasedHandler=this.onReleased.bind(this);let t=this.attachShadow({mode:`open`});t.innerHTML=s`<button type="button"><slot></slot></button>`,t.append(e.createStyleElement().cloneNode(!0))}static create(){return document.createElement(e.tag)}static register(){o({[e.tag]:e})}static createStyleElement(){return a`:host[hidden]{display:none}:host button{background:none;border:none;display:flex;margin:0;outline:none;padding:0;-webkit-tap-highlight-color:transparent}`}async connectedCallback(){var e,i,a;let o=new t;this.icon=await o.withIcon(r.CameraSwitch).withBackgroundShape(n.Circle).withBackgroundColor(c.withAlpha(.3)).withWidth(36).withHeight(36).withIconSize(28).build(),(e=this.shadowRoot)==null||e.append(this.icon),(i=this.shadowRoot)==null||i.addEventListener(`pointerdown`,this.onPressedHandler),(a=this.shadowRoot)==null||a.addEventListener(`pointerup`,this.onReleasedHandler)}disconnectedCallback(){var e,t;(e=this.shadowRoot)==null||e.removeEventListener(`pointerdown`,this.onPressedHandler),(t=this.shadowRoot)==null||t.removeEventListener(`pointerup`,this.onReleasedHandler)}onPressed(){this.icon.iconColor=l.withAlpha(.3)}onReleased(){this.icon.iconColor=l}};u.tag=`scandit-check-switch-camera-button`;export{u as CameraSwitchButton};
@@ -1,6 +1,6 @@
1
1
  import { t as Barcode } from "../../../Barcode-DNvaiOyn.js";
2
2
  import { r as BarcodeArAnnotationTrigger, t as BarcodeArAnnotation } from "../../../BarcodeArAnnotation-BTMTqI9o.js";
3
- import { t as BarcodeArInfoAnnotationBodyComponent } from "../../../BarcodeArInfoAnnotationBodyComponent-BXOaa1oT.js";
3
+ import { t as BarcodeArInfoAnnotationBodyComponent } from "../../../BarcodeArInfoAnnotationBodyComponent-BGaYDIeF.js";
4
4
  import { t as BarcodeArInfoAnnotationFooter } from "../../../BarcodeArInfoAnnotationFooter-C3KhPT6G.js";
5
5
  import { t as BarcodeArInfoAnnotationHeader } from "../../../BarcodeArInfoAnnotationHeader-DCzML4Pn.js";
6
6
  import { Color, Optional, Point } from "@scandit/web-datacapture-core";
@@ -1 +1 @@
1
- import"./BarcodeArAnnotation.js";import{BarcodeArInfoAnnotationBodyComponent as e}from"../atoms/BarcodeArInfoAnnotationBodyComponent.js";import{BarcodeArInfoAnnotationFooter as t}from"../atoms/BarcodeArInfoAnnotationFooter.js";import{BarcodeArInfoAnnotationHeader as n}from"../atoms/BarcodeArInfoAnnotationHeader.js";import{cssArrows as r}from"../atoms/private/CssArrows.js";import{updatePosition as i}from"./private/updatePosition.js";import{Color as a,ScanditIcon as o}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as s,css as c,defineCustomElements as l,html as u}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";let d=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({}),f=function(e){return e.Small=`small`,e.Medium=`medium`,e.Large=`large`,e}({}),p=function(e){return e.InfoAnnotationTap=`BarcodeArInfoAnnotationEventTap`,e}({});const m=`slot[name='header']`,h=`slot[name='footer']`,g=`--arrow-background-color`;var _=class f extends s{get barcode(){return this._barcode}set barcode(e){this._barcode=e}constructor(){super(),this.isEntireAnnotationTappable=!1,this.annotationTrigger=`highlightTapAndBarcodeScan`,this._widthPreset=`small`,this.onPointerUpListener=this.onPointerUp.bind(this),this.onSlotChangeListener=this.onSlotChange.bind(this),this.highlightableElementListenerMap=new Map;let e=this.attachShadow({mode:`open`});e.innerHTML=u`<div class="container arw-${d.Bottom} ${`small`}"><slot name="header"></slot><div class="body-container"><slot></slot></div><slot name="footer"></slot></div>`,this.containerElement=e.querySelector(`.container`),e.append(f.createStyleElement().cloneNode(!0)),e.append(r())}updatePosition(e,t,n){i(this,e,t,0)}set anchor(e){for(let e of Object.values(d))this.containerElement.classList.remove(`arw-${e}`);this.containerElement.classList.add(`arw-${e}`),this.updateArrowColor()}get anchor(){for(let e of Object.values(d))if(this.containerElement.classList.contains(`arw-${e}`))return e;return d.Bottom}set widthPreset(e){this._widthPreset=e,this.containerElement.classList.remove(`small`,`medium`,`large`),this.containerElement.classList.add(e)}get widthPreset(){switch(!0){case this.containerElement.classList.contains(`small`):return`small`;case this.containerElement.classList.contains(`medium`):return`medium`;case this.containerElement.classList.contains(`large`):return`large`;default:return`small`}}get backgroundColor(){let e=this.containerElement.style.getPropertyValue(`--background-color`);return a.fromHex(e)}set backgroundColor(e){this.containerElement.style.setProperty(`--background-color`,`#${e.toJSON()}`),this.updateArrowColor()}set body(e){this.append(...e)}get body(){var e;let t=(e=this.shadowRoot)==null?void 0:e.querySelector(`slot:not([name])`);return(t==null?void 0:t.assignedElements({flatten:!0}))??[]}set header(e){let t=this.querySelector(m);e!=null&&(t==null?void 0:t.assignedElements()[0])!==e&&(t==null||t.remove(),e.setAttribute(`slot`,`header`),this.append(e))}get header(){var e;let t=(e=this.shadowRoot)==null?void 0:e.querySelector(m);return((t==null?void 0:t.assignedElements())??[])[0]}set footer(e){let t=this.querySelector(h);e!=null&&(t==null?void 0:t.assignedElements()[0])!==e&&(t==null||t.remove(),e.setAttribute(`slot`,`footer`),this.append(e))}get footer(){var e;let t=(e=this.shadowRoot)==null?void 0:e.querySelector(h);return((t==null?void 0:t.assignedElements())??[])[0]}set hasTip(e){this.containerElement.classList.toggle(`arw-${this.anchor}`,e)}get hasTip(){return this.containerElement.classList.contains(`arw-${this.anchor}`)}static create(e){f.register();let t=document.createElement(f.tag);return t.barcode=e,t}static register(){l({[e.tag]:e,[n.tag]:n,[t.tag]:t,[f.tag]:f})}static createStyleElement(){return c`:host{--background-color:#fff;--arrow-size:7px;--arrow-background-color:var(--background-color);--arrow-offset:10px;font-family:SF Pro Display,sans-serif}.container{background-color:var(--background-color);border-radius:16px;display:flex;flex-direction:column;min-width:100px;position:relative;transition:opacity .3s ease;width:100%}.container.highlighted{opacity:.75}.container.${`small`}{width:180px}.container.${`medium`}{width:210px}.container.${`large`}{width:240px}.body-container{padding-bottom:1rem}`}connectedCallback(){var e,t;this.widthPreset=this._widthPreset,this.addEventListener(`pointerup`,this.onPointerUpListener);let n=(e=this.shadowRoot)==null?void 0:e.querySelector(m),r=(t=this.shadowRoot)==null?void 0:t.querySelector(h);n==null||n.addEventListener(`slotchange`,this.onSlotChangeListener),r==null||r.addEventListener(`slotchange`,this.onSlotChangeListener),this.onSlotChange(),this.isEntireAnnotationTappable&&this.makeHighlightable(this.containerElement)}disconnectedCallback(){var e,t;let n=(e=this.shadowRoot)==null?void 0:e.querySelector(m),r=(t=this.shadowRoot)==null?void 0:t.querySelector(h);n==null||n.removeEventListener(`slotchange`,this.onSlotChangeListener),r==null||r.removeEventListener(`slotchange`,this.onSlotChangeListener),this.removeEventListener(`pointerup`,this.onPointerUpListener);for(let[e,t]of this.highlightableElementListenerMap)e.removeEventListener(`pointerdown`,t.pointerdown),e.removeEventListener(`pointerup`,t.pointerup)}onSlotChange(){var e,t;let n=(e=this.shadowRoot)==null?void 0:e.querySelector(m),r=(t=this.shadowRoot)==null?void 0:t.querySelector(h),i=(n==null?void 0:n.assignedElements())??[],a=(r==null?void 0:r.assignedElements())??[];for(let e of i)e.style.setProperty(`--top-left-corner-radius`,`16px`),e.style.setProperty(`--top-right-corner-radius`,`16px`),this.isEntireAnnotationTappable||this.makeHighlightable(e);for(let e of a)e.style.setProperty(`--bottom-left-corner-radius`,`16px`),e.style.setProperty(`--bottom-right-corner-radius`,`16px`),this.isEntireAnnotationTappable||this.makeHighlightable(e);this.updateArrowColor()}updateArrowColor(){this.style.removeProperty(g),this.header||this.footer?this.header&&this.anchor.startsWith(`top`)?this.style.setProperty(g,`#${this.header.backgroundColor.toJSON()}`):this.footer&&this.anchor.startsWith(`bottom`)&&this.style.setProperty(g,`#${this.footer.backgroundColor.toJSON()}`):this.body.length>0&&!this.header&&!this.footer&&this.style.setProperty(g,`#${this.backgroundColor.toJSON()}`)}makeHighlightable(e){var t;let n=e.classList.contains(`container`)?e:(t=e.shadowRoot)==null?void 0:t.querySelector(`.container`);if(!n||this.highlightableElementListenerMap.has(n))return;let r=()=>{n.classList.add(`highlighted`)},i=()=>{n.classList.remove(`highlighted`)};n.addEventListener(`pointerdown`,r),n.addEventListener(`pointerup`,i),this.highlightableElementListenerMap.set(n,{pointerdown:r,pointerup:i})}onPointerUp(r){var i,a,s;let c=(i=r.target)==null?void 0:i.closest(n.tag),l=(a=r.target)==null?void 0:a.closest(t.tag),u=(s=r.target)==null?void 0:s.closest(`${e.tag} ${o.tag}`),d=new CustomEvent(`BarcodeArInfoAnnotationEventTap`,{bubbles:!0});if(c){var f,p;(f=this.listener)==null||(p=f.onInfoAnnotationHeaderTapped)==null||p.call(f,this),this.dispatchEvent(d)}if(l){var m,h;(m=this.listener)==null||(h=m.onInfoAnnotationFooterTapped)==null||h.call(m,this),this.dispatchEvent(d)}if((u==null?void 0:u.slot)===`left-barcode-icon`){let e=this.body.findIndex(e=>e.contains(u));if(this.body[e].isLeftIconTappable){var g,_;(g=this.listener)==null||(_=g.onInfoAnnotationLeftIconTapped)==null||_.call(g,this,this.body[e],e),this.dispatchEvent(d)}}if((u==null?void 0:u.slot)===`right-barcode-icon`){let e=this.body.findIndex(e=>e.contains(u));if(this.body[e].isRightIconTappable){var v,y;(v=this.listener)==null||(y=v.onInfoAnnotationRightIconTapped)==null||y.call(v,this,this.body[e],e),this.dispatchEvent(d)}}if(this.isEntireAnnotationTappable){var b,x;(b=this.listener)==null||(x=b.onInfoAnnotationTapped)==null||x.call(b,this),this.dispatchEvent(d)}}};_.tag=`scandit-barcode-ar-info-annotation`;export{_ as BarcodeArInfoAnnotation,d as BarcodeArInfoAnnotationAnchor,p as BarcodeArInfoAnnotationEvent,f as BarcodeArInfoAnnotationWidthPreset};
1
+ import"./BarcodeArAnnotation.js";import{getSlotted as e,setSlotted as t,slotSelector as n}from"../private/slots.js";import{BarcodeArInfoAnnotationBodyComponent as r}from"../atoms/BarcodeArInfoAnnotationBodyComponent.js";import{BarcodeArInfoAnnotationFooter as i}from"../atoms/BarcodeArInfoAnnotationFooter.js";import{BarcodeArInfoAnnotationHeader as a}from"../atoms/BarcodeArInfoAnnotationHeader.js";import{cssArrows as o}from"../atoms/private/CssArrows.js";import{updatePosition as s}from"./private/updatePosition.js";import{Color as c,ScanditIcon as l}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as u,css as d,defineCustomElements as f,html as p}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";let m=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({}),h=function(e){return e.Small=`small`,e.Medium=`medium`,e.Large=`large`,e}({}),g=function(e){return e.InfoAnnotationTap=`BarcodeArInfoAnnotationEventTap`,e}({});const _=`header`,v=`footer`,y=n(_),b=n(v),x=`--arrow-background-color`,S=`--background-color`,C=c.fromRGBA(255,255,255,1);var w=class n extends u{get barcode(){return this._barcode}set barcode(e){this._barcode=e}constructor(){super(),this.isEntireAnnotationTappable=!1,this.annotationTrigger=`highlightTapAndBarcodeScan`,this._widthPreset=`small`,this.onPointerUpListener=this.onPointerUp.bind(this),this.onSlotChangeListener=this.onSlotChange.bind(this),this.highlightableElementListenerMap=new Map;let e=this.attachShadow({mode:`open`});e.innerHTML=p`<div class="container arw-${m.Bottom} ${`small`}"><slot name="${_}"></slot><div class="body-container"><slot></slot></div><slot name="${v}"></slot></div>`,this.containerElement=e.querySelector(`.container`),e.append(n.createStyleElement().cloneNode(!0)),e.append(o())}updatePosition(e,t,n){s(this,e,t,0)}set anchor(e){for(let e of Object.values(m))this.containerElement.classList.remove(`arw-${e}`);this.containerElement.classList.add(`arw-${e}`),this.updateArrowColor()}get anchor(){for(let e of Object.values(m))if(this.containerElement.classList.contains(`arw-${e}`))return e;return m.Bottom}set widthPreset(e){this._widthPreset=e,this.containerElement.classList.remove(`small`,`medium`,`large`),this.containerElement.classList.add(e)}get widthPreset(){switch(!0){case this.containerElement.classList.contains(`small`):return`small`;case this.containerElement.classList.contains(`medium`):return`medium`;case this.containerElement.classList.contains(`large`):return`large`;default:return`small`}}get backgroundColor(){let e=this.containerElement.style.getPropertyValue(S);return e===``?C:c.fromHex(e)}set backgroundColor(e){this.containerElement.style.setProperty(S,`#${e.toJSON()}`),this.updateArrowColor()}set body(e){for(let e of this.body)e.remove();this.append(...e),this.updateArrowColor()}get body(){var e;let t=(e=this.shadowRoot)==null?void 0:e.querySelector(`slot:not([name])`);return(t==null?void 0:t.assignedElements())??[]}set header(e){t(this,_,e)}get header(){return e(this,_)}set footer(e){t(this,v,e)}get footer(){return e(this,v)}set hasTip(e){this.containerElement.classList.toggle(`arw-${this.anchor}`,e)}get hasTip(){return this.containerElement.classList.contains(`arw-${this.anchor}`)}static create(e){n.register();let t=document.createElement(n.tag);return t.barcode=e,t}static register(){f({[r.tag]:r,[a.tag]:a,[i.tag]:i,[n.tag]:n})}static createStyleElement(){return d`:host{--background-color:#${C.toJSON()};--arrow-size:7px;--arrow-background-color:var(--background-color);--arrow-offset:10px;font-family:SF Pro Display,sans-serif}.container{background-color:var(--background-color);border-radius:16px;display:flex;flex-direction:column;min-width:100px;position:relative;transition:opacity .3s ease;width:100%}.container.highlighted{opacity:.75}.container.${`small`}{width:180px}.container.${`medium`}{width:210px}.container.${`large`}{width:240px}.body-container{padding-bottom:1rem}`}connectedCallback(){var e,t;this.widthPreset=this._widthPreset,this.addEventListener(`pointerup`,this.onPointerUpListener);let n=(e=this.shadowRoot)==null?void 0:e.querySelector(y),r=(t=this.shadowRoot)==null?void 0:t.querySelector(b);n==null||n.addEventListener(`slotchange`,this.onSlotChangeListener),r==null||r.addEventListener(`slotchange`,this.onSlotChangeListener),this.onSlotChange(),this.isEntireAnnotationTappable&&this.makeHighlightable(this.containerElement)}disconnectedCallback(){var e,t;let n=(e=this.shadowRoot)==null?void 0:e.querySelector(y),r=(t=this.shadowRoot)==null?void 0:t.querySelector(b);n==null||n.removeEventListener(`slotchange`,this.onSlotChangeListener),r==null||r.removeEventListener(`slotchange`,this.onSlotChangeListener),this.removeEventListener(`pointerup`,this.onPointerUpListener);for(let[e,t]of this.highlightableElementListenerMap)e.removeEventListener(`pointerdown`,t.pointerdown),e.removeEventListener(`pointerup`,t.pointerup)}onSlotChange(){var e,t;let n=(e=this.shadowRoot)==null?void 0:e.querySelector(y),r=(t=this.shadowRoot)==null?void 0:t.querySelector(b),i=(n==null?void 0:n.assignedElements())??[],a=(r==null?void 0:r.assignedElements())??[];for(let e of i)e.style.setProperty(`--top-left-corner-radius`,`16px`),e.style.setProperty(`--top-right-corner-radius`,`16px`),this.isEntireAnnotationTappable||this.makeHighlightable(e);for(let e of a)e.style.setProperty(`--bottom-left-corner-radius`,`16px`),e.style.setProperty(`--bottom-right-corner-radius`,`16px`),this.isEntireAnnotationTappable||this.makeHighlightable(e);this.updateArrowColor()}updateArrowColor(){this.style.removeProperty(x),this.header||this.footer?this.header&&this.anchor.startsWith(`top`)?this.style.setProperty(x,`#${this.header.backgroundColor.toJSON()}`):this.footer&&this.anchor.startsWith(`bottom`)&&this.style.setProperty(x,`#${this.footer.backgroundColor.toJSON()}`):this.body.length>0&&!this.header&&!this.footer&&this.style.setProperty(x,`#${this.backgroundColor.toJSON()}`)}makeHighlightable(e){var t;let n=e.classList.contains(`container`)?e:(t=e.shadowRoot)==null?void 0:t.querySelector(`.container`);if(!n||this.highlightableElementListenerMap.has(n))return;let r=()=>{n.classList.add(`highlighted`)},i=()=>{n.classList.remove(`highlighted`)};n.addEventListener(`pointerdown`,r),n.addEventListener(`pointerup`,i),this.highlightableElementListenerMap.set(n,{pointerdown:r,pointerup:i})}onPointerUp(e){var t,n,o;let s=(t=e.target)==null?void 0:t.closest(a.tag),c=(n=e.target)==null?void 0:n.closest(i.tag),u=(o=e.target)==null?void 0:o.closest(`${r.tag} ${l.tag}`),d=new CustomEvent(`BarcodeArInfoAnnotationEventTap`,{bubbles:!0});if(s){var f,p;(f=this.listener)==null||(p=f.onInfoAnnotationHeaderTapped)==null||p.call(f,this),this.dispatchEvent(d)}if(c){var m,h;(m=this.listener)==null||(h=m.onInfoAnnotationFooterTapped)==null||h.call(m,this),this.dispatchEvent(d)}if((u==null?void 0:u.slot)===`left-barcode-icon`){let e=this.body.findIndex(e=>e.contains(u));if(this.body[e].isLeftIconTappable){var g,_;(g=this.listener)==null||(_=g.onInfoAnnotationLeftIconTapped)==null||_.call(g,this,this.body[e],e),this.dispatchEvent(d)}}if((u==null?void 0:u.slot)===`right-barcode-icon`){let e=this.body.findIndex(e=>e.contains(u));if(this.body[e].isRightIconTappable){var v,y;(v=this.listener)==null||(y=v.onInfoAnnotationRightIconTapped)==null||y.call(v,this,this.body[e],e),this.dispatchEvent(d)}}if(this.isEntireAnnotationTappable){var b,x;(b=this.listener)==null||(x=b.onInfoAnnotationTapped)==null||x.call(b,this),this.dispatchEvent(d)}}};w.tag=`scandit-barcode-ar-info-annotation`;export{w as BarcodeArInfoAnnotation,m as BarcodeArInfoAnnotationAnchor,g as BarcodeArInfoAnnotationEvent,h as BarcodeArInfoAnnotationWidthPreset};
@@ -4,6 +4,7 @@ import { BarcodeArPopoverAnnotationButton } from "./BarcodeArPopoverAnnotationBu
4
4
  import { Point } from "@scandit/web-datacapture-core";
5
5
  import { ScanditHTMLElement as ScanditHTMLElement$1 } from "@scandit/web-datacapture-core/build/js/private/utils/index.js";
6
6
  //#region src/main/ar/ui/organisms/BarcodeArPopoverAnnotation.d.ts
7
+ declare const EXCLUSIVE_WHILE_VISIBLE_ATTRIBUTE = "exclusive-while-visible";
7
8
  interface BarcodeArPopoverAnnotationListener {
8
9
  onPopoverButtonTapped?(popover: BarcodeArPopoverAnnotation, button: BarcodeArPopoverAnnotationButton, buttonIndex: number): void;
9
10
  onPopoverTapped?(popover: BarcodeArPopoverAnnotation): void;
@@ -18,7 +19,9 @@ declare class BarcodeArPopoverAnnotation extends ScanditHTMLElement$1 implements
18
19
  static tag: "scandit-barcode-ar-popover-annotation";
19
20
  isEntirePopoverTappable: boolean;
20
21
  private _barcode;
21
- annotationTrigger: BarcodeArAnnotationTrigger;
22
+ private _annotationTrigger;
23
+ get annotationTrigger(): BarcodeArAnnotationTrigger;
24
+ set annotationTrigger(trigger: BarcodeArAnnotationTrigger);
22
25
  listener?: BarcodeArPopoverAnnotationListener;
23
26
  private onPointerUpListener;
24
27
  anchor: BarcodeArPopoverAnnotationAnchor;
@@ -41,4 +44,4 @@ declare global {
41
44
  }
42
45
  }
43
46
  //#endregion
44
- export { BarcodeArPopoverAnnotation, BarcodeArPopoverAnnotationAnchor, BarcodeArPopoverAnnotationListener };
47
+ export { BarcodeArPopoverAnnotation, BarcodeArPopoverAnnotationAnchor, BarcodeArPopoverAnnotationListener, EXCLUSIVE_WHILE_VISIBLE_ATTRIBUTE };
@@ -1 +1 @@
1
- import"./BarcodeArAnnotation.js";import{updatePosition as e}from"./private/updatePosition.js";import{BarcodeArPopoverAnnotationButton as t}from"./BarcodeArPopoverAnnotationButton.js";import{ScanditHTMLElement as n,css as r,defineCustomElements as i,html as a}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";let o=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({});var s=class s extends n{constructor(){super(),this.isEntirePopoverTappable=!1,this.annotationTrigger=`highlightTap`,this.onPointerUpListener=this.onPointerUp.bind(this),this.anchor=o.Bottom;let e=this.attachShadow({mode:`open`});e.innerHTML=a`<div class="container" role="group"><slot></slot></div>`,e.append(s.createStyleElement().cloneNode(!0))}updatePosition(t,n,r){e(this,t,n,0)}get barcode(){return this._barcode}set barcode(e){this._barcode=e}set direction(e){this.setAttribute(`direction`,e)}get direction(){return this.getAttribute(`direction`)??`horizontal`}static register(){i({[s.tag]:s})}static create(e){s.register();let t=document.createElement(s.tag);return t.barcode=e,t}static createStyleElement(){return r`:host{background-color:unset;border:none;border-radius:14px;margin:0;overflow:hidden;padding:0}:host([direction=horizontal]) .container{flex-direction:row}:host([direction=vertical]) .container{flex-direction:column}.container{backdrop-filter:blur(16px);background:#ffffffb3;box-shadow:0 6px 10px 4px #12161926;display:flex;gap:14px}`}connectedCallback(){let e=Array.from(this.querySelectorAll(t.tag));for(let[t,n]of Object.entries(e))n.setAttribute(`data-position`,t);this.addEventListener(`pointerup`,this.onPointerUpListener)}disconnectedCallback(){this.removeEventListener(`pointerup`,this.onPointerUpListener)}onPointerUp(e){var n,r,i;if(this.isEntirePopoverTappable){var a,o;(a=this.listener)==null||(o=a.onPopoverTapped)==null||o.call(a,this);return}let s=(n=e.target)==null?void 0:n.closest(t.tag);s&&((r=this.listener)==null||(i=r.onPopoverButtonTapped)==null||i.call(r,this,s,Number(s.getAttribute(`data-position`))))}};s.tag=`scandit-barcode-ar-popover-annotation`;export{s as BarcodeArPopoverAnnotation,o as BarcodeArPopoverAnnotationAnchor};
1
+ import"./BarcodeArAnnotation.js";import{isExclusiveWhileVisible as e}from"./private/annotationTriggerBehavior.js";import{updatePosition as t}from"./private/updatePosition.js";import{BarcodeArPopoverAnnotationButton as n}from"./BarcodeArPopoverAnnotationButton.js";import{ScanditHTMLElement as r,css as i,defineCustomElements as a,html as o}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";const s=`exclusive-while-visible`;let c=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({});var l=class l extends r{get annotationTrigger(){return this._annotationTrigger}set annotationTrigger(t){this._annotationTrigger=t,this.toggleAttribute(s,e(t))}constructor(){super(),this.isEntirePopoverTappable=!1,this._annotationTrigger=`highlightTap`,this.onPointerUpListener=this.onPointerUp.bind(this),this.anchor=c.Bottom;let e=this.attachShadow({mode:`open`});e.innerHTML=o`<div class="container" role="group"><slot></slot></div>`,e.append(l.createStyleElement().cloneNode(!0))}updatePosition(e,n,r){t(this,e,n,0)}get barcode(){return this._barcode}set barcode(e){this._barcode=e}set direction(e){this.setAttribute(`direction`,e)}get direction(){return this.getAttribute(`direction`)??`horizontal`}static register(){a({[l.tag]:l})}static create(e){l.register();let t=document.createElement(l.tag);return t.barcode=e,t}static createStyleElement(){return i`:host{background-color:unset;border:none;border-radius:14px;margin:0;overflow:hidden;padding:0}:host([direction=horizontal]) .container{flex-direction:row}:host([direction=vertical]) .container{flex-direction:column}.container{backdrop-filter:blur(16px);background:#ffffffb3;box-shadow:0 6px 10px 4px #12161926;display:flex;gap:14px}`}connectedCallback(){this.toggleAttribute(s,e(this._annotationTrigger));let t=Array.from(this.querySelectorAll(n.tag));for(let[e,n]of Object.entries(t))n.setAttribute(`data-position`,e);this.addEventListener(`pointerup`,this.onPointerUpListener)}disconnectedCallback(){this.removeEventListener(`pointerup`,this.onPointerUpListener)}onPointerUp(e){var t,r,i;if(this.isEntirePopoverTappable){var a,o;(a=this.listener)==null||(o=a.onPopoverTapped)==null||o.call(a,this);return}let s=(t=e.target)==null?void 0:t.closest(n.tag);s&&((r=this.listener)==null||(i=r.onPopoverButtonTapped)==null||i.call(r,this,s,Number(s.getAttribute(`data-position`))))}};l.tag=`scandit-barcode-ar-popover-annotation`;export{l as BarcodeArPopoverAnnotation,c as BarcodeArPopoverAnnotationAnchor,s as EXCLUSIVE_WHILE_VISIBLE_ATTRIBUTE};
@@ -1 +1 @@
1
- import{Color as e}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as t,css as n,defineCustomElements as r,html as i}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as a}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";const o=`--text-size`,s=`--text-color`;var c=class c extends t{constructor(){super();let e=this.attachShadow({mode:`open`});e.innerHTML=i`<button type="button" role="button" class="container"><slot name="barcode-icon"></slot><slot name="text"></slot></button>`,e.append(c.createStyleElement().cloneNode(!0)),this.containerElement=e.querySelector(`.container`),this.containerElement.style.setProperty(o,`10px`),this.containerElement.style.setProperty(s,`#${a.toJSON()}`)}set textSize(e){this.containerElement.style.setProperty(o,`${e}px`)}get textSize(){let e=this.containerElement.style.getPropertyValue(o).replace(`px`,``);return Number.parseInt(e,10)}set textColor(e){this.containerElement.style.setProperty(s,`#${e.toJSON()}`)}get textColor(){let t=this.containerElement.style.getPropertyValue(s);return e.fromHex(t)}get text(){var e;let t=(e=this.containerElement.querySelector(`slot[name='text']`))==null?void 0:e.assignedSlot;return(t==null?void 0:t.textContent)??``}set disabled(e){this.containerElement.disabled=e}get disabled(){return this.containerElement.disabled}static register(){r({[c.tag]:c})}static create(e,t){c.register();let n=document.createElement(c.tag);if(e.slot=`barcode-icon`,e.width=24,e.height=24,t!=null){let e=document.createElement(`span`);e.slot=`text`,e.textContent=t,n.append(e)}return n.append(e),n}static createStyleElement(){return n`.container{align-items:center;-webkit-appearance:none;background-color:initial;border:none;color:var(--text-color);display:flex;flex-direction:column;font-family:SF Pro Text,sans-serif;font-size:var(--text-size);gap:6px;justify-content:center;margin:0;padding:10px;transition:background-color .1s ease-in-out}.container:hover{background-color:#e0e0e0}.container:active{background-color:#ccc}`}};c.tag=`scandit-barcode-ar-popover-button-annotation`;export{c as BarcodeArPopoverAnnotationButton};
1
+ import{Color as e}from"@scandit/web-datacapture-core";import{ScanditHTMLElement as t,css as n,defineCustomElements as r,html as i}from"@scandit/web-datacapture-core/build/js/private/utils/index.js";import{gray900 as a}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";const o=`--text-size`,s=`--text-color`;var c=class c extends t{constructor(){super();let e=this.attachShadow({mode:`open`});e.innerHTML=i`<button type="button" role="button" class="container"><slot name="barcode-icon"></slot><slot name="text"></slot></button>`,e.append(c.createStyleElement().cloneNode(!0)),this.containerElement=e.querySelector(`.container`),this.containerElement.style.setProperty(o,`10px`),this.containerElement.style.setProperty(s,`#${a.toJSON()}`)}set textSize(e){this.containerElement.style.setProperty(o,`${e}px`)}get textSize(){let e=this.containerElement.style.getPropertyValue(o).replace(`px`,``);return Number.parseInt(e,10)}set textColor(e){this.containerElement.style.setProperty(s,`#${e.toJSON()}`)}get textColor(){let t=this.containerElement.style.getPropertyValue(s);return e.fromHex(t)}get text(){var e;let t=(e=this.containerElement.querySelector(`slot[name='text']`))==null?void 0:e.assignedElements()[0];return(t==null?void 0:t.textContent)??``}set disabled(e){this.containerElement.disabled=e}get disabled(){return this.containerElement.disabled}static register(){r({[c.tag]:c})}static create(e,t){c.register();let n=document.createElement(c.tag);if(e.slot=`barcode-icon`,e.width=24,e.height=24,t!=null){let e=document.createElement(`span`);e.slot=`text`,e.textContent=t,n.append(e)}return n.append(e),n}static createStyleElement(){return n`.container{align-items:center;-webkit-appearance:none;background-color:initial;border:none;color:var(--text-color);display:flex;flex-direction:column;font-family:SF Pro Text,sans-serif;font-size:var(--text-size);gap:6px;justify-content:center;margin:0;padding:10px;transition:background-color .1s ease-in-out}.container:hover{background-color:#e0e0e0}.container:active{background-color:#ccc}`}};c.tag=`scandit-barcode-ar-popover-button-annotation`;export{c as BarcodeArPopoverAnnotationButton};
@@ -12,7 +12,6 @@ declare enum BarcodeArStatusIconAnnotationAnchor {
12
12
  declare class BarcodeArStatusIconAnnotation extends ScanditHTMLElement$1 implements BarcodeArAnnotation {
13
13
  static tag: "scandit-barcode-ar-status-icon-annotation";
14
14
  annotationTrigger: BarcodeArAnnotationTrigger;
15
- anchor: BarcodeArStatusIconAnnotationAnchor;
16
15
  private readonly statusIconContainer;
17
16
  private onToggleListener;
18
17
  private _barcode;
@@ -21,6 +20,8 @@ declare class BarcodeArStatusIconAnnotation extends ScanditHTMLElement$1 impleme
21
20
  constructor();
22
21
  get barcode(): Barcode;
23
22
  protected set barcode(barcode: Barcode);
23
+ set anchor(anchor: BarcodeArStatusIconAnnotationAnchor);
24
+ get anchor(): BarcodeArStatusIconAnnotationAnchor;
24
25
  set text(text: string);
25
26
  get text(): string;
26
27
  set hasTip(value: boolean);
@@ -1 +1 @@
1
- import"./BarcodeArAnnotation.js";import{updatePosition as e}from"./private/updatePosition.js";import{BarcodeStatusIconContainer as t}from"../atoms/private/BarcodeStatusIconContainer.js";import{Color as n,ScanditIcon as r,ScanditIconBuilder as i,ScanditIconShape as a,ScanditIconType as o}from"@scandit/web-datacapture-core";import{SecondaryOrange100 as s,gray900 as c}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";import{ScanditHTMLElement as l}from"@scandit/web-datacapture-core/build/js/private/utils/ScanditHTMLElement.js";import{defineCustomElements as u}from"@scandit/web-datacapture-core/build/js/private/utils/defineCustomElements.js";import{css as d}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";let f=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({});var p=class p extends l{constructor(){super(),this.annotationTrigger=`highlightTapAndBarcodeScan`,this.anchor=f.Bottom,this.onToggleListener=this.onToggle.bind(this),this._backgroundColor=n.fromHex(`#fff`),this._icon=null,this.statusIconContainer=t.create()}get barcode(){return this._barcode}set barcode(e){this._barcode=e}set text(e){this.statusIconContainer.text=e}get text(){return this.statusIconContainer.text}set hasTip(e){this.statusIconContainer.toggleAttribute(`tip`,e)}get hasTip(){return this.statusIconContainer.hasAttribute(`tip`)}set icon(e){var t;(t=this.icon)==null||t.remove(),this._icon=e,e&&(e.slot=`barcode-icon`,e.width=24,e.height=24,e.setIconSize(16),this.statusIconContainer.append(e))}get icon(){return this.statusIconContainer.querySelector(r.tag)??this._icon}set backgroundColor(e){this._backgroundColor=e,this.statusIconContainer.backgroundColor=e}get backgroundColor(){return this.statusIconContainer.backgroundColor}set textColor(e){this.statusIconContainer.textColor=e}get textColor(){return this.statusIconContainer.textColor}static create(e){p.register();let t=document.createElement(p.tag);return t.barcode=e,t}static register(){u({[t.tag]:t,[p.tag]:p})}async connectedCallback(){if(!this._icon){let e=new i().withIcon(o.ExclamationMark).withBackgroundShape(a.Circle).withBackgroundColor(s).withIconColor(c).withWidth(24).withHeight(24).withIconSize(16);this._icon=await e.build()}this.icon=this._icon;let e=d`${p.tag}{align-items:center;display:flex;justify-content:center;min-height:48px;min-width:48px}`;this.append(e),this.append(this.statusIconContainer),this.statusIconContainer.append(this.icon),this.addEventListener(`pointerup`,this.onToggleListener)}disconnectedCallback(){this.removeEventListener(`pointerup`,this.onToggleListener)}onToggle(){this.statusIconContainer.expanded=!this.statusIconContainer.expanded}updatePosition(t,n,r){e(this,t,n,r)}};p.tag=`scandit-barcode-ar-status-icon-annotation`;export{p as BarcodeArStatusIconAnnotation,f as BarcodeArStatusIconAnnotationAnchor};
1
+ import"./BarcodeArAnnotation.js";import{updatePosition as e}from"./private/updatePosition.js";import{BarcodeStatusIconContainer as t}from"../atoms/private/BarcodeStatusIconContainer.js";import{Color as n,ScanditIcon as r,ScanditIconBuilder as i,ScanditIconShape as a,ScanditIconType as o}from"@scandit/web-datacapture-core";import{SecondaryOrange100 as s,gray900 as c}from"@scandit/web-datacapture-core/build/js/private/ui/colors.js";import{ScanditHTMLElement as l}from"@scandit/web-datacapture-core/build/js/private/utils/ScanditHTMLElement.js";import{defineCustomElements as u}from"@scandit/web-datacapture-core/build/js/private/utils/defineCustomElements.js";import{css as d}from"@scandit/web-datacapture-core/build/js/private/utils/css.js";let f=function(e){return e[e.Top=`top-center`]=`Top`,e[e.Bottom=`bottom-center`]=`Bottom`,e[e.Left=`left-center`]=`Left`,e[e.Right=`right-center`]=`Right`,e}({});var p=class f extends l{constructor(){super(),this.annotationTrigger=`highlightTapAndBarcodeScan`,this.onToggleListener=this.onToggle.bind(this),this._backgroundColor=n.fromHex(`#fff`),this._icon=null,this.statusIconContainer=t.create()}get barcode(){return this._barcode}set barcode(e){this._barcode=e}set anchor(e){this.statusIconContainer.anchor=e}get anchor(){return this.statusIconContainer.anchor}set text(e){this.statusIconContainer.text=e}get text(){return this.statusIconContainer.text}set hasTip(e){this.statusIconContainer.toggleAttribute(`tip`,e)}get hasTip(){return this.statusIconContainer.hasAttribute(`tip`)}set icon(e){var t;(t=this.icon)==null||t.remove(),this._icon=e,e&&(e.slot=`barcode-icon`,e.width=24,e.height=24,e.setIconSize(16),this.statusIconContainer.append(e))}get icon(){return this.statusIconContainer.querySelector(r.tag)??this._icon}set backgroundColor(e){this._backgroundColor=e,this.statusIconContainer.backgroundColor=e}get backgroundColor(){return this.statusIconContainer.backgroundColor}set textColor(e){this.statusIconContainer.textColor=e}get textColor(){return this.statusIconContainer.textColor}static create(e){f.register();let t=document.createElement(f.tag);return t.barcode=e,t}static register(){u({[t.tag]:t,[f.tag]:f})}async connectedCallback(){if(!this._icon){let e=new i().withIcon(o.ExclamationMark).withBackgroundShape(a.Circle).withBackgroundColor(s).withIconColor(c).withWidth(24).withHeight(24).withIconSize(16);this._icon=await e.build()}this.icon=this._icon;let e=d`${f.tag}{align-items:center;display:flex;height:32px;justify-content:flex-start;overflow:visible;width:32px}${f.tag}:before{content:"";inset:-8px;position:absolute}`;this.append(e),this.append(this.statusIconContainer),this.statusIconContainer.append(this.icon),this.addEventListener(`pointerup`,this.onToggleListener)}disconnectedCallback(){this.removeEventListener(`pointerup`,this.onToggleListener)}onToggle(){this.statusIconContainer.expanded=!this.statusIconContainer.expanded}updatePosition(t,n,r){e(this,t,n,0)}};p.tag=`scandit-barcode-ar-status-icon-annotation`;export{p as BarcodeArStatusIconAnnotation,f as BarcodeArStatusIconAnnotationAnchor};