persagy-vant 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/es/blue-mark/BlueMarkHeader.d.ts +13 -0
  2. package/es/blue-mark/BlueMarkHeader.mjs +3 -1
  3. package/es/blue-mark/CollapseToggle.d.ts +13 -0
  4. package/es/blue-mark/CollapseToggle.mjs +5 -1
  5. package/es/blue-mark/index.d.ts +18 -0
  6. package/es/checkbox-panel/CheckboxPanel.d.ts +41 -1
  7. package/es/checkbox-panel/CheckboxPanel.mjs +87 -25
  8. package/es/checkbox-panel/index.css +1 -1
  9. package/es/checkbox-panel/index.d.ts +29 -1
  10. package/es/checkbox-panel/index.less +82 -1
  11. package/es/index.d.ts +2 -1
  12. package/es/index.mjs +4 -1
  13. package/es/locale/lang/en-US.d.ts +3 -0
  14. package/es/locale/lang/en-US.mjs +3 -0
  15. package/es/locale/lang/zh-CN.d.ts +3 -0
  16. package/es/locale/lang/zh-CN.mjs +3 -0
  17. package/es/material-action-bar/MaterialActionBar.mjs +3 -1
  18. package/es/material-action-bar/index.css +1 -1
  19. package/es/material-action-bar/index.less +1 -1
  20. package/es/material-add/index.css +1 -1
  21. package/es/notice-bar/index.css +1 -1
  22. package/es/notice-bar/index.less +13 -0
  23. package/es/tabs/Tabs.mjs +3 -2
  24. package/es/tabs/index.css +1 -1
  25. package/es/tabs/index.less +15 -5
  26. package/es/tabs/var.less +1 -0
  27. package/es/title-bar/TitleBar.d.ts +15 -1
  28. package/es/title-bar/TitleBar.mjs +2 -0
  29. package/es/title-bar/index.css +1 -1
  30. package/es/title-bar/index.d.ts +10 -1
  31. package/es/title-bar/index.less +6 -1
  32. package/es/title-bar/var.less +2 -1
  33. package/es/tree-select/TreeSelect.d.ts +3 -0
  34. package/es/tree-select/TreeSelect.mjs +18 -2
  35. package/es/tree-select/index.d.ts +2 -0
  36. package/es/tree-select-panel/TreeSelectPanel.d.ts +181 -0
  37. package/es/tree-select-panel/TreeSelectPanel.mjs +213 -0
  38. package/es/tree-select-panel/index.css +1 -0
  39. package/es/tree-select-panel/index.d.ts +134 -0
  40. package/es/tree-select-panel/index.less +107 -0
  41. package/es/tree-select-panel/index.mjs +8 -0
  42. package/es/tree-select-panel/style/index.mjs +23 -0
  43. package/es/tree-select-panel/style/less.mjs +23 -0
  44. package/lib/blue-mark/BlueMarkHeader.d.ts +13 -0
  45. package/lib/blue-mark/BlueMarkHeader.js +2 -0
  46. package/lib/blue-mark/CollapseToggle.d.ts +13 -0
  47. package/lib/blue-mark/CollapseToggle.js +5 -1
  48. package/lib/blue-mark/index.d.ts +18 -0
  49. package/lib/checkbox-panel/CheckboxPanel.d.ts +41 -1
  50. package/lib/checkbox-panel/CheckboxPanel.js +86 -24
  51. package/lib/checkbox-panel/index.css +1 -1
  52. package/lib/checkbox-panel/index.d.ts +29 -1
  53. package/lib/checkbox-panel/index.less +82 -1
  54. package/lib/index.css +1 -1
  55. package/lib/index.d.ts +2 -1
  56. package/lib/index.js +4 -1
  57. package/lib/index.less +1 -0
  58. package/lib/locale/lang/en-US.d.ts +3 -0
  59. package/lib/locale/lang/en-US.js +3 -0
  60. package/lib/locale/lang/zh-CN.d.ts +3 -0
  61. package/lib/locale/lang/zh-CN.js +3 -0
  62. package/lib/material-action-bar/MaterialActionBar.js +3 -1
  63. package/lib/material-action-bar/index.css +1 -1
  64. package/lib/material-action-bar/index.less +1 -1
  65. package/lib/material-add/index.css +1 -1
  66. package/lib/notice-bar/index.css +1 -1
  67. package/lib/notice-bar/index.less +13 -0
  68. package/lib/tabs/Tabs.js +3 -2
  69. package/lib/tabs/index.css +1 -1
  70. package/lib/tabs/index.less +15 -5
  71. package/lib/tabs/var.less +1 -0
  72. package/lib/title-bar/TitleBar.d.ts +15 -1
  73. package/lib/title-bar/TitleBar.js +2 -0
  74. package/lib/title-bar/index.css +1 -1
  75. package/lib/title-bar/index.d.ts +10 -1
  76. package/lib/title-bar/index.less +6 -1
  77. package/lib/title-bar/var.less +2 -1
  78. package/lib/tree-select/TreeSelect.d.ts +3 -0
  79. package/lib/tree-select/TreeSelect.js +18 -2
  80. package/lib/tree-select/index.d.ts +2 -0
  81. package/lib/tree-select-panel/TreeSelectPanel.d.ts +181 -0
  82. package/lib/tree-select-panel/TreeSelectPanel.js +232 -0
  83. package/lib/tree-select-panel/index.css +1 -0
  84. package/lib/tree-select-panel/index.d.ts +134 -0
  85. package/lib/tree-select-panel/index.js +37 -0
  86. package/lib/tree-select-panel/index.less +107 -0
  87. package/lib/tree-select-panel/style/index.js +23 -0
  88. package/lib/tree-select-panel/style/less.js +23 -0
  89. package/lib/vant.cjs.js +1576 -1282
  90. package/lib/vant.es.js +1576 -1282
  91. package/lib/vant.js +1576 -1282
  92. package/lib/vant.min.js +1 -1
  93. package/lib/web-types.json +1 -1
  94. package/package.json +1 -1
