persagy-vant 0.0.45 → 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/blue-mark/BlueMarkHeader.d.ts +3 -12
- package/es/blue-mark/BlueMarkHeader.mjs +2 -2
- package/es/blue-mark/index.d.ts +2 -8
- 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 +34 -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/object-select/ObjectSelect.mjs +2 -1
- 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/es/video-preview/VideoPreview.mjs +30 -15
- package/es/video-preview/index.css +1 -1
- package/es/video-preview/index.less +21 -0
- package/lib/blue-mark/BlueMarkHeader.d.ts +3 -12
- package/lib/blue-mark/BlueMarkHeader.js +1 -1
- package/lib/blue-mark/index.d.ts +2 -8
- 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 +34 -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/object-select/ObjectSelect.js +2 -1
- 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 +98 -32
- package/lib/vant.es.js +98 -32
- package/lib/vant.js +98 -32
- package/lib/vant.min.js +1 -1
- package/lib/video-preview/VideoPreview.js +30 -15
- package/lib/video-preview/index.css +1 -1
- package/lib/video-preview/index.less +21 -0
- package/lib/web-types.json +1 -1
- package/package.json +1 -1
- package/skills/use-persagy-vant/SKILL.md +6 -0
- package/skills/use-persagy-vant/references/business-component-catalog.md +3 -0
- package/skills/use-persagy-vant/references/component-catalog.md +4 -3
- package/skills/use-persagy-vant/references/component-variant-selection.md +9 -4
- package/skills/use-persagy-vant/references/design-interaction-baseline.md +1 -1
- package/skills/use-persagy-vant/references/dynamic-panel-policy.md +46 -0
- package/skills/use-persagy-vant/references/element-component-matching.md +3 -1
- package/skills/use-persagy-vant/references/page-recipes.md +3 -3
- package/skills/use-persagy-vant/references/reuse-policy.md +5 -1
- package/skills/use-persagy-vant/references/usage-patterns.md +2 -2
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;
|
|
@@ -683,7 +683,8 @@ var stdin_default = (0, import_vue.defineComponent)({
|
|
|
683
683
|
"showAction": true
|
|
684
684
|
}, null) : (0, import_vue.createVNode)(import_vue.Fragment, null, [(0, import_vue.createVNode)(import_nav_bar.NavBar, {
|
|
685
685
|
"title": props.title,
|
|
686
|
-
"class": bem("nav")
|
|
686
|
+
"class": bem("nav"),
|
|
687
|
+
"border": false
|
|
687
688
|
}, {
|
|
688
689
|
left: () => (0, import_vue.createVNode)(import_icon.Icon, {
|
|
689
690
|
"name": "cross",
|
|
@@ -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) {
|
|
@@ -5551,7 +5583,7 @@ const blueMarkHeaderProps = {
|
|
|
5551
5583
|
required: Boolean,
|
|
5552
5584
|
actionText: String,
|
|
5553
5585
|
expandable: Boolean,
|
|
5554
|
-
showExpandIcon:
|
|
5586
|
+
showExpandIcon: Boolean,
|
|
5555
5587
|
modelValue: Boolean,
|
|
5556
5588
|
expandText: String,
|
|
5557
5589
|
collapseText: String
|
|
@@ -16705,7 +16737,8 @@ var stdin_default$t = vue.defineComponent({
|
|
|
16705
16737
|
"showAction": true
|
|
16706
16738
|
}, null) : vue.createVNode(vue.Fragment, null, [vue.createVNode(NavBar, {
|
|
16707
16739
|
"title": props2.title,
|
|
16708
|
-
"class": bem$o("nav")
|
|
16740
|
+
"class": bem$o("nav"),
|
|
16741
|
+
"border": false
|
|
16709
16742
|
}, {
|
|
16710
16743
|
left: () => vue.createVNode(Icon, {
|
|
16711
16744
|
"name": "cross",
|
|
@@ -19135,6 +19168,7 @@ const treeSelectPanelProps = {
|
|
|
19135
19168
|
showSelectLevels: Array,
|
|
19136
19169
|
searchable: truthProp,
|
|
19137
19170
|
searchPlaceholder: String,
|
|
19171
|
+
showSearchParentPath: truthProp,
|
|
19138
19172
|
lazy: Boolean,
|
|
19139
19173
|
loading: Boolean,
|
|
19140
19174
|
finished: Boolean,
|
|
@@ -19147,11 +19181,15 @@ const treeSelectPanelProps = {
|
|
|
19147
19181
|
clearSelectedText: makeStringProp("清空已选"),
|
|
19148
19182
|
confirmText: makeStringProp("确定")
|
|
19149
19183
|
};
|
|
19150
|
-
const findMatchingLeaves = (items, keyword) => items.flatMap((item) => {
|
|
19184
|
+
const findMatchingLeaves = (items, keyword, parentPath = []) => items.flatMap((item) => {
|
|
19151
19185
|
var _a;
|
|
19152
|
-
if ((_a = item.children) == null ? void 0 : _a.length)
|
|
19153
|
-
return findMatchingLeaves(item.children, keyword);
|
|
19154
|
-
|
|
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
|
+
}] : [];
|
|
19155
19193
|
});
|
|
19156
19194
|
const flattenItems = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems(item.children) : []]);
|
|
19157
19195
|
var stdin_default$9 = vue.defineComponent({
|
|
@@ -19164,7 +19202,10 @@ var stdin_default$9 = vue.defineComponent({
|
|
|
19164
19202
|
const keyword = vue.ref("");
|
|
19165
19203
|
const expandedSelected = vue.ref(false);
|
|
19166
19204
|
const normalizedKeyword = vue.computed(() => keyword.value.trim().toLocaleLowerCase());
|
|
19167
|
-
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);
|
|
19168
19209
|
const selectedItems = vue.computed(() => flattenItems(props2.items).filter((item) => props2.modelValue.includes(item.id)));
|
|
19169
19210
|
const close = () => emit("update:show", false);
|
|
19170
19211
|
const updateSelected = (value) => {
|
|
@@ -19219,7 +19260,17 @@ var stdin_default$9 = vue.defineComponent({
|
|
|
19219
19260
|
title: ({
|
|
19220
19261
|
item,
|
|
19221
19262
|
hasChildren
|
|
19222
|
-
}) =>
|
|
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
|
+
}
|
|
19223
19274
|
})]);
|
|
19224
19275
|
};
|
|
19225
19276
|
return () => vue.createVNode(ActionSheet, {
|
|
@@ -19949,24 +20000,37 @@ var stdin_default$6 = vue.defineComponent({
|
|
|
19949
20000
|
setup(props2, {
|
|
19950
20001
|
emit
|
|
19951
20002
|
}) {
|
|
19952
|
-
const
|
|
20003
|
+
const playerHost = vue.ref();
|
|
20004
|
+
let video;
|
|
19953
20005
|
const mediaEvents = ["play", "pause", "ended", "timeupdate", "error"];
|
|
19954
20006
|
let player;
|
|
19955
20007
|
const updateShow = (show) => emit("update:show", show);
|
|
19956
20008
|
const close = () => updateShow(false);
|
|
19957
20009
|
const emitMediaEvent = (event) => emit(event.type, event);
|
|
19958
20010
|
const destroyPlayer = () => {
|
|
19959
|
-
|
|
20011
|
+
var _a;
|
|
19960
20012
|
if (video) {
|
|
19961
|
-
mediaEvents.forEach((event) => video.removeEventListener(event, emitMediaEvent));
|
|
20013
|
+
mediaEvents.forEach((event) => video == null ? void 0 : video.removeEventListener(event, emitMediaEvent));
|
|
19962
20014
|
}
|
|
19963
20015
|
player == null ? void 0 : player.destroy();
|
|
19964
20016
|
player = void 0;
|
|
20017
|
+
video = void 0;
|
|
20018
|
+
(_a = playerHost.value) == null ? void 0 : _a.replaceChildren();
|
|
19965
20019
|
};
|
|
19966
20020
|
const createPlayer = () => {
|
|
19967
|
-
const
|
|
19968
|
-
if (!
|
|
20021
|
+
const host = playerHost.value;
|
|
20022
|
+
if (!host || player || !props2.show)
|
|
19969
20023
|
return;
|
|
20024
|
+
video = document.createElement("video");
|
|
20025
|
+
video.className = `${name$2}__video ${name$2}__video--${props2.fit}`;
|
|
20026
|
+
video.src = props2.src;
|
|
20027
|
+
if (props2.poster)
|
|
20028
|
+
video.poster = props2.poster;
|
|
20029
|
+
video.autoplay = props2.autoplay;
|
|
20030
|
+
video.muted = props2.muted;
|
|
20031
|
+
video.loop = props2.loop;
|
|
20032
|
+
video.playsInline = true;
|
|
20033
|
+
host.replaceChildren(video);
|
|
19970
20034
|
player = new Plyr(video, {
|
|
19971
20035
|
controls: props2.controls ? ["play", "progress", "current-time", "mute", "volume", "settings", "fullscreen"] : [],
|
|
19972
20036
|
settings: ["speed"],
|
|
@@ -19980,7 +20044,7 @@ var stdin_default$6 = vue.defineComponent({
|
|
|
19980
20044
|
active: props2.loop
|
|
19981
20045
|
}
|
|
19982
20046
|
});
|
|
19983
|
-
mediaEvents.forEach((event) => video.addEventListener(event, emitMediaEvent));
|
|
20047
|
+
mediaEvents.forEach((event) => video == null ? void 0 : video.addEventListener(event, emitMediaEvent));
|
|
19984
20048
|
};
|
|
19985
20049
|
const play = () => player == null ? void 0 : player.play();
|
|
19986
20050
|
const pause = () => player == null ? void 0 : player.pause();
|
|
@@ -19991,6 +20055,12 @@ var stdin_default$6 = vue.defineComponent({
|
|
|
19991
20055
|
close,
|
|
19992
20056
|
toggleFullscreen
|
|
19993
20057
|
});
|
|
20058
|
+
vue.watch(playerHost, () => {
|
|
20059
|
+
destroyPlayer();
|
|
20060
|
+
createPlayer();
|
|
20061
|
+
}, {
|
|
20062
|
+
flush: "post"
|
|
20063
|
+
});
|
|
19994
20064
|
vue.watch(() => props2.show, (show) => __async(this, null, function* () {
|
|
19995
20065
|
if (show) {
|
|
19996
20066
|
yield vue.nextTick();
|
|
@@ -20024,15 +20094,11 @@ var stdin_default$6 = vue.defineComponent({
|
|
|
20024
20094
|
default: () => [vue.createVNode("div", {
|
|
20025
20095
|
"class": bem$2("backdrop"),
|
|
20026
20096
|
"onClick": close
|
|
20027
|
-
}, null), vue.createVNode("
|
|
20028
|
-
"ref":
|
|
20029
|
-
"
|
|
20030
|
-
|
|
20031
|
-
|
|
20032
|
-
"autoplay": props2.autoplay,
|
|
20033
|
-
"muted": props2.muted,
|
|
20034
|
-
"loop": props2.loop,
|
|
20035
|
-
"playsinline": true
|
|
20097
|
+
}, null), vue.createVNode("div", {
|
|
20098
|
+
"ref": playerHost,
|
|
20099
|
+
"style": {
|
|
20100
|
+
width: "100%"
|
|
20101
|
+
}
|
|
20036
20102
|
}, null)]
|
|
20037
20103
|
});
|
|
20038
20104
|
}
|
|
@@ -21774,7 +21840,7 @@ const Lazyload = {
|
|
|
21774
21840
|
});
|
|
21775
21841
|
}
|
|
21776
21842
|
};
|
|
21777
|
-
const version = "0.0.
|
|
21843
|
+
const version = "0.0.47";
|
|
21778
21844
|
function install(app) {
|
|
21779
21845
|
const components = [
|
|
21780
21846
|
ActionBar,
|