UNPKG

@public-ui/components

Version:

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

4 lines 3.53 kB
/*! * KoliBri - The accessible HTML-Standard */ import{h as n}from"./index-1ed13705.js";import{w as t}from"./index-ebe5a881.js";import{_ as o}from"./tslib.es6-1173d062.js";import{c as e}from"./clsx-09a06a12.js";import{c as s,a as i,I as r}from"./getRenderStates-c4b5c6cb.js";import{b as c}from"./component-names-7924d82a.js";import{K as a}from"./Icon-446dff9e.js";import{i as d}from"./InternalUnderlinedBadgeText-781ef373.js";import{i as l}from"./isObject-ffcbbb76.js";import{v as m}from"./icons-a9c52ed8.js";const u=(t,s)=>{var{position:i="start",class:a}=t,r=o(t,["position","class"]);const c="kol-input-container__adornment",l=`${c}--${i}`;return n("div",Object.assign({class:e(c,l,a)},r),s)};function b(n){return!!n&&(Array.isArray(n)?n.length>0:Boolean(n))}const p=(t,s)=>{var{class:i}=t,a=o(t,["class"]);return n("div",Object.assign({class:e("kol-input-container__container",i)},a),s)},f=(t,i)=>{const{class:a,startAdornment:r,endAdornment:c,disabled:l,msg:d,touched:m,containerProps:h,startAdornmentProps:g,endAdornmentProps:j}=t,_=o(t,["class","startAdornment","endAdornment","disabled","msg","touched","containerProps","startAdornmentProps","endAdornmentProps"]),f=s(d,m),k={"kol-input-container--disabled":l,[`kol-input-container--${(null==d?void 0:d.type)||"error"}`]:f},v=Object.assign({class:e("kol-input-container",k,a)},_);return b(r)||b(c)?n("div",Object.assign({},v),n(u,Object.assign({},g,{position:"start"}),r),n(p,Object.assign({},h),i),n(u,Object.assign({},j,{position:"end"}),c)):n("div",Object.assign({},v),n(p,Object.assign({},h),i))},j=t=>{const{label:s,icons:e,hideLabel:i,disabled:a,onClick:r}=t,l=o(t,["label","icons","hideLabel","disabled","onClick"]);return n(c,Object.assign({_label:s,_disabled:a,_icons:e,_hideLabel:i,_on:{onClick:r}},l))},h=t=>{const{componentName:s="button",label:e,icon:i,onClick:r}=t,c=o(t,["componentName","label","icon","onClick"]);return n("button"===s?j:a,Object.assign({label:e||"",hideLabel:!0,icons:`codicon codicon-${i}`,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:i(n._msg),touched:n._touched}}const _=({state:t,endAdornment:s},e)=>{const{icons:o,smartButton:i,disabled:a,msg:r,touched:c}=v(t);let m=null==o?void 0:o.left;d(m)&&(m={icon:m});let b=null==o?void 0:o.right;d(b)&&(b={icon:b});const u=[],p=[];return s&&(Array.isArray(s)?p.push(...s):p.push(s)),m&&u.push(n(h,Object.assign({componentName:"icon",class:"kol-input-container__icon"},l(m)?m:{}))),l(i)&&p.push(n(h,Object.assign({componentName:"button",class:"kol-input-container__smart-button"},i,{hideLabel:!0,disabled:a}))),b&&p.push(n(h,Object.assign({componentName:"icon",class:"kol-input-container__icon"},l(b)?b:{}))),n(f,{disabled:a,msg:r,touched:c,startAdornment:u,endAdornment:p},e)};class k extends r{constructor(n,s,e){super(n,s,e),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,h as K,_ as a};