persagy-vant 0.0.40 → 0.0.41

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 (85) hide show
  1. package/es/checkbox-panel/CheckboxPanel.d.ts +46 -1
  2. package/es/checkbox-panel/CheckboxPanel.mjs +121 -35
  3. package/es/checkbox-panel/index.css +1 -1
  4. package/es/checkbox-panel/index.d.ts +35 -1
  5. package/es/checkbox-panel/index.less +8 -2
  6. package/es/checkbox-panel/style/index.mjs +5 -0
  7. package/es/checkbox-panel/style/less.mjs +5 -0
  8. package/es/index.d.ts +1 -1
  9. package/es/index.mjs +1 -1
  10. package/es/label/Label.d.ts +13 -0
  11. package/es/label/Label.mjs +11 -4
  12. package/es/label/index.css +1 -1
  13. package/es/label/index.d.ts +9 -0
  14. package/es/label/index.less +5 -0
  15. package/es/location-select/style/index.mjs +1 -1
  16. package/es/location-select/style/less.mjs +1 -1
  17. package/es/material-action-bar/MaterialActionBar.d.ts +19 -0
  18. package/es/material-action-bar/MaterialActionBar.mjs +9 -5
  19. package/es/material-action-bar/index.css +1 -1
  20. package/es/material-action-bar/index.d.ts +36 -0
  21. package/es/material-action-bar/index.less +4 -2
  22. package/es/material-add/index.css +1 -1
  23. package/es/material-add/style/index.mjs +1 -1
  24. package/es/material-add/style/less.mjs +1 -1
  25. package/es/material-display-bar/MaterialDisplayBar.mjs +0 -1
  26. package/es/material-display-bar/index.css +1 -1
  27. package/es/material-display-bar/index.less +2 -1
  28. package/es/material-display-bar/var.less +3 -2
  29. package/es/stepper/Stepper.d.ts +1 -1
  30. package/es/stepper/index.css +1 -1
  31. package/es/stepper/index.less +19 -0
  32. package/es/title-bar/TitleBar.d.ts +30 -0
  33. package/es/title-bar/TitleBar.mjs +7 -1
  34. package/es/title-bar/index.css +1 -1
  35. package/es/title-bar/index.d.ts +21 -0
  36. package/es/title-bar/index.less +4 -2
  37. package/lib/checkbox-panel/CheckboxPanel.d.ts +46 -1
  38. package/lib/checkbox-panel/CheckboxPanel.js +120 -34
  39. package/lib/checkbox-panel/index.css +1 -1
  40. package/lib/checkbox-panel/index.d.ts +35 -1
  41. package/lib/checkbox-panel/index.less +8 -2
  42. package/lib/checkbox-panel/style/index.js +5 -0
  43. package/lib/checkbox-panel/style/less.js +5 -0
  44. package/lib/index.css +1 -1
  45. package/lib/index.d.ts +1 -1
  46. package/lib/index.js +1 -1
  47. package/lib/index.less +5 -5
  48. package/lib/label/Label.d.ts +13 -0
  49. package/lib/label/Label.js +11 -4
  50. package/lib/label/index.css +1 -1
  51. package/lib/label/index.d.ts +9 -0
  52. package/lib/label/index.less +5 -0
  53. package/lib/location-select/style/index.js +1 -1
  54. package/lib/location-select/style/less.js +1 -1
  55. package/lib/material-action-bar/MaterialActionBar.d.ts +19 -0
  56. package/lib/material-action-bar/MaterialActionBar.js +8 -4
  57. package/lib/material-action-bar/index.css +1 -1
  58. package/lib/material-action-bar/index.d.ts +36 -0
  59. package/lib/material-action-bar/index.less +4 -2
  60. package/lib/material-add/index.css +1 -1
  61. package/lib/material-add/style/index.js +1 -1
  62. package/lib/material-add/style/less.js +1 -1
  63. package/lib/material-display-bar/MaterialDisplayBar.js +0 -1
  64. package/lib/material-display-bar/index.css +1 -1
  65. package/lib/material-display-bar/index.less +2 -1
  66. package/lib/material-display-bar/var.less +3 -2
  67. package/lib/stepper/Stepper.d.ts +1 -1
  68. package/lib/stepper/index.css +1 -1
  69. package/lib/stepper/index.less +19 -0
  70. package/lib/title-bar/TitleBar.d.ts +30 -0
  71. package/lib/title-bar/TitleBar.js +7 -1
  72. package/lib/title-bar/index.css +1 -1
  73. package/lib/title-bar/index.d.ts +21 -0
  74. package/lib/title-bar/index.less +4 -2
  75. package/lib/vant.cjs.js +753 -655
  76. package/lib/vant.es.js +754 -656
  77. package/lib/vant.js +753 -655
  78. package/lib/vant.min.js +1 -1
  79. package/lib/web-types.json +1 -1
  80. package/package.json +1 -1
  81. package/skills/use-persagy-vant/references/component-catalog.md +1 -1
  82. package/skills/use-persagy-vant/references/design-interaction-baseline.md +1 -0
  83. package/skills/use-persagy-vant/references/element-component-matching.md +1 -0
  84. package/skills/use-persagy-vant/references/page-recipes.md +1 -0
  85. package/skills/use-persagy-vant/references/public-style-system.md +6 -0
