persagy-vant 0.0.39 → 0.0.40

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 (41) hide show
  1. package/es/cell/Cell.mjs +21 -11
  2. package/es/cell/index.css +1 -1
  3. package/es/cell/index.less +26 -2
  4. package/es/field/Field.d.ts +18 -1
  5. package/es/field/Field.mjs +21 -2
  6. package/es/field/index.css +1 -1
  7. package/es/field/index.d.ts +13 -1
  8. package/es/field/index.less +15 -0
  9. package/es/index.d.ts +1 -1
  10. package/es/index.mjs +1 -1
  11. package/es/material-display-bar/MaterialDisplayBar.d.ts +1 -1
  12. package/es/material-display-bar/index.d.ts +3 -3
  13. package/es/uploader/Uploader.d.ts +4 -0
  14. package/es/uploader/Uploader.mjs +3 -2
  15. package/es/uploader/index.d.ts +3 -0
  16. package/lib/cell/Cell.js +21 -11
  17. package/lib/cell/index.css +1 -1
  18. package/lib/cell/index.less +26 -2
  19. package/lib/field/Field.d.ts +18 -1
  20. package/lib/field/Field.js +21 -2
  21. package/lib/field/index.css +1 -1
  22. package/lib/field/index.d.ts +13 -1
  23. package/lib/field/index.less +15 -0
  24. package/lib/index.css +1 -1
  25. package/lib/index.d.ts +1 -1
  26. package/lib/index.js +1 -1
  27. package/lib/material-display-bar/MaterialDisplayBar.d.ts +1 -1
  28. package/lib/material-display-bar/index.d.ts +3 -3
  29. package/lib/uploader/Uploader.d.ts +4 -0
  30. package/lib/uploader/Uploader.js +2 -1
  31. package/lib/uploader/index.d.ts +3 -0
  32. package/lib/vant.cjs.js +45 -15
  33. package/lib/vant.es.js +45 -15
  34. package/lib/vant.js +45 -15
  35. package/lib/vant.min.js +1 -1
  36. package/lib/web-types.json +1 -1
  37. package/package.json +1 -1
  38. package/skills/use-persagy-vant/SKILL.md +7 -6
  39. package/skills/use-persagy-vant/references/component-catalog.md +3 -3
  40. package/skills/use-persagy-vant/references/component-variant-selection.md +39 -0
  41. package/skills/use-persagy-vant/references/element-component-matching.md +88 -0
package/lib/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.39";
119
+ export const version: "0.0.40";
package/lib/index.js CHANGED
@@ -246,7 +246,7 @@ __reExport(stdin_exports, require("./uploader"), module.exports);
246
246
  __reExport(stdin_exports, require("./video-preview"), module.exports);
247
247
  __reExport(stdin_exports, require("./work-order-card"), module.exports);
248
248
  __reExport(stdin_exports, require("./work-order-filter"), module.exports);
