This commit is contained in:
2026-01-05 12:47:14 +08:00
commit 1fc846fae3
1614 changed files with 162035 additions and 0 deletions

View File

@@ -0,0 +1 @@
"use strict";const e=require("../../../../common/vendor.js"),o=require("../_constants/event.js"),t=require("../_constants/prefix.js"),r=require("../_utils/env.js"),n=require("../_utils/style.js"),a=require("../../../../form.js"),l=require("../_utils/is.js"),i=require("../_utils/props.js"),u=require("./util.js"),s={...i.commonProps,type:i.makeStringProp("text"),modelValue:i.makeNumericProp(""),inputClass:{type:[String,Object,Array],default:""},inputStyle:{type:[String,Object,Array],default:""},placeholder:i.makeStringProp(""),placeholderStyle:i.makeStringProp(""),placeholderClass:i.makeStringProp("input-placeholder"),inputAlign:i.makeStringProp("left"),required:Boolean,disabled:i.nullableBooleanProp,readonly:Boolean,error:Boolean,maxLength:i.makeNumericProp(140),clearable:Boolean,clearSize:i.makeNumericProp("14"),border:i.truthProp,formatTrigger:i.makeStringProp("onChange"),formatter:{type:Function,default:null},showWordLimit:Boolean,autofocus:Boolean,confirmType:i.makeStringProp("done"),adjustPosition:i.truthProp,alwaysSystem:Boolean,showClearIcon:Boolean,inputMode:i.makeStringProp("text"),cursorSpacing:i.makeNumberProp(0),alwaysEmbed:Boolean,confirmHold:Boolean,cursor:Number,selectionStart:i.makeNumberProp(-1),selectionEnd:i.makeNumberProp(-1),holdKeyboard:Boolean},c={[o.CLICK_EVENT]:e=>e instanceof Object,clickInput:e=>e instanceof Object,[o.BLUR_EVENT]:e=>e instanceof Object,[o.FOCUS_EVENT]:e=>e instanceof Object,[o.CLEAR_EVENT]:()=>!0,[o.CONFIRM_EVENT]:e=>e instanceof Object,[o.UPDATE_MODEL_EVENT]:(e,o)=>(l.isString(e)||l.isNumber(e))&&(o instanceof Object||void 0===o),[o.INPUT_EVENT]:(e,o)=>(l.isString(e)||l.isNumber(e))&&o instanceof Object};Math||m();const m=()=>"../icon/icon.js",d=`${t.PREFIX}-input`,p=e.defineComponent({name:d,options:{virtualHost:!0,addGlobalClass:!0,styleIsolation:"shared"}}),f=e.defineComponent({...p,props:s,emits:c,setup(t,{emit:l}){const i=t,s=l,c=e.useSlots();function m(e){return Boolean(c[e])}const p=a.useFormDisabled(e.toRef(i,"disabled"));function f(){return null==i.modelValue?"":String(i.modelValue)}const g=e.computed((()=>f())),E=e.computed((()=>n.getMainClass(i,d,{[`${d}--disabled`]:p.value,[`${d}--required`]:i.required,[`${d}--error`]:i.error,[`${d}--border`]:i.border}))),b=e.computed((()=>[i.inputStyle,{textAlign:i.inputAlign}])),v=e.computed((()=>null==i.maxLength?-1:Number(i.maxLength)));function y(e,t="onChange"){v.value>0&&e.length>v.value&&(e=e.slice(0,v.value)),"number"===i.type&&(e=u.formatNumber(e,!1,!1)),"digit"===i.type&&(e=u.formatNumber(e,!0,!0)),i.formatter&&t===i.formatTrigger&&(e=i.formatter(e)),s(o.UPDATE_MODEL_EVENT,e)}function h(t){y(t.detail.value),e.nextTick$1((()=>{s(o.INPUT_EVENT,g.value,t)}))}function N(e){if(r.isH5){e.target.composing||h(e)}else h(e)}function S(e){s(o.CLICK_EVENT,e)}function T(e){p.value||s("clickInput",e)}const P=e.ref(!1),_=e.ref(!1);function C(e){p.value||i.readonly||(s(o.FOCUS_EVENT,e),P.value=!0)}function j(e){p.value||i.readonly||(s(o.BLUR_EVENT,e),setTimeout((()=>{P.value=!1}),200),_.value?_.value=!1:y(e.detail.value,"onBlur"))}function V(e){s(o.CONFIRM_EVENT,e)}function k(e){p.value||(s(o.UPDATE_MODEL_EVENT,"",e),s(o.CLEAR_EVENT),_.value=!0)}function B(e){if(r.isH5){e.target.composing=!0}}function O(e){if(r.isH5){const o=e.target;o.composing&&(o.composing=!1,o.dispatchEvent(new Event("input")))}}return e.watch((()=>i.modelValue),(e=>{e!==g.value&&y(f())})),e.onMounted((()=>{y(f(),i.formatTrigger)})),(o,t)=>e.e({a:m("left")},(m("left"),{}),{b:e.n(i.inputClass),c:e.s(b.value),d:g.value,e:i.type,f:i.placeholder,g:i.placeholderStyle,h:i.placeholderClass,i:e.unref(p),j:i.readonly,k:i.autofocus,l:v.value,m:i.formatTrigger,n:!!i.autofocus||void 0,o:i.confirmType,p:i.adjustPosition,q:i.alwaysSystem,r:i.inputMode,s:i.cursorSpacing,t:i.alwaysEmbed,v:i.confirmHold,w:i.cursor,x:i.selectionStart,y:i.selectionEnd,z:i.holdKeyboard,A:e.o(N),B:e.o(C),C:e.o(j),D:e.o(T),E:e.o(O),F:e.o(B),G:e.o(O),H:e.o(V),I:i.readonly},i.readonly?{J:e.o(T)}:{},{K:i.showWordLimit&&v.value>0},i.showWordLimit&&v.value>0?{L:e.t(g.value.length),M:e.t(v.value)}:{},{N:i.clearable&&!i.readonly},i.clearable&&!i.readonly?e.e({O:m("clear")},m("clear")?{}:{P:e.p({name:"mask-close","custom-class":"nut-input__clear-icon",size:i.clearSize,width:i.clearSize,height:i.clearSize})},{Q:(P.value||i.showClearIcon)&&g.value.length>0?"":1,R:e.o(k)}):{},{S:m("right")},(m("right"),{}),{T:e.n(E.value),U:e.s(i.customStyle),V:e.o(S)})}});wx.createComponent(f);