@@ -12,6 +12,17 @@ declare const checkboxPanelProps: {
12
12
  default: () => never[];
13
13
  };
14
14
  modelValue: PropType<string[]>;
15
+ searchable: BooleanConstructor;
16
+ searchPlaceholder: StringConstructor;
17
+ filterable: BooleanConstructor;
18
+ filterActive: BooleanConstructor;
19
+ loading: BooleanConstructor;
20
+ finished: BooleanConstructor;
21
+ error: BooleanConstructor;
22
+ lazy: BooleanConstructor;
23
+ loadingText: StringConstructor;
24
+ finishedText: StringConstructor;
25
+ errorText: StringConstructor;
15
26
  confirmText: {
16
27
  type: PropType<string>;
17
28
  default: string;
@@ -34,6 +45,17 @@ declare const _default: import("vue").DefineComponent<{
34
45
  default: () => never[];
35
46
  };
36
47
  modelValue: PropType<string[]>;
48
+ searchable: BooleanConstructor;
49
+ searchPlaceholder: StringConstructor;
50
+ filterable: BooleanConstructor;
51
+ filterActive: BooleanConstructor;
52
+ loading: BooleanConstructor;
53
+ finished: BooleanConstructor;
54
+ error: BooleanConstructor;
55
+ lazy: BooleanConstructor;
56
+ loadingText: StringConstructor;
57
+ finishedText: StringConstructor;
58
+ errorText: StringConstructor;
37
59
  confirmText: {
38
60
  type: PropType<string>;
39
61
  default: string;
@@ -46,7 +68,7 @@ declare const _default: import("vue").DefineComponent<{
46
68
  type: PropType<string>;
47
69
  default: string;
48
70
  };
49
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "update:show" | "confirm")[], "update:modelValue" | "update:show" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
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<{
50
72
  show: BooleanConstructor;
51
73
  title: StringConstructor;
52
74
  options: {
@@ -54,6 +76,17 @@ declare const _default: import("vue").DefineComponent<{
54
76
  default: () => never[];
55
77
  };
56
78
  modelValue: PropType<string[]>;
79
+ searchable: BooleanConstructor;
80
+ searchPlaceholder: StringConstructor;
81
+ filterable: BooleanConstructor;
82
+ filterActive: BooleanConstructor;
83
+ loading: BooleanConstructor;
84
+ finished: BooleanConstructor;
85
+ error: BooleanConstructor;
86
+ lazy: BooleanConstructor;
87
+ loadingText: StringConstructor;
88
+ finishedText: StringConstructor;
89
+ errorText: StringConstructor;
57
90
  confirmText: {
58
91
  type: PropType<string>;
59
92
  default: string;
@@ -67,13 +100,25 @@ declare const _default: import("vue").DefineComponent<{
67
100
  default: string;
68
101
  };
69
102
  }>> & {
103
+ onLoad?: ((...args: any[]) => any) | undefined;
70
104
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
71
105
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
72
106
  onConfirm?: ((...args: any[]) => any) | undefined;
107
+ "onUpdate:error"?: ((...args: any[]) => any) | undefined;
108
+ "onUpdate:loading"?: ((...args: any[]) => any) | undefined;
109
+ onSearch?: ((...args: any[]) => any) | undefined;
110
+ onFilter?: ((...args: any[]) => any) | undefined;
73
111
  }, {
74
112
  show: boolean;
113
+ error: boolean;
114
+ loading: boolean;
75
115
  options: CheckboxPanelOption[];
76
116
  confirmText: string;
117
+ finished: boolean;
118
+ searchable: boolean;
119
+ filterable: boolean;
120
+ filterActive: boolean;
121
+ lazy: boolean;
77
122
  selectAllText: string;
78
123
  cancelSelectAllText: string;
79
124
  }>;
@@ -1,18 +1,34 @@
1
- import { computed, defineComponent, createVNode as _createVNode } from "vue";
1
+ import { computed, defineComponent, ref, 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";
5
5
  import { Icon } from "../icon/index.mjs";
6
+ import { Badge } from "../badge/index.mjs";
6
7
  import { Cell } from "../cell/index.mjs";
8
+ import { Empty } from "../empty/index.mjs";
9
+ import { List } from "../list/index.mjs";
7
10
  import { Checkbox } from "../checkbox/index.mjs";
8
11
  import { CheckboxGroup } from "../checkbox-group/index.mjs";
9
- import { Button } from "../button/index.mjs";
12
+ import { BottomActionBar } from "../bottom-action-bar/index.mjs";
13
+ import { Search } from "../search/index.mjs";
10
14
  const [name, bem] = createNamespace("checkbox-panel");
15
+ const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
11
16
  const checkboxPanelProps = {
12
17
  show: Boolean,
13
18
  title: String,
14
19
  options: makeArrayProp(),
15
20
  modelValue: Array,
21
+ searchable: Boolean,
22
+ searchPlaceholder: String,
23
+ filterable: Boolean,
24
+ filterActive: Boolean,
25
+ loading: Boolean,
26
+ finished: Boolean,
27
+ error: Boolean,
28
+ lazy: Boolean,
29
+ loadingText: String,
30
+ finishedText: String,
31
+ errorText: String,
16
32
  confirmText: makeStringProp("\u786E\u5B9A"),
17
33
  selectAllText: makeStringProp("\u5168\u9009"),
18
34
  cancelSelectAllText: makeStringProp("\u53D6\u6D88\u5168\u9009")
@@ -20,12 +36,20 @@ const checkboxPanelProps = {
20
36
  var stdin_default = defineComponent({
21
37
  name,
22
38
  props: checkboxPanelProps,
23
- emits: ["update:show", "update:modelValue", "confirm"],
39
+ emits: ["update:show", "update:modelValue", "update:loading", "update:error", "confirm", "search", "filter", "load"],
24
40
  setup(props, {
25
- emit
41
+ emit,
42
+ slots
26
43
  }) {
44
+ const keyword = ref("");
27
45
  const selectedValues = computed(() => props.modelValue || []);
28
- const selectableOptions = computed(() => props.options.filter((option) => !option.disabled));
46
+ const filteredOptions = computed(() => {
47
+ const query = keyword.value.trim().toLocaleLowerCase();
48
+ if (!query)
49
+ return props.options;
50
+ return props.options.filter((option) => option.label.toLocaleLowerCase().includes(query));
51
+ });
52
+ const selectableOptions = computed(() => filteredOptions.value.filter((option) => !option.disabled));
29
53
  const isAllSelected = computed(() => selectableOptions.value.length > 0 && selectableOptions.value.every((option) => selectedValues.value.includes(option.value)));
30
54
  const close = () => emit("update:show", false);
31
55
  const toggleOption = (option) => {
@@ -36,11 +60,51 @@ var stdin_default = defineComponent({
36
60
  index === -1 ? values.push(option.value) : values.splice(index, 1);
37
61
  emit("update:modelValue", values);
38
62
  };
39
- const toggleAll = () => emit("update:modelValue", isAllSelected.value ? [] : selectableOptions.value.map((option) => option.value));
63
+ const toggleAll = () => {
64
+ const selectableValues = selectableOptions.value.map((option) => option.value);
65
+ const values = isAllSelected.value ? selectedValues.value.filter((value) => !selectableValues.includes(value)) : [.../* @__PURE__ */ new Set([...selectedValues.value, ...selectableValues])];
66
+ emit("update:modelValue", values);
67
+ };
40
68
  const confirm = () => {
41
69
  emit("confirm", selectedValues.value);
42
70
  close();
43
71
  };
72
+ const renderOptionLabel = (label) => {
73
+ const query = keyword.value.trim();
74
+ if (!query)
75
+ return label;
76
+ const normalizedQuery = query.toLocaleLowerCase();
77
+ return label.split(new RegExp(`(${escapeRegExp(query)})`, "ig")).map((part) => part.toLocaleLowerCase() === normalizedQuery ? _createVNode("span", {
78
+ "class": bem("match")
79
+ }, [part]) : part);
80
+ };
81
+ const renderOptions = () => {
82
+ if (!filteredOptions.value.length) {
83
+ return _createVNode(Empty, {
84
+ "imageSize": 60,
85
+ "description": "\u6682\u65E0\u5339\u914D\u9009\u9879"
86
+ }, null);
87
+ }
88
+ return _createVNode(CheckboxGroup, {
89
+ "modelValue": selectedValues.value,
90
+ "class": bem("card"),
91
+ "onUpdate:modelValue": (value) => emit("update:modelValue", value)
92
+ }, {
93
+ default: () => [filteredOptions.value.map((option) => _createVNode(Cell, {
94
+ "key": option.value,
95
+ "clickable": !option.disabled,
96
+ "title": option.label,
97
+ "onClick": () => toggleOption(option)
98
+ }, {
99
+ title: () => renderOptionLabel(option.label),
100
+ "right-icon": () => _createVNode(Checkbox, {
101
+ "name": option.value,
102
+ "disabled": option.disabled,
103
+ "onClick": (event) => event.stopPropagation()
104
+ }, null)
105
+ }))]
106
+ });
107
+ };
44
108
  return () => _createVNode(ActionSheet, {
45
109
  "show": props.show,
46
110
  "class": bem(),
@@ -60,38 +124,60 @@ var stdin_default = defineComponent({
60
124
  "size": "22",
61
125
  "onClick": close
62
126
  }, null),
63
- right: () => _createVNode("span", {
64
- "class": bem("select-all"),
65
- "onClick": toggleAll
66
- }, [isAllSelected.value ? props.cancelSelectAllText : props.selectAllText])
67
- })]), _createVNode("div", {
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
+ }
146
+ })]), props.searchable && _createVNode(Search, {
147
+ "modelValue": keyword.value,
148
+ "class": bem("search"),
149
+ "shape": "round",
150
+ "inputAlign": "left",
151
+ "placeholder": props.searchPlaceholder || "\u8BF7\u8F93\u5165\u641C\u7D22\u5173\u952E\u8BCD",
152
+ "maxlength": 200,
153
+ "onUpdate:modelValue": (value) => {
154
+ keyword.value = value;
155
+ emit("search", value);
156
+ },
157
+ "onSearch": (value) => emit("search", value)
158
+ }, null), _createVNode("div", {
68
159
  "class": bem("body")
69
- }, [_createVNode(CheckboxGroup, {
70
- "modelValue": selectedValues.value,
71
- "class": bem("card"),
72
- "onUpdate:modelValue": (value) => emit("update:modelValue", value)
160
+ }, [props.lazy ? _createVNode(List, {
161
+ "loading": props.loading,
162
+ "finished": props.finished,
163
+ "error": props.error,
164
+ "loadingText": props.loadingText,
165
+ "finishedText": props.finishedText,
166
+ "errorText": props.errorText,
167
+ "onUpdate:loading": (value) => emit("update:loading", value),
168
+ "onUpdate:error": (value) => emit("update:error", value),
169
+ "onLoad": () => emit("load")
73
170
  }, {
74
- default: () => [props.options.map((option) => _createVNode(Cell, {
75
- "key": option.value,
76
- "clickable": !option.disabled,
77
- "title": option.label,
78
- "onClick": () => toggleOption(option)
79
- }, {
80
- "right-icon": () => _createVNode(Checkbox, {
81
- "name": option.value,
82
- "disabled": option.disabled,
83
- "onClick": (event) => event.stopPropagation()
84
- }, null)
85
- }))]
86
- })]), _createVNode("div", {
171
+ default: () => [renderOptions()]
172
+ }) : renderOptions()]), _createVNode("div", {
87
173
  "class": bem("footer")
88
- }, [_createVNode(Button, {
89
- "block": true,
90
- "type": "primary",
91
- "onClick": confirm
92
- }, {
93
- default: () => [props.confirmText]
94
- })])])]
174
+ }, [_createVNode(BottomActionBar, {
175
+ "fixed": false,
176
+ "secondaryText": isAllSelected.value ? props.cancelSelectAllText : props.selectAllText,
177
+ "confirmText": props.confirmText,
178
+ "onSecondary": toggleAll,
179
+ "onConfirm": confirm
180
+ }, null)])])]
95
181
  });
