vft 0.0.7 → 0.0.9

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,3 +1,3 @@
1
1
  import "../../../theme-style/src/base.scss.mjs";
2
- import "vft/theme-style/src/tab-pane.scss";
2
+ import "../../../theme-style/src/tab-pane.scss.mjs";
3
3
  //# sourceMappingURL=index.mjs.map
@@ -89,7 +89,7 @@ const r = (
89
89
  children: P,
90
90
  addChild: k,
91
91
  removeChild: A
92
- } = U(g(), "vri-tab-pane");
92
+ } = U(g(), "vft-tab-pane");
93
93
  F(S, {
94
94
  props: T.props,
95
95
  currentName: c,
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.vue2.mjs","sources":["../../../../../packages/components/tabs/tabs.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('tabs')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"tsx\">\nimport { type IconProps } from '@vft-ui/components';\nimport { useNamespace, useOrderedChildren } from '@vft-ui/hooks';\nimport { UPDATE_MODEL_EVENT } from '@vft/constants';\nimport { isNumberish, isUndefined } from '@vft/utils';\nimport { computed, getCurrentInstance, nextTick, provide, ref, useSlots, watch } from 'vue';\nimport TabNav from './tab-nav.vue';\nimport { type TabsPaneContext, type TabsProps, TabsRootContextKey, type TabsType } from './types';\n\ninterface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n /** 是否自动撑开宽度 */\n stretch?: boolean;\n /** icon 配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"type\": { default: '' },\n \"closable\": { type: Boolean, },\n \"addable\": { type: Boolean, default: false },\n \"modelValue\": null,\n \"editable\": { type: Boolean, },\n \"tabPosition\": { default: 'top' },\n \"beforeLeave\": { type: Function, },\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits({\n [UPDATE_MODEL_EVENT]: (name: Numberish) => isNumberish(name),\n /** 点击 */\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n /** 右键点击 */\n tabContextMenu: (pane: TabsPaneContext, index: number, ev: Event) => ev instanceof Event,\n tabChange: (name: Numberish) => isNumberish(name),\n edit: (paneName: Numberish | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n /** 移除 */\n tabRemove: (name: Numberish) => isNumberish(name),\n /** 增加 */\n tabAdd: () => true\n});\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\nconst slots = useSlots();\n\n// tab-nav 实例\nconst nav$ = ref();\n\n// 默认的激活的 tab\nconst currentName = ref<Numberish>(__props.modelValue ?? '0');\n\n// 更新当前 current tab 触发 tabChange 以及更新 modelValue\nconst changeCurrentName = (value: Numberish) => {\n currentName.value = value;\n emit('update:modelValue', value);\n emit('tabChange', value);\n};\n\n// value 值为当前点击的 tab 值\nconst setCurrentName = async (value?: Numberish) => {\n // 如果 currentName 等于原值,或者 value 不存在,不执行\n if (currentName.value === value || isUndefined(value)) return;\n\n try {\n // 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n const canLeave = await __props.beforeLeave?.(value, currentName.value);\n if (canLeave !== false) {\n // 更新 tab 值\n changeCurrentName(value);\n //\n nav$.value?.removeFocus?.();\n }\n } catch {}\n};\n\n/**\n * @description tab 点击事件\n * @author wfd\n * @date 2022/10/18 09:07\n * @example\n * @param {TabsPaneContext} tab 当前被点击的 tab 信息\n * @param {Numberish} tabName 被点击的 tab 值\n * @param {Event} event\n */\nconst handleTabClick = (tab: TabsPaneContext, tabName: Numberish, event: Event) => {\n // 如果 TabPaneProps 中设置了 disabled 则禁止点击\n if (tab.props.disabled) return;\n // 更新 currentName\n setCurrentName(tabName);\n // 抛出 tabClick 事件\n emit('tabClick', tab, event);\n};\n\nconst handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return;\n ev.stopPropagation();\n emit('edit', pane.props.name, 'remove');\n emit('tabRemove', pane.props.name);\n};\n\n// 监听 modelValue 改变触发改变 currentName\nwatch(\n () => __props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n);\n\n// 当前激活的 tab 变化触发 nav$ scrollToActiveTab 方法\nwatch(currentName, async () => {\n await nextTick();\n nav$.value?.scrollToActiveTab();\n});\n\n// 增加 tab 事件\nconst handleTabAdd = () => {\n emit('edit', undefined, 'add');\n emit('tabAdd');\n};\n\nconst handleContextmenu = (pane: TabsPaneContext, index: number, ev: Event) => {\n emit('tabContextMenu', pane, index, ev);\n};\n\n// 默认渲染的内容区域\nconst panels = computed(() => {\n return <div class={ns.e('content')}>{slots.default?.()}</div>;\n});\n\n// 找出当前 tab 组件下 vri-tab-pane 的组件实例对象\nconst { children: panes, addChild: registerPane, removeChild: unregisterPane } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'vri-tab-pane');\n\nprovide(TabsRootContextKey, {\n props: vm.props as unknown as TabsProps,\n currentName,\n registerPane,\n unregisterPane\n});\n\ndefineExpose({\n currentName\n});\n\n// 图标相关\nconst _addIconCfg = computed(() => {\n return {\n icon: 'vi-add',\n color: 'black',\n size: 12,\n ...__props.addIconCfg\n };\n});\n\nconst _closeIconCfg = computed(() => {\n return {\n icon: 'vi-close',\n size: 12,\n ...__props.closeIconCfg\n };\n});\n\nconst _arrowLeftIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-left',\n size: 18,\n ...__props.arrowLeftIconCfg\n };\n});\n\nconst _arrowRightIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-right',\n size: 18,\n ...__props.arrowRightIconCfg\n };\n});\n\nconst header = computed(() => {\n return (\n <div class={[ns.e('header'), ns.is(__props.tabPosition)]}>\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n panes={panes.value}\n stretch={__props.stretch}\n closeIconCfg={_closeIconCfg.value}\n addIconCfg={_addIconCfg.value}\n arrowRightIconCfg={_arrowRightIconCfg.value}\n arrowLeftIconCfg={_arrowLeftIconCfg.value}\n editable={__props.editable}\n addable={__props.addable}\n type={__props.type}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n onTabAdd={handleTabAdd}\n onTabContextmenu={handleContextmenu}\n />\n {slots.headerRight?.()}\n </div>\n );\n});\n\ndefineRender(() => {\n return (\n <div\n class={[\n ns.b(),\n ns.m(__props.tabPosition),\n {\n [ns.m('card')]: __props.type === 'card',\n [ns.m('border-card')]: __props.type === 'border-card'\n }\n ]}\n >\n {...__props.tabPosition !== 'bottom' ? [header.value, panels.value] : [panels.value, header.value]}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","slots","useSlots","nav$","ref","currentName","__props","modelValue","changeCurrentName","value","emit","setCurrentName","isUndefined","beforeLeave","removeFocus","handleTabClick","tab","tabName","event","props","disabled","handleTabRemove","pane","ev","stopPropagation","watch","nextTick","scrollToActiveTab","handleTabAdd","undefined","handleContextmenu","index","panels","computed","_createVNode","e","default","children","panes","addChild","registerPane","removeChild","unregisterPane","useOrderedChildren","provide","TabsRootContextKey","expose","_addIconCfg","icon","color","size","addIconCfg","_closeIconCfg","closeIconCfg","_arrowLeftIconCfg","arrowLeftIconCfg","_arrowRightIconCfg","arrowRightIconCfg","header","is","tabPosition","TabNav","stretch","editable","addable","type","headerRight","m"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.vue2.mjs","sources":["../../../../../packages/components/tabs/tabs.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('tabs')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"tsx\">\nimport { type IconProps } from '@vft-ui/components';\nimport { useNamespace, useOrderedChildren } from '@vft-ui/hooks';\nimport { UPDATE_MODEL_EVENT } from '@vft/constants';\nimport { isNumberish, isUndefined } from '@vft/utils';\nimport { computed, getCurrentInstance, nextTick, provide, ref, useSlots, watch } from 'vue';\nimport TabNav from './tab-nav.vue';\nimport { type TabsPaneContext, type TabsProps, TabsRootContextKey, type TabsType } from './types';\n\ninterface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n /** 是否自动撑开宽度 */\n stretch?: boolean;\n /** icon 配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"type\": { default: '' },\n \"closable\": { type: Boolean, },\n \"addable\": { type: Boolean, default: false },\n \"modelValue\": null,\n \"editable\": { type: Boolean, },\n \"tabPosition\": { default: 'top' },\n \"beforeLeave\": { type: Function, },\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits({\n [UPDATE_MODEL_EVENT]: (name: Numberish) => isNumberish(name),\n /** 点击 */\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n /** 右键点击 */\n tabContextMenu: (pane: TabsPaneContext, index: number, ev: Event) => ev instanceof Event,\n tabChange: (name: Numberish) => isNumberish(name),\n edit: (paneName: Numberish | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n /** 移除 */\n tabRemove: (name: Numberish) => isNumberish(name),\n /** 增加 */\n tabAdd: () => true\n});\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\nconst slots = useSlots();\n\n// tab-nav 实例\nconst nav$ = ref();\n\n// 默认的激活的 tab\nconst currentName = ref<Numberish>(__props.modelValue ?? '0');\n\n// 更新当前 current tab 触发 tabChange 以及更新 modelValue\nconst changeCurrentName = (value: Numberish) => {\n currentName.value = value;\n emit('update:modelValue', value);\n emit('tabChange', value);\n};\n\n// value 值为当前点击的 tab 值\nconst setCurrentName = async (value?: Numberish) => {\n // 如果 currentName 等于原值,或者 value 不存在,不执行\n if (currentName.value === value || isUndefined(value)) return;\n\n try {\n // 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n const canLeave = await __props.beforeLeave?.(value, currentName.value);\n if (canLeave !== false) {\n // 更新 tab 值\n changeCurrentName(value);\n //\n nav$.value?.removeFocus?.();\n }\n } catch {}\n};\n\n/**\n * @description tab 点击事件\n * @author wfd\n * @date 2022/10/18 09:07\n * @example\n * @param {TabsPaneContext} tab 当前被点击的 tab 信息\n * @param {Numberish} tabName 被点击的 tab 值\n * @param {Event} event\n */\nconst handleTabClick = (tab: TabsPaneContext, tabName: Numberish, event: Event) => {\n // 如果 TabPaneProps 中设置了 disabled 则禁止点击\n if (tab.props.disabled) return;\n // 更新 currentName\n setCurrentName(tabName);\n // 抛出 tabClick 事件\n emit('tabClick', tab, event);\n};\n\nconst handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return;\n ev.stopPropagation();\n emit('edit', pane.props.name, 'remove');\n emit('tabRemove', pane.props.name);\n};\n\n// 监听 modelValue 改变触发改变 currentName\nwatch(\n () => __props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n);\n\n// 当前激活的 tab 变化触发 nav$ scrollToActiveTab 方法\nwatch(currentName, async () => {\n await nextTick();\n nav$.value?.scrollToActiveTab();\n});\n\n// 增加 tab 事件\nconst handleTabAdd = () => {\n emit('edit', undefined, 'add');\n emit('tabAdd');\n};\n\nconst handleContextmenu = (pane: TabsPaneContext, index: number, ev: Event) => {\n emit('tabContextMenu', pane, index, ev);\n};\n\n// 默认渲染的内容区域\nconst panels = computed(() => {\n return <div class={ns.e('content')}>{slots.default?.()}</div>;\n});\n\n// 找出当前 tab 组件下 vri-tab-pane 的组件实例对象\nconst { children: panes, addChild: registerPane, removeChild: unregisterPane } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'vft-tab-pane');\n\nprovide(TabsRootContextKey, {\n props: vm.props as unknown as TabsProps,\n currentName,\n registerPane,\n unregisterPane\n});\n\ndefineExpose({\n currentName\n});\n\n// 图标相关\nconst _addIconCfg = computed(() => {\n return {\n icon: 'vi-add',\n color: 'black',\n size: 12,\n ...__props.addIconCfg\n };\n});\n\nconst _closeIconCfg = computed(() => {\n return {\n icon: 'vi-close',\n size: 12,\n ...__props.closeIconCfg\n };\n});\n\nconst _arrowLeftIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-left',\n size: 18,\n ...__props.arrowLeftIconCfg\n };\n});\n\nconst _arrowRightIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-right',\n size: 18,\n ...__props.arrowRightIconCfg\n };\n});\n\nconst header = computed(() => {\n return (\n <div class={[ns.e('header'), ns.is(__props.tabPosition)]}>\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n panes={panes.value}\n stretch={__props.stretch}\n closeIconCfg={_closeIconCfg.value}\n addIconCfg={_addIconCfg.value}\n arrowRightIconCfg={_arrowRightIconCfg.value}\n arrowLeftIconCfg={_arrowLeftIconCfg.value}\n editable={__props.editable}\n addable={__props.addable}\n type={__props.type}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n onTabAdd={handleTabAdd}\n onTabContextmenu={handleContextmenu}\n />\n {slots.headerRight?.()}\n </div>\n );\n});\n\ndefineRender(() => {\n return (\n <div\n class={[\n ns.b(),\n ns.m(__props.tabPosition),\n {\n [ns.m('card')]: __props.type === 'card',\n [ns.m('border-card')]: __props.type === 'border-card'\n }\n ]}\n >\n {...__props.tabPosition !== 'bottom' ? [header.value, panels.value] : [panels.value, header.value]}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","slots","useSlots","nav$","ref","currentName","__props","modelValue","changeCurrentName","value","emit","setCurrentName","isUndefined","beforeLeave","removeFocus","handleTabClick","tab","tabName","event","props","disabled","handleTabRemove","pane","ev","stopPropagation","watch","nextTick","scrollToActiveTab","handleTabAdd","undefined","handleContextmenu","index","panels","computed","_createVNode","e","default","children","panes","addChild","registerPane","removeChild","unregisterPane","useOrderedChildren","provide","TabsRootContextKey","expose","_addIconCfg","icon","color","size","addIconCfg","_closeIconCfg","closeIconCfg","_arrowLeftIconCfg","arrowLeftIconCfg","_arrowRightIconCfg","arrowRightIconCfg","header","is","tabPosition","TabNav","stretch","editable","addable","type","headerRight","m"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const o = "0.0.7";
1
+ const o = "0.0.9";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -0,0 +1,5 @@
1
+ const a = "";
2
+ export {
3
+ a as default
4
+ };
5
+ //# sourceMappingURL=tab-pane.scss.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-pane.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,2 +1,2 @@
1
- "use strict";require("../../../theme-style/src/base.scss.js");require("vft/theme-style/src/tab-pane.scss");
1
+ "use strict";require("../../../theme-style/src/base.scss.js");require("../../../theme-style/src/tab-pane.scss.js");
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),V=require("../../hooks/use-namespace/index.js"),q=require("../../hooks/use-ordered-children/index.js"),k=require("@vft/constants"),l=require("@vft/utils"),A=require("./tab-nav.vue2.js"),E=require("./types.js"),c=V.useNamespace("tabs"),M=n.defineComponent({name:c.b()}),z=n.defineComponent({...M,props:{type:{default:""},closable:{type:Boolean},addable:{type:Boolean,default:!1},modelValue:null,editable:{type:Boolean},tabPosition:{default:"top"},beforeLeave:{type:Function},stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:{[k.UPDATE_MODEL_EVENT]:t=>l.isNumberish(t),tabClick:(t,i)=>i instanceof Event,tabContextMenu:(t,i,a)=>a instanceof Event,tabChange:t=>l.isNumberish(t),edit:(t,i)=>["remove","add"].includes(i),tabRemove:t=>l.isNumberish(t),tabAdd:()=>!0},setup(t,{expose:i,emit:a}){const C=n.getCurrentInstance(),u=n.useSlots(),s=n.ref(),d=n.ref(t.modelValue??"0"),g=e=>{d.value=e,a("update:modelValue",e),a("tabChange",e)},f=async e=>{var o,r,m;if(!(d.value===e||l.isUndefined(e)))try{await((o=t.beforeLeave)==null?void 0:o.call(t,e,d.value))!==!1&&(g(e),(m=(r=s.value)==null?void 0:r.removeFocus)==null||m.call(r))}catch{}},h=(e,o,r)=>{e.props.disabled||(f(o),a("tabClick",e,r))},I=(e,o)=>{e.props.disabled||l.isUndefined(e.props.name)||(o.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))};n.watch(()=>t.modelValue,e=>f(e)),n.watch(d,async()=>{var e;await n.nextTick(),(e=s.value)==null||e.scrollToActiveTab()});const y=()=>{a("edit",void 0,"add"),a("tabAdd")},N=(e,o,r)=>{a("tabContextMenu",e,o,r)},b=n.computed(()=>{var e;return n.createVNode("div",{class:c.e("content")},[(e=u.default)==null?void 0:e.call(u)])}),{children:w,addChild:T,removeChild:p}=q.useOrderedChildren(n.getCurrentInstance(),"vri-tab-pane");n.provide(E.TabsRootContextKey,{props:C.props,currentName:d,registerPane:T,unregisterPane:p}),i({currentName:d});const R=n.computed(()=>({icon:"vi-add",color:"black",size:12,...t.addIconCfg})),x=n.computed(()=>({icon:"vi-close",size:12,...t.closeIconCfg})),L=n.computed(()=>({icon:"vi-arrow-left",size:18,...t.arrowLeftIconCfg})),P=n.computed(()=>({icon:"vi-arrow-right",size:18,...t.arrowRightIconCfg})),v=n.computed(()=>{var e;return n.createVNode("div",{class:[c.e("header"),c.is(t.tabPosition)]},[n.createVNode(A.default,{ref:s,currentName:d.value,panes:w.value,stretch:t.stretch,closeIconCfg:x.value,addIconCfg:R.value,arrowRightIconCfg:P.value,arrowLeftIconCfg:L.value,editable:t.editable,addable:t.addable,type:t.type,onTabClick:h,onTabRemove:I,onTabAdd:y,onTabContextmenu:N},null),(e=u.headerRight)==null?void 0:e.call(u)])});return()=>n.createVNode("div",{class:[c.b(),c.m(t.tabPosition),{[c.m("card")]:t.type==="card",[c.m("border-card")]:t.type==="border-card"}]},[...t.tabPosition!=="bottom"?[v.value,b.value]:[b.value,v.value]])}});exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),V=require("../../hooks/use-namespace/index.js"),q=require("../../hooks/use-ordered-children/index.js"),k=require("@vft/constants"),l=require("@vft/utils"),A=require("./tab-nav.vue2.js"),E=require("./types.js"),r=V.useNamespace("tabs"),M=n.defineComponent({name:r.b()}),z=n.defineComponent({...M,props:{type:{default:""},closable:{type:Boolean},addable:{type:Boolean,default:!1},modelValue:null,editable:{type:Boolean},tabPosition:{default:"top"},beforeLeave:{type:Function},stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:{[k.UPDATE_MODEL_EVENT]:t=>l.isNumberish(t),tabClick:(t,u)=>u instanceof Event,tabContextMenu:(t,u,a)=>a instanceof Event,tabChange:t=>l.isNumberish(t),edit:(t,u)=>["remove","add"].includes(u),tabRemove:t=>l.isNumberish(t),tabAdd:()=>!0},setup(t,{expose:u,emit:a}){const C=n.getCurrentInstance(),i=n.useSlots(),s=n.ref(),d=n.ref(t.modelValue??"0"),g=e=>{d.value=e,a("update:modelValue",e),a("tabChange",e)},f=async e=>{var o,c,m;if(!(d.value===e||l.isUndefined(e)))try{await((o=t.beforeLeave)==null?void 0:o.call(t,e,d.value))!==!1&&(g(e),(m=(c=s.value)==null?void 0:c.removeFocus)==null||m.call(c))}catch{}},h=(e,o,c)=>{e.props.disabled||(f(o),a("tabClick",e,c))},I=(e,o)=>{e.props.disabled||l.isUndefined(e.props.name)||(o.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))};n.watch(()=>t.modelValue,e=>f(e)),n.watch(d,async()=>{var e;await n.nextTick(),(e=s.value)==null||e.scrollToActiveTab()});const y=()=>{a("edit",void 0,"add"),a("tabAdd")},N=(e,o,c)=>{a("tabContextMenu",e,o,c)},b=n.computed(()=>{var e;return n.createVNode("div",{class:r.e("content")},[(e=i.default)==null?void 0:e.call(i)])}),{children:w,addChild:T,removeChild:p}=q.useOrderedChildren(n.getCurrentInstance(),"vft-tab-pane");n.provide(E.TabsRootContextKey,{props:C.props,currentName:d,registerPane:T,unregisterPane:p}),u({currentName:d});const R=n.computed(()=>({icon:"vi-add",color:"black",size:12,...t.addIconCfg})),x=n.computed(()=>({icon:"vi-close",size:12,...t.closeIconCfg})),L=n.computed(()=>({icon:"vi-arrow-left",size:18,...t.arrowLeftIconCfg})),P=n.computed(()=>({icon:"vi-arrow-right",size:18,...t.arrowRightIconCfg})),v=n.computed(()=>{var e;return n.createVNode("div",{class:[r.e("header"),r.is(t.tabPosition)]},[n.createVNode(A.default,{ref:s,currentName:d.value,panes:w.value,stretch:t.stretch,closeIconCfg:x.value,addIconCfg:R.value,arrowRightIconCfg:P.value,arrowLeftIconCfg:L.value,editable:t.editable,addable:t.addable,type:t.type,onTabClick:h,onTabRemove:I,onTabAdd:y,onTabContextmenu:N},null),(e=i.headerRight)==null?void 0:e.call(i)])});return()=>n.createVNode("div",{class:[r.b(),r.m(t.tabPosition),{[r.m("card")]:t.type==="card",[r.m("border-card")]:t.type==="border-card"}]},[...t.tabPosition!=="bottom"?[v.value,b.value]:[b.value,v.value]])}});exports.default=z;
2
2
  //# sourceMappingURL=tabs.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.vue2.js","sources":["../../../../../packages/components/tabs/tabs.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('tabs')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"tsx\">\nimport { type IconProps } from '@vft-ui/components';\nimport { useNamespace, useOrderedChildren } from '@vft-ui/hooks';\nimport { UPDATE_MODEL_EVENT } from '@vft/constants';\nimport { isNumberish, isUndefined } from '@vft/utils';\nimport { computed, getCurrentInstance, nextTick, provide, ref, useSlots, watch } from 'vue';\nimport TabNav from './tab-nav.vue';\nimport { type TabsPaneContext, type TabsProps, TabsRootContextKey, type TabsType } from './types';\n\ninterface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n /** 是否自动撑开宽度 */\n stretch?: boolean;\n /** icon 配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"type\": { default: '' },\n \"closable\": { type: Boolean, },\n \"addable\": { type: Boolean, default: false },\n \"modelValue\": null,\n \"editable\": { type: Boolean, },\n \"tabPosition\": { default: 'top' },\n \"beforeLeave\": { type: Function, },\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits({\n [UPDATE_MODEL_EVENT]: (name: Numberish) => isNumberish(name),\n /** 点击 */\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n /** 右键点击 */\n tabContextMenu: (pane: TabsPaneContext, index: number, ev: Event) => ev instanceof Event,\n tabChange: (name: Numberish) => isNumberish(name),\n edit: (paneName: Numberish | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n /** 移除 */\n tabRemove: (name: Numberish) => isNumberish(name),\n /** 增加 */\n tabAdd: () => true\n});\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\nconst slots = useSlots();\n\n// tab-nav 实例\nconst nav$ = ref();\n\n// 默认的激活的 tab\nconst currentName = ref<Numberish>(__props.modelValue ?? '0');\n\n// 更新当前 current tab 触发 tabChange 以及更新 modelValue\nconst changeCurrentName = (value: Numberish) => {\n currentName.value = value;\n emit('update:modelValue', value);\n emit('tabChange', value);\n};\n\n// value 值为当前点击的 tab 值\nconst setCurrentName = async (value?: Numberish) => {\n // 如果 currentName 等于原值,或者 value 不存在,不执行\n if (currentName.value === value || isUndefined(value)) return;\n\n try {\n // 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n const canLeave = await __props.beforeLeave?.(value, currentName.value);\n if (canLeave !== false) {\n // 更新 tab 值\n changeCurrentName(value);\n //\n nav$.value?.removeFocus?.();\n }\n } catch {}\n};\n\n/**\n * @description tab 点击事件\n * @author wfd\n * @date 2022/10/18 09:07\n * @example\n * @param {TabsPaneContext} tab 当前被点击的 tab 信息\n * @param {Numberish} tabName 被点击的 tab 值\n * @param {Event} event\n */\nconst handleTabClick = (tab: TabsPaneContext, tabName: Numberish, event: Event) => {\n // 如果 TabPaneProps 中设置了 disabled 则禁止点击\n if (tab.props.disabled) return;\n // 更新 currentName\n setCurrentName(tabName);\n // 抛出 tabClick 事件\n emit('tabClick', tab, event);\n};\n\nconst handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return;\n ev.stopPropagation();\n emit('edit', pane.props.name, 'remove');\n emit('tabRemove', pane.props.name);\n};\n\n// 监听 modelValue 改变触发改变 currentName\nwatch(\n () => __props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n);\n\n// 当前激活的 tab 变化触发 nav$ scrollToActiveTab 方法\nwatch(currentName, async () => {\n await nextTick();\n nav$.value?.scrollToActiveTab();\n});\n\n// 增加 tab 事件\nconst handleTabAdd = () => {\n emit('edit', undefined, 'add');\n emit('tabAdd');\n};\n\nconst handleContextmenu = (pane: TabsPaneContext, index: number, ev: Event) => {\n emit('tabContextMenu', pane, index, ev);\n};\n\n// 默认渲染的内容区域\nconst panels = computed(() => {\n return <div class={ns.e('content')}>{slots.default?.()}</div>;\n});\n\n// 找出当前 tab 组件下 vri-tab-pane 的组件实例对象\nconst { children: panes, addChild: registerPane, removeChild: unregisterPane } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'vri-tab-pane');\n\nprovide(TabsRootContextKey, {\n props: vm.props as unknown as TabsProps,\n currentName,\n registerPane,\n unregisterPane\n});\n\ndefineExpose({\n currentName\n});\n\n// 图标相关\nconst _addIconCfg = computed(() => {\n return {\n icon: 'vi-add',\n color: 'black',\n size: 12,\n ...__props.addIconCfg\n };\n});\n\nconst _closeIconCfg = computed(() => {\n return {\n icon: 'vi-close',\n size: 12,\n ...__props.closeIconCfg\n };\n});\n\nconst _arrowLeftIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-left',\n size: 18,\n ...__props.arrowLeftIconCfg\n };\n});\n\nconst _arrowRightIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-right',\n size: 18,\n ...__props.arrowRightIconCfg\n };\n});\n\nconst header = computed(() => {\n return (\n <div class={[ns.e('header'), ns.is(__props.tabPosition)]}>\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n panes={panes.value}\n stretch={__props.stretch}\n closeIconCfg={_closeIconCfg.value}\n addIconCfg={_addIconCfg.value}\n arrowRightIconCfg={_arrowRightIconCfg.value}\n arrowLeftIconCfg={_arrowLeftIconCfg.value}\n editable={__props.editable}\n addable={__props.addable}\n type={__props.type}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n onTabAdd={handleTabAdd}\n onTabContextmenu={handleContextmenu}\n />\n {slots.headerRight?.()}\n </div>\n );\n});\n\ndefineRender(() => {\n return (\n <div\n class={[\n ns.b(),\n ns.m(__props.tabPosition),\n {\n [ns.m('card')]: __props.type === 'card',\n [ns.m('border-card')]: __props.type === 'border-card'\n }\n ]}\n >\n {...__props.tabPosition !== 'bottom' ? [header.value, panels.value] : [panels.value, header.value]}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","slots","useSlots","nav$","ref","currentName","__props","modelValue","changeCurrentName","value","emit","setCurrentName","isUndefined","beforeLeave","removeFocus","handleTabClick","tab","tabName","event","props","disabled","handleTabRemove","pane","ev","stopPropagation","watch","nextTick","scrollToActiveTab","handleTabAdd","undefined","handleContextmenu","index","panels","computed","_createVNode","e","default","children","panes","addChild","registerPane","removeChild","unregisterPane","useOrderedChildren","provide","TabsRootContextKey","expose","_addIconCfg","icon","color","size","addIconCfg","_closeIconCfg","closeIconCfg","_arrowLeftIconCfg","arrowLeftIconCfg","_arrowRightIconCfg","arrowRightIconCfg","header","is","tabPosition","TabNav","stretch","editable","addable","type","headerRight","m"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.vue2.js","sources":["../../../../../packages/components/tabs/tabs.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('tabs')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"tsx\">\nimport { type IconProps } from '@vft-ui/components';\nimport { useNamespace, useOrderedChildren } from '@vft-ui/hooks';\nimport { UPDATE_MODEL_EVENT } from '@vft/constants';\nimport { isNumberish, isUndefined } from '@vft/utils';\nimport { computed, getCurrentInstance, nextTick, provide, ref, useSlots, watch } from 'vue';\nimport TabNav from './tab-nav.vue';\nimport { type TabsPaneContext, type TabsProps, TabsRootContextKey, type TabsType } from './types';\n\ninterface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n /** 是否自动撑开宽度 */\n stretch?: boolean;\n /** icon 配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"type\": { default: '' },\n \"closable\": { type: Boolean, },\n \"addable\": { type: Boolean, default: false },\n \"modelValue\": null,\n \"editable\": { type: Boolean, },\n \"tabPosition\": { default: 'top' },\n \"beforeLeave\": { type: Function, },\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits({\n [UPDATE_MODEL_EVENT]: (name: Numberish) => isNumberish(name),\n /** 点击 */\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n /** 右键点击 */\n tabContextMenu: (pane: TabsPaneContext, index: number, ev: Event) => ev instanceof Event,\n tabChange: (name: Numberish) => isNumberish(name),\n edit: (paneName: Numberish | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n /** 移除 */\n tabRemove: (name: Numberish) => isNumberish(name),\n /** 增加 */\n tabAdd: () => true\n});\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\nconst slots = useSlots();\n\n// tab-nav 实例\nconst nav$ = ref();\n\n// 默认的激活的 tab\nconst currentName = ref<Numberish>(__props.modelValue ?? '0');\n\n// 更新当前 current tab 触发 tabChange 以及更新 modelValue\nconst changeCurrentName = (value: Numberish) => {\n currentName.value = value;\n emit('update:modelValue', value);\n emit('tabChange', value);\n};\n\n// value 值为当前点击的 tab 值\nconst setCurrentName = async (value?: Numberish) => {\n // 如果 currentName 等于原值,或者 value 不存在,不执行\n if (currentName.value === value || isUndefined(value)) return;\n\n try {\n // 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n const canLeave = await __props.beforeLeave?.(value, currentName.value);\n if (canLeave !== false) {\n // 更新 tab 值\n changeCurrentName(value);\n //\n nav$.value?.removeFocus?.();\n }\n } catch {}\n};\n\n/**\n * @description tab 点击事件\n * @author wfd\n * @date 2022/10/18 09:07\n * @example\n * @param {TabsPaneContext} tab 当前被点击的 tab 信息\n * @param {Numberish} tabName 被点击的 tab 值\n * @param {Event} event\n */\nconst handleTabClick = (tab: TabsPaneContext, tabName: Numberish, event: Event) => {\n // 如果 TabPaneProps 中设置了 disabled 则禁止点击\n if (tab.props.disabled) return;\n // 更新 currentName\n setCurrentName(tabName);\n // 抛出 tabClick 事件\n emit('tabClick', tab, event);\n};\n\nconst handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return;\n ev.stopPropagation();\n emit('edit', pane.props.name, 'remove');\n emit('tabRemove', pane.props.name);\n};\n\n// 监听 modelValue 改变触发改变 currentName\nwatch(\n () => __props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n);\n\n// 当前激活的 tab 变化触发 nav$ scrollToActiveTab 方法\nwatch(currentName, async () => {\n await nextTick();\n nav$.value?.scrollToActiveTab();\n});\n\n// 增加 tab 事件\nconst handleTabAdd = () => {\n emit('edit', undefined, 'add');\n emit('tabAdd');\n};\n\nconst handleContextmenu = (pane: TabsPaneContext, index: number, ev: Event) => {\n emit('tabContextMenu', pane, index, ev);\n};\n\n// 默认渲染的内容区域\nconst panels = computed(() => {\n return <div class={ns.e('content')}>{slots.default?.()}</div>;\n});\n\n// 找出当前 tab 组件下 vri-tab-pane 的组件实例对象\nconst { children: panes, addChild: registerPane, removeChild: unregisterPane } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'vft-tab-pane');\n\nprovide(TabsRootContextKey, {\n props: vm.props as unknown as TabsProps,\n currentName,\n registerPane,\n unregisterPane\n});\n\ndefineExpose({\n currentName\n});\n\n// 图标相关\nconst _addIconCfg = computed(() => {\n return {\n icon: 'vi-add',\n color: 'black',\n size: 12,\n ...__props.addIconCfg\n };\n});\n\nconst _closeIconCfg = computed(() => {\n return {\n icon: 'vi-close',\n size: 12,\n ...__props.closeIconCfg\n };\n});\n\nconst _arrowLeftIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-left',\n size: 18,\n ...__props.arrowLeftIconCfg\n };\n});\n\nconst _arrowRightIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-right',\n size: 18,\n ...__props.arrowRightIconCfg\n };\n});\n\nconst header = computed(() => {\n return (\n <div class={[ns.e('header'), ns.is(__props.tabPosition)]}>\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n panes={panes.value}\n stretch={__props.stretch}\n closeIconCfg={_closeIconCfg.value}\n addIconCfg={_addIconCfg.value}\n arrowRightIconCfg={_arrowRightIconCfg.value}\n arrowLeftIconCfg={_arrowLeftIconCfg.value}\n editable={__props.editable}\n addable={__props.addable}\n type={__props.type}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n onTabAdd={handleTabAdd}\n onTabContextmenu={handleContextmenu}\n />\n {slots.headerRight?.()}\n </div>\n );\n});\n\ndefineRender(() => {\n return (\n <div\n class={[\n ns.b(),\n ns.m(__props.tabPosition),\n {\n [ns.m('card')]: __props.type === 'card',\n [ns.m('border-card')]: __props.type === 'border-card'\n }\n ]}\n >\n {...__props.tabPosition !== 'bottom' ? [header.value, panels.value] : [panels.value, header.value]}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","slots","useSlots","nav$","ref","currentName","__props","modelValue","changeCurrentName","value","emit","setCurrentName","isUndefined","beforeLeave","removeFocus","handleTabClick","tab","tabName","event","props","disabled","handleTabRemove","pane","ev","stopPropagation","watch","nextTick","scrollToActiveTab","handleTabAdd","undefined","handleContextmenu","index","panels","computed","_createVNode","e","default","children","panes","addChild","registerPane","removeChild","unregisterPane","useOrderedChildren","provide","TabsRootContextKey","expose","_addIconCfg","icon","color","size","addIconCfg","_closeIconCfg","closeIconCfg","_arrowLeftIconCfg","arrowLeftIconCfg","_arrowRightIconCfg","arrowRightIconCfg","header","is","tabPosition","TabNav","stretch","editable","addable","type","headerRight","m"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.7";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.9";exports.version=e;
2
2
  //# sourceMappingURL=package.json.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="";exports.default=e;
2
+ //# sourceMappingURL=tab-pane.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-pane.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -6,3 +6,4 @@
6
6
  @use './empty.scss';
7
7
  @use './result.scss';
8
8
  @use './tabs.scss';
9
+ @use './tab-pane.scss';
File without changes
File without changes