vft 0.0.229 → 0.0.231

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- import { defineComponent as M, ref as v, reactive as q, computed as u, watch as s, nextTick as E, onUnmounted as D, onMounted as G, createElementBlock as I, openBlock as J, normalizeStyle as K, createElementVNode as w, renderSlot as B } from "vue";
2
- import { addUnit as P } from "@vft/utils";
3
- import Q from "resize-detector";
4
- const W = ["title", "aria-label"], X = M({
1
+ import { defineComponent as M, ref as v, reactive as N, computed as u, watch as s, nextTick as E, onUnmounted as V, onMounted as q, createElementBlock as D, openBlock as G, normalizeStyle as I, createElementVNode as w, renderSlot as B } from "vue";
2
+ import { addUnit as J } from "@vft/utils";
3
+ import { addListener as K, removeListener as P } from "resize-detector/esm";
4
+ const Q = ["title", "aria-label"], W = M({
5
5
  name: "vft-clamp"
6
- }), _ = /* @__PURE__ */ M({
7
- ...X,
6
+ }), p = /* @__PURE__ */ M({
7
+ ...W,
8
8
  props: {
9
9
  text: {},
10
10
  maxHeight: {},
@@ -16,20 +16,20 @@ const W = ["title", "aria-label"], X = M({
16
16
  },
17
17
  emits: ["clamp-change", "update:expanded"],
18
18
  setup(e, { expose: T, emit: $ }) {
19
- const { addListener: j, removeListener: U } = Q, R = $, a = v(null), r = v(null), x = v(null), l = q({
19
+ const R = $, a = v(null), r = v(null), x = v(null), l = N({
20
20
  offset: 0,
21
21
  localExpanded: e.expanded,
22
22
  unregisterResizeCallback: null
23
- }), A = u(() => {
23
+ }), j = u(() => {
24
24
  if (!l.localExpanded && e.maxHeight)
25
- return P(e.maxHeight);
26
- }), k = () => {
27
- x.value && (x.value.textContent = N.value);
25
+ return J(e.maxHeight);
26
+ }), y = () => {
27
+ x.value && (x.value.textContent = S.value);
28
28
  }, c = () => {
29
- l.localExpanded || (k(), (d() || n.value) && g());
30
- }, y = () => {
31
- e.text && (l.offset = e.text.length, C(), e.autoResize && a.value && (j(a.value, c), l.unregisterResizeCallback = () => {
32
- a.value && U(a.value, c);
29
+ l.localExpanded || (y(), (d() || n.value) && g());
30
+ }, k = () => {
31
+ e.text && (l.offset = e.text.length, C(), e.autoResize && a.value && (K(a.value, c), l.unregisterResizeCallback = () => {
32
+ a.value && P(a.value, c);
33
33
  }), c());
34
34
  }, C = () => {
35
35
  var t;
@@ -42,19 +42,19 @@ const W = ["title", "aria-label"], X = M({
42
42
  ).length : 0, g = (...t) => {
43
43
  const [i = 0, f = l.offset] = t;
44
44
  if (f - i <= 3) {
45
- O();
45
+ U();
46
46
  return;
47
47
  }
48
48
  const o = Math.floor((f + i) / 2);
49
49
  h(o), d() ? g(i, o) : g(o, f);
50
50
  }, h = (t) => {
51
- l.offset = t, k();
52
- }, O = () => {
53
- S(), F();
54
- }, S = () => {
51
+ l.offset = t, y();
52
+ }, U = () => {
53
+ A(), O();
54
+ }, A = () => {
55
55
  for (; (!d() || m() < 2) && l.offset < e.text.length; )
56
56
  H(1);
57
- }, F = () => {
57
+ }, O = () => {
58
58
  for (; d() && m() > 1 && l.offset > 0; )
59
59
  H(-1);
60
60
  }, H = (t) => {
@@ -69,7 +69,7 @@ const W = ["title", "aria-label"], X = M({
69
69
  },
70
70
  { immediate: !0 }
71
71
  );
72
- const N = u(() => n.value ? V.value : e.text), V = u(() => {
72
+ const S = u(() => n.value ? F.value : e.text), F = u(() => {
73
73
  if (e.location === "start")
74
74
  return e.ellipsis + (e.text.slice(0, l.offset) || "").trim();
75
75
  if (e.location === "middle") {
@@ -105,22 +105,22 @@ const W = ["title", "aria-label"], X = M({
105
105
  () => [e.text, e.autoResize].join(),
106
106
  () => {
107
107
  E(() => {
108
- y();
108
+ k();
109
109
  });
110
110
  }
111
- ), D(() => {
111
+ ), V(() => {
112
112
  C();
113
- }), G(() => {
114
- y();
113
+ }), q(() => {
114
+ k();
115
115
  }), T({
116
116
  isClamped: n
117
- }), (t, i) => (J(), I("div", {
117
+ }), (t, i) => (G(), D("div", {
118
118
  ref_key: "textClampRef",
119
119
  ref: a,
120
120
  class: "text-clamp",
121
- style: K({
121
+ style: I({
122
122
  overflow: "hidden",
123
- maxHeight: A.value
123
+ maxHeight: j.value
124
124
  })
125
125
  }, [
126
126
  w("span", {
@@ -139,7 +139,7 @@ const W = ["title", "aria-label"], X = M({
139
139
  ref: x,
140
140
  title: t.text,
141
141
  "aria-label": t.text
142
- }, null, 8, W),
142
+ }, null, 8, Q),
143
143
  B(t.$slots, "after", {
144
144
  expand: L,
145
145
  collapse: b,
@@ -152,5 +152,5 @@ const W = ["title", "aria-label"], X = M({
152
152
  }
153
153
  });
154
154
  export {
155
- _ as default
155
+ p as default
156
156
  };
@@ -13,8 +13,8 @@ import "../../hooks/use-model-toggle/index.js";
13
13
  import "@popperjs/core";
14
14
  import "../../hooks/use-z-index/index.js";
15
15
  import { calcTextareaHeight as we } from "./utils.js";
16
- import { useFormSize as ta, useFormDisabled as oa } from "../form/hooks/use-form-common-props.js";
17
- import { useFormItem as na, useFormItemInputId as la } from "../form/hooks/use-form-item.js";
16
+ import { useFormItem as ta, useFormItemInputId as oa } from "../form/hooks/use-form-item.js";
17
+ import { useFormSize as na, useFormDisabled as la } from "../form/hooks/use-form-common-props.js";
18
18
  const sa = ["role"], ia = ["id", "type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form"], ua = ["id", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form"], Ea = /* @__PURE__ */ Le({
19
19
  __name: "input",
20
20
  props: {
@@ -85,9 +85,9 @@ const sa = ["role"], ia = ["id", "type", "disabled", "formatter", "parser", "rea
85
85
  o.is("focus", w.value)
86
86
  ]), f = Xe({
87
87
  excludeKeys: l(() => Object.keys(Z.value))
88
- }), { form: O, formItem: u } = na(), { inputId: _ } = la(ke.props, {
88
+ }), { form: O, formItem: u } = ta(), { inputId: _ } = oa(ke.props, {
89
89
  formItemContext: u
90
- }), Ie = ta(), h = oa(), o = be("input"), ee = be("textarea"), M = q(), b = q(), w = V(!1), T = V(!1), k = V(!1), P = V(!1), ae = V(), L = q(a.inputStyle), z = l(() => M.value || b.value), j = l(() => X(a.prefixIcon, "icon", { size: 16 })), te = l(() => X(a.suffixIcon, "icon", { size: 16 })), Se = l(() => X(a.clearIcon, "icon", {
90
+ }), Ie = na(), h = la(), o = be("input"), ee = be("textarea"), M = q(), b = q(), w = V(!1), T = V(!1), k = V(!1), P = V(!1), ae = V(), L = q(a.inputStyle), z = l(() => M.value || b.value), j = l(() => X(a.prefixIcon, "icon", { size: 16 })), te = l(() => X(a.suffixIcon, "icon", { size: 16 })), Se = l(() => X(a.clearIcon, "icon", {
91
91
  icon: "icon-circle-close",
92
92
  size: 16
93
93
  })), oe = l(() => (O == null ? void 0 : O.statusIcon) ?? !1), I = l(() => (u == null ? void 0 : u.validateState) || ""), ne = l(
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.229",
3
+ "version": "0.0.231",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -1,4 +1,4 @@
1
- const o = "0.0.229";
1
+ const o = "0.0.231";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),q=require("@vft/utils"),O=require("resize-detector"),U=["title","aria-label"],A=l.defineComponent({name:"vft-clamp"}),N=l.defineComponent({...A,props:{text:{},maxHeight:{},maxLines:{default:1},expanded:{type:Boolean,default:!1},ellipsis:{default:"…"},autoResize:{type:Boolean,default:!1},location:{default:"end"}},emits:["clamp-change","update:expanded"],setup(e,{expose:b,emit:w}){const{addListener:L,removeListener:z}=O,g=w,n=l.ref(null),f=l.ref(null),r=l.ref(null),a=l.reactive({offset:0,localExpanded:e.expanded,unregisterResizeCallback:null}),T=l.computed(()=>{if(!a.localExpanded&&e.maxHeight)return q.addUnit(e.maxHeight)}),v=()=>{r.value&&(r.value.textContent=B.value)},s=()=>{a.localExpanded||(v(),(d()||i.value)&&m())},E=()=>{e.text&&(a.offset=e.text.length,k(),e.autoResize&&n.value&&(L(n.value,s),a.unregisterResizeCallback=()=>{n.value&&z(n.value,s)}),s())},k=()=>{var t;(t=a.unregisterResizeCallback)==null||t.call(a)},d=()=>!e.maxLines&&!e.maxHeight||!n.value?!1:e.maxLines&&x()>e.maxLines?!0:!!(e.maxHeight&&n.value.scrollHeight>n.value.offsetHeight),x=()=>f.value?Object.keys(Array.prototype.slice.call(f.value.getClientRects()).reduce((t,{top:c,bottom:u})=>{const o=`${c}/${u}`;return t[o]||(t[o]=!0),t},{})).length:0,m=(...t)=>{const[c=0,u=a.offset]=t;if(u-c<=3){M();return}const o=Math.floor((u+c)/2);h(o),d()?m(c,o):m(o,u)},h=t=>{a.offset=t,v()},M=()=>{S(),j()},S=()=>{for(;(!d()||x()<2)&&a.offset<e.text.length;)y(1)},j=()=>{for(;d()&&x()>1&&a.offset>0;)y(-1)},y=t=>{h(a.offset+t)},i=l.computed(()=>e.text?a.offset!==e.text.length:!1);l.watch(()=>i.value,t=>{l.nextTick(()=>{g("clamp-change",t)})},{immediate:!0});const B=l.computed(()=>i.value?$.value:e.text),$=l.computed(()=>{if(e.location==="start")return e.ellipsis+(e.text.slice(0,a.offset)||"").trim();if(e.location==="middle"){const t=Math.floor(a.offset/2);return(e.text.slice(0,t)||"").trim()+e.ellipsis+(e.text.slice(-t)||"").trim()}return(e.text.slice(0,a.offset)||"").trim()+e.ellipsis}),R=()=>{a.localExpanded=!0},C=()=>{a.localExpanded=!1},H=()=>{a.localExpanded=!a.localExpanded};return l.watch(()=>e.expanded,t=>{a.localExpanded=t}),l.watch(()=>a.localExpanded,t=>{t?h(e.text.length):s(),e.expanded!==t&&g("update:expanded",t)}),l.watch(()=>[e.maxLines,e.maxHeight,e.ellipsis,e.location,i.value].join(),()=>{l.nextTick(()=>{s()})}),l.watch(()=>[e.text,e.autoResize].join(),()=>{l.nextTick(()=>{E()})}),l.onUnmounted(()=>{k()}),l.onMounted(()=>{E()}),b({isClamped:i}),(t,c)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"textClampRef",ref:n,class:"text-clamp",style:l.normalizeStyle({overflow:"hidden",maxHeight:T.value})},[l.createElementVNode("span",{ref_key:"contentRef",ref:f},[l.renderSlot(t.$slots,"before",{expand:R,collapse:C,toggle:H,clamped:i.value,expanded:a.localExpanded}),l.createElementVNode("span",{ref_key:"textRef",ref:r,title:t.text,"aria-label":t.text},null,8,U),l.renderSlot(t.$slots,"after",{expand:R,collapse:C,toggle:H,clamped:i.value,expanded:a.localExpanded})],512)],4))}});exports.default=N;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),$=require("@vft/utils"),b=require("resize-detector/esm"),q=["title","aria-label"],O=l.defineComponent({name:"vft-clamp"}),U=l.defineComponent({...O,props:{text:{},maxHeight:{},maxLines:{default:1},expanded:{type:Boolean,default:!1},ellipsis:{default:"…"},autoResize:{type:Boolean,default:!1},location:{default:"end"}},emits:["clamp-change","update:expanded"],setup(e,{expose:w,emit:L}){const g=L,n=l.ref(null),f=l.ref(null),r=l.ref(null),a=l.reactive({offset:0,localExpanded:e.expanded,unregisterResizeCallback:null}),z=l.computed(()=>{if(!a.localExpanded&&e.maxHeight)return $.addUnit(e.maxHeight)}),v=()=>{r.value&&(r.value.textContent=j.value)},s=()=>{a.localExpanded||(v(),(d()||i.value)&&m())},E=()=>{e.text&&(a.offset=e.text.length,k(),e.autoResize&&n.value&&(b.addListener(n.value,s),a.unregisterResizeCallback=()=>{n.value&&b.removeListener(n.value,s)}),s())},k=()=>{var t;(t=a.unregisterResizeCallback)==null||t.call(a)},d=()=>!e.maxLines&&!e.maxHeight||!n.value?!1:e.maxLines&&x()>e.maxLines?!0:!!(e.maxHeight&&n.value.scrollHeight>n.value.offsetHeight),x=()=>f.value?Object.keys(Array.prototype.slice.call(f.value.getClientRects()).reduce((t,{top:c,bottom:u})=>{const o=`${c}/${u}`;return t[o]||(t[o]=!0),t},{})).length:0,m=(...t)=>{const[c=0,u=a.offset]=t;if(u-c<=3){T();return}const o=Math.floor((u+c)/2);h(o),d()?m(c,o):m(o,u)},h=t=>{a.offset=t,v()},T=()=>{M(),S()},M=()=>{for(;(!d()||x()<2)&&a.offset<e.text.length;)y(1)},S=()=>{for(;d()&&x()>1&&a.offset>0;)y(-1)},y=t=>{h(a.offset+t)},i=l.computed(()=>e.text?a.offset!==e.text.length:!1);l.watch(()=>i.value,t=>{l.nextTick(()=>{g("clamp-change",t)})},{immediate:!0});const j=l.computed(()=>i.value?B.value:e.text),B=l.computed(()=>{if(e.location==="start")return e.ellipsis+(e.text.slice(0,a.offset)||"").trim();if(e.location==="middle"){const t=Math.floor(a.offset/2);return(e.text.slice(0,t)||"").trim()+e.ellipsis+(e.text.slice(-t)||"").trim()}return(e.text.slice(0,a.offset)||"").trim()+e.ellipsis}),R=()=>{a.localExpanded=!0},C=()=>{a.localExpanded=!1},H=()=>{a.localExpanded=!a.localExpanded};return l.watch(()=>e.expanded,t=>{a.localExpanded=t}),l.watch(()=>a.localExpanded,t=>{t?h(e.text.length):s(),e.expanded!==t&&g("update:expanded",t)}),l.watch(()=>[e.maxLines,e.maxHeight,e.ellipsis,e.location,i.value].join(),()=>{l.nextTick(()=>{s()})}),l.watch(()=>[e.text,e.autoResize].join(),()=>{l.nextTick(()=>{E()})}),l.onUnmounted(()=>{k()}),l.onMounted(()=>{E()}),w({isClamped:i}),(t,c)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"textClampRef",ref:n,class:"text-clamp",style:l.normalizeStyle({overflow:"hidden",maxHeight:z.value})},[l.createElementVNode("span",{ref_key:"contentRef",ref:f},[l.renderSlot(t.$slots,"before",{expand:R,collapse:C,toggle:H,clamped:i.value,expanded:a.localExpanded}),l.createElementVNode("span",{ref_key:"textRef",ref:r,title:t.text,"aria-label":t.text},null,8,q),l.renderSlot(t.$slots,"after",{expand:R,collapse:C,toggle:H,clamped:i.value,expanded:a.localExpanded})],512)],4))}});exports.default=U;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),F=require("@vft/constants"),ee=require("@vft/use"),r=require("@vft/utils");require("../form/index.cjs");const w=require("../icon/index.cjs"),te=require("@vueuse/core"),M=require("../../utils/error.cjs");require("../../utils/ns-cover.cjs");const Se=require("lodash-es"),ne=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const oe=require("./utils.cjs"),ae=require("../form/hooks/use-form-common-props.cjs"),le=require("../form/hooks/use-form-item.cjs"),ze=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Ne=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],Pe=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[F.UPDATE_MODEL_EVENT]:n=>r.isString(n),input:n=>r.isString(n),change:n=>r.isString(n),suffixClick:n=>r.isString(n),prefixClick:n=>r.isString(n),focus:n=>n instanceof FocusEvent,blur:n=>n instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:n=>n instanceof MouseEvent,mouseenter:n=>n instanceof MouseEvent,keydown:n=>n instanceof Event,compositionstart:n=>n instanceof CompositionEvent,compositionupdate:n=>n instanceof CompositionEvent,compositionend:n=>n instanceof CompositionEvent},setup(n,{expose:se,emit:re}){const l=re,y=e.useAttrs(),d=e.useSlots(),A=e.computed(()=>{const t={};return n.containerRole==="combobox"&&(t["aria-haspopup"]=y["aria-haspopup"],t["aria-owns"]=y["aria-owns"],t["aria-expanded"]=y["aria-expanded"]),t}),ue=e.computed(()=>[n.type==="textarea"?O.b():o.b(),o.m(de.value),o.is("disabled",m.value),o.is("exceed",ve.value),o.is("focus",p.value),{[o.b("group")]:d.prepend||d.append,[o.bm("group","append")]:d.append,[o.bm("group","prepend")]:d.prepend,[o.m("prefix")]:d.prefix||n.prefixIcon,[o.m("suffix")]:d.suffix||n.suffixIcon||n.clearable||n.showPassword,[o.bm("suffix","password-clear")]:B.value&&P.value},y.class]),ie=e.getCurrentInstance(),ce=e.computed(()=>[o.e("wrapper"),o.is("focus",p.value)]),u=ee.useAttrs({excludeKeys:e.computed(()=>Object.keys(A.value))}),{form:S,formItem:s}=le.useFormItem(),{inputId:D}=le.useFormItemInputId(ie.props,{formItemContext:s}),de=ae.useFormSize(),m=ae.useFormDisabled(),o=ne.useNamespace("input"),O=ne.useNamespace("textarea"),x=e.shallowRef(),f=e.shallowRef(),p=e.ref(!1),z=e.ref(!1),h=e.ref(!1),E=e.ref(!1),R=e.ref(),I=e.shallowRef(n.inputStyle),g=e.computed(()=>x.value||f.value),N=e.computed(()=>r.singleAttrToObj(n.prefixIcon,"icon",{size:16})),K=e.computed(()=>r.singleAttrToObj(n.suffixIcon,"icon",{size:16})),me=e.computed(()=>r.singleAttrToObj(n.clearIcon,"icon",{icon:"icon-circle-close",size:16})),$=e.computed(()=>(S==null?void 0:S.statusIcon)??!1),k=e.computed(()=>(s==null?void 0:s.validateState)||""),j=e.computed(()=>k.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[k.value]),fe=e.computed(()=>E.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),pe=e.computed(()=>[y.style,n.inputStyle]),L=e.computed(()=>[n.inputStyle,I.value,{resize:n.resize}]),c=e.computed(()=>Se.isNil(n.modelValue)?"":String(n.modelValue)),B=e.computed(()=>n.clearable&&!m.value&&!n.readonly&&!!c.value&&(p.value||z.value)),P=e.computed(()=>n.showPassword&&!m.value&&!n.readonly&&!!c.value&&(!!c.value||p.value)),v=e.computed(()=>n.showWordLimit&&!!u.value.maxlength&&(n.type==="text"||n.type==="textarea")&&!m.value&&!n.readonly&&!n.showPassword),T=e.computed(()=>Array.from(c.value).length),ve=e.computed(()=>!!v.value&&T.value>Number(u.value.maxlength)),ye=e.computed(()=>!!d.suffix||!!n.suffixIcon||B.value||n.showPassword||v.value||!!k.value&&$.value),[he,ge]=ee.useCursor(x);te.useResizeObserver(f,t=>{if(!v.value||n.resize!=="both")return;const a=t[0],{width:i}=a.contentRect;R.value={right:`calc(100% - ${i+15+6}px)`}});const V=()=>{if(!(!te.isClient||n.type!=="textarea"))if(n.autosize){const t=r.isObject(n.autosize)?n.autosize.minRows:void 0,a=r.isObject(n.autosize)?n.autosize.maxRows:void 0;I.value={...oe.calcTextareaHeight(f.value,t,a)}}else I.value={minHeight:oe.calcTextareaHeight(f.value).minHeight}},b=()=>{const t=g.value;!t||t.value===c.value||(t.value=c.value)},q=async t=>{he();let{value:a}=t.target;if(u.value.maxlength&&a.length>=u.value.maxlength&&(a=a.slice(0,Number(u.value.maxlength))),n.formatter&&(a=n.parser?n.parser(a):a,a=n.formatter(a)),!h.value){if(a===c.value){b();return}l(F.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),b(),ge()}},W=t=>{l("change",t.target.value)},ke=()=>{l("suffixClick",n.modelValue)},be=()=>{l("prefixClick",n.modelValue)},H=t=>{l("compositionstart",t),h.value=!0},Ce=t=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(t),U=t=>{var C;l("compositionupdate",t);const a=(C=t.target)==null?void 0:C.value,i=a[a.length-1]||"";h.value=!Ce(i)},G=t=>{l("compositionend",t),h.value&&(h.value=!1,q(t))},we=()=>{E.value=!E.value,J()},J=async()=>{var t;await e.nextTick(),(t=g.value)==null||t.focus()},xe=()=>{var t;return(t=g.value)==null?void 0:t.blur()},Q=t=>{p.value=!0,l("focus",t)},X=t=>{var a;p.value=!1,l("blur",t),n.validateEvent&&((a=s==null?void 0:s.validate)==null||a.call(s,"blur").catch(i=>M.debugWarn(i)))},Ee=t=>{z.value=!1,l("mouseleave",t)},Be=t=>{z.value=!0,l("mouseenter",t)},Y=t=>{let a=t.key;if(t.target.type==="number"&&["e","+","-0","E"].includes(a))return t.returnValue=!1,!1;l("keydown",t)},Ve=()=>{var t;(t=g.value)==null||t.select()},Z=()=>{l(F.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>n.modelValue,()=>{var t;e.nextTick(()=>V()),n.validateEvent&&((t=s==null?void 0:s.validate)==null||t.call(s,"change").catch(a=>M.debugWarn(a)))}),e.watch(c,()=>b()),e.watch(()=>n.type,async()=>{await e.nextTick(),b(),V()}),e.onMounted(()=>{!n.formatter&&n.parser&&M.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),b(),e.nextTick(V)}),se({input:x,textarea:f,ref:g,textareaStyle:L,autosize:n.autosize,focus:J,blur:xe,select:Ve,clear:Z,resizeTextarea:V}),(t,a)=>{var i,C,_;return e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(A.value,{class:ue.value,style:pe.value,role:t.containerRole,onMouseenter:Be,onMouseleave:Ee}),[t.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).be("group","prepend"))},[e.renderSlot(t.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(ce.value)},[t.$slots.prefix||(i=N.value)!=null&&i.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(o).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("prefix-inner")),onClick:be},[e.renderSlot(t.$slots,"prefix"),(C=N.value)!=null&&C.icon?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:0,pointer:""},N.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(D),ref_key:"input",ref:x,class:e.unref(o).e("inner")},e.unref(u),{type:t.showPassword?E.value?"text":"password":t.type,disabled:e.unref(m),formatter:t.formatter,parser:t.parser,readonly:t.readonly,autocomplete:t.autocomplete,tabindex:t.tabindex,"aria-label":t.label,placeholder:t.placeholder,style:t.inputStyle,form:t.form,onCompositionstart:H,onCompositionupdate:U,onCompositionend:G,onInput:q,onFocus:Q,onBlur:X,onChange:W,onKeydown:Y,onKeyup:a[0]||(a[0]=e.withKeys(Te=>l("enter"),["enter"]))}),null,16,Ie),ye.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(o).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("suffix-inner")),onClick:ke},[!B.value||!P.value||!v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(t.$slots,"suffix"),(_=K.value)!=null&&_.icon?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:0},K.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),B.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(o).e("icon"),e.unref(o).e("clear")]},me.value,{onMousedown:e.withModifiers(e.unref(r.noop),["prevent"]),onClick:e.withModifiers(Z,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),P.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:2},fe.value,{class:[e.unref(o).e("icon"),e.unref(o).e("password")],onClick:we}),null,16,["class"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(o).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("count-inner"))},e.toDisplayString(T.value)+" / "+e.toDisplayString(e.unref(u).maxlength),3)],2)):e.createCommentVNode("",!0),k.value&&j.value&&$.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),{key:4,icon:j.value,class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).e("validateIcon"),e.unref(o).is("loading",k.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),t.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).be("group","append"))},[e.renderSlot(t.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(D),ref_key:"textarea",ref:f,class:e.unref(O).e("inner")},e.unref(u),{tabindex:t.tabindex,disabled:e.unref(m),readonly:t.readonly,autocomplete:t.autocomplete,style:L.value,"aria-label":t.label,placeholder:t.placeholder,form:t.form,onCompositionstart:H,onCompositionupdate:U,onCompositionend:G,onInput:q,onFocus:Q,onBlur:X,onChange:W,onKeydown:Y}),null,16,Ne),v.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(R.value),class:e.normalizeClass(e.unref(o).e("count"))},e.toDisplayString(T.value)+" / "+e.toDisplayString(e.unref(u).maxlength),7)):e.createCommentVNode("",!0)],64))],16,ze)),[[e.vShow,t.type!=="hidden"]])}}});exports.default=Pe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),F=require("@vft/constants"),ee=require("@vft/use"),r=require("@vft/utils");require("../form/index.cjs");const w=require("../icon/index.cjs"),te=require("@vueuse/core"),M=require("../../utils/error.cjs");require("../../utils/ns-cover.cjs");const Se=require("lodash-es"),ne=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const oe=require("./utils.cjs"),ae=require("../form/hooks/use-form-item.cjs"),le=require("../form/hooks/use-form-common-props.cjs"),ze=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Ne=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],Pe=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[F.UPDATE_MODEL_EVENT]:n=>r.isString(n),input:n=>r.isString(n),change:n=>r.isString(n),suffixClick:n=>r.isString(n),prefixClick:n=>r.isString(n),focus:n=>n instanceof FocusEvent,blur:n=>n instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:n=>n instanceof MouseEvent,mouseenter:n=>n instanceof MouseEvent,keydown:n=>n instanceof Event,compositionstart:n=>n instanceof CompositionEvent,compositionupdate:n=>n instanceof CompositionEvent,compositionend:n=>n instanceof CompositionEvent},setup(n,{expose:se,emit:re}){const l=re,y=e.useAttrs(),d=e.useSlots(),A=e.computed(()=>{const t={};return n.containerRole==="combobox"&&(t["aria-haspopup"]=y["aria-haspopup"],t["aria-owns"]=y["aria-owns"],t["aria-expanded"]=y["aria-expanded"]),t}),ue=e.computed(()=>[n.type==="textarea"?O.b():o.b(),o.m(de.value),o.is("disabled",m.value),o.is("exceed",ve.value),o.is("focus",p.value),{[o.b("group")]:d.prepend||d.append,[o.bm("group","append")]:d.append,[o.bm("group","prepend")]:d.prepend,[o.m("prefix")]:d.prefix||n.prefixIcon,[o.m("suffix")]:d.suffix||n.suffixIcon||n.clearable||n.showPassword,[o.bm("suffix","password-clear")]:B.value&&P.value},y.class]),ie=e.getCurrentInstance(),ce=e.computed(()=>[o.e("wrapper"),o.is("focus",p.value)]),u=ee.useAttrs({excludeKeys:e.computed(()=>Object.keys(A.value))}),{form:S,formItem:s}=ae.useFormItem(),{inputId:D}=ae.useFormItemInputId(ie.props,{formItemContext:s}),de=le.useFormSize(),m=le.useFormDisabled(),o=ne.useNamespace("input"),O=ne.useNamespace("textarea"),x=e.shallowRef(),f=e.shallowRef(),p=e.ref(!1),z=e.ref(!1),h=e.ref(!1),E=e.ref(!1),R=e.ref(),I=e.shallowRef(n.inputStyle),g=e.computed(()=>x.value||f.value),N=e.computed(()=>r.singleAttrToObj(n.prefixIcon,"icon",{size:16})),K=e.computed(()=>r.singleAttrToObj(n.suffixIcon,"icon",{size:16})),me=e.computed(()=>r.singleAttrToObj(n.clearIcon,"icon",{icon:"icon-circle-close",size:16})),$=e.computed(()=>(S==null?void 0:S.statusIcon)??!1),k=e.computed(()=>(s==null?void 0:s.validateState)||""),j=e.computed(()=>k.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[k.value]),fe=e.computed(()=>E.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),pe=e.computed(()=>[y.style,n.inputStyle]),L=e.computed(()=>[n.inputStyle,I.value,{resize:n.resize}]),c=e.computed(()=>Se.isNil(n.modelValue)?"":String(n.modelValue)),B=e.computed(()=>n.clearable&&!m.value&&!n.readonly&&!!c.value&&(p.value||z.value)),P=e.computed(()=>n.showPassword&&!m.value&&!n.readonly&&!!c.value&&(!!c.value||p.value)),v=e.computed(()=>n.showWordLimit&&!!u.value.maxlength&&(n.type==="text"||n.type==="textarea")&&!m.value&&!n.readonly&&!n.showPassword),T=e.computed(()=>Array.from(c.value).length),ve=e.computed(()=>!!v.value&&T.value>Number(u.value.maxlength)),ye=e.computed(()=>!!d.suffix||!!n.suffixIcon||B.value||n.showPassword||v.value||!!k.value&&$.value),[he,ge]=ee.useCursor(x);te.useResizeObserver(f,t=>{if(!v.value||n.resize!=="both")return;const a=t[0],{width:i}=a.contentRect;R.value={right:`calc(100% - ${i+15+6}px)`}});const V=()=>{if(!(!te.isClient||n.type!=="textarea"))if(n.autosize){const t=r.isObject(n.autosize)?n.autosize.minRows:void 0,a=r.isObject(n.autosize)?n.autosize.maxRows:void 0;I.value={...oe.calcTextareaHeight(f.value,t,a)}}else I.value={minHeight:oe.calcTextareaHeight(f.value).minHeight}},b=()=>{const t=g.value;!t||t.value===c.value||(t.value=c.value)},q=async t=>{he();let{value:a}=t.target;if(u.value.maxlength&&a.length>=u.value.maxlength&&(a=a.slice(0,Number(u.value.maxlength))),n.formatter&&(a=n.parser?n.parser(a):a,a=n.formatter(a)),!h.value){if(a===c.value){b();return}l(F.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),b(),ge()}},W=t=>{l("change",t.target.value)},ke=()=>{l("suffixClick",n.modelValue)},be=()=>{l("prefixClick",n.modelValue)},H=t=>{l("compositionstart",t),h.value=!0},Ce=t=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(t),U=t=>{var C;l("compositionupdate",t);const a=(C=t.target)==null?void 0:C.value,i=a[a.length-1]||"";h.value=!Ce(i)},G=t=>{l("compositionend",t),h.value&&(h.value=!1,q(t))},we=()=>{E.value=!E.value,J()},J=async()=>{var t;await e.nextTick(),(t=g.value)==null||t.focus()},xe=()=>{var t;return(t=g.value)==null?void 0:t.blur()},Q=t=>{p.value=!0,l("focus",t)},X=t=>{var a;p.value=!1,l("blur",t),n.validateEvent&&((a=s==null?void 0:s.validate)==null||a.call(s,"blur").catch(i=>M.debugWarn(i)))},Ee=t=>{z.value=!1,l("mouseleave",t)},Be=t=>{z.value=!0,l("mouseenter",t)},Y=t=>{let a=t.key;if(t.target.type==="number"&&["e","+","-0","E"].includes(a))return t.returnValue=!1,!1;l("keydown",t)},Ve=()=>{var t;(t=g.value)==null||t.select()},Z=()=>{l(F.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>n.modelValue,()=>{var t;e.nextTick(()=>V()),n.validateEvent&&((t=s==null?void 0:s.validate)==null||t.call(s,"change").catch(a=>M.debugWarn(a)))}),e.watch(c,()=>b()),e.watch(()=>n.type,async()=>{await e.nextTick(),b(),V()}),e.onMounted(()=>{!n.formatter&&n.parser&&M.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),b(),e.nextTick(V)}),se({input:x,textarea:f,ref:g,textareaStyle:L,autosize:n.autosize,focus:J,blur:xe,select:Ve,clear:Z,resizeTextarea:V}),(t,a)=>{var i,C,_;return e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(A.value,{class:ue.value,style:pe.value,role:t.containerRole,onMouseenter:Be,onMouseleave:Ee}),[t.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).be("group","prepend"))},[e.renderSlot(t.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(ce.value)},[t.$slots.prefix||(i=N.value)!=null&&i.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(o).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("prefix-inner")),onClick:be},[e.renderSlot(t.$slots,"prefix"),(C=N.value)!=null&&C.icon?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:0,pointer:""},N.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(D),ref_key:"input",ref:x,class:e.unref(o).e("inner")},e.unref(u),{type:t.showPassword?E.value?"text":"password":t.type,disabled:e.unref(m),formatter:t.formatter,parser:t.parser,readonly:t.readonly,autocomplete:t.autocomplete,tabindex:t.tabindex,"aria-label":t.label,placeholder:t.placeholder,style:t.inputStyle,form:t.form,onCompositionstart:H,onCompositionupdate:U,onCompositionend:G,onInput:q,onFocus:Q,onBlur:X,onChange:W,onKeydown:Y,onKeyup:a[0]||(a[0]=e.withKeys(Te=>l("enter"),["enter"]))}),null,16,Ie),ye.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(o).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("suffix-inner")),onClick:ke},[!B.value||!P.value||!v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(t.$slots,"suffix"),(_=K.value)!=null&&_.icon?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:0},K.value,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),B.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(o).e("icon"),e.unref(o).e("clear")]},me.value,{onMousedown:e.withModifiers(e.unref(r.noop),["prevent"]),onClick:e.withModifiers(Z,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),P.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),e.mergeProps({key:2},fe.value,{class:[e.unref(o).e("icon"),e.unref(o).e("password")],onClick:we}),null,16,["class"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(o).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("count-inner"))},e.toDisplayString(T.value)+" / "+e.toDisplayString(e.unref(u).maxlength),3)],2)):e.createCommentVNode("",!0),k.value&&j.value&&$.value?(e.openBlock(),e.createBlock(e.unref(w.VftIcon),{key:4,icon:j.value,class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).e("validateIcon"),e.unref(o).is("loading",k.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),t.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).be("group","append"))},[e.renderSlot(t.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(D),ref_key:"textarea",ref:f,class:e.unref(O).e("inner")},e.unref(u),{tabindex:t.tabindex,disabled:e.unref(m),readonly:t.readonly,autocomplete:t.autocomplete,style:L.value,"aria-label":t.label,placeholder:t.placeholder,form:t.form,onCompositionstart:H,onCompositionupdate:U,onCompositionend:G,onInput:q,onFocus:Q,onBlur:X,onChange:W,onKeydown:Y}),null,16,Ne),v.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(R.value),class:e.normalizeClass(e.unref(o).e("count"))},e.toDisplayString(T.value)+" / "+e.toDisplayString(e.unref(u).maxlength),7)):e.createCommentVNode("",!0)],64))],16,ze)),[[e.vShow,t.type!=="hidden"]])}}});exports.default=Pe;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.229";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.231";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.229",
3
+ "version": "0.0.231",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.229",
3
+ "version": "0.0.231",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -55,11 +55,11 @@
55
55
  "resize-detector": "0.3.0",
56
56
  "sortablejs": "1.15.0",
57
57
  "@vft/router": "0.0.56",
58
- "@vft/constants": "0.0.66",
59
58
  "@vft/store": "0.0.37",
60
- "@vft/use": "0.0.51",
59
+ "@vft/constants": "0.0.66",
61
60
  "@vft/utils": "0.0.110",
62
- "@vft/directives": "0.0.29"
61
+ "@vft/directives": "0.0.29",
62
+ "@vft/use": "0.0.51"
63
63
  },
64
64
  "vetur": {
65
65
  "tags": "tags.json",