96
182
  }
97
183
  });
@@ -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__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;padding:var(--van-padding-xs) 12px;background:var(--van-white);box-shadow:0 3px 12px rgba(27,33,41,.12),0 .5px 3px rgba(27,33,41,.08)}.van-checkbox-panel__select-all{color:var(--van-primary-color);font-weight:var(--van-font-weight-bold);font-size:var(--van-font-size-md)}.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{flex:none}.van-checkbox-panel .van-cell{min-height:44px}.van-checkbox-panel .van-checkbox{margin:0}
@@ -6,6 +6,17 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
6
6
  default: () => never[];
7
7
  };
8
8
  modelValue: import("vue").PropType<string[]>;
9
+ searchable: BooleanConstructor;
10
+ searchPlaceholder: StringConstructor;
11
+ filterable: BooleanConstructor;
12
+ filterActive: BooleanConstructor;
13
+ loading: BooleanConstructor;
14
+ finished: BooleanConstructor;
15
+ error: BooleanConstructor;
16
+ lazy: BooleanConstructor;
17
+ loadingText: StringConstructor;
18
+ finishedText: StringConstructor;
19
+ errorText: StringConstructor;
9
20
  confirmText: {
10
21
  type: import("vue").PropType<string>;
11
22
  default: string;
@@ -18,7 +29,7 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
18
29
  type: import("vue").PropType<string>;
19
30
  default: string;
20
31
  };
