@touchvue/ui 1.0.0-beta.42 → 1.0.0-beta.44
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/center-scroll/index.d.ts +9 -0
- package/es/components/center-scroll/src/CenterScroll.vue.d.ts +9 -0
- package/es/components/center-scroll/src/center-scroll.d.ts +7 -0
- package/es/components/daterange/src/date-range.vue.d.ts +3 -0
- package/es/components/guider/src/guider.vue.d.ts +4 -1
- package/es/components/scroll/index.d.ts +9 -9
- package/es/components/scroll/src/Scroll.vue.d.ts +5 -5
- package/es/components/scroll/src/scroll.d.ts +2 -2
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue.mjs +3 -3
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs +24 -17
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs +8 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
- package/es/packages/components/daterange/src/date-range.vue2.mjs +74 -38
- package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +3 -1
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +108 -122
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs +5 -1
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +3 -4
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +2 -2
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/table/src/table-body.vue2.mjs +6 -4
- package/es/packages/components/table/src/table-body.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +6 -2
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/locale/lang/en-US.mjs +1 -0
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs +1 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/lib/components/center-scroll/index.d.ts +9 -0
- package/lib/components/center-scroll/src/CenterScroll.vue.d.ts +9 -0
- package/lib/components/center-scroll/src/center-scroll.d.ts +7 -0
- package/lib/components/daterange/src/date-range.vue.d.ts +3 -0
- package/lib/components/guider/src/guider.vue.d.ts +4 -1
- package/lib/components/scroll/index.d.ts +9 -9
- package/lib/components/scroll/src/Scroll.vue.d.ts +5 -5
- package/lib/components/scroll/src/scroll.d.ts +2 -2
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue.js +3 -3
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js +23 -16
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js +8 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
- package/lib/packages/components/daterange/src/date-range.vue2.js +73 -37
- package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +3 -1
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +107 -121
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js +5 -1
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +3 -4
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +2 -2
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/table/src/table-body.vue2.js +5 -3
- package/lib/packages/components/table/src/table-body.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +6 -2
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/locale/lang/en-US.js +1 -0
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js +1 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +364 -313
- package/theme/index.css +364 -313
- package/theme/skin/default.css +364 -313
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb-item.vue.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb-item.vue"],"sourcesContent":["<template>\n\t<span class=\"to-breadcrumb-item\">\n\t\t<span :class=\"['to-breadcrumb-
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.vue.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb-item.vue"],"sourcesContent":["<template>\n\t<span class=\"to-breadcrumb-item\">\n\t\t<span :class=\"['to-breadcrumb-item-label', to ? 'is-link' : '']\" role=\"link\" @click=\"handleClick\">\n\t\t\t<slot></slot>\n\t\t</span>\n\t\t<span v-if=\"!breadcrumbData?.separatorIcon\" class=\"to-breadcrumb-item-separator\">{{ breadcrumbData?.separator }}</span>\n\t\t<to-icon v-else class=\"to-breadcrumb-item-separator\" :value=\"breadcrumbData?.separatorIcon\"></to-icon>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, getCurrentInstance } from 'vue'\nimport { breadcrumbItemProps } from './breadcrumb-item'\n\nexport default defineComponent({\n\tname: 'ToBreadcrumbItem',\n\tprops: breadcrumbItemProps,\n\tsetup(props) {\n\t\tconst breadcrumbData = inject('breadcrumb', { separator: '/', separatorIcon: '' })\n\n\t\tconst handleClick = () => {\n\t\t\tif (!props.to || !router) return\n\n\t\t\tconst routes = router.resolve(props.to)\n\t\t\tconst routerMethod = props.replace ? router.replace : router.push\n\t\t\trouterMethod(routes.href)\n\t\t}\n\n\t\tconst router = getCurrentInstance()?.appContext.config.globalProperties.$router || undefined\n\n\t\treturn {\n\t\t\tbreadcrumbData,\n\t\t\thandleClick\n\t\t}\n\t}\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","to","_createElementVNode","_normalizeClass","handleClick","breadcrumbData","_createElementBlock","_createBlock"],"mappings":";;;;;;;;;;AACC,EAAA,MAAA,kBAAA,GAAAA,qBAMO,SAND,CAAA,CAAA;AACE,EAAA,OAAAC,yDAAoCC,sBAAE,EAAA;AAAA,IAA+BC,uBAAA,MAAA,EAAA;AAAA,MAAE,KAAA,EAAKC,mBAAEC,CAAW,0BAAA,EAAA,KAAA,EAAA,GAAA,SAAA,GAAA,EAAA,CAAA,CAAA;AAAA,MAAA,IAAA,EAAA,MAAA;AAAA,MAC/F,SAAa,IAAA,CAAA,WAAA;AAAA,KAAA,EAAA;AAAA,MAEDC,cAAAA,CAAAA,IAAAA,CAAAA,MAAAA,EAAgB,SAAa,CAAA;AAAA,KAA1C,EAAA,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,IAAkD,GAAA,EAAA,GAAA,IAAA,CAAA,cAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAAL,eAAA,EAAAM,sBAAA;AAAA,MAAA,MAAA;AAAA,MAA8B;AAAA,QAAA,GAAA,EAAA,CAAA;AAAA;;;;;yBAC5B,EAAAC,eAAA,CAAA,kBAAA,EAAA;AAAA,MAAE,GAAK,EAAA,CAAA;AAAA,MAAA,KAAA,EAAA,8BAAA;AAAA;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb-item.vue2.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb-item.vue"],"sourcesContent":["<template>\n\t<span class=\"to-breadcrumb-item\">\n\t\t<span :class=\"['to-breadcrumb-
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.vue2.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb-item.vue"],"sourcesContent":["<template>\n\t<span class=\"to-breadcrumb-item\">\n\t\t<span :class=\"['to-breadcrumb-item-label', to ? 'is-link' : '']\" role=\"link\" @click=\"handleClick\">\n\t\t\t<slot></slot>\n\t\t</span>\n\t\t<span v-if=\"!breadcrumbData?.separatorIcon\" class=\"to-breadcrumb-item-separator\">{{ breadcrumbData?.separator }}</span>\n\t\t<to-icon v-else class=\"to-breadcrumb-item-separator\" :value=\"breadcrumbData?.separatorIcon\"></to-icon>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, getCurrentInstance } from 'vue'\nimport { breadcrumbItemProps } from './breadcrumb-item'\n\nexport default defineComponent({\n\tname: 'ToBreadcrumbItem',\n\tprops: breadcrumbItemProps,\n\tsetup(props) {\n\t\tconst breadcrumbData = inject('breadcrumb', { separator: '/', separatorIcon: '' })\n\n\t\tconst handleClick = () => {\n\t\t\tif (!props.to || !router) return\n\n\t\t\tconst routes = router.resolve(props.to)\n\t\t\tconst routerMethod = props.replace ? router.replace : router.push\n\t\t\trouterMethod(routes.href)\n\t\t}\n\n\t\tconst router = getCurrentInstance()?.appContext.config.globalProperties.$router || undefined\n\n\t\treturn {\n\t\t\tbreadcrumbData,\n\t\t\thandleClick\n\t\t}\n\t}\n})\n</script>\n"],"names":["defineComponent","breadcrumbItemProps","inject","getCurrentInstance"],"mappings":";;;;;;;AAcA,gBAAeA,mBAAgB,CAAA;AAAA,EAC9B,IAAM,EAAA,kBAAA;AAAA,EACN,KAAO,EAAAC,kCAAA;AAAA,EACP,MAAM,KAAO,EAAA;;AACZ,IAAM,MAAA,cAAA,GAAiBC,WAAO,YAAc,EAAA,EAAE,WAAW,GAAK,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAEjF,IAAA,MAAM,cAAc,MAAM;AACzB,MAAI,IAAA,CAAC,KAAM,CAAA,EAAA,IAAM,CAAC,MAAA;AAAQ,QAAA,OAAA;AAE1B,MAAA,MAAM,MAAS,GAAA,MAAA,CAAO,OAAQ,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AACtC,MAAA,MAAM,YAAe,GAAA,KAAA,CAAM,OAAU,GAAA,MAAA,CAAO,UAAU,MAAO,CAAA,IAAA,CAAA;AAC7D,MAAA,YAAA,CAAa,OAAO,IAAI,CAAA,CAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,WAAS,EAAmB,GAAAC,sBAAA,EAAA,KAAnB,mBAAsB,UAAW,CAAA,MAAA,CAAO,iBAAiB,OAAW,KAAA,KAAA,CAAA,CAAA;AAEnF,IAAO,OAAA;AAAA,MACN,cAAA;AAAA,MACA,WAAA;AAAA,KACD,CAAA;AAAA,GACD;AACD,CAAC,CAAA;;;;"}
|
|
@@ -9,7 +9,7 @@ var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-h
|
|
|
9
9
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10
10
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
11
11
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
12
|
-
class: vue.normalizeClass(["to-breadcrumb", [`
|
|
12
|
+
class: vue.normalizeClass(["to-breadcrumb", [`mode-${_ctx.mode}`]])
|
|
13
13
|
}, [
|
|
14
14
|
vue.renderSlot(_ctx.$slots, "default")
|
|
15
15
|
], 10, ["flex"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.vue.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb.vue"],"sourcesContent":["<template>\n\t<div :flex=\"flex ? flex : null\" class=\"to-breadcrumb\" :class=\"[`
|
|
1
|
+
{"version":3,"file":"breadcrumb.vue.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb.vue"],"sourcesContent":["<template>\n\t<div :flex=\"flex ? flex : null\" class=\"to-breadcrumb\" :class=\"[`mode-${mode}`]\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, computed } from 'vue'\nimport { breadcrumbProps } from './breadcrumb'\n\nexport default defineComponent({\n\tname: 'ToBreadcrumb',\n\tprops: breadcrumbProps,\n\tsetup(props) {\n\t\tconst breadcrumbData = computed(() => ({\n\t\t\tseparator: props.separator,\n\t\t\tseparatorIcon: props.separatorIcon\n\t\t}))\n\n\t\tprovide('breadcrumb', breadcrumbData)\n\n\t\treturn {}\n\t}\n})\n</script>\n"],"names":["flex","_openBlock","_createElementBlock","_normalizeClass"],"mappings":";;;;;;;;AACW,SAAA,YAAM,IAAGA,EAAAA,MAAAA,EAAI,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;EAAc,OAAAC,aAAA,EAAgB,EAAAC,sBAAA,CAAA,KAAA,EAAA;AAAA,IAAA,IAAA,EAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,IACpD,KAAA,EAAaC,mBAAA,CAAA,eAAA,EAAA,CAAA,CAAA,KAAA,EAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AAAA;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.vue2.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb.vue"],"sourcesContent":["<template>\n\t<div :flex=\"flex ? flex : null\" class=\"to-breadcrumb\" :class=\"[`
|
|
1
|
+
{"version":3,"file":"breadcrumb.vue2.js","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb.vue"],"sourcesContent":["<template>\n\t<div :flex=\"flex ? flex : null\" class=\"to-breadcrumb\" :class=\"[`mode-${mode}`]\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, computed } from 'vue'\nimport { breadcrumbProps } from './breadcrumb'\n\nexport default defineComponent({\n\tname: 'ToBreadcrumb',\n\tprops: breadcrumbProps,\n\tsetup(props) {\n\t\tconst breadcrumbData = computed(() => ({\n\t\t\tseparator: props.separator,\n\t\t\tseparatorIcon: props.separatorIcon\n\t\t}))\n\n\t\tprovide('breadcrumb', breadcrumbData)\n\n\t\treturn {}\n\t}\n})\n</script>\n"],"names":["defineComponent","breadcrumbProps","computed","provide"],"mappings":";;;;;;;AAUA,gBAAeA,mBAAgB,CAAA;AAAA,EAC9B,IAAM,EAAA,cAAA;AAAA,EACN,KAAO,EAAAC,0BAAA;AAAA,EACP,MAAM,KAAO,EAAA;AACZ,IAAM,MAAA,cAAA,GAAiBC,aAAS,OAAO;AAAA,MACtC,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,eAAe,KAAM,CAAA,aAAA;AAAA,KACpB,CAAA,CAAA,CAAA;AAEF,IAAAC,WAAA,CAAQ,cAAc,cAAc,CAAA,CAAA;AAEpC,IAAA,OAAO,EAAC,CAAA;AAAA,GACT;AACD,CAAC,CAAA;;;;"}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var centerScroll = require('./center-scroll.js');
|
|
7
|
+
var ratio = require('../../../utils/ratio.js');
|
|
7
8
|
|
|
8
9
|
const __default__ = vue.defineComponent({
|
|
9
10
|
name: "ToCenterScroll"
|
|
@@ -23,7 +24,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
23
24
|
const scrollTimeout = vue.ref(null);
|
|
24
25
|
const isScrollTo = vue.ref(false);
|
|
25
26
|
const changeBySelf = vue.ref(false);
|
|
27
|
+
const itemHeight = vue.ref(0);
|
|
26
28
|
const height = vue.computed(() => Number(props.height));
|
|
29
|
+
vue.onMounted(() => {
|
|
30
|
+
itemHeight.value = Number(((itemRefs.value[0].getBoundingClientRect().height || 0) / ratio.getEm()).toFixed(2));
|
|
31
|
+
});
|
|
27
32
|
const setItemRef = (el, index) => {
|
|
28
33
|
if (el) {
|
|
29
34
|
itemRefs.value[index] = el;
|
|
@@ -43,6 +48,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
43
48
|
iData.value = JSON.parse(JSON.stringify(data));
|
|
44
49
|
}
|
|
45
50
|
};
|
|
51
|
+
const setClass = vue.computed(() => {
|
|
52
|
+
let arr = [];
|
|
53
|
+
if (props.mode)
|
|
54
|
+
arr.push(`mode-${props.mode}`);
|
|
55
|
+
return arr;
|
|
56
|
+
});
|
|
46
57
|
const onScroll = () => {
|
|
47
58
|
if (!inited.value)
|
|
48
59
|
return;
|
|
@@ -147,11 +158,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
147
158
|
centerClosestItem
|
|
148
159
|
});
|
|
149
160
|
return (_ctx, _cache) => {
|
|
150
|
-
const _directive_dis = vue.resolveDirective("dis");
|
|
151
161
|
return vue.openBlock(), vue.createElementBlock(
|
|
152
162
|
"div",
|
|
153
163
|
{
|
|
154
|
-
class: "to-centerScroll",
|
|
164
|
+
class: vue.normalizeClass(["to-centerScroll", setClass.value]),
|
|
155
165
|
style: vue.normalizeStyle({ height: `${height.value}em` })
|
|
156
166
|
},
|
|
157
167
|
[
|
|
@@ -159,7 +169,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
159
169
|
"div",
|
|
160
170
|
{
|
|
161
171
|
class: "to-centerScroll-top",
|
|
162
|
-
style: vue.normalizeStyle({ height: `${(height.value -
|
|
172
|
+
style: vue.normalizeStyle({ height: `${(height.value - itemHeight.value) / 2}em` })
|
|
163
173
|
},
|
|
164
174
|
null,
|
|
165
175
|
4
|
|
@@ -178,26 +188,25 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
178
188
|
"div",
|
|
179
189
|
{
|
|
180
190
|
class: "to-centerScroll-wrapper",
|
|
181
|
-
style: vue.normalizeStyle({
|
|
182
|
-
paddingTop: `${(height.value - 3) / 2}em`,
|
|
183
|
-
paddingBottom: `${(height.value - 3) / 2}em`
|
|
184
|
-
})
|
|
191
|
+
style: vue.normalizeStyle({ paddingTop: `${(height.value - itemHeight.value) / 2}em`, paddingBottom: `${(height.value - itemHeight.value) / 2}em` })
|
|
185
192
|
},
|
|
186
193
|
[
|
|
187
194
|
(vue.openBlock(true), vue.createElementBlock(
|
|
188
195
|
vue.Fragment,
|
|
189
196
|
null,
|
|
190
197
|
vue.renderList(iData.value, (item, index) => {
|
|
191
|
-
return vue.
|
|
198
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
192
199
|
"div",
|
|
193
200
|
{
|
|
194
201
|
key: index,
|
|
195
202
|
ref_for: true,
|
|
196
203
|
ref: (el) => setItemRef(el, index),
|
|
197
|
-
class: vue.normalizeClass(["to-centerScroll-item", { "is-on": item.value === _ctx.modelValue }])
|
|
204
|
+
class: vue.normalizeClass(["to-centerScroll-item", { "is-on": item.value === _ctx.modelValue, "is-dis": item.disabled }])
|
|
198
205
|
},
|
|
199
206
|
[
|
|
200
|
-
vue.
|
|
207
|
+
vue.createElementVNode(
|
|
208
|
+
"span",
|
|
209
|
+
{ class: "to-centerScroll-item-text" },
|
|
201
210
|
vue.toDisplayString(item.label),
|
|
202
211
|
1
|
|
203
212
|
/* TEXT */
|
|
@@ -205,9 +214,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
205
214
|
],
|
|
206
215
|
2
|
|
207
216
|
/* CLASS */
|
|
208
|
-
)
|
|
209
|
-
[_directive_dis, item.disabled]
|
|
210
|
-
]);
|
|
217
|
+
);
|
|
211
218
|
}),
|
|
212
219
|
128
|
|
213
220
|
/* KEYED_FRAGMENT */
|
|
@@ -224,15 +231,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
224
231
|
"div",
|
|
225
232
|
{
|
|
226
233
|
class: "to-centerScroll-bottom",
|
|
227
|
-
style: vue.normalizeStyle({ height: `${(height.value -
|
|
234
|
+
style: vue.normalizeStyle({ height: `${(height.value - itemHeight.value) / 2}em` })
|
|
228
235
|
},
|
|
229
236
|
null,
|
|
230
237
|
4
|
|
231
238
|
/* STYLE */
|
|
232
239
|
)
|
|
233
240
|
],
|
|
234
|
-
|
|
235
|
-
/* STYLE */
|
|
241
|
+
6
|
|
242
|
+
/* CLASS, STYLE */
|
|
236
243
|
);
|
|
237
244
|
};
|
|
238
245
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CenterScroll.vue2.js","sources":["../../../../../../packages/components/center-scroll/src/CenterScroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToCenterScroll',\n});\n</script>\n<template>\n\t<div class=\"to-centerScroll\" :style=\"{ height: `${height}em` }\">\n\t\t<div class=\"to-centerScroll-top\" :style=\"{ height: `${(height - 3) / 2}em` }\"></div>\n\t\t<div ref=\"scrollContainer\" class=\"to-centerScroll-content\" @scroll=\"onScroll\">\n\t\t\t<div\n\t\t\t\tclass=\"to-centerScroll-wrapper\"\n\t\t\t\t:style=\"{\n\t\t\t\t\tpaddingTop: `${(height - 3) / 2}em`,\n\t\t\t\t\tpaddingBottom: `${(height - 3) / 2}em`,\n\t\t\t\t}\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(item, index) in iData\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t:ref=\"el => setItemRef(el, index)\"\n\t\t\t\t\tv-dis=\"item.disabled\"\n\t\t\t\t\tclass=\"to-centerScroll-item\"\n\t\t\t\t\t:class=\"{ 'is-on': item.value === modelValue }\"\n\t\t\t\t>\n\t\t\t\t\t{{ item.label }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"to-centerScroll-bottom\" :style=\"{ height: `${(height - 3) / 2}em` }\"></div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, onMounted, nextTick } from 'vue'\nimport { centerScrollProps, centerScrollEmits, type CenterScrollDataItem } from './center-scroll'\n\n\n\nconst props = defineProps(centerScrollProps)\nconst emit = defineEmits(centerScrollEmits)\n\n// 响应式数据\nconst scrollContainer = ref<HTMLElement | null>(null)\nconst itemRefs = ref<(HTMLElement | null)[]>([])\nconst inited = ref(false)\nconst iData = ref<CenterScrollDataItem[]>([])\nconst isScrolling = ref(false)\nconst scrollTimeout = ref<number | null>(null)\nconst isScrollTo = ref(false)\nconst changeBySelf = ref(false)\n\n// 计算属性\nconst height = computed(() => Number(props.height))\n\n// 设置item引用\nconst setItemRef = (el: any, index: number) => {\n\tif (el) {\n\t\titemRefs.value[index] = el as HTMLElement\n\t}\n}\n\n// 处理数据变化\nconst handleDataChange = (data: string | unknown[]) => {\n\tiData.value = []\n\tif (typeof data === 'string') {\n\t\tdata.split(',').forEach(item => {\n\t\t\tiData.value.push({\n\t\t\t\tlabel: item,\n\t\t\t\tvalue: item,\n\t\t\t\tdisabled: false,\n\t\t\t})\n\t\t})\n\t} else {\n\t\tiData.value = JSON.parse(JSON.stringify(data))\n\t}\n}\n\n// 滚动事件处理\nconst onScroll = () => {\n\tif (!inited.value) return\n\n\tif (scrollTimeout.value) {\n\t\tclearTimeout(scrollTimeout.value)\n\t}\n\n\tisScrolling.value = true\n\tscrollTimeout.value = window.setTimeout(() => {\n\t\tisScrolling.value = false\n\t\tif (!isScrollTo.value) {\n\t\t\tcenterClosestItem()\n\t\t}\n\t}, 200)\n}\n\n// 居中最近的项目\nconst centerClosestItem = () => {\n\tif (!scrollContainer.value) return\n\n\tconst container = scrollContainer.value\n\tconst containerRect = container.getBoundingClientRect()\n\tconst containerCenter = containerRect.top + containerRect.height / 2\n\n\tlet closestItem: CenterScrollDataItem | null = null\n\tlet closestItemEl: HTMLElement | null = null\n\tlet closestDistance = Infinity\n\n\tiData.value.forEach((item, index) => {\n\t\tif (!item.disabled) {\n\t\t\tconst itemEl = itemRefs.value[index]\n\t\t\tif (itemEl) {\n\t\t\t\tconst itemRect = itemEl.getBoundingClientRect()\n\t\t\t\tconst itemCenter = itemRect.top + itemRect.height / 2\n\t\t\t\tconst distance = Math.abs(containerCenter - itemCenter)\n\n\t\t\t\tif (distance < closestDistance) {\n\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\tclosestItem = item\n\t\t\t\t\tclosestItemEl = itemEl\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\n\tif (closestItemEl && closestItem) {\n\t\tscrollTo(closestItemEl)\n\t\tchangeBySelf.value = true\n\t\temit('update:modelValue', closestItem.value)\n\t\temit('change', closestItem.value)\n\t\tnextTick(() => {\n\t\t\tchangeBySelf.value = false\n\t\t})\n\t}\n}\n\n// 滚动到指定元素\nconst scrollTo = (el: HTMLElement, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollContainer.value) return\n\n\tisScrollTo.value = true\n\tconst itemRect = el.getBoundingClientRect()\n\tconst container = scrollContainer.value\n\tconst containerRect = container.getBoundingClientRect()\n\tconst containerCenter = containerRect.top + containerRect.height / 2\n\tconst offset = itemRect.top + itemRect.height / 2 - containerCenter\n\n\tcontainer.scrollTo({\n\t\ttop: container.scrollTop + offset,\n\t\tbehavior,\n\t})\n\n\tsetTimeout(() => {\n\t\tisScrollTo.value = false\n\t}, 500)\n}\n\n// 监听modelValue变化\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tif (changeBySelf.value) return\n\n\t\tconst index = iData.value.findIndex(item => item.value === val)\n\t\tif (index > -1 && itemRefs.value[index]) {\n\t\t\tscrollTo(itemRefs.value[index]!, 'instant')\n\t\t}\n\t}\n)\n\n// 监听data变化\nwatch(\n\t() => props.data,\n\tdata => {\n\t\thandleDataChange(data as string | CenterScrollDataItem[])\n\t},\n\t{ immediate: true }\n)\n\n// 组件挂载后初始化\nonMounted(() => {\n\tsetTimeout(() => {\n\t\tif (props.modelValue) {\n\t\t\tconst index = iData.value.findIndex(item => item.value === props.modelValue)\n\t\t\tif (index !== -1 && itemRefs.value[index]) {\n\t\t\t\tscrollTo(itemRefs.value[index]!, 'instant')\n\t\t\t}\n\t\t} else if (iData.value.length > 0) {\n\t\t\temit('update:modelValue', iData.value[0].value)\n\t\t\temit('change', iData.value[0].value)\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tinited.value = true\n\t\t}, 100)\n\t}, 100)\n})\n\n// 暴露方法\ndefineExpose({\n\tscrollTo,\n\tcenterClosestItem,\n})\n</script>\n"],"names":["DO_defineComponent","ref","computed","nextTick","watch","onMounted","_createElementBlock","_createElementVNode","_normalizeStyle","_openBlock","_Fragment","_renderList","modelValue","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CenterScroll.vue2.js","sources":["../../../../../../packages/components/center-scroll/src/CenterScroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToCenterScroll'\n});\n</script>\n<template>\n\t<div class=\"to-centerScroll\" :class=\"setClass\" :style=\"{ height: `${height}em` }\">\n\t\t<div class=\"to-centerScroll-top\" :style=\"{ height: `${(height - itemHeight) / 2}em` }\"></div>\n\t\t<div ref=\"scrollContainer\" class=\"to-centerScroll-content\" @scroll=\"onScroll\">\n\t\t\t<div class=\"to-centerScroll-wrapper\" :style=\"{ paddingTop: `${(height - itemHeight) / 2}em`, paddingBottom: `${(height - itemHeight) / 2}em` }\">\n\t\t\t\t<div v-for=\"(item, index) in iData\" :key=\"index\" :ref=\"el => setItemRef(el, index)\" class=\"to-centerScroll-item\" :class=\"{ 'is-on': item.value === modelValue, 'is-dis': item.disabled }\">\n\t\t\t\t\t<span class=\"to-centerScroll-item-text\">{{ item.label }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"to-centerScroll-bottom\" :style=\"{ height: `${(height - itemHeight) / 2}em` }\"></div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, onMounted, nextTick } from 'vue'\nimport { centerScrollProps, centerScrollEmits, type CenterScrollDataItem } from './center-scroll'\nimport { getEm } from '@touchvue/utils'\n\n\n\nconst props = defineProps(centerScrollProps)\nconst emit = defineEmits(centerScrollEmits)\n\n// 响应式数据\nconst scrollContainer = ref<HTMLElement | null>(null)\nconst itemRefs = ref<(HTMLElement | null)[]>([])\nconst inited = ref(false)\nconst iData = ref<CenterScrollDataItem[]>([])\nconst isScrolling = ref(false)\nconst scrollTimeout = ref<number | null>(null)\nconst isScrollTo = ref(false)\nconst changeBySelf = ref(false)\nconst itemHeight = ref(0)\n\n// 计算属性\nconst height = computed(() => Number(props.height))\n\nonMounted(() => {\n\titemHeight.value = Number(((itemRefs.value[0].getBoundingClientRect().height || 0) / getEm()).toFixed(2))\n})\n\n// 设置item引用\nconst setItemRef = (el: any, index: number) => {\n\tif (el) {\n\t\titemRefs.value[index] = el as HTMLElement\n\t}\n}\n\n// 处理数据变化\nconst handleDataChange = (data: string | unknown[]) => {\n\tiData.value = []\n\tif (typeof data === 'string') {\n\t\tdata.split(',').forEach(item => {\n\t\t\tiData.value.push({\n\t\t\t\tlabel: item,\n\t\t\t\tvalue: item,\n\t\t\t\tdisabled: false\n\t\t\t})\n\t\t})\n\t} else {\n\t\tiData.value = JSON.parse(JSON.stringify(data))\n\t}\n}\n\n// 设置类名\nconst setClass = computed(() => {\n\tlet arr = []\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\treturn arr\n})\n\n// 滚动事件处理\nconst onScroll = () => {\n\tif (!inited.value) return\n\n\tif (scrollTimeout.value) {\n\t\tclearTimeout(scrollTimeout.value)\n\t}\n\n\tisScrolling.value = true\n\tscrollTimeout.value = window.setTimeout(() => {\n\t\tisScrolling.value = false\n\t\tif (!isScrollTo.value) {\n\t\t\tcenterClosestItem()\n\t\t}\n\t}, 200)\n}\n\n// 居中最近的项目\nconst centerClosestItem = () => {\n\tif (!scrollContainer.value) return\n\n\tconst container = scrollContainer.value\n\tconst containerRect = container.getBoundingClientRect()\n\tconst containerCenter = containerRect.top + containerRect.height / 2\n\n\tlet closestItem: CenterScrollDataItem | null = null\n\tlet closestItemEl: HTMLElement | null = null\n\tlet closestDistance = Infinity\n\n\tiData.value.forEach((item, index) => {\n\t\tif (!item.disabled) {\n\t\t\tconst itemEl = itemRefs.value[index]\n\t\t\tif (itemEl) {\n\t\t\t\tconst itemRect = itemEl.getBoundingClientRect()\n\t\t\t\tconst itemCenter = itemRect.top + itemRect.height / 2\n\t\t\t\tconst distance = Math.abs(containerCenter - itemCenter)\n\n\t\t\t\tif (distance < closestDistance) {\n\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\tclosestItem = item\n\t\t\t\t\tclosestItemEl = itemEl\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\n\tif (closestItemEl && closestItem) {\n\t\tscrollTo(closestItemEl)\n\t\tchangeBySelf.value = true\n\t\temit('update:modelValue', closestItem.value)\n\t\temit('change', closestItem.value)\n\t\tnextTick(() => {\n\t\t\tchangeBySelf.value = false\n\t\t})\n\t}\n}\n\n// 滚动到指定元素\nconst scrollTo = (el: HTMLElement, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollContainer.value) return\n\n\tisScrollTo.value = true\n\tconst itemRect = el.getBoundingClientRect()\n\tconst container = scrollContainer.value\n\tconst containerRect = container.getBoundingClientRect()\n\tconst containerCenter = containerRect.top + containerRect.height / 2\n\tconst offset = itemRect.top + itemRect.height / 2 - containerCenter\n\n\tcontainer.scrollTo({\n\t\ttop: container.scrollTop + offset,\n\t\tbehavior\n\t})\n\n\tsetTimeout(() => {\n\t\tisScrollTo.value = false\n\t}, 500)\n}\n\n// 监听modelValue变化\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tif (changeBySelf.value) return\n\n\t\tconst index = iData.value.findIndex(item => item.value === val)\n\t\tif (index > -1 && itemRefs.value[index]) {\n\t\t\tscrollTo(itemRefs.value[index]!, 'instant')\n\t\t}\n\t}\n)\n\n// 监听data变化\nwatch(\n\t() => props.data,\n\tdata => {\n\t\thandleDataChange(data as string | CenterScrollDataItem[])\n\t},\n\t{ immediate: true }\n)\n\n// 组件挂载后初始化\nonMounted(() => {\n\tsetTimeout(() => {\n\t\tif (props.modelValue) {\n\t\t\tconst index = iData.value.findIndex(item => item.value === props.modelValue)\n\t\t\tif (index !== -1 && itemRefs.value[index]) {\n\t\t\t\tscrollTo(itemRefs.value[index]!, 'instant')\n\t\t\t}\n\t\t} else if (iData.value.length > 0) {\n\t\t\temit('update:modelValue', iData.value[0].value)\n\t\t\temit('change', iData.value[0].value)\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tinited.value = true\n\t\t}, 100)\n\t}, 100)\n})\n\n// 暴露方法\ndefineExpose({\n\tscrollTo,\n\tcenterClosestItem\n})\n</script>\n"],"names":["DO_defineComponent","ref","computed","onMounted","getEm","nextTick","watch","_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_openBlock","_Fragment","_renderList","modelValue","_toDisplayString"],"mappings":"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"}
|
|
@@ -9,6 +9,13 @@ const centerScrollProps = {
|
|
|
9
9
|
required: true,
|
|
10
10
|
default: () => []
|
|
11
11
|
},
|
|
12
|
+
/**
|
|
13
|
+
* 模式
|
|
14
|
+
*/
|
|
15
|
+
mode: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: ""
|
|
18
|
+
},
|
|
12
19
|
/**
|
|
13
20
|
* 当前选中的值
|
|
14
21
|
*/
|
|
@@ -21,7 +28,7 @@ const centerScrollProps = {
|
|
|
21
28
|
*/
|
|
22
29
|
height: {
|
|
23
30
|
type: [String, Number],
|
|
24
|
-
default:
|
|
31
|
+
default: 17
|
|
25
32
|
}
|
|
26
33
|
};
|
|
27
34
|
const centerScrollEmits = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center-scroll.js","sources":["../../../../../../packages/components/center-scroll/src/center-scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const centerScrollProps = {\n\t/**\n\t * 数据源\n\t */\n\tdata: {\n\t\ttype: [Array, String],\n\t\trequired: true,\n\t\tdefault: () => [],\n\t},\n\t/**\n\t * 当前选中的值\n\t */\n\tmodelValue: {\n\t\ttype: [String, Number],\n\t\tdefault: ''
|
|
1
|
+
{"version":3,"file":"center-scroll.js","sources":["../../../../../../packages/components/center-scroll/src/center-scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const centerScrollProps = {\n\t/**\n\t * 数据源\n\t */\n\tdata: {\n\t\ttype: [Array, String],\n\t\trequired: true,\n\t\tdefault: () => []\n\t},\n\t/**\n\t * 模式\n\t */\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 当前选中的值\n\t */\n\tmodelValue: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 高度(单位em,建议使用 3 的奇数倍数)\n\t */\n\theight: {\n\t\ttype: [String, Number],\n\t\tdefault: 17\n\t}\n}\n\nexport const centerScrollEmits = {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t'update:modelValue': (value: string | number) => true,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tchange: (value: string | number) => true\n}\n\nexport type CenterScrollProps = ExtractPropTypes<typeof centerScrollProps>\nexport type CenterScrollEmits = typeof centerScrollEmits\n\nexport interface CenterScrollDataItem {\n\tlabel: string\n\tvalue: string | number\n\tdisabled?: boolean\n}\n\nexport interface CenterScrollInstance {\n\tscrollTo: (element: HTMLElement, behavior?: ScrollBehavior) => void\n\tcenterClosestItem: () => void\n}\n"],"names":[],"mappings":";;AAEO,MAAM,iBAAoB,GAAA;AAAA;AAAA;AAAA;AAAA,EAIhC,IAAM,EAAA;AAAA,IACL,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA;AAAA,IACpB,QAAU,EAAA,IAAA;AAAA,IACV,OAAA,EAAS,MAAM,EAAC;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AACD,EAAA;AAEO,MAAM,iBAAoB,GAAA;AAAA;AAAA,EAEhC,mBAAA,EAAqB,CAAC,KAA2B,KAAA,IAAA;AAAA;AAAA,EAEjD,MAAA,EAAQ,CAAC,KAA2B,KAAA,IAAA;AACrC;;;;;"}
|
|
@@ -20,14 +20,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
20
20
|
mode: { default: "default" },
|
|
21
21
|
icon: { default: "date" },
|
|
22
22
|
inputable: { type: Boolean, default: true },
|
|
23
|
-
startPlaceholder: { default: "" },
|
|
24
|
-
endPlaceholder: { default: "" },
|
|
23
|
+
startPlaceholder: { default: "\u5F00\u59CB\u65F6\u95F4" },
|
|
24
|
+
endPlaceholder: { default: "\u7ED3\u675F\u65F6\u95F4" },
|
|
25
25
|
type: { default: "date" },
|
|
26
26
|
min: { default: "" },
|
|
27
27
|
max: { default: "" },
|
|
28
28
|
disabled: { type: Boolean, default: false },
|
|
29
29
|
clearable: { type: Boolean, default: true },
|
|
30
30
|
prefix: { default: "" },
|
|
31
|
+
suffix: { default: "" },
|
|
31
32
|
flex: { type: Boolean, default: false }
|
|
32
33
|
},
|
|
33
34
|
emits: ["update:modelValue", "focus", "change"],
|
|
@@ -107,7 +108,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
107
108
|
if (props.disabled) {
|
|
108
109
|
return;
|
|
109
110
|
}
|
|
110
|
-
floatRef.value.
|
|
111
|
+
floatRef.value.toggle($el.value);
|
|
111
112
|
}
|
|
112
113
|
function handleClose() {
|
|
113
114
|
if (props.disabled) {
|
|
@@ -173,48 +174,83 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
173
174
|
[vue.vModelText, endDate.value],
|
|
174
175
|
[vue.unref(dis.default), _ctx.disabled]
|
|
175
176
|
]),
|
|
176
|
-
startDate.value && endDate.value && props.clearable ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
177
|
+
startDate.value && endDate.value && props.clearable && !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToIcon), {
|
|
177
178
|
key: 2,
|
|
178
179
|
value: "close",
|
|
179
180
|
link: "",
|
|
180
|
-
|
|
181
|
+
class: "to-date-range-clear",
|
|
181
182
|
onClick: handleClose
|
|
182
183
|
})) : vue.createCommentVNode("v-if", true),
|
|
184
|
+
_ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
185
|
+
key: 3,
|
|
186
|
+
class: "to-date-range-suffix"
|
|
187
|
+
}, [
|
|
188
|
+
vue.renderSlot(_ctx.$slots, "suffix")
|
|
189
|
+
])) : vue.createCommentVNode("v-if", true),
|
|
190
|
+
props.suffix ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
191
|
+
key: 4,
|
|
192
|
+
class: "to-date-range-suffix-text"
|
|
193
|
+
}, [
|
|
194
|
+
vue.createElementVNode(
|
|
195
|
+
"span",
|
|
196
|
+
null,
|
|
197
|
+
vue.toDisplayString(props.suffix),
|
|
198
|
+
1
|
|
199
|
+
/* TEXT */
|
|
200
|
+
)
|
|
201
|
+
])) : vue.createCommentVNode("v-if", true),
|
|
183
202
|
vue.createVNode(vue.unref(index$1.ToIcon), {
|
|
203
|
+
link: _ctx.inputable,
|
|
184
204
|
value: props.icon,
|
|
185
|
-
|
|
205
|
+
class: "to-date-range-icon",
|
|
186
206
|
onClick: handleOpen
|
|
187
|
-
}, null, 8, ["value"]),
|
|
188
|
-
vue.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
vue.createVNode(vue.unref(index$
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
207
|
+
}, null, 8, ["link", "value"]),
|
|
208
|
+
(vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
|
|
209
|
+
vue.createElementVNode(
|
|
210
|
+
"div",
|
|
211
|
+
{
|
|
212
|
+
class: vue.normalizeClass(["to-date-range", setClass.value])
|
|
213
|
+
},
|
|
214
|
+
[
|
|
215
|
+
vue.createVNode(vue.unref(index$2.ToFloat), {
|
|
216
|
+
ref_key: "floatRef",
|
|
217
|
+
ref: floatRef,
|
|
218
|
+
class: "to-date-range-layer",
|
|
219
|
+
width: widthComputed.value,
|
|
220
|
+
global: false
|
|
221
|
+
}, {
|
|
222
|
+
default: vue.withCtx(() => [
|
|
223
|
+
vue.createElementVNode("div", { class: "to-date-range-calendars" }, [
|
|
224
|
+
vue.createVNode(vue.unref(index$3.ToCalendar), {
|
|
225
|
+
modelValue: rangeValue.value,
|
|
226
|
+
"onUpdate:modelValue": ($event) => rangeValue.value = $event,
|
|
227
|
+
class: "to-date-range-calendar",
|
|
228
|
+
type: _ctx.type,
|
|
229
|
+
range: "",
|
|
230
|
+
min: _ctx.min,
|
|
231
|
+
max: _ctx.max
|
|
232
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "type", "min", "max"]),
|
|
233
|
+
vue.createElementVNode("span", { class: "to-date-range-divider" }),
|
|
234
|
+
vue.createVNode(vue.unref(index$3.ToCalendar), {
|
|
235
|
+
modelValue: rangeValue.value,
|
|
236
|
+
"onUpdate:modelValue": ($event) => rangeValue.value = $event,
|
|
237
|
+
class: "to-date-range-calendar",
|
|
238
|
+
type: _ctx.type,
|
|
239
|
+
range: "",
|
|
240
|
+
"range-type": "end",
|
|
241
|
+
min: _ctx.min,
|
|
242
|
+
max: _ctx.max
|
|
243
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "type", "min", "max"])
|
|
244
|
+
])
|
|
245
|
+
]),
|
|
246
|
+
_: 1
|
|
247
|
+
/* STABLE */
|
|
248
|
+
}, 8, ["width"])
|
|
249
|
+
],
|
|
250
|
+
2
|
|
251
|
+
/* CLASS */
|
|
252
|
+
)
|
|
253
|
+
]))
|
|
218
254
|
], 10, ["flex"]);
|
|
219
255
|
};
|
|
220
256
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range.vue2.js","sources":["../../../../../../packages/components/daterange/src/date-range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToDateRange'\n});\n</script>\n<template>\n\t<span ref=\"$el\" :key=\"langKey\" :flex=\"flex ? flex : null\" class=\"to-date-range\" :class=\"setClass\">\n\t\t<span v-if=\"$slots.prefix\" class=\"to-date-range-prefix\">\n\t\t\t<slot name=\"prefix\" />\n\t\t</span>\n\t\t<span v-if=\"props.prefix\" class=\"to-date-range-prefix-text\">\n\t\t\t<span>{{ props.prefix }}</span>\n\t\t</span>\n\t\t<input v-model=\"startDate\" v-dis=\"disabled\" class=\"to-date-range-input\" :placeholder=\"startPlaceholder || t('to.daterange.startDate')\" type=\"text\" :readonly=\"!inputable\" @focus=\"handleFocus\" />\n\t\t<span class=\"to-date-range-separator\">{{ props.seperatorText }}</span>\n\t\t<input v-model=\"endDate\" v-dis=\"disabled\" class=\"to-date-range-input\" :placeholder=\"endPlaceholder || t('to.daterange.endDate')\" type=\"text\" :readonly=\"!inputable\" @focus=\"handleFocus\" />\n\t\t<to-icon v-if=\"startDate && endDate && props.clearable\" value=\"close\" link mode=\"date-range-close\" @click=\"handleClose\"></to-icon>\n\t\t<to-icon :value=\"props.icon\" mode=\"date-range-icon\" @click=\"handleOpen\"></to-icon>\n\t\t<to-float ref=\"floatRef\" :width=\"widthComputed\">\n\t\t\t<div class=\"to-date-range-calendar-content\">\n\t\t\t\t<to-calendar v-model=\"rangeValue\" :type=\"type\" range :min=\"min\" :max=\"max\"></to-calendar>\n\t\t\t\t<span class=\"to-date-range-calendar-separator\"></span>\n\t\t\t\t<to-calendar v-model=\"rangeValue\" :type=\"type\" range range-type=\"end\" :min=\"min\" :max=\"max\"></to-calendar>\n\t\t\t</div>\n\t\t</to-float>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ToIcon, ToFloat, ToCalendar } from '@touchvue/components'\nimport { computed, ref, watch } from 'vue'\nimport { vDis } from '@touchvue/directives'\nimport { t, langKey } from '@touchvue/locale'\n\n\n\nexport interface DateRangeProps {\n\tmodelValue?: string\n\tseperatorText?: string\n\tmode?: string\n\ticon?: string\n\tinputable?: boolean\n\tstartPlaceholder?: string\n\tendPlaceholder?: string\n\ttype?: string\n\tmin?: string | Date | number\n\tmax?: string | Date | number\n\tdisabled?: boolean\n\tclearable?: boolean\n\tprefix?: string\n\tflex?: boolean\n}\n\nconst props = withDefaults(defineProps<DateRangeProps>(), {\n\tmodelValue: '',\n\tseperatorText: '~',\n\tmode: 'default',\n\ticon: 'date',\n\tinputable: true,\n\tstartPlaceholder: '',\n\tendPlaceholder: '',\n\ttype: 'date',\n\tmin: '',\n\tmax: '',\n\tdisabled: false,\n\tclearable: true,\n\tprefix: '',\n\tflex: false\n})\n\nconst floatRef = ref(null)\nconst $el = ref(null)\nconst startDate = ref('')\nconst endDate = ref('')\nconst rangeValue = ref('')\n\nconst emit = defineEmits(['update:modelValue', 'focus', 'change'])\n\nconst setClass = computed(() => {\n\tlet classes = []\n\tif (props.mode) {\n\t\tclasses.push(`mode-${props.mode}`)\n\t}\n\treturn classes\n})\n\nconst widthComputed = computed(() => {\n\tif (props.type === 'datetime') {\n\t\treturn 80\n\t} else if (props.type === 'time') {\n\t\treturn 23\n\t} else {\n\t\treturn 50\n\t}\n})\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tconsole.log('props.modelValue === 83', val)\n\t\tif (val && val.includes(',')) {\n\t\t\tlet arr = val.split(',')\n\t\t\tconst start = arr[0]\n\t\t\tconst end = arr[1]\n\t\t\tif (start && end) {\n\t\t\t\tstartDate.value = start\n\t\t\t\tendDate.value = end\n\t\t\t\trangeValue.value = val\n\t\t\t}\n\t\t} else {\n\t\t\tstartDate.value = ''\n\t\t\tendDate.value = ''\n\t\t\trangeValue.value = ''\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nwatch(\n\t() => rangeValue.value,\n\tval => {\n\t\tconsole.log('rangeValue.value === 105', val)\n\t\tif (val) {\n\t\t\tlet arr = val.split(',')\n\t\t\tconst start = arr[0]\n\t\t\tconst end = arr[1]\n\t\t\tif (start && end) {\n\t\t\t\tstartDate.value = start\n\t\t\t\tendDate.value = end\n\t\t\t\temit('change', val)\n\t\t\t\temit('update:modelValue', val)\n\t\t\t\tfloatRef.value.close()\n\t\t\t}\n\t\t} else {\n\t\t\tstartDate.value = ''\n\t\t\tendDate.value = ''\n\t\t\temit('change', '')\n\t\t\temit('update:modelValue', '')\n\t\t}\n\t}\n)\nfunction handleFocus() {\n\temit('focus', rangeValue.value)\n\tfloatRef.value.open($el.value)\n}\nfunction handleOpen() {\n\tif (props.disabled) {\n\t\treturn\n\t}\n\tfloatRef.value.open($el.value)\n}\nfunction handleClose() {\n\tif (props.disabled) {\n\t\treturn\n\t}\n\tstartDate.value = ''\n\tendDate.value = ''\n\trangeValue.value = ''\n\temit('update:modelValue', '')\n}\n</script>\n"],"names":["DO_defineComponent","ref","computed","watch","_createElementBlock","_unref","langKey","flex","_normalizeClass","$slots","_renderSlot","_createElementVNode","_toDisplayString","startPlaceholder","t","inputable","disabled","endPlaceholder","_createBlock","ToIcon","_createVNode","ToFloat","ToCalendar","type","min","max"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-range.vue2.js","sources":["../../../../../../packages/components/daterange/src/date-range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToDateRange'\n});\n</script>\n<template>\n\t<span ref=\"$el\" :key=\"langKey\" :flex=\"flex ? flex : null\" class=\"to-date-range\" :class=\"setClass\">\n\t\t<span v-if=\"$slots.prefix\" class=\"to-date-range-prefix\">\n\t\t\t<slot name=\"prefix\" />\n\t\t</span>\n\t\t<span v-if=\"props.prefix\" class=\"to-date-range-prefix-text\">\n\t\t\t<span>{{ props.prefix }}</span>\n\t\t</span>\n\t\t<input v-model=\"startDate\" v-dis=\"disabled\" class=\"to-date-range-input\" :placeholder=\"startPlaceholder || t('to.daterange.startDate')\" type=\"text\" :readonly=\"!inputable\" @focus=\"handleFocus\" />\n\t\t<span class=\"to-date-range-separator\">{{ props.seperatorText }}</span>\n\t\t<input v-model=\"endDate\" v-dis=\"disabled\" class=\"to-date-range-input\" :placeholder=\"endPlaceholder || t('to.daterange.endDate')\" type=\"text\" :readonly=\"!inputable\" @focus=\"handleFocus\" />\n\t\t<to-icon v-if=\"startDate && endDate && props.clearable && !props.disabled\" value=\"close\" link class=\"to-date-range-clear\" @click=\"handleClose\"></to-icon>\n\t\t<span v-if=\"$slots.suffix\" class=\"to-date-range-suffix\">\n\t\t\t<slot name=\"suffix\" />\n\t\t</span>\n\t\t<span v-if=\"props.suffix\" class=\"to-date-range-suffix-text\">\n\t\t\t<span>{{ props.suffix }}</span>\n\t\t</span>\n\t\t<to-icon :link=\"inputable\" :value=\"props.icon\" class=\"to-date-range-icon\" @click=\"handleOpen\"></to-icon>\n\t\t<Teleport to=\"body\">\n\t\t\t<div class=\"to-date-range\" :class=\"setClass\">\n\t\t\t\t<to-float ref=\"floatRef\" class=\"to-date-range-layer\" :width=\"widthComputed\" :global=\"false\">\n\t\t\t\t\t<div class=\"to-date-range-calendars\">\n\t\t\t\t\t\t<to-calendar v-model=\"rangeValue\" class=\"to-date-range-calendar\" :type=\"type\" range :min=\"min\" :max=\"max\"></to-calendar>\n\t\t\t\t\t\t<span class=\"to-date-range-divider\"></span>\n\t\t\t\t\t\t<to-calendar v-model=\"rangeValue\" class=\"to-date-range-calendar\" :type=\"type\" range range-type=\"end\" :min=\"min\" :max=\"max\"></to-calendar>\n\t\t\t\t\t</div>\n\t\t\t\t</to-float>\n\t\t\t</div>\n\t\t</Teleport>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ToIcon, ToFloat, ToCalendar } from '@touchvue/components'\nimport { computed, ref, watch } from 'vue'\nimport { vDis } from '@touchvue/directives'\nimport { t, langKey } from '@touchvue/locale'\n\n\n\nexport interface DateRangeProps {\n\tmodelValue?: string\n\tseperatorText?: string\n\tmode?: string\n\ticon?: string\n\tinputable?: boolean\n\tstartPlaceholder?: string\n\tendPlaceholder?: string\n\ttype?: string\n\tmin?: string | Date | number\n\tmax?: string | Date | number\n\tdisabled?: boolean\n\tclearable?: boolean\n\tprefix?: string\n\tsuffix?: string\n\tflex?: boolean\n}\n\nconst props = withDefaults(defineProps<DateRangeProps>(), {\n\tmodelValue: '',\n\tseperatorText: '~',\n\tmode: 'default',\n\ticon: 'date',\n\tinputable: true,\n\tstartPlaceholder: '开始时间',\n\tendPlaceholder: '结束时间',\n\ttype: 'date',\n\tmin: '',\n\tmax: '',\n\tdisabled: false,\n\tclearable: true,\n\tprefix: '',\n\tsuffix: '',\n\tflex: false\n})\n\nconst floatRef = ref(null)\nconst $el = ref(null)\nconst startDate = ref('')\nconst endDate = ref('')\nconst rangeValue = ref('')\n\nconst emit = defineEmits(['update:modelValue', 'focus', 'change'])\n\nconst setClass = computed(() => {\n\tlet classes = []\n\tif (props.mode) {\n\t\tclasses.push(`mode-${props.mode}`)\n\t}\n\treturn classes\n})\n\nconst widthComputed = computed(() => {\n\tif (props.type === 'datetime') {\n\t\treturn 80\n\t} else if (props.type === 'time') {\n\t\treturn 23\n\t} else {\n\t\treturn 50\n\t}\n})\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tconsole.log('props.modelValue === 83', val)\n\t\tif (val && val.includes(',')) {\n\t\t\tlet arr = val.split(',')\n\t\t\tconst start = arr[0]\n\t\t\tconst end = arr[1]\n\t\t\tif (start && end) {\n\t\t\t\tstartDate.value = start\n\t\t\t\tendDate.value = end\n\t\t\t\trangeValue.value = val\n\t\t\t}\n\t\t} else {\n\t\t\tstartDate.value = ''\n\t\t\tendDate.value = ''\n\t\t\trangeValue.value = ''\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nwatch(\n\t() => rangeValue.value,\n\tval => {\n\t\tconsole.log('rangeValue.value === 105', val)\n\t\tif (val) {\n\t\t\tlet arr = val.split(',')\n\t\t\tconst start = arr[0]\n\t\t\tconst end = arr[1]\n\t\t\tif (start && end) {\n\t\t\t\tstartDate.value = start\n\t\t\t\tendDate.value = end\n\t\t\t\temit('change', val)\n\t\t\t\temit('update:modelValue', val)\n\t\t\t\tfloatRef.value.close()\n\t\t\t}\n\t\t} else {\n\t\t\tstartDate.value = ''\n\t\t\tendDate.value = ''\n\t\t\temit('change', '')\n\t\t\temit('update:modelValue', '')\n\t\t}\n\t}\n)\nfunction handleFocus() {\n\temit('focus', rangeValue.value)\n\tfloatRef.value.open($el.value)\n}\nfunction handleOpen() {\n\tif (props.disabled) {\n\t\treturn\n\t}\n\tfloatRef.value.toggle($el.value)\n}\nfunction handleClose() {\n\tif (props.disabled) {\n\t\treturn\n\t}\n\tstartDate.value = ''\n\tendDate.value = ''\n\trangeValue.value = ''\n\temit('update:modelValue', '')\n}\n</script>\n"],"names":["DO_defineComponent","ref","computed","watch","_createElementBlock","_unref","langKey","flex","_normalizeClass","$slots","_renderSlot","_createElementVNode","_toDisplayString","startPlaceholder","t","inputable","disabled","endPlaceholder","_createBlock","ToIcon","_createVNode","_Teleport","ToFloat","ToCalendar","type","min","max"],"mappings":"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"}
|
|
@@ -97,8 +97,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
97
97
|
};
|
|
98
98
|
const setClass = vue.computed(() => {
|
|
99
99
|
const arr = [];
|
|
100
|
-
if (props.col)
|
|
100
|
+
if (props.col) {
|
|
101
|
+
arr.push("is-col");
|
|
101
102
|
arr.push(`col-${props.col}`);
|
|
103
|
+
}
|
|
102
104
|
if (props.submitPosition)
|
|
103
105
|
arr.push(`submit-position-${props.submitPosition}`);
|
|
104
106
|
if (props.mode)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.vue2.js","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToForm'\n});\n</script>\n<template>\n\t<div class=\"to-form\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<div ref=\"toForm\" class=\"to-form-list\">\n\t\t\t<slot></slot>\n\t\t\t<div v-if=\"props.submitPosition === 'corner'\" class=\"to-form-item is-placeholder\"></div>\n\t\t\t<div v-if=\"slots.submit\" class=\"to-form-submit\" :style=\"submitStyle\">\n\t\t\t\t<slot name=\"submit\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, onMounted, onBeforeUnmount, provide, useSlots, watch } from 'vue'\n\n\nconst props = defineProps({\n\tflex: Boolean,\n\tlabelWidth: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tlabelPosition: {\n\t\ttype: String,\n\t\tdefault: 'left'\n\t},\n\tcol: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tsubmitPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tdir: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tvalueWidth: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tspace: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tspaceX: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tspaceY: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tcomparable: Boolean,\n\treadonly: Boolean\n})\n\nconst toForm = ref<HTMLElement | null>(null)\nconst slots = useSlots()\nconst items = ref<any[]>([])\nconst maxLabelWidth = ref(0)\n\n// 响应式引用,用于 provide 给子组件\nconst labelWidthRef = ref(props.labelWidth)\nconst labelPositionRef = ref(props.labelPosition)\nconst spaceRef = ref(props.space)\nconst spaceXRef = ref(props.spaceX)\nconst spaceYRef = ref(props.spaceY)\nconst valueWidthRef = ref(props.valueWidth)\n\nconst adjust = () => {\n\tsetTimeout(() => {\n\t\tlet maxWidth = 0\n\t\titems.value.forEach(item => {\n\t\t\tif (item?.$refs?.label) {\n\t\t\t\titem.$refs.label.style.width = ''\n\t\t\t}\n\t\t})\n\t\titems.value.forEach(item => {\n\t\t\tconst label = item?.$refs?.label\n\t\t\tif (label && label.clientWidth > maxWidth) {\n\t\t\t\tmaxWidth = label.clientWidth\n\t\t\t}\n\t\t})\n\t\titems.value.forEach(item => {\n\t\t\tif (item?.$refs?.label) {\n\t\t\t\titem.$refs.label.style.width = `${maxWidth + 1}px`\n\t\t\t}\n\t\t})\n\t\tmaxLabelWidth.value = maxWidth + 1\n\t}, 200)\n}\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\tif (props.col) arr.push(`col-${props.col}`)\n\tif (props.submitPosition) arr.push(`submit-position-${props.submitPosition}`)\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\tif (props.dir) arr.push(`dir-${props.dir}`)\n\tif (props.valueWidth) arr.push(`value-width-${props.valueWidth}`)\n\tif (props.labelPosition) arr.push(`label-position-${props.labelPosition}`)\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst style: Record<string, string> = {}\n\tif (props.space) {\n\t\tstyle.gap = props.space + 'em'\n\t}\n\tif (props.spaceX) {\n\t\tstyle['--gap-x'] = props.spaceX + 'em'\n\t}\n\tif (props.spaceY) {\n\t\tstyle['--gap-y'] = props.spaceY + 'em'\n\t}\n\treturn style\n})\n\nconst submitStyle = computed(() => {\n\tif (props.submitPosition === 'item') {\n\t\tif (props.labelWidth === 'max') {\n\t\t\treturn { marginLeft: maxLabelWidth.value + 'px' }\n\t\t} else {\n\t\t\treturn { marginLeft: props.labelWidth + 'em' }\n\t\t}\n\t}\n\treturn {}\n})\n\n// 监听 props 变化,更新响应式引用\nwatch(\n\t() => props.labelWidth,\n\tnewVal => {\n\t\tlabelWidthRef.value = newVal\n\t\tif (newVal === 'max') {\n\t\t\tadjust()\n\t\t}\n\t}\n)\n\nwatch(\n\t() => props.labelPosition,\n\tnewVal => {\n\t\tlabelPositionRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.space,\n\tnewVal => {\n\t\tspaceRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.spaceX,\n\tnewVal => {\n\t\tspaceXRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.spaceY,\n\tnewVal => {\n\t\tspaceYRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.valueWidth,\n\tnewVal => {\n\t\tvalueWidthRef.value = newVal\n\t}\n)\n\nonMounted(() => {\n\tif (props.labelWidth === 'max') {\n\t\twindow.addEventListener('resize', adjust)\n\t\tadjust()\n\t}\n})\n\nonBeforeUnmount(() => {\n\tif (props.labelWidth === 'max') {\n\t\twindow.removeEventListener('resize', adjust)\n\t}\n})\n\n// provide current instance\nprovide('ToForm', {\n\tlabelWidth: labelWidthRef,\n\tlabelPosition: labelPositionRef,\n\tspace: spaceRef,\n\tspaceX: spaceXRef,\n\tspaceY: spaceYRef,\n\tsubmitPosition: props.submitPosition,\n\titems: items.value,\n\ttype: props.type,\n\tcomparable: props.comparable,\n\tvalueWidth: valueWidthRef\n})\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","computed","watch","onMounted","onBeforeUnmount","provide","_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.vue2.js","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToForm'\n});\n</script>\n<template>\n\t<div class=\"to-form\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<div ref=\"toForm\" class=\"to-form-list\">\n\t\t\t<slot></slot>\n\t\t\t<div v-if=\"props.submitPosition === 'corner'\" class=\"to-form-item is-placeholder\"></div>\n\t\t\t<div v-if=\"slots.submit\" class=\"to-form-submit\" :style=\"submitStyle\">\n\t\t\t\t<slot name=\"submit\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, onMounted, onBeforeUnmount, provide, useSlots, watch } from 'vue'\n\n\nconst props = defineProps({\n\tflex: Boolean,\n\tlabelWidth: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tlabelPosition: {\n\t\ttype: String,\n\t\tdefault: 'left'\n\t},\n\tcol: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tsubmitPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tdir: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tvalueWidth: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tspace: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tspaceX: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tspaceY: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tcomparable: Boolean,\n\treadonly: Boolean\n})\n\nconst toForm = ref<HTMLElement | null>(null)\nconst slots = useSlots()\nconst items = ref<any[]>([])\nconst maxLabelWidth = ref(0)\n\n// 响应式引用,用于 provide 给子组件\nconst labelWidthRef = ref(props.labelWidth)\nconst labelPositionRef = ref(props.labelPosition)\nconst spaceRef = ref(props.space)\nconst spaceXRef = ref(props.spaceX)\nconst spaceYRef = ref(props.spaceY)\nconst valueWidthRef = ref(props.valueWidth)\n\nconst adjust = () => {\n\tsetTimeout(() => {\n\t\tlet maxWidth = 0\n\t\titems.value.forEach(item => {\n\t\t\tif (item?.$refs?.label) {\n\t\t\t\titem.$refs.label.style.width = ''\n\t\t\t}\n\t\t})\n\t\titems.value.forEach(item => {\n\t\t\tconst label = item?.$refs?.label\n\t\t\tif (label && label.clientWidth > maxWidth) {\n\t\t\t\tmaxWidth = label.clientWidth\n\t\t\t}\n\t\t})\n\t\titems.value.forEach(item => {\n\t\t\tif (item?.$refs?.label) {\n\t\t\t\titem.$refs.label.style.width = `${maxWidth + 1}px`\n\t\t\t}\n\t\t})\n\t\tmaxLabelWidth.value = maxWidth + 1\n\t}, 200)\n}\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\tif (props.col) {\n\t\tarr.push('is-col')\n\t\tarr.push(`col-${props.col}`)\n\t}\n\tif (props.submitPosition) arr.push(`submit-position-${props.submitPosition}`)\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\tif (props.dir) arr.push(`dir-${props.dir}`)\n\tif (props.valueWidth) arr.push(`value-width-${props.valueWidth}`)\n\tif (props.labelPosition) arr.push(`label-position-${props.labelPosition}`)\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst style: Record<string, string> = {}\n\tif (props.space) {\n\t\tstyle.gap = props.space + 'em'\n\t}\n\tif (props.spaceX) {\n\t\tstyle['--gap-x'] = props.spaceX + 'em'\n\t}\n\tif (props.spaceY) {\n\t\tstyle['--gap-y'] = props.spaceY + 'em'\n\t}\n\treturn style\n})\n\nconst submitStyle = computed(() => {\n\tif (props.submitPosition === 'item') {\n\t\tif (props.labelWidth === 'max') {\n\t\t\treturn { marginLeft: maxLabelWidth.value + 'px' }\n\t\t} else {\n\t\t\treturn { marginLeft: props.labelWidth + 'em' }\n\t\t}\n\t}\n\treturn {}\n})\n\n// 监听 props 变化,更新响应式引用\nwatch(\n\t() => props.labelWidth,\n\tnewVal => {\n\t\tlabelWidthRef.value = newVal\n\t\tif (newVal === 'max') {\n\t\t\tadjust()\n\t\t}\n\t}\n)\n\nwatch(\n\t() => props.labelPosition,\n\tnewVal => {\n\t\tlabelPositionRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.space,\n\tnewVal => {\n\t\tspaceRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.spaceX,\n\tnewVal => {\n\t\tspaceXRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.spaceY,\n\tnewVal => {\n\t\tspaceYRef.value = newVal\n\t}\n)\n\nwatch(\n\t() => props.valueWidth,\n\tnewVal => {\n\t\tvalueWidthRef.value = newVal\n\t}\n)\n\nonMounted(() => {\n\tif (props.labelWidth === 'max') {\n\t\twindow.addEventListener('resize', adjust)\n\t\tadjust()\n\t}\n})\n\nonBeforeUnmount(() => {\n\tif (props.labelWidth === 'max') {\n\t\twindow.removeEventListener('resize', adjust)\n\t}\n})\n\n// provide current instance\nprovide('ToForm', {\n\tlabelWidth: labelWidthRef,\n\tlabelPosition: labelPositionRef,\n\tspace: spaceRef,\n\tspaceX: spaceXRef,\n\tspaceY: spaceYRef,\n\tsubmitPosition: props.submitPosition,\n\titems: items.value,\n\ttype: props.type,\n\tcomparable: props.comparable,\n\tvalueWidth: valueWidthRef\n})\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","computed","watch","onMounted","onBeforeUnmount","provide","_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_unref"],"mappings":"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"}
|