@@ -9,6 +9,10 @@ declare const blueMarkHeaderProps: {
9
9
  required: BooleanConstructor;
10
10
  actionText: StringConstructor;
11
11
  expandable: BooleanConstructor;
12
+ showExpandIcon: {
13
+ type: BooleanConstructor;
14
+ default: true;
15
+ };
12
16
  modelValue: BooleanConstructor;
13
17
  expandText: StringConstructor;
14
18
  collapseText: StringConstructor;
@@ -23,6 +27,10 @@ declare const _default: import("vue").DefineComponent<{
23
27
  required: BooleanConstructor;
24
28
  actionText: StringConstructor;
25
29
  expandable: BooleanConstructor;
30
+ showExpandIcon: {
31
+ type: BooleanConstructor;
32
+ default: true;
33
+ };
26
34
  modelValue: BooleanConstructor;
27
35
  expandText: StringConstructor;
28
36
  collapseText: StringConstructor;
@@ -35,6 +43,10 @@ declare const _default: import("vue").DefineComponent<{
35
43
  required: BooleanConstructor;
36
44
  actionText: StringConstructor;
37
45
  expandable: BooleanConstructor;
46
+ showExpandIcon: {
47
+ type: BooleanConstructor;
48
+ default: true;
49
+ };
38
50
  modelValue: BooleanConstructor;
39
51
  expandText: StringConstructor;
40
52
  collapseText: StringConstructor;
@@ -47,5 +59,6 @@ declare const _default: import("vue").DefineComponent<{
47
59
  size: BlueMarkSize;
48
60
  modelValue: boolean;
49
61
  expandable: boolean;
62
+ showExpandIcon: boolean;
50
63
  }>;
51
64
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
2
- import { createNamespace, numericProp } from "../utils/index.mjs";
2
+ import { createNamespace, numericProp, truthProp } from "../utils/index.mjs";
3
3
  import BlueMark from "./BlueMark.mjs";
4
4
  import CollapseToggle from "./CollapseToggle.mjs";
5
5
  const [name, bem] = createNamespace("blue-mark-header");
@@ -12,6 +12,7 @@ const blueMarkHeaderProps = {
12
12
  required: Boolean,
13
13
  actionText: String,
14
14
  expandable: Boolean,
15
+ showExpandIcon: truthProp,
15
16
  modelValue: Boolean,
16
17
  expandText: String,
17
18
  collapseText: String
@@ -73,6 +74,7 @@ var stdin_default = defineComponent({
73
74
  "modelValue": props.modelValue,
74
75
  "expandText": props.expandText,
75
76
  "collapseText": props.collapseText,
77
+ "showIcon": props.showExpandIcon,
76
78
  "onUpdate:modelValue": onChange
77
79
  }, null)]);
78
80
  };
@@ -2,6 +2,10 @@ import { type ExtractPropTypes } from 'vue';
2
2
  declare const collapseToggleProps: {
3
3
  modelValue: BooleanConstructor;
4
4
  divider: BooleanConstructor;
5
+ showIcon: {
6
+ type: BooleanConstructor;
7
+ default: boolean;
8
+ };
5
9
  expandText: {
6
10
  type: import("vue").PropType<string>;
7
11
  default: string;
@@ -15,6 +19,10 @@ export declare type CollapseToggleProps = ExtractPropTypes<typeof collapseToggle
15
19
  declare const _default: import("vue").DefineComponent<{
16
20
  modelValue: BooleanConstructor;
17
21
  divider: BooleanConstructor;
22
+ showIcon: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
18
26
  expandText: {
19
27
  type: import("vue").PropType<string>;
20
28
  default: string;
@@ -26,6 +34,10 @@ declare const _default: import("vue").DefineComponent<{
26
34
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
27
35
  modelValue: BooleanConstructor;
28
36
  divider: BooleanConstructor;
37
+ showIcon: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
29
41
  expandText: {
30
42
  type: import("vue").PropType<string>;
31
43
  default: string;
@@ -38,6 +50,7 @@ declare const _default: import("vue").DefineComponent<{
38
50
  onChange?: ((...args: any[]) => any) | undefined;
39
51
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
40
52
  }, {
53
+ showIcon: boolean;
41
54
  modelValue: boolean;
42
55
  divider: boolean;
43
56
  expandText: string;
@@ -6,6 +6,10 @@ const [name, bem] = createNamespace("collapse-toggle");
6
6
  const collapseToggleProps = {
7
7
  modelValue: Boolean,
8
8
  divider: Boolean,
9
+ showIcon: {
10
+ type: Boolean,
11
+ default: true
12
+ },
9
13
  expandText: makeStringProp("\u5C55\u5F00"),
10
14
  collapseText: makeStringProp("\u6536\u8D77")
11
15
  };
@@ -37,7 +41,7 @@ var stdin_default = defineComponent({
37
41
  }, [_createVNode("span", null, [((_a = slots.default) == null ? void 0 : _a.call(slots, {
38
42
  expanded,
39
43
  text
40
- })) || text]), _createVNode(Icon, {
44
+ })) || text]), props.showIcon && _createVNode(Icon, {
41
45
  "name": "arrow-down",
42
46
  "class": bem("icon")
43
47
  }, null)]);
@@ -37,6 +37,10 @@ export declare const BlueMarkHeader: import("../utils").WithInstall<import("vue"
37
37
  required: BooleanConstructor;
38
38
  actionText: StringConstructor;
39
39
  expandable: BooleanConstructor;
40
+ showExpandIcon: {
41
+ type: BooleanConstructor;
42
+ default: true;
43
+ };
40
44
  modelValue: BooleanConstructor;
41
45
  expandText: StringConstructor;
42
46
  collapseText: StringConstructor;
@@ -49,6 +53,10 @@ export declare const BlueMarkHeader: import("../utils").WithInstall<import("vue"
49
53
  required: BooleanConstructor;
50
54
  actionText: StringConstructor;
51
55
  expandable: BooleanConstructor;
56
+ showExpandIcon: {
57
+ type: BooleanConstructor;
58
+ default: true;
59
+ };
52
60
  modelValue: BooleanConstructor;
53
61
  expandText: StringConstructor;
54
62
  collapseText: StringConstructor;
@@ -61,10 +69,15 @@ export declare const BlueMarkHeader: import("../utils").WithInstall<import("vue"
61
69
  size: import("./BlueMark").BlueMarkSize;
62
70
  modelValue: boolean;
63
71
  expandable: boolean;
72
+ showExpandIcon: boolean;
64
73
  }>>;
65
74
  export declare const CollapseToggle: import("../utils").WithInstall<import("vue").DefineComponent<{
66
75
  modelValue: BooleanConstructor;
67
76
  divider: BooleanConstructor;
77
+ showIcon: {
78
+ type: BooleanConstructor;
79
+ default: boolean;
80
+ };
68
81
  expandText: {
69
82
  type: import("vue").PropType<string>;
70
83
  default: string;
@@ -76,6 +89,10 @@ export declare const CollapseToggle: import("../utils").WithInstall<import("vue"
76
89
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
77
90
  modelValue: BooleanConstructor;
78
91
  divider: BooleanConstructor;
92
+ showIcon: {
93
+ type: BooleanConstructor;
94
+ default: boolean;
95
+ };
79
96
  expandText: {
80
97
  type: import("vue").PropType<string>;
81
98
  default: string;
@@ -88,6 +105,7 @@ export declare const CollapseToggle: import("../utils").WithInstall<import("vue"
88
105
  onChange?: ((...args: any[]) => any) | undefined;
89
106
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
90
107
  }, {
108
+ showIcon: boolean;
91
109
  modelValue: boolean;
92
110
  divider: boolean;
93
111
  expandText: string;
@@ -35,6 +35,18 @@ declare const checkboxPanelProps: {
35
35
  type: PropType<string>;
36
36
  default: string;
37
37
  };
38
+ selectedText: {
39
+ type: PropType<string>;
40
+ default: string;
41
+ };
42
+ collapseSelectedText: {
43
+ type: PropType<string>;
44
+ default: string;
45
+ };
46
+ clearSelectedText: {
47
+ type: PropType<string>;
48
+ default: string;
49
+ };
38
50
  };
39
51
  export declare type CheckboxPanelProps = ExtractPropTypes<typeof checkboxPanelProps>;
40
52
  declare const _default: import("vue").DefineComponent<{
@@ -68,7 +80,19 @@ declare const _default: import("vue").DefineComponent<{
68
80
  type: PropType<string>;
69
81
  default: string;
70
82
  };
71
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("search" | "update:modelValue" | "load" | "update:show" | "confirm" | "filter" | "update:error" | "update:loading")[], "search" | "filter" | "update:modelValue" | "load" | "update:show" | "confirm" | "update:error" | "update:loading", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
83
+ selectedText: {
84
+ type: PropType<string>;
85
+ default: string;
86
+ };
87
+ collapseSelectedText: {
88
+ type: PropType<string>;
89
+ default: string;
90
+ };
91
+ clearSelectedText: {
92
+ type: PropType<string>;
93
+ default: string;
94
+ };
95
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("search" | "update:modelValue" | "load" | "update:show" | "confirm" | "filter" | "update:error" | "update:loading" | "show-selected")[], "search" | "filter" | "update:modelValue" | "load" | "update:show" | "confirm" | "update:error" | "update:loading" | "show-selected", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
72
96
  show: BooleanConstructor;
73
97
  title: StringConstructor;
74
98
  options: {
@@ -99,6 +123,18 @@ declare const _default: import("vue").DefineComponent<{
99
123
  type: PropType<string>;
100
124
  default: string;
101
125
  };
126
+ selectedText: {
127
+ type: PropType<string>;
128
+ default: string;
129
+ };
130
+ collapseSelectedText: {
131
+ type: PropType<string>;
132
+ default: string;
133
+ };
134
+ clearSelectedText: {
135
+ type: PropType<string>;
136
+ default: string;
137
+ };
102
138
  }>> & {
103
139
  onLoad?: ((...args: any[]) => any) | undefined;
104
140
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
@@ -108,6 +144,7 @@ declare const _default: import("vue").DefineComponent<{
108
144
  "onUpdate:loading"?: ((...args: any[]) => any) | undefined;
109
145
  onSearch?: ((...args: any[]) => any) | undefined;
110
146
  onFilter?: ((...args: any[]) => any) | undefined;
147
+ "onShow-selected"?: ((...args: any[]) => any) | undefined;
111
148
  }, {
112
149
  show: boolean;
113
150
  error: boolean;
@@ -121,5 +158,8 @@ declare const _default: import("vue").DefineComponent<{
121
158
  lazy: boolean;
122
159
  selectAllText: string;
123
160
  cancelSelectAllText: string;
161
+ selectedText: string;
162
+ collapseSelectedText: string;
163
+ clearSelectedText: string;
124
164
  }>;
125
165
  export default _default;
@@ -1,4 +1,4 @@
1
- import { computed, defineComponent, ref, createVNode as _createVNode } from "vue";
1
+ import { computed, defineComponent, ref, watch, createVNode as _createVNode } from "vue";
2
2
  import { createNamespace, makeArrayProp, makeStringProp } from "../utils/index.mjs";
3
3
  import { ActionSheet } from "../action-sheet/index.mjs";
4
4
  import { NavBar } from "../nav-bar/index.mjs";
@@ -31,18 +31,23 @@ const checkboxPanelProps = {
31
31
  errorText: String,
32
32
  confirmText: makeStringProp("\u786E\u5B9A"),
33
33
  selectAllText: makeStringProp("\u5168\u9009"),
34
- cancelSelectAllText: makeStringProp("\u53D6\u6D88\u5168\u9009")
34
+ cancelSelectAllText: makeStringProp("\u53D6\u6D88\u5168\u9009"),
35
+ selectedText: makeStringProp("\u5C55\u5F00\u5DF2\u9009"),
36
+ collapseSelectedText: makeStringProp("\u6536\u8D77\u5DF2\u9009"),
37
+ clearSelectedText: makeStringProp("\u6E05\u7A7A\u5DF2\u9009")
35
38
  };
36
39
  var stdin_default = defineComponent({
37
40
  name,
38
41
  props: checkboxPanelProps,
39
- emits: ["update:show", "update:modelValue", "update:loading", "update:error", "confirm", "search", "filter", "load"],
42
+ emits: ["update:show", "update:modelValue", "update:loading", "update:error", "confirm", "search", "filter", "load", "show-selected"],
40
43
  setup(props, {
41
44
  emit,
42
45
  slots
43
46
  }) {
44
47
  const keyword = ref("");
48
+ const expandedSelected = ref(false);
45
49
  const selectedValues = computed(() => props.modelValue || []);
50
+ const selectedOptions = computed(() => props.options.filter((option) => selectedValues.value.includes(option.value)));
46
51
  const filteredOptions = computed(() => {
47
52
  const query = keyword.value.trim().toLocaleLowerCase();
48
53
  if (!query)
@@ -52,23 +57,51 @@ var stdin_default = defineComponent({
52
57
  const selectableOptions = computed(() => filteredOptions.value.filter((option) => !option.disabled));
53
58
  const isAllSelected = computed(() => selectableOptions.value.length > 0 && selectableOptions.value.every((option) => selectedValues.value.includes(option.value)));
54
59
  const close = () => emit("update:show", false);
60
+ const updateSelectedValues = (values) => {
61
+ if (!values.length)
62
+ expandedSelected.value = false;
63
+ emit("update:modelValue", values);
64
+ };
55
65
  const toggleOption = (option) => {
56
66
  if (option.disabled)
57
67
  return;
58
68
  const values = [...selectedValues.value];
59
69
  const index = values.indexOf(option.value);
60
70
  index === -1 ? values.push(option.value) : values.splice(index, 1);
61
- emit("update:modelValue", values);
71
+ updateSelectedValues(values);
62
72
  };
63
73
  const toggleAll = () => {
64
74
  const selectableValues = selectableOptions.value.map((option) => option.value);
65
75
  const values = isAllSelected.value ? selectedValues.value.filter((value) => !selectableValues.includes(value)) : [.../* @__PURE__ */ new Set([...selectedValues.value, ...selectableValues])];
66
- emit("update:modelValue", values);
76
+ updateSelectedValues(values);
67
77
  };
78
+ const removeSelected = (option) => {
79
+ updateSelectedValues(selectedValues.value.filter((value) => value !== option.value));
80
+ };
81
+ const clearSelected = () => updateSelectedValues([]);
68
82
  const confirm = () => {
69
83
  emit("confirm", selectedValues.value);
70
84
  close();
71
85
  };
86
+ const renderFilterAction = () => {
87
+ if (slots.filter)
88
+ return slots.filter();
89
+ if (!props.filterable)
90
+ return;
91
+ return _createVNode("button", {
92
+ "type": "button",
93
+ "class": bem("filter"),
94
+ "aria-label": "\u7B5B\u9009",
95
+ "onClick": () => emit("filter")
96
+ }, [_createVNode(Badge, {
97
+ "dot": props.filterActive
98
+ }, {
99
+ default: () => [_createVNode(Icon, {
100
+ "name": "filter-o",
101
+ "size": "22"
102
+ }, null)]
103
+ })]);
104
+ };
72
105
  const renderOptionLabel = (label) => {
73
106
  const query = keyword.value.trim();
74
107
  if (!query)
@@ -105,6 +138,10 @@ var stdin_default = defineComponent({
105
138
  }))]
106
139
  });
107
140
  };
141
+ watch(selectedValues, (values) => {
142
+ if (!values.length)
143
+ expandedSelected.value = false;
144
+ });
108
145
  return () => _createVNode(ActionSheet, {
109
146
  "show": props.show,
110
147
  "class": bem(),
@@ -124,25 +161,7 @@ var stdin_default = defineComponent({
124
161
  "size": "22",
125
162
  "onClick": close
126
163
  }, null),
127
- right: () => {
128
- if (slots.filter)
129
- return slots.filter();
130
- if (!props.filterable)
131
- return;
132
- return _createVNode("button", {
133
- "type": "button",
134
- "class": bem("filter"),
135
- "aria-label": "\u7B5B\u9009",
136
- "onClick": () => emit("filter")
137
- }, [_createVNode(Badge, {
138
- "dot": props.filterActive
139
- }, {
140
- default: () => [_createVNode(Icon, {
141
- "name": "filter-o",
142
- "size": "22"
143
- }, null)]
144
- })]);
145
- }
164
+ right: renderFilterAction
146
165
  })]), props.searchable && _createVNode(Search, {
147
166
  "modelValue": keyword.value,
148
167
  "class": bem("search"),
@@ -173,11 +192,54 @@ var stdin_default = defineComponent({
173
192
  "class": bem("footer")
174
193
  }, [_createVNode(BottomActionBar, {
175
194
  "fixed": false,
195
+ "moreIcon": "passed",
196
+ "moreText": expandedSelected.value ? props.collapseSelectedText : props.selectedText,
197
+ "moreBadge": selectedValues.value.length,
198
+ "moreBadgeMax": 99,
176
199
  "secondaryText": isAllSelected.value ? props.cancelSelectAllText : props.selectAllText,
200
+ "secondaryDisabled": !selectableOptions.value.length,
177
201
  "confirmText": props.confirmText,
202
+ "moreDisabled": !selectedValues.value.length,
203
+ "confirmDisabled": !selectedValues.value.length,
178
204
  "onSecondary": toggleAll,
205
+ "onMore": () => {
206
+ expandedSelected.value = !expandedSelected.value;
207
+ emit("show-selected", selectedValues.value);
208
+ },
179
209
  "onConfirm": confirm
180
- }, null)])])]
210
+ }, null), expandedSelected.value && _createVNode("div", {
211
+ "class": bem("selected-panel")
212
+ }, [_createVNode("div", {
213
+ "class": bem("selected-header")
214
+ }, [_createVNode("button", {
215
+ "type": "button",
216
+ "class": bem("clear"),
217
+ "onClick": clearSelected
218
+ }, [props.clearSelectedText]), _createVNode("button", {
219
+ "type": "button",
220
+ "class": bem("collapse"),
221
+ "onClick": () => {
222
+ expandedSelected.value = false;
223
+ }
224
+ }, [props.collapseSelectedText, _createVNode(Icon, {
225
+ "name": "arrow-down"
226
+ }, null)])]), _createVNode("div", {
227
+ "class": bem("selected-list")
228
+ }, [selectedOptions.value.map((option) => _createVNode(Cell, {
229
+ "key": option.value,
230
+ "title": option.label,
231
+ "class": bem("selected-item"),
232
+ "border": false
233
+ }, {
234
+ "right-icon": () => _createVNode("button", {
235
+ "type": "button",
236
+ "class": bem("remove"),
237
+ "aria-label": `\u79FB\u9664${option.label}`,
238
+ "onClick": () => removeSelected(option)
239
+ }, [_createVNode(Icon, {
240
+ "name": "cross"
241
+ }, null)])
242
+ }))])])])])]
181
243
  });
182
244
  }
183
245
  });
@@ -1 +1 @@
1
- .van-checkbox-panel{box-sizing:border-box;display:flex;height:calc(100% - 96px);max-height:calc(100% - 96px);overflow:hidden;background:var(--van-gray-1)}.van-checkbox-panel .van-action-sheet__content{display:flex;flex:1;min-height:0;gap:0;padding:0;overflow:hidden}.van-checkbox-panel__content{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;background:var(--van-gray-1)}.van-checkbox-panel__nav-wrapper{flex:none;width:100%;min-width:0;max-width:100%;overflow:hidden}.van-checkbox-panel__nav{box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:hidden;--van-nav-bar-background-color: var(--van-gray-1)}.van-checkbox-panel__nav .van-nav-bar__content{box-sizing:border-box;width:100%;overflow:hidden}.van-checkbox-panel__nav .van-nav-bar__left--slot,.van-checkbox-panel__nav .van-nav-bar__right--slot{padding:0}.van-checkbox-panel__nav .van-nav-bar__left--slot{left:var(--van-padding-md)}.van-checkbox-panel__nav .van-nav-bar__right--slot{right:var(--van-padding-md)}.van-checkbox-panel__filter{display:flex;align-items:center;justify-content:center;width:34px;height:46px;padding:0;color:inherit;background:transparent;border:0}.van-checkbox-panel__search{--van-search-padding: 8px var(--van-padding-md);--van-search-background-color: var(--van-gray-1);--van-search-content-background-color: var(--van-white)}.van-checkbox-panel__match{color:var(--van-primary-color)}.van-checkbox-panel__body{flex:1;min-height:0;padding:0 var(--van-padding-md);overflow-y:auto}.van-checkbox-panel__card{overflow:hidden;background:var(--van-white);border-radius:var(--van-border-radius-lg)}.van-checkbox-panel__footer{flex:none}.van-checkbox-panel .van-cell{min-height:44px}.van-checkbox-panel .van-checkbox{margin:0}
1
+ .van-checkbox-panel{box-sizing:border-box;display:flex;height:calc(100% - 96px);max-height:calc(100% - 96px);overflow:hidden;background:var(--van-gray-1)}.van-checkbox-panel .van-action-sheet__content{display:flex;flex:1;min-height:0;gap:0;padding:0;overflow:hidden}.van-checkbox-panel__content{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;background:var(--van-gray-1)}.van-checkbox-panel__nav-wrapper{flex:none;width:100%;min-width:0;max-width:100%;overflow:hidden}.van-checkbox-panel__nav{box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:hidden;--van-nav-bar-background-color: var(--van-gray-1)}.van-checkbox-panel__nav .van-nav-bar__content{box-sizing:border-box;width:100%;overflow:hidden}.van-checkbox-panel__nav .van-nav-bar__left--slot,.van-checkbox-panel__nav .van-nav-bar__right--slot{padding:0}.van-checkbox-panel__nav .van-nav-bar__left--slot{left:var(--van-padding-md)}.van-checkbox-panel__nav .van-nav-bar__right--slot{right:var(--van-padding-md)}.van-checkbox-panel__filter{display:flex;align-items:center;justify-content:center;width:34px;height:46px;padding:0;color:inherit;background:transparent;border:0}.van-checkbox-panel__search{--van-search-padding: 8px var(--van-padding-md);--van-search-background-color: var(--van-gray-1);--van-search-content-background-color: var(--van-white)}.van-checkbox-panel__match{color:var(--van-primary-color)}.van-checkbox-panel__body{flex:1;min-height:0;padding:0 var(--van-padding-md);overflow-y:auto}.van-checkbox-panel__card{overflow:hidden;background:var(--van-white);border-radius:var(--van-border-radius-lg)}.van-checkbox-panel__footer{position:relative;flex:none;background:var(--van-white);box-shadow:0 -2px 5px rgba(27,33,41,.1)}.van-checkbox-panel__footer .van-bottom-action-bar{box-shadow:none}.van-checkbox-panel__footer .van-bottom-action-bar__secondary{flex:0 0 auto;width:auto;padding:0 var(--van-padding-md)}.van-checkbox-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-checkbox-panel__selected-header{display:flex;flex:none;align-items:center;justify-content:space-between;padding:12px var(--van-padding-md) 4px}.van-checkbox-panel__clear,.van-checkbox-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-checkbox-panel__clear{color:var(--van-primary-color)}.van-checkbox-panel__collapse,.van-checkbox-panel__remove,.van-checkbox-panel__collapse .van-icon,.van-checkbox-panel__remove .van-icon{color:var(--van-gray-6)}.van-checkbox-panel__collapse{gap:2px}.van-checkbox-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-checkbox-panel__selected-item{flex:none;min-height:44px;padding:11px var(--van-padding-md);background:var(--van-gray-1);border-radius:8px}.van-checkbox-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-checkbox-panel .van-cell{min-height:44px}.van-checkbox-panel .van-checkbox{margin:0}
@@ -29,7 +29,19 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
29
29
  type: import("vue").PropType<string>;
30
30
  default: string;
31
31
  };
32
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("search" | "update:modelValue" | "load" | "update:show" | "confirm" | "filter" | "update:error" | "update:loading")[], "search" | "filter" | "update:modelValue" | "load" | "update:show" | "confirm" | "update:error" | "update:loading", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
32
+ selectedText: {
33
+ type: import("vue").PropType<string>;
34
+ default: string;
35
+ };
36
+ collapseSelectedText: {
37
+ type: import("vue").PropType<string>;
38
+ default: string;
39
+ };
40
+ clearSelectedText: {
41
+ type: import("vue").PropType<string>;
42
+ default: string;
43
+ };
44
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("search" | "update:modelValue" | "load" | "update:show" | "confirm" | "filter" | "update:error" | "update:loading" | "show-selected")[], "search" | "filter" | "update:modelValue" | "load" | "update:show" | "confirm" | "update:error" | "update:loading" | "show-selected", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
33
45
  show: BooleanConstructor;
34
46
  title: StringConstructor;
35
47
  options: {
@@ -60,6 +72,18 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
60
72
  type: import("vue").PropType<string>;
61
73
  default: string;
62
74
  };
75
+ selectedText: {
76
+ type: import("vue").PropType<string>;
77
+ default: string;
78
+ };
79
+ collapseSelectedText: {
80
+ type: import("vue").PropType<string>;
81
+ default: string;
82
+ };
83
+ clearSelectedText: {
84
+ type: import("vue").PropType<string>;
85
+ default: string;
86
+ };
63
87
  }>> & {
64
88
  onLoad?: ((...args: any[]) => any) | undefined;
65
89
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
@@ -69,6 +93,7 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
69
93
  "onUpdate:loading"?: ((...args: any[]) => any) | undefined;
70
94
  onSearch?: ((...args: any[]) => any) | undefined;
71
95
  onFilter?: ((...args: any[]) => any) | undefined;
96
+ "onShow-selected"?: ((...args: any[]) => any) | undefined;
72
97
  }, {
73
98
  show: boolean;
74
99
  error: boolean;
@@ -82,6 +107,9 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
82
107
  lazy: boolean;
83
108
  selectAllText: string;
84
109
  cancelSelectAllText: string;
110
+ selectedText: string;
111
+ collapseSelectedText: string;
112
+ clearSelectedText: string;
85
113
  }>>;