21
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "update:show" | "confirm")[], "update:modelValue" | "update:show" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
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<{
22
33
  show: BooleanConstructor;
23
34
  title: StringConstructor;
24
35
  options: {
@@ -26,6 +37,17 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
26
37
  default: () => never[];
27
38
  };
28
39
  modelValue: import("vue").PropType<string[]>;
40
+ searchable: BooleanConstructor;
41
+ searchPlaceholder: StringConstructor;
42
+ filterable: BooleanConstructor;
43
+ filterActive: BooleanConstructor;
44
+ loading: BooleanConstructor;
45
+ finished: BooleanConstructor;
46
+ error: BooleanConstructor;
47
+ lazy: BooleanConstructor;
48
+ loadingText: StringConstructor;
49
+ finishedText: StringConstructor;
50
+ errorText: StringConstructor;
29
51
  confirmText: {
30
52
  type: import("vue").PropType<string>;
31
53
  default: string;
@@ -39,13 +61,25 @@ export declare const CheckboxPanel: import("../utils").WithInstall<import("vue")
39
61
  default: string;
40
62
  };
41
63
  }>> & {
64
+ onLoad?: ((...args: any[]) => any) | undefined;
42
65
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
43
66
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
44
67
  onConfirm?: ((...args: any[]) => any) | undefined;
68
+ "onUpdate:error"?: ((...args: any[]) => any) | undefined;
69
+ "onUpdate:loading"?: ((...args: any[]) => any) | undefined;
70
+ onSearch?: ((...args: any[]) => any) | undefined;
71
+ onFilter?: ((...args: any[]) => any) | undefined;
45
72
  }, {
46
73
  show: boolean;
74
+ error: boolean;
75
+ loading: boolean;
47
76
  options: import("./CheckboxPanel").CheckboxPanelOption[];
48
77
  confirmText: string;
78
+ finished: boolean;
79
+ searchable: boolean;
80
+ filterable: boolean;
81
+ filterActive: boolean;
82
+ lazy: boolean;
49
83
  selectAllText: string;
50
84
  cancelSelectAllText: string;
51
85
  }>>;
