UNPKG

scandit-web-datacapture-barcode

Version:

Scandit Data Capture SDK for the Web

7 lines (4 loc) 4.35 kB
import { a } from './chunk-YPBONNUH.js'; import { NumberWithUnit, MeasureUnit, PointWithUnit, Anchor } from 'scandit-web-datacapture-core'; var f=new NumberWithUnit(0,MeasureUnit.Pixel),F=new PointWithUnit(f,f),m=Anchor.Center,p=class k{constructor(){this.listener=null;this.type="barcodeTrackingAdvanced";this._shouldShowScanAreaGuides=!1;this._viewForBarcode=new Map;this._anchorForBarcode=new Map;this._offsetForBarcode=new Map;this._viewForBarcodeFromListener=new Map;this._anchorForBarcodeFromListener=new Map;this._offsetForBarcodeFromListener=new Map;this._anchorPositions=new Map;this._barcodeForId=new Map;}get shouldShowScanAreaGuides(){return this._shouldShowScanAreaGuides}set shouldShowScanAreaGuides(i){this._shouldShowScanAreaGuides=i,this.barcodeTracking.notifyContext();}static async withBarcodeTrackingForView(i,r){let e=new k;return e.barcodeTracking=i,r&&(await r.addOverlay(e),e.view=r,e.privateListener=new a(e),i.addPrivateListener(e.privateListener),e.view.setDidTapCustomLocationsViewListener({didTapView:s=>{var t,d;let o=e.getTrackedBarcodeForIdentifier(s);o&&((d=(t=e.listener)==null?void 0:t.didTapViewForTrackedBarcode)==null||d.call(t,e,o));}})),e}async setViewForTrackedBarcode(i,r){if(i==null){this._viewForBarcode.set(r.identifier,null);return}let e=await i;e!=null&&this._viewForBarcode.set(r.identifier,e),this.barcodeTracking.isEnabled()||this.update();}setAnchorForTrackedBarcode(i,r){this._anchorForBarcode.set(r.identifier,i),this.barcodeTracking.isEnabled()||this.update();}setOffsetForTrackedBarcode(i,r){this._offsetForBarcode.set(r.identifier,i),this.barcodeTracking.isEnabled()||this.update();}clearTrackedBarcodeViews(){this._viewForBarcode.clear(),this.barcodeTracking.isEnabled()||this.update();}toJSONObject(){return {type:this.type,shouldShowScanAreaGuides:this._shouldShowScanAreaGuides}}getTrackedBarcodeForIdentifier(i){return this._barcodeForId.get(i)}async setViewForTrackedBarcodeFromListener(i,r){if(i==null){this._viewForBarcodeFromListener.set(r.identifier,null);return}let e=await i;e!=null&&this._viewForBarcodeFromListener.set(r.identifier,e);}processRemovedBarcodes(i){for(let r of i){let e=Number.parseInt(r,10);this._viewForBarcode.delete(e),this._anchorForBarcode.delete(e),this._offsetForBarcode.delete(e),this._anchorPositions.delete(e),this._viewForBarcodeFromListener.delete(e),this._anchorForBarcodeFromListener.delete(e),this._offsetForBarcodeFromListener.delete(e);}}processAddedBarcodes(i){var r,e,s,o,t,d,l;for(let a of i){if(this._anchorPositions.set(a.identifier,a.anchorPositions),this._barcodeForId.set(a.identifier,a),!this._viewForBarcodeFromListener.has(a.identifier)){let c=(s=(e=(r=this.listener)==null?void 0:r.viewForTrackedBarcode)==null?void 0:e.call(r,this,a))!=null?s:Promise.resolve(null);this.setViewForTrackedBarcodeFromListener(c,a);}if(!this._offsetForBarcodeFromListener.has(a.identifier)){let c=(t=(o=this.listener)==null?void 0:o.offsetForTrackedBarcode)==null?void 0:t.call(o,this,a);c!=null&&this._offsetForBarcodeFromListener.set(a.identifier,c);}if(!this._anchorForBarcodeFromListener.has(a.identifier)){let c=(l=(d=this.listener)==null?void 0:d.anchorForTrackedBarcode)==null?void 0:l.call(d,this,a);c!=null&&this._anchorForBarcodeFromListener.set(a.identifier,c);}}}processUpdatedTrackedBarcodes(i){for(let r of i)this._anchorPositions.set(r.identifier,r.anchorPositions),this._barcodeForId.set(r.identifier,r);}update(i){var s,o,t,d,l,a;i!=null&&(this.lastSession=i);let r=this.view;if(r===null)return;this.processRemovedBarcodes(this.lastSession.removedTrackedBarcodes),this.processAddedBarcodes(this.lastSession.addedTrackedBarcodes),this.processUpdatedTrackedBarcodes(this.lastSession.updatedTrackedBarcodes);let e={removedIds:this.lastSession.removedTrackedBarcodes,elements:[]};for(let c of Object.keys(this.lastSession.trackedBarcodes)){let n=Number.parseInt(c,10),h=(o=(s=this._viewForBarcode.get(n))!=null?s:this._viewForBarcodeFromListener.get(n))==null?void 0:o.toJSONObject();h!=null&&e.elements.push({view:h,identifier:n,anchor:(d=(t=this._anchorForBarcode.get(n))!=null?t:this._anchorForBarcodeFromListener.get(n))!=null?d:m,offset:(a=(l=this._offsetForBarcode.get(n))!=null?l:this._offsetForBarcodeFromListener.get(n))!=null?a:F,anchorPositions:this._anchorPositions.get(n)});}r.renderCustomLocationsView(e);}}; export { p as a };