UNPKG

@scandit/web-datacapture-core

Version:

Scandit Data Capture SDK for the Web

1 lines 3.93 kB
import {a as a$2}from'../../../chunks/chunk-J6LCRGZO.js';import {a as a$3}from'../../../chunks/chunk-BIJB4K7G.js';import {b}from'../../../chunks/chunk-74GO72VC.js';import {a as a$6}from'../../../chunks/chunk-4JH6EEAE.js';import {a as a$7}from'../../../chunks/chunk-SGL5J2CI.js';import {a as a$4}from'../../../chunks/chunk-3A4KLILV.js';import {a as a$1}from'../../../chunks/chunk-UWBNF47P.js';import {a}from'../../../chunks/chunk-EV4OEANA.js';import {a as a$5}from'../../../chunks/chunk-LSZZVJ6B.js';var i=class i extends a{constructor(){super();this._currentMode="back";this._ariaLabel="Switch camera";this._useCustomImages=false;let t=this.attachShadow({mode:"open"});t.innerHTML=a$1`<button type="button"><slot></slot></button>`,t.append(i.createStyleElement().cloneNode(true));}get button(){var t,e;return (e=(t=this.shadowRoot)==null?void 0:t.querySelector("button"))!=null?e:void 0}get frontIcon(){var t;return (t=this.querySelector(a$2.tag))!=null?t:void 0}get backIcon(){var t;return (t=this.querySelector(a$3.tag))!=null?t:void 0}static create(){return document.createElement(i.tag)}static register(){a$4({[i.tag]:i});}static createStyleElement(){return a$5`:host{display:inline-block;--button-size:32px;--camera-switch-idle:none;--camera-switch-pressed:none}:host[hidden]{display:none}button{align-items:center;border:none;cursor:pointer;display:flex;height:var(--button-size);justify-content:center;margin:0;outline:none;padding:0;width:var(--button-size);-webkit-tap-highlight-color:transparent;background:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;opacity:1;transform-origin:center;transition:outline .2s ease-in-out,transform .1s ease-in-out}button[data-pressed=true]{transform:scale(.95)}button[data-pressed=false]{transform:scale(1)}:host button:focus-visible{outline:2px solid #06c;outline-offset:2px}:host([data-use-custom-images=true]) ::slotted(*){display:none!important}:host([data-use-custom-images=true]) button{background-image:var(--camera-switch-idle)}:host([data-use-custom-images=true]) button[data-pressed=true]{background-image:var(--camera-switch-pressed)}`}connectedCallback(){this.button&&(this.setupButtonWithSvgIcons(),!this._gestureRecognizer&&this.button&&(this._gestureRecognizer=new a$6(this.button),this._gestureRecognizer.addListener(this)),this.setAttribute("aria-label",this._ariaLabel));}setupButtonWithSvgIcons(){if(!this.button)return;a$2.register(),a$3.register();let t=a$7.fromHex("#FFFFFF");if(!this.frontIcon){let e=a$2.create();e.fill=`#${t.toJSON()}`,e.style.display="flex",this.appendChild(e);}if(!this.backIcon){let e=a$3.create();e.fill=`#${t.toJSON()}`,e.style.display="none",this.appendChild(e);}}disconnectedCallback(){this._gestureRecognizer&&(this._gestureRecognizer.removeAllListeners(),this._gestureRecognizer=void 0);}set mode(t){t!=="front"&&t!=="back"||(this._currentMode=t,this.updateIconVisibility());}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){this._ariaLabel=t,this.setAttribute("aria-label",t);}set useCustomImages(t){this._useCustomImages=t,t?this.setAttribute("data-use-custom-images","true"):this.removeAttribute("data-use-custom-images");}setCustomImages(t){let e=this.style,h=t.idle?`url(${JSON.stringify(t.idle)})`:"none",m=t.pressed?`url(${JSON.stringify(t.pressed)})`:"none";e.setProperty("--camera-switch-idle",h),e.setProperty("--camera-switch-pressed",m),this.useCustomImages=true;}updateIconVisibility(){let t=this.frontIcon,e=this.backIcon;!t||!e||(this._currentMode==="back"?(t.style.display="none",e.style.display="flex"):(t.style.display="flex",e.style.display="none"));}onTap(){this.dispatchEvent(new b({currentMode:this._currentMode}));}onPress(){let t=this.button;t&&t.setAttribute("data-pressed","true");}onRelease(){let t=this.button;t&&t.setAttribute("data-pressed","false");}};i.tag="scandit-camera-switch-button";var p=i;export{p as CameraSwitchButton};