249
- const version = "0.0.39";
249
+ const version = "0.0.40";
250
250
  function install(app) {
251
251
  const components = [
252
252
  import_action_bar.ActionBar,
@@ -146,11 +146,11 @@ declare const _default: import("vue").DefineComponent<{
146
146
  }, {
147
147
  replace: boolean;
148
148
  name: string;
149
+ unit: string;
149
150
  showArrow: boolean;
150
151
  fields: MaterialDisplayBarField[];
151
152
  divider: boolean;
152
153
  quantityLabel: string;
153
- unit: string;
154
154
  rounded: boolean;
155
155
  stockInsufficient: boolean;
156
156
  stockInsufficientText: string;
@@ -88,11 +88,11 @@ export declare const MaterialPreviewList: import("../utils").WithInstall<import(
88
88
  }, {
89
89
  replace: boolean;
90
90
  name: string;
91
+ unit: string;
91
92
  showArrow: boolean;
92
93
  fields: import("./MaterialDisplayBar").MaterialDisplayBarField[];
93
94
  divider: boolean;
94
95
  quantityLabel: string;
95
- unit: string;
96
96
  rounded: boolean;
97
97
  stockInsufficient: boolean;
98
98
  stockInsufficientText: string;
@@ -189,11 +189,11 @@ export declare const MaterialPreview: import("../utils").WithInstall<import("vue
189
189
  }, {
190
190
  replace: boolean;
191
191
  name: string;
192
+ unit: string;
192
193
  showArrow: boolean;
193
194
  fields: import("./MaterialDisplayBar").MaterialDisplayBarField[];
194
195
  divider: boolean;
195
196
  quantityLabel: string;
196
- unit: string;
197
197
  rounded: boolean;
198
198
  stockInsufficient: boolean;
199
199
  stockInsufficientText: string;
@@ -290,11 +290,11 @@ export declare const MaterialDisplayBar: import("../utils").WithInstall<import("
290
290
  }, {
291
291
  replace: boolean;
292
292
  name: string;
293
+ unit: string;
293
294
  showArrow: boolean;
294
295
  fields: import("./MaterialDisplayBar").MaterialDisplayBarField[];
295
296
  divider: boolean;
296
297
  quantityLabel: string;
297
- unit: string;
298
298
  rounded: boolean;
299
299
  stockInsufficient: boolean;
300
300
  stockInsufficientText: string;
@@ -45,6 +45,7 @@ declare const uploaderProps: {
45
45
  type: BooleanConstructor;
46
46
  default: true;
47
47
  };
48
+ uploadFirst: BooleanConstructor;
48
49
  modelValue: {
49
50
  type: PropType<UploaderFileListItem[]>;
50
51
  default: () => never[];
@@ -109,6 +110,7 @@ declare const _default: import("vue").DefineComponent<{
109
110
  type: BooleanConstructor;
110
111
  default: true;
111
112
  };
113
+ uploadFirst: BooleanConstructor;
112
114
  modelValue: {
113
115
  type: PropType<UploaderFileListItem[]>;
114
116
  default: () => never[];
@@ -171,6 +173,7 @@ declare const _default: import("vue").DefineComponent<{
171
173
  type: BooleanConstructor;
172
174
  default: true;
173
175
  };
176
+ uploadFirst: BooleanConstructor;
174
177
  modelValue: {
175
178
  type: PropType<UploaderFileListItem[]>;
176
179
  default: () => never[];
@@ -213,6 +216,7 @@ declare const _default: import("vue").DefineComponent<{
213
216
  uploadIcon: string;
214
217
  deletable: boolean;
215
218
  showUpload: boolean;
219
+ uploadFirst: boolean;
216
220
  previewImage: boolean;
217
221
  previewFullImage: boolean;
218
222
  maxSize: UploaderMaxSize;
@@ -76,6 +76,7 @@ const uploaderProps = {
76
76
  deletable: import_utils.truthProp,
77
77
  afterRead: Function,
78
78
  showUpload: import_utils.truthProp,
79
+ uploadFirst: Boolean,
79
80
  modelValue: (0, import_utils.makeArrayProp)(),
80
81
  beforeRead: Function,
81
82
  beforeDelete: Function,
@@ -296,6 +297,6 @@ var stdin_default = (0, import_vue.defineComponent)({
296
297
  "class": (0, import_utils2.bem)("wrapper", {
297
298
  disabled: props.disabled
298
299
  })
299
- }, [renderPreviewList(), renderUpload()])]);
300
+ }, [props.uploadFirst ? (0, import_vue.createVNode)(import_vue.Fragment, null, [renderUpload(), renderPreviewList()]) : (0, import_vue.createVNode)(import_vue.Fragment, null, [renderPreviewList(), renderUpload()])])]);
300
301
  }
301
302
  });
@@ -41,6 +41,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
41
41
  type: BooleanConstructor;
42
42
  default: true;
43
43
  };
44
+ uploadFirst: BooleanConstructor;
44
45
  modelValue: {
45
46
  type: import("vue").PropType<import("./types").UploaderFileListItem[]>;
46
47
  default: () => never[];
@@ -103,6 +104,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
103
104
  type: BooleanConstructor;
104
105
  default: true;
105
106
  };
107
+ uploadFirst: BooleanConstructor;
106
108
  modelValue: {
107
109
  type: import("vue").PropType<import("./types").UploaderFileListItem[]>;
108
110
  default: () => never[];
@@ -145,6 +147,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
145
147
  uploadIcon: string;
146
148
  deletable: boolean;
147
149
  showUpload: boolean;
150
+ uploadFirst: boolean;
148
151
  previewImage: boolean;
149
152
  previewFullImage: boolean;
150
153
  maxSize: import("./types").UploaderMaxSize;
package/lib/vant.cjs.js CHANGED
@@ -3398,12 +3398,14 @@ var stdin_default$1L = vue.defineComponent({
3398
3398
  emit("update:multiLineNotesCollapsed", multiLineNotesCollapsed.value);
3399
3399
  }
3400
3400
  }
3401
- }, [props2.showTitleCollapseIcon && vue.createVNode(Icon, {
3401
+ }, [props2.showTitleCollapseIcon && vue.createVNode("div", {
3402
+ "class": bem$1y("title-collapse-action")
3403
+ }, [vue.createVNode(Icon, {
3402
3404
  "name": "trangle-down",
3403
3405
  "class": bem$1y("title-collapse-icon", {
3404
3406
  collapsed: multiLineNotesCollapsed.value
3405
3407
  })
3406
- }, null), slots.title ? slots.title() : vue.createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
3408
+ }, null)]), slots.title ? slots.title() : vue.createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
3407
3409
  }
3408
3410
  };
