@public-ui/components
Version:
Contains all web components that belong to KoliBri - The accessible HTML-Standard.
4 lines • 3.55 kB
JavaScript
/*!
* KoliBri - The accessible HTML-Standard
*/
import{h as t}from"./index-BTX696j0.js";import{_ as n}from"./tslib.es6-CxX45GIN.js";import{d as o}from"./component-names-B_kYyA8u.js";import{K as e}from"./Icon-D1kml7sZ.js";import{c as s}from"./clsx-eK3rPvPS.js";import{w as i}from"./common-BXXICkFX.js";import{g as r,i as c,I as a}from"./FormFieldStateWrapper-D0MLneaJ.js";import{i as l}from"./InternalUnderlinedBadgeText-BQrldqrS.js";import{i as d}from"./isObject-DvSELytj.js";import{v as m}from"./icons-DpMX_jnF.js";const u=(o,e)=>{var{position:i="start",class:r}=o,a=n(o,["position","class"]);const c="kol-input-container__adornment",l=`${c}--${i}`;return t("div",Object.assign({class:s(c,l,r)},a),e)};function b(n){return!!n&&(Array.isArray(n)?n.length>0:Boolean(n))}const p=(o,e)=>{var{class:i}=o,r=n(o,["class"]);return t("div",Object.assign({class:s("kol-input-container__container",i)},r),e)},f=(o,e)=>{const{class:i,startAdornment:a,endAdornment:l,disabled:m,msg:d,touched:h,containerProps:g,startAdornmentProps:j,endAdornmentProps:_}=o,f=n(o,["class","startAdornment","endAdornment","disabled","msg","touched","containerProps","startAdornmentProps","endAdornmentProps"]),k={"kol-input-container--disabled":m,[`kol-input-container--${r(d)}`]:c(d,h)},A=Object.assign({class:s("kol-input-container",k,i)},f);return b(a)||b(l)?t("div",Object.assign({},A),t(u,Object.assign({},j,{position:"start"}),a),t(p,Object.assign({},g),e),t(u,Object.assign({},_,{position:"end"}),l)):t("div",Object.assign({},A),t(p,Object.assign({},g),e))},j=s=>{const{label:e,icons:i,hideLabel:r,disabled:a,onClick:c}=s,l=n(s,["label","icons","hideLabel","disabled","onClick"]);return t(o,Object.assign({_label:e,_disabled:a,_icons:i,_hideLabel:r,_on:{onClick:c}},l))},h=s=>{const{componentName:o="button",label:i,icon:r,onClick:a}=s,c=n(s,["componentName","label","icon","onClick"]);return t("button"===o?j:e,Object.assign({label:i||"",hideLabel:!0,icons:`${r}`,onClick:a},c))};function _(n){let t,s;return"_icons"in n&&(t=n._icons),"_smartButton"in n&&(s=n._smartButton),{icons:t,smartButton:s,disabled:n._disabled,msg:n._msg,touched:n._touched}}const k=({state:n,startAdornment:s,endAdornment:o},e)=>{const{icons:i,smartButton:r,disabled:a,msg:c,touched:m}=_(n);let u=null==i?void 0:i.left;l(u)&&(u={icon:u});let p=null==i?void 0:i.right;l(p)&&(p={icon:p});const b=[],g=[];return s&&(Array.isArray(s)?b.push(...s):b.push(s)),u&&b.push(t(h,Object.assign({componentName:"icon",class:"kol-input-container__icon"},d(u)?u:{}))),d(r)&&g.push(t(h,Object.assign({componentName:"button",class:"kol-input-container__smart-button"},r,{hideLabel:!0,disabled:a}))),p&&g.push(t(h,Object.assign({componentName:"icon",class:"kol-input-container__icon"},d(p)?p:{}))),o&&(Array.isArray(o)?g.push(...o):g.push(o)),t(f,{disabled:a,msg:c,touched:m,startAdornment:b,endAdornment:g},e)};class v extends a{constructor(n,t,s){super(n,t,s),this.numberStringRegex=/^\d+(\.\d+)?$/,this.parseToNumber=n=>"number"==typeof n?isNaN(n)?null:n:this.isNumberString(n)?parseFloat(n):null,this.validateNumber=(n,t)=>i(this.component,n,n=>null==n||"number"==typeof n||"string"==typeof n&&this.numberStringRegex.test(n),new Set(["number","NumberString"]),t,{hooks:{beforePatch:(t,s)=>{(null==s?void 0:s.has(n))&&(null==s||s.set(n,this.parseToNumber(t)))}}}),this.component=n}validateIcons(n){m(this.component,n)}isNumberString(n){return"string"==typeof n&&this.numberStringRegex.test(n)}componentWillLoad(){super.componentWillLoad(),this.validateIcons(this.component._icons)}}export{v as I,h as K,k as a};