@scandit/web-datacapture-core
Version:
Scandit Data Capture SDK for the Web
1 lines • 4.48 kB
JavaScript
import {a as a$3}from'../../../chunks/chunk-TXVFFRVY.js';import {a as a$2}from'../../../chunks/chunk-D6JKW7G4.js';import {a as a$7}from'../../../chunks/chunk-74GO72VC.js';import {a as a$6}from'../../../chunks/chunk-4JH6EEAE.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="1.0x";this._ariaLabel="Switch camera field of view";this._useCustomImages=false;let e=this.attachShadow({mode:"open"});e.innerHTML=a$1`<button type="button"><slot></slot></button>`,e.append(i.createStyleElement().cloneNode(true));}get button(){var e,t;return (t=(e=this.shadowRoot)==null?void 0:e.querySelector("button"))!=null?t:void 0}get wideIcon(){var e;return (e=this.querySelector(a$2.tag))!=null?e:void 0}get ultraWideIcon(){var e;return (e=this.querySelector(a$3.tag))!=null?e: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-fov-wide-idle:none;--camera-fov-wide-pressed:none;--camera-fov-ultrawide-idle:none;--camera-fov-ultrawide-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;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-fov-wide-idle)}:host([data-use-custom-images=true]) button[data-pressed=true]{background-image:var(--camera-fov-wide-pressed)}:host([data-use-custom-images=true][data-current-mode="0.5x"]) button{background-image:var(--camera-fov-ultrawide-idle)}:host([data-use-custom-images=true][data-current-mode="0.5x"]) button[data-pressed=true]{background-image:var(--camera-fov-ultrawide-pressed)}`}connectedCallback(){if(!this.button)return;this.setupButtonWithSvgIcons();let e=this.button;!this._gestureRecognizer&&e&&(this._gestureRecognizer=new a$6(e),this._gestureRecognizer.addListener(this)),this.setAttribute("aria-label",this._ariaLabel);}setupButtonWithSvgIcons(){if(this.button){if(a$2.register(),a$3.register(),!this.wideIcon){let e=a$2.create();e.style.display="flex",this.appendChild(e);}if(!this.ultraWideIcon){let e=a$3.create();e.style.display="none",this.appendChild(e);}}}disconnectedCallback(){this._gestureRecognizer&&(this._gestureRecognizer.removeAllListeners(),this._gestureRecognizer=void 0);}set mode(e){e!=="0.5x"&&e!=="1.0x"||(this._currentMode=e,this.setAttribute("data-current-mode",e),this.updateIconVisibility());}get mode(){return this._currentMode}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.setAttribute("aria-label",e);}set useCustomImages(e){this._useCustomImages=e,e?this.setAttribute("data-use-custom-images","true"):this.removeAttribute("data-use-custom-images");}setCustomImages(e){let t=this.style,p=e.wide.idle?`url(${JSON.stringify(e.wide.idle)})`:"none",m=e.wide.pressed?`url(${JSON.stringify(e.wide.pressed)})`:"none",g=e.ultraWide.idle?`url(${JSON.stringify(e.ultraWide.idle)})`:"none",b=e.ultraWide.pressed?`url(${JSON.stringify(e.ultraWide.pressed)})`:"none";t.setProperty("--camera-fov-wide-idle",p),t.setProperty("--camera-fov-wide-pressed",m),t.setProperty("--camera-fov-ultrawide-idle",g),t.setProperty("--camera-fov-ultrawide-pressed",b),this.useCustomImages=true;}updateIconVisibility(){let e=this.wideIcon,t=this.ultraWideIcon;!e||!t||(this._currentMode==="0.5x"?(e.style.display="none",t.style.display="flex"):(e.style.display="flex",t.style.display="none"));}onTap(){this.dispatchEvent(new a$7({currentMode:this._currentMode}));}onPress(){let e=this.button;e&&e.setAttribute("data-pressed","true");}onRelease(){let e=this.button;e&&e.setAttribute("data-pressed","false");}};i.tag="scandit-camera-fov-switch-button";var c=i;export{c as CameraFOVSwitchButton};