3409
3411
  const renderValue = () => {
@@ -3643,24 +3645,30 @@ var stdin_default$1L = vue.defineComponent({
3643
3645
  return;
3644
3646
  }
3645
3647
  if (slots["right-icon"]) {
3646
- return slots["right-icon"]();
3648
+ return vue.createVNode("div", {
3649
+ "class": bem$1y("right-icon-action")
3650
+ }, [slots["right-icon"]()]);
3647
3651
  }
3648
3652
  if (props2.rightIcon) {
3649
- return vue.createVNode(Icon, {
3653
+ return vue.createVNode("div", {
3654
+ "class": bem$1y("right-icon-action")
3655
+ }, [vue.createVNode(Icon, {
3650
3656
  "name": props2.rightIcon,
3651
3657
  "class": bem$1y("right-icon")
3652
- }, null);
3658
+ }, null)]);
3653
3659
  }
3654
3660
  if (props2.isLink) {
3655
3661
  const name2 = props2.arrowDirection && props2.arrowDirection !== "right" ? `arrow-${props2.arrowDirection}` : "arrow";
3656
- return vue.createVNode(Icon, {
3662
+ return vue.createVNode("div", {
3663
+ "class": bem$1y("right-icon-action")
3664
+ }, [vue.createVNode(Icon, {
3657
3665
  "name": name2,
3658
3666
  "class": bem$1y("right-icon")
3659
- }, null);
3667
+ }, null)]);
3660
3668
  }
3661
3669
  };
3662
3670
  return () => {
3663
- var _a2, _b2, _c;
3671
+ var _a2, _b2, _c, _d;
3664
3672
  const {
3665
3673
  size,
3666
3674
  center,
@@ -3673,14 +3681,16 @@ var stdin_default$1L = vue.defineComponent({
3673
3681
  } = props2;
3674
3682
  const clickable = (_a2 = props2.clickable) != null ? _a2 : isLink || rightIcon === "arrow" || hasSelect("left") || hasSelect("right");
3675
3683
  const hasBadge = isVisible(props2.showBadge, !!slots.badge || isDef(props2.badge));
3676
- const cellSize = (_b2 = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _b2 : "normal";
3684
+ const hasMultiLineNotes = isVisible(props2.showMultiLineNotes, !!slots["multi-line-notes"] || !!((_b2 = props2.multiLineNotes) == null ? void 0 : _b2.length));
3685
+ const cellSize = (_c = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _c : "normal";
3677
3686
  const classes = {
3678
3687
  center: center || hasBadge,
3679
3688
  required,
3680
3689
  "title-bold": titleBold,
3681
3690
  clickable,
3682
3691
  borderless: !border,
3683
- "three-line": threeLine
3692
+ "three-line": threeLine,
3693
+ "multi-line-notes": hasMultiLineNotes
3684
3694
  };
3685
3695
  if (cellSize) {
3686
3696
  classes[cellSize] = !!cellSize;
@@ -3699,7 +3709,7 @@ var stdin_default$1L = vue.defineComponent({
3699
3709
  "role": clickable ? "button" : void 0,
3700
3710
  "tabindex": clickable ? 0 : void 0,
3701
3711
  "onClick": onClick
3702
- }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_c = slots.extra) == null ? void 0 : _c.call(slots)]);
3712
+ }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_d = slots.extra) == null ? void 0 : _d.call(slots)]);
3703
3713
  };
3704
3714
  }
3705
3715
  });