@@ -17,10 +17,16 @@
17
17
  .van-nav-bar__left--slot { left: var(--van-padding-md); }
18
18
  .van-nav-bar__right--slot { right: var(--van-padding-md); }
19
19
  }
20
+ &__filter { display: flex; align-items: center; justify-content: center; width: 34px; height: 46px; padding: 0; color: inherit; background: transparent; border: 0; }
21
+ &__search {
22
+ --van-search-padding: 8px var(--van-padding-md);
23
+ --van-search-background-color: var(--van-gray-1);
24
+ --van-search-content-background-color: var(--van-white);
25
+ }
26
+ &__match { color: var(--van-primary-color); }
20
27
  &__body { flex: 1; min-height: 0; padding: 0 var(--van-padding-md); overflow-y: auto; }
21
28
  &__card { overflow: hidden; background: var(--van-white); border-radius: var(--van-border-radius-lg); }
22
- &__footer { flex: none; padding: var(--van-padding-xs) 12px; background: var(--van-white); box-shadow: 0 3px 12px rgba(27, 33, 41, 0.12), 0 0.5px 3px rgba(27, 33, 41, 0.08); }
23
- &__select-all { color: var(--van-primary-color); font-weight: var(--van-font-weight-bold); font-size: var(--van-font-size-md); }
29
+ &__footer { flex: none; }
24
30
  .van-cell { min-height: 44px; }
25
31
  .van-checkbox { margin: 0; }
26
32
  }
@@ -3,6 +3,7 @@ import "../../badge/index.css";
3
3
  import "../../icon/index.css";
4
4
  import "../../tag/index.css";
5
5
  import "../../loading/index.css";
6
+ import "../../list/index.css";
6
7
  import "../../button/index.css";
7
8
  import "../../overlay/index.css";
8
9
  import "../../popup/index.css";
@@ -11,7 +12,11 @@ import "../../nav-bar/index.css";
11
12
  import "../../action-sheet/index.css";
12
13
  import "../../checkbox-group/index.css";
13
14
  import "../../checkbox/index.css";
15
+ import "../../bottom-action-bar/index.css";
14
16
  import "../../radio-group/index.css";
15
17
  import "../../radio/index.css";
16
18
  import "../../cell/index.css";
19
+ import "../../field/index.css";
20
+ import "../../search/index.css";
21
+ import "../../empty/index.css";
17
22
  import "../index.css";
@@ -3,6 +3,7 @@ import "../../badge/index.less";
3
3
  import "../../icon/index.less";
4
4
  import "../../tag/index.less";
5
5
  import "../../loading/index.less";
6
+ import "../../list/index.less";
6
7
  import "../../button/index.less";
7
8
  import "../../overlay/index.less";
8
9
  import "../../popup/index.less";
@@ -11,7 +12,11 @@ import "../../nav-bar/index.less";
11
12
  import "../../action-sheet/index.less";
12
13
  import "../../checkbox-group/index.less";
13
14
  import "../../checkbox/index.less";
15
+ import "../../bottom-action-bar/index.less";
14
16
  import "../../radio-group/index.less";
15
17
  import "../../radio/index.less";
16
18
  import "../../cell/index.less";
19
+ import "../../field/index.less";
20
+ import "../../search/index.less";
21
+ import "../../empty/index.less";
17
22
  import "../index.less";
package/es/index.d.ts CHANGED
@@ -116,4 +116,4 @@ declare namespace _default {
116
116
  }
117
117
  export default _default;
118
118
  export function install(app: any): void;
119
- export const version: "0.0.40";
119
+ export const version: "0.0.41";
package/es/index.mjs CHANGED
@@ -109,7 +109,7 @@ import { Uploader } from "./uploader/index.mjs";
109
109
  import { VideoPreview } from "./video-preview/index.mjs";
110
110
  import { WorkOrderCard } from "./work-order-card/index.mjs";
111
111
  import { WorkOrderFilter } from "./work-order-filter/index.mjs";
