UNPKG

xtendui

Version:

Xtend UI is a powerful frontend library of Tailwind CSS components enhanced by vanilla js. It helps you build interfaces with advanced interactions and animations.

3 lines 5.59 kB
/*! For license information please see 664.min.js.LICENSE.txt */ "use strict";(globalThis.webpackChunkxtendui=globalThis.webpackChunkxtendui||[]).push([[664],{4664:(t,e,n)=>{n.r(e),n.d(e,{GroupnumberInit:()=>s});var i=n(5498);class s{_init(){this._initVars(),this._initLogic()}_initVars(){const t=this;t._optionsDefault=i.Xt.merge([t.constructor.optionsDefault,i.Xt.options[t.componentName]]),t._optionsInitial=t.options=i.Xt.merge([t._optionsDefault,t._optionsCustom])}_initLogic(){var t,e;const n=this,s=n.options;n.ns=n.ns??i.Xt.uniqueId(),n.enable(),i.Xt._initMatches({self:n,optionsInitial:n._optionsInitial}),n.initial=!0,n.inputs=n.container.querySelectorAll(s.inputs),n.steps=n.container.querySelectorAll(s.steps);for(const t of n.inputs)i.Xt.dataStorage.set(t,`voidable/${n.ns}`,""===t.value);const o=null!==(t=s.events)&&void 0!==t&&t.steps?s.events.steps.split(" "):[];if(o.length)for(const t of n.steps){const e=i.Xt.dataStorage.put(t,`${s.events.steps}/${n.ns}`,n._eventChange.bind(n,{button:t}));for(const n of o)t.addEventListener(n,e)}const a=null!==(e=s.events)&&void 0!==e&&e.input?s.events.input.split(" "):[];if(a.length)for(const t of n.inputs){const e=i.Xt.dataStorage.put(t,`${s.events.input}/${n.ns}`,n._eventChange.bind(n,{}));for(const n of a)t.addEventListener(n,e)}n._initA11y(),n._initStart(),n.container.dispatchEvent(new CustomEvent(`setup.${n._componentNs}`)),i.Xt.frameDouble({el:n.container,ns:`${n.ns}Init`,func:()=>{n.container.setAttribute(`data-${n.componentName}-init`,""),n.container.dispatchEvent(new CustomEvent(`init.${n._componentNs}`)),n.initial=!1,s.debug&&console.debug(`${n.componentName} init`,n)}}),n.options.disabled&&n.disable()}_initStart(){const t=this;t.disabled||t._eventChange.bind(t)()}_eventChange(){var t;let{button:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;const s=this,o=s.options;if(!(s.disabled||null!=n&&null!==(t=n.detail)&&void 0!==t&&t.skip)){n&&(n.preventDefault(),n.stopImmediatePropagation());for(const t of s.inputs){const n=t.getAttribute("step"),i=null==e?void 0:e.getAttribute("data-xt-step"),o=n&&""!==n?parseFloat(n)*Math.sign(parseFloat(i)):parseFloat(i)??1;let a=parseFloat(t.value);a=isNaN(a)?0:a,o&&(a+=o,a=parseFloat(a.toFixed(s._countDecimals({num:o})))),s._validate({val:a,input:t}),s.initial||s._initA11yLive({input:t})}if(o.limit)for(const t of s.steps){i.Xt.dataStorage.get(t,`${s.ns}ButtonDisabled`)?t.setAttribute("disabled","disabled"):t.removeAttribute("disabled"),i.Xt.dataStorage.remove(t,`${s.ns}ButtonDisabled`)}}}_validate(){let{val:t,input:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=this,s=n.options,o=e.getAttribute("step"),a=o&&""!==o?parseFloat(o):null;if(s.validate&&(t=s.validate({val:t,step:a})),s.limit){const o=i.Xt.dataStorage.get(e,`voidable/${n.ns}`),a=e.getAttribute("min"),l=e.getAttribute("max"),r=a&&""!==a?parseFloat(a):s.min,p=l&&""!==l?parseFloat(l):s.max;for(const e of n.steps){const s=e.getAttribute("data-xt-step");let a,l;o&&(0===t&&(t=""),r>=0&&(a=!0,t<r&&(t="")),p<=0&&(l=!0,t>p&&(t=""))),s<0?(t<r||!a&&t===r||a&&""===t)&&(t=""!==t?r:t,i.Xt.dataStorage.set(e,`${n.ns}ButtonDisabled`,!0)):s>0&&(t>p||!l&&t===p||l&&""===t)&&(t=""!==t?p:t,i.Xt.dataStorage.set(e,`${n.ns}ButtonDisabled`,!0))}}e.value=t,n.initial||(e.dispatchEvent(new Event("input",{detail:{skip:!0}})),e.dispatchEvent(new CustomEvent("change",{detail:{skip:!0}})))}enable(){const t=this;t.disabled&&(t.disabled=!1,t.container.dispatchEvent(new CustomEvent(`status.${t._componentNs}`)))}disable(){let{skipEvent:t=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this;e.disabled||(e.disabled=!0,t||e.container.dispatchEvent(new CustomEvent(`status.${e._componentNs}`)))}_initA11y(){const t=this;t.options.a11y&&(t._initA11yId(),t._initA11ySetup())}_initA11yId(){const t=this;if(t.options.a11y.controls)for(const e of t.inputs){e.getAttribute("id")||e.setAttribute("id",i.Xt.uniqueId())}}_initA11ySetup(){const t=this;if(t.options.a11y.controls){let e="";for(const n of t.inputs)e+=`${n.getAttribute("id")} `;for(const n of t.steps)n.setAttribute("aria-controls",e.trim())}}_initA11yLive(t){var e;let{input:n}=t;const s=this,o=s.options;var a;null!==(e=o.a11y)&&void 0!==e&&e.live&&(null===(a=s.container.querySelector("[aria-live]"))||void 0===a||a.remove(),clearTimeout(s.container.dataset.liveTimeout),s.container.dataset.liveTimeout=setTimeout((()=>{const t=s.container.appendChild(i.Xt.node({str:`<span class="sr-only" aria-live="${o.a11y.live}" aria-atomic="true"></span>`}));s.container.dataset.liveTimeout=setTimeout((()=>{const e=n.getAttribute("aria-label")??"";t.innerHTML=e?`${e} ${n.value}`:n.value}),500)}),500))}_countDecimals(){let{num:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Math.floor(t)===t?0:t.toString().split(".")[1].length||0}reinit(){this._initLogic()}destroy(){var t,e;const n=this,s=n.options,o=null!==(t=s.events)&&void 0!==t&&t.steps?s.events.steps.split(" "):[];if(o.length)for(const t of n.steps){const e=i.Xt.dataStorage.get(t,`${s.events.steps}/${n.ns}`);for(const n of o)t.removeEventListener(n,e)}const a=null!==(e=s.events)&&void 0!==e&&e.input?s.events.input.split(" "):[];if(a.length)for(const t of n.inputs){const e=i.Xt.dataStorage.get(t,`${s.events.input}/${n.ns}`);for(const n of a)t.removeEventListener(n,e)}n.container.removeAttribute(`data-${n.componentName}-init`),i.Xt._remove({name:n.componentName,el:n.container}),n.container.dispatchEvent(new CustomEvent(`destroy.${n._componentNs}`))}}}}]); //# sourceMappingURL=664.min.js.map