View File

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"nut-icon": "../icon/icon"
}
}

View File

@@ -0,0 +1 @@
<view class="{{T}}" style="{{U}}" bindtap="{{V}}"><view wx:if="{{a}}" class="nut-input__left"><slot name="left"/></view><view class="nut-input__value"><block wx:if="{{r0}}"><input class="{{['nut-input__input', b]}}" style="{{c}}" value="{{d}}" type="{{e}}" placeholder="{{f}}" placeholder-style="{{g}}" placeholder-class="{{h}}" disabled="{{i}}" readonly="{{j}}" focus="{{k}}" maxlength="{{l}}" format-trigger="{{m}}" auto-blur="{{n}}" confirm-type="{{o}}" adjust-position="{{p}}" always-system="{{q}}" inputmode="{{r}}" cursor-spacing="{{s}}" always-embed="{{t}}" confirm-hold="{{v}}" cursor="{{w}}" selection-start="{{x}}" selection-end="{{y}}" hold-keyboard="{{z}}" bindinput="{{A}}" bindfocus="{{B}}" bindblur="{{C}}" bindtap="{{D}}" bindchange="{{E}}" bindcompositionstart="{{F}}" bindcompositionend="{{G}}" bindconfirm="{{H}}"></input></block><view wx:if="{{I}}" class="nut-input__mask" bindtap="{{J}}"/><view wx:if="{{K}}" class="nut-input__word-limit"><text class="nut-input__word-num">{{L}}</text>/{{M}}</view></view><view wx:if="{{N}}" class="{{['nut-input__clear', Q && 'nut-hidden']}}" catchtap="{{R}}"><slot wx:if="{{O}}" name="clear"/><nut-icon wx:else u-i="0910be30-0" bind:__l="__l" u-p="{{P||''}}"/></view><view wx:if="{{S}}" class="nut-input__right"><slot name="right"/></view></view>

View File

@@ -0,0 +1 @@
.nut-theme-dark .nut-input{background:var(--nut-dark-background, #131313)}.nut-theme-dark .nut-input__input{color:var(--nut-dark-color, var(--nut-white, #fff))}.nut-input{position:relative;box-sizing:border-box;display:flex;width:100%;padding:var(--nut-input-padding, 10px 25px);font-size:var(--nut-input-font-size, var(--nut-font-size-2, 14px));line-height:var(--nut-input-line-height, 20px);background:var(--nut-white, #fff)}.nut-input__left,.nut-input__right{position:relative;display:flex;align-items:center}.nut-input__left{margin-right:4px}.nut-input__right{margin-left:4px}.nut-input__value{position:relative;display:flex;flex:1;align-items:center}.nut-input__input{flex:1;padding:0;font-size:inherit;line-height:inherit;text-align:left;text-decoration:none;resize:none;background:transparent;border:0;outline:0 none}.nut-input__mask{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.nut-input__word-limit{display:flex;justify-content:flex-end;padding:0 10px;font-size:var(--nut-input-limit-font-size, var(--nut-font-size-1, 12px));color:var(--nut-input-limit-color, #808080)}.nut-input__clear{display:flex;align-items:center}.nut-input__clear-icon{width:16px;height:16px;margin:0 4px;line-height:1;color:#c8c9cc;cursor:pointer}.nut-input--disabled{color:var(--nut-input-disabled-color, #c8c9cc)!important}.nut-input--disabled input:disabled{color:var(--nut-input-disabled-color, #c8c9cc);cursor:not-allowed;background:none;opacity:1;-webkit-text-fill-color:var(--nut-input-disabled-color, #c8c9cc)}.nut-input--required:before{position:absolute;left:14px;color:var(--nut-input-required-color, var(--nut-required-color, #fa2c19));content:"*"}.nut-input--error::-webkit-input-placeholder{color:var(--nut-input-required-color, var(--nut-required-color, #fa2c19));-webkit-text-fill-color:var(--nut-input-required-color, var(--nut-required-color, #fa2c19))}.nut-input--error,.nut-input--error::placeholder{color:var(--nut-input-required-color, var(--nut-required-color, #fa2c19));-webkit-text-fill-color:var(--nut-input-required-color, var(--nut-required-color, #fa2c19))}.nut-input--border{border-bottom:1px solid var(--nut-input-border-bottom, #eaf0fb)}.nut-form-item .nut-input{padding:0;margin:0;line-height:var(--nut-cell-line-height)}

View File

@@ -0,0 +1 @@
"use strict";function e(e,c,r){const t=e.indexOf(c);return-1===t?e:"-"===c&&0!==t?e.slice(0,t):e.slice(0,t+1)+e.slice(t).replace(r,"")}exports.formatNumber=function(c,r=!0,t=!0){c=r?e(c,".",/\./g):c.split(".")[0];const n=r?/[^-0-9.]/g:/[^-0-9]/g;return(c=t?e(c,"-",/-/g):c.replace(/-/,"")).replace(n,"")};