@@ -3994,6 +4004,11 @@ const fieldProps = extend({}, cellSharedProps, fieldSharedProps, {
3994
4004
  labelClass: unknownProp,
3995
4005
  labelAlign: String,
3996
4006
  labelPosition: String,
4007
+ unit: numericProp,
4008
+ showUnit: {
4009
+ type: Boolean,
4010
+ default: void 0
4011
+ },
3997
4012
  showWordLimit: Boolean,
3998
4013
  errorMessageAlign: String,
3999
4014
  colon: {
@@ -4008,7 +4023,7 @@ const fieldProps = extend({}, cellSharedProps, fieldSharedProps, {
4008
4023
  var stdin_default$1J = vue.defineComponent({
4009
4024
  name: name$1A,
4010
4025
  props: fieldProps,
4011
- emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "update:modelValue"],
4026
+ emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "click-title-icon", "update:modelValue"],
4012
4027
  setup(props2, {
4013
4028
  emit,
4014
4029
  slots
@@ -4341,6 +4356,16 @@ var stdin_default$1J = vue.defineComponent({
4341
4356
  }, null)]);
4342
4357
  }
4343
4358
  };
4359
+ const renderUnit = () => {
4360
+ var _a;
4361
+ const showUnit = (_a = props2.showUnit) != null ? _a : isDef(props2.unit);
4362
+ if (!showUnit || !isDef(props2.unit)) {
4363
+ return;
4364
+ }
4365
+ return vue.createVNode("span", {
4366
+ "class": bem$1w("unit")
4367
+ }, [props2.unit]);
4368
+ };
4344
4369
  const renderWordLimit = () => {
4345
4370
  if (props2.showWordLimit && props2.maxlength) {
4346
4371
  const count = getStringLength(getModelValue());
@@ -4380,7 +4405,7 @@ var stdin_default$1J = vue.defineComponent({
4380
4405
  };
4381
4406
  const renderFieldBody = () => [vue.createVNode("div", {
4382
4407
  "class": bem$1w("body")
4383
- }, [renderInput(), showClear.value && vue.createVNode(Icon, {
4408
+ }, [renderInput(), renderUnit(), showClear.value && vue.createVNode(Icon, {
4384
4409
  "ref": clearIconRef,
4385
4410
  "name": props2.clearIcon,
4386
4411
  "class": bem$1w("clear")
@@ -4435,6 +4460,10 @@ var stdin_default$1J = vue.defineComponent({
4435
4460
  "errorBorder": props2.errorBorder,
4436
4461
  "isLink": props2.isLink,
4437
4462
  "clickable": props2.clickable,
4463
+ "titleIcon": props2.titleIcon,
4464
+ "titleIconClickable": props2.titleIconClickable,
4465
+ "showTitleIcon": props2.showTitleIcon,
4466
+ "onClick-title-icon": (event) => emit("click-title-icon", event),
4438
4467
  "titleStyle": labelStyle.value,
4439
4468
  "valueClass": bem$1w("value"),
4440
4469
  "titleClass": [bem$1w("label", [labelAlign, {
@@ -18811,6 +18840,7 @@ const uploaderProps = {
18811
18840
  deletable: truthProp,
18812
18841
  afterRead: Function,
18813
18842
  showUpload: truthProp,
18843
+ uploadFirst: Boolean,
18814
18844
  modelValue: makeArrayProp(),
18815
18845
  beforeRead: Function,
18816
18846
  beforeDelete: Function,
@@ -19031,7 +19061,7 @@ var stdin_default$7 = vue.defineComponent({
19031
19061
  "class": bem$3("wrapper", {
19032
19062
  disabled: props2.disabled
19033
19063
  })
19034
- }, [renderPreviewList(), renderUpload()])]);
19064
+ }, [props2.uploadFirst ? vue.createVNode(vue.Fragment, null, [renderUpload(), renderPreviewList()]) : vue.createVNode(vue.Fragment, null, [renderPreviewList(), renderUpload()])])]);
19035
19065
  }
19036
19066
  });
19037
19067
  const Uploader = withInstall(stdin_default$7);
@@ -20911,7 +20941,7 @@ const Lazyload = {
20911
20941
  });
20912
20942
  }
20913
20943
  };
20914
- const version = "0.0.39";
20944
+ const version = "0.0.40";
20915
20945
  function install(app) {
20916
20946
  const components = [
20917
20947
  ActionBar,
package/lib/vant.es.js CHANGED
@@ -3396,12 +3396,14 @@ var stdin_default$1L = defineComponent({
3396
3396
  emit("update:multiLineNotesCollapsed", multiLineNotesCollapsed.value);
3397
3397
  }
3398
3398
  }
3399
- }, [props2.showTitleCollapseIcon && createVNode(Icon, {
3399
+ }, [props2.showTitleCollapseIcon && createVNode("div", {
3400
+ "class": bem$1y("title-collapse-action")
3401
+ }, [createVNode(Icon, {
3400
3402
  "name": "trangle-down",
3401
3403
  "class": bem$1y("title-collapse-icon", {
3402
3404
  collapsed: multiLineNotesCollapsed.value
3403
3405
  })
3404
- }, null), slots.title ? slots.title() : createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
3406
+ }, null)]), slots.title ? slots.title() : createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
3405
3407
  }
3406
3408
  };
3407
3409
  const renderValue = () => {
@@ -3641,24 +3643,30 @@ var stdin_default$1L = defineComponent({
3641
3643
  return;
3642
3644
  }
3643
3645
  if (slots["right-icon"]) {
3644
- return slots["right-icon"]();
3646
+ return createVNode("div", {
3647
+ "class": bem$1y("right-icon-action")
3648
+ }, [slots["right-icon"]()]);
3645
3649
  }
3646
3650
  if (props2.rightIcon) {
3647
- return createVNode(Icon, {
3651
+ return createVNode("div", {
3652
+ "class": bem$1y("right-icon-action")
3653
+ }, [createVNode(Icon, {
3648
3654
  "name": props2.rightIcon,
3649
3655
  "class": bem$1y("right-icon")
3650
- }, null);
3656
+ }, null)]);
3651
3657
  }
3652
3658
  if (props2.isLink) {
3653
3659
  const name2 = props2.arrowDirection && props2.arrowDirection !== "right" ? `arrow-${props2.arrowDirection}` : "arrow";
3654
- return createVNode(Icon, {
3660
+ return createVNode("div", {
3661
+ "class": bem$1y("right-icon-action")
3662
+ }, [createVNode(Icon, {
3655
3663
  "name": name2,
3656
3664
  "class": bem$1y("right-icon")
3657
- }, null);
3665
+ }, null)]);
3658
3666
  }
3659
3667
  };
3660
3668
  return () => {
3661
- var _a2, _b2, _c;
3669
+ var _a2, _b2, _c, _d;
3662
3670
  const {
3663
3671
  size,
3664
3672
  center,
@@ -3671,14 +3679,16 @@ var stdin_default$1L = defineComponent({
3671
3679
  } = props2;
3672
3680
  const clickable = (_a2 = props2.clickable) != null ? _a2 : isLink || rightIcon === "arrow" || hasSelect("left") || hasSelect("right");
3673
3681
  const hasBadge = isVisible(props2.showBadge, !!slots.badge || isDef(props2.badge));
3674
- const cellSize = (_b2 = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _b2 : "normal";
3682
+ const hasMultiLineNotes = isVisible(props2.showMultiLineNotes, !!slots["multi-line-notes"] || !!((_b2 = props2.multiLineNotes) == null ? void 0 : _b2.length));
3683
+ const cellSize = (_c = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _c : "normal";
3675
3684
  const classes = {
3676
3685
  center: center || hasBadge,
3677
3686
  required,
3678
3687
  "title-bold": titleBold,
3679
3688
  clickable,
3680
3689
  borderless: !border,
3681
- "three-line": threeLine
3690
+ "three-line": threeLine,
3691
+ "multi-line-notes": hasMultiLineNotes
3682
3692
  };
3683
3693
  if (cellSize) {
3684
3694
  classes[cellSize] = !!cellSize;
@@ -3697,7 +3707,7 @@ var stdin_default$1L = defineComponent({
3697
3707
  "role": clickable ? "button" : void 0,
3698
3708
  "tabindex": clickable ? 0 : void 0,
3699
3709
  "onClick": onClick
3700
- }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_c = slots.extra) == null ? void 0 : _c.call(slots)]);
3710
+ }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_d = slots.extra) == null ? void 0 : _d.call(slots)]);
3701
3711
  };
3702
3712
  }
3703
3713
  });
@@ -3992,6 +4002,11 @@ const fieldProps = extend({}, cellSharedProps, fieldSharedProps, {
3992
4002
  labelClass: unknownProp,
3993
4003
  labelAlign: String,
3994
4004
  labelPosition: String,
4005
+ unit: numericProp,
4006
+ showUnit: {
4007
+ type: Boolean,
4008
+ default: void 0
4009
+ },
3995
4010
  showWordLimit: Boolean,
3996
4011
  errorMessageAlign: String,
3997
4012
  colon: {
@@ -4006,7 +4021,7 @@ const fieldProps = extend({}, cellSharedProps, fieldSharedProps, {
4006
4021
  var stdin_default$1J = defineComponent({
4007
4022
  name: name$1A,
4008
4023
  props: fieldProps,
4009
- emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "update:modelValue"],
4024
+ emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "click-title-icon", "update:modelValue"],
4010
4025
  setup(props2, {
4011
4026
  emit,
4012
4027
  slots
@@ -4339,6 +4354,16 @@ var stdin_default$1J = defineComponent({
4339
4354
  }, null)]);
4340
4355
  }
4341
4356
  };
4357
+ const renderUnit = () => {
4358
+ var _a;
4359
+ const showUnit = (_a = props2.showUnit) != null ? _a : isDef(props2.unit);
4360
+ if (!showUnit || !isDef(props2.unit)) {
4361
+ return;
4362
+ }
4363
+ return createVNode("span", {
4364
+ "class": bem$1w("unit")
4365
+ }, [props2.unit]);
4366
+ };
4342
4367
  const renderWordLimit = () => {
4343
4368
  if (props2.showWordLimit && props2.maxlength) {
4344
4369
  const count = getStringLength(getModelValue());
@@ -4378,7 +4403,7 @@ var stdin_default$1J = defineComponent({
4378
4403
  };
4379
4404
  const renderFieldBody = () => [createVNode("div", {
4380
4405
  "class": bem$1w("body")
4381
- }, [renderInput(), showClear.value && createVNode(Icon, {
4406
+ }, [renderInput(), renderUnit(), showClear.value && createVNode(Icon, {
4382
4407
  "ref": clearIconRef,
4383
4408
  "name": props2.clearIcon,
4384
4409
  "class": bem$1w("clear")
@@ -4433,6 +4458,10 @@ var stdin_default$1J = defineComponent({
4433
4458
  "errorBorder": props2.errorBorder,
4434
4459
  "isLink": props2.isLink,
4435
4460
  "clickable": props2.clickable,
4461
+ "titleIcon": props2.titleIcon,
4462
+ "titleIconClickable": props2.titleIconClickable,
4463
+ "showTitleIcon": props2.showTitleIcon,
4464
+ "onClick-title-icon": (event) => emit("click-title-icon", event),
4436
4465
  "titleStyle": labelStyle.value,
4437
4466
  "valueClass": bem$1w("value"),
4438
4467
  "titleClass": [bem$1w("label", [labelAlign, {
@@ -18809,6 +18838,7 @@ const uploaderProps = {
18809
18838
  deletable: truthProp,
18810
18839
  afterRead: Function,
18811
18840
  showUpload: truthProp,
18841
+ uploadFirst: Boolean,
18812
18842
  modelValue: makeArrayProp(),
18813
18843
  beforeRead: Function,
18814
18844
  beforeDelete: Function,
@@ -19029,7 +19059,7 @@ var stdin_default$7 = defineComponent({
19029
19059
  "class": bem$3("wrapper", {
19030
19060
  disabled: props2.disabled
19031
19061
  })
19032
- }, [renderPreviewList(), renderUpload()])]);
19062
+ }, [props2.uploadFirst ? createVNode(Fragment, null, [renderUpload(), renderPreviewList()]) : createVNode(Fragment, null, [renderPreviewList(), renderUpload()])])]);
19033
19063
  }
19034
19064
  });
19035
19065
  const Uploader = withInstall(stdin_default$7);
@@ -20909,7 +20939,7 @@ const Lazyload = {
20909
20939
  });
20910
20940
  }
20911
20941
  };
20912
- const version = "0.0.39";
20942
+ const version = "0.0.40";
20913
20943
  function install(app) {
20914
20944
  const components = [
20915
20945
  ActionBar,
package/lib/vant.js CHANGED
@@ -4639,12 +4639,14 @@
4639
4639
  emit("update:multiLineNotesCollapsed", multiLineNotesCollapsed.value);
4640
4640
  }
4641
4641
  }
4642
- }, [props2.showTitleCollapseIcon && vue.createVNode(Icon, {
4642
+ }, [props2.showTitleCollapseIcon && vue.createVNode("div", {
4643
+ "class": bem$1y("title-collapse-action")
4644
+ }, [vue.createVNode(Icon, {
4643
4645
  "name": "trangle-down",
4644
4646
  "class": bem$1y("title-collapse-icon", {
4645
4647
  collapsed: multiLineNotesCollapsed.value
4646
4648
  })
4647
- }, null), slots.title ? slots.title() : vue.createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
4649
+ }, null)]), slots.title ? slots.title() : vue.createVNode("span", null, [props2.title]), renderTitleTag(), renderTags(), renderTitleIcon()]), renderWrapTags(), renderLabel(), props2.threeLine && renderDescription(), !multiLineNotesCollapsed.value && renderMultiLineNotes()]);
4648
4650
  }
4649
4651
  };
4650
4652
  const renderValue = () => {
@@ -4884,24 +4886,30 @@
4884
4886
  return;
4885
4887
  }
4886
4888
  if (slots["right-icon"]) {
4887
- return slots["right-icon"]();
4889
+ return vue.createVNode("div", {
4890
+ "class": bem$1y("right-icon-action")
4891
+ }, [slots["right-icon"]()]);
4888
4892
  }
4889
4893
  if (props2.rightIcon) {
4890
- return vue.createVNode(Icon, {
4894
+ return vue.createVNode("div", {
4895
+ "class": bem$1y("right-icon-action")
4896
+ }, [vue.createVNode(Icon, {
4891
4897
  "name": props2.rightIcon,
4892
4898
  "class": bem$1y("right-icon")
4893
- }, null);
4899
+ }, null)]);
4894
4900
  }
4895
4901
  if (props2.isLink) {
4896
4902
  const name2 = props2.arrowDirection && props2.arrowDirection !== "right" ? `arrow-${props2.arrowDirection}` : "arrow";
4897
- return vue.createVNode(Icon, {
4903
+ return vue.createVNode("div", {
4904
+ "class": bem$1y("right-icon-action")
4905
+ }, [vue.createVNode(Icon, {
4898
4906
  "name": name2,
4899
4907
  "class": bem$1y("right-icon")
4900
- }, null);
4908
+ }, null)]);
4901
4909
  }
4902
4910
  };
4903
4911
  return () => {
4904
- var _a2, _b2, _c;
4912
+ var _a2, _b2, _c, _d;
4905
4913
  const {
4906
4914
  size,
4907
4915
  center,
@@ -4914,14 +4922,16 @@
4914
4922
  } = props2;
4915
4923
  const clickable = (_a2 = props2.clickable) != null ? _a2 : isLink || rightIcon === "arrow" || hasSelect("left") || hasSelect("right");
4916
4924
  const hasBadge = isVisible(props2.showBadge, !!slots.badge || isDef(props2.badge));
4917
- const cellSize = (_b2 = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _b2 : "normal";
4925
+ const hasMultiLineNotes = isVisible(props2.showMultiLineNotes, !!slots["multi-line-notes"] || !!((_b2 = props2.multiLineNotes) == null ? void 0 : _b2.length));
4926
+ const cellSize = (_c = size != null ? size : config == null ? void 0 : config.cellSize) != null ? _c : "normal";
4918
4927
  const classes = {
4919
4928
  center: center || hasBadge,
4920
4929
  required,
4921
4930
  "title-bold": titleBold,
4922
4931
  clickable,
4923
4932
  borderless: !border,
4924
- "three-line": threeLine
4933
+ "three-line": threeLine,
4934
+ "multi-line-notes": hasMultiLineNotes
4925
4935
  };
4926
4936
  if (cellSize) {
4927
4937
  classes[cellSize] = !!cellSize;
@@ -4940,7 +4950,7 @@
4940
4950
  "role": clickable ? "button" : void 0,
4941
4951
  "tabindex": clickable ? 0 : void 0,
4942
4952
  "onClick": onClick
4943
- }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_c = slots.extra) == null ? void 0 : _c.call(slots)]);
4953
+ }, [renderSelect("left"), renderAvatar("left"), renderLeftIcon(), renderBlueMark(), renderTitle(), renderValue(), renderNote(), renderAvatar("right"), renderBadge(), renderSelect("right"), renderRightIcon(), (_d = slots.extra) == null ? void 0 : _d.call(slots)]);
4944
4954
  };
4945
4955
  }
4946
4956
  });