86
114
  export default CheckboxPanel;
87
115
  export type { CheckboxPanelProps, CheckboxPanelOption } from './CheckboxPanel';
@@ -26,7 +26,88 @@
26
26
  &__match { color: var(--van-primary-color); }
27
27
  &__body { flex: 1; min-height: 0; padding: 0 var(--van-padding-md); overflow-y: auto; }
28
28
  &__card { overflow: hidden; background: var(--van-white); border-radius: var(--van-border-radius-lg); }
29
- &__footer { flex: none; }
29
+ &__footer {
30
+ position: relative;
31
+ flex: none;
32
+ background: var(--van-white);
33
+ box-shadow: 0 -2px 5px rgb(27 33 41 / 10%);
34
+
35
+ .van-bottom-action-bar {
36
+ box-shadow: none;
37
+
38
+ &__secondary {
39
+ flex: 0 0 auto;
40
+ width: auto;
41
+ padding: 0 var(--van-padding-md);
42
+ }
43
+ }
44
+ }
45
+ &__selected-panel {
46
+ position: absolute;
47
+ right: 0;
48
+ bottom: 60px;
49
+ left: 0;
50
+ display: flex;
51
+ flex-direction: column;
52
+ max-height: min(340px, calc(100vh - 156px));
53
+ overflow: hidden;
54
+ background: var(--van-white);
55
+ box-shadow: 0 -2px 5px rgb(27 33 41 / 10%);
56
+ }
57
+ &__selected-header {
58
+ display: flex;
59
+ flex: none;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ padding: 12px var(--van-padding-md) 4px;
63
+ }
64
+ &__clear,
65
+ &__collapse {
66
+ display: inline-flex;
67
+ align-items: center;
68
+ padding: 0;
69
+ font: inherit;
70
+ font-size: var(--van-font-size-md);
71
+ line-height: var(--van-line-height-lg);
72
+ background: transparent;
73
+ border: 0;
74
+ }
75
+ &__clear { color: var(--van-primary-color); }
76
+ &__collapse,
77
+ &__remove {
78
+ color: var(--van-gray-6);
79
+
80
+ .van-icon { color: var(--van-gray-6); }
81
+ }
82
+ &__collapse { gap: 2px; }
83
+ &__selected-list {
84
+ display: flex;
85
+ flex: 0 1 auto;
86
+ flex-direction: column;
87
+ gap: 6px;
88
+ min-height: 0;
89
+ padding: var(--van-padding-xs) var(--van-padding-md);
90
+ overflow-y: auto;
91
+ overscroll-behavior: contain;
92
+ }
93
+ &__selected-item {
94
+ flex: none;
95
+ min-height: 44px;
96
+ padding: 11px var(--van-padding-md);
97
+ background: var(--van-gray-1);
98
+ border-radius: 8px;
99
+ }
100
+ &__remove {
101
+ display: inline-flex;
102
+ align-self: flex-start;
103
+ align-items: center;
104
+ justify-content: center;
105
+ width: 22px;
106
+ height: 22px;
107
+ padding: 0;
108
+ background: transparent;
109
+ border: 0;
110
+ }
30
111
  .van-cell { min-height: 44px; }
