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/vant.js
CHANGED
|
@@ -4419,6 +4419,7 @@
|
|
|
4419
4419
|
showTitleCollapseIcon: Boolean,
|
|
4420
4420
|
defaultMultiLineNotesCollapsed: Boolean,
|
|
4421
4421
|
threeLine: Boolean,
|
|
4422
|
+
threeLineEllipsis: Boolean,
|
|
4422
4423
|
labelSize: numericProp,
|
|
4423
4424
|
avatar: String,
|
|
4424
4425
|
showAvatar: {
|
|
@@ -4521,13 +4522,39 @@
|
|
|
4521
4522
|
var stdin_default$1M = vue.defineComponent({
|
|
4522
4523
|
name: name$1D,
|
|
4523
4524
|
props: cellProps,
|
|
4524
|
-
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
4525
|
+
emits: ["click", "click-label", "click-description", "click-note", "click-title-icon", "long-press", "update:leftSelect", "update:rightSelect", "update:multiLineNotesCollapsed"],
|
|
4525
4526
|
setup(props2, {
|
|
4526
4527
|
slots,
|
|
4527
4528
|
emit
|
|
4528
4529
|
}) {
|
|
4529
4530
|
var _a, _b;
|
|
4531
|
+
let longPressTimer;
|
|
4530
4532
|
const config = vue.inject(CONFIG_PROVIDER_KEY, null);
|
|
4533
|
+
const clearLongPress = () => {
|
|
4534
|
+
if (longPressTimer !== void 0) {
|
|
4535
|
+
clearTimeout(longPressTimer);
|
|
4536
|
+
longPressTimer = void 0;
|
|
4537
|
+
}
|
|
4538
|
+
};
|
|
4539
|
+
const startLongPress = (target, text) => {
|
|
4540
|
+
if (!props2.threeLine || !props2.threeLineEllipsis || !isDef(text))
|
|
4541
|
+
return;
|
|
4542
|
+
clearLongPress();
|
|
4543
|
+
longPressTimer = setTimeout(() => {
|
|
4544
|
+
longPressTimer = void 0;
|
|
4545
|
+
const payload = {
|
|
4546
|
+
target,
|
|
4547
|
+
text: String(text)
|
|
4548
|
+
};
|
|
4549
|
+
emit("long-press", payload);
|
|
4550
|
+
}, 500);
|
|
4551
|
+
};
|
|
4552
|
+
const longPressEvents = (target, text) => ({
|
|
4553
|
+
onPointerdown: () => startLongPress(target, text),
|
|
4554
|
+
onPointerup: clearLongPress,
|
|
4555
|
+
onPointercancel: clearLongPress,
|
|
4556
|
+
onPointerleave: clearLongPress
|
|
4557
|
+
});
|
|
4531
4558
|
const route2 = useRoute();
|
|
4532
4559
|
const vm = vue.getCurrentInstance().proxy;
|
|
4533
4560
|
const leftSelectState = vue.ref((_a = props2.leftSelect) != null ? _a : false);
|
|
@@ -4574,7 +4601,7 @@
|
|
|
4574
4601
|
const showLabel = slots.label || isDef(props2.label);
|
|
4575
4602
|
const showLabelIcon = (_a2 = props2.showLabelIcon) != null ? _a2 : !!(slots["label-icon"] || props2.labelIcon);
|
|
4576
4603
|
if (showLabel) {
|
|
4577
|
-
return vue.createVNode("div", {
|
|
4604
|
+
return vue.createVNode("div", vue.mergeProps({
|
|
4578
4605
|
"class": [bem$1z("label", {
|
|
4579
4606
|
clickable: props2.labelClickable
|
|
4580
4607
|
}), props2.labelClass],
|
|
@@ -4589,19 +4616,21 @@
|
|
|
4589
4616
|
event.stopPropagation();
|
|
4590
4617
|
emit("click-label", event);
|
|
4591
4618
|
}
|
|
4592
|
-
}, [showLabelIcon && slots["label-icon"] ? vue.createVNode("span", {
|
|
4619
|
+
}, longPressEvents("label", props2.label)), [showLabelIcon && slots["label-icon"] ? vue.createVNode("span", {
|
|
4593
4620
|
"class": bem$1z("label-icon")
|
|
4594
4621
|
}, [slots["label-icon"]()]) : showLabelIcon ? vue.createVNode(Icon, {
|
|
4595
4622
|
"name": props2.labelIcon || "location-o",
|
|
4596
4623
|
"class": bem$1z("label-icon"),
|
|
4597
4624
|
"classPrefix": props2.iconPrefix
|
|
4598
|
-
}, null) : null, vue.createVNode("span",
|
|
4625
|
+
}, null) : null, vue.createVNode("span", {
|
|
4626
|
+
"class": bem$1z("label-content")
|
|
4627
|
+
}, [slots.label ? slots.label() : props2.label])]);
|
|
4599
4628
|
}
|
|
4600
4629
|
};
|
|
4601
4630
|
const renderDescription = () => {
|
|
4602
4631
|
const showDescription = slots.description || isDef(props2.description);
|
|
4603
4632
|
if (showDescription) {
|
|
4604
|
-
return vue.createVNode("div", {
|
|
4633
|
+
return vue.createVNode("div", vue.mergeProps({
|
|
4605
4634
|
"class": bem$1z("description", {
|
|
4606
4635
|
clickable: props2.descriptionClickable
|
|
4607
4636
|
}),
|
|
@@ -4613,7 +4642,7 @@
|
|
|
4613
4642
|
event.stopPropagation();
|
|
4614
4643
|
emit("click-description", event);
|
|
4615
4644
|
}
|
|
4616
|
-
}, [slots.description ? slots.description() : props2.description]);
|
|
4645
|
+
}, longPressEvents("description", props2.description)), [slots.description ? slots.description() : props2.description]);
|
|
4617
4646
|
}
|
|
4618
4647
|
};
|
|
4619
4648
|
const renderMultiLineNotes = () => {
|
|
@@ -4658,7 +4687,9 @@
|
|
|
4658
4687
|
"class": bem$1z("title-collapse-icon", {
|
|
4659
4688
|
collapsed: multiLineNotesCollapsed.value
|
|
4660
4689
|
})
|
|
4661
|
-
}, null)]),
|
|
4690
|
+
}, null)]), vue.createVNode("span", vue.mergeProps({
|
|
4691
|
+
"class": bem$1z("title-content")
|
|
4692
|
+
}, longPressEvents("title", props2.title)), [slots.title ? slots.title() : props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
|
|
4662
4693
|
}
|
|
4663
4694
|
};
|
|
4664
4695
|
const renderValue = () => {
|
|
@@ -4670,7 +4701,7 @@
|
|
|
4670
4701
|
"class": [bem$1z("value", {
|
|
4671
4702
|
alone: !hasTitle
|
|
4672
4703
|
}), props2.valueClass]
|
|
4673
|
-
}, [slot ? slot() : vue.createVNode("span",
|
|
4704
|
+
}, [slot ? slot() : vue.createVNode("span", longPressEvents("value", props2.value), [props2.value])]);
|
|
4674
4705
|
}
|
|
4675
4706
|
};
|
|
4676
4707
|
const renderLeftIcon = () => {
|
|
@@ -4943,6 +4974,7 @@
|
|
|
4943
4974
|
clickable,
|
|
4944
4975
|
borderless: !border,
|
|
4945
4976
|
"three-line": threeLine,
|
|
4977
|
+
"three-line-ellipsis": threeLine && props2.threeLineEllipsis,
|
|
4946
4978
|
"multi-line-notes": hasMultiLineNotes
|
|
4947
4979
|
};
|
|
4948
4980
|
if (cellSize) {
|
|
@@ -20323,6 +20355,7 @@
|
|
|
20323
20355
|
showSelectLevels: Array,
|
|
20324
20356
|
searchable: truthProp,
|
|
20325
20357
|
searchPlaceholder: String,
|
|
20358
|
+
showSearchParentPath: truthProp,
|
|
20326
20359
|
lazy: Boolean,
|
|
20327
20360
|
loading: Boolean,
|
|
20328
20361
|
finished: Boolean,
|
|
@@ -20335,11 +20368,15 @@
|
|
|
20335
20368
|
clearSelectedText: makeStringProp("清空已选"),
|
|
20336
20369
|
confirmText: makeStringProp("确定")
|
|
20337
20370
|
};
|
|
20338
|
-
const findMatchingLeaves = (items, keyword) => items.flatMap((item) => {
|
|
20371
|
+
const findMatchingLeaves = (items, keyword, parentPath = []) => items.flatMap((item) => {
|
|
20339
20372
|
var _a;
|
|
20340
|
-
if ((_a = item.children) == null ? void 0 : _a.length)
|
|
20341
|
-
return findMatchingLeaves(item.children, keyword);
|
|
20342
|
-
|
|
20373
|
+
if ((_a = item.children) == null ? void 0 : _a.length) {
|
|
20374
|
+
return findMatchingLeaves(item.children, keyword, [...parentPath, item.text]);
|
|
20375
|
+
}
|
|
20376
|
+
return item.text.toLocaleLowerCase().includes(keyword) ? [{
|
|
20377
|
+
item,
|
|
20378
|
+
parentPath
|
|
20379
|
+
}] : [];
|
|
20343
20380
|
});
|
|
20344
20381
|
const flattenItems = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems(item.children) : []]);
|
|
20345
20382
|
var stdin_default$9 = vue.defineComponent({
|
|
@@ -20352,7 +20389,10 @@
|
|
|
20352
20389
|
const keyword = vue.ref("");
|
|
20353
20390
|
const expandedSelected = vue.ref(false);
|
|
20354
20391
|
const normalizedKeyword = vue.computed(() => keyword.value.trim().toLocaleLowerCase());
|
|
20355
|
-
const
|
|
20392
|
+
const searchResults = vue.computed(() => normalizedKeyword.value ? findMatchingLeaves(props2.items, normalizedKeyword.value) : []);
|
|
20393
|
+
const filteredItems = vue.computed(() => normalizedKeyword.value ? searchResults.value.map(({
|
|
20394
|
+
item
|
|
20395
|
+
}) => item) : props2.items);
|
|
20356
20396
|
const selectedItems = vue.computed(() => flattenItems(props2.items).filter((item) => props2.modelValue.includes(item.id)));
|
|
20357
20397
|
const close = () => emit("update:show", false);
|
|
20358
20398
|
const updateSelected = (value) => {
|
|
@@ -20407,7 +20447,17 @@
|
|
|
20407
20447
|
title: ({
|
|
20408
20448
|
item,
|
|
20409
20449
|
hasChildren
|
|
20410
|
-
}) =>
|
|
20450
|
+
}) => {
|
|
20451
|
+
if (hasChildren || !normalizedKeyword.value)
|
|
20452
|
+
return item.text;
|
|
20453
|
+
const result = searchResults.value.find((result2) => result2.item.id === item.id);
|
|
20454
|
+
if (!result || !props2.showSearchParentPath || !result.parentPath.length) {
|
|
20455
|
+
return renderHighlightedTitle(item.text);
|
|
20456
|
+
}
|
|
20457
|
+
return vue.createVNode(vue.Fragment, null, [result.parentPath.join("/"), vue.createVNode("span", {
|
|
20458
|
+
"class": bem$4("path-separator")
|
|
20459
|
+
}, [vue.createTextVNode("/")]), renderHighlightedTitle(item.text)]);
|
|
20460
|
+
}
|
|
20411
20461
|
})]);
|
|
20412
20462
|
};
|
|
20413
20463
|
return () => vue.createVNode(ActionSheet, {
|
|
@@ -25377,7 +25427,7 @@
|
|
|
25377
25427
|
});
|
|
25378
25428
|
}
|
|
25379
25429
|
};
|
|
25380
|
-
const version = "0.0.
|
|
25430
|
+
const version = "0.0.47";
|
|
25381
25431
|
function install(app) {
|
|
25382
25432
|
const components = [
|
|
25383
25433
|
ActionBar,
|