@v-c/tabs 1.0.1 → 1.0.2
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.
- package/dist/TabContext.js +2 -0
- package/dist/TabNavList/AddButton.js +2 -0
- package/dist/TabNavList/AddButton.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/TabNavList/ExtraContent.js +2 -0
- package/dist/TabNavList/ExtraContent.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/TabNavList/OperationNode.js +2 -0
- package/dist/TabNavList/OperationNode.vue_vue_type_script_setup_true_lang.js +6 -4
- package/dist/TabNavList/TabNode.js +2 -0
- package/dist/TabNavList/TabNode.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/TabNavList/Wrapper.js +2 -0
- package/dist/TabNavList/Wrapper.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/TabNavList/index.js +2 -0
- package/dist/TabNavList/index.vue_vue_type_script_setup_true_lang.js +23 -8
- package/dist/TabPanelList/TabPane.js +2 -0
- package/dist/TabPanelList/TabPane.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/TabPanelList/index.js +2 -0
- package/dist/TabPanelList/index.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/Tabs.js +2 -0
- package/dist/Tabs.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/hooks/useAnimateConfig.js +2 -0
- package/dist/hooks/useIndicator.js +3 -2
- package/dist/hooks/useOffsets.js +2 -0
- package/dist/hooks/useTouchMove.js +3 -3
- package/dist/hooks/useVisibleRange.js +2 -0
- package/dist/index.js +2 -0
- package/dist/utils.js +7 -1
- package/package.json +5 -5
package/dist/TabContext.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inject, provide } from "vue";
|
|
2
|
+
//#region src/TabContext.ts
|
|
2
3
|
var TabContextKey = Symbol("TabContext");
|
|
3
4
|
function provideTabContext(value) {
|
|
4
5
|
provide(TabContextKey, value);
|
|
@@ -6,4 +7,5 @@ function provideTabContext(value) {
|
|
|
6
7
|
function useTabContext() {
|
|
7
8
|
return inject(TabContextKey, {});
|
|
8
9
|
}
|
|
10
|
+
//#endregion
|
|
9
11
|
export { provideTabContext, useTabContext };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import AddButton_vue_vue_type_script_setup_true_lang_default from "./AddButton.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/AddButton.vue
|
|
2
3
|
var AddButton_default = AddButton_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { AddButton_default as default };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createCommentVNode, createElementBlock, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, toRefs, unref } from "vue";
|
|
2
2
|
import { RenderComponent } from "@v-c/util";
|
|
3
|
+
//#region src/TabNavList/AddButton.vue?vue&type=script&setup=true&lang.ts
|
|
3
4
|
var _hoisted_1 = ["aria-label"];
|
|
4
5
|
var AddButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
6
|
name: "AddButton",
|
|
@@ -32,4 +33,5 @@ var AddButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
});
|
|
36
|
+
//#endregion
|
|
35
37
|
export { AddButton_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import ExtraContent_vue_vue_type_script_setup_true_lang_default from "./ExtraContent.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/ExtraContent.vue
|
|
2
3
|
var ExtraContent_default = ExtraContent_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { ExtraContent_default as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { computed, createCommentVNode, createElementBlock, createVNode, defineComponent, isVNode, normalizeClass, openBlock, ref, toRefs, unref } from "vue";
|
|
2
2
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
3
3
|
import { ensureValidVNode } from "@v-c/util/dist/vnode";
|
|
4
|
+
//#region src/TabNavList/ExtraContent.vue?vue&type=script&setup=true&lang.ts
|
|
4
5
|
var ExtraContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
6
|
__name: "ExtraContent",
|
|
6
7
|
props: {
|
|
@@ -46,4 +47,5 @@ var ExtraContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
});
|
|
50
|
+
//#endregion
|
|
49
51
|
export { ExtraContent_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import OperationNode_vue_vue_type_script_setup_true_lang_default from "./OperationNode.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/OperationNode.vue
|
|
2
3
|
var OperationNode_default = OperationNode_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { OperationNode_default as default };
|
|
@@ -6,6 +6,7 @@ import RenderComponent$1 from "@v-c/util/dist/RenderComponent";
|
|
|
6
6
|
import DropDown from "@v-c/dropdown";
|
|
7
7
|
import Menu from "@v-c/menu";
|
|
8
8
|
import KeyCode from "@v-c/util/dist/KeyCode";
|
|
9
|
+
//#region src/TabNavList/OperationNode.vue?vue&type=script&setup=true&lang.ts
|
|
9
10
|
var _hoisted_1 = [
|
|
10
11
|
"id",
|
|
11
12
|
"aria-controls",
|
|
@@ -94,12 +95,12 @@ var OperationNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
94
95
|
});
|
|
95
96
|
const moreIconNode = computed(() => moreProps.value?.icon || "More");
|
|
96
97
|
const moreStyle = computed(() => {
|
|
97
|
-
const style
|
|
98
|
+
const style = { marginInlineStart: tabBarGutter.value ? `${tabBarGutter.value}px` : "0px" };
|
|
98
99
|
if (!props.tabs.length) {
|
|
99
|
-
style
|
|
100
|
-
style
|
|
100
|
+
style.visibility = "hidden";
|
|
101
|
+
style.order = 1;
|
|
101
102
|
}
|
|
102
|
-
return style
|
|
103
|
+
return style;
|
|
103
104
|
});
|
|
104
105
|
function selectOffset(offset) {
|
|
105
106
|
const enabledTabs = props.tabs.filter((tab) => !tab.disabled);
|
|
@@ -202,4 +203,5 @@ var OperationNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
202
203
|
};
|
|
203
204
|
}
|
|
204
205
|
});
|
|
206
|
+
//#endregion
|
|
205
207
|
export { OperationNode_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import TabNode_vue_vue_type_script_setup_true_lang_default from "./TabNode.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/TabNode.vue
|
|
2
3
|
var TabNode_default = TabNode_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { TabNode_default as default };
|
|
@@ -2,6 +2,7 @@ import { genDataNodeKey, getRemovable } from "../utils.js";
|
|
|
2
2
|
import { computed, createBlock, defineComponent, h, onMounted, openBlock, ref, toRefs, unref, watch } from "vue";
|
|
3
3
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
4
4
|
import { isEmptyElement } from "@v-c/util/dist/props-util";
|
|
5
|
+
//#region src/TabNavList/TabNode.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var TabNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
6
7
|
name: "TabNode",
|
|
7
8
|
inheritAttrs: false,
|
|
@@ -124,4 +125,5 @@ var TabNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
});
|
|
128
|
+
//#endregion
|
|
127
129
|
export { TabNode_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import Wrapper_vue_vue_type_script_setup_true_lang_default from "./Wrapper.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/Wrapper.vue
|
|
2
3
|
var Wrapper_default = Wrapper_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { Wrapper_default as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import TabNavList_default from "./index.js";
|
|
2
2
|
import { computed, createBlock, defineComponent, h, openBlock, unref } from "vue";
|
|
3
3
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
4
|
+
//#region src/TabNavList/Wrapper.vue?vue&type=script&setup=true&lang.ts
|
|
4
5
|
var Wrapper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
6
|
name: "TabNavListWrapper",
|
|
6
7
|
inheritAttrs: false,
|
|
@@ -49,4 +50,5 @@ var Wrapper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
});
|
|
53
|
+
//#endregion
|
|
52
54
|
export { Wrapper_vue_vue_type_script_setup_true_lang_default as default };
|
package/dist/TabNavList/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabNavList/index.vue
|
|
2
3
|
var TabNavList_default = index_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { TabNavList_default as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useTabContext } from "../TabContext.js";
|
|
2
|
-
import
|
|
2
|
+
import useIndicator from "../hooks/useIndicator.js";
|
|
3
3
|
import useOffsets from "../hooks/useOffsets.js";
|
|
4
4
|
import useTouchMove from "../hooks/useTouchMove.js";
|
|
5
5
|
import useVisibleRange from "../hooks/useVisibleRange.js";
|
|
@@ -8,9 +8,10 @@ import AddButton_default from "./AddButton.js";
|
|
|
8
8
|
import ExtraContent_default from "./ExtraContent.js";
|
|
9
9
|
import OperationNode_default from "./OperationNode.js";
|
|
10
10
|
import TabNode_default from "./TabNode.js";
|
|
11
|
-
import { computed, createBlock, createElementVNode, createVNode, defineComponent, h, mergeProps, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, shallowRef, toRefs, unref, watch, withCtx } from "vue";
|
|
11
|
+
import { Fragment, computed, createBlock, createElementVNode, createVNode, defineComponent, h, mergeProps, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, shallowRef, toRefs, unref, useSlots, watch, withCtx } from "vue";
|
|
12
12
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
13
13
|
import ResizeObserver from "@v-c/resize-observer";
|
|
14
|
+
//#region src/TabNavList/index.vue?vue&type=script&setup=true&lang.ts
|
|
14
15
|
var _hoisted_1 = ["aria-orientation"];
|
|
15
16
|
var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
16
17
|
name: "TabNavList",
|
|
@@ -51,6 +52,17 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
51
52
|
const props = __props;
|
|
52
53
|
const { className, style, id, animated, activeKey, rtl, extra, editable, locale, tabPosition, tabBarGutter: tabBarGutterProp, children, onTabClick, onTabScroll, indicator, classNames: tabsClassNames, styles, mobile, more, getPopupContainer, popupClassName } = toRefs(props);
|
|
53
54
|
const tabBarGutter = computed(() => tabBarGutterProp.value ? `${tabBarGutterProp.value}px` : void 0);
|
|
55
|
+
const slots = useSlots();
|
|
56
|
+
const defaultSlotWrapper = computed(() => {
|
|
57
|
+
if (!slots.default) return void 0;
|
|
58
|
+
return (node) => {
|
|
59
|
+
const slotResult = slots.default?.(node);
|
|
60
|
+
if (!slotResult) return node;
|
|
61
|
+
if (Array.isArray(slotResult)) return slotResult.length ? h(Fragment, null, slotResult) : node;
|
|
62
|
+
return slotResult;
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
const renderWrapper = computed(() => children.value ?? defaultSlotWrapper.value);
|
|
54
66
|
const ctx = useTabContext();
|
|
55
67
|
const tabs = computed(() => ctx?.value.tabs || []);
|
|
56
68
|
const prefixCls = computed(() => ctx?.value.prefixCls || "");
|
|
@@ -77,8 +89,11 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
77
89
|
const tabOffsets = useOffsets(tabs, tabSizes, firstTabContentSize);
|
|
78
90
|
const operationsRef = ref(null);
|
|
79
91
|
const innerAddButtonRef = ref(null);
|
|
80
|
-
|
|
81
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`
|
|
94
|
+
*/
|
|
95
|
+
function getUnitValue(size, tabPositionTopOrBottom) {
|
|
96
|
+
return size[tabPositionTopOrBottom ? 0 : 1];
|
|
82
97
|
}
|
|
83
98
|
const containerExcludeExtraSizeValue = computed(() => getUnitValue(containerExcludeExtraSize.value, tabPositionTopOrBottom.value));
|
|
84
99
|
const tabContentSizeValue = computed(() => getUnitValue(tabContentSize.value, tabPositionTopOrBottom.value));
|
|
@@ -285,7 +300,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
285
300
|
if (!rtl.value) wrap.scrollLeft = 0;
|
|
286
301
|
wrap.scrollTop = 0;
|
|
287
302
|
}
|
|
288
|
-
const inkStyle =
|
|
303
|
+
const inkStyle = useIndicator({
|
|
289
304
|
activeTabOffset: computed(() => tabOffsets.value.get(activeKey.value)),
|
|
290
305
|
horizontal: isHorizontal,
|
|
291
306
|
indicator,
|
|
@@ -422,7 +437,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
422
437
|
editable: unref(editable),
|
|
423
438
|
active: tab.key === unref(activeKey),
|
|
424
439
|
focus: tab.key === focusKey.value,
|
|
425
|
-
renderWrapper:
|
|
440
|
+
renderWrapper: renderWrapper.value,
|
|
426
441
|
removeAriaLabel: unref(locale)?.removeAriaLabel,
|
|
427
442
|
tabCount: tabs.value.filter((t) => !t.disabled).length,
|
|
428
443
|
currentPosition: i + 1,
|
|
@@ -502,12 +517,12 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
502
517
|
position: "right",
|
|
503
518
|
"prefix-cls": prefixCls.value,
|
|
504
519
|
extra: unref(extra)
|
|
505
|
-
}, null, 8, ["prefix-cls", "extra"])
|
|
506
|
-
createVNode(unref(RenderComponent), { render: unref(children) }, null, 8, ["render"])
|
|
520
|
+
}, null, 8, ["prefix-cls", "extra"])
|
|
507
521
|
], 46, _hoisted_1)]),
|
|
508
522
|
_: 1
|
|
509
523
|
});
|
|
510
524
|
};
|
|
511
525
|
}
|
|
512
526
|
});
|
|
527
|
+
//#endregion
|
|
513
528
|
export { index_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import TabPane_vue_vue_type_script_setup_true_lang_default from "./TabPane.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabPanelList/TabPane.vue
|
|
2
3
|
var TabPane_default = TabPane_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { TabPane_default as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, unref, useSlots } from "vue";
|
|
2
2
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
3
3
|
import { ensureValidVNode } from "@v-c/util/dist/vnode";
|
|
4
|
+
//#region src/TabPanelList/TabPane.vue?vue&type=script&setup=true&lang.ts
|
|
4
5
|
var _hoisted_1 = [
|
|
5
6
|
"id",
|
|
6
7
|
"tabindex",
|
|
@@ -80,4 +81,5 @@ var TabPane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
83
|
});
|
|
84
|
+
//#endregion
|
|
83
85
|
export { TabPane_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/TabPanelList/index.vue
|
|
2
3
|
var TabPanelList_default = index_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
3
5
|
export { TabPanelList_default as default };
|
|
@@ -3,6 +3,7 @@ import TabPane_default from "./TabPane.js";
|
|
|
3
3
|
import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, renderList, toRefs, unref, vShow, withCtx, withDirectives } from "vue";
|
|
4
4
|
import RenderComponent from "@v-c/util/dist/RenderComponent";
|
|
5
5
|
import { getTransitionProps } from "@v-c/util/dist/utils/transition";
|
|
6
|
+
//#region src/TabPanelList/index.vue?vue&type=script&setup=true&lang.ts
|
|
6
7
|
var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
7
8
|
__name: "index",
|
|
8
9
|
props: {
|
|
@@ -100,4 +101,5 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
100
101
|
};
|
|
101
102
|
}
|
|
102
103
|
});
|
|
104
|
+
//#endregion
|
|
103
105
|
export { index_vue_vue_type_script_setup_true_lang_default as default };
|
package/dist/Tabs.js
CHANGED
|
@@ -8,6 +8,7 @@ import { clsx } from "@v-c/util";
|
|
|
8
8
|
import useMergedState from "@v-c/util/dist/hooks/useMergedState";
|
|
9
9
|
import isMobile from "@v-c/util/dist/isMobile";
|
|
10
10
|
import omit from "@v-c/util/dist/omit";
|
|
11
|
+
//#region src/Tabs.vue?vue&type=script&setup=true&lang.ts
|
|
11
12
|
var _hoisted_1 = ["id"];
|
|
12
13
|
var Tabs_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13
14
|
name: "Tabs",
|
|
@@ -186,4 +187,5 @@ var Tabs_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
186
187
|
};
|
|
187
188
|
}
|
|
188
189
|
});
|
|
190
|
+
//#endregion
|
|
189
191
|
export { Tabs_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { warning } from "@v-c/util/dist/warning";
|
|
2
|
+
//#region src/hooks/useAnimateConfig.ts
|
|
2
3
|
function useAnimateConfig(animated = {
|
|
3
4
|
inkBar: true,
|
|
4
5
|
tabPane: false
|
|
@@ -23,4 +24,5 @@ function useAnimateConfig(animated = {
|
|
|
23
24
|
}
|
|
24
25
|
return mergedAnimated;
|
|
25
26
|
}
|
|
27
|
+
//#endregion
|
|
26
28
|
export { useAnimateConfig as default };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { nextTick, onUnmounted, ref, watch } from "vue";
|
|
2
2
|
import raf from "@v-c/util/dist/raf";
|
|
3
|
+
//#region src/hooks/useIndicator.ts
|
|
3
4
|
function useIndicator(options) {
|
|
4
5
|
const { activeTabOffset, horizontal, rtl, indicator } = options;
|
|
5
6
|
const inkStyle = ref();
|
|
@@ -61,5 +62,5 @@ function useIndicator(options) {
|
|
|
61
62
|
});
|
|
62
63
|
return inkStyle;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
export {
|
|
65
|
+
//#endregion
|
|
66
|
+
export { useIndicator as default };
|
package/dist/hooks/useOffsets.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { shallowRef, watch } from "vue";
|
|
2
|
+
//#region src/hooks/useOffsets.ts
|
|
2
3
|
var DEFAULT_SIZE = {
|
|
3
4
|
width: 0,
|
|
4
5
|
height: 0,
|
|
@@ -34,4 +35,5 @@ function useOffsets(tabs, tabSizes, holderScrollWidth) {
|
|
|
34
35
|
}, { immediate: true });
|
|
35
36
|
return mapRef;
|
|
36
37
|
}
|
|
38
|
+
//#endregion
|
|
37
39
|
export { useOffsets as default };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { onMounted, onUnmounted, ref } from "vue";
|
|
2
|
+
//#region src/hooks/useTouchMove.ts
|
|
2
3
|
var MIN_SWIPE_DISTANCE = .1;
|
|
3
4
|
var STOP_SWIPE_DISTANCE = .01;
|
|
4
5
|
var REFRESH_INTERVAL = 20;
|
|
@@ -45,9 +46,7 @@ function useTouchMove(elRef, onOffset) {
|
|
|
45
46
|
if (lo) {
|
|
46
47
|
const distanceX = lo.x / (lastTimeDiff.value || 1);
|
|
47
48
|
const distanceY = lo.y / (lastTimeDiff.value || 1);
|
|
48
|
-
|
|
49
|
-
const absY = Math.abs(distanceY);
|
|
50
|
-
if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;
|
|
49
|
+
if (Math.max(Math.abs(distanceX), Math.abs(distanceY)) < MIN_SWIPE_DISTANCE) return;
|
|
51
50
|
let currentX = distanceX;
|
|
52
51
|
let currentY = distanceY;
|
|
53
52
|
motionRef.value = window.setInterval(() => {
|
|
@@ -114,4 +113,5 @@ function useTouchMove(elRef, onOffset) {
|
|
|
114
113
|
});
|
|
115
114
|
});
|
|
116
115
|
}
|
|
116
|
+
//#endregion
|
|
117
117
|
export { useTouchMove as default };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { computed, shallowRef, watch } from "vue";
|
|
2
|
+
//#region src/hooks/useVisibleRange.ts
|
|
2
3
|
var DEFAULT_SIZE = {
|
|
3
4
|
width: 0,
|
|
4
5
|
height: 0,
|
|
@@ -46,4 +47,5 @@ function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabConte
|
|
|
46
47
|
}, { immediate: true });
|
|
47
48
|
return rangeRef;
|
|
48
49
|
}
|
|
50
|
+
//#endregion
|
|
49
51
|
export { useVisibleRange as default };
|
package/dist/index.js
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { isEmptyElement } from "@v-c/util/dist/props-util";
|
|
2
|
-
|
|
2
|
+
//#region src/utils.ts
|
|
3
|
+
var tabsGlobal = { uuid: 0 };
|
|
3
4
|
function setUUid(uuid) {
|
|
4
5
|
tabsGlobal.uuid = uuid;
|
|
5
6
|
}
|
|
6
7
|
function getUUid() {
|
|
7
8
|
return tabsGlobal.uuid;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* We trade Map as deps which may change with same value but different ref object.
|
|
12
|
+
* We should make it as hash for deps
|
|
13
|
+
*/
|
|
9
14
|
function stringify(obj) {
|
|
10
15
|
let tgt;
|
|
11
16
|
if (obj instanceof Map) {
|
|
@@ -24,4 +29,5 @@ var VC_TABS_DOUBLE_QUOTE = "TABS_DQ";
|
|
|
24
29
|
function genDataNodeKey(key) {
|
|
25
30
|
return String(key).replace(/"/g, VC_TABS_DOUBLE_QUOTE);
|
|
26
31
|
}
|
|
32
|
+
//#endregion
|
|
27
33
|
export { genDataNodeKey, getRemovable, getUUid, setUUid, stringify, tabsGlobal };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@v-c/tabs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"description": "tabs ui component for react",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"vue": "^3.0.0"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@v-c/menu": "^1.0.7",
|
|
36
35
|
"@v-c/dropdown": "^1.0.2",
|
|
37
|
-
"@v-c/
|
|
38
|
-
"@v-c/
|
|
39
|
-
"@v-c/util": "^1.0.
|
|
36
|
+
"@v-c/menu": "^1.0.12",
|
|
37
|
+
"@v-c/overflow": "^1.0.4",
|
|
38
|
+
"@v-c/util": "^1.0.19",
|
|
39
|
+
"@v-c/resize-observer": "^1.0.8"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "vite build",
|