31
112
  .van-checkbox { margin: 0; }
32
113
  }
package/es/index.d.ts CHANGED
@@ -106,6 +106,7 @@ export * from "./tag";
106
106
  export * from "./title-bar";
107
107
  export * from "./toast";
108
108
  export * from "./tree-select";
109
+ export * from "./tree-select-panel";
109
110
  export * from "./uploader";
110
111
  export * from "./video-preview";
111
112
  export * from "./work-order-card";
@@ -116,4 +117,4 @@ declare namespace _default {
116
117
  }
117
118
  export default _default;
118
119
  export function install(app: any): void;
119
- export const version: "0.0.41";
120
+ export const version: "0.0.42";
package/es/index.mjs CHANGED
@@ -105,11 +105,12 @@ import { Tag } from "./tag/index.mjs";
105
105
  import { TitleBar } from "./title-bar/index.mjs";
106
106
  import { Toast } from "./toast/index.mjs";
107
107
  import { TreeSelect } from "./tree-select/index.mjs";
108
+ import { TreeSelectPanel } from "./tree-select-panel/index.mjs";
108
109
  import { Uploader } from "./uploader/index.mjs";
109
110
  import { VideoPreview } from "./video-preview/index.mjs";
110
111
  import { WorkOrderCard } from "./work-order-card/index.mjs";
