vft 0.0.321 → 0.0.322

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.
@@ -10,7 +10,7 @@ import "../../hooks/use-model-toggle/index.js";
10
10
  import { useOrderedChildren as Ie } from "../../hooks/use-ordered-children/index.js";
11
11
  import "@popperjs/core";
12
12
  import "../../hooks/use-z-index/index.js";
13
- import { carouselContextKey as ge, CAROUSEL_ITEM_NAME as H } from "./constants.js";
13
+ import { CAROUSEL_ITEM_NAME as H, carouselContextKey as ge } from "./constants.js";
14
14
  const L = 300, _e = (t, O, M) => {
15
15
  const {
16
16
  children: o,
@@ -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 ye } from "./utils.js";
16
- import { useFormItem as et, useFormItemInputId as tt } from "../form/hooks/use-form-item.js";
17
- import { useFormSize as at, useFormDisabled as ot } from "../form/hooks/use-form-common-props.js";
16
+ import { useFormSize as et, useFormDisabled as tt } from "../form/hooks/use-form-common-props.js";
17
+ import { useFormItem as at, useFormItemInputId as ot } from "../form/hooks/use-form-item.js";
18
18
  const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form"], st = ["id", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form"], It = /* @__PURE__ */ Oe({
19
19
  __name: "input",
20
20
  props: {
@@ -85,9 +85,9 @@ const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "rea
85
85
  o.is("focus", h.value)
86
86
  ]), d = Je({
87
87
  excludeKeys: l(() => Object.keys(X.value))
88
- }), { form: Ce, formItem: F } = et(), { inputId: Y } = tt(xe.props, {
88
+ }), { form: Ce, formItem: F } = at(), { inputId: Y } = ot(xe.props, {
89
89
  formItemContext: F
90
- }), ke = at(), p = ot(), o = pe("input"), Z = pe("textarea"), K = H(), y = H(), h = S(!1), D = S(!1), g = S(!1), M = S(!1), _ = S(), O = H(e.inputStyle), C = l(() => K.value || y.value), T = l(() => J(e.prefixIcon, "icon", { size: 16 })), ee = l(() => J(e.suffixIcon, "icon", { size: 16 })), Ie = l(() => J(e.clearIcon, "icon", {
90
+ }), ke = et(), p = tt(), o = pe("input"), Z = pe("textarea"), K = H(), y = H(), h = S(!1), D = S(!1), g = S(!1), M = S(!1), _ = S(), O = H(e.inputStyle), C = l(() => K.value || y.value), T = l(() => J(e.prefixIcon, "icon", { size: 16 })), ee = l(() => J(e.suffixIcon, "icon", { size: 16 })), Ie = l(() => J(e.clearIcon, "icon", {
91
91
  icon: "icon-circle-close",
92
92
  size: 16
93
93
  })), te = l(() => Ce?.statusIcon ?? !1), k = l(() => F?.validateState || ""), ae = l(
@@ -1,6 +1,6 @@
1
1
  import { shallowRef as B, ref as L, computed as c, watch as G } from "vue";
2
2
  import { EVENT_CODE as g } from "../../../constants/aria.js";
3
- import { CHANGE_EVENT as i, UPDATE_MODEL_EVENT as d, INPUT_EVENT as H } from "../../../constants/event.js";
3
+ import { CHANGE_EVENT as i, INPUT_EVENT as H, UPDATE_MODEL_EVENT as d } from "../../../constants/event.js";
4
4
  import "@vueuse/core";
5
5
  import { isUndefined as K } from "@vft/utils";
6
6
  import { debugWarn as C } from "../../../utils/error.js";
@@ -1,4 +1,4 @@
1
- import { defineComponent as W, computed as L, unref as u, useSlots as _, createVNode as d, mergeProps as F, withDirectives as ee, vShow as te, createTextVNode as H, isVNode as re, resolveComponent as U } from "vue";
1
+ import { defineComponent as W, computed as L, unref as u, useSlots as _, createVNode as d, mergeProps as F, withDirectives as ee, vShow as te, isVNode as re, createTextVNode as H, resolveComponent as U } from "vue";
2
2
  import { VftCol as G } from "../col/index.js";
3
3
  import { VftDivider as ne } from "../divider/index.js";
4
4
  import { VftFormItem as oe } from "../form/index.js";
@@ -107,7 +107,7 @@ import "@popperjs/core";
107
107
  import "../../../hooks/use-z-index/index.js";
108
108
  import "../../message/index.js";
109
109
  import "../../progress-i/index.js";
110
- import { isInput as m, FormCompEnum as r } from "../component-map.js";
110
+ import { FormCompEnum as r, isInput as m } from "../component-map.js";
111
111
  function Ei(i, o = "") {
112
112
  return o = (o || "").replace(":", ""), [
113
113
  r.INPUT,
@@ -1,67 +1,71 @@
1
- import { defineComponent as N, inject as S, ref as h, watch as $, nextTick as k, onBeforeUnmount as C, computed as D, createElementBlock as E, openBlock as O, normalizeStyle as T, normalizeClass as F, unref as v } from "vue";
2
- import { useResizeObserver as y } from "@vueuse/core";
3
- import { capitalize as f } from "@vft/utils";
1
+ import { defineComponent as S, inject as $, ref as f, watch as T, nextTick as k, onBeforeUnmount as C, computed as D, onMounted as E, createElementBlock as O, openBlock as F, normalizeStyle as L, normalizeClass as P, unref as y } from "vue";
2
+ import { useResizeObserver as R } from "@vueuse/core";
3
+ import { capitalize as l } from "@vft/utils";
4
4
  import "../config-provider/hooks/use-global-config.js";
5
- import { isUndefined as P } from "lodash-es";
6
- import { useNamespace as j } from "../../hooks/use-namespace/index.js";
5
+ import { isUndefined as j } from "lodash-es";
6
+ import { useNamespace as U } from "../../hooks/use-namespace/index.js";
7
7
  import "../../hooks/use-model-toggle/index.js";
8
8
  import "@popperjs/core";
9
9
  import "../../hooks/use-z-index/index.js";
10
- import { TabsRootContextKey as L } from "./types.js";
11
- const V = /* @__PURE__ */ N({
10
+ import { TabsRootContextKey as K } from "./types.js";
11
+ const X = /* @__PURE__ */ S({
12
12
  __name: "tab-bar",
13
13
  props: {
14
14
  tabs: {},
15
15
  tabRefs: {},
16
16
  tabBarReduceDistance: {}
17
17
  },
18
- setup(R, { expose: g }) {
19
- const t = R, l = S(L), m = j("tabs"), i = h(), b = h(), x = () => {
20
- let e = 0, a = 0;
21
- const s = ["top", "bottom"].includes(l.props.tabPosition) ? "width" : "height", u = s === "width" ? "x" : "y", B = u === "x" ? "left" : "top";
18
+ setup(g, { expose: x }) {
19
+ const t = g, m = $(K), u = U("tabs"), i = f(), b = f(), d = f(!1), _ = () => {
20
+ let e = 0, s = 0;
21
+ const r = ["top", "bottom"].includes(m.props.tabPosition) ? "width" : "height", h = r === "width" ? "x" : "y", N = h === "x" ? "left" : "top";
22
22
  t.tabs.every((c) => {
23
- if (P(c.paneName)) return !1;
23
+ if (j(c.paneName)) return !1;
24
24
  const n = t.tabRefs?.[c.paneName];
25
25
  if (!n) return !1;
26
26
  if (!c.active)
27
27
  return !0;
28
- e = n[`offset${f(B)}`], a = n[`client${f(s)}`];
28
+ e = n[`offset${l(N)}`], s = n[`client${l(r)}`];
29
29
  const p = window.getComputedStyle(n);
30
- return s === "width" && (a -= Number.parseFloat(p.paddingLeft) + Number.parseFloat(p.paddingRight), e += Number.parseFloat(p.paddingLeft)), !1;
30
+ return r === "width" && (s -= Number.parseFloat(p.paddingLeft) + Number.parseFloat(p.paddingRight), e += Number.parseFloat(p.paddingLeft)), !1;
31
31
  });
32
- const d = t.tabBarReduceDistance || 0;
32
+ const v = t.tabBarReduceDistance || 0;
33
33
  return {
34
- [s]: `${a - d}px`,
35
- transform: `translate${f(u)}(${e + d / 2}px)`
34
+ [r]: `${s - v}px`,
35
+ transform: `translate${l(h)}(${e + v / 2}px)`
36
36
  };
37
- }, r = () => b.value = x(), o = [], _ = () => {
37
+ }, a = () => b.value = _(), o = [], w = () => {
38
38
  o.forEach((e) => e.stop()), o.length = 0, Object.values(t.tabRefs || {}).forEach((e) => {
39
- o.push(y(e, r));
39
+ o.push(R(e, a));
40
40
  });
41
41
  };
42
- $(
42
+ T(
43
43
  () => t.tabs,
44
44
  async () => {
45
- await k(), r(), _();
45
+ await k(), a(), w();
46
46
  },
47
47
  { immediate: !0 }
48
48
  );
49
- const w = y(i, () => r());
49
+ const z = R(i, () => a());
50
50
  C(() => {
51
- o.forEach((e) => e.stop()), o.length = 0, w.stop();
51
+ o.forEach((e) => e.stop()), o.length = 0, z.stop();
52
52
  });
53
- const z = D(() => l.props.tabPosition);
54
- return g({
53
+ const B = D(() => m.props.tabPosition);
54
+ return E(() => {
55
+ setTimeout(() => {
56
+ d.value = !0;
57
+ }, 100);
58
+ }), x({
55
59
  ref: i,
56
- update: r
57
- }), (e, a) => (O(), E("div", {
60
+ update: a
61
+ }), (e, s) => (F(), O("div", {
58
62
  ref_key: "barRef",
59
63
  ref: i,
60
- class: F([v(m).e("active-bar"), v(m).is(z.value)]),
61
- style: T(b.value)
64
+ class: P([y(u).e("active-bar"), y(u).is(B.value), { "is-load": d.value }]),
65
+ style: L(b.value)
62
66
  }, null, 6));
63
67
  }
64
68
  });
65
69
  export {
66
- V as default
70
+ X as default
67
71
  };
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.321",
3
+ "version": "0.0.322",
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.321";
1
+ const o = "0.0.322";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,4 +1,4 @@
1
- import { hasOwn as m, camelize as N, isArray as E } from "@vft/utils";
1
+ import { isArray as E, hasOwn as m, camelize as N } from "@vft/utils";
2
2
  import { isVNode as o, Fragment as S, Comment as A, Text as s, createCommentVNode as L, createBlock as _, openBlock as C } from "vue";
3
3
  import { debugWarn as O } from "../error.js";
4
4
  const R = "utils/vue/vnode";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),T=require("@vft/constants"),Y=require("@vft/use"),s=require("@vft/utils");require("../form/index.cjs");const b=require("../icon/index.cjs"),Z=require("@vueuse/core"),q=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),_=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./utils.cjs"),te=require("../form/hooks/use-form-item.cjs"),oe=require("../form/hooks/use-form-common-props.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=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:{[T.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),F=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=p["aria-haspopup"],o["aria-owns"]=p["aria-owns"],o["aria-expanded"]=p["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",c.value),n.is("exceed",fe.value),n.is("focus",m.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",m.value)]),r=Y.useAttrs({excludeKeys:e.computed(()=>Object.keys(F.value))}),{form:ue,formItem:C}=te.useFormItem(),{inputId:M}=te.useFormItemInputId(se.props,{formItemContext:C}),ie=oe.useFormSize(),c=oe.useFormDisabled(),n=_.useNamespace("input"),A=_.useNamespace("textarea"),w=e.shallowRef(),d=e.shallowRef(),m=e.ref(!1),V=e.ref(!1),v=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),y=e.computed(()=>w.value||d.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),h=e.computed(()=>C?.validateState||""),K=e.computed(()=>h.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[h.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!c.value&&!t.readonly&&!!u.value&&(m.value||V.value)),z=e.computed(()=>t.showPassword&&!c.value&&!t.readonly&&!!u.value&&(!!u.value||m.value)),f=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!c.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!f.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||f.value||!!h.value&&R.value),[ve,ye]=Y.useCursor(w);Z.useResizeObserver(d,o=>{if(!f.value||t.resize!=="both")return;const a=o[0],{width:k}=a.contentRect;D.value={right:`calc(100% - ${k+15+6}px)`}});const B=()=>{if(!(!Z.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(d.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(d.value).minHeight}},g=()=>{const o=y.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!v.value){if(a===u.value){g();return}l(T.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),v.value=!0},ke=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,k=a[a.length-1]||"";v.value=!ke(k)},H=o=>{l("compositionend",o),v.value&&(v.value=!1,P(o))},be=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),y.value?.focus()},Ce=()=>y.value?.blur(),G=o=>{m.value=!0,l("focus",o)},J=o=>{m.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>q.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{y.value?.select()},X=()=>{l(T.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>q.debugWarn(o))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&q.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),ne({input:w,textarea:d,ref:y,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(F.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(M),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(c),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(k=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),h.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",h.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(M),ref_key:"textarea",ref:d,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(c),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),f.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),T=require("@vft/constants"),Y=require("@vft/use"),s=require("@vft/utils");require("../form/index.cjs");const b=require("../icon/index.cjs"),Z=require("@vueuse/core"),q=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),_=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./utils.cjs"),te=require("../form/hooks/use-form-common-props.cjs"),oe=require("../form/hooks/use-form-item.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=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:{[T.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),F=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=p["aria-haspopup"],o["aria-owns"]=p["aria-owns"],o["aria-expanded"]=p["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",c.value),n.is("exceed",fe.value),n.is("focus",m.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",m.value)]),r=Y.useAttrs({excludeKeys:e.computed(()=>Object.keys(F.value))}),{form:ue,formItem:C}=oe.useFormItem(),{inputId:M}=oe.useFormItemInputId(se.props,{formItemContext:C}),ie=te.useFormSize(),c=te.useFormDisabled(),n=_.useNamespace("input"),A=_.useNamespace("textarea"),w=e.shallowRef(),d=e.shallowRef(),m=e.ref(!1),V=e.ref(!1),v=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),y=e.computed(()=>w.value||d.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),h=e.computed(()=>C?.validateState||""),K=e.computed(()=>h.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[h.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!c.value&&!t.readonly&&!!u.value&&(m.value||V.value)),z=e.computed(()=>t.showPassword&&!c.value&&!t.readonly&&!!u.value&&(!!u.value||m.value)),f=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!c.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!f.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||f.value||!!h.value&&R.value),[ve,ye]=Y.useCursor(w);Z.useResizeObserver(d,o=>{if(!f.value||t.resize!=="both")return;const a=o[0],{width:k}=a.contentRect;D.value={right:`calc(100% - ${k+15+6}px)`}});const B=()=>{if(!(!Z.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(d.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(d.value).minHeight}},g=()=>{const o=y.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!v.value){if(a===u.value){g();return}l(T.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),v.value=!0},ke=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,k=a[a.length-1]||"";v.value=!ke(k)},H=o=>{l("compositionend",o),v.value&&(v.value=!1,P(o))},be=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),y.value?.focus()},Ce=()=>y.value?.blur(),G=o=>{m.value=!0,l("focus",o)},J=o=>{m.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>q.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{y.value?.select()},X=()=>{l(T.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>q.debugWarn(o))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&q.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),ne({input:w,textarea:d,ref:y,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(F.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(M),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(c),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(k=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),h.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",h.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(M),ref_key:"textarea",ref:d,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(c),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),f.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),h=require("@vueuse/core"),p=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");const S=require("lodash-es"),w=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const B=require("./types.cjs"),N=e.defineComponent({__name:"tab-bar",props:{tabs:{},tabRefs:{},tabBarReduceDistance:{}},setup(y,{expose:R}){const s=y,b=e.inject(B.TabsRootContextKey),f=w.useNamespace("tabs"),c=e.ref(),d=e.ref(),g=()=>{let t=0,o=0;const n=["top","bottom"].includes(b.props.tabPosition)?"width":"height",m=n==="width"?"x":"y",x=m==="x"?"left":"top";s.tabs.every(u=>{if(S.isUndefined(u.paneName))return!1;const i=s.tabRefs?.[u.paneName];if(!i)return!1;if(!u.active)return!0;t=i[`offset${p.capitalize(x)}`],o=i[`client${p.capitalize(n)}`];const l=window.getComputedStyle(i);return n==="width"&&(o-=Number.parseFloat(l.paddingLeft)+Number.parseFloat(l.paddingRight),t+=Number.parseFloat(l.paddingLeft)),!1});const v=s.tabBarReduceDistance||0;return{[n]:`${o-v}px`,transform:`translate${p.capitalize(m)}(${t+v/2}px)`}},a=()=>d.value=g(),r=[],_=()=>{r.forEach(t=>t.stop()),r.length=0,Object.values(s.tabRefs||{}).forEach(t=>{r.push(h.useResizeObserver(t,a))})};e.watch(()=>s.tabs,async()=>{await e.nextTick(),a(),_()},{immediate:!0});const q=h.useResizeObserver(c,()=>a());e.onBeforeUnmount(()=>{r.forEach(t=>t.stop()),r.length=0,q.stop()});const z=e.computed(()=>b.props.tabPosition);return R({ref:c,update:a}),(t,o)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"barRef",ref:c,class:e.normalizeClass([e.unref(f).e("active-bar"),e.unref(f).is(z.value)]),style:e.normalizeStyle(d.value)},null,6))}});exports.default=N;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("@vueuse/core"),f=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");const w=require("lodash-es"),B=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const N=require("./types.cjs"),O=e.defineComponent({__name:"tab-bar",props:{tabs:{},tabRefs:{},tabBarReduceDistance:{}},setup(R,{expose:g}){const s=R,p=e.inject(N.TabsRootContextKey),b=B.useNamespace("tabs"),c=e.ref(),d=e.ref(),m=e.ref(!1),_=()=>{let t=0,o=0;const n=["top","bottom"].includes(p.props.tabPosition)?"width":"height",v=n==="width"?"x":"y",S=v==="x"?"left":"top";s.tabs.every(u=>{if(w.isUndefined(u.paneName))return!1;const i=s.tabRefs?.[u.paneName];if(!i)return!1;if(!u.active)return!0;t=i[`offset${f.capitalize(S)}`],o=i[`client${f.capitalize(n)}`];const l=window.getComputedStyle(i);return n==="width"&&(o-=Number.parseFloat(l.paddingLeft)+Number.parseFloat(l.paddingRight),t+=Number.parseFloat(l.paddingLeft)),!1});const h=s.tabBarReduceDistance||0;return{[n]:`${o-h}px`,transform:`translate${f.capitalize(v)}(${t+h/2}px)`}},a=()=>d.value=_(),r=[],q=()=>{r.forEach(t=>t.stop()),r.length=0,Object.values(s.tabRefs||{}).forEach(t=>{r.push(y.useResizeObserver(t,a))})};e.watch(()=>s.tabs,async()=>{await e.nextTick(),a(),q()},{immediate:!0});const z=y.useResizeObserver(c,()=>a());e.onBeforeUnmount(()=>{r.forEach(t=>t.stop()),r.length=0,z.stop()});const x=e.computed(()=>p.props.tabPosition);return e.onMounted(()=>{setTimeout(()=>{m.value=!0},100)}),g({ref:c,update:a}),(t,o)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"barRef",ref:c,class:e.normalizeClass([e.unref(b).e("active-bar"),e.unref(b).is(x.value),{"is-load":m.value}]),style:e.normalizeStyle(d.value)},null,6))}});exports.default=O;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.321";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.322";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.321",
3
+ "version": "0.0.322",
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.321",
3
+ "version": "0.0.322",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -55,12 +55,12 @@
55
55
  "resize-detector": "0.3.0",
56
56
  "sortablejs": "1.15.0",
57
57
  "photoswipe": "5.4.4",
58
- "@vft/router": "0.0.65",
59
58
  "@vft/constants": "0.0.72",
60
- "@vft/utils": "0.0.128",
61
- "@vft/use": "0.0.76",
59
+ "@vft/directives": "0.0.33",
62
60
  "@vft/store": "0.0.54",
63
- "@vft/directives": "0.0.33"
61
+ "@vft/router": "0.0.65",
62
+ "@vft/utils": "0.0.128",
63
+ "@vft/use": "0.0.76"
64
64
  },
65
65
  "vetur": {
66
66
  "tags": "tags.json",