112
- const version = "0.0.40";
112
+ const version = "0.0.41";
113
113
  function install(app) {
114
114
  const components = [
115
115
  ActionBar,
@@ -35,6 +35,10 @@ declare const labelProps: {
35
35
  type: PropType<string>;
36
36
  default: string;
37
37
  };
38
+ contentList: {
39
+ type: PropType<string[]>;
40
+ default: () => never[];
41
+ };
38
42
  type: {
39
43
  type: PropType<LabelType>;
40
44
  default: LabelType;
@@ -88,6 +92,10 @@ declare const _default: import("vue").DefineComponent<{
88
92
  type: PropType<string>;
89
93
  default: string;
90
94
  };
95
+ contentList: {
96
+ type: PropType<string[]>;
97
+ default: () => never[];
98
+ };
91
99
  type: {
92
100
  type: PropType<LabelType>;
93
101
  default: LabelType;
@@ -139,6 +147,10 @@ declare const _default: import("vue").DefineComponent<{
139
147
  type: PropType<string>;
140
148
  default: string;
141
149
  };
150
+ contentList: {
151
+ type: PropType<string[]>;
152
+ default: () => never[];
153
+ };
142
154
  type: {
143
155
  type: PropType<LabelType>;
144
156
  default: LabelType;
@@ -186,6 +198,7 @@ declare const _default: import("vue").DefineComponent<{
186
198
  showLabel: boolean;
187
199
  showContent: boolean;
188
200
  showColon: boolean | undefined;
201
+ contentList: string[];
189
202
  contentAlign: LabelContentAlign;
190
203
  showLeftIcon: boolean;
191
204
  sameColor: boolean;
@@ -13,6 +13,10 @@ const labelProps = {
13
13
  default: void 0
14
14
  },
15
15
  content: makeStringProp(""),
16
+ contentList: {
17
+ type: Array,
18
+ default: () => []
19
+ },
16
20
  type: makeStringProp("default"),
17
21
  size: makeStringProp("default"),
18
22
  contentAlign: makeStringProp("follow"),
@@ -42,7 +46,9 @@ var stdin_default = defineComponent({
42
46
  }) {
43
47
  let longPressTimer;
44
48
  const vertical = computed(() => props.vertical || props.type === "media");
45
- const ellipsis = computed(() => props.ellipsis && !vertical.value && !["tag", "media"].includes(props.type));
49
+ const hasContentList = computed(() => props.contentList.length > 0);
50
+ const displayContent = computed(() => hasContentList.value ? props.contentList.join("\u3001") : props.content);
51
+ const ellipsis = computed(() => props.ellipsis && !hasContentList.value && !vertical.value && !["tag", "media"].includes(props.type));
46
52
  const displayLabel = computed(() => {
47
53
  var _a;
48
54
  const showColon = (_a = props.showColon) != null ? _a : !vertical.value && props.contentAlign !== "right";
@@ -74,7 +80,7 @@ var stdin_default = defineComponent({
74
80
  };
75
81
  const renderText = () => {
76
82
  var _a;
77
- const content = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || props.content;
83
+ const content = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || displayContent.value;
78
84
  if (props.type === "link") {
79
85
  return props.href ? _createVNode("a", {
80
86
  "class": bem("link"),
@@ -127,7 +133,8 @@ var stdin_default = defineComponent({
127
133
  ellipsis: ellipsis.value,
128
134
  location: showLocation.value,
129
135
  "content-right": props.contentAlign === "right",
130
- "same-color": props.sameColor
136
+ "same-color": props.sameColor,
137
+ "multiple-content": hasContentList.value
131
138
  }])
132
139
  }, [showLeftIcon.value && _createVNode("div", {
133
140
  "class": bem("left-icon")
@@ -142,7 +149,7 @@ var stdin_default = defineComponent({
142
149
  "onPointerleave": clearLongPress
143
150
  }, [displayLabel.value]), props.showContent && _createVNode("div", {
144
151
  "class": bem("value"),
145
- "onPointerdown": () => startLongPress("content", props.content),
152
+ "onPointerdown": () => startLongPress("content", displayContent.value),
146
153
  "onPointerup": clearLongPress,
147
154
  "onPointercancel": clearLongPress,
148
155
  "onPointerleave": clearLongPress
@@ -1 +1 @@
1
- :root{--van-label-font-size: var(--van-font-size-md);--van-label-line-height: var(--van-line-height-lg);--van-label-mini-font-size: var(--van-font-size-sm);--van-label-mini-line-height: var(--van-line-height-md);--van-label-label-color: var(--van-gray-6);--van-label-value-color: var(--van-black);--van-label-bold-color: var(--van-gray-8);--van-label-link-color: var(--van-primary-color);--van-label-same-color: var(--van-gray-7);--van-label-gap: 2px;--van-label-left-icon-gap: 4px;--van-label-tags-gap: 4px;--van-label-media-gap: 6px;--van-label-media-size: 64px;--van-label-mini-media-size: 48px;--van-label-media-radius: 4px;--van-label-location-color: var(--van-gray-7);--van-label-location-font-size: var(--van-font-size-sm);--van-label-location-line-height: var(--van-line-height-md);--van-label-location-icon-size: 12px;--van-label-location-gap: 2px;--van-label-ellipsis-label-max-width: 120px}.van-label{display:flex;align-items:flex-start;gap:var(--van-label-gap);color:var(--van-label-value-color);font-size:var(--van-label-font-size);line-height:var(--van-label-line-height)}.van-label--vertical{flex-direction:column}.van-label--content-right .van-label__value{text-align:right}.van-label--mini{--van-label-font-size: var(--van-label-mini-font-size);--van-label-line-height: var(--van-label-mini-line-height);--van-label-media-size: var(--van-label-mini-media-size)}.van-label--ellipsis .van-label__label{flex:0 1 var(--van-label-ellipsis-label-max-width);max-width:var(--van-label-ellipsis-label-max-width);overflow:hidden;text-overflow:ellipsis}.van-label--ellipsis .van-label__value{overflow:hidden}.van-label--ellipsis .van-label__text,.van-label--ellipsis .van-label__link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-label__label{flex:none;color:var(--van-label-label-color);white-space:nowrap}.van-label__left-icon{display:flex;flex:none;align-items:center;justify-content:center;width:12px;height:var(--van-label-line-height);margin-right:calc(var(--van-label-left-icon-gap) - var(--van-label-gap));color:var(--van-label-label-color)}.van-label__left-icon .van-icon{width:12px;height:12px;font-size:12px;line-height:12px}.van-label__value{flex:1;min-width:0;color:inherit;overflow-wrap:anywhere}.van-label__text{display:block}.van-label--location .van-label__value{display:flex;flex-direction:column;gap:var(--van-label-location-gap);width:100%}.van-label--location .van-label__link{align-self:flex-start;text-align:left}.van-label__location{display:inline-flex;gap:var(--van-label-location-gap);align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--van-label-location-color);font-size:var(--van-label-location-font-size);font-weight:400;line-height:var(--van-label-location-line-height);overflow-wrap:anywhere}.van-label__location .van-icon{flex:none;font-size:var(--van-label-location-icon-size)}.van-label--bold .van-label__value{color:var(--van-label-bold-color);font-weight:var(--van-font-weight-bold)}.van-label--same-color .van-label__left-icon,.van-label--same-color .van-label__label,.van-label--same-color .van-label__value,.van-label--same-color .van-label__link{color:var(--van-label-same-color)}.van-label__link{display:inline;padding:0;color:var(--van-label-link-color);font:inherit;font-weight:var(--van-font-weight-bold);text-decoration:none;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__link:active{opacity:var(--van-active-opacity)}.van-label__tags,.van-label__media{display:flex;flex-wrap:wrap;align-items:flex-start}.van-label__tags{gap:var(--van-label-tags-gap);min-height:var(--van-label-line-height);align-items:center}.van-label__media{gap:var(--van-label-media-gap);width:100%}.van-label__media-item{position:relative;flex:none;width:var(--van-label-media-size);height:var(--van-label-media-size);padding:0;overflow:hidden;background:transparent;border:0;border-radius:var(--van-label-media-radius);cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__media-item:active{opacity:var(--van-active-opacity)}.van-label__media-item .van-image{display:block;width:100%;height:100%}.van-label__play{position:absolute;top:50%;left:50%;color:var(--van-white);font-size:24px;transform:translate(-50%,-50%);text-shadow:0 1px 2px rgba(0,0,0,.45)}
1
+ :root{--van-label-font-size: var(--van-font-size-md);--van-label-line-height: var(--van-line-height-lg);--van-label-mini-font-size: var(--van-font-size-sm);--van-label-mini-line-height: var(--van-line-height-md);--van-label-label-color: var(--van-gray-6);--van-label-value-color: var(--van-black);--van-label-bold-color: var(--van-gray-8);--van-label-link-color: var(--van-primary-color);--van-label-same-color: var(--van-gray-7);--van-label-gap: 2px;--van-label-left-icon-gap: 4px;--van-label-tags-gap: 4px;--van-label-media-gap: 6px;--van-label-media-size: 64px;--van-label-mini-media-size: 48px;--van-label-media-radius: 4px;--van-label-location-color: var(--van-gray-7);--van-label-location-font-size: var(--van-font-size-sm);--van-label-location-line-height: var(--van-line-height-md);--van-label-location-icon-size: 12px;--van-label-location-gap: 2px;--van-label-ellipsis-label-max-width: 120px}.van-label{display:flex;align-items:flex-start;gap:var(--van-label-gap);color:var(--van-label-value-color);font-size:var(--van-label-font-size);line-height:var(--van-label-line-height)}.van-label--vertical{flex-direction:column}.van-label--content-right .van-label__value{text-align:right}.van-label--mini{--van-label-font-size: var(--van-label-mini-font-size);--van-label-line-height: var(--van-label-mini-line-height);--van-label-media-size: var(--van-label-mini-media-size)}.van-label--ellipsis .van-label__label{flex:0 1 var(--van-label-ellipsis-label-max-width);max-width:var(--van-label-ellipsis-label-max-width);overflow:hidden;text-overflow:ellipsis}.van-label--ellipsis .van-label__value{overflow:hidden}.van-label--ellipsis .van-label__text,.van-label--ellipsis .van-label__link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-label__label{flex:none;color:var(--van-label-label-color);white-space:nowrap}.van-label__left-icon{display:flex;flex:none;align-items:center;justify-content:center;width:12px;height:var(--van-label-line-height);margin-right:calc(var(--van-label-left-icon-gap) - var(--van-label-gap));color:var(--van-label-label-color)}.van-label__left-icon .van-icon{width:12px;height:12px;font-size:12px;line-height:12px}.van-label__value{flex:1;min-width:0;color:inherit;overflow-wrap:anywhere}.van-label__text{display:block}.van-label--multiple-content .van-label__text{overflow-wrap:anywhere;white-space:normal}.van-label--location .van-label__value{display:flex;flex-direction:column;gap:var(--van-label-location-gap);width:100%}.van-label--location .van-label__link{align-self:flex-start;text-align:left}.van-label__location{display:inline-flex;gap:var(--van-label-location-gap);align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--van-label-location-color);font-size:var(--van-label-location-font-size);font-weight:400;line-height:var(--van-label-location-line-height);overflow-wrap:anywhere}.van-label__location .van-icon{flex:none;font-size:var(--van-label-location-icon-size)}.van-label--bold .van-label__value{color:var(--van-label-bold-color);font-weight:var(--van-font-weight-bold)}.van-label--same-color .van-label__left-icon,.van-label--same-color .van-label__label,.van-label--same-color .van-label__value,.van-label--same-color .van-label__link{color:var(--van-label-same-color)}.van-label__link{display:inline;padding:0;color:var(--van-label-link-color);font:inherit;font-weight:var(--van-font-weight-bold);text-decoration:none;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__link:active{opacity:var(--van-active-opacity)}.van-label__tags,.van-label__media{display:flex;flex-wrap:wrap;align-items:flex-start}.van-label__tags{gap:var(--van-label-tags-gap);min-height:var(--van-label-line-height);align-items:center}.van-label__media{gap:var(--van-label-media-gap);width:100%}.van-label__media-item{position:relative;flex:none;width:var(--van-label-media-size);height:var(--van-label-media-size);padding:0;overflow:hidden;background:transparent;border:0;border-radius:var(--van-label-media-radius);cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__media-item:active{opacity:var(--van-active-opacity)}.van-label__media-item .van-image{display:block;width:100%;height:100%}.van-label__play{position:absolute;top:50%;left:50%;color:var(--van-white);font-size:24px;transform:translate(-50%,-50%);text-shadow:0 1px 2px rgba(0,0,0,.45)}
@@ -19,6 +19,10 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
19
19
  type: import("vue").PropType<string>;
20
20
  default: string;
21
21
  };
22
+ contentList: {
23
+ type: import("vue").PropType<string[]>;
24
+ default: () => never[];
25
+ };
22
26
  type: {
23
27
  type: import("vue").PropType<import("./Label").LabelType>;
24
28
  default: import("./Label").LabelType;
@@ -70,6 +74,10 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
70
74
  type: import("vue").PropType<string>;
71
75
  default: string;
72
76
  };
77
+ contentList: {
78
+ type: import("vue").PropType<string[]>;
79
+ default: () => never[];
80
+ };
73
81
  type: {
74
82
  type: import("vue").PropType<import("./Label").LabelType>;
75
83
  default: import("./Label").LabelType;
@@ -117,6 +125,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
117
125
  showLabel: boolean;
118
126
  showContent: boolean;
119
127
  showColon: boolean | undefined;
128
+ contentList: string[];
120
129
  contentAlign: import("./Label").LabelContentAlign;
121
130
  showLeftIcon: boolean;
122
131
  sameColor: boolean;
@@ -105,6 +105,11 @@
105
105
  display: block;
106
106
  }
107
107
 
108
+ &--multiple-content .van-label__text {
109
+ overflow-wrap: anywhere;
110
+ white-space: normal;
111
+ }
112
+
108
113
  &--location .van-label__value {
109
114
  display: flex;
110
115
  flex-direction: column;
@@ -18,8 +18,8 @@ import "../../radio/index.css";
18
18
  import "../../cell/index.css";
19
19
  import "../../tree-select/index.css";
20
20
  import "../../field/index.css";
21
- import "../../search/index.css";
22
21
  import "../../dialog/index.css";
22
+ import "../../search/index.css";
23
23
  import "../../sticky/index.css";
24
24
  import "../../swipe/index.css";
25
25
  import "../../swipe-item/index.css";
@@ -18,8 +18,8 @@ import "../../radio/index.less";
18
18
  import "../../cell/index.less";
19
19
  import "../../tree-select/index.less";
20
20
  import "../../field/index.less";
21
- import "../../search/index.less";
22
21
  import "../../dialog/index.less";
22
+ import "../../search/index.less";
23
23
  import "../../sticky/index.less";
24
24
  import "../../swipe/index.less";
25
25
  import "../../swipe-item/index.less";