@@ -5232,6 +5242,11 @@
5232
5242
  labelClass: unknownProp,
5233
5243
  labelAlign: String,
5234
5244
  labelPosition: String,
5245
+ unit: numericProp,
5246
+ showUnit: {
5247
+ type: Boolean,
5248
+ default: void 0
5249
+ },
5235
5250
  showWordLimit: Boolean,
5236
5251
  errorMessageAlign: String,
5237
5252
  colon: {
@@ -5246,7 +5261,7 @@
5246
5261
  var stdin_default$1J = vue.defineComponent({
5247
5262
  name: name$1A,
5248
5263
  props: fieldProps,
5249
- emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "update:modelValue"],
5264
+ emits: ["blur", "focus", "clear", "keypress", "click-input", "end-validate", "start-validate", "click-left-icon", "click-right-icon", "click-title-icon", "update:modelValue"],
5250
5265
  setup(props2, {
5251
5266
  emit,
5252
5267
  slots
@@ -5579,6 +5594,16 @@
5579
5594
  }, null)]);
5580
5595
  }
5581
5596
  };
5597
+ const renderUnit = () => {
5598
+ var _a;
5599
+ const showUnit = (_a = props2.showUnit) != null ? _a : isDef(props2.unit);
5600
+ if (!showUnit || !isDef(props2.unit)) {
5601
+ return;
5602
+ }
5603
+ return vue.createVNode("span", {
5604
+ "class": bem$1w("unit")
5605
+ }, [props2.unit]);
5606
+ };
5582
5607
  const renderWordLimit = () => {
5583
5608
  if (props2.showWordLimit && props2.maxlength) {
5584
5609
  const count = getStringLength(getModelValue());
@@ -5618,7 +5643,7 @@
5618
5643
  };
5619
5644
  const renderFieldBody = () => [vue.createVNode("div", {
5620
5645
  "class": bem$1w("body")
5621
- }, [renderInput(), showClear.value && vue.createVNode(Icon, {
5646
+ }, [renderInput(), renderUnit(), showClear.value && vue.createVNode(Icon, {
5622
5647
  "ref": clearIconRef,
5623
5648
  "name": props2.clearIcon,
5624
5649
  "class": bem$1w("clear")
@@ -5673,6 +5698,10 @@
5673
5698
  "errorBorder": props2.errorBorder,
5674
5699
  "isLink": props2.isLink,
5675
5700
  "clickable": props2.clickable,
5701
+ "titleIcon": props2.titleIcon,
5702
+ "titleIconClickable": props2.titleIconClickable,
5703
+ "showTitleIcon": props2.showTitleIcon,
5704
+ "onClick-title-icon": (event) => emit("click-title-icon", event),
5676
5705
  "titleStyle": labelStyle.value,
5677
5706
  "valueClass": bem$1w("value"),
5678
5707
  "titleClass": [bem$1w("label", [labelAlign, {
@@ -19998,6 +20027,7 @@
19998
20027
  deletable: truthProp,
19999
20028
  afterRead: Function,
20000
20029
  showUpload: truthProp,
20030
+ uploadFirst: Boolean,
20001
20031
  modelValue: makeArrayProp(),
20002
20032
  beforeRead: Function,
20003
20033
  beforeDelete: Function,
@@ -20218,7 +20248,7 @@
20218
20248
  "class": bem$3("wrapper", {
20219
20249
  disabled: props2.disabled
20220
20250
  })
20221
- }, [renderPreviewList(), renderUpload()])]);
20251
+ }, [props2.uploadFirst ? vue.createVNode(vue.Fragment, null, [renderUpload(), renderPreviewList()]) : vue.createVNode(vue.Fragment, null, [renderPreviewList(), renderUpload()])])]);
20222
20252
  }
20223
20253
  });
20224
20254
  const Uploader = withInstall(stdin_default$7);
@@ -24498,7 +24528,7 @@
24498
24528
  });
24499
24529
  }
24500
24530
  };
24501
- const version = "0.0.39";
24531
+ const version = "0.0.40";
24502
24532
  function install(app) {
24503
24533
  const components = [
24504
24534
  ActionBar,