UNPKG

@scandit/web-datacapture-barcode

Version:

Scandit Data Capture SDK for the Web

1 lines 3.35 kB
import {a}from'./chunk-CYVVGAZ4.js';import {Color,Brush,ScanditIconShape,ScanditIconBuilder}from'@scandit/web-datacapture-core';import {ScanditHTMLElement}from'@scandit/web-datacapture-core/build/js/private/utils/ScanditHTMLElement.js';import {css}from'@scandit/web-datacapture-core/build/js/private/utils/css.js';import {defineCustomElements}from'@scandit/web-datacapture-core/build/js/private/utils/defineCustomElements.js';import {html}from'@scandit/web-datacapture-core/build/js/private/utils/html.js';var g=(t=>(t.Dot="dot",t.Icon="icon",t))(g||{}),s=Color.fromHex("#00FFFF"),m=s.withAlpha(0),i=class i extends ScanditHTMLElement{constructor(){super();this._isPulsing=false;this._icon=null;this.dot=null;this._brush=new Brush(s.withAlpha(.45),Color.fromHex("#00FFFF"),2);let t=this.attachShadow({mode:"open"});t.innerHTML=html`<slot></slot>`,t.append(i.createStyleElement().cloneNode(true));}set isPulsing(t){this._isPulsing=t,this.toggleAttribute("pulse",t);}get isPulsing(){return this._isPulsing}set icon(t){var e;(e=this._icon)==null||e.remove(),this._icon=t,t&&this.preset==="icon"&&(t.backgroundShape=ScanditIconShape.Circle,this.append(t),this.updateBrush(),this.updateSize());}get icon(){return this._icon}set barcode(t){this._barcode=t;}get barcode(){return this._barcode}set brush(t){this._brush=t,this.updateBrush();}get brush(){return this._brush}set size(t){this._size=t,this.updateSize();}get size(){return this._size!==void 0?this._size:this.preset==="dot"?26:32}static create(t,e){i.register();let o=document.createElement(i.tag);return o.barcode=t,o.preset=e,o}static register(){defineCustomElements({[i.tag]:i});}static createStyleElement(){return css`:host{border-radius:50%;display:inline-flex;--fill:#${s.toJSON()};--fill-no-opacity:#${m.toJSON()};--size:20px}:host([pulse]){animation:pulse 1.5s infinite}:host(:not([pulse])){animation:none}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--fill)}70%{box-shadow:0 0 0 var(--size) var(--fill-no-opacity)}to{box-shadow:0 0 0 0 var(--fill-no-opacity)}}`}async connectedCallback(){this.brushBuilder=new ScanditIconBuilder().withBackgroundShape(ScanditIconShape.Circle).withBackgroundColor(this.brush.fillColor).withBackgroundStrokeColor(this.brush.strokeColor).withBackgroundStrokeWidth(this.brush.strokeWidth),this.dot=await this.brushBuilder.build(),this.preset==="dot"?this.append(this.dot):this.preset==="icon"&&this._icon!=null&&(this._icon.backgroundShape=ScanditIconShape.Circle,this.append(this._icon)),this.updateBrush(),this.updateSize();}updateSize(){this.dot&&(this.dot.width=this.size,this.dot.height=this.size),this.icon&&(this.icon.width=this.size,this.icon.height=this.size),this.style.setProperty("--size",`${this.size*9/10}px`);}updateBrush(){this.dot&&(this.dot.backgroundColor=this._brush.fillColor,this.dot.backgroundStrokeColor=this._brush.strokeColor,this.dot.backgroundStrokeWidth=this._brush.strokeWidth),this.icon&&(this.icon.backgroundColor=this._brush.fillColor,this.icon.backgroundStrokeColor=this._brush.strokeColor,this.icon.backgroundStrokeWidth=this._brush.strokeWidth),this.style.setProperty("--fill",`#${this._brush.fillColor.toJSON()}`),this.style.setProperty("--fill-no-opacity",`#${this._brush.fillColor.withAlpha(0).toJSON()}`);}updatePosition(t,e,o){a(this,t,e,0);}};i.tag="scandit-barcode-ar-circle-highlight";var l=i;export{g as a,l as b};