111
112
  import { WorkOrderFilter } from "./work-order-filter/index.mjs";
112
- const version = "0.0.41";
113
+ const version = "0.0.42";
113
114
  function install(app) {
114
115
  const components = [
115
116
  ActionBar,
@@ -219,6 +220,7 @@ function install(app) {
219
220
  TitleBar,
220
221
  Toast,
221
222
  TreeSelect,
223
+ TreeSelectPanel,
222
224
  Uploader,
223
225
  VideoPreview,
224
226
  WorkOrderCard,
@@ -340,6 +342,7 @@ export * from "./tag/index.mjs";
340
342
  export * from "./title-bar/index.mjs";
341
343
  export * from "./toast/index.mjs";
342
344
  export * from "./tree-select/index.mjs";
345
+ export * from "./tree-select-panel/index.mjs";
343
346
  export * from "./uploader/index.mjs";
344
347
  export * from "./video-preview/index.mjs";
345
348
  export * from "./work-order-card/index.mjs";
@@ -60,5 +60,8 @@ declare const _default: {
60
60
  vanAddressList: {
61
61
  add: string;
62
62
  };
63
+ vanTabs: {
64
+ moreTitle: string;
65
+ };
63
66
  };
64
67
  export default _default;
@@ -59,6 +59,9 @@ var stdin_default = {
59
59
  },
60
60
  vanAddressList: {
61
61
  add: "Add new address"
62
+ },
63
+ vanTabs: {
64
+ moreTitle: "More tabs"
62
65
  }
63
66
  };
64
67
  export {
@@ -60,5 +60,8 @@ declare const _default: {
60
60
  vanAddressList: {
61
61
  add: string;
62
62
  };
63
+ vanTabs: {
64
+ moreTitle: string;
65
+ };
63
66
  };
64
67
  export default _default;