@touchvue/ui 1.0.0-beta.40 → 1.0.0-beta.42
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/es/components/input/src/input.vue.d.ts +2 -18
- package/es/components/tab/src/tab.vue.d.ts +1 -0
- package/es/components/table/src/table-head.vue.d.ts +4 -0
- package/es/index.mjs +2 -2
- package/es/index.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +56 -52
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs +3 -2
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/src/select.mjs +4 -4
- package/es/packages/components/select/src/select.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +23 -22
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab-item.vue2.mjs +11 -2
- package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +10 -1
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs +56 -11
- package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +28 -10
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/locale/index.mjs +1 -1
- package/es/packages/locale/index.mjs.map +1 -1
- package/es/packages/locale/lang/{en.mjs → en-US.mjs} +12 -3
- package/es/packages/locale/lang/en-US.mjs.map +1 -0
- package/es/packages/locale/lang/zh-CN.mjs +9 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/lib/components/input/src/input.vue.d.ts +2 -18
- package/lib/components/tab/src/tab.vue.d.ts +1 -0
- package/lib/components/table/src/table-head.vue.d.ts +4 -0
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +55 -51
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js +12 -11
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/src/select.js +4 -4
- package/lib/packages/components/select/src/select.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +57 -56
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js +10 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +25 -16
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js +55 -10
- package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +27 -9
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/locale/index.js +1 -1
- package/lib/packages/locale/index.js.map +1 -1
- package/lib/packages/locale/lang/{en.js → en-US.js} +12 -3
- package/lib/packages/locale/lang/en-US.js.map +1 -0
- package/lib/packages/locale/lang/zh-CN.js +9 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +237 -186
- package/theme/index.css +237 -186
- package/theme/skin/default.css +237 -186
- package/es/packages/locale/lang/en.mjs.map +0 -1
- package/lib/packages/locale/lang/en.js.map +0 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
+
var index = require('../../../locale/index.js');
|
|
6
7
|
|
|
7
8
|
const __default__ = vue.defineComponent({
|
|
8
9
|
name: "ToTabItem"
|
|
@@ -34,6 +35,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
34
35
|
const show = vue.computed(() => {
|
|
35
36
|
return tabProvide.selectValue.value === (props.value || props.label);
|
|
36
37
|
});
|
|
38
|
+
vue.watch(
|
|
39
|
+
() => props.label,
|
|
40
|
+
(newLabel, oldLabel) => {
|
|
41
|
+
if (tabProvide && tabProvide.updateTabLabel) {
|
|
42
|
+
tabProvide.updateTabLabel(oldLabel, newLabel);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
);
|
|
37
46
|
function init() {
|
|
38
47
|
const tabData = {
|
|
39
48
|
label: props.label,
|
|
@@ -57,7 +66,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
57
66
|
return (_ctx.lazy ? show.value : true) ? vue.withDirectives((vue.openBlock(), vue.createElementBlock(
|
|
58
67
|
"div",
|
|
59
68
|
{
|
|
60
|
-
key:
|
|
69
|
+
key: vue.unref(index.langKey),
|
|
61
70
|
class: vue.normalizeClass(["to-tab-page-item", setClass.value])
|
|
62
71
|
},
|
|
63
72
|
[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-item.vue2.js","sources":["../../../../../../packages/components/tab/src/tab-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTabItem'\n});\n</script>\n<template>\n\t<div v-show=\"show\" v-if=\"lazy ? show : true\" class=\"to-tab-page-item\" :class=\"setClass\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, inject, useSlots } from 'vue'\nimport { ITabProvide } from './tab.vue'\n\n\n\ninterface TabItemProps {\n\tdata?: any\n\tlabel?: string\n\tvalue?: string | number\n\ticon?: string\n\tpic?: string\n\tnumber?: string | number\n\tlazy?: boolean\n\ton?: boolean\n\tdisabled?: boolean\n}\n\nconst slots = useSlots()\n\nconst props = withDefaults(defineProps<TabItemProps>(), {\n\tdata: null,\n\tlabel: '',\n\tvalue: '',\n\ticon: '',\n\tpic: '',\n\tnumber: '',\n\tlazy: false,\n\ton: false,\n\tdisabled: false\n})\n\n// 注入父组件的值\nconst tabProvide: ITabProvide = inject('TabProvide')\n\n// computed\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.disabled) {\n\t\tarr.push('disabled')\n\t}\n\treturn arr\n})\n\nconst show = computed(() => {\n\treturn tabProvide.selectValue.value === (props.value || props.label)\n})\n\n// methods\nfunction init() {\n\tconst tabData = {\n\t\tlabel: props.label,\n\t\tvalue: props.value ? props.value : props.label,\n\t\ticon: props.icon,\n\t\tpic: props.pic,\n\t\tnumber: props.number,\n\t\tdisabled: props.disabled,\n\t\tdata: props.data,\n\t\ton: props.on,\n\t\tlabelSlot: slots.label\n\t}\n\ttabProvide.addTab(tabData)\n}\n\nnextTick(() => {\n\tinit()\n})\n\nonBeforeUnmount(() => {\n\t// tabProvide.removeTab(props.value)\n})\n</script>\n"],"names":["DO_defineComponent","useSlots","inject","computed","nextTick","onBeforeUnmount","lazy","_createElementBlock","_normalizeClass","_renderSlot"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tab-item.vue2.js","sources":["../../../../../../packages/components/tab/src/tab-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTabItem'\n});\n</script>\n<template>\n\t<div v-show=\"show\" v-if=\"lazy ? show : true\" :key=\"langKey\" class=\"to-tab-page-item\" :class=\"setClass\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, inject, useSlots, watch } from 'vue'\nimport { ITabProvide } from './tab.vue'\nimport { langKey } from '@touchvue/locale'\n\n\n\ninterface TabItemProps {\n\tdata?: any\n\tlabel?: string\n\tvalue?: string | number\n\ticon?: string\n\tpic?: string\n\tnumber?: string | number\n\tlazy?: boolean\n\ton?: boolean\n\tdisabled?: boolean\n}\n\nconst slots = useSlots()\n\nconst props = withDefaults(defineProps<TabItemProps>(), {\n\tdata: null,\n\tlabel: '',\n\tvalue: '',\n\ticon: '',\n\tpic: '',\n\tnumber: '',\n\tlazy: false,\n\ton: false,\n\tdisabled: false\n})\n\n// 注入父组件的值\nconst tabProvide: ITabProvide = inject('TabProvide')\n\n// computed\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.disabled) {\n\t\tarr.push('disabled')\n\t}\n\treturn arr\n})\n\nconst show = computed(() => {\n\treturn tabProvide.selectValue.value === (props.value || props.label)\n})\n\n// 监听 label 变化,更新 tab 数据\nwatch(\n\t() => props.label,\n\t(newLabel, oldLabel) => {\n\t\tif (tabProvide && tabProvide.updateTabLabel) {\n\t\t\ttabProvide.updateTabLabel(oldLabel, newLabel)\n\t\t}\n\t}\n)\n\n// methods\nfunction init() {\n\tconst tabData = {\n\t\tlabel: props.label,\n\t\tvalue: props.value ? props.value : props.label,\n\t\ticon: props.icon,\n\t\tpic: props.pic,\n\t\tnumber: props.number,\n\t\tdisabled: props.disabled,\n\t\tdata: props.data,\n\t\ton: props.on,\n\t\tlabelSlot: slots.label\n\t}\n\ttabProvide.addTab(tabData)\n}\n\nnextTick(() => {\n\tinit()\n})\n\nonBeforeUnmount(() => {\n\t// tabProvide.removeTab(props.value)\n})\n</script>\n"],"names":["DO_defineComponent","useSlots","inject","computed","watch","nextTick","onBeforeUnmount","lazy","_createElementBlock","_unref","langKey","_normalizeClass","_renderSlot"],"mappings":";;;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,WAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;AA2BD,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAEvB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAad,IAAM,MAAA,UAAA,GAA0BC,WAAO,YAAY,CAAA,CAAA;AAGnD,IAAM,MAAA,QAAA,GAAWC,aAAS,MAAM;AAC/B,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAA,IAAI,MAAM,QAAU,EAAA;AACnB,QAAA,GAAA,CAAI,KAAK,UAAU,CAAA,CAAA;AAAA,OACpB;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAOA,aAAS,MAAM;AAC3B,MAAA,OAAO,UAAW,CAAA,WAAA,CAAY,KAAW,MAAA,KAAA,CAAM,SAAS,KAAM,CAAA,KAAA,CAAA,CAAA;AAAA,KAC9D,CAAA,CAAA;AAGD,IAAAC,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAC,UAAU,QAAa,KAAA;AACvB,QAAI,IAAA,UAAA,IAAc,WAAW,cAAgB,EAAA;AAC5C,UAAW,UAAA,CAAA,cAAA,CAAe,UAAU,QAAQ,CAAA,CAAA;AAAA,SAC7C;AAAA,OACD;AAAA,KACD,CAAA;AAGA,IAAA,SAAS,IAAO,GAAA;AACf,MAAA,MAAM,OAAU,GAAA;AAAA,QACf,OAAO,KAAM,CAAA,KAAA;AAAA,QACb,KAAO,EAAA,KAAA,CAAM,KAAQ,GAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,KAAA;AAAA,QACzC,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,KAAK,KAAM,CAAA,GAAA;AAAA,QACX,QAAQ,KAAM,CAAA,MAAA;AAAA,QACd,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,IAAI,KAAM,CAAA,EAAA;AAAA,QACV,WAAW,KAAM,CAAA,KAAA;AAAA,OAClB,CAAA;AACA,MAAA,UAAA,CAAW,OAAO,OAAO,CAAA,CAAA;AAAA,KAC1B;AAEA,IAAAC,YAAA,CAAS,MAAM;AACd,MAAK,IAAA,EAAA,CAAA;AAAA,KACL,CAAA,CAAA;AAED,IAAAC,mBAAA,CAAgB,MAAM;AAAA,KAErB,CAAA,CAAA;;AAtFyBC,MAAAA,OAAAA,CAAAA,KAAAA,IAAO,GAAA,IAAA,CAAI,QAAA,2CAApC,EAAAC,sBAAA;AAAA,QAEM,KAAA;AAAA,QAAA;AAAA,UAFwC,GAAA,EAAKC,UAAOC,aAAA,CAAA;AAAA,UAAE,OAAKC,kBAAA,CAAA,CAAC,kBAA2B,EAAA,QAAA,CAAQ,KAAA,CAAA,CAAA;AAAA;;UACpGC,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;kBADD,EAAA,IAAA,CAAI,KAAA,CAAA;AAAA;;;;;;;"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var index = require('../../icon/index.js');
|
|
7
|
-
var index$
|
|
6
|
+
var index$1 = require('../../icon/index.js');
|
|
7
|
+
var index$2 = require('../../float/index.js');
|
|
8
|
+
var index = require('../../../locale/index.js');
|
|
8
9
|
|
|
9
10
|
const __default__ = vue.defineComponent({
|
|
10
11
|
name: "ToTab"
|
|
@@ -225,6 +226,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
225
226
|
stopChange = false;
|
|
226
227
|
}, 10);
|
|
227
228
|
}
|
|
229
|
+
function updateTabLabel(oldLabel, label) {
|
|
230
|
+
let idx = _data.value.findIndex((item) => item.label === oldLabel);
|
|
231
|
+
if (idx !== -1) {
|
|
232
|
+
_data.value[idx].label = label;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
228
235
|
function getPicOn(pic) {
|
|
229
236
|
let src = "";
|
|
230
237
|
if (pic && props.changePic) {
|
|
@@ -277,11 +284,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
277
284
|
vue.provide("TabProvide", {
|
|
278
285
|
addTab,
|
|
279
286
|
removeTab,
|
|
287
|
+
updateTabLabel,
|
|
280
288
|
selectValue
|
|
281
289
|
});
|
|
282
290
|
return (_ctx, _cache) => {
|
|
283
291
|
const _component_to_pic = vue.resolveComponent("to-pic");
|
|
284
292
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
293
|
+
key: vue.unref(index.langKey),
|
|
285
294
|
class: vue.normalizeClass(["to-tab", setClass.value]),
|
|
286
295
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
287
296
|
style: vue.normalizeStyle(setStyle.value)
|
|
@@ -320,24 +329,24 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
320
329
|
(vue.openBlock(true), vue.createElementBlock(
|
|
321
330
|
vue.Fragment,
|
|
322
331
|
null,
|
|
323
|
-
vue.renderList(_data.value, (item, index
|
|
332
|
+
vue.renderList(_data.value, (item, index) => {
|
|
324
333
|
return vue.openBlock(), vue.createElementBlock(
|
|
325
334
|
vue.Fragment,
|
|
326
|
-
{ key: index
|
|
335
|
+
{ key: index },
|
|
327
336
|
[
|
|
328
|
-
_ctx.$slots.center && Math.floor(_data.value.length / 2) === index
|
|
337
|
+
_ctx.$slots.center && Math.floor(_data.value.length / 2) === index ? (vue.openBlock(), vue.createElementBlock("div", { key: 0 }, [
|
|
329
338
|
vue.renderSlot(_ctx.$slots, "center")
|
|
330
339
|
])) : (vue.openBlock(), vue.createElementBlock("div", {
|
|
331
340
|
key: 1,
|
|
332
341
|
class: vue.normalizeClass(["to-tab-item", { "is-on": item.value === selectValue.value, "is-disabled": item.disabled }]),
|
|
333
342
|
style: vue.normalizeStyle(setTabStyle.value),
|
|
334
|
-
onClick: ($event) => changeTab(item, index
|
|
335
|
-
onMouseover: ($event) => changeTab(item, index
|
|
336
|
-
onContextmenu: ($event) => contextmenu(item, index
|
|
343
|
+
onClick: ($event) => changeTab(item, index, "click"),
|
|
344
|
+
onMouseover: ($event) => changeTab(item, index, "hover"),
|
|
345
|
+
onContextmenu: ($event) => contextmenu(item, index)
|
|
337
346
|
}, [
|
|
338
347
|
vue.renderSlot(_ctx.$slots, "item", {
|
|
339
348
|
item,
|
|
340
|
-
index
|
|
349
|
+
index
|
|
341
350
|
}, () => [
|
|
342
351
|
vue.createElementVNode("div", { class: "to-tab-item-main" }, [
|
|
343
352
|
vue.createElementVNode("div", { class: "to-tab-item-left" }),
|
|
@@ -351,7 +360,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
351
360
|
key: 1,
|
|
352
361
|
class: "to-tab-item-icon"
|
|
353
362
|
}, [
|
|
354
|
-
vue.createVNode(vue.unref(index.ToIcon), {
|
|
363
|
+
vue.createVNode(vue.unref(index$1.ToIcon), {
|
|
355
364
|
value: item.icon,
|
|
356
365
|
type: item.value === selectValue.value ? "fill" : "",
|
|
357
366
|
mode: "tab-icon"
|
|
@@ -366,12 +375,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
366
375
|
)
|
|
367
376
|
])
|
|
368
377
|
]),
|
|
369
|
-
_ctx.removable ? (vue.openBlock(), vue.createBlock(vue.unref(index.ToIcon), {
|
|
378
|
+
_ctx.removable ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
370
379
|
key: 2,
|
|
371
380
|
value: "close",
|
|
372
381
|
link: "",
|
|
373
382
|
class: "to-tab-item-remove",
|
|
374
|
-
onClick: vue.withModifiers(($event) => removePTab(item, index
|
|
383
|
+
onClick: vue.withModifiers(($event) => removePTab(item, index), ["stop"])
|
|
375
384
|
}, null, 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
|
|
376
385
|
]),
|
|
377
386
|
vue.createElementVNode("div", { class: "to-tab-item-right" })
|
|
@@ -399,7 +408,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
399
408
|
key: 1,
|
|
400
409
|
class: "to-tab-fn"
|
|
401
410
|
}, [
|
|
402
|
-
_ctx.over === "control" && controlShow.value ? (vue.openBlock(), vue.createBlock(vue.unref(index.ToIcon), {
|
|
411
|
+
_ctx.over === "control" && controlShow.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
403
412
|
key: 0,
|
|
404
413
|
class: "to-tab-fn-item",
|
|
405
414
|
link: "",
|
|
@@ -408,7 +417,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
408
417
|
onMouseup: scrollStop,
|
|
409
418
|
onMouseleave: scrollStop
|
|
410
419
|
})) : vue.createCommentVNode("v-if", true),
|
|
411
|
-
_ctx.over === "control" && controlShow.value ? (vue.openBlock(), vue.createBlock(vue.unref(index.ToIcon), {
|
|
420
|
+
_ctx.over === "control" && controlShow.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
412
421
|
key: 1,
|
|
413
422
|
class: "to-tab-fn-item",
|
|
414
423
|
link: "",
|
|
@@ -418,7 +427,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
418
427
|
onMouseleave: scrollStop
|
|
419
428
|
})) : vue.createCommentVNode("v-if", true),
|
|
420
429
|
vue.renderSlot(_ctx.$slots, "fn"),
|
|
421
|
-
_ctx.over === "float" ? (vue.openBlock(), vue.createBlock(vue.unref(index.ToIcon), {
|
|
430
|
+
_ctx.over === "float" ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
422
431
|
key: 2,
|
|
423
432
|
value: "menu",
|
|
424
433
|
link: ""
|
|
@@ -427,7 +436,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
427
436
|
vue.createElementVNode("div", { class: "to-tab-divider" })
|
|
428
437
|
]),
|
|
429
438
|
_ctx.contentType === "float" ? (vue.openBlock(), vue.createBlock(
|
|
430
|
-
vue.unref(index$
|
|
439
|
+
vue.unref(index$2.ToFloat),
|
|
431
440
|
{
|
|
432
441
|
key: 0,
|
|
433
442
|
ref_key: "floatRef",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.vue2.js","sources":["../../../../../../packages/components/tab/src/tab.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTab'\n});\n</script>\n<template>\n\t<div class=\"to-tab\" :class=\"setClass\" :flex=\"flex ? flex : null\" :style=\"setStyle\">\n\t\t<div class=\"to-tab-tab\">\n\t\t\t<div v-if=\"props.title || $slots.title\" class=\"to-tab-title\">\n\t\t\t\t<div class=\"to-tab-title-text\">\n\t\t\t\t\t<slot name=\"title\">{{ title }}</slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div ref=\"list\" class=\"to-tab-list\">\n\t\t\t\t<div ref=\"ul\" class=\"to-tab-wrapper\" :class=\"setUlClass\">\n\t\t\t\t\t<template v-for=\"(item, index) in _data\" :key=\"index\">\n\t\t\t\t\t\t<div v-if=\"$slots.center && Math.floor(_data.length / 2) === index\">\n\t\t\t\t\t\t\t<slot name=\"center\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else class=\"to-tab-item\" :class=\"{ 'is-on': item.value === selectValue, 'is-disabled': item.disabled }\" :style=\"setTabStyle\" @click=\"changeTab(item, index, 'click')\" @mouseover=\"changeTab(item, index, 'hover')\" @contextmenu=\"contextmenu(item, index)\">\n\t\t\t\t\t\t\t<slot name=\"item\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-item-main\">\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-left\"></div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-content\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"item.pic\" class=\"to-tab-item-pic\" :src=\"item.value === selectValue ? getPicOn(item.pic) : item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"item.icon\" class=\"to-tab-item-icon\">\n\t\t\t\t\t\t\t\t\t\t\t<to-icon :value=\"item.icon\" :type=\"item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-item-remove\" @click.stop=\"removePTab(item, index)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-right\"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"to-tab-indicator\"></div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"controlShow || over === 'float' || slot.fn\" class=\"to-tab-fn\">\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"back\" @mousedown=\"controlLeftScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"next\" @mousedown=\"controlRightScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<slot name=\"fn\"></slot>\n\t\t\t\t<to-icon v-if=\"over === 'float'\" value=\"menu\" link></to-icon>\n\t\t\t</div>\n\t\t\t<div class=\"to-tab-divider\"></div>\n\t\t</div>\n\t\t<to-float v-if=\"contentType === 'float'\" ref=\"floatRef\" :lazy=\"false\">\n\t\t\t<slot></slot>\n\t\t</to-float>\n\t\t<div v-else class=\"to-tab-page\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, CSSProperties, provide, Ref, onMounted, watch, nextTick, useSlots } from 'vue'\nimport { ToFloat, ToIcon } from '@touchvue/components'\n\n\nconst emit = defineEmits(['update:modelValue', 'change', 'remove', 'contextmenu'])\n\nexport interface TabItem {\n\tlabel: string\n\tvalue: string | number\n\t[key: string]: any\n}\n\nexport interface TabProps {\n\tflex?: boolean\n\tmodelValue?: string | number\n\titemWidth?: string | number\n\tmode?: string\n\tdata?: TabItem[] | string\n\tremovable?: boolean\n\tposition?: 'left' | 'right' | 'bottom' | 'top' | ''\n\titemDir?: 'v' | ''\n\tover?: 'float' | 'wrap' | 'control'\n\tevent?: string\n\tcontentType?: string\n\ttitle?: string\n\theight?: string | number\n\tchangePic?: boolean\n\talign?: 'center' | ''\n\tbeforeChange?: () => boolean | Promise<boolean>\n\tbeforeRemove?: () => boolean | Promise<boolean>\n}\n\nexport interface ITabProvide {\n\taddTab: (item: TabItem) => void\n\tremoveTab: (val: string | number) => void\n\tselectValue: Ref<string, string>\n}\n\nconst props = withDefaults(defineProps<TabProps>(), {\n\tmodelValue: '',\n\titemWidth: '',\n\tmode: 'default',\n\tover: 'control',\n\titemDir: '',\n\tevent: 'click',\n\tremovable: false,\n\tdata: () => [] as TabItem[],\n\tcontentType: '',\n\ttitle: '',\n\theight: '',\n\tbeforeChange: null,\n\tbeforeRemove: null,\n\tchangePic: false,\n\tposition: '',\n\talign: '',\n\tflex: false\n})\n\nconst selectValue: any = ref('')\nconst _data = ref([])\nconst floatRef = ref(null)\nconst ul = ref(null)\nconst list = ref(null)\nlet scrollTimer = null\nconst controlShow = ref(false)\nlet stopChange = false\nconst slot = useSlots()\n\nwatch(\n\t() => props.modelValue,\n\t(val, old) => {\n\t\tif (val || val === 0) {\n\t\t\tselectValue.value = val\n\t\t} else {\n\t\t\temit('update:modelValue', old)\n\t\t}\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.data,\n\t() => {\n\t\tif (!stopChange) {\n\t\t\tinitData()\n\t\t}\n\t},\n\t{ deep: true }\n)\nonMounted(() => {\n\tinitData()\n})\n\nfunction initData() {\n\tif (props.data && props.data.length) {\n\t\tif (typeof props.data === 'string') {\n\t\t\t_data.value = props.data.split(',').map(item => ({ label: item, value: item }))\n\t\t} else if (Array.isArray(props.data) && props.data.length) {\n\t\t\t_data.value = props.data\n\t\t}\n\t\tif (!selectValue.value && selectValue.value !== 0) {\n\t\t\tconst hasNoOnItems = !_data.value.some(item => item.on)\n\t\t\tif (hasNoOnItems) {\n\t\t\t\tselectValue.value = _data.value[0].value\n\t\t\t}\n\t\t}\n\t}\n\tif (props.over === 'control') {\n\t\tnextTick(() => {\n\t\t\tsetLayout()\n\t\t})\n\t}\n}\nconst setTabStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.itemWidth && !isNaN(Number(props.itemWidth)) && props.itemWidth !== 'avg') {\n\t\tobj.width = props.itemWidth + 'em'\n\t}\n\treturn obj\n})\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.height === 'full') {\n\t\tarr.push(`height-full`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (props.position === 'left') {\n\t\tarr.push(`position-left`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'right') {\n\t\tarr.push(`position-right`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'bottom') {\n\t\tarr.push(`position-bottom`)\n\t}\n\tif (props.itemDir) {\n\t\tarr.push(`item-dir-${props.itemDir}`)\n\t}\n\tif (props.itemWidth === 'avg') {\n\t\tarr.push(`item-width-avg`)\n\t}\n\tif (props.align) {\n\t\tarr.push(`align-${props.align}`)\n\t}\n\treturn arr\n})\n\nconst setUlClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.over) {\n\t\tarr.push(`over-${props.over}`)\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = props.height as string\n\t\t}\n\t}\n\treturn obj\n})\n\nasync function changeTab(item, index, event) {\n\tif (props.event !== event) return false\n\tif (item.disabled) return false\n\tlet flag = true\n\tif (props.beforeChange) {\n\t\tlet fn = props.beforeChange\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (props.contentType === 'float') {\n\t\tfloatRef.value.open(ul.value)\n\t}\n\tselectValue.value = item.value\n\temit('update:modelValue', item.value)\n\temit('change', item.value, item, index)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\n\nasync function removePTab(item, idx) {\n\tlet flag = true\n\tif (props.beforeRemove) {\n\t\tlet fn = props.beforeRemove\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (item.value === selectValue.value) {\n\t\tif (idx > 0) {\n\t\t\tselectValue.value = _data.value[idx - 1].value\n\t\t} else {\n\t\t\tselectValue.value = ''\n\t\t}\n\t\temit('update:modelValue', selectValue.value)\n\t}\n\t_data.value.splice(idx, 1)\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\temit('remove', item.value, item, idx)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction removeTab(val) {\n\t//\n\tconsole.log(val)\n}\nfunction addTab(tab) {\n\tif (props.data && props.data.length) return false\n\tstopChange = true\n\tlet idx = _data.value.findIndex(item => item.value === tab.value)\n\tif (idx === -1) {\n\t\tif (tab.on) {\n\t\t\tselectValue.value = tab.value\n\t\t}\n\t\t_data.value.push(tab)\n\t\tif (props.over === 'control') {\n\t\t\tnextTick(() => {\n\t\t\t\tsetLayout()\n\t\t\t})\n\t\t}\n\t}\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction getPicOn(pic) {\n\tlet src = ''\n\tif (pic && props.changePic) {\n\t\tlet arr = pic.split('.')\n\t\tif (arr.length === 2) {\n\t\t\tsrc = arr[0] + '-on.' + arr[1]\n\t\t} else if (arr.length > 2) {\n\t\t\tarr.forEach((item, idx) => {\n\t\t\t\tif (idx === arr.length - 1) {\n\t\t\t\t\tsrc += '-on.' + item\n\t\t\t\t} else {\n\t\t\t\t\tsrc += item\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t} else {\n\t\tsrc = pic\n\t}\n\treturn src\n}\nfunction contextmenu(item, idx) {\n\temit('contextmenu', item.value, item, idx)\n}\n// function calcTabFloat() {\n// \tlet listWidth = list.value.offsetWidth\n// \tlet nodeList = ul.value.querySelectorAll('.to-tab-item')\n// \tlet liWidths = 0\n// \tlet maxIdx = 0\n// \tnodeList.forEach((item, idx) => {\n// \t\tif (liWidths + item.offsetWidth < listWidth) {\n// \t\t\tliWidths += item.offsetWidth\n// \t\t\tmaxIdx = idx\n// \t\t}\n// \t})\n// }\nfunction controlLeftScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tul.value.scrollTo({\n\t\t\tleft: ul.value.scrollLeft - 3\n\t\t\t// behavior: 'smooth' // 平滑滚动效果\n\t\t})\n\t}, 1)\n}\nfunction controlRightScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tul.value.scrollTo({\n\t\t\tleft: ul.value.scrollLeft + 3\n\t\t\t// behavior: 'smooth' // 平滑滚动效果\n\t\t})\n\t}, 1)\n}\nfunction scrollStop() {\n\tclearInterval(scrollTimer)\n}\nfunction setLayout() {\n\tif (ul.value.clientWidth < ul.value.scrollWidth) {\n\t\tcontrolShow.value = true\n\t} else {\n\t\tcontrolShow.value = false\n\t}\n}\nprovide<ITabProvide>('TabProvide', {\n\taddTab,\n\tremoveTab,\n\tselectValue\n})\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","watch","onMounted","nextTick","computed","provide","_createElementBlock","_normalizeClass","flex","_createElementVNode","$slots","_renderSlot","title","_openBlock","_Fragment","_renderList","index","_createBlock","_createVNode","_unref","ToIcon","_mergeProps","_createTextVNode","_toDisplayString","removable","_withModifiers","over","contentType","ToFloat"],"mappings":";;;;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,OAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AA6DD,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAkCb,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAoBd,IAAM,MAAA,WAAA,GAAmBC,QAAI,EAAE,CAAA,CAAA;AAC/B,IAAM,MAAA,KAAA,GAAQA,OAAI,CAAA,EAAE,CAAA,CAAA;AACpB,IAAM,MAAA,QAAA,GAAWA,QAAI,IAAI,CAAA,CAAA;AACzB,IAAM,MAAA,EAAA,GAAKA,QAAI,IAAI,CAAA,CAAA;AACnB,IAAM,MAAA,IAAA,GAAOA,QAAI,IAAI,CAAA,CAAA;AACrB,IAAA,IAAI,WAAc,GAAA,IAAA,CAAA;AAClB,IAAM,MAAA,WAAA,GAAcA,QAAI,KAAK,CAAA,CAAA;AAC7B,IAAA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAA,MAAM,OAAOC,YAAS,EAAA,CAAA;AAEtB,IAAAC,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,KAAK,GAAQ,KAAA;AACb,QAAI,IAAA,GAAA,IAAO,QAAQ,CAAG,EAAA;AACrB,UAAA,WAAA,CAAY,KAAQ,GAAA,GAAA,CAAA;AAAA,SACd,MAAA;AACN,UAAA,IAAA,CAAK,qBAAqB,GAAG,CAAA,CAAA;AAAA,SAC9B;AAAA,OACD;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACnB,CAAA;AACA,IAAAA,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,MAAM;AACL,QAAA,IAAI,CAAC,UAAY,EAAA;AAChB,UAAS,QAAA,EAAA,CAAA;AAAA,SACV;AAAA,OACD;AAAA,MACA,EAAE,MAAM,IAAK,EAAA;AAAA,KACd,CAAA;AACA,IAAAC,aAAA,CAAU,MAAM;AACf,MAAS,QAAA,EAAA,CAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,SAAS,QAAW,GAAA;AACnB,MAAA,IAAI,KAAM,CAAA,IAAA,IAAQ,KAAM,CAAA,IAAA,CAAK,MAAQ,EAAA;AACpC,QAAI,IAAA,OAAO,KAAM,CAAA,IAAA,KAAS,QAAU,EAAA;AACnC,UAAA,KAAA,CAAM,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,CAAA,CAAA,IAAA,MAAS,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,MAAO,CAAA,CAAA,CAAA;AAAA,SAC/E,MAAA,IAAW,MAAM,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAK,IAAA,KAAA,CAAM,KAAK,MAAQ,EAAA;AAC1D,UAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,IAAA,CAAA;AAAA,SACrB;AACA,QAAA,IAAI,CAAC,WAAA,CAAY,KAAS,IAAA,WAAA,CAAY,UAAU,CAAG,EAAA;AAClD,UAAA,MAAM,eAAe,CAAC,KAAA,CAAM,MAAM,IAAK,CAAA,CAAA,IAAA,KAAQ,KAAK,EAAE,CAAA,CAAA;AACtD,UAAA,IAAI,YAAc,EAAA;AACjB,YAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAE,CAAA,KAAA,CAAA;AAAA,WACpC;AAAA,SACD;AAAA,OACD;AACA,MAAI,IAAA,KAAA,CAAM,SAAS,SAAW,EAAA;AAC7B,QAAAC,YAAA,CAAS,MAAM;AACd,UAAU,SAAA,EAAA,CAAA;AAAA,SACV,CAAA,CAAA;AAAA,OACF;AAAA,KACD;AACA,IAAM,MAAA,WAAA,GAAcC,aAAS,MAAM;AAClC,MAAA,IAAI,MAAqB,EAAC,CAAA;AAC1B,MAAI,IAAA,KAAA,CAAM,SAAa,IAAA,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,SAAS,CAAC,CAAA,IAAK,KAAM,CAAA,SAAA,KAAc,KAAO,EAAA;AACpF,QAAI,GAAA,CAAA,KAAA,GAAQ,MAAM,SAAY,GAAA,IAAA,CAAA;AAAA,OAC/B;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAM,MAAA,QAAA,GAAWA,aAAS,MAAM;AAC/B,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAI,IAAA,KAAA,CAAM,WAAW,MAAQ,EAAA;AAC5B,QAAA,GAAA,CAAI,KAAK,CAAa,WAAA,CAAA,CAAA,CAAA;AAAA,OACvB;AACA,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAI,GAAA,CAAA,IAAA,CAAK,CAAQ,KAAA,EAAA,KAAA,CAAM,IAAM,CAAA,CAAA,CAAA,CAAA;AAAA,OAC9B;AACA,MAAI,IAAA,KAAA,CAAM,aAAa,MAAQ,EAAA;AAC9B,QAAA,GAAA,CAAI,KAAK,CAAe,aAAA,CAAA,CAAA,CAAA;AACxB,QAAA,GAAA,CAAI,KAAK,CAAO,KAAA,CAAA,CAAA,CAAA;AAAA,OACjB;AACA,MAAI,IAAA,KAAA,CAAM,aAAa,OAAS,EAAA;AAC/B,QAAA,GAAA,CAAI,KAAK,CAAgB,cAAA,CAAA,CAAA,CAAA;AACzB,QAAA,GAAA,CAAI,KAAK,CAAO,KAAA,CAAA,CAAA,CAAA;AAAA,OACjB;AACA,MAAI,IAAA,KAAA,CAAM,aAAa,QAAU,EAAA;AAChC,QAAA,GAAA,CAAI,KAAK,CAAiB,eAAA,CAAA,CAAA,CAAA;AAAA,OAC3B;AACA,MAAA,IAAI,MAAM,OAAS,EAAA;AAClB,QAAI,GAAA,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,KAAA,CAAM,OAAS,CAAA,CAAA,CAAA,CAAA;AAAA,OACrC;AACA,MAAI,IAAA,KAAA,CAAM,cAAc,KAAO,EAAA;AAC9B,QAAA,GAAA,CAAI,KAAK,CAAgB,cAAA,CAAA,CAAA,CAAA;AAAA,OAC1B;AACA,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAI,GAAA,CAAA,IAAA,CAAK,CAAS,MAAA,EAAA,KAAA,CAAM,KAAO,CAAA,CAAA,CAAA,CAAA;AAAA,OAChC;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaA,aAAS,MAAM;AACjC,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAI,GAAA,CAAA,IAAA,CAAK,CAAQ,KAAA,EAAA,KAAA,CAAM,IAAM,CAAA,CAAA,CAAA,CAAA;AAAA,OAC9B;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,QAAA,GAAWA,aAAS,MAAM;AAC/B,MAAA,IAAI,MAAqB,EAAC,CAAA;AAC1B,MAAA,IAAI,MAAM,MAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,MAAM,CAAC,CAAG,EAAA;AACjC,UAAI,GAAA,CAAA,MAAA,GAAS,MAAM,MAAS,GAAA,IAAA,CAAA;AAAA,SACtB,MAAA;AACN,UAAA,GAAA,CAAI,SAAS,KAAM,CAAA,MAAA,CAAA;AAAA,SACpB;AAAA,OACD;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAe,eAAA,SAAA,CAAU,IAAM,EAAA,KAAA,EAAO,KAAO,EAAA;AAC5C,MAAA,IAAI,MAAM,KAAU,KAAA,KAAA;AAAO,QAAO,OAAA,KAAA,CAAA;AAClC,MAAA,IAAI,IAAK,CAAA,QAAA;AAAU,QAAO,OAAA,KAAA,CAAA;AAC1B,MAAA,IAAI,IAAO,GAAA,IAAA,CAAA;AACX,MAAA,IAAI,MAAM,YAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAM,CAAA,YAAA,CAAA;AACf,QAAI,IAAA,OAAO,OAAO,UAAY,EAAA;AAC7B,UAAA,IAAI,OAAQ,EAAA,EAA0B,CAAA,IAAA,KAAS,UAAY,EAAA;AAC1D,YAAA,IAAA,GAAO,MAAM,EAAG,EAAA,CAAA;AAAA,WACV,MAAA;AACN,YAAA,IAAA,GAAQ,EAAW,EAAA,CAAA;AAAA,WACpB;AAAA,SACD;AAAA,OACD;AACA,MAAA,IAAI,CAAC,IAAA;AAAM,QAAO,OAAA,KAAA,CAAA;AAClB,MAAa,UAAA,GAAA,IAAA,CAAA;AACb,MAAI,IAAA,KAAA,CAAM,gBAAgB,OAAS,EAAA;AAClC,QAAS,QAAA,CAAA,KAAA,CAAM,IAAK,CAAA,EAAA,CAAG,KAAK,CAAA,CAAA;AAAA,OAC7B;AACA,MAAA,WAAA,CAAY,QAAQ,IAAK,CAAA,KAAA,CAAA;AACzB,MAAK,IAAA,CAAA,mBAAA,EAAqB,KAAK,KAAK,CAAA,CAAA;AACpC,MAAA,IAAA,CAAK,QAAU,EAAA,IAAA,CAAK,KAAO,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AACtC,MAAA,UAAA,CAAW,MAAM;AAChB,QAAa,UAAA,GAAA,KAAA,CAAA;AAAA,SACX,EAAE,CAAA,CAAA;AAAA,KACN;AAEA,IAAe,eAAA,UAAA,CAAW,MAAM,GAAK,EAAA;AACpC,MAAA,IAAI,IAAO,GAAA,IAAA,CAAA;AACX,MAAA,IAAI,MAAM,YAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAM,CAAA,YAAA,CAAA;AACf,QAAI,IAAA,OAAO,OAAO,UAAY,EAAA;AAC7B,UAAA,IAAI,OAAQ,EAAA,EAA0B,CAAA,IAAA,KAAS,UAAY,EAAA;AAC1D,YAAA,IAAA,GAAO,MAAM,EAAG,EAAA,CAAA;AAAA,WACV,MAAA;AACN,YAAA,IAAA,GAAQ,EAAW,EAAA,CAAA;AAAA,WACpB;AAAA,SACD;AAAA,OACD;AACA,MAAA,IAAI,CAAC,IAAA;AAAM,QAAO,OAAA,KAAA,CAAA;AAClB,MAAa,UAAA,GAAA,IAAA,CAAA;AACb,MAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,CAAY,KAAO,EAAA;AACrC,QAAA,IAAI,MAAM,CAAG,EAAA;AACZ,UAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAM,KAAM,CAAA,GAAA,GAAM,CAAC,CAAE,CAAA,KAAA,CAAA;AAAA,SACnC,MAAA;AACN,UAAA,WAAA,CAAY,KAAQ,GAAA,EAAA,CAAA;AAAA,SACrB;AACA,QAAK,IAAA,CAAA,mBAAA,EAAqB,YAAY,KAAK,CAAA,CAAA;AAAA,OAC5C;AACA,MAAM,KAAA,CAAA,KAAA,CAAM,MAAO,CAAA,GAAA,EAAK,CAAC,CAAA,CAAA;AACzB,MAAI,IAAA,KAAA,CAAM,SAAS,SAAW,EAAA;AAC7B,QAAU,SAAA,EAAA,CAAA;AAAA,OACX;AACA,MAAA,IAAA,CAAK,QAAU,EAAA,IAAA,CAAK,KAAO,EAAA,IAAA,EAAM,GAAG,CAAA,CAAA;AACpC,MAAA,UAAA,CAAW,MAAM;AAChB,QAAa,UAAA,GAAA,KAAA,CAAA;AAAA,SACX,EAAE,CAAA,CAAA;AAAA,KACN;AACA,IAAA,SAAS,UAAU,GAAK,EAAA;AAEvB,MAAA,OAAA,CAAQ,IAAI,GAAG,CAAA,CAAA;AAAA,KAChB;AACA,IAAA,SAAS,OAAO,GAAK,EAAA;AACpB,MAAI,IAAA,KAAA,CAAM,IAAQ,IAAA,KAAA,CAAM,IAAK,CAAA,MAAA;AAAQ,QAAO,OAAA,KAAA,CAAA;AAC5C,MAAa,UAAA,GAAA,IAAA,CAAA;AACb,MAAI,IAAA,GAAA,GAAM,MAAM,KAAM,CAAA,SAAA,CAAU,UAAQ,IAAK,CAAA,KAAA,KAAU,IAAI,KAAK,CAAA,CAAA;AAChE,MAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACf,QAAA,IAAI,IAAI,EAAI,EAAA;AACX,UAAA,WAAA,CAAY,QAAQ,GAAI,CAAA,KAAA,CAAA;AAAA,SACzB;AACA,QAAM,KAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA,CAAA;AACpB,QAAI,IAAA,KAAA,CAAM,SAAS,SAAW,EAAA;AAC7B,UAAAD,YAAA,CAAS,MAAM;AACd,YAAU,SAAA,EAAA,CAAA;AAAA,WACV,CAAA,CAAA;AAAA,SACF;AAAA,OACD;AACA,MAAA,UAAA,CAAW,MAAM;AAChB,QAAa,UAAA,GAAA,KAAA,CAAA;AAAA,SACX,EAAE,CAAA,CAAA;AAAA,KACN;AACA,IAAA,SAAS,SAAS,GAAK,EAAA;AACtB,MAAA,IAAI,GAAM,GAAA,EAAA,CAAA;AACV,MAAI,IAAA,GAAA,IAAO,MAAM,SAAW,EAAA;AAC3B,QAAI,IAAA,GAAA,GAAM,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AACvB,QAAI,IAAA,GAAA,CAAI,WAAW,CAAG,EAAA;AACrB,UAAA,GAAA,GAAM,GAAI,CAAA,CAAC,CAAI,GAAA,MAAA,GAAS,IAAI,CAAC,CAAA,CAAA;AAAA,SAC9B,MAAA,IAAW,GAAI,CAAA,MAAA,GAAS,CAAG,EAAA;AAC1B,UAAI,GAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,EAAM,GAAQ,KAAA;AAC1B,YAAI,IAAA,GAAA,KAAQ,GAAI,CAAA,MAAA,GAAS,CAAG,EAAA;AAC3B,cAAA,GAAA,IAAO,MAAS,GAAA,IAAA,CAAA;AAAA,aACV,MAAA;AACN,cAAO,GAAA,IAAA,IAAA,CAAA;AAAA,aACR;AAAA,WACA,CAAA,CAAA;AAAA,SACF;AAAA,OACM,MAAA;AACN,QAAM,GAAA,GAAA,GAAA,CAAA;AAAA,OACP;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACR;AACA,IAAS,SAAA,WAAA,CAAY,MAAM,GAAK,EAAA;AAC/B,MAAA,IAAA,CAAK,aAAe,EAAA,IAAA,CAAK,KAAO,EAAA,IAAA,EAAM,GAAG,CAAA,CAAA;AAAA,KAC1C;AAaA,IAAA,SAAS,iBAAoB,GAAA;AAC5B,MAAA,WAAA,GAAc,YAAY,MAAM;AAC/B,QAAA,EAAA,CAAG,MAAM,QAAS,CAAA;AAAA,UACjB,IAAA,EAAM,EAAG,CAAA,KAAA,CAAM,UAAa,GAAA,CAAA;AAAA;AAAA,SAE5B,CAAA,CAAA;AAAA,SACC,CAAC,CAAA,CAAA;AAAA,KACL;AACA,IAAA,SAAS,kBAAqB,GAAA;AAC7B,MAAA,WAAA,GAAc,YAAY,MAAM;AAC/B,QAAA,EAAA,CAAG,MAAM,QAAS,CAAA;AAAA,UACjB,IAAA,EAAM,EAAG,CAAA,KAAA,CAAM,UAAa,GAAA,CAAA;AAAA;AAAA,SAE5B,CAAA,CAAA;AAAA,SACC,CAAC,CAAA,CAAA;AAAA,KACL;AACA,IAAA,SAAS,UAAa,GAAA;AACrB,MAAA,aAAA,CAAc,WAAW,CAAA,CAAA;AAAA,KAC1B;AACA,IAAA,SAAS,SAAY,GAAA;AACpB,MAAA,IAAI,EAAG,CAAA,KAAA,CAAM,WAAc,GAAA,EAAA,CAAG,MAAM,WAAa,EAAA;AAChD,QAAA,WAAA,CAAY,KAAQ,GAAA,IAAA,CAAA;AAAA,OACd,MAAA;AACN,QAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAA;AAAA,OACrB;AAAA,KACD;AACA,IAAAE,WAAA,CAAqB,YAAc,EAAA;AAAA,MAClC,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,KACA,CAAA,CAAA;;;4BAlXA,EAAAC,sBAAA,CAmDM,KAAA,EAAA;AAAA,QAnDD,OAAKC,kBAAA,CAAA,CAAC,QAAiB,EAAA,QAAA,CAAQ,KAAA,CAAA,CAAA;AAAA,QAAG,IAAMC,EAAAA,IAAAA,CAAI,IAAGA,GAAAA,IAAAA,CAAI,IAAA,GAAA,IAAA;AAAA,QAAU,KAAA,oBAAO,CAAA,QAAA,CAAQ,KAAA,CAAA;AAAA;QAChFC,sBA2CM,CAAA,KAAA,EAAA,EA3CD,KAAA,EAAM,cAAY,EAAA;AAAA,UACX,KAAA,CAAM,SAASC,IAAAA,CAAAA,MAAAA,CAAO,0BAAjCJ,uBAIM,KAAA,EAAA;AAAA;YAJkC,KAAM,EAAA,cAAA;AAAA;YAC7CG,sBAEM,CAAA,KAAA,EAAA,EAFD,KAAA,EAAM,qBAAmB,EAAA;AAAA,cAC7BE,eAAqC,0BAArC,MAAqC;AAAA;sCAAfC,KAAK,KAAA,CAAA;AAAA,kBAAA,CAAA;AAAA;AAAA,iBAAA;AAAA;;;UAG7BH,sBAAA;AAAA,YA6BM,KAAA;AAAA,YAAA;AAAA,qBA7BG,EAAA,MAAA;AAAA,cAAJ,GAAI,EAAA,IAAA;AAAA,cAAO,KAAM,EAAA,aAAA;AAAA;;cACrBA,sBAAA;AAAA,gBA2BM,KAAA;AAAA,gBAAA;AAAA,yBA3BG,EAAA,IAAA;AAAA,kBAAJ,GAAI,EAAA,EAAA;AAAA,kBAAK,OAAKF,kBAAA,CAAA,CAAC,gBAAyB,EAAA,UAAA,CAAU,KAAA,CAAA,CAAA;AAAA;;mBACtDM,aAAA,CAAA,IAAA,CAAA,EAAAP,sBAAA;AAAA,oBAyBWQ,YAAA;AAAA,oBAzBuB,IAAA;AAAA,oBAAAC,cAAA,CAAA,KAAA,CAAA,KAAhB,EAAA,CAAA,MAAMC,OAAK,KAAA;;;+BAAkBA,OAAK,EAAA;AAAA,wBAAA;AAAA,0BACxCN,KAAM,MAAC,CAAA,MAAA,IAAU,KAAK,KAAM,CAAA,KAAA,CAAK,MAAC,MAAM,GAAA,CAAA,CAAU,KAAAM,OAAA,mBAA7D,EAAAV,sBAAA,CAEM,OAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AAAA,4BADLK,cAAA,CAA2B,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAAA,kDAE5BL,uBAoBM,KAAA,EAAA;AAAA;4BApBM,KAAK,EAAAC,kBAAA,CAAA,CAAC,aAAA,EAAa,EAAA,OAAoB,EAAA,IAAA,CAAK,KAAU,KAAA,WAAA,CAAW,KAAA,EAAA,aAAA,EAAiB,IAAK,CAAA,QAAA,EAAQ,CAAA,CAAA;AAAA,4BAAK,KAAA,oBAAO,CAAA,WAAA,CAAW,KAAA,CAAA;AAAA,4BAAG,SAAO,CAAA,MAAA,KAAA,SAAU,CAAA,IAAA,EAAMS,SAAK,OAAA,CAAA;AAAA,4BAAa,aAAW,CAAA,MAAA,KAAA,SAAU,CAAA,IAAA,EAAMA,SAAK,OAAA,CAAA;AAAA,4BAAa,aAAa,EAAA,CAAA,MAAA,KAAA,WAAA,CAAY,MAAMA,OAAK,CAAA;AAAA;4BAC9PL,cAAA,CAkBO,IAAA,CAAA,MAAA,EAAA,MAAA,EAAA;AAAA,8BAlBY,IAAA;AAAA,qCAAaK,OAAA;AAAA,+BAAhC,MAkBO;AAAA,8BAjBNP,sBAeM,CAAA,KAAA,EAAA,EAfD,KAAA,EAAM,oBAAkB,EAAA;AAAA,gCAC5BA,sBAAoC,CAAA,KAAA,EAAA,EAA/B,KAAA,EAAM,oBAAkB,CAAA;AAAA,gCAC7BA,sBAWM,CAAA,KAAA,EAAA,EAXD,KAAA,EAAM,uBAAqB,EAAA;AAAA,kCACjB,IAAK,CAAA,GAAA,qBAAnBQ,gBAA2H,iBAAA,EAAA;AAAA;oCAAnG,KAAM,EAAA,iBAAA;AAAA,oCAAmB,GAAA,EAAK,KAAK,KAAU,KAAA,WAAA,CAAW,QAAG,QAAS,CAAA,IAAA,CAAK,GAAG,CAAA,GAAI,IAAK,CAAA,GAAA;AAAA;kCACjG,IAAK,CAAA,IAAA,qBAAjBX,uBAEO,MAAA,EAAA;AAAA;oCAFgB,KAAM,EAAA,kBAAA;AAAA;oCAC5BY,eAAA,CAAuGC,SAAA,CAAAC,YAAA,CAAA,EAAA;AAAA,sCAA7F,OAAO,IAAK,CAAA,IAAA;AAAA,sCAAO,IAAM,EAAA,IAAA,CAAK,KAAU,KAAA,WAAA,CAAW,QAAA,MAAA,GAAA,EAAA;AAAA,sCAAgB,IAAK,EAAA,UAAA;AAAA;;kCAEnFX,sBAIM,CAAA,KAAA,EAAA,EAJD,KAAA,EAAM,qBAAmB,EAAA;AAAA,oCAC7BE,cAAA,CAEO,IAFP,CAAA,MAAA,EAAA,OAAA,EAAAU,cAAA,CAEO,EAFoB,OAAA,EAAA,IAAA,EAAA,EAAA,IAAI,CAAA,EAA/B,MAEO;AAAA,sCADHC,mBAAA;AAAA,wCAAAC,mBAAA,CAAA,KAAK,KAAK,CAAA;AAAA,wCAAA,CAAA;AAAA;AAAA,uCAAA;AAAA;;kCAGAC,KAAS,8BAAxBP,eAAwH,CAAAE,SAAA,CAAAC,YAAA,CAAA,EAAA;AAAA;oCAA9F,KAAM,EAAA,OAAA;AAAA,oCAAQ,IAAA,EAAA,EAAA;AAAA,oCAAK,KAAM,EAAA,oBAAA;AAAA,oCAAsB,OAAA,EAAYK,iBAAA,CAAA,CAAA,MAAA,KAAA,UAAA,CAAW,MAAMT,OAAK,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA;;gCAE5GP,sBAAqC,CAAA,KAAA,EAAA,EAAhC,KAAA,EAAM,qBAAmB,CAAA;AAAA;8BAE/BA,sBAAoC,CAAA,KAAA,EAAA,EAA/B,KAAA,EAAM,oBAAkB,CAAA;AAAA;;;;;;;;;;;;;;;;;;UAMvB,WAAA,CAAA,KAAA,IAAeiB,IAAAA,CAAAA,IAAAA,KAAoB,OAAA,IAAAP,SAAA,CAAA,IAAA,CAAA,CAAK,qBAAnD,EAAAb,sBAAA,CAKM,KAAA,EAAA;AAAA;YALiD,KAAM,EAAA,WAAA;AAAA;YAC7CoB,IAAAA,CAAAA,sBAAsB,WAAW,CAAA,KAAA,mBAAhD,EAAAT,eAAA,CAAmLE,SAAA,CAAAC,YAAA,CAAA,EAAA;AAAA;cAAjI,KAAM,EAAA,gBAAA;AAAA,cAAiB,IAAA,EAAA,EAAA;AAAA,cAAK,KAAM,EAAA,MAAA;AAAA,cAAQ,WAAW,EAAA,iBAAA;AAAA,cAAoB,SAAS,EAAA,UAAA;AAAA,cAAa,YAAY,EAAA,UAAA;AAAA;YAC9IM,IAAAA,CAAAA,sBAAsB,WAAW,CAAA,KAAA,mBAAhD,EAAAT,eAAA,CAAoLE,SAAA,CAAAC,YAAA,CAAA,EAAA;AAAA;cAAlI,KAAM,EAAA,gBAAA;AAAA,cAAiB,IAAA,EAAA,EAAA;AAAA,cAAK,KAAM,EAAA,MAAA;AAAA,cAAQ,WAAW,EAAA,kBAAA;AAAA,cAAqB,SAAS,EAAA,UAAA;AAAA,cAAa,YAAY,EAAA,UAAA;AAAA;YAC9JT,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,YACRe,IAAAA,CAAI,SAAA,4BAAnBT,eAA6D,CAAAE,SAAA,CAAAC,YAAA,CAAA,EAAA;AAAA;cAA5B,KAAM,EAAA,MAAA;AAAA,cAAO,IAAA,EAAA,EAAA;AAAA;;UAE/CX,sBAAkC,CAAA,KAAA,EAAA,EAA7B,KAAA,EAAM,kBAAgB,CAAA;AAAA;QAEZkB,IAAW,CAAA,WAAA,KAAA,0BAA3B,EAAAV,eAAA;AAAA,UAEWE,UAAAS,eAAA,CAAA;AAAA,UAAA;AAAA;mBAFkC,EAAA,UAAA;AAAA,YAAJ,GAAI,EAAA,QAAA;AAAA,YAAY,IAAM,EAAA,KAAA;AAAA;;iCAC9D,MAAa;AAAA,cAAbjB,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;6BAEd,EAAAL,sBAAA,CAEM,KAAA,EAAA;AAAA;UAFM,KAAM,EAAA,aAAA;AAAA;UACjBK,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"tab.vue2.js","sources":["../../../../../../packages/components/tab/src/tab.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTab'\n});\n</script>\n<template>\n\t<div :key=\"langKey\" class=\"to-tab\" :class=\"setClass\" :flex=\"flex ? flex : null\" :style=\"setStyle\">\n\t\t<div class=\"to-tab-tab\">\n\t\t\t<div v-if=\"props.title || $slots.title\" class=\"to-tab-title\">\n\t\t\t\t<div class=\"to-tab-title-text\">\n\t\t\t\t\t<slot name=\"title\">{{ title }}</slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div ref=\"list\" class=\"to-tab-list\">\n\t\t\t\t<div ref=\"ul\" class=\"to-tab-wrapper\" :class=\"setUlClass\">\n\t\t\t\t\t<template v-for=\"(item, index) in _data\" :key=\"index\">\n\t\t\t\t\t\t<div v-if=\"$slots.center && Math.floor(_data.length / 2) === index\">\n\t\t\t\t\t\t\t<slot name=\"center\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else class=\"to-tab-item\" :class=\"{ 'is-on': item.value === selectValue, 'is-disabled': item.disabled }\" :style=\"setTabStyle\" @click=\"changeTab(item, index, 'click')\" @mouseover=\"changeTab(item, index, 'hover')\" @contextmenu=\"contextmenu(item, index)\">\n\t\t\t\t\t\t\t<slot name=\"item\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t\t\t\t<div class=\"to-tab-item-main\">\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-left\"></div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-content\">\n\t\t\t\t\t\t\t\t\t\t<to-pic v-if=\"item.pic\" class=\"to-tab-item-pic\" :src=\"item.value === selectValue ? getPicOn(item.pic) : item.pic\"></to-pic>\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"item.icon\" class=\"to-tab-item-icon\">\n\t\t\t\t\t\t\t\t\t\t\t<to-icon :value=\"item.icon\" :type=\"item.value === selectValue ? 'fill' : ''\" mode=\"tab-icon\"></to-icon>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-label\">\n\t\t\t\t\t\t\t\t\t\t\t<slot name=\"label\" v-bind=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<to-icon v-if=\"removable\" value=\"close\" link class=\"to-tab-item-remove\" @click.stop=\"removePTab(item, index)\"></to-icon>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"to-tab-item-right\"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"to-tab-indicator\"></div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"controlShow || over === 'float' || slot.fn\" class=\"to-tab-fn\">\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"back\" @mousedown=\"controlLeftScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<to-icon v-if=\"over === 'control' && controlShow\" class=\"to-tab-fn-item\" link value=\"next\" @mousedown=\"controlRightScroll\" @mouseup=\"scrollStop\" @mouseleave=\"scrollStop\"></to-icon>\n\t\t\t\t<slot name=\"fn\"></slot>\n\t\t\t\t<to-icon v-if=\"over === 'float'\" value=\"menu\" link></to-icon>\n\t\t\t</div>\n\t\t\t<div class=\"to-tab-divider\"></div>\n\t\t</div>\n\t\t<to-float v-if=\"contentType === 'float'\" ref=\"floatRef\" :lazy=\"false\">\n\t\t\t<slot></slot>\n\t\t</to-float>\n\t\t<div v-else class=\"to-tab-page\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, computed, CSSProperties, provide, Ref, onMounted, watch, nextTick, useSlots } from 'vue'\nimport { ToFloat, ToIcon } from '@touchvue/components'\nimport { langKey } from '@touchvue/locale'\n\n\nconst emit = defineEmits(['update:modelValue', 'change', 'remove', 'contextmenu'])\n\nexport interface TabItem {\n\tlabel: string\n\tvalue: string | number\n\t[key: string]: any\n}\n\nexport interface TabProps {\n\tflex?: boolean\n\tmodelValue?: string | number\n\titemWidth?: string | number\n\tmode?: string\n\tdata?: TabItem[] | string\n\tremovable?: boolean\n\tposition?: 'left' | 'right' | 'bottom' | 'top' | ''\n\titemDir?: 'v' | ''\n\tover?: 'float' | 'wrap' | 'control'\n\tevent?: string\n\tcontentType?: string\n\ttitle?: string\n\theight?: string | number\n\tchangePic?: boolean\n\talign?: 'center' | ''\n\tbeforeChange?: () => boolean | Promise<boolean>\n\tbeforeRemove?: () => boolean | Promise<boolean>\n}\n\nexport interface ITabProvide {\n\taddTab: (item: TabItem) => void\n\tremoveTab: (val: string | number) => void\n\tupdateTabLabel: (val: string | number, label: string) => void\n\tselectValue: Ref<string, string>\n}\n\nconst props = withDefaults(defineProps<TabProps>(), {\n\tmodelValue: '',\n\titemWidth: '',\n\tmode: 'default',\n\tover: 'control',\n\titemDir: '',\n\tevent: 'click',\n\tremovable: false,\n\tdata: () => [] as TabItem[],\n\tcontentType: '',\n\ttitle: '',\n\theight: '',\n\tbeforeChange: null,\n\tbeforeRemove: null,\n\tchangePic: false,\n\tposition: '',\n\talign: '',\n\tflex: false\n})\n\nconst selectValue: any = ref('')\nconst _data = ref([])\nconst floatRef = ref(null)\nconst ul = ref(null)\nconst list = ref(null)\nlet scrollTimer = null\nconst controlShow = ref(false)\nlet stopChange = false\nconst slot = useSlots()\n\nwatch(\n\t() => props.modelValue,\n\t(val, old) => {\n\t\tif (val || val === 0) {\n\t\t\tselectValue.value = val\n\t\t} else {\n\t\t\temit('update:modelValue', old)\n\t\t}\n\t},\n\t{ immediate: true }\n)\nwatch(\n\t() => props.data,\n\t() => {\n\t\tif (!stopChange) {\n\t\t\tinitData()\n\t\t}\n\t},\n\t{ deep: true }\n)\nonMounted(() => {\n\tinitData()\n})\n\nfunction initData() {\n\tif (props.data && props.data.length) {\n\t\tif (typeof props.data === 'string') {\n\t\t\t_data.value = props.data.split(',').map(item => ({ label: item, value: item }))\n\t\t} else if (Array.isArray(props.data) && props.data.length) {\n\t\t\t_data.value = props.data\n\t\t}\n\t\tif (!selectValue.value && selectValue.value !== 0) {\n\t\t\tconst hasNoOnItems = !_data.value.some(item => item.on)\n\t\t\tif (hasNoOnItems) {\n\t\t\t\tselectValue.value = _data.value[0].value\n\t\t\t}\n\t\t}\n\t}\n\tif (props.over === 'control') {\n\t\tnextTick(() => {\n\t\t\tsetLayout()\n\t\t})\n\t}\n}\nconst setTabStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.itemWidth && !isNaN(Number(props.itemWidth)) && props.itemWidth !== 'avg') {\n\t\tobj.width = props.itemWidth + 'em'\n\t}\n\treturn obj\n})\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.height === 'full') {\n\t\tarr.push(`height-full`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (props.position === 'left') {\n\t\tarr.push(`position-left`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'right') {\n\t\tarr.push(`position-right`)\n\t\tarr.push(`dir-v`)\n\t}\n\tif (props.position === 'bottom') {\n\t\tarr.push(`position-bottom`)\n\t}\n\tif (props.itemDir) {\n\t\tarr.push(`item-dir-${props.itemDir}`)\n\t}\n\tif (props.itemWidth === 'avg') {\n\t\tarr.push(`item-width-avg`)\n\t}\n\tif (props.align) {\n\t\tarr.push(`align-${props.align}`)\n\t}\n\treturn arr\n})\n\nconst setUlClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.over) {\n\t\tarr.push(`over-${props.over}`)\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = props.height as string\n\t\t}\n\t}\n\treturn obj\n})\n\nasync function changeTab(item, index, event) {\n\tif (props.event !== event) return false\n\tif (item.disabled) return false\n\tlet flag = true\n\tif (props.beforeChange) {\n\t\tlet fn = props.beforeChange\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (props.contentType === 'float') {\n\t\tfloatRef.value.open(ul.value)\n\t}\n\tselectValue.value = item.value\n\temit('update:modelValue', item.value)\n\temit('change', item.value, item, index)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\n\nasync function removePTab(item, idx) {\n\tlet flag = true\n\tif (props.beforeRemove) {\n\t\tlet fn = props.beforeRemove\n\t\tif (typeof fn === 'function') {\n\t\t\tif (typeof (fn() as Promise<boolean>).then === 'function') {\n\t\t\t\tflag = await fn()\n\t\t\t} else {\n\t\t\t\tflag = (fn as any)()\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tstopChange = true\n\tif (item.value === selectValue.value) {\n\t\tif (idx > 0) {\n\t\t\tselectValue.value = _data.value[idx - 1].value\n\t\t} else {\n\t\t\tselectValue.value = ''\n\t\t}\n\t\temit('update:modelValue', selectValue.value)\n\t}\n\t_data.value.splice(idx, 1)\n\tif (props.over === 'control') {\n\t\tsetLayout()\n\t}\n\temit('remove', item.value, item, idx)\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction removeTab(val) {\n\t//\n\tconsole.log(val)\n}\nfunction addTab(tab) {\n\tif (props.data && props.data.length) return false\n\tstopChange = true\n\tlet idx = _data.value.findIndex(item => item.value === tab.value)\n\tif (idx === -1) {\n\t\tif (tab.on) {\n\t\t\tselectValue.value = tab.value\n\t\t}\n\t\t_data.value.push(tab)\n\t\tif (props.over === 'control') {\n\t\t\tnextTick(() => {\n\t\t\t\tsetLayout()\n\t\t\t})\n\t\t}\n\t}\n\tsetTimeout(() => {\n\t\tstopChange = false\n\t}, 10)\n}\nfunction updateTabLabel(oldLabel: string | number, label: string) {\n\tlet idx = _data.value.findIndex(item => item.label === oldLabel)\n\tif (idx !== -1) {\n\t\t_data.value[idx].label = label\n\t}\n}\nfunction getPicOn(pic) {\n\tlet src = ''\n\tif (pic && props.changePic) {\n\t\tlet arr = pic.split('.')\n\t\tif (arr.length === 2) {\n\t\t\tsrc = arr[0] + '-on.' + arr[1]\n\t\t} else if (arr.length > 2) {\n\t\t\tarr.forEach((item, idx) => {\n\t\t\t\tif (idx === arr.length - 1) {\n\t\t\t\t\tsrc += '-on.' + item\n\t\t\t\t} else {\n\t\t\t\t\tsrc += item\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t} else {\n\t\tsrc = pic\n\t}\n\treturn src\n}\nfunction contextmenu(item, idx) {\n\temit('contextmenu', item.value, item, idx)\n}\n// function calcTabFloat() {\n// \tlet listWidth = list.value.offsetWidth\n// \tlet nodeList = ul.value.querySelectorAll('.to-tab-item')\n// \tlet liWidths = 0\n// \tlet maxIdx = 0\n// \tnodeList.forEach((item, idx) => {\n// \t\tif (liWidths + item.offsetWidth < listWidth) {\n// \t\t\tliWidths += item.offsetWidth\n// \t\t\tmaxIdx = idx\n// \t\t}\n// \t})\n// }\nfunction controlLeftScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tul.value.scrollTo({\n\t\t\tleft: ul.value.scrollLeft - 3\n\t\t\t// behavior: 'smooth' // 平滑滚动效果\n\t\t})\n\t}, 1)\n}\nfunction controlRightScroll() {\n\tscrollTimer = setInterval(() => {\n\t\tul.value.scrollTo({\n\t\t\tleft: ul.value.scrollLeft + 3\n\t\t\t// behavior: 'smooth' // 平滑滚动效果\n\t\t})\n\t}, 1)\n}\nfunction scrollStop() {\n\tclearInterval(scrollTimer)\n}\nfunction setLayout() {\n\tif (ul.value.clientWidth < ul.value.scrollWidth) {\n\t\tcontrolShow.value = true\n\t} else {\n\t\tcontrolShow.value = false\n\t}\n}\nprovide<ITabProvide>('TabProvide', {\n\taddTab,\n\tremoveTab,\n\tupdateTabLabel,\n\tselectValue\n})\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","watch","onMounted","nextTick","computed","provide","_createElementBlock","_unref","langKey","_normalizeClass","flex","_createElementVNode","$slots","_renderSlot","title","_openBlock","_Fragment","_renderList","_createBlock","_createVNode","ToIcon","_mergeProps","_createTextVNode","_toDisplayString","removable","_withModifiers","over","contentType","ToFloat"],"mappings":"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"}
|
|
@@ -15,9 +15,41 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
15
15
|
},
|
|
16
16
|
emits: ["change"],
|
|
17
17
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
18
|
+
const tableRef = vue.inject("TableRef");
|
|
18
19
|
const emit = __emit;
|
|
19
20
|
const props = __props;
|
|
20
21
|
const row = vue.ref(null);
|
|
22
|
+
const sortSet = vue.ref({});
|
|
23
|
+
vue.watch(
|
|
24
|
+
() => props.data,
|
|
25
|
+
(val) => {
|
|
26
|
+
val.forEach((item) => {
|
|
27
|
+
if (item.sortable) {
|
|
28
|
+
sortSet.value[item.prop] = sortSet.value[item.prop] || "";
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
{ deep: true }
|
|
33
|
+
);
|
|
34
|
+
vue.onMounted(() => {
|
|
35
|
+
props.data.forEach((item) => {
|
|
36
|
+
if (item.sortable) {
|
|
37
|
+
sortSet.value[item.prop] = sortSet.value[item.prop] || "";
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
const sortClick = (column) => {
|
|
42
|
+
if (!column.sortable)
|
|
43
|
+
return false;
|
|
44
|
+
if (sortSet.value[column.prop] === "asc") {
|
|
45
|
+
sortSet.value[column.prop] = "desc";
|
|
46
|
+
} else if (sortSet.value[column.prop] === "desc") {
|
|
47
|
+
sortSet.value[column.prop] = "";
|
|
48
|
+
} else {
|
|
49
|
+
sortSet.value[column.prop] = "asc";
|
|
50
|
+
}
|
|
51
|
+
tableRef.handleTheadCellClick(column, sortSet.value[column.prop]);
|
|
52
|
+
};
|
|
21
53
|
const setThClass = (column) => {
|
|
22
54
|
return vue.computed(() => {
|
|
23
55
|
const classes = [];
|
|
@@ -26,6 +58,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
26
58
|
} else if (column.thWrap === false) {
|
|
27
59
|
classes.push("is-nowrap");
|
|
28
60
|
}
|
|
61
|
+
if (sortSet.value[column.prop]) {
|
|
62
|
+
classes.push(`type-${sortSet.value[column.prop]}`);
|
|
63
|
+
}
|
|
29
64
|
return classes;
|
|
30
65
|
});
|
|
31
66
|
};
|
|
@@ -62,16 +97,26 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
62
97
|
"model-value": _ctx.checkedAll,
|
|
63
98
|
onChange: change
|
|
64
99
|
}, null, 8, ["model-value"])
|
|
65
|
-
])) : column._show !== false ? (vue.openBlock(), vue.createElementBlock(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
100
|
+
])) : column._show !== false ? (vue.openBlock(), vue.createElementBlock("th", {
|
|
101
|
+
key: column.prop,
|
|
102
|
+
class: vue.normalizeClass(["to-table-th", setThClass(column).value]),
|
|
103
|
+
onClick: ($event) => sortClick(column)
|
|
104
|
+
}, [
|
|
105
|
+
vue.createElementVNode(
|
|
106
|
+
"span",
|
|
107
|
+
null,
|
|
108
|
+
vue.toDisplayString(column.label),
|
|
109
|
+
1
|
|
110
|
+
/* TEXT */
|
|
111
|
+
),
|
|
112
|
+
column.sortable ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
113
|
+
key: 0,
|
|
114
|
+
class: "to-table-sorticon"
|
|
115
|
+
}, [
|
|
116
|
+
vue.createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
|
|
117
|
+
vue.createElementVNode("span", { class: "to-table-sorticon-item descending" })
|
|
118
|
+
])) : vue.createCommentVNode("v-if", true)
|
|
119
|
+
], 10, ["onClick"])) : vue.createCommentVNode("v-if", true)
|
|
75
120
|
],
|
|
76
121
|
64
|
|
77
122
|
/* STABLE_FRAGMENT */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-head.vue2.js","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr class=\"to-table-head-row\">\n\t\t\t<template v-for=\"column in props.data\">\n\t\t\t\t<th v-if=\"column.type === 'check'\" :key=\"column.prop + 'check'\" class=\"to-table-th is-check\">\n\t\t\t\t\t<ToCheckbox :model-value=\"checkedAll\" @change=\"change\"></ToCheckbox>\n\t\t\t\t</th>\n\t\t\t\t<th v-else-if=\"column._show !== false\" :key=\"column.prop\" class=\"to-table-th\" :class=\"setThClass(column).value\">\n\t\t\t\t\t{{ column.label }}\n\t\t\t\t</th>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\nconst emit = defineEmits(['change'])\ninterface Props {\n\tdata?: { prop?: string; label?: string; type?: string; toggler?: boolean; _show: boolean; thWrap?: boolean }[]\n\tcheckedAll?: boolean\n}\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: () => [],\n\tcheckedAll: false\n})\n\nconst row = ref(null)\n\nconst setThClass = column => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.thWrap) {\n\t\t\tclasses.push('is-wrap')\n\t\t} else if (column.thWrap === false) {\n\t\t\tclasses.push('is-nowrap')\n\t\t}\n\t\treturn classes\n\t})\n}\nfunction change(checked) {\n\temit('change', checked)\n}\n\ndefineExpose({\n\trow\n})\n</script>\n"],"names":["DO_defineComponent","ref","computed","_createElementBlock","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode","checkedAll","_toDisplayString"],"mappings":";;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,aAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"table-head.vue2.js","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr class=\"to-table-head-row\">\n\t\t\t<template v-for=\"column in props.data\">\n\t\t\t\t<th v-if=\"column.type === 'check'\" :key=\"column.prop + 'check'\" class=\"to-table-th is-check\">\n\t\t\t\t\t<ToCheckbox :model-value=\"checkedAll\" @change=\"change\"></ToCheckbox>\n\t\t\t\t</th>\n\t\t\t\t<th v-else-if=\"column._show !== false\" :key=\"column.prop\" class=\"to-table-th\" :class=\"setThClass(column).value\" @click=\"sortClick(column)\">\n\t\t\t\t\t<span>{{ column.label }}</span>\n\t\t\t\t\t<span v-if=\"column.sortable\" class=\"to-table-sorticon\">\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item ascending\"></span>\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item descending\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</th>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { TableProvideType } from './table.vue'\n\nconst tableRef: TableProvideType = inject('TableRef')\nconst emit = defineEmits(['change'])\ninterface Props {\n\tdata?: { prop?: string; label?: string; type?: string; toggler?: boolean; _show: boolean; thWrap?: boolean; sortable?: boolean; sortType?: boolean }[]\n\tcheckedAll?: boolean\n}\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: () => [],\n\tcheckedAll: false\n})\n\nconst row = ref(null)\nconst sortSet = ref({})\n\nwatch(\n\t() => props.data,\n\tval => {\n\t\tval.forEach(item => {\n\t\t\tif (item.sortable) {\n\t\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t\t}\n\t\t})\n\t},\n\t{ deep: true }\n)\n\nonMounted(() => {\n\tprops.data.forEach(item => {\n\t\tif (item.sortable) {\n\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t}\n\t})\n})\n\nconst sortClick = column => {\n\tif (!column.sortable) return false\n\tif (sortSet.value[column.prop] === 'asc') {\n\t\tsortSet.value[column.prop] = 'desc'\n\t} else if (sortSet.value[column.prop] === 'desc') {\n\t\tsortSet.value[column.prop] = ''\n\t} else {\n\t\tsortSet.value[column.prop] = 'asc'\n\t}\n\ttableRef.handleTheadCellClick(column, sortSet.value[column.prop])\n}\nconst setThClass = column => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.thWrap) {\n\t\t\tclasses.push('is-wrap')\n\t\t} else if (column.thWrap === false) {\n\t\t\tclasses.push('is-nowrap')\n\t\t}\n\t\tif (sortSet.value[column.prop]) {\n\t\t\tclasses.push(`type-${sortSet.value[column.prop]}`)\n\t\t}\n\t\treturn classes\n\t})\n}\nfunction change(checked) {\n\temit('change', checked)\n}\n\ndefineExpose({\n\trow\n})\n</script>\n"],"names":["DO_defineComponent","inject","ref","watch","onMounted","computed","_createElementBlock","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode","checkedAll","_toDisplayString"],"mappings":";;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,aAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;AAwBD,IAAM,MAAA,QAAA,GAA6BC,WAAO,UAAU,CAAA,CAAA;AACpD,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAKb,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAKd,IAAM,MAAA,GAAA,GAAMC,QAAI,IAAI,CAAA,CAAA;AACpB,IAAM,MAAA,OAAA,GAAUA,OAAI,CAAA,EAAE,CAAA,CAAA;AAEtB,IAAAC,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAO,GAAA,KAAA;AACN,QAAA,GAAA,CAAI,QAAQ,CAAQ,IAAA,KAAA;AACnB,UAAA,IAAI,KAAK,QAAU,EAAA;AAClB,YAAQ,OAAA,CAAA,KAAA,CAAM,KAAK,IAAI,CAAA,GAAI,QAAQ,KAAM,CAAA,IAAA,CAAK,IAAI,CAAK,IAAA,EAAA,CAAA;AAAA,WACxD;AAAA,SACA,CAAA,CAAA;AAAA,OACF;AAAA,MACA,EAAE,MAAM,IAAK,EAAA;AAAA,KACd,CAAA;AAEA,IAAAC,aAAA,CAAU,MAAM;AACf,MAAM,KAAA,CAAA,IAAA,CAAK,QAAQ,CAAQ,IAAA,KAAA;AAC1B,QAAA,IAAI,KAAK,QAAU,EAAA;AAClB,UAAQ,OAAA,CAAA,KAAA,CAAM,KAAK,IAAI,CAAA,GAAI,QAAQ,KAAM,CAAA,IAAA,CAAK,IAAI,CAAK,IAAA,EAAA,CAAA;AAAA,SACxD;AAAA,OACA,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,YAAY,CAAU,MAAA,KAAA;AAC3B,MAAA,IAAI,CAAC,MAAO,CAAA,QAAA;AAAU,QAAO,OAAA,KAAA,CAAA;AAC7B,MAAA,IAAI,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,MAAM,KAAO,EAAA;AACzC,QAAQ,OAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,CAAI,GAAA,MAAA,CAAA;AAAA,iBACnB,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,MAAM,MAAQ,EAAA;AACjD,QAAQ,OAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,CAAI,GAAA,EAAA,CAAA;AAAA,OACvB,MAAA;AACN,QAAQ,OAAA,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,CAAI,GAAA,KAAA,CAAA;AAAA,OAC9B;AACA,MAAA,QAAA,CAAS,qBAAqB,MAAQ,EAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAAA,KACjE,CAAA;AACA,IAAA,MAAM,aAAa,CAAU,MAAA,KAAA;AAC5B,MAAA,OAAOC,aAAS,MAAM;AACrB,QAAA,MAAM,UAAoB,EAAC,CAAA;AAC3B,QAAA,IAAI,OAAO,MAAQ,EAAA;AAClB,UAAA,OAAA,CAAQ,KAAK,SAAS,CAAA,CAAA;AAAA,SACvB,MAAA,IAAW,MAAO,CAAA,MAAA,KAAW,KAAO,EAAA;AACnC,UAAA,OAAA,CAAQ,KAAK,WAAW,CAAA,CAAA;AAAA,SACzB;AACA,QAAA,IAAI,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,IAAI,CAAG,EAAA;AAC/B,UAAA,OAAA,CAAQ,KAAK,CAAQ,KAAA,EAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,CAAO,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,SAClD;AACA,QAAO,OAAA,OAAA,CAAA;AAAA,OACP,CAAA,CAAA;AAAA,KACF,CAAA;AACA,IAAA,SAAS,OAAO,OAAS,EAAA;AACxB,MAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,KACvB;AAEA,IAAa,QAAA,CAAA;AAAA,MACZ,GAAA;AAAA,KACA,CAAA,CAAA;;;4BAtFA,EAAAC,sBAAA;AAAA,QAeQ,OAAA;AAAA,QAAA;AAAA,iBAfG,EAAA,KAAA;AAAA,UAAJ,GAAI,EAAA,GAAA;AAAA,UAAM,KAAM,EAAA,eAAA;AAAA;;UACtBC,sBAaK,CAAA,IAAA,EAAA,EAbD,KAAA,EAAM,qBAAmB,EAAA;AAAA,aAC5BC,aAAA,CAAA,IAAA,CAAA,EAAAF,sBAAA;AAAA,cAWWG,YAAA;AAAA,cAXgB,IAAA;AAAA,cAAAC,cAAA,CAAA,KAAA,CAAM,OAAhB,MAAM,KAAA;;;;;oBACZ,OAAO,IAAI,KAAA,OAAA,qBAArBJ,uBAEK,IAAA,EAAA;AAAA,sBAF+B,GAAA,EAAK,OAAO,IAAI,GAAA,OAAA;AAAA,sBAAY,KAAM,EAAA,sBAAA;AAAA;sBACrEK,gBAAoE,qBAAA,EAAA;AAAA,wBAAvD,eAAaC,IAAU,CAAA,UAAA;AAAA,wBAAG,QAAQ,EAAA,MAAA;AAAA;0BAEjC,MAAO,CAAA,KAAA,KAAK,0BAA3BN,uBAMK,IAAA,EAAA;AAAA,sBANmC,KAAK,MAAO,CAAA,IAAA;AAAA,sBAAM,KAAA,sBAAM,aAAA,EAAsB,WAAW,MAAM,CAAA,CAAE,KAAK,CAAA,CAAA;AAAA,sBAAG,OAAK,EAAA,CAAA,MAAE,KAAA,SAAA,CAAU,MAAM,CAAA;AAAA;sBACvIC,sBAAA;AAAA,wBAA+B,MAAA;AAAA,wBAAA,IAAA;AAAA,wBAAAM,mBAAA,CAAtB,OAAO,KAAK,CAAA;AAAA,wBAAA,CAAA;AAAA;AAAA,uBAAA;AAAA,sBACT,MAAO,CAAA,QAAA,qBAAnBP,uBAGO,MAAA,EAAA;AAAA;wBAHsB,KAAM,EAAA,mBAAA;AAAA;wBAClCC,sBAAsD,CAAA,MAAA,EAAA,EAAhD,KAAA,EAAM,oCAAkC,CAAA;AAAA,wBAC9CA,sBAAuD,CAAA,MAAA,EAAA,EAAjD,KAAA,EAAM,qCAAmC,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,9 +25,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
25
25
|
thWrap: { type: Boolean, default: false },
|
|
26
26
|
emptyText: { default: "" },
|
|
27
27
|
modelValue: { default: "" },
|
|
28
|
-
valueKeys: { default: "_id" }
|
|
28
|
+
valueKeys: { default: "_id" },
|
|
29
|
+
sortFunction: { type: [Function, null], default: null }
|
|
29
30
|
},
|
|
30
|
-
emits: ["change", "update:modelValue"],
|
|
31
|
+
emits: ["change", "update:modelValue", "sort"],
|
|
31
32
|
setup(__props, { emit: __emit }) {
|
|
32
33
|
const emit = __emit;
|
|
33
34
|
const props = __props;
|
|
@@ -303,6 +304,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
303
304
|
});
|
|
304
305
|
return flag;
|
|
305
306
|
});
|
|
307
|
+
function sortChange(sortInfo) {
|
|
308
|
+
emit("sort", sortInfo);
|
|
309
|
+
}
|
|
306
310
|
const hasCheck = vue.computed(() => {
|
|
307
311
|
let flag = false;
|
|
308
312
|
props.columns.map((item) => {
|
|
@@ -370,6 +374,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
370
374
|
}
|
|
371
375
|
}
|
|
372
376
|
}
|
|
377
|
+
const handleTheadCellClick = (column, type) => {
|
|
378
|
+
if (props.sortFunction) {
|
|
379
|
+
props.sortFunction(column, type);
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
vue.provide("TableRef", {
|
|
383
|
+
handleTheadCellClick
|
|
384
|
+
});
|
|
373
385
|
return (_ctx, _cache) => {
|
|
374
386
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
375
387
|
ref_key: "$el",
|
|
@@ -422,7 +434,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
422
434
|
ref: bodyHead,
|
|
423
435
|
"checked-all": checkedAll.value,
|
|
424
436
|
data: _ctx.columns,
|
|
425
|
-
onChange: checkedAllChange
|
|
437
|
+
onChange: checkedAllChange,
|
|
438
|
+
onSort: sortChange
|
|
426
439
|
}, null, 8, ["checked-all", "data"]),
|
|
427
440
|
vue.createVNode(tableBody.default, {
|
|
428
441
|
ref_key: "bodyBody",
|
|
@@ -487,7 +500,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
487
500
|
ref_key: "topHead",
|
|
488
501
|
ref: topHead,
|
|
489
502
|
data: _ctx.columns,
|
|
490
|
-
onChange: checkedAllChange
|
|
503
|
+
onChange: checkedAllChange,
|
|
504
|
+
onSort: sortChange
|
|
491
505
|
}, null, 8, ["data"])
|
|
492
506
|
],
|
|
493
507
|
512
|
|
@@ -518,7 +532,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
518
532
|
ref_key: "leftHead",
|
|
519
533
|
ref: leftHead,
|
|
520
534
|
data: _ctx.columns.slice(0, Number(props.fixLeft)),
|
|
521
|
-
onChange: checkedAllChange
|
|
535
|
+
onChange: checkedAllChange,
|
|
536
|
+
onSort: sortChange
|
|
522
537
|
}, null, 8, ["data"]),
|
|
523
538
|
vue.createVNode(tableBody.default, {
|
|
524
539
|
ref_key: "leftBody",
|
|
@@ -571,7 +586,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
571
586
|
ref_key: "leftTopHead",
|
|
572
587
|
ref: leftTopHead,
|
|
573
588
|
data: _ctx.columns.slice(0, Number(props.fixLeft)),
|
|
574
|
-
onChange: checkedAllChange
|
|
589
|
+
onChange: checkedAllChange,
|
|
590
|
+
onSort: sortChange
|
|
575
591
|
}, null, 8, ["data"])
|
|
576
592
|
],
|
|
577
593
|
512
|
|
@@ -602,7 +618,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
602
618
|
ref_key: "rightHead",
|
|
603
619
|
ref: rightHead,
|
|
604
620
|
data: _ctx.columns.slice(_ctx.columns.length - Number(props.fixRight), _ctx.columns.length),
|
|
605
|
-
onChange: checkedAllChange
|
|
621
|
+
onChange: checkedAllChange,
|
|
622
|
+
onSort: sortChange
|
|
606
623
|
}, null, 8, ["data"]),
|
|
607
624
|
vue.createVNode(tableBody.default, {
|
|
608
625
|
ref_key: "rightBody",
|
|
@@ -654,8 +671,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
654
671
|
vue.createVNode(tableHead.default, {
|
|
655
672
|
ref_key: "rightTopHead",
|
|
656
673
|
ref: rightTopHead,
|
|
657
|
-
data: _ctx.columns.slice(_ctx.columns.length - Number(
|
|
658
|
-
onChange: checkedAllChange
|
|
674
|
+
data: _ctx.columns.slice(_ctx.columns.length - Number(props.fixRight), _ctx.columns.length),
|
|
675
|
+
onChange: checkedAllChange,
|
|
676
|
+
onSort: sortChange
|
|
659
677
|
}, null, 8, ["data"])
|
|
660
678
|
],
|
|
661
679
|
512
|