UNPKG

@public-ui/components

Version:

Contains all web components that belong to KoliBri - The accessible HTML-Standard.

4 lines 3.54 kB
/*! * KoliBri - The accessible HTML-Standard */ import{h as n}from"./index-CElQfBOC.js";import{w as t}from"./common-7RW_NFNf.js";import{c as o,a as e,I as s}from"./FormFieldStateWrapper-BlcmQgCr.js";import{_ as i}from"./Heading-D6_TFw6T.js";import{c as r}from"./clsx-eK3rPvPS.js";import{d as c}from"./component-names-CkE54Ym7.js";import{K as a}from"./Icon-DGehfe8Q.js";import{i as l}from"./InternalUnderlinedBadgeText-DnxrXpNU.js";import{i as d}from"./isObject-DvSELytj.js";import{v as m}from"./icons-mdo32hNB.js";const u=(t,s)=>{var{position:o="start",class:e}=t,a=i(t,["position","class"]);const c="kol-input-container__adornment",l=`${c}--${o}`;return n("div",Object.assign({class:r(c,l,e)},a),s)};function b(n){return!!n&&(Array.isArray(n)?n.length>0:Boolean(n))}const p=(t,s)=>{var{class:o}=t,e=i(t,["class"]);return n("div",Object.assign({class:r("kol-input-container__container",o)},e),s)},f=(t,s)=>{const{class:e,startAdornment:a,endAdornment:c,disabled:l,msg:d,touched:m,containerProps:h,startAdornmentProps:g,endAdornmentProps:j}=t,_=i(t,["class","startAdornment","endAdornment","disabled","msg","touched","containerProps","startAdornmentProps","endAdornmentProps"]),f=o(d,m),k={"kol-input-container--disabled":l,[`kol-input-container--${(null==d?void 0:d.type)||"error"}`]:f},v=Object.assign({class:r("kol-input-container",k,e)},_);return b(a)||b(c)?n("div",Object.assign({},v),n(u,Object.assign({},g,{position:"start"}),a),n(p,Object.assign({},h),s),n(u,Object.assign({},j,{position:"end"}),c)):n("div",Object.assign({},v),n(p,Object.assign({},h),s))},h=t=>{const{label:s,icons:o,hideLabel:e,disabled:r,onClick:a}=t,l=i(t,["label","icons","hideLabel","disabled","onClick"]);return n(c,Object.assign({_label:s,_disabled:r,_icons:o,_hideLabel:e,_on:{onClick:a}},l))},j=t=>{const{componentName:s="button",label:o,icon:e,onClick:r}=t,c=i(t,["componentName","label","icon","onClick"]);return n("button"===s?h:a,Object.assign({label:o||"",hideLabel:!0,icons:`codicon codicon-${e}`,onClick:r},c))};function v(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:e(n._msg),touched:n._touched}}const _=({state:t,endAdornment:s},o)=>{const{icons:e,smartButton:i,disabled:r,msg:a,touched:c}=v(t);let m=null==e?void 0:e.left;l(m)&&(m={icon:m});let u=null==e?void 0:e.right;l(u)&&(u={icon:u});const p=[],b=[];return s&&(Array.isArray(s)?b.push(...s):b.push(s)),m&&p.push(n(j,Object.assign({componentName:"icon",class:"kol-input-container__icon"},d(m)?m:{}))),d(i)&&b.push(n(j,Object.assign({componentName:"button",class:"kol-input-container__smart-button"},i,{hideLabel:!0,disabled:r}))),u&&b.push(n(j,Object.assign({componentName:"icon",class:"kol-input-container__icon"},d(u)?u:{}))),n(f,{disabled:r,msg:a,touched:c,startAdornment:p,endAdornment:b},o)};class k extends s{constructor(n,s,o){super(n,s,o),this.numberStringRegex=/^\d+(\.\d+)?$/,this.parseToNumber=n=>"number"==typeof n?isNaN(n)?null:n:this.isNumberString(n)?parseFloat(n):null,this.validateNumber=(n,s)=>t(this.component,n,(n=>null==n||"number"==typeof n||"string"==typeof n&&this.numberStringRegex.test(n)),new Set(["number","NumberString"]),s,{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{k as I,j as K,_ as a};