persagy-vant 0.0.46 → 0.0.47
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/cell/Cell.d.ts +12 -1
- package/es/cell/Cell.mjs +41 -9
- package/es/cell/index.css +1 -1
- package/es/cell/index.d.ts +5 -1
- package/es/cell/index.less +26 -0
- package/es/collapse-item/CollapseItem.d.ts +4 -0
- package/es/collapse-item/index.d.ts +3 -0
- package/es/field/Field.d.ts +4 -0
- package/es/field/index.d.ts +3 -0
- package/es/index.d.ts +1 -1
- package/es/index.mjs +1 -1
- package/es/label/Label.d.ts +2 -2
- package/es/label/index.d.ts +2 -2
- package/es/tree-select-panel/TreeSelectPanel.d.ts +13 -0
- package/es/tree-select-panel/TreeSelectPanel.mjs +25 -7
- package/es/tree-select-panel/index.css +1 -1
- package/es/tree-select-panel/index.d.ts +9 -0
- package/es/tree-select-panel/index.less +2 -0
- package/lib/cell/Cell.d.ts +12 -1
- package/lib/cell/Cell.js +40 -8
- package/lib/cell/index.css +1 -1
- package/lib/cell/index.d.ts +5 -1
- package/lib/cell/index.less +26 -0
- package/lib/collapse-item/CollapseItem.d.ts +4 -0
- package/lib/collapse-item/index.d.ts +3 -0
- package/lib/field/Field.d.ts +4 -0
- package/lib/field/index.d.ts +3 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/label/Label.d.ts +2 -2
- package/lib/label/index.d.ts +2 -2
- package/lib/tree-select-panel/TreeSelectPanel.d.ts +13 -0
- package/lib/tree-select-panel/TreeSelectPanel.js +24 -6
- package/lib/tree-select-panel/index.css +1 -1
- package/lib/tree-select-panel/index.d.ts +9 -0
- package/lib/tree-select-panel/index.less +2 -0
- package/lib/vant.cjs.js +65 -15
- package/lib/vant.es.js +65 -15
- package/lib/vant.js +65 -15
- package/lib/vant.min.js +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -248,7 +248,7 @@ __reExport(stdin_exports, require("./uploader"), module.exports);
|
|
|
248
248
|
__reExport(stdin_exports, require("./video-preview"), module.exports);
|
|
249
249
|
__reExport(stdin_exports, require("./work-order-card"), module.exports);
|
|
250
250
|
__reExport(stdin_exports, require("./work-order-filter"), module.exports);
|
|
251
|
-
const version = "0.0.
|
|
251
|
+
const version = "0.0.47";
|
|
252
252
|
function install(app) {
|
|
253
253
|
const components = [
|
|
254
254
|
import_action_bar.ActionBar,
|
package/lib/label/Label.d.ts
CHANGED
|
@@ -126,7 +126,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
126
126
|
type: PropType<LabelMedia[]>;
|
|
127
127
|
default: () => never[];
|
|
128
128
|
};
|
|
129
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "
|
|
129
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "long-press" | "click-media")[], "click" | "long-press" | "click-media", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
130
130
|
label: {
|
|
131
131
|
type: PropType<string>;
|
|
132
132
|
default: string;
|
|
@@ -183,8 +183,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
183
183
|
};
|
|
184
184
|
}>> & {
|
|
185
185
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
186
|
-
"onClick-media"?: ((...args: any[]) => any) | undefined;
|
|
187
186
|
"onLong-press"?: ((...args: any[]) => any) | undefined;
|
|
187
|
+
"onClick-media"?: ((...args: any[]) => any) | undefined;
|
|
188
188
|
}, {
|
|
189
189
|
type: LabelType;
|
|
190
190
|
label: string;
|
package/lib/label/index.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
|
|
|
53
53
|
type: import("vue").PropType<import("./Label").LabelMedia[]>;
|
|
54
54
|
default: () => never[];
|
|
55
55
|
};
|
|
56
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "
|
|
56
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "long-press" | "click-media")[], "click" | "long-press" | "click-media", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
57
57
|
label: {
|
|
58
58
|
type: import("vue").PropType<string>;
|
|
59
59
|
default: string;
|
|
@@ -110,8 +110,8 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
|
|
|
110
110
|
};
|
|
111
111
|
}>> & {
|
|
112
112
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
113
|
-
"onClick-media"?: ((...args: any[]) => any) | undefined;
|
|
114
113
|
"onLong-press"?: ((...args: any[]) => any) | undefined;
|
|
114
|
+
"onClick-media"?: ((...args: any[]) => any) | undefined;
|
|
115
115
|
}, {
|
|
116
116
|
type: import("./Label").LabelType;
|
|
117
117
|
label: string;
|
|
@@ -26,6 +26,10 @@ declare const treeSelectPanelProps: {
|
|
|
26
26
|
default: true;
|
|
27
27
|
};
|
|
28
28
|
searchPlaceholder: StringConstructor;
|
|
29
|
+
showSearchParentPath: {
|
|
30
|
+
type: BooleanConstructor;
|
|
31
|
+
default: true;
|
|
32
|
+
};
|
|
29
33
|
lazy: BooleanConstructor;
|
|
30
34
|
loading: BooleanConstructor;
|
|
31
35
|
finished: BooleanConstructor;
|
|
@@ -76,6 +80,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
76
80
|
default: true;
|
|
77
81
|
};
|
|
78
82
|
searchPlaceholder: StringConstructor;
|
|
83
|
+
showSearchParentPath: {
|
|
84
|
+
type: BooleanConstructor;
|
|
85
|
+
default: true;
|
|
86
|
+
};
|
|
79
87
|
lazy: BooleanConstructor;
|
|
80
88
|
loading: BooleanConstructor;
|
|
81
89
|
finished: BooleanConstructor;
|
|
@@ -124,6 +132,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
124
132
|
default: true;
|
|
125
133
|
};
|
|
126
134
|
searchPlaceholder: StringConstructor;
|
|
135
|
+
showSearchParentPath: {
|
|
136
|
+
type: BooleanConstructor;
|
|
137
|
+
default: true;
|
|
138
|
+
};
|
|
127
139
|
lazy: BooleanConstructor;
|
|
128
140
|
loading: BooleanConstructor;
|
|
129
141
|
finished: BooleanConstructor;
|
|
@@ -177,5 +189,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
177
189
|
expandedKeys: Numeric[];
|
|
178
190
|
selectableParent: boolean;
|
|
179
191
|
showParentSelect: boolean;
|
|
192
|
+
showSearchParentPath: boolean;
|
|
180
193
|
}>;
|
|
181
194
|
export default _default;
|
|
@@ -46,6 +46,7 @@ const treeSelectPanelProps = {
|
|
|
46
46
|
showSelectLevels: Array,
|
|
47
47
|
searchable: import_utils.truthProp,
|
|
48
48
|
searchPlaceholder: String,
|
|
49
|
+
showSearchParentPath: import_utils.truthProp,
|
|
49
50
|
lazy: Boolean,
|
|
50
51
|
loading: Boolean,
|
|
51
52
|
finished: Boolean,
|
|
@@ -58,11 +59,15 @@ const treeSelectPanelProps = {
|
|
|
58
59
|
clearSelectedText: (0, import_utils.makeStringProp)("\u6E05\u7A7A\u5DF2\u9009"),
|
|
59
60
|
confirmText: (0, import_utils.makeStringProp)("\u786E\u5B9A")
|
|
60
61
|
};
|
|
61
|
-
const findMatchingLeaves = (items, keyword) => items.flatMap((item) => {
|
|
62
|
+
const findMatchingLeaves = (items, keyword, parentPath = []) => items.flatMap((item) => {
|
|
62
63
|
var _a;
|
|
63
|
-
if ((_a = item.children) == null ? void 0 : _a.length)
|
|
64
|
-
return findMatchingLeaves(item.children, keyword);
|
|
65
|
-
|
|
64
|
+
if ((_a = item.children) == null ? void 0 : _a.length) {
|
|
65
|
+
return findMatchingLeaves(item.children, keyword, [...parentPath, item.text]);
|
|
66
|
+
}
|
|
67
|
+
return item.text.toLocaleLowerCase().includes(keyword) ? [{
|
|
68
|
+
item,
|
|
69
|
+
parentPath
|
|
70
|
+
}] : [];
|
|
66
71
|
});
|
|
67
72
|
const flattenItems = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems(item.children) : []]);
|
|
68
73
|
var stdin_default = (0, import_vue.defineComponent)({
|
|
@@ -75,7 +80,10 @@ var stdin_default = (0, import_vue.defineComponent)({
|
|
|
75
80
|
const keyword = (0, import_vue.ref)("");
|
|
76
81
|
const expandedSelected = (0, import_vue.ref)(false);
|
|
77
82
|
const normalizedKeyword = (0, import_vue.computed)(() => keyword.value.trim().toLocaleLowerCase());
|
|
78
|
-
const
|
|
83
|
+
const searchResults = (0, import_vue.computed)(() => normalizedKeyword.value ? findMatchingLeaves(props.items, normalizedKeyword.value) : []);
|
|
84
|
+
const filteredItems = (0, import_vue.computed)(() => normalizedKeyword.value ? searchResults.value.map(({
|
|
85
|
+
item
|
|
86
|
+
}) => item) : props.items);
|
|
79
87
|
const selectedItems = (0, import_vue.computed)(() => flattenItems(props.items).filter((item) => props.modelValue.includes(item.id)));
|
|
80
88
|
const close = () => emit("update:show", false);
|
|
81
89
|
const updateSelected = (value) => {
|
|
@@ -130,7 +138,17 @@ var stdin_default = (0, import_vue.defineComponent)({
|
|
|
130
138
|
title: ({
|
|
131
139
|
item,
|
|
132
140
|
hasChildren
|
|
133
|
-
}) =>
|
|
141
|
+
}) => {
|
|
142
|
+
if (hasChildren || !normalizedKeyword.value)
|
|
143
|
+
return item.text;
|
|
144
|
+
const result = searchResults.value.find((result2) => result2.item.id === item.id);
|
|
145
|
+
if (!result || !props.showSearchParentPath || !result.parentPath.length) {
|
|
146
|
+
return renderHighlightedTitle(item.text);
|
|
147
|
+
}
|
|
148
|
+
return (0, import_vue.createVNode)(import_vue.Fragment, null, [result.parentPath.join("/"), (0, import_vue.createVNode)("span", {
|
|
149
|
+
"class": bem("path-separator")
|
|
150
|
+
}, [(0, import_vue.createTextVNode)("/")]), renderHighlightedTitle(item.text)]);
|
|
151
|
+
}
|
|
134
152
|
})]);
|
|
135
153
|
};
|
|
136
154
|
return () => (0, import_vue.createVNode)(import_action_sheet.ActionSheet, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.van-tree-select-panel{box-sizing:border-box;display:flex;height:calc(100% - 96px);max-height:calc(100% - 96px);overflow:hidden;background:var(--van-gray-1)}.van-tree-select-panel .van-action-sheet__content,.van-tree-select-panel__content{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;overflow:hidden;background:var(--van-gray-1)}.van-tree-select-panel__nav{flex:none;--van-nav-bar-background-color: var(--van-gray-1)}.van-tree-select-panel__nav .van-nav-bar__left--slot{padding:0}.van-tree-select-panel__nav .van-nav-bar__left--slot{left:var(--van-padding-md)}.van-tree-select-panel__search-wrapper{margin:0 var(--van-padding-md) 6px}.van-tree-select-panel__body{flex:1;min-height:0;padding:0 var(--van-padding-md) var(--van-padding-md);overflow-y:auto}.van-tree-select-panel__footer{position:relative;flex:none;background:var(--van-white);box-shadow:0 -2px 5px rgba(27,33,41,.1)}.van-tree-select-panel__footer .van-bottom-action-bar{box-shadow:none}.van-tree-select-panel__selected-panel{position:absolute;right:0;bottom:60px;left:0;display:flex;flex-direction:column;max-height:min(340px,calc(100vh - 156px));overflow:hidden;background:var(--van-white);box-shadow:0 -2px 5px rgba(27,33,41,.1)}.van-tree-select-panel__selected-header{display:flex;flex:none;align-items:center;justify-content:space-between;padding:12px var(--van-padding-md) 4px}.van-tree-select-panel__clear,.van-tree-select-panel__collapse{display:inline-flex;align-items:center;padding:0;font:inherit;font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);background:transparent;border:0}.van-tree-select-panel__clear{color:var(--van-primary-color)}.van-tree-select-panel__collapse,.van-tree-select-panel__remove,.van-tree-select-panel__collapse .van-icon,.van-tree-select-panel__remove .van-icon{color:var(--van-gray-6)}.van-tree-select-panel__collapse{gap:2px}.van-tree-select-panel__selected-list{display:flex;flex:0 1 auto;flex-direction:column;gap:6px;min-height:0;padding:var(--van-padding-xs) var(--van-padding-md);overflow-y:auto;overscroll-behavior:contain}.van-tree-select-panel__selected-item{flex:none;min-height:44px;padding:11px var(--van-padding-md);background:var(--van-gray-1);border-radius:8px}.van-tree-select-panel__remove{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:0}.van-tree-select-panel__card{overflow:hidden;background:var(--van-white);border-radius:var(--van-border-radius-lg)}.van-tree-select-panel__match{color:var(--van-primary-color)}.van-tree-select-panel .van-list{min-height:100%}
|
|
1
|
+
.van-tree-select-panel{box-sizing:border-box;display:flex;height:calc(100% - 96px);max-height:calc(100% - 96px);overflow:hidden;background:var(--van-gray-1)}.van-tree-select-panel .van-action-sheet__content,.van-tree-select-panel__content{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;overflow:hidden;background:var(--van-gray-1)}.van-tree-select-panel__nav{flex:none;--van-nav-bar-background-color: var(--van-gray-1)}.van-tree-select-panel__nav .van-nav-bar__left--slot{padding:0}.van-tree-select-panel__nav .van-nav-bar__left--slot{left:var(--van-padding-md)}.van-tree-select-panel__search-wrapper{margin:0 var(--van-padding-md) 6px}.van-tree-select-panel__body{flex:1;min-height:0;padding:0 var(--van-padding-md) var(--van-padding-md);overflow-y:auto}.van-tree-select-panel__footer{position:relative;flex:none;background:var(--van-white);box-shadow:0 -2px 5px rgba(27,33,41,.1)}.van-tree-select-panel__footer .van-bottom-action-bar{box-shadow:none}.van-tree-select-panel__selected-panel{position:absolute;right:0;bottom:60px;left:0;display:flex;flex-direction:column;max-height:min(340px,calc(100vh - 156px));overflow:hidden;background:var(--van-white);box-shadow:0 -2px 5px rgba(27,33,41,.1)}.van-tree-select-panel__selected-header{display:flex;flex:none;align-items:center;justify-content:space-between;padding:12px var(--van-padding-md) 4px}.van-tree-select-panel__clear,.van-tree-select-panel__collapse{display:inline-flex;align-items:center;padding:0;font:inherit;font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);background:transparent;border:0}.van-tree-select-panel__clear{color:var(--van-primary-color)}.van-tree-select-panel__collapse,.van-tree-select-panel__remove,.van-tree-select-panel__collapse .van-icon,.van-tree-select-panel__remove .van-icon{color:var(--van-gray-6)}.van-tree-select-panel__collapse{gap:2px}.van-tree-select-panel__selected-list{display:flex;flex:0 1 auto;flex-direction:column;gap:6px;min-height:0;padding:var(--van-padding-xs) var(--van-padding-md);overflow-y:auto;overscroll-behavior:contain}.van-tree-select-panel__selected-item{flex:none;min-height:44px;padding:11px var(--van-padding-md);background:var(--van-gray-1);border-radius:8px}.van-tree-select-panel__remove{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:0}.van-tree-select-panel__card{overflow:hidden;background:var(--van-white);border-radius:var(--van-border-radius-lg)}.van-tree-select-panel__match{color:var(--van-primary-color)}.van-tree-select-panel__path-separator{color:var(--van-text-color-2)}.van-tree-select-panel .van-list{min-height:100%}
|
|
@@ -23,6 +23,10 @@ export declare const TreeSelectPanel: import("../utils").WithInstall<import("vue
|
|
|
23
23
|
default: true;
|
|
24
24
|
};
|
|
25
25
|
searchPlaceholder: StringConstructor;
|
|
26
|
+
showSearchParentPath: {
|
|
27
|
+
type: BooleanConstructor;
|
|
28
|
+
default: true;
|
|
29
|
+
};
|
|
26
30
|
lazy: BooleanConstructor;
|
|
27
31
|
loading: BooleanConstructor;
|
|
28
32
|
finished: BooleanConstructor;
|
|
@@ -71,6 +75,10 @@ export declare const TreeSelectPanel: import("../utils").WithInstall<import("vue
|
|
|
71
75
|
default: true;
|
|
72
76
|
};
|
|
73
77
|
searchPlaceholder: StringConstructor;
|
|
78
|
+
showSearchParentPath: {
|
|
79
|
+
type: BooleanConstructor;
|
|
80
|
+
default: true;
|
|
81
|
+
};
|
|
74
82
|
lazy: BooleanConstructor;
|
|
75
83
|
loading: BooleanConstructor;
|
|
76
84
|
finished: BooleanConstructor;
|
|
@@ -124,6 +132,7 @@ export declare const TreeSelectPanel: import("../utils").WithInstall<import("vue
|
|
|
124
132
|
expandedKeys: import("../utils").Numeric[];
|
|
125
133
|
selectableParent: boolean;
|
|
126
134
|
showParentSelect: boolean;
|
|
135
|
+
showSearchParentPath: boolean;
|
|
127
136
|
}>>;
|
|
128
137
|
export default TreeSelectPanel;
|
|
129
138
|
export type { TreeSelectPanelProps } from './TreeSelectPanel';
|
|
@@ -103,5 +103,7 @@
|
|
|
103
103
|
}
|
|
104
104
|
&__card { overflow: hidden; background: var(--van-white); border-radius: var(--van-border-radius-lg); }
|
|
105
105
|
&__match { color: var(--van-primary-color); }
|
|
106
|
+
|
|
107
|
+
&__path-separator { color: var(--van-text-color-2); }
|
|
106
108
|
.van-list { min-height: 100%; }
|
|
107
109
|
}
|
package/lib/vant.cjs.js
CHANGED
|
@@ -3178,6 +3178,7 @@ const cellSharedProps = {
|
|
|
3178
3178
|
showTitleCollapseIcon: Boolean,
|
|
3179
3179
|
defaultMultiLineNotesCollapsed: Boolean,
|
|
3180
3180
|
threeLine: Boolean,
|
|
3181
|
+
threeLineEllipsis: Boolean,
|
|
3181
3182
|
labelSize: numericProp,
|
|
3182
3183
|
avatar: String,
|
|
3183
3184
|
showAvatar: {
|
|
@@ -3280,13 +3281,39 @@ const cellProps = extend({}, cellSharedProps, routeProps);
|
|
|
3280
3281
|
var stdin_default$1M = vue.defineComponent({
|
|
3281
3282
|
name: name$1D,
|
|
3282
3283
|
props: cellProps,
|
|
3283
|
-
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
3284
|
+
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "long-press", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
3284
3285
|
setup(props2, {
|
|
3285
3286
|
slots,
|
|
3286
3287
|
emit
|
|
3287
3288
|
}) {
|
|
3288
3289
|
var _a, _b;
|
|
3290
|
+
let longPressTimer;
|
|
3289
3291
|
const config = vue.inject(CONFIG_PROVIDER_KEY, null);
|
|
3292
|
+
const clearLongPress = () => {
|
|
3293
|
+
if (longPressTimer !== void 0) {
|
|
3294
|
+
clearTimeout(longPressTimer);
|
|
3295
|
+
longPressTimer = void 0;
|
|
3296
|
+
}
|
|
3297
|
+
};
|
|
3298
|
+
const startLongPress = (target, text) => {
|
|
3299
|
+
if (!props2.threeLine || !props2.threeLineEllipsis || !isDef(text))
|
|
3300
|
+
return;
|
|
3301
|
+
clearLongPress();
|
|
3302
|
+
longPressTimer = setTimeout(() => {
|
|
3303
|
+
longPressTimer = void 0;
|
|
3304
|
+
const payload = {
|
|
3305
|
+
target,
|
|
3306
|
+
text: String(text)
|
|
3307
|
+
};
|
|
3308
|
+
emit("long-press", payload);
|
|
3309
|
+
}, 500);
|
|
3310
|
+
};
|
|
3311
|
+
const longPressEvents = (target, text) => ({
|
|
3312
|
+
onPointerdown: () => startLongPress(target, text),
|
|
3313
|
+
onPointerup: clearLongPress,
|
|
3314
|
+
onPointercancel: clearLongPress,
|
|
3315
|
+
onPointerleave: clearLongPress
|
|
3316
|
+
});
|
|
3290
3317
|
const route2 = useRoute();
|
|
3291
3318
|
const vm = vue.getCurrentInstance().proxy;
|
|
3292
3319
|
const leftSelectState = vue.ref((_a = props2.leftSelect) != null ? _a : false);
|
|
@@ -3333,7 +3360,7 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3333
3360
|
const showLabel = slots.label || isDef(props2.label);
|
|
3334
3361
|
const showLabelIcon = (_a2 = props2.showLabelIcon) != null ? _a2 : !!(slots["label-icon"] || props2.labelIcon);
|
|
3335
3362
|
if (showLabel) {
|
|
3336
|
-
return vue.createVNode("div", {
|
|
3363
|
+
return vue.createVNode("div", vue.mergeProps({
|
|
3337
3364
|
"class": [bem$1z("label", {
|
|
3338
3365
|
clickable: props2.labelClickable
|
|
3339
3366
|
}), props2.labelClass],
|
|
@@ -3348,19 +3375,21 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3348
3375
|
event.stopPropagation();
|
|
3349
3376
|
emit("click-label", event);
|
|
3350
3377
|
}
|
|
3351
|
-
}, [showLabelIcon && slots["label-icon"] ? vue.createVNode("span", {
|
|
3378
|
+
}, longPressEvents("label", props2.label)), [showLabelIcon && slots["label-icon"] ? vue.createVNode("span", {
|
|
3352
3379
|
"class": bem$1z("label-icon")
|
|
3353
3380
|
}, [slots["label-icon"]()]) : showLabelIcon ? vue.createVNode(Icon, {
|
|
3354
3381
|
"name": props2.labelIcon || "location-o",
|
|
3355
3382
|
"class": bem$1z("label-icon"),
|
|
3356
3383
|
"classPrefix": props2.iconPrefix
|
|
3357
|
-
}, null) : null, vue.createVNode("span",
|
|
3384
|
+
}, null) : null, vue.createVNode("span", {
|
|
3385
|
+
"class": bem$1z("label-content")
|
|
3386
|
+
}, [slots.label ? slots.label() : props2.label])]);
|
|
3358
3387
|
}
|
|
3359
3388
|
};
|
|
3360
3389
|
const renderDescription = () => {
|
|
3361
3390
|
const showDescription = slots.description || isDef(props2.description);
|
|
3362
3391
|
if (showDescription) {
|
|
3363
|
-
return vue.createVNode("div", {
|
|
3392
|
+
return vue.createVNode("div", vue.mergeProps({
|
|
3364
3393
|
"class": bem$1z("description", {
|
|
3365
3394
|
clickable: props2.descriptionClickable
|
|
3366
3395
|
}),
|
|
@@ -3372,7 +3401,7 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3372
3401
|
event.stopPropagation();
|
|
3373
3402
|
emit("click-description", event);
|
|
3374
3403
|
}
|
|
3375
|
-
}, [slots.description ? slots.description() : props2.description]);
|
|
3404
|
+
}, longPressEvents("description", props2.description)), [slots.description ? slots.description() : props2.description]);
|
|
3376
3405
|
}
|
|
3377
3406
|
};
|
|
3378
3407
|
const renderMultiLineNotes = () => {
|
|
@@ -3417,7 +3446,9 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3417
3446
|
"class": bem$1z("title-collapse-icon", {
|
|
3418
3447
|
collapsed: multiLineNotesCollapsed.value
|
|
3419
3448
|
})
|
|
3420
|
-
}, null)]),
|
|
3449
|
+
}, null)]), vue.createVNode("span", vue.mergeProps({
|
|
3450
|
+
"class": bem$1z("title-content")
|
|
3451
|
+
}, longPressEvents("title", props2.title)), [slots.title ? slots.title() : props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
|
|
3421
3452
|
}
|
|
3422
3453
|
};
|
|
3423
3454
|
const renderValue = () => {
|
|
@@ -3429,7 +3460,7 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3429
3460
|
"class": [bem$1z("value", {
|
|
3430
3461
|
alone: !hasTitle
|
|
3431
3462
|
}), props2.valueClass]
|
|
3432
|
-
}, [slot ? slot() : vue.createVNode("span",
|
|
3463
|
+
}, [slot ? slot() : vue.createVNode("span", longPressEvents("value", props2.value), [props2.value])]);
|
|
3433
3464
|
}
|
|
3434
3465
|
};
|
|
3435
3466
|
const renderLeftIcon = () => {
|
|
@@ -3702,6 +3733,7 @@ var stdin_default$1M = vue.defineComponent({
|
|
|
3702
3733
|
clickable,
|
|
3703
3734
|
borderless: !border,
|
|
3704
3735
|
"three-line": threeLine,
|
|
3736
|
+
"three-line-ellipsis": threeLine && props2.threeLineEllipsis,
|
|
3705
3737
|
"multi-line-notes": hasMultiLineNotes
|
|
3706
3738
|
};
|
|
3707
3739
|
if (cellSize) {
|
|
@@ -19136,6 +19168,7 @@ const treeSelectPanelProps = {
|
|
|
19136
19168
|
showSelectLevels: Array,
|
|
19137
19169
|
searchable: truthProp,
|
|
19138
19170
|
searchPlaceholder: String,
|
|
19171
|
+
showSearchParentPath: truthProp,
|
|
19139
19172
|
lazy: Boolean,
|
|
19140
19173
|
loading: Boolean,
|
|
19141
19174
|
finished: Boolean,
|
|
@@ -19148,11 +19181,15 @@ const treeSelectPanelProps = {
|
|
|
19148
19181
|
clearSelectedText: makeStringProp("清空已选"),
|
|
19149
19182
|
confirmText: makeStringProp("确定")
|
|
19150
19183
|
};
|
|
19151
|
-
const findMatchingLeaves = (items, keyword) => items.flatMap((item) => {
|
|
19184
|
+
const findMatchingLeaves = (items, keyword, parentPath = []) => items.flatMap((item) => {
|
|
19152
19185
|
var _a;
|
|
19153
|
-
if ((_a = item.children) == null ? void 0 : _a.length)
|
|
19154
|
-
return findMatchingLeaves(item.children, keyword);
|
|
19155
|
-
|
|
19186
|
+
if ((_a = item.children) == null ? void 0 : _a.length) {
|
|
19187
|
+
return findMatchingLeaves(item.children, keyword, [...parentPath, item.text]);
|
|
19188
|
+
}
|
|
19189
|
+
return item.text.toLocaleLowerCase().includes(keyword) ? [{
|
|
19190
|
+
item,
|
|
19191
|
+
parentPath
|
|
19192
|
+
}] : [];
|
|
19156
19193
|
});
|
|
19157
19194
|
const flattenItems = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems(item.children) : []]);
|
|
19158
19195
|
var stdin_default$9 = vue.defineComponent({
|
|
@@ -19165,7 +19202,10 @@ var stdin_default$9 = vue.defineComponent({
|
|
|
19165
19202
|
const keyword = vue.ref("");
|
|
19166
19203
|
const expandedSelected = vue.ref(false);
|
|
19167
19204
|
const normalizedKeyword = vue.computed(() => keyword.value.trim().toLocaleLowerCase());
|
|
19168
|
-
const
|
|
19205
|
+
const searchResults = vue.computed(() => normalizedKeyword.value ? findMatchingLeaves(props2.items, normalizedKeyword.value) : []);
|
|
19206
|
+
const filteredItems = vue.computed(() => normalizedKeyword.value ? searchResults.value.map(({
|
|
19207
|
+
item
|
|
19208
|
+
}) => item) : props2.items);
|
|
19169
19209
|
const selectedItems = vue.computed(() => flattenItems(props2.items).filter((item) => props2.modelValue.includes(item.id)));
|
|
19170
19210
|
const close = () => emit("update:show", false);
|
|
19171
19211
|
const updateSelected = (value) => {
|
|
@@ -19220,7 +19260,17 @@ var stdin_default$9 = vue.defineComponent({
|
|
|
19220
19260
|
title: ({
|
|
19221
19261
|
item,
|
|
19222
19262
|
hasChildren
|
|
19223
|
-
}) =>
|
|
19263
|
+
}) => {
|
|
19264
|
+
if (hasChildren || !normalizedKeyword.value)
|
|
19265
|
+
return item.text;
|
|
19266
|
+
const result = searchResults.value.find((result2) => result2.item.id === item.id);
|
|
19267
|
+
if (!result || !props2.showSearchParentPath || !result.parentPath.length) {
|
|
19268
|
+
return renderHighlightedTitle(item.text);
|
|
19269
|
+
}
|
|
19270
|
+
return vue.createVNode(vue.Fragment, null, [result.parentPath.join("/"), vue.createVNode("span", {
|
|
19271
|
+
"class": bem$4("path-separator")
|
|
19272
|
+
}, [vue.createTextVNode("/")]), renderHighlightedTitle(item.text)]);
|
|
19273
|
+
}
|
|
19224
19274
|
})]);
|
|
19225
19275
|
};
|
|
19226
19276
|
return () => vue.createVNode(ActionSheet, {
|
|
@@ -21790,7 +21840,7 @@ const Lazyload = {
|
|
|
21790
21840
|
});
|
|
21791
21841
|
}
|
|
21792
21842
|
};
|
|
21793
|
-
const version = "0.0.
|
|
21843
|
+
const version = "0.0.47";
|
|
21794
21844
|
function install(app) {
|
|
21795
21845
|
const components = [
|
|
21796
21846
|
ActionBar,
|
package/lib/vant.es.js
CHANGED
|
@@ -3176,6 +3176,7 @@ const cellSharedProps = {
|
|
|
3176
3176
|
showTitleCollapseIcon: Boolean,
|
|
3177
3177
|
defaultMultiLineNotesCollapsed: Boolean,
|
|
3178
3178
|
threeLine: Boolean,
|
|
3179
|
+
threeLineEllipsis: Boolean,
|
|
3179
3180
|
labelSize: numericProp,
|
|
3180
3181
|
avatar: String,
|
|
3181
3182
|
showAvatar: {
|
|
@@ -3278,13 +3279,39 @@ const cellProps = extend({}, cellSharedProps, routeProps);
|
|
|
3278
3279
|
var stdin_default$1M = defineComponent({
|
|
3279
3280
|
name: name$1D,
|
|
3280
3281
|
props: cellProps,
|
|
3281
|
-
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
3282
|
+
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "long-press", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
3282
3283
|
setup(props2, {
|
|
3283
3284
|
slots,
|
|
3284
3285
|
emit
|
|
3285
3286
|
}) {
|
|
3286
3287
|
var _a, _b;
|
|
3288
|
+
let longPressTimer;
|
|
3287
3289
|
const config = inject(CONFIG_PROVIDER_KEY, null);
|
|
3290
|
+
const clearLongPress = () => {
|
|
3291
|
+
if (longPressTimer !== void 0) {
|
|
3292
|
+
clearTimeout(longPressTimer);
|
|
3293
|
+
longPressTimer = void 0;
|
|
3294
|
+
}
|
|
3295
|
+
};
|
|
3296
|
+
const startLongPress = (target, text) => {
|
|
3297
|
+
if (!props2.threeLine || !props2.threeLineEllipsis || !isDef(text))
|
|
3298
|
+
return;
|
|
3299
|
+
clearLongPress();
|
|
3300
|
+
longPressTimer = setTimeout(() => {
|
|
3301
|
+
longPressTimer = void 0;
|
|
3302
|
+
const payload = {
|
|
3303
|
+
target,
|
|
3304
|
+
text: String(text)
|
|
3305
|
+
};
|
|
3306
|
+
emit("long-press", payload);
|
|
3307
|
+
}, 500);
|
|
3308
|
+
};
|
|
3309
|
+
const longPressEvents = (target, text) => ({
|
|
3310
|
+
onPointerdown: () => startLongPress(target, text),
|
|
3311
|
+
onPointerup: clearLongPress,
|
|
3312
|
+
onPointercancel: clearLongPress,
|
|
3313
|
+
onPointerleave: clearLongPress
|
|
3314
|
+
});
|
|
3288
3315
|
const route2 = useRoute();
|
|
3289
3316
|
const vm = getCurrentInstance().proxy;
|
|
3290
3317
|
const leftSelectState = ref((_a = props2.leftSelect) != null ? _a : false);
|
|
@@ -3331,7 +3358,7 @@ var stdin_default$1M = defineComponent({
|
|
|
3331
3358
|
const showLabel = slots.label || isDef(props2.label);
|
|
3332
3359
|
const showLabelIcon = (_a2 = props2.showLabelIcon) != null ? _a2 : !!(slots["label-icon"] || props2.labelIcon);
|
|
3333
3360
|
if (showLabel) {
|
|
3334
|
-
return createVNode("div", {
|
|
3361
|
+
return createVNode("div", mergeProps({
|
|
3335
3362
|
"class": [bem$1z("label", {
|
|
3336
3363
|
clickable: props2.labelClickable
|
|
3337
3364
|
}), props2.labelClass],
|
|
@@ -3346,19 +3373,21 @@ var stdin_default$1M = defineComponent({
|
|
|
3346
3373
|
event.stopPropagation();
|
|
3347
3374
|
emit("click-label", event);
|
|
3348
3375
|
}
|
|
3349
|
-
}, [showLabelIcon && slots["label-icon"] ? createVNode("span", {
|
|
3376
|
+
}, longPressEvents("label", props2.label)), [showLabelIcon && slots["label-icon"] ? createVNode("span", {
|
|
3350
3377
|
"class": bem$1z("label-icon")
|
|
3351
3378
|
}, [slots["label-icon"]()]) : showLabelIcon ? createVNode(Icon, {
|
|
3352
3379
|
"name": props2.labelIcon || "location-o",
|
|
3353
3380
|
"class": bem$1z("label-icon"),
|
|
3354
3381
|
"classPrefix": props2.iconPrefix
|
|
3355
|
-
}, null) : null, createVNode("span",
|
|
3382
|
+
}, null) : null, createVNode("span", {
|
|
3383
|
+
"class": bem$1z("label-content")
|
|
3384
|
+
}, [slots.label ? slots.label() : props2.label])]);
|
|
3356
3385
|
}
|
|
3357
3386
|
};
|
|
3358
3387
|
const renderDescription = () => {
|
|
3359
3388
|
const showDescription = slots.description || isDef(props2.description);
|
|
3360
3389
|
if (showDescription) {
|
|
3361
|
-
return createVNode("div", {
|
|
3390
|
+
return createVNode("div", mergeProps({
|
|
3362
3391
|
"class": bem$1z("description", {
|
|
3363
3392
|
clickable: props2.descriptionClickable
|
|
3364
3393
|
}),
|
|
@@ -3370,7 +3399,7 @@ var stdin_default$1M = defineComponent({
|
|
|
3370
3399
|
event.stopPropagation();
|
|
3371
3400
|
emit("click-description", event);
|
|
3372
3401
|
}
|
|
3373
|
-
}, [slots.description ? slots.description() : props2.description]);
|
|
3402
|
+
}, longPressEvents("description", props2.description)), [slots.description ? slots.description() : props2.description]);
|
|
3374
3403
|
}
|
|
3375
3404
|
};
|
|
3376
3405
|
const renderMultiLineNotes = () => {
|
|
@@ -3415,7 +3444,9 @@ var stdin_default$1M = defineComponent({
|
|
|
3415
3444
|
"class": bem$1z("title-collapse-icon", {
|
|
3416
3445
|
collapsed: multiLineNotesCollapsed.value
|
|
3417
3446
|
})
|
|
3418
|
-
}, null)]),
|
|
3447
|
+
}, null)]), createVNode("span", mergeProps({
|
|
3448
|
+
"class": bem$1z("title-content")
|
|
3449
|
+
}, longPressEvents("title", props2.title)), [slots.title ? slots.title() : props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
|
|
3419
3450
|
}
|
|
3420
3451
|
};
|
|
3421
3452
|
const renderValue = () => {
|
|
@@ -3427,7 +3458,7 @@ var stdin_default$1M = defineComponent({
|
|
|
3427
3458
|
"class": [bem$1z("value", {
|
|
3428
3459
|
alone: !hasTitle
|
|
3429
3460
|
}), props2.valueClass]
|
|
3430
|
-
}, [slot ? slot() : createVNode("span",
|
|
3461
|
+
}, [slot ? slot() : createVNode("span", longPressEvents("value", props2.value), [props2.value])]);
|
|
3431
3462
|
}
|
|
3432
3463
|
};
|
|
3433
3464
|
const renderLeftIcon = () => {
|
|
@@ -3700,6 +3731,7 @@ var stdin_default$1M = defineComponent({
|
|
|
3700
3731
|
clickable,
|
|
3701
3732
|
borderless: !border,
|
|
3702
3733
|
"three-line": threeLine,
|
|
3734
|
+
"three-line-ellipsis": threeLine && props2.threeLineEllipsis,
|
|
3703
3735
|
"multi-line-notes": hasMultiLineNotes
|
|
3704
3736
|
};
|
|
3705
3737
|
if (cellSize) {
|
|
@@ -19134,6 +19166,7 @@ const treeSelectPanelProps = {
|
|
|
19134
19166
|
showSelectLevels: Array,
|
|
19135
19167
|
searchable: truthProp,
|
|
19136
19168
|
searchPlaceholder: String,
|
|
19169
|
+
showSearchParentPath: truthProp,
|
|
19137
19170
|
lazy: Boolean,
|
|
19138
19171
|
loading: Boolean,
|
|
19139
19172
|
finished: Boolean,
|
|
@@ -19146,11 +19179,15 @@ const treeSelectPanelProps = {
|
|
|
19146
19179
|
clearSelectedText: makeStringProp("清空已选"),
|
|
19147
19180
|
confirmText: makeStringProp("确定")
|
|
19148
19181
|
};
|
|
19149
|
-
const findMatchingLeaves = (items, keyword) => items.flatMap((item) => {
|
|
19182
|
+
const findMatchingLeaves = (items, keyword, parentPath = []) => items.flatMap((item) => {
|
|
19150
19183
|
var _a;
|
|
19151
|
-
if ((_a = item.children) == null ? void 0 : _a.length)
|
|
19152
|
-
return findMatchingLeaves(item.children, keyword);
|
|
19153
|
-
|
|
19184
|
+
if ((_a = item.children) == null ? void 0 : _a.length) {
|
|
19185
|
+
return findMatchingLeaves(item.children, keyword, [...parentPath, item.text]);
|
|
19186
|
+
}
|
|
19187
|
+
return item.text.toLocaleLowerCase().includes(keyword) ? [{
|
|
19188
|
+
item,
|
|
19189
|
+
parentPath
|
|
19190
|
+
}] : [];
|
|
19154
19191
|
});
|
|
19155
19192
|
const flattenItems = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems(item.children) : []]);
|
|
19156
19193
|
var stdin_default$9 = defineComponent({
|
|
@@ -19163,7 +19200,10 @@ var stdin_default$9 = defineComponent({
|
|
|
19163
19200
|
const keyword = ref("");
|
|
19164
19201
|
const expandedSelected = ref(false);
|
|
19165
19202
|
const normalizedKeyword = computed(() => keyword.value.trim().toLocaleLowerCase());
|
|
19166
|
-
const
|
|
19203
|
+
const searchResults = computed(() => normalizedKeyword.value ? findMatchingLeaves(props2.items, normalizedKeyword.value) : []);
|
|
19204
|
+
const filteredItems = computed(() => normalizedKeyword.value ? searchResults.value.map(({
|
|
19205
|
+
item
|
|
19206
|
+
}) => item) : props2.items);
|
|
19167
19207
|
const selectedItems = computed(() => flattenItems(props2.items).filter((item) => props2.modelValue.includes(item.id)));
|
|
19168
19208
|
const close = () => emit("update:show", false);
|
|
19169
19209
|
const updateSelected = (value) => {
|
|
@@ -19218,7 +19258,17 @@ var stdin_default$9 = defineComponent({
|
|
|
19218
19258
|
title: ({
|
|
19219
19259
|
item,
|
|
19220
19260
|
hasChildren
|
|
19221
|
-
}) =>
|
|
19261
|
+
}) => {
|
|
19262
|
+
if (hasChildren || !normalizedKeyword.value)
|
|
19263
|
+
return item.text;
|
|
19264
|
+
const result = searchResults.value.find((result2) => result2.item.id === item.id);
|
|
19265
|
+
if (!result || !props2.showSearchParentPath || !result.parentPath.length) {
|
|
19266
|
+
return renderHighlightedTitle(item.text);
|
|
19267
|
+
}
|
|
19268
|
+
return createVNode(Fragment, null, [result.parentPath.join("/"), createVNode("span", {
|
|
19269
|
+
"class": bem$4("path-separator")
|
|
19270
|
+
}, [createTextVNode("/")]), renderHighlightedTitle(item.text)]);
|
|
19271
|
+
}
|
|
19222
19272
|
})]);
|
|
19223
19273
|
};
|
|
19224
19274
|
return () => createVNode(ActionSheet, {
|
|
@@ -21788,7 +21838,7 @@ const Lazyload = {
|
|
|
21788
21838
|
});
|
|
21789
21839
|
}
|
|
21790
21840
|
};
|
|
21791
|
-
const version = "0.0.
|
|
21841
|
+
const version = "0.0.47";
|
|
21792
21842
|
function install(app) {
|
|
21793
21843
|
const components = [
|
|
21794
21844
|
ActionBar,
|