persagy-vant 0.0.39 → 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 (113) 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/checkbox-panel/CheckboxPanel.d.ts +46 -1
  5. package/es/checkbox-panel/CheckboxPanel.mjs +121 -35
  6. package/es/checkbox-panel/index.css +1 -1
  7. package/es/checkbox-panel/index.d.ts +35 -1
  8. package/es/checkbox-panel/index.less +8 -2
  9. package/es/checkbox-panel/style/index.mjs +5 -0
  10. package/es/checkbox-panel/style/less.mjs +5 -0
  11. package/es/field/Field.d.ts +18 -1
  12. package/es/field/Field.mjs +21 -2
  13. package/es/field/index.css +1 -1
  14. package/es/field/index.d.ts +13 -1
  15. package/es/field/index.less +15 -0
  16. package/es/index.d.ts +1 -1
  17. package/es/index.mjs +1 -1
  18. package/es/label/Label.d.ts +13 -0
  19. package/es/label/Label.mjs +11 -4
  20. package/es/label/index.css +1 -1
  21. package/es/label/index.d.ts +9 -0
  22. package/es/label/index.less +5 -0
  23. package/es/location-select/style/index.mjs +1 -1
  24. package/es/location-select/style/less.mjs +1 -1
  25. package/es/material-action-bar/MaterialActionBar.d.ts +19 -0
  26. package/es/material-action-bar/MaterialActionBar.mjs +9 -5
  27. package/es/material-action-bar/index.css +1 -1
  28. package/es/material-action-bar/index.d.ts +36 -0
  29. package/es/material-action-bar/index.less +4 -2
  30. package/es/material-add/index.css +1 -1
  31. package/es/material-add/style/index.mjs +1 -1
  32. package/es/material-add/style/less.mjs +1 -1
  33. package/es/material-display-bar/MaterialDisplayBar.d.ts +1 -1
  34. package/es/material-display-bar/MaterialDisplayBar.mjs +0 -1
  35. package/es/material-display-bar/index.css +1 -1
  36. package/es/material-display-bar/index.d.ts +3 -3
  37. package/es/material-display-bar/index.less +2 -1
  38. package/es/material-display-bar/var.less +3 -2
  39. package/es/stepper/Stepper.d.ts +1 -1
  40. package/es/stepper/index.css +1 -1
  41. package/es/stepper/index.less +19 -0
  42. package/es/title-bar/TitleBar.d.ts +30 -0
  43. package/es/title-bar/TitleBar.mjs +7 -1
  44. package/es/title-bar/index.css +1 -1
  45. package/es/title-bar/index.d.ts +21 -0
  46. package/es/title-bar/index.less +4 -2
  47. package/es/uploader/Uploader.d.ts +4 -0
  48. package/es/uploader/Uploader.mjs +3 -2
  49. package/es/uploader/index.d.ts +3 -0
  50. package/lib/cell/Cell.js +21 -11
  51. package/lib/cell/index.css +1 -1
  52. package/lib/cell/index.less +26 -2
  53. package/lib/checkbox-panel/CheckboxPanel.d.ts +46 -1
  54. package/lib/checkbox-panel/CheckboxPanel.js +120 -34
  55. package/lib/checkbox-panel/index.css +1 -1
  56. package/lib/checkbox-panel/index.d.ts +35 -1
  57. package/lib/checkbox-panel/index.less +8 -2
  58. package/lib/checkbox-panel/style/index.js +5 -0
  59. package/lib/checkbox-panel/style/less.js +5 -0
  60. package/lib/field/Field.d.ts +18 -1
  61. package/lib/field/Field.js +21 -2
  62. package/lib/field/index.css +1 -1
  63. package/lib/field/index.d.ts +13 -1
  64. package/lib/field/index.less +15 -0
  65. package/lib/index.css +1 -1
  66. package/lib/index.d.ts +1 -1
  67. package/lib/index.js +1 -1
  68. package/lib/index.less +5 -5
  69. package/lib/label/Label.d.ts +13 -0
  70. package/lib/label/Label.js +11 -4
  71. package/lib/label/index.css +1 -1
  72. package/lib/label/index.d.ts +9 -0
  73. package/lib/label/index.less +5 -0
  74. package/lib/location-select/style/index.js +1 -1
  75. package/lib/location-select/style/less.js +1 -1
  76. package/lib/material-action-bar/MaterialActionBar.d.ts +19 -0
  77. package/lib/material-action-bar/MaterialActionBar.js +8 -4
  78. package/lib/material-action-bar/index.css +1 -1
  79. package/lib/material-action-bar/index.d.ts +36 -0
  80. package/lib/material-action-bar/index.less +4 -2
  81. package/lib/material-add/index.css +1 -1
  82. package/lib/material-add/style/index.js +1 -1
  83. package/lib/material-add/style/less.js +1 -1
  84. package/lib/material-display-bar/MaterialDisplayBar.d.ts +1 -1
  85. package/lib/material-display-bar/MaterialDisplayBar.js +0 -1
  86. package/lib/material-display-bar/index.css +1 -1
  87. package/lib/material-display-bar/index.d.ts +3 -3
  88. package/lib/material-display-bar/index.less +2 -1
  89. package/lib/material-display-bar/var.less +3 -2
  90. package/lib/stepper/Stepper.d.ts +1 -1
  91. package/lib/stepper/index.css +1 -1
  92. package/lib/stepper/index.less +19 -0
  93. package/lib/title-bar/TitleBar.d.ts +30 -0
  94. package/lib/title-bar/TitleBar.js +7 -1
  95. package/lib/title-bar/index.css +1 -1
  96. package/lib/title-bar/index.d.ts +21 -0
  97. package/lib/title-bar/index.less +4 -2
  98. package/lib/uploader/Uploader.d.ts +4 -0
  99. package/lib/uploader/Uploader.js +2 -1
  100. package/lib/uploader/index.d.ts +3 -0
  101. package/lib/vant.cjs.js +924 -796
  102. package/lib/vant.es.js +925 -797
  103. package/lib/vant.js +924 -796
  104. package/lib/vant.min.js +1 -1
  105. package/lib/web-types.json +1 -1
  106. package/package.json +1 -1
  107. package/skills/use-persagy-vant/SKILL.md +7 -6
  108. package/skills/use-persagy-vant/references/component-catalog.md +4 -4
  109. package/skills/use-persagy-vant/references/component-variant-selection.md +39 -0
  110. package/skills/use-persagy-vant/references/design-interaction-baseline.md +1 -0
  111. package/skills/use-persagy-vant/references/element-component-matching.md +89 -0
  112. package/skills/use-persagy-vant/references/page-recipes.md +1 -0
  113. package/skills/use-persagy-vant/references/public-style-system.md +6 -0
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, {
@@ -9661,200 +9690,574 @@
9661
9690
  });
9662
9691
  const CellGroup = withInstall(stdin_default$1i);
9663
9692
  const CheckboxGroup = withInstall(stdin_default$1R);
9664
- const [name$18, bem$17] = createNamespace("checkbox-panel");
9665
- const checkboxPanelProps = {
9666
- show: Boolean,
9667
- title: String,
9668
- options: makeArrayProp(),
9669
- modelValue: Array,
9670
- confirmText: makeStringProp("确定"),
9671
- selectAllText: makeStringProp("全选"),
9672
- cancelSelectAllText: makeStringProp("取消全选")
9693
+ const [name$18, bem$17] = createNamespace("empty");
9694
+ const emptyProps = {
9695
+ image: makeStringProp("default"),
9696
+ imageSize: [Number, String, Array],
9697
+ description: String
9673
9698
  };
9674
9699
  var stdin_default$1h = vue.defineComponent({
9675
9700
  name: name$18,
9676
- props: checkboxPanelProps,
9677
- emits: ["update:show", "update:modelValue", "confirm"],
9701
+ props: emptyProps,
9678
9702
  setup(props2, {
9679
- emit
9703
+ slots
9680
9704
  }) {
9681
- const selectedValues = vue.computed(() => props2.modelValue || []);
9682
- const selectableOptions = vue.computed(() => props2.options.filter((option) => !option.disabled));
9683
- const isAllSelected = vue.computed(() => selectableOptions.value.length > 0 && selectableOptions.value.every((option) => selectedValues.value.includes(option.value)));
9684
- const close = () => emit("update:show", false);
9685
- const toggleOption = (option) => {
9686
- if (option.disabled)
9687
- return;
9688
- const values = [...selectedValues.value];
9689
- const index = values.indexOf(option.value);
9690
- index === -1 ? values.push(option.value) : values.splice(index, 1);
9691
- emit("update:modelValue", values);
9705
+ const renderDescription = () => {
9706
+ const description = slots.description ? slots.description() : props2.description;
9707
+ if (description) {
9708
+ return vue.createVNode("p", {
9709
+ "class": bem$17("description")
9710
+ }, [description]);
9711
+ }
9692
9712
  };
9693
- const toggleAll = () => emit("update:modelValue", isAllSelected.value ? [] : selectableOptions.value.map((option) => option.value));
9694
- const confirm = () => {
9695
- emit("confirm", selectedValues.value);
9696
- close();
9713
+ const renderBottom = () => {
9714
+ if (slots.default) {
9715
+ return vue.createVNode("div", {
9716
+ "class": bem$17("bottom")
9717
+ }, [slots.default()]);
9718
+ }
9697
9719
  };
9698
- return () => vue.createVNode(ActionSheet, {
9699
- "show": props2.show,
9700
- "class": bem$17(),
9701
- "onUpdate:show": (show) => emit("update:show", show)
9702
- }, {
9703
- default: () => [vue.createVNode("div", {
9704
- "class": bem$17("content")
9705
- }, [vue.createVNode("div", {
9706
- "class": bem$17("nav-wrapper")
9707
- }, [vue.createVNode(NavBar, {
9708
- "title": props2.title,
9709
- "border": false,
9710
- "class": bem$17("nav")
9711
- }, {
9712
- left: () => vue.createVNode(Icon, {
9713
- "name": "cross",
9714
- "size": "22",
9715
- "onClick": close
9716
- }, null),
9717
- right: () => vue.createVNode("span", {
9718
- "class": bem$17("select-all"),
9719
- "onClick": toggleAll
9720
- }, [isAllSelected.value ? props2.cancelSelectAllText : props2.selectAllText])
9721
- })]), vue.createVNode("div", {
9722
- "class": bem$17("body")
9723
- }, [vue.createVNode(CheckboxGroup, {
9724
- "modelValue": selectedValues.value,
9725
- "class": bem$17("card"),
9726
- "onUpdate:modelValue": (value) => emit("update:modelValue", value)
9727
- }, {
9728
- default: () => [props2.options.map((option) => vue.createVNode(Cell, {
9729
- "key": option.value,
9730
- "clickable": !option.disabled,
9731
- "title": option.label,
9732
- "onClick": () => toggleOption(option)
9733
- }, {
9734
- "right-icon": () => vue.createVNode(Checkbox, {
9735
- "name": option.value,
9736
- "disabled": option.disabled,
9737
- "onClick": (event) => event.stopPropagation()
9738
- }, null)
9739
- }))]
9740
- })]), vue.createVNode("div", {
9741
- "class": bem$17("footer")
9742
- }, [vue.createVNode(Button, {
9743
- "block": true,
9744
- "type": "primary",
9745
- "onClick": confirm
9746
- }, {
9747
- default: () => [props2.confirmText]
9748
- })])])]
9749
- });
9720
+ const renderImage = () => {
9721
+ if (slots.image) {
9722
+ return slots.image();
9723
+ }
9724
+ if (props2.image === "default" || props2.image === "network") {
9725
+ return vue.createVNode("div", {
9726
+ "class": bem$17("image-preset", props2.image)
9727
+ }, null);
9728
+ }
9729
+ return vue.createVNode("img", {
9730
+ "src": props2.image
9731
+ }, null);
9732
+ };
9733
+ return () => vue.createVNode("div", {
9734
+ "class": bem$17()
9735
+ }, [vue.createVNode("div", {
9736
+ "class": bem$17("image"),
9737
+ "style": getSizeStyle(props2.imageSize)
9738
+ }, [renderImage()]), renderDescription(), renderBottom()]);
9750
9739
  }
9751
9740
  });
9752
- const CheckboxPanel = withInstall(stdin_default$1h);
9753
- const [name$17, bem$16] = createNamespace("circle");
9754
- let uid = 0;
9755
- const format$1 = (rate) => Math.min(Math.max(+rate, 0), 100);
9756
- function getPath(clockwise, viewBoxSize) {
9757
- const sweepFlag = clockwise ? 1 : 0;
9758
- return `M ${viewBoxSize / 2} ${viewBoxSize / 2} m 0, -500 a 500, 500 0 1, ${sweepFlag} 0, 1000 a 500, 500 0 1, ${sweepFlag} 0, -1000`;
9759
- }
9760
- const circleProps = {
9761
- text: String,
9762
- size: numericProp,
9763
- fill: makeStringProp("none"),
9764
- rate: makeNumericProp(100),
9765
- speed: makeNumericProp(0),
9766
- color: [String, Object],
9767
- clockwise: truthProp,
9768
- layerColor: String,
9769
- currentRate: makeNumberProp(0),
9770
- strokeWidth: makeNumericProp(40),
9771
- strokeLinecap: String,
9772
- startPosition: makeStringProp("top")
9741
+ const Empty = withInstall(stdin_default$1h);
9742
+ const [name$17, bem$16, t$d] = createNamespace("list");
9743
+ const listProps = {
9744
+ error: Boolean,
9745
+ offset: makeNumericProp(300),
9746
+ loading: Boolean,
9747
+ finished: Boolean,
9748
+ errorText: String,
9749
+ direction: makeStringProp("down"),
9750
+ loadingText: String,
9751
+ finishedText: String,
9752
+ immediateCheck: truthProp
9773
9753
  };
9774
9754
  var stdin_default$1g = vue.defineComponent({
9775
9755
  name: name$17,
9776
- props: circleProps,
9777
- emits: ["update:currentRate"],
9756
+ props: listProps,
9757
+ emits: ["load", "update:error", "update:loading"],
9778
9758
  setup(props2, {
9779
9759
  emit,
9780
9760
  slots
9781
9761
  }) {
9782
- const id = `van-circle-${uid++}`;
9783
- const viewBoxSize = vue.computed(() => +props2.strokeWidth + 1e3);
9784
- const path = vue.computed(() => getPath(props2.clockwise, viewBoxSize.value));
9785
- const svgStyle = vue.computed(() => {
9786
- const ROTATE_ANGLE_MAP = {
9787
- top: 0,
9788
- right: 90,
9789
- bottom: 180,
9790
- left: 270
9791
- };
9792
- const angleValue = ROTATE_ANGLE_MAP[props2.startPosition];
9793
- if (angleValue) {
9794
- return {
9795
- transform: `rotate(${angleValue}deg)`
9796
- };
9797
- }
9798
- });
9799
- vue.watch(() => props2.rate, (rate) => {
9800
- let rafId;
9801
- const startTime = Date.now();
9802
- const startRate = props2.currentRate;
9803
- const endRate = format$1(rate);
9804
- const duration = Math.abs((startRate - endRate) * 1e3 / +props2.speed);
9805
- const animate = () => {
9806
- const now = Date.now();
9807
- const progress = Math.min((now - startTime) / duration, 1);
9808
- const rate2 = progress * (endRate - startRate) + startRate;
9809
- emit("update:currentRate", format$1(parseFloat(rate2.toFixed(1))));
9810
- if (endRate > startRate ? rate2 < endRate : rate2 > endRate) {
9811
- rafId = raf(animate);
9762
+ const loading = vue.ref(props2.loading);
9763
+ const root = vue.ref();
9764
+ const placeholder = vue.ref();
9765
+ const tabStatus = useTabStatus();
9766
+ const scrollParent = useScrollParent(root);
9767
+ const check = () => {
9768
+ vue.nextTick(() => {
9769
+ if (loading.value || props2.finished || props2.error || // skip check when inside an inactive tab
9770
+ (tabStatus == null ? void 0 : tabStatus.value) === false) {
9771
+ return;
9812
9772
  }
9813
- };
9814
- if (props2.speed) {
9815
- if (rafId) {
9816
- cancelRaf(rafId);
9773
+ const {
9774
+ offset: offset2,
9775
+ direction
9776
+ } = props2;
9777
+ const scrollParentRect = useRect(scrollParent);
9778
+ if (!scrollParentRect.height || isHidden(root)) {
9779
+ return;
9817
9780
  }
9818
- rafId = raf(animate);
9819
- } else {
9820
- emit("update:currentRate", endRate);
9821
- }
9822
- }, {
9823
- immediate: true
9824
- });
9825
- const renderHover = () => {
9826
- const PERIMETER = 3140;
9827
- const {
9828
- strokeWidth,
9829
- currentRate,
9830
- strokeLinecap
9831
- } = props2;
9832
- const offset2 = PERIMETER * currentRate / 100;
9833
- const color = isObject$2(props2.color) ? `url(#${id})` : props2.color;
9834
- const style = {
9835
- stroke: color,
9836
- strokeWidth: `${+strokeWidth + 1}px`,
9837
- strokeLinecap,
9838
- strokeDasharray: `${offset2}px ${PERIMETER}px`
9839
- };
9840
- return vue.createVNode("path", {
9841
- "d": path.value,
9842
- "style": style,
9843
- "class": bem$16("hover"),
9844
- "stroke": color
9845
- }, null);
9781
+ let isReachEdge = false;
9782
+ const placeholderRect = useRect(placeholder);
9783
+ if (direction === "up") {
9784
+ isReachEdge = scrollParentRect.top - placeholderRect.top <= offset2;
9785
+ } else {
9786
+ isReachEdge = placeholderRect.bottom - scrollParentRect.bottom <= offset2;
9787
+ }
9788
+ if (isReachEdge) {
9789
+ loading.value = true;
9790
+ emit("update:loading", true);
9791
+ emit("load");
9792
+ }
9793
+ });
9846
9794
  };
9847
- const renderLayer = () => {
9848
- const style = {
9849
- fill: props2.fill,
9850
- stroke: props2.layerColor,
9851
- strokeWidth: `${props2.strokeWidth}px`
9852
- };
9853
- return vue.createVNode("path", {
9854
- "class": bem$16("layer"),
9855
- "style": style,
9856
- "d": path.value
9857
- }, null);
9795
+ const renderFinishedText = () => {
9796
+ if (props2.finished) {
9797
+ const text = slots.finished ? slots.finished() : props2.finishedText;
9798
+ if (text) {
9799
+ return vue.createVNode("div", {
9800
+ "class": bem$16("finished-text")
9801
+ }, [text]);
9802
+ }
9803
+ }
9804
+ };
9805
+ const clickErrorText = () => {
9806
+ emit("update:error", false);
9807
+ check();
9808
+ };
9809
+ const renderErrorText = () => {
9810
+ if (props2.error) {
9811
+ const text = slots.error ? slots.error() : props2.errorText;
9812
+ if (text) {
9813
+ return vue.createVNode("div", {
9814
+ "role": "button",
9815
+ "class": bem$16("error-text"),
9816
+ "tabindex": 0,
9817
+ "onClick": clickErrorText
9818
+ }, [text]);
9819
+ }
9820
+ }
9821
+ };
9822
+ const renderLoading = () => {
9823
+ if (loading.value && !props2.finished) {
9824
+ return vue.createVNode("div", {
9825
+ "class": bem$16("loading")
9826
+ }, [slots.loading ? slots.loading() : vue.createVNode(Loading, {
9827
+ "class": bem$16("loading-icon")
9828
+ }, {
9829
+ default: () => [props2.loadingText || t$d("loading")]
9830
+ })]);
9831
+ }
9832
+ };
9833
+ vue.watch(() => [props2.loading, props2.finished, props2.error], check);
9834
+ if (tabStatus) {
9835
+ vue.watch(tabStatus, (tabActive) => {
9836
+ if (tabActive) {
9837
+ check();
9838
+ }
9839
+ });
9840
+ }
9841
+ vue.onUpdated(() => {
9842
+ loading.value = props2.loading;
9843
+ });
9844
+ vue.onMounted(() => {
9845
+ if (props2.immediateCheck) {
9846
+ check();
9847
+ }
9848
+ });
9849
+ useExpose({
9850
+ check
9851
+ });
9852
+ useEventListener("scroll", check, {
9853
+ target: scrollParent,
9854
+ passive: true
9855
+ });
9856
+ return () => {
9857
+ var _a;
9858
+ const Content = (_a = slots.default) == null ? void 0 : _a.call(slots);
9859
+ const Placeholder = vue.createVNode("div", {
9860
+ "ref": placeholder,
9861
+ "class": bem$16("placeholder")
9862
+ }, null);
9863
+ return vue.createVNode("div", {
9864
+ "ref": root,
9865
+ "role": "feed",
9866
+ "class": bem$16(),
9867
+ "aria-busy": loading.value
9868
+ }, [props2.direction === "down" ? Content : Placeholder, renderLoading(), renderFinishedText(), renderErrorText(), props2.direction === "up" ? Content : Placeholder]);
9869
+ };
9870
+ }
9871
+ });
9872
+ const List = withInstall(stdin_default$1g);
9873
+ const [name$16, bem$15, t$c] = createNamespace("search");
9874
+ const searchProps = extend$1({}, fieldSharedProps, {
9875
+ label: String,
9876
+ shape: makeStringProp("round"),
9877
+ variant: makeStringProp("default"),
9878
+ inputAlign: makeStringProp("left"),
9879
+ leftIcon: makeStringProp("search"),
9880
+ clearable: truthProp,
9881
+ actionText: String,
9882
+ background: String,
9883
+ showAction: Boolean
9884
+ });
9885
+ var stdin_default$1f = vue.defineComponent({
9886
+ name: name$16,
9887
+ props: searchProps,
9888
+ emits: ["blur", "focus", "clear", "search", "cancel", "click-input", "click-left-icon", "click-right-icon", "update:modelValue"],
9889
+ setup(props2, {
9890
+ emit,
9891
+ slots,
9892
+ attrs
9893
+ }) {
9894
+ const id = useId();
9895
+ const filedRef = vue.ref();
9896
+ const onCancel = () => {
9897
+ if (!slots.action) {
9898
+ emit("update:modelValue", "");
9899
+ emit("cancel");
9900
+ }
9901
+ };
9902
+ const onKeypress = (event) => {
9903
+ const ENTER_CODE = 13;
9904
+ if (event.keyCode === ENTER_CODE) {
9905
+ preventDefault(event);
9906
+ emit("search", props2.modelValue);
9907
+ }
9908
+ };
9909
+ const getInputId = () => props2.id || `${id}-input`;
9910
+ const renderLabel = () => {
9911
+ if (slots.label || props2.label) {
9912
+ return vue.createVNode("label", {
9913
+ "class": bem$15("label"),
9914
+ "for": getInputId()
9915
+ }, [slots.label ? slots.label() : props2.label]);
9916
+ }
9917
+ };
9918
+ const renderAction = () => {
9919
+ if (props2.showAction) {
9920
+ const text = props2.actionText || t$c("cancel");
9921
+ return vue.createVNode("div", {
9922
+ "class": bem$15("action"),
9923
+ "role": "button",
9924
+ "tabindex": 0,
9925
+ "onClick": onCancel
9926
+ }, [slots.action ? slots.action() : text]);
9927
+ }
9928
+ };
9929
+ const blur = () => {
9930
+ var _a;
9931
+ return (_a = filedRef.value) == null ? void 0 : _a.blur();
9932
+ };
9933
+ const focus = () => {
9934
+ var _a;
9935
+ return (_a = filedRef.value) == null ? void 0 : _a.focus();
9936
+ };
9937
+ const onBlur = (event) => emit("blur", event);
9938
+ const onFocus = (event) => emit("focus", event);
9939
+ const onClear = (event) => emit("clear", event);
9940
+ const onClickInput = (event) => emit("click-input", event);
9941
+ const onClickLeftIcon = (event) => emit("click-left-icon", event);
9942
+ const onClickRightIcon = (event) => emit("click-right-icon", event);
9943
+ const fieldPropNames = Object.keys(fieldSharedProps);
9944
+ const renderField = () => {
9945
+ const fieldAttrs = extend$1({}, attrs, pick(props2, fieldPropNames), {
9946
+ id: getInputId()
9947
+ });
9948
+ const onInput = (value) => emit("update:modelValue", value);
9949
+ return vue.createVNode(Field, vue.mergeProps({
9950
+ "ref": filedRef,
9951
+ "type": "search",
9952
+ "class": bem$15("field"),
9953
+ "border": false,
9954
+ "onBlur": onBlur,
9955
+ "onFocus": onFocus,
9956
+ "onClear": onClear,
9957
+ "onKeypress": onKeypress,
9958
+ "onClick-input": onClickInput,
9959
+ "onClick-left-icon": onClickLeftIcon,
9960
+ "onClick-right-icon": onClickRightIcon,
9961
+ "onUpdate:modelValue": onInput
9962
+ }, fieldAttrs), pick(slots, ["left-icon", "right-icon"]));
9963
+ };
9964
+ useExpose({
9965
+ focus,
9966
+ blur
9967
+ });
9968
+ return () => {
9969
+ var _a;
9970
+ return vue.createVNode("div", {
9971
+ "class": bem$15({
9972
+ "show-action": props2.showAction,
9973
+ pure: props2.variant === "pure"
9974
+ }),
9975
+ "style": {
9976
+ background: props2.variant === "default" ? props2.background : void 0
9977
+ }
9978
+ }, [(_a = slots.left) == null ? void 0 : _a.call(slots), vue.createVNode("div", {
9979
+ "class": bem$15("content", props2.shape)
9980
+ }, [renderLabel(), renderField()]), renderAction()]);
9981
+ };
9982
+ }
9983
+ });
9984
+ const Search = withInstall(stdin_default$1f);
9985
+ const [name$15, bem$14] = createNamespace("checkbox-panel");
9986
+ const escapeRegExp$1 = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
9987
+ const checkboxPanelProps = {
9988
+ show: Boolean,
9989
+ title: String,
9990
+ options: makeArrayProp(),
9991
+ modelValue: Array,
9992
+ searchable: Boolean,
9993
+ searchPlaceholder: String,
9994
+ filterable: Boolean,
9995
+ filterActive: Boolean,
9996
+ loading: Boolean,
9997
+ finished: Boolean,
9998
+ error: Boolean,
9999
+ lazy: Boolean,
10000
+ loadingText: String,
10001
+ finishedText: String,
10002
+ errorText: String,
10003
+ confirmText: makeStringProp("确定"),
10004
+ selectAllText: makeStringProp("全选"),
10005
+ cancelSelectAllText: makeStringProp("取消全选")
10006
+ };
10007
+ var stdin_default$1e = vue.defineComponent({
10008
+ name: name$15,
10009
+ props: checkboxPanelProps,
10010
+ emits: ["update:show", "update:modelValue", "update:loading", "update:error", "confirm", "search", "filter", "load"],
10011
+ setup(props2, {
10012
+ emit,
10013
+ slots
10014
+ }) {
10015
+ const keyword = vue.ref("");
10016
+ const selectedValues = vue.computed(() => props2.modelValue || []);
10017
+ const filteredOptions = vue.computed(() => {
10018
+ const query = keyword.value.trim().toLocaleLowerCase();
10019
+ if (!query)
10020
+ return props2.options;
10021
+ return props2.options.filter((option) => option.label.toLocaleLowerCase().includes(query));
10022
+ });
10023
+ const selectableOptions = vue.computed(() => filteredOptions.value.filter((option) => !option.disabled));
10024
+ const isAllSelected = vue.computed(() => selectableOptions.value.length > 0 && selectableOptions.value.every((option) => selectedValues.value.includes(option.value)));
10025
+ const close = () => emit("update:show", false);
10026
+ const toggleOption = (option) => {
10027
+ if (option.disabled)
10028
+ return;
10029
+ const values = [...selectedValues.value];
10030
+ const index = values.indexOf(option.value);
10031
+ index === -1 ? values.push(option.value) : values.splice(index, 1);
10032
+ emit("update:modelValue", values);
10033
+ };
10034
+ const toggleAll = () => {
10035
+ const selectableValues = selectableOptions.value.map((option) => option.value);
10036
+ const values = isAllSelected.value ? selectedValues.value.filter((value) => !selectableValues.includes(value)) : [.../* @__PURE__ */ new Set([...selectedValues.value, ...selectableValues])];
10037
+ emit("update:modelValue", values);
10038
+ };
10039
+ const confirm = () => {
10040
+ emit("confirm", selectedValues.value);
10041
+ close();
10042
+ };
10043
+ const renderOptionLabel = (label) => {
10044
+ const query = keyword.value.trim();
10045
+ if (!query)
10046
+ return label;
10047
+ const normalizedQuery = query.toLocaleLowerCase();
10048
+ return label.split(new RegExp(`(${escapeRegExp$1(query)})`, "ig")).map((part) => part.toLocaleLowerCase() === normalizedQuery ? vue.createVNode("span", {
10049
+ "class": bem$14("match")
10050
+ }, [part]) : part);
10051
+ };
10052
+ const renderOptions = () => {
10053
+ if (!filteredOptions.value.length) {
10054
+ return vue.createVNode(Empty, {
10055
+ "imageSize": 60,
10056
+ "description": "暂无匹配选项"
10057
+ }, null);
10058
+ }
10059
+ return vue.createVNode(CheckboxGroup, {
10060
+ "modelValue": selectedValues.value,
10061
+ "class": bem$14("card"),
10062
+ "onUpdate:modelValue": (value) => emit("update:modelValue", value)
10063
+ }, {
10064
+ default: () => [filteredOptions.value.map((option) => vue.createVNode(Cell, {
10065
+ "key": option.value,
10066
+ "clickable": !option.disabled,
10067
+ "title": option.label,
10068
+ "onClick": () => toggleOption(option)
10069
+ }, {
10070
+ title: () => renderOptionLabel(option.label),
10071
+ "right-icon": () => vue.createVNode(Checkbox, {
10072
+ "name": option.value,
10073
+ "disabled": option.disabled,
10074
+ "onClick": (event) => event.stopPropagation()
10075
+ }, null)
10076
+ }))]
10077
+ });
10078
+ };
10079
+ return () => vue.createVNode(ActionSheet, {
10080
+ "show": props2.show,
10081
+ "class": bem$14(),
10082
+ "onUpdate:show": (show) => emit("update:show", show)
10083
+ }, {
10084
+ default: () => [vue.createVNode("div", {
10085
+ "class": bem$14("content")
10086
+ }, [vue.createVNode("div", {
10087
+ "class": bem$14("nav-wrapper")
10088
+ }, [vue.createVNode(NavBar, {
10089
+ "title": props2.title,
10090
+ "border": false,
10091
+ "class": bem$14("nav")
10092
+ }, {
10093
+ left: () => vue.createVNode(Icon, {
10094
+ "name": "cross",
10095
+ "size": "22",
10096
+ "onClick": close
10097
+ }, null),
10098
+ right: () => {
10099
+ if (slots.filter)
10100
+ return slots.filter();
10101
+ if (!props2.filterable)
10102
+ return;
10103
+ return vue.createVNode("button", {
10104
+ "type": "button",
10105
+ "class": bem$14("filter"),
10106
+ "aria-label": "筛选",
10107
+ "onClick": () => emit("filter")
10108
+ }, [vue.createVNode(Badge, {
10109
+ "dot": props2.filterActive
10110
+ }, {
10111
+ default: () => [vue.createVNode(Icon, {
10112
+ "name": "filter-o",
10113
+ "size": "22"
10114
+ }, null)]
10115
+ })]);
10116
+ }
10117
+ })]), props2.searchable && vue.createVNode(Search, {
10118
+ "modelValue": keyword.value,
10119
+ "class": bem$14("search"),
10120
+ "shape": "round",
10121
+ "inputAlign": "left",
10122
+ "placeholder": props2.searchPlaceholder || "请输入搜索关键词",
10123
+ "maxlength": 200,
10124
+ "onUpdate:modelValue": (value) => {
10125
+ keyword.value = value;
10126
+ emit("search", value);
10127
+ },
10128
+ "onSearch": (value) => emit("search", value)
10129
+ }, null), vue.createVNode("div", {
10130
+ "class": bem$14("body")
10131
+ }, [props2.lazy ? vue.createVNode(List, {
10132
+ "loading": props2.loading,
10133
+ "finished": props2.finished,
10134
+ "error": props2.error,
10135
+ "loadingText": props2.loadingText,
10136
+ "finishedText": props2.finishedText,
10137
+ "errorText": props2.errorText,
10138
+ "onUpdate:loading": (value) => emit("update:loading", value),
10139
+ "onUpdate:error": (value) => emit("update:error", value),
10140
+ "onLoad": () => emit("load")
10141
+ }, {
10142
+ default: () => [renderOptions()]
10143
+ }) : renderOptions()]), vue.createVNode("div", {
10144
+ "class": bem$14("footer")
10145
+ }, [vue.createVNode(BottomActionBar, {
10146
+ "fixed": false,
10147
+ "secondaryText": isAllSelected.value ? props2.cancelSelectAllText : props2.selectAllText,
10148
+ "confirmText": props2.confirmText,
10149
+ "onSecondary": toggleAll,
10150
+ "onConfirm": confirm
10151
+ }, null)])])]
10152
+ });
10153
+ }
10154
+ });
10155
+ const CheckboxPanel = withInstall(stdin_default$1e);
10156
+ const [name$14, bem$13] = createNamespace("circle");
10157
+ let uid = 0;
10158
+ const format$1 = (rate) => Math.min(Math.max(+rate, 0), 100);
10159
+ function getPath(clockwise, viewBoxSize) {
10160
+ const sweepFlag = clockwise ? 1 : 0;
10161
+ return `M ${viewBoxSize / 2} ${viewBoxSize / 2} m 0, -500 a 500, 500 0 1, ${sweepFlag} 0, 1000 a 500, 500 0 1, ${sweepFlag} 0, -1000`;
10162
+ }
10163
+ const circleProps = {
10164
+ text: String,
10165
+ size: numericProp,
10166
+ fill: makeStringProp("none"),
10167
+ rate: makeNumericProp(100),
10168
+ speed: makeNumericProp(0),
10169
+ color: [String, Object],
10170
+ clockwise: truthProp,
10171
+ layerColor: String,
10172
+ currentRate: makeNumberProp(0),
10173
+ strokeWidth: makeNumericProp(40),
10174
+ strokeLinecap: String,
10175
+ startPosition: makeStringProp("top")
10176
+ };
10177
+ var stdin_default$1d = vue.defineComponent({
10178
+ name: name$14,
10179
+ props: circleProps,
10180
+ emits: ["update:currentRate"],
10181
+ setup(props2, {
10182
+ emit,
10183
+ slots
10184
+ }) {
10185
+ const id = `van-circle-${uid++}`;
10186
+ const viewBoxSize = vue.computed(() => +props2.strokeWidth + 1e3);
10187
+ const path = vue.computed(() => getPath(props2.clockwise, viewBoxSize.value));
10188
+ const svgStyle = vue.computed(() => {
10189
+ const ROTATE_ANGLE_MAP = {
10190
+ top: 0,
10191
+ right: 90,
10192
+ bottom: 180,
10193
+ left: 270
10194
+ };
10195
+ const angleValue = ROTATE_ANGLE_MAP[props2.startPosition];
10196
+ if (angleValue) {
10197
+ return {
10198
+ transform: `rotate(${angleValue}deg)`
10199
+ };
10200
+ }
10201
+ });
10202
+ vue.watch(() => props2.rate, (rate) => {
10203
+ let rafId;
10204
+ const startTime = Date.now();
10205
+ const startRate = props2.currentRate;
10206
+ const endRate = format$1(rate);
10207
+ const duration = Math.abs((startRate - endRate) * 1e3 / +props2.speed);
10208
+ const animate = () => {
10209
+ const now = Date.now();
10210
+ const progress = Math.min((now - startTime) / duration, 1);
10211
+ const rate2 = progress * (endRate - startRate) + startRate;
10212
+ emit("update:currentRate", format$1(parseFloat(rate2.toFixed(1))));
10213
+ if (endRate > startRate ? rate2 < endRate : rate2 > endRate) {
10214
+ rafId = raf(animate);
10215
+ }
10216
+ };
10217
+ if (props2.speed) {
10218
+ if (rafId) {
10219
+ cancelRaf(rafId);
10220
+ }
10221
+ rafId = raf(animate);
10222
+ } else {
10223
+ emit("update:currentRate", endRate);
10224
+ }
10225
+ }, {
10226
+ immediate: true
10227
+ });
10228
+ const renderHover = () => {
10229
+ const PERIMETER = 3140;
10230
+ const {
10231
+ strokeWidth,
10232
+ currentRate,
10233
+ strokeLinecap
10234
+ } = props2;
10235
+ const offset2 = PERIMETER * currentRate / 100;
10236
+ const color = isObject$2(props2.color) ? `url(#${id})` : props2.color;
10237
+ const style = {
10238
+ stroke: color,
10239
+ strokeWidth: `${+strokeWidth + 1}px`,
10240
+ strokeLinecap,
10241
+ strokeDasharray: `${offset2}px ${PERIMETER}px`
10242
+ };
10243
+ return vue.createVNode("path", {
10244
+ "d": path.value,
10245
+ "style": style,
10246
+ "class": bem$13("hover"),
10247
+ "stroke": color
10248
+ }, null);
10249
+ };
10250
+ const renderLayer = () => {
10251
+ const style = {
10252
+ fill: props2.fill,
10253
+ stroke: props2.layerColor,
10254
+ strokeWidth: `${props2.strokeWidth}px`
10255
+ };
10256
+ return vue.createVNode("path", {
10257
+ "class": bem$13("layer"),
10258
+ "style": style,
10259
+ "d": path.value
10260
+ }, null);
9858
10261
  };
9859
10262
  const renderGradient = () => {
9860
10263
  const {
@@ -9882,12 +10285,12 @@
9882
10285
  }
9883
10286
  if (props2.text) {
9884
10287
  return vue.createVNode("div", {
9885
- "class": bem$16("text")
10288
+ "class": bem$13("text")
9886
10289
  }, [props2.text]);
9887
10290
  }
9888
10291
  };
9889
10292
  return () => vue.createVNode("div", {
9890
- "class": bem$16(),
10293
+ "class": bem$13(),
9891
10294
  "style": getSizeStyle(props2.size)
9892
10295
  }, [vue.createVNode("svg", {
9893
10296
  "viewBox": `0 0 ${viewBoxSize.value} ${viewBoxSize.value}`,
@@ -9895,9 +10298,9 @@
9895
10298
  }, [renderGradient(), renderLayer(), renderHover()]), renderText()]);
9896
10299
  }
9897
10300
  });
9898
- const Circle = withInstall(stdin_default$1g);
9899
- const [name$16, bem$15] = createNamespace("row");
9900
- const ROW_KEY = Symbol(name$16);
10301
+ const Circle = withInstall(stdin_default$1d);
10302
+ const [name$13, bem$12] = createNamespace("row");
10303
+ const ROW_KEY = Symbol(name$13);
9901
10304
  const rowProps = {
9902
10305
  tag: makeStringProp("div"),
9903
10306
  wrap: truthProp,
@@ -9905,8 +10308,8 @@
9905
10308
  gutter: makeNumericProp(0),
9906
10309
  justify: String
9907
10310
  };
9908
- var stdin_default$1f = vue.defineComponent({
9909
- name: name$16,
10311
+ var stdin_default$1c = vue.defineComponent({
10312
+ name: name$13,
9910
10313
  props: rowProps,
9911
10314
  setup(props2, {
9912
10315
  slots
@@ -9965,7 +10368,7 @@
9965
10368
  justify
9966
10369
  } = props2;
9967
10370
  return vue.createVNode(tag, {
9968
- "class": bem$15({
10371
+ "class": bem$12({
9969
10372
  [`align-${align}`]: align,
9970
10373
  [`justify-${justify}`]: justify,
9971
10374
  nowrap: !wrap2
@@ -9979,14 +10382,14 @@
9979
10382
  };
9980
10383
  }
9981
10384
  });
9982
- const [name$15, bem$14] = createNamespace("col");
10385
+ const [name$12, bem$11] = createNamespace("col");
9983
10386
  const colProps = {
9984
10387
  tag: makeStringProp("div"),
9985
10388
  span: makeNumericProp(0),
9986
10389
  offset: numericProp
9987
10390
  };
9988
- var stdin_default$1e = vue.defineComponent({
9989
- name: name$15,
10391
+ var stdin_default$1b = vue.defineComponent({
10392
+ name: name$12,
9990
10393
  props: colProps,
9991
10394
  setup(props2, {
9992
10395
  slots
@@ -10021,7 +10424,7 @@
10021
10424
  } = props2;
10022
10425
  return vue.createVNode(tag, {
10023
10426
  "style": style.value,
10024
- "class": bem$14({
10427
+ "class": bem$11({
10025
10428
  [span]: span,
10026
10429
  [`offset-${offset2}`]: offset2
10027
10430
  })
@@ -10034,9 +10437,9 @@
10034
10437
  };
10035
10438
  }
10036
10439
  });
10037
- const Col = withInstall(stdin_default$1e);
10038
- const [name$14, bem$13] = createNamespace("collapse");
10039
- const COLLAPSE_KEY = Symbol(name$14);
10440
+ const Col = withInstall(stdin_default$1b);
10441
+ const [name$11, bem$10] = createNamespace("collapse");
10442
+ const COLLAPSE_KEY = Symbol(name$11);
10040
10443
  const collapseProps = {
10041
10444
  border: truthProp,
10042
10445
  accordion: Boolean,
@@ -10045,8 +10448,8 @@
10045
10448
  default: ""
10046
10449
  }
10047
10450
  };
10048
- var stdin_default$1d = vue.defineComponent({
10049
- name: name$14,
10451
+ var stdin_default$1a = vue.defineComponent({
10452
+ name: name$11,
10050
10453
  props: collapseProps,
10051
10454
  emits: ["change", "update:modelValue"],
10052
10455
  setup(props2, {
@@ -10113,15 +10516,15 @@
10113
10516
  return () => {
10114
10517
  var _a;
10115
10518
  return vue.createVNode("div", {
10116
- "class": [bem$13(), {
10519
+ "class": [bem$10(), {
10117
10520
  [BORDER_TOP_BOTTOM]: props2.border
10118
10521
  }]
10119
10522
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
10120
10523
  };
10121
10524
  }
10122
10525
  });
10123
- const Collapse = withInstall(stdin_default$1d);
10124
- const [name$13, bem$12] = createNamespace("collapse-item");
10526
+ const Collapse = withInstall(stdin_default$1a);
10527
+ const [name$10, bem$$] = createNamespace("collapse-item");
10125
10528
  const CELL_SLOTS = ["icon", "title", "value", "label", "right-icon"];
10126
10529
  const collapseItemProps = extend$1({}, cellSharedProps, {
10127
10530
  name: numericProp,
@@ -10130,8 +10533,8 @@
10130
10533
  readonly: Boolean,
10131
10534
  lazyRender: truthProp
10132
10535
  });
10133
- var stdin_default$1c = vue.defineComponent({
10134
- name: name$13,
10536
+ var stdin_default$19 = vue.defineComponent({
10537
+ name: name$10,
10135
10538
  props: collapseItemProps,
10136
10539
  setup(props2, {
10137
10540
  slots
@@ -10210,7 +10613,7 @@
10210
10613
  }
10211
10614
  return vue.createVNode(Cell, vue.mergeProps({
10212
10615
  "role": "button",
10213
- "class": bem$12("title", {
10616
+ "class": bem$$("title", {
10214
10617
  disabled,
10215
10618
  expanded: expanded.value,
10216
10619
  borderless: !border
@@ -10223,11 +10626,11 @@
10223
10626
  var _a;
10224
10627
  return vue.withDirectives(vue.createVNode("div", {
10225
10628
  "ref": wrapperRef,
10226
- "class": bem$12("wrapper"),
10629
+ "class": bem$$("wrapper"),
10227
10630
  "onTransitionend": onTransitionEnd
10228
10631
  }, [vue.createVNode("div", {
10229
10632
  "ref": contentRef,
10230
- "class": bem$12("content")
10633
+ "class": bem$$("content")
10231
10634
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]), [[vue.vShow, show.value]]);
10232
10635
  });
10233
10636
  useExpose({
@@ -10236,15 +10639,15 @@
10236
10639
  itemName: name2
10237
10640
  });
10238
10641
  return () => vue.createVNode("div", {
10239
- "class": [bem$12({
10642
+ "class": [bem$$({
10240
10643
  border: index.value && props2.border
10241
10644
  })]
10242
10645
  }, [renderTitle(), renderContent()]);
10243
10646
  }
10244
10647
  });
10245
- const CollapseItem = withInstall(stdin_default$1c);
10648
+ const CollapseItem = withInstall(stdin_default$19);
10246
10649
  const ConfigProvider = withInstall(stdin_default$24);
10247
- const [name$12, bem$11, t$d] = createNamespace("contact-card");
10650
+ const [name$$, bem$_, t$b] = createNamespace("contact-card");
10248
10651
  const contactCardProps = {
10249
10652
  tel: String,
10250
10653
  name: String,
@@ -10252,8 +10655,8 @@
10252
10655
  addText: String,
10253
10656
  editable: truthProp
10254
10657
  };
10255
- var stdin_default$1b = vue.defineComponent({
10256
- name: name$12,
10658
+ var stdin_default$18 = vue.defineComponent({
10659
+ name: name$$,
10257
10660
  props: contactCardProps,
10258
10661
  emits: ["click"],
10259
10662
  setup(props2, {
@@ -10266,25 +10669,25 @@
10266
10669
  };
10267
10670
  const renderContent = () => {
10268
10671
  if (props2.type === "add") {
10269
- return props2.addText || t$d("addContact");
10672
+ return props2.addText || t$b("addContact");
10270
10673
  }
10271
- return [vue.createVNode("div", null, [`${t$d("name")}:${props2.name}`]), vue.createVNode("div", null, [`${t$d("tel")}:${props2.tel}`])];
10674
+ return [vue.createVNode("div", null, [`${t$b("name")}:${props2.name}`]), vue.createVNode("div", null, [`${t$b("tel")}:${props2.tel}`])];
10272
10675
  };
10273
10676
  return () => vue.createVNode(Cell, {
10274
10677
  "center": true,
10275
10678
  "icon": props2.type === "edit" ? "contact" : "add-square",
10276
- "class": bem$11([props2.type]),
10679
+ "class": bem$_([props2.type]),
10277
10680
  "border": false,
10278
10681
  "isLink": props2.editable,
10279
- "valueClass": bem$11("value"),
10682
+ "valueClass": bem$_("value"),
10280
10683
  "onClick": onClick
10281
10684
  }, {
10282
10685
  value: renderContent
10283
10686
  });
10284
10687
  }
10285
10688
  });
10286
- const ContactCard = withInstall(stdin_default$1b);
10287
- const [name$11, bem$10, t$c] = createNamespace("contact-edit");
10689
+ const ContactCard = withInstall(stdin_default$18);
10690
+ const [name$_, bem$Z, t$a] = createNamespace("contact-edit");
10288
10691
  const DEFAULT_CONTACT = {
10289
10692
  tel: "",
10290
10693
  name: ""
@@ -10304,8 +10707,8 @@
10304
10707
  default: isMobile
10305
10708
  }
10306
10709
  };
10307
- var stdin_default$1a = vue.defineComponent({
10308
- name: name$11,
10710
+ var stdin_default$17 = vue.defineComponent({
10711
+ name: name$_,
10309
10712
  props: contactEditProps,
10310
10713
  emits: ["save", "delete", "change-default"],
10311
10714
  setup(props2, {
@@ -10319,20 +10722,20 @@
10319
10722
  };
10320
10723
  const onDelete = () => emit("delete", contact);
10321
10724
  const renderButtons = () => vue.createVNode("div", {
10322
- "class": bem$10("buttons")
10725
+ "class": bem$Z("buttons")
10323
10726
  }, [vue.createVNode(Button, {
10324
10727
  "block": true,
10325
10728
  "round": true,
10326
10729
  "type": "primary",
10327
- "text": t$c("save"),
10328
- "class": bem$10("button"),
10730
+ "text": t$a("save"),
10731
+ "class": bem$Z("button"),
10329
10732
  "loading": props2.isSaving,
10330
10733
  "nativeType": "submit"
10331
10734
  }, null), props2.isEdit && vue.createVNode(Button, {
10332
10735
  "block": true,
10333
10736
  "round": true,
10334
- "text": t$c("delete"),
10335
- "class": bem$10("button"),
10737
+ "text": t$a("delete"),
10738
+ "class": bem$Z("button"),
10336
10739
  "loading": props2.isDeleting,
10337
10740
  "onClick": onDelete
10338
10741
  }, null)]);
@@ -10346,7 +10749,7 @@
10346
10749
  if (props2.showSetDefault) {
10347
10750
  return vue.createVNode(Cell, {
10348
10751
  "title": props2.setDefaultLabel,
10349
- "class": bem$10("switch-cell"),
10752
+ "class": bem$Z("switch-cell"),
10350
10753
  "border": false
10351
10754
  }, {
10352
10755
  "right-icon": renderSwitch
@@ -10355,47 +10758,47 @@
10355
10758
  };
10356
10759
  vue.watch(() => props2.contactInfo, (value) => extend$1(contact, DEFAULT_CONTACT, value));
10357
10760
  return () => vue.createVNode(Form, {
10358
- "class": bem$10(),
10761
+ "class": bem$Z(),
10359
10762
  "onSubmit": onSave
10360
10763
  }, {
10361
10764
  default: () => [vue.createVNode("div", {
10362
- "class": bem$10("fields")
10765
+ "class": bem$Z("fields")
10363
10766
  }, [vue.createVNode(Field, {
10364
10767
  "modelValue": contact.name,
10365
10768
  "onUpdate:modelValue": ($event) => contact.name = $event,
10366
10769
  "clearable": true,
10367
- "label": t$c("name"),
10770
+ "label": t$a("name"),
10368
10771
  "rules": [{
10369
10772
  required: true,
10370
- message: t$c("nameEmpty")
10773
+ message: t$a("nameEmpty")
10371
10774
  }],
10372
10775
  "maxlength": "30",
10373
- "placeholder": t$c("name")
10776
+ "placeholder": t$a("name")
10374
10777
  }, null), vue.createVNode(Field, {
10375
10778
  "modelValue": contact.tel,
10376
10779
  "onUpdate:modelValue": ($event) => contact.tel = $event,
10377
10780
  "clearable": true,
10378
10781
  "type": "tel",
10379
- "label": t$c("tel"),
10782
+ "label": t$a("tel"),
10380
10783
  "rules": [{
10381
10784
  validator: props2.telValidator,
10382
- message: t$c("telInvalid")
10785
+ message: t$a("telInvalid")
10383
10786
  }],
10384
- "placeholder": t$c("tel")
10787
+ "placeholder": t$a("tel")
10385
10788
  }, null)]), renderSetDefault(), renderButtons()]
10386
10789
  });
10387
10790
  }
10388
10791
  });
10389
- const ContactEdit = withInstall(stdin_default$1a);
10390
- const [name$10, bem$$, t$b] = createNamespace("contact-list");
10792
+ const ContactEdit = withInstall(stdin_default$17);
10793
+ const [name$Z, bem$Y, t$9] = createNamespace("contact-list");
10391
10794
  const contactListProps = {
10392
10795
  list: Array,
10393
10796
  addText: String,
10394
10797
  modelValue: unknownProp,
10395
10798
  defaultTagText: String
10396
10799
  };
10397
- var stdin_default$19 = vue.defineComponent({
10398
- name: name$10,
10800
+ var stdin_default$16 = vue.defineComponent({
10801
+ name: name$Z,
10399
10802
  props: contactListProps,
10400
10803
  emits: ["add", "edit", "select", "update:modelValue"],
10401
10804
  setup(props2, {
@@ -10407,13 +10810,13 @@
10407
10810
  emit("select", item, index);
10408
10811
  };
10409
10812
  const renderRightIcon = () => vue.createVNode(Radio, {
10410
- "class": bem$$("radio"),
10813
+ "class": bem$Y("radio"),
10411
10814
  "name": item.id,
10412
10815
  "size": "large"
10413
10816
  }, null);
10414
10817
  const renderEditIcon = () => vue.createVNode(Icon, {
10415
10818
  "name": "edit",
10416
- "class": bem$$("edit"),
10819
+ "class": bem$Y("edit"),
10417
10820
  "onClick": (event) => {
10418
10821
  event.stopPropagation();
10419
10822
  emit("edit", item, index);
@@ -10425,7 +10828,7 @@
10425
10828
  nodes.push(vue.createVNode(Tag, {
10426
10829
  "type": "primary",
10427
10830
  "round": true,
10428
- "class": bem$$("item-tag")
10831
+ "class": bem$Y("item-tag")
10429
10832
  }, {
10430
10833
  default: () => [props2.defaultTagText]
10431
10834
  }));
@@ -10436,8 +10839,8 @@
10436
10839
  "key": item.id,
10437
10840
  "isLink": true,
10438
10841
  "center": true,
10439
- "class": bem$$("item"),
10440
- "valueClass": bem$$("item-value"),
10842
+ "class": bem$Y("item"),
10843
+ "valueClass": bem$Y("item-value"),
10441
10844
  "onClick": onClick
10442
10845
  }, {
10443
10846
  icon: renderEditIcon,
@@ -10446,34 +10849,34 @@
10446
10849
  });
10447
10850
  };
10448
10851
  return () => vue.createVNode("div", {
10449
- "class": bem$$()
10852
+ "class": bem$Y()
10450
10853
  }, [vue.createVNode(RadioGroup, {
10451
10854
  "modelValue": props2.modelValue,
10452
- "class": bem$$("group")
10855
+ "class": bem$Y("group")
10453
10856
  }, {
10454
10857
  default: () => [props2.list && props2.list.map(renderItem)]
10455
10858
  }), vue.createVNode("div", {
10456
- "class": [bem$$("bottom"), "van-safe-area-bottom"]
10859
+ "class": [bem$Y("bottom"), "van-safe-area-bottom"]
10457
10860
  }, [vue.createVNode(Button, {
10458
10861
  "round": true,
10459
10862
  "block": true,
10460
10863
  "type": "primary",
10461
- "class": bem$$("add"),
10462
- "text": props2.addText || t$b("addContact"),
10864
+ "class": bem$Y("add"),
10865
+ "text": props2.addText || t$9("addContact"),
10463
10866
  "onClick": () => emit("add")
10464
10867
  }, null)])]);
10465
10868
  }
10466
10869
  });
10467
- const ContactList = withInstall(stdin_default$19);
10468
- const [name$$, bem$_] = createNamespace("content-panel");
10870
+ const ContactList = withInstall(stdin_default$16);
10871
+ const [name$Y, bem$X] = createNamespace("content-panel");
10469
10872
  const contentPanelProps = {
10470
10873
  show: Boolean,
10471
10874
  title: String,
10472
10875
  confirmText: makeStringProp("我已知晓"),
10473
10876
  showFooter: truthProp
10474
10877
  };
10475
- var stdin_default$18 = vue.defineComponent({
10476
- name: name$$,
10878
+ var stdin_default$15 = vue.defineComponent({
10879
+ name: name$Y,
10477
10880
  props: contentPanelProps,
10478
10881
  emits: ["update:show", "confirm", "close"],
10479
10882
  setup(props2, {
@@ -10490,7 +10893,7 @@
10490
10893
  };
10491
10894
  return () => vue.createVNode(ActionSheet, {
10492
10895
  "show": props2.show,
10493
- "class": bem$_(),
10896
+ "class": bem$X(),
10494
10897
  "onUpdate:show": (show) => {
10495
10898
  emit("update:show", show);
10496
10899
  if (!show)
@@ -10500,13 +10903,13 @@
10500
10903
  default: () => {
10501
10904
  var _a, _b;
10502
10905
  return [vue.createVNode("div", {
10503
- "class": bem$_("content")
10906
+ "class": bem$X("content")
10504
10907
  }, [vue.createVNode("div", {
10505
- "class": bem$_("nav-wrapper")
10908
+ "class": bem$X("nav-wrapper")
10506
10909
  }, [vue.createVNode(NavBar, {
10507
10910
  "title": props2.title,
10508
10911
  "border": false,
10509
- "class": bem$_("nav")
10912
+ "class": bem$X("nav")
10510
10913
  }, {
10511
10914
  left: () => vue.createVNode(Icon, {
10512
10915
  "name": "cross",
@@ -10514,9 +10917,9 @@
10514
10917
  "onClick": close
10515
10918
  }, null)
10516
10919
  })]), vue.createVNode("div", {
10517
- "class": bem$_("body")
10920
+ "class": bem$X("body")
10518
10921
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), props2.showFooter && vue.createVNode("div", {
10519
- "class": bem$_("footer")
10922
+ "class": bem$X("footer")
10520
10923
  }, [((_b = slots.footer) == null ? void 0 : _b.call(slots)) || vue.createVNode(Button, {
10521
10924
  "block": true,
10522
10925
  "type": "primary",
@@ -10528,7 +10931,7 @@
10528
10931
  });
10529
10932
  }
10530
10933
  });
10531
- const ContentPanel = withInstall(stdin_default$18);
10934
+ const ContentPanel = withInstall(stdin_default$15);
10532
10935
  function parseFormat(format2, currentTime) {
10533
10936
  const { days } = currentTime;
10534
10937
  let { hours, minutes, seconds, milliseconds } = currentTime;
@@ -10564,15 +10967,15 @@
10564
10967
  }
10565
10968
  return format2;
10566
10969
  }
10567
- const [name$_, bem$Z] = createNamespace("count-down");
10970
+ const [name$X, bem$W] = createNamespace("count-down");
10568
10971
  const countDownProps = {
10569
10972
  time: makeNumericProp(0),
10570
10973
  format: makeStringProp("HH:mm:ss"),
10571
10974
  autoStart: truthProp,
10572
10975
  millisecond: Boolean
10573
10976
  };
10574
- var stdin_default$17 = vue.defineComponent({
10575
- name: name$_,
10977
+ var stdin_default$14 = vue.defineComponent({
10978
+ name: name$X,
10576
10979
  props: countDownProps,
10577
10980
  emits: ["change", "finish"],
10578
10981
  setup(props2, {
@@ -10607,11 +11010,11 @@
10607
11010
  });
10608
11011
  return () => vue.createVNode("div", {
10609
11012
  "role": "timer",
10610
- "class": bem$Z()
11013
+ "class": bem$W()
10611
11014
  }, [slots.default ? slots.default(current2.value) : timeText.value]);
10612
11015
  }
10613
11016
  });
10614
- const CountDown = withInstall(stdin_default$17);
11017
+ const CountDown = withInstall(stdin_default$14);
10615
11018
  function getDate(timeStamp) {
10616
11019
  const date = new Date(timeStamp * 1e3);
10617
11020
  return `${date.getFullYear()}.${padZero(date.getMonth() + 1)}.${padZero(
@@ -10620,9 +11023,9 @@
10620
11023
  }
10621
11024
  const formatDiscount = (discount) => (discount / 10).toFixed(discount % 10 === 0 ? 0 : 1);
10622
11025
  const formatAmount = (amount) => (amount / 100).toFixed(amount % 100 === 0 ? 0 : amount % 10 === 0 ? 1 : 2);
10623
- const [name$Z, bem$Y, t$a] = createNamespace("coupon");
10624
- var stdin_default$16 = vue.defineComponent({
10625
- name: name$Z,
11026
+ const [name$W, bem$V, t$8] = createNamespace("coupon");
11027
+ var stdin_default$13 = vue.defineComponent({
11028
+ name: name$W,
10626
11029
  props: {
10627
11030
  chosen: Boolean,
10628
11031
  coupon: makeRequiredProp(Object),
@@ -10650,13 +11053,13 @@
10650
11053
  return [vue.createVNode("span", null, [currency]), ` ${denominations}`];
10651
11054
  }
10652
11055
  if (coupon.discount) {
10653
- return t$a("discount", formatDiscount(coupon.discount));
11056
+ return t$8("discount", formatDiscount(coupon.discount));
10654
11057
  }
10655
11058
  return "";
10656
11059
  });
10657
11060
  const conditionMessage = vue.computed(() => {
10658
11061
  const condition = formatAmount(props2.coupon.originCondition || 0);
10659
- return condition === "0" ? t$a("unlimited") : t$a("condition", condition);
11062
+ return condition === "0" ? t$8("unlimited") : t$8("condition", condition);
10660
11063
  });
10661
11064
  return () => {
10662
11065
  const {
@@ -10666,34 +11069,34 @@
10666
11069
  } = props2;
10667
11070
  const description = disabled && coupon.reason || coupon.description;
10668
11071
  return vue.createVNode("div", {
10669
- "class": bem$Y({
11072
+ "class": bem$V({
10670
11073
  disabled
10671
11074
  })
10672
11075
  }, [vue.createVNode("div", {
10673
- "class": bem$Y("content")
11076
+ "class": bem$V("content")
10674
11077
  }, [vue.createVNode("div", {
10675
- "class": bem$Y("head")
11078
+ "class": bem$V("head")
10676
11079
  }, [vue.createVNode("h2", {
10677
- "class": bem$Y("amount")
11080
+ "class": bem$V("amount")
10678
11081
  }, [faceAmount.value]), vue.createVNode("p", {
10679
- "class": bem$Y("condition")
11082
+ "class": bem$V("condition")
10680
11083
  }, [coupon.condition || conditionMessage.value])]), vue.createVNode("div", {
10681
- "class": bem$Y("body")
11084
+ "class": bem$V("body")
10682
11085
  }, [vue.createVNode("p", {
10683
- "class": bem$Y("name")
11086
+ "class": bem$V("name")
10684
11087
  }, [coupon.name]), vue.createVNode("p", {
10685
- "class": bem$Y("valid")
11088
+ "class": bem$V("valid")
10686
11089
  }, [validPeriod.value]), !disabled && vue.createVNode(Checkbox, {
10687
- "class": bem$Y("corner"),
11090
+ "class": bem$V("corner"),
10688
11091
  "modelValue": chosen
10689
11092
  }, null)])]), description && vue.createVNode("p", {
10690
- "class": bem$Y("description")
11093
+ "class": bem$V("description")
10691
11094
  }, [description])]);
10692
11095
  };
10693
11096
  }
10694
11097
  });
10695
- const Coupon = withInstall(stdin_default$16);
10696
- const [name$Y, bem$X, t$9] = createNamespace("coupon-cell");
11098
+ const Coupon = withInstall(stdin_default$13);
11099
+ const [name$V, bem$U, t$7] = createNamespace("coupon-cell");
10697
11100
  const couponCellProps = {
10698
11101
  title: String,
10699
11102
  border: truthProp,
@@ -10719,78 +11122,29 @@
10719
11122
  }
10720
11123
  return `-${currency} ${(value / 100).toFixed(2)}`;
10721
11124
  }
10722
- return coupons.length === 0 ? t$9("noCoupon") : t$9("count", coupons.length);
11125
+ return coupons.length === 0 ? t$7("noCoupon") : t$7("count", coupons.length);
10723
11126
  }
10724
- var stdin_default$15 = vue.defineComponent({
10725
- name: name$Y,
11127
+ var stdin_default$12 = vue.defineComponent({
11128
+ name: name$V,
10726
11129
  props: couponCellProps,
10727
11130
  setup(props2) {
10728
11131
  return () => {
10729
11132
  const selected = props2.coupons[+props2.chosenCoupon];
10730
11133
  return vue.createVNode(Cell, {
10731
- "class": bem$X(),
11134
+ "class": bem$U(),
10732
11135
  "value": formatValue(props2),
10733
- "title": props2.title || t$9("title"),
11136
+ "title": props2.title || t$7("title"),
10734
11137
  "border": props2.border,
10735
11138
  "isLink": props2.editable,
10736
- "valueClass": bem$X("value", {
11139
+ "valueClass": bem$U("value", {
10737
11140
  selected
10738
11141
  })
10739
11142
  }, null);
10740
11143
  };
10741
11144
  }
10742
11145
  });
10743
- const CouponCell = withInstall(stdin_default$15);
10744
- const [name$X, bem$W] = createNamespace("empty");
10745
- const emptyProps = {
10746
- image: makeStringProp("default"),
10747
- imageSize: [Number, String, Array],
10748
- description: String
10749
- };
10750
- var stdin_default$14 = vue.defineComponent({
10751
- name: name$X,
10752
- props: emptyProps,
10753
- setup(props2, {
10754
- slots
10755
- }) {
10756
- const renderDescription = () => {
10757
- const description = slots.description ? slots.description() : props2.description;
10758
- if (description) {
10759
- return vue.createVNode("p", {
10760
- "class": bem$W("description")
10761
- }, [description]);
10762
- }
10763
- };
10764
- const renderBottom = () => {
10765
- if (slots.default) {
10766
- return vue.createVNode("div", {
10767
- "class": bem$W("bottom")
10768
- }, [slots.default()]);
10769
- }
10770
- };
10771
- const renderImage = () => {
10772
- if (slots.image) {
10773
- return slots.image();
10774
- }
10775
- if (props2.image === "default" || props2.image === "network") {
10776
- return vue.createVNode("div", {
10777
- "class": bem$W("image-preset", props2.image)
10778
- }, null);
10779
- }
10780
- return vue.createVNode("img", {
10781
- "src": props2.image
10782
- }, null);
10783
- };
10784
- return () => vue.createVNode("div", {
10785
- "class": bem$W()
10786
- }, [vue.createVNode("div", {
10787
- "class": bem$W("image"),
10788
- "style": getSizeStyle(props2.imageSize)
10789
- }, [renderImage()]), renderDescription(), renderBottom()]);
10790
- }
10791
- });
10792
- const Empty = withInstall(stdin_default$14);
10793
- const [name$W, bem$V, t$8] = createNamespace("coupon-list");
11146
+ const CouponCell = withInstall(stdin_default$12);
11147
+ const [name$U, bem$T, t$6] = createNamespace("coupon-list");
10794
11148
  const couponListProps = {
10795
11149
  code: makeStringProp(""),
10796
11150
  coupons: makeArrayProp(),
@@ -10811,8 +11165,8 @@
10811
11165
  exchangeButtonLoading: Boolean,
10812
11166
  exchangeButtonDisabled: Boolean
10813
11167
  };
10814
- var stdin_default$13 = vue.defineComponent({
10815
- name: name$W,
11168
+ var stdin_default$11 = vue.defineComponent({
11169
+ name: name$U,
10816
11170
  props: couponListProps,
10817
11171
  emits: ["change", "exchange", "update:code"],
10818
11172
  setup(props2, {
@@ -10848,27 +11202,27 @@
10848
11202
  "image": props2.emptyImage
10849
11203
  }, {
10850
11204
  default: () => [vue.createVNode("p", {
10851
- "class": bem$V("empty-tip")
10852
- }, [t$8("noCoupon")])]
11205
+ "class": bem$T("empty-tip")
11206
+ }, [t$6("noCoupon")])]
10853
11207
  });
10854
11208
  const renderExchangeBar = () => {
10855
11209
  if (props2.showExchangeBar) {
10856
11210
  return vue.createVNode("div", {
10857
11211
  "ref": barRef,
10858
- "class": bem$V("exchange-bar")
11212
+ "class": bem$T("exchange-bar")
10859
11213
  }, [vue.createVNode(Field, {
10860
11214
  "modelValue": currentCode.value,
10861
11215
  "onUpdate:modelValue": ($event) => currentCode.value = $event,
10862
11216
  "clearable": true,
10863
11217
  "border": false,
10864
- "class": bem$V("field"),
10865
- "placeholder": props2.inputPlaceholder || t$8("placeholder"),
11218
+ "class": bem$T("field"),
11219
+ "placeholder": props2.inputPlaceholder || t$6("placeholder"),
10866
11220
  "maxlength": "20"
10867
11221
  }, null), vue.createVNode(Button, {
10868
11222
  "plain": true,
10869
11223
  "type": "primary",
10870
- "class": bem$V("exchange"),
10871
- "text": props2.exchangeButtonText || t$8("exchange"),
11224
+ "class": bem$T("exchange"),
11225
+ "text": props2.exchangeButtonText || t$6("exchange"),
10872
11226
  "loading": props2.exchangeButtonLoading,
10873
11227
  "disabled": buttonDisabled.value,
10874
11228
  "onClick": onExchange
@@ -10880,14 +11234,14 @@
10880
11234
  coupons
10881
11235
  } = props2;
10882
11236
  const count = props2.showCount ? ` (${coupons.length})` : "";
10883
- const title = (props2.enabledTitle || t$8("enable")) + count;
11237
+ const title = (props2.enabledTitle || t$6("enable")) + count;
10884
11238
  return vue.createVNode(Tab, {
10885
11239
  "title": title
10886
11240
  }, {
10887
11241
  default: () => {
10888
11242
  var _a;
10889
11243
  return [vue.createVNode("div", {
10890
- "class": bem$V("list", {
11244
+ "class": bem$T("list", {
10891
11245
  "with-bottom": props2.showCloseButton
10892
11246
  }),
10893
11247
  "style": {
@@ -10909,14 +11263,14 @@
10909
11263
  disabledCoupons
10910
11264
  } = props2;
10911
11265
  const count = props2.showCount ? ` (${disabledCoupons.length})` : "";
10912
- const title = (props2.disabledTitle || t$8("disabled")) + count;
11266
+ const title = (props2.disabledTitle || t$6("disabled")) + count;
10913
11267
  return vue.createVNode(Tab, {
10914
11268
  "title": title
10915
11269
  }, {
10916
11270
  default: () => {
10917
11271
  var _a;
10918
11272
  return [vue.createVNode("div", {
10919
- "class": bem$V("list", {
11273
+ "class": bem$T("list", {
10920
11274
  "with-bottom": props2.showCloseButton
10921
11275
  }),
10922
11276
  "style": {
@@ -10943,27 +11297,27 @@
10943
11297
  });
10944
11298
  return () => vue.createVNode("div", {
10945
11299
  "ref": root,
10946
- "class": bem$V()
11300
+ "class": bem$T()
10947
11301
  }, [renderExchangeBar(), vue.createVNode(Tabs, {
10948
11302
  "active": activeTab.value,
10949
11303
  "onUpdate:active": ($event) => activeTab.value = $event,
10950
- "class": bem$V("tab")
11304
+ "class": bem$T("tab")
10951
11305
  }, {
10952
11306
  default: () => [renderCouponTab(), renderDisabledTab()]
10953
11307
  }), vue.createVNode("div", {
10954
- "class": bem$V("bottom")
11308
+ "class": bem$T("bottom")
10955
11309
  }, [vue.withDirectives(vue.createVNode(Button, {
10956
11310
  "round": true,
10957
11311
  "block": true,
10958
11312
  "type": "primary",
10959
- "class": bem$V("close"),
10960
- "text": props2.closeButtonText || t$8("close"),
11313
+ "class": bem$T("close"),
11314
+ "text": props2.closeButtonText || t$6("close"),
10961
11315
  "onClick": () => emit("change", -1)
10962
11316
  }, null), [[vue.vShow, props2.showCloseButton]])])]);
10963
11317
  }
10964
11318
  });
10965
- const CouponList = withInstall(stdin_default$13);
10966
- const [name$V, bem$U] = createNamespace("filter-tag");
11319
+ const CouponList = withInstall(stdin_default$11);
11320
+ const [name$T, bem$S] = createNamespace("filter-tag");
10967
11321
  const filterTagProps = {
10968
11322
  selected: Boolean,
10969
11323
  disabled: Boolean,
@@ -10980,8 +11334,8 @@
10980
11334
  dot: Boolean,
10981
11335
  badge: numericProp
10982
11336
  };
10983
- var stdin_default$12 = vue.defineComponent({
10984
- name: name$V,
11337
+ var stdin_default$10 = vue.defineComponent({
11338
+ name: name$T,
10985
11339
  props: filterTagProps,
10986
11340
  emits: ["click"],
10987
11341
  setup(props2, {
@@ -10990,7 +11344,7 @@
10990
11344
  }) {
10991
11345
  const renderIcon = () => props2.icon && vue.createVNode(Icon, {
10992
11346
  "name": props2.icon,
10993
- "class": bem$U("icon"),
11347
+ "class": bem$S("icon"),
10994
11348
  "classPrefix": props2.iconPrefix
10995
11349
  }, null);
10996
11350
  const renderBadge = () => {
@@ -11011,7 +11365,7 @@
11011
11365
  const content = (_a = slots.default) == null ? void 0 : _a.call(slots);
11012
11366
  return vue.createVNode("button", {
11013
11367
  "type": "button",
11014
- "class": bem$U({
11368
+ "class": bem$S({
11015
11369
  selected: props2.selected,
11016
11370
  disabled: props2.disabled,
11017
11371
  large: props2.size === "large"
@@ -11019,15 +11373,15 @@
11019
11373
  "disabled": props2.disabled,
11020
11374
  "onClick": (event) => emit("click", event)
11021
11375
  }, [props2.iconPosition === "left" && icon, vue.createVNode("span", {
11022
- "class": bem$U("text")
11376
+ "class": bem$S("text")
11023
11377
  }, [content]), props2.iconPosition === "right" && icon, renderBadge()]);
11024
11378
  };
11025
11379
  }
11026
11380
  });
11027
- const FilterTag = withInstall(stdin_default$12);
11028
- const [name$U] = createNamespace("time-picker");
11029
- var stdin_default$11 = vue.defineComponent({
11030
- name: name$U,
11381
+ const FilterTag = withInstall(stdin_default$10);
11382
+ const [name$S] = createNamespace("time-picker");
11383
+ var stdin_default$$ = vue.defineComponent({
11384
+ name: name$S,
11031
11385
  props: extend$1({}, sharedProps, {
11032
11386
  minHour: makeNumericProp(0),
11033
11387
  maxHour: makeNumericProp(23),
@@ -11134,9 +11488,9 @@
11134
11488
  }
11135
11489
  });
11136
11490
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
11137
- const [name$T] = createNamespace("date-picker");
11138
- var stdin_default$10 = vue.defineComponent({
11139
- name: name$T,
11491
+ const [name$R] = createNamespace("date-picker");
11492
+ var stdin_default$_ = vue.defineComponent({
11493
+ name: name$R,
11140
11494
  props: extend$1({}, sharedProps, {
11141
11495
  type: makeStringProp("datetime"),
11142
11496
  modelValue: Date,
@@ -11374,10 +11728,10 @@
11374
11728
  }, pick(props2, pickerInheritKeys)), slots);
11375
11729
  }
11376
11730
  });
11377
- const [name$S, bem$T] = createNamespace("datetime-picker");
11378
- const timePickerPropKeys = Object.keys(stdin_default$11.props);
11379
- const datePickerPropKeys = Object.keys(stdin_default$10.props);
11380
- const datetimePickerProps = extend$1({}, stdin_default$11.props, stdin_default$10.props, {
11731
+ const [name$Q, bem$R] = createNamespace("datetime-picker");
11732
+ const timePickerPropKeys = Object.keys(stdin_default$$.props);
11733
+ const datePickerPropKeys = Object.keys(stdin_default$_.props);
11734
+ const datetimePickerProps = extend$1({}, stdin_default$$.props, stdin_default$_.props, {
11381
11735
  modelValue: [String, Date],
11382
11736
  showTimeRange: Boolean,
11383
11737
  startTimeFromCurrent: {
@@ -11395,8 +11749,8 @@
11395
11749
  default: "结束时间"
11396
11750
  }
11397
11751
  });
11398
- var stdin_default$$ = vue.defineComponent({
11399
- name: name$S,
11752
+ var stdin_default$Z = vue.defineComponent({
11753
+ name: name$Q,
11400
11754
  props: datetimePickerProps,
11401
11755
  emits: ["update:startTime", "update:endTime", "time-range-change"],
11402
11756
  setup(props2, {
@@ -11465,7 +11819,7 @@
11465
11819
  });
11466
11820
  return () => {
11467
11821
  const isTimePicker = props2.type === "time";
11468
- const Component = isTimePicker ? stdin_default$11 : stdin_default$10;
11822
+ const Component = isTimePicker ? stdin_default$$ : stdin_default$_;
11469
11823
  const inheritProps = pick(props2, isTimePicker ? timePickerPropKeys : datePickerPropKeys);
11470
11824
  const showTimeRange = props2.showTimeRange && props2.type === "datetime";
11471
11825
  const timeRangeSlots = showTimeRange ? {
@@ -11478,7 +11832,7 @@
11478
11832
  "columns-top": () => {
11479
11833
  var _a;
11480
11834
  return [vue.createVNode("div", {
11481
- "class": bem$T("time-range")
11835
+ "class": bem$R("time-range")
11482
11836
  }, [vue.createVNode(FilterTag, {
11483
11837
  "selected": activeTimeRange.value === "start",
11484
11838
  "onClick": () => onTimeRangeClick("start")
@@ -11494,14 +11848,14 @@
11494
11848
  "columns-bottom": () => {
11495
11849
  var _a;
11496
11850
  return [vue.createVNode("div", {
11497
- "class": bem$T("time-range-bottom")
11851
+ "class": bem$R("time-range-bottom")
11498
11852
  }, null), (_a = slots["columns-bottom"]) == null ? void 0 : _a.call(slots)];
11499
11853
  }
11500
11854
  } : slots;
11501
11855
  if (showTimeRange) {
11502
- return vue.createVNode(stdin_default$10, vue.mergeProps({
11856
+ return vue.createVNode(stdin_default$_, vue.mergeProps({
11503
11857
  "ref": root,
11504
- "class": bem$T()
11858
+ "class": bem$R()
11505
11859
  }, pick(props2, datePickerPropKeys), attrs, {
11506
11860
  "modelValue": rangeModelValue.value,
11507
11861
  "minDate": rangeMinDate.value,
@@ -11512,13 +11866,13 @@
11512
11866
  }
11513
11867
  return vue.createVNode(Component, vue.mergeProps({
11514
11868
  "ref": root,
11515
- "class": bem$T()
11869
+ "class": bem$R()
11516
11870
  }, inheritProps, attrs), timeRangeSlots);
11517
11871
  };
11518
11872
  }
11519
11873
  });
11520
- const DatetimePicker = withInstall(stdin_default$$);
11521
- const [name$R, bem$S, t$7] = createNamespace("dialog");
11874
+ const DatetimePicker = withInstall(stdin_default$Z);
11875
+ const [name$P, bem$Q, t$5] = createNamespace("dialog");
11522
11876
  const dialogProps = extend$1({}, popupSharedProps, {
11523
11877
  title: String,
11524
11878
  theme: String,
@@ -11550,8 +11904,8 @@
11550
11904
  closeOnClickOverlay: Boolean
11551
11905
  });
11552
11906
  const popupInheritKeys$1 = [...popupSharedPropKeys, "transition", "closeOnPopstate"];
11553
- var stdin_default$_ = vue.defineComponent({
11554
- name: name$R,
11907
+ var stdin_default$Y = vue.defineComponent({
11908
+ name: name$P,
11555
11909
  props: dialogProps,
11556
11910
  emits: ["confirm", "cancel", "third", "keydown", "input", "update:show", "update:inputValue"],
11557
11911
  setup(props2, {
@@ -11611,7 +11965,7 @@
11611
11965
  const title = slots.title ? slots.title() : props2.title;
11612
11966
  if (title) {
11613
11967
  return vue.createVNode("div", {
11614
- "class": bem$S("header", {
11968
+ "class": bem$Q("header", {
11615
11969
  isolated: !props2.message && !props2.showInput && !slots.default
11616
11970
  })
11617
11971
  }, [title]);
@@ -11623,7 +11977,7 @@
11623
11977
  allowHtml,
11624
11978
  messageAlign
11625
11979
  } = props2;
11626
- const classNames = bem$S("message", {
11980
+ const classNames = bem$Q("message", {
11627
11981
  "has-title": hasTitle,
11628
11982
  [messageAlign]: messageAlign
11629
11983
  });
@@ -11650,7 +12004,7 @@
11650
12004
  "ref": inputRef,
11651
12005
  "size": "normal",
11652
12006
  "border": false,
11653
- "class": bem$S("input"),
12007
+ "class": bem$Q("input"),
11654
12008
  "modelValue": props2.inputValue,
11655
12009
  "inputAlign": props2.inputAlign,
11656
12010
  "placeholder": props2.inputPlaceholder,
@@ -11669,7 +12023,7 @@
11669
12023
  const hasTitle = !!(title || slots.title);
11670
12024
  return vue.createVNode("div", {
11671
12025
  "key": allowHtml ? 1 : 0,
11672
- "class": bem$S("content", {
12026
+ "class": bem$Q("content", {
11673
12027
  isolated: !hasTitle,
11674
12028
  "with-input": showInput
11675
12029
  })
@@ -11677,13 +12031,13 @@
11677
12031
  }
11678
12032
  };
11679
12033
  const renderButtons = () => vue.createVNode("div", {
11680
- "class": [BORDER_TOP, bem$S("footer", {
12034
+ "class": [BORDER_TOP, bem$Q("footer", {
11681
12035
  vertical: props2.showThirdButton
11682
12036
  })]
11683
12037
  }, [props2.showCancelButton && vue.createVNode(Button, {
11684
12038
  "size": "large",
11685
- "text": props2.cancelButtonText || t$7("cancel"),
11686
- "class": bem$S("cancel"),
12039
+ "text": props2.cancelButtonText || t$5("cancel"),
12040
+ "class": bem$Q("cancel"),
11687
12041
  "style": {
11688
12042
  color: props2.cancelButtonColor
11689
12043
  },
@@ -11692,8 +12046,8 @@
11692
12046
  "onClick": onCancel
11693
12047
  }, null), props2.showConfirmButton && vue.createVNode(Button, {
11694
12048
  "size": "large",
11695
- "text": props2.confirmButtonText || t$7("confirm"),
11696
- "class": [bem$S("confirm"), {
12049
+ "text": props2.confirmButtonText || t$5("confirm"),
12050
+ "class": [bem$Q("confirm"), {
11697
12051
  [BORDER_LEFT]: props2.showCancelButton && !props2.showThirdButton
11698
12052
  }],
11699
12053
  "style": {
@@ -11705,7 +12059,7 @@
11705
12059
  }, null), props2.showThirdButton && vue.createVNode(Button, {
11706
12060
  "size": "large",
11707
12061
  "text": props2.thirdButtonText,
11708
- "class": bem$S("third"),
12062
+ "class": bem$Q("third"),
11709
12063
  "style": {
11710
12064
  color: props2.thirdButtonColor
11711
12065
  },
@@ -11714,20 +12068,20 @@
11714
12068
  "onClick": onThird
11715
12069
  }, null)]);
11716
12070
  const renderRoundButtons = () => vue.createVNode(ActionBar, {
11717
- "class": bem$S("footer")
12071
+ "class": bem$Q("footer")
11718
12072
  }, {
11719
12073
  default: () => [props2.showCancelButton && vue.createVNode(ActionBarButton, {
11720
12074
  "type": "warning",
11721
- "text": props2.cancelButtonText || t$7("cancel"),
11722
- "class": bem$S("cancel"),
12075
+ "text": props2.cancelButtonText || t$5("cancel"),
12076
+ "class": bem$Q("cancel"),
11723
12077
  "color": props2.cancelButtonColor,
11724
12078
  "loading": loading.cancel,
11725
12079
  "disabled": props2.cancelButtonDisabled,
11726
12080
  "onClick": onCancel
11727
12081
  }, null), props2.showConfirmButton && vue.createVNode(ActionBarButton, {
11728
12082
  "type": "primary",
11729
- "text": props2.confirmButtonText || t$7("confirm"),
11730
- "class": bem$S("confirm"),
12083
+ "text": props2.confirmButtonText || t$5("confirm"),
12084
+ "class": bem$Q("confirm"),
11731
12085
  "color": props2.confirmButtonColor,
11732
12086
  "loading": loading.confirm,
11733
12087
  "disabled": props2.confirmButtonDisabled,
@@ -11759,7 +12113,7 @@
11759
12113
  return vue.createVNode(Popup, vue.mergeProps({
11760
12114
  "ref": root,
11761
12115
  "role": "dialog",
11762
- "class": [bem$S([theme]), className],
12116
+ "class": [bem$Q([theme]), className],
11763
12117
  "style": {
11764
12118
  width: addUnit(width2)
11765
12119
  },
@@ -11782,7 +12136,7 @@
11782
12136
  state,
11783
12137
  toggle
11784
12138
  } = usePopupState();
11785
- return () => vue.createVNode(stdin_default$_, vue.mergeProps(state, {
12139
+ return () => vue.createVNode(stdin_default$Y, vue.mergeProps(state, {
11786
12140
  "onUpdate:show": toggle
11787
12141
  }), null);
11788
12142
  }
@@ -11849,12 +12203,12 @@
11849
12203
  Dialog.resetDefaultOptions = () => {
11850
12204
  Dialog.currentOptions = extend$1({}, Dialog.defaultOptions);
11851
12205
  };
11852
- Dialog.Component = withInstall(stdin_default$_);
12206
+ Dialog.Component = withInstall(stdin_default$Y);
11853
12207
  Dialog.install = (app) => {
11854
12208
  app.use(Dialog.Component);
11855
12209
  app.config.globalProperties.$dialog = Dialog;
11856
12210
  };
11857
- const [name$Q, bem$R] = createNamespace("dropdown-menu");
12211
+ const [name$O, bem$P] = createNamespace("dropdown-menu");
11858
12212
  const dropdownMenuProps = {
11859
12213
  overlay: truthProp,
11860
12214
  zIndex: numericProp,
@@ -11866,9 +12220,9 @@
11866
12220
  closeOnClickOutside: truthProp,
11867
12221
  closeOnClickOverlay: truthProp
11868
12222
  };
11869
- const DROPDOWN_KEY = Symbol(name$Q);
11870
- var stdin_default$Z = vue.defineComponent({
11871
- name: name$Q,
12223
+ const DROPDOWN_KEY = Symbol(name$O);
12224
+ var stdin_default$X = vue.defineComponent({
12225
+ name: name$O,
11872
12226
  props: dropdownMenuProps,
11873
12227
  setup(props2, {
11874
12228
  slots
@@ -11940,7 +12294,7 @@
11940
12294
  "id": `${id}-${index}`,
11941
12295
  "role": "button",
11942
12296
  "tabindex": disabled ? void 0 : 0,
11943
- "class": [bem$R("item", {
12297
+ "class": [bem$P("item", {
11944
12298
  disabled
11945
12299
  }), {
11946
12300
  [HAPTICS_FEEDBACK]: !disabled
@@ -11951,7 +12305,7 @@
11951
12305
  }
11952
12306
  }
11953
12307
  }, [vue.createVNode("span", {
11954
- "class": [bem$R("title", {
12308
+ "class": [bem$P("title", {
11955
12309
  down: showPopup === (props2.direction === "down"),
11956
12310
  active: showPopup
11957
12311
  }), titleClass],
@@ -11976,18 +12330,18 @@
11976
12330
  var _a;
11977
12331
  return vue.createVNode("div", {
11978
12332
  "ref": root,
11979
- "class": bem$R()
12333
+ "class": bem$P()
11980
12334
  }, [props2.showBar && vue.createVNode("div", {
11981
12335
  "ref": barRef,
11982
12336
  "style": barStyle.value,
11983
- "class": bem$R("bar", {
12337
+ "class": bem$P("bar", {
11984
12338
  opened: opened.value
11985
12339
  })
11986
12340
  }, [children.map(renderTitle)]), (_a = slots.default) == null ? void 0 : _a.call(slots)]);
11987
12341
  };
11988
12342
  }
11989
12343
  });
11990
- const [name$P, bem$Q] = createNamespace("dropdown-item");
12344
+ const [name$N, bem$O] = createNamespace("dropdown-item");
11991
12345
  const dropdownItemProps = {
11992
12346
  title: String,
11993
12347
  options: makeArrayProp(),
@@ -11997,8 +12351,8 @@
11997
12351
  modelValue: unknownProp,
11998
12352
  titleClass: unknownProp
11999
12353
  };
12000
- var stdin_default$Y = vue.defineComponent({
12001
- name: name$P,
12354
+ var stdin_default$W = vue.defineComponent({
12355
+ name: name$N,
12002
12356
  props: dropdownItemProps,
12003
12357
  emits: ["open", "opened", "close", "closed", "change", "update:modelValue"],
12004
12358
  setup(props2, {
@@ -12065,7 +12419,7 @@
12065
12419
  const renderIcon = () => {
12066
12420
  if (active) {
12067
12421
  return vue.createVNode(Icon, {
12068
- "class": bem$Q("icon"),
12422
+ "class": bem$O("icon"),
12069
12423
  "color": activeColor,
12070
12424
  "name": "success"
12071
12425
  }, null);
@@ -12076,7 +12430,7 @@
12076
12430
  "key": option.value,
12077
12431
  "icon": option.icon,
12078
12432
  "title": option.text,
12079
- "class": bem$Q("option", {
12433
+ "class": bem$O("option", {
12080
12434
  active
12081
12435
  }),
12082
12436
  "style": {
@@ -12108,13 +12462,13 @@
12108
12462
  }
12109
12463
  return vue.withDirectives(vue.createVNode("div", {
12110
12464
  "style": style,
12111
- "class": bem$Q([direction]),
12465
+ "class": bem$O([direction]),
12112
12466
  "onClick": onClickWrapper
12113
12467
  }, [vue.createVNode(Popup, {
12114
12468
  "show": state.showPopup,
12115
12469
  "onUpdate:show": ($event) => state.showPopup = $event,
12116
12470
  "role": "menu",
12117
- "class": bem$Q("content"),
12471
+ "class": bem$O("content"),
12118
12472
  "overlay": overlay,
12119
12473
  "position": direction === "down" ? "top" : "bottom",
12120
12474
  "duration": state.transition ? duration : 0,
@@ -12152,15 +12506,15 @@
12152
12506
  };
12153
12507
  }
12154
12508
  });
12155
- const DropdownItem = withInstall(stdin_default$Y);
12156
- const DropdownMenu = withInstall(stdin_default$Z);
12157
- const [name$O, bem$P] = createNamespace("sidebar");
12158
- const SIDEBAR_KEY = Symbol(name$O);
12509
+ const DropdownItem = withInstall(stdin_default$W);
12510
+ const DropdownMenu = withInstall(stdin_default$X);
12511
+ const [name$M, bem$N] = createNamespace("sidebar");
12512
+ const SIDEBAR_KEY = Symbol(name$M);
12159
12513
  const sidebarProps = {
12160
12514
  modelValue: makeNumericProp(0)
12161
12515
  };
12162
- var stdin_default$X = vue.defineComponent({
12163
- name: name$O,
12516
+ var stdin_default$V = vue.defineComponent({
12517
+ name: name$M,
12164
12518
  props: sidebarProps,
12165
12519
  emits: ["change", "update:modelValue"],
12166
12520
  setup(props2, {
@@ -12185,13 +12539,13 @@
12185
12539
  var _a;
12186
12540
  return vue.createVNode("div", {
12187
12541
  "role": "tablist",
12188
- "class": bem$P()
12542
+ "class": bem$N()
12189
12543
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
12190
12544
  };
12191
12545
  }
12192
12546
  });
12193
- const Sidebar = withInstall(stdin_default$X);
12194
- const [name$N, bem$O] = createNamespace("sidebar-item");
12547
+ const Sidebar = withInstall(stdin_default$V);
12548
+ const [name$L, bem$M] = createNamespace("sidebar-item");
12195
12549
  const sidebarItemProps = extend$1({}, routeProps, {
12196
12550
  dot: Boolean,
12197
12551
  title: String,
@@ -12199,8 +12553,8 @@
12199
12553
  disabled: Boolean,
12200
12554
  badgeProps: Object
12201
12555
  });
12202
- var stdin_default$W = vue.defineComponent({
12203
- name: name$N,
12556
+ var stdin_default$U = vue.defineComponent({
12557
+ name: name$L,
12204
12558
  props: sidebarItemProps,
12205
12559
  emits: ["click"],
12206
12560
  setup(props2, {
@@ -12233,7 +12587,7 @@
12233
12587
  const selected = index.value === parent.getActive();
12234
12588
  return vue.createVNode("div", {
12235
12589
  "role": "tab",
12236
- "class": bem$O({
12590
+ "class": bem$M({
12237
12591
  select: selected,
12238
12592
  disabled
12239
12593
  }),
@@ -12242,7 +12596,7 @@
12242
12596
  "onClick": onClick
12243
12597
  }, [vue.createVNode(Badge, vue.mergeProps({
12244
12598
  "dot": dot,
12245
- "class": bem$O("text"),
12599
+ "class": bem$M("text"),
12246
12600
  "content": badge
12247
12601
  }, props2.badgeProps), {
12248
12602
  default: () => [slots.title ? slots.title() : title]
@@ -12250,8 +12604,8 @@
12250
12604
  };
12251
12605
  }
12252
12606
  });
12253
- const SidebarItem = withInstall(stdin_default$W);
12254
- const [name$M, bem$N] = createNamespace("floor-select");
12607
+ const SidebarItem = withInstall(stdin_default$U);
12608
+ const [name$K, bem$L] = createNamespace("floor-select");
12255
12609
  const defaultBuildings = [{
12256
12610
  id: "building-a",
12257
12611
  text: "建筑A座",
@@ -12366,8 +12720,8 @@
12366
12720
  },
12367
12721
  more: Boolean
12368
12722
  };
12369
- var stdin_default$V = vue.defineComponent({
12370
- name: name$M,
12723
+ var stdin_default$T = vue.defineComponent({
12724
+ name: name$K,
12371
12725
  props: floorSelectProps,
12372
12726
  emits: ["change", "update:activeBuilding", "update:modelValue"],
12373
12727
  setup(props2, {
@@ -12425,7 +12779,7 @@
12425
12779
  });
12426
12780
  return vue.createVNode("div", {
12427
12781
  "key": item.id,
12428
- "class": bem$N("cell")
12782
+ "class": bem$L("cell")
12429
12783
  }, [cell || vue.createVNode(Cell, {
12430
12784
  "title": item.text,
12431
12785
  "border": index < spaces.value.length - 1,
@@ -12437,14 +12791,14 @@
12437
12791
  }, null)]);
12438
12792
  };
12439
12793
  return () => vue.createVNode("div", {
12440
- "class": bem$N()
12794
+ "class": bem$L()
12441
12795
  }, [vue.createVNode(Tabs, {
12442
12796
  "active": activeBuilding.value,
12443
12797
  "type": "filter",
12444
12798
  "shrink": true,
12445
12799
  "more": props2.more,
12446
12800
  "showMore": showMore.value,
12447
- "class": bem$N("tabs"),
12801
+ "class": bem$L("tabs"),
12448
12802
  "onUpdate:active": selectBuilding,
12449
12803
  "onUpdate:showMore": (value) => {
12450
12804
  showMore.value = value;
@@ -12456,10 +12810,10 @@
12456
12810
  "title": building.text
12457
12811
  }, null))]
12458
12812
  }), vue.createVNode("div", {
12459
- "class": bem$N("content")
12813
+ "class": bem$L("content")
12460
12814
  }, [vue.createVNode(Sidebar, {
12461
12815
  "modelValue": activeFloor.value,
12462
- "class": bem$N("sidebar"),
12816
+ "class": bem$L("sidebar"),
12463
12817
  "onUpdate:modelValue": (value) => {
12464
12818
  activeFloor.value = +value;
12465
12819
  }
@@ -12474,19 +12828,19 @@
12474
12828
  "disabled": floor.disabled
12475
12829
  }, null))]
12476
12830
  }), vue.createVNode("div", {
12477
- "class": bem$N("cells")
12831
+ "class": bem$L("cells")
12478
12832
  }, [spaces.value.map(renderCell)])])]);
12479
12833
  }
12480
12834
  });
12481
- const FloorSelect = withInstall(stdin_default$V);
12482
- const [name$L, bem$M] = createNamespace("form-panel");
12835
+ const FloorSelect = withInstall(stdin_default$T);
12836
+ const [name$J, bem$K] = createNamespace("form-panel");
12483
12837
  const formPanelProps = {
12484
12838
  show: Boolean,
12485
12839
  title: String,
12486
12840
  confirmText: makeStringProp("确定")
12487
12841
  };
12488
- var stdin_default$U = vue.defineComponent({
12489
- name: name$L,
12842
+ var stdin_default$S = vue.defineComponent({
12843
+ name: name$J,
12490
12844
  props: formPanelProps,
12491
12845
  emits: ["update:show", "confirm"],
12492
12846
  setup(props2, {
@@ -12500,19 +12854,19 @@
12500
12854
  };
12501
12855
  return () => vue.createVNode(ActionSheet, {
12502
12856
  "show": props2.show,
12503
- "class": bem$M(),
12857
+ "class": bem$K(),
12504
12858
  "onUpdate:show": (show) => emit("update:show", show)
12505
12859
  }, {
12506
12860
  default: () => {
12507
12861
  var _a;
12508
12862
  return [vue.createVNode("div", {
12509
- "class": bem$M("content")
12863
+ "class": bem$K("content")
12510
12864
  }, [vue.createVNode("div", {
12511
- "class": bem$M("nav-wrapper")
12865
+ "class": bem$K("nav-wrapper")
12512
12866
  }, [vue.createVNode(NavBar, {
12513
12867
  "title": props2.title,
12514
12868
  "border": false,
12515
- "class": bem$M("nav")
12869
+ "class": bem$K("nav")
12516
12870
  }, {
12517
12871
  left: () => vue.createVNode(Icon, {
12518
12872
  "name": "cross",
@@ -12520,9 +12874,9 @@
12520
12874
  "onClick": close
12521
12875
  }, null)
12522
12876
  })]), vue.createVNode("div", {
12523
- "class": bem$M("body")
12877
+ "class": bem$K("body")
12524
12878
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), vue.createVNode("div", {
12525
- "class": bem$M("footer")
12879
+ "class": bem$K("footer")
12526
12880
  }, [vue.createVNode(Button, {
12527
12881
  "block": true,
12528
12882
  "type": "primary",
@@ -12534,8 +12888,8 @@
12534
12888
  });
12535
12889
  }
12536
12890
  });
12537
- const FormPanel = withInstall(stdin_default$U);
12538
- const [name$K, bem$L] = createNamespace("friendly-tip");
12891
+ const FormPanel = withInstall(stdin_default$S);
12892
+ const [name$I, bem$J] = createNamespace("friendly-tip");
12539
12893
  const friendlyTipProps = {
12540
12894
  show: truthProp,
12541
12895
  message: String,
@@ -12552,8 +12906,8 @@
12552
12906
  default: "body"
12553
12907
  }
12554
12908
  };
12555
- var stdin_default$T = vue.defineComponent({
12556
- name: name$K,
12909
+ var stdin_default$R = vue.defineComponent({
12910
+ name: name$I,
12557
12911
  props: friendlyTipProps,
12558
12912
  emits: ["update:show"],
12559
12913
  setup(props2, {
@@ -12564,7 +12918,7 @@
12564
12918
  return () => vue.createVNode(Popover, {
12565
12919
  "show": props2.show,
12566
12920
  "trigger": "manual",
12567
- "class": bem$L("popover"),
12921
+ "class": bem$J("popover"),
12568
12922
  "placement": props2.placement,
12569
12923
  "showArrow": props2.showArrow,
12570
12924
  "iconPrefix": props2.iconPrefix,
@@ -12577,19 +12931,19 @@
12577
12931
  return (_a = slots.reference) == null ? void 0 : _a.call(slots);
12578
12932
  },
12579
12933
  default: () => vue.createVNode("div", {
12580
- "class": bem$L()
12934
+ "class": bem$J()
12581
12935
  }, [props2.icon && vue.createVNode(Icon, {
12582
12936
  "name": props2.icon,
12583
- "class": bem$L("icon"),
12937
+ "class": bem$J("icon"),
12584
12938
  "classPrefix": props2.iconPrefix
12585
12939
  }, null), vue.createVNode("span", {
12586
- "class": bem$L("message")
12940
+ "class": bem$J("message")
12587
12941
  }, [slots.default ? slots.default() : props2.message])])
12588
12942
  });
12589
12943
  }
12590
12944
  });
12591
- const FriendlyTip = withInstall(stdin_default$T);
12592
- const [name$J, bem$K] = createNamespace("grid");
12945
+ const FriendlyTip = withInstall(stdin_default$R);
12946
+ const [name$H, bem$I] = createNamespace("grid");
12593
12947
  const gridProps = {
12594
12948
  square: Boolean,
12595
12949
  center: truthProp,
@@ -12601,9 +12955,9 @@
12601
12955
  clickable: Boolean,
12602
12956
  columnNum: makeNumericProp(4)
12603
12957
  };
12604
- const GRID_KEY = Symbol(name$J);
12605
- var stdin_default$S = vue.defineComponent({
12606
- name: name$J,
12958
+ const GRID_KEY = Symbol(name$H);
12959
+ var stdin_default$Q = vue.defineComponent({
12960
+ name: name$H,
12607
12961
  props: gridProps,
12608
12962
  setup(props2, {
12609
12963
  slots
@@ -12620,15 +12974,15 @@
12620
12974
  "style": {
12621
12975
  paddingLeft: addUnit(props2.gutter)
12622
12976
  },
12623
- "class": [bem$K(), {
12977
+ "class": [bem$I(), {
12624
12978
  [BORDER_TOP]: props2.border && !props2.gutter
12625
12979
  }]
12626
12980
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
12627
12981
  };
12628
12982
  }
12629
12983
  });
12630
- const Grid = withInstall(stdin_default$S);
12631
- const [name$I, bem$J] = createNamespace("grid-item");
12984
+ const Grid = withInstall(stdin_default$Q);
12985
+ const [name$G, bem$H] = createNamespace("grid-item");
12632
12986
  const gridItemProps = extend$1({}, routeProps, {
12633
12987
  dot: Boolean,
12634
12988
  text: String,
@@ -12638,8 +12992,8 @@
12638
12992
  iconPrefix: String,
12639
12993
  badgeProps: Object
12640
12994
  });
12641
- var stdin_default$R = vue.defineComponent({
12642
- name: name$I,
12995
+ var stdin_default$P = vue.defineComponent({
12996
+ name: name$G,
12643
12997
  props: gridItemProps,
12644
12998
  setup(props2, {
12645
12999
  slots
@@ -12702,7 +13056,7 @@
12702
13056
  "name": props2.icon,
12703
13057
  "size": parent.props.iconSize,
12704
13058
  "badge": props2.badge,
12705
- "class": bem$J("icon"),
13059
+ "class": bem$H("icon"),
12706
13060
  "color": props2.iconColor,
12707
13061
  "badgeProps": props2.badgeProps,
12708
13062
  "classPrefix": props2.iconPrefix
@@ -12715,7 +13069,7 @@
12715
13069
  }
12716
13070
  if (props2.text) {
12717
13071
  return vue.createVNode("span", {
12718
- "class": bem$J("text")
13072
+ "class": bem$H("text")
12719
13073
  }, [props2.text]);
12720
13074
  }
12721
13075
  };
@@ -12735,7 +13089,7 @@
12735
13089
  direction,
12736
13090
  clickable
12737
13091
  } = parent.props;
12738
- const classes = [bem$J("content", [direction, {
13092
+ const classes = [bem$H("content", [direction, {
12739
13093
  center,
12740
13094
  square,
12741
13095
  reverse,
@@ -12745,7 +13099,7 @@
12745
13099
  [BORDER]: border
12746
13100
  }];
12747
13101
  return vue.createVNode("div", {
12748
- "class": [bem$J({
13102
+ "class": [bem$H({
12749
13103
  square
12750
13104
  })],
12751
13105
  "style": rootStyle.value
@@ -12759,10 +13113,10 @@
12759
13113
  };
12760
13114
  }
12761
13115
  });
12762
- const GridItem = withInstall(stdin_default$R);
13116
+ const GridItem = withInstall(stdin_default$P);
12763
13117
  const getDistance = (touches) => Math.sqrt((touches[0].clientX - touches[1].clientX) ** 2 + (touches[0].clientY - touches[1].clientY) ** 2);
12764
- const bem$I = createNamespace("image-preview")[1];
12765
- var stdin_default$Q = vue.defineComponent({
13118
+ const bem$G = createNamespace("image-preview")[1];
13119
+ var stdin_default$O = vue.defineComponent({
12766
13120
  props: {
12767
13121
  src: String,
12768
13122
  show: Boolean,
@@ -12988,19 +13342,19 @@
12988
13342
  };
12989
13343
  return vue.createVNode(SwipeItem, {
12990
13344
  "ref": swipeItem,
12991
- "class": bem$I("swipe-item"),
13345
+ "class": bem$G("swipe-item"),
12992
13346
  "onTouchstartPassive": onTouchStart,
12993
13347
  "onTouchend": onTouchEnd,
12994
13348
  "onTouchcancel": onTouchEnd
12995
13349
  }, {
12996
13350
  default: () => [slots.image ? vue.createVNode("div", {
12997
- "class": bem$I("image-wrap")
13351
+ "class": bem$G("image-wrap")
12998
13352
  }, [slots.image({
12999
13353
  src: props2.src
13000
13354
  })]) : vue.createVNode(Image$1, {
13001
13355
  "src": props2.src,
13002
13356
  "fit": "contain",
13003
- "class": bem$I("image", {
13357
+ "class": bem$G("image", {
13004
13358
  vertical: vertical.value
13005
13359
  }),
13006
13360
  "style": imageStyle.value,
@@ -13010,7 +13364,7 @@
13010
13364
  };
13011
13365
  }
13012
13366
  });
13013
- const [name$H, bem$H] = createNamespace("image-preview");
13367
+ const [name$F, bem$F] = createNamespace("image-preview");
13014
13368
  const popupProps$1 = ["show", "transition", "overlayStyle", "closeOnPopstate"];
13015
13369
  const imagePreviewProps = {
13016
13370
  show: Boolean,
@@ -13033,8 +13387,8 @@
13033
13387
  closeOnPopstate: truthProp,
13034
13388
  closeIconPosition: makeStringProp("top-right")
13035
13389
  };
13036
- var stdin_default$P = vue.defineComponent({
13037
- name: name$H,
13390
+ var stdin_default$N = vue.defineComponent({
13391
+ name: name$F,
13038
13392
  props: imagePreviewProps,
13039
13393
  emits: ["scale", "close", "closed", "change", "update:show"],
13040
13394
  setup(props2, {
@@ -13072,7 +13426,7 @@
13072
13426
  const renderIndex = () => {
13073
13427
  if (props2.showIndex) {
13074
13428
  return vue.createVNode("div", {
13075
- "class": bem$H("index")
13429
+ "class": bem$F("index")
13076
13430
  }, [slots.index ? slots.index({
13077
13431
  index: state.active
13078
13432
  }) : `${state.active + 1} / ${props2.images.length}`]);
@@ -13081,7 +13435,7 @@
13081
13435
  const renderCover = () => {
13082
13436
  if (slots.cover) {
13083
13437
  return vue.createVNode("div", {
13084
- "class": bem$H("cover")
13438
+ "class": bem$F("cover")
13085
13439
  }, [slots.cover()]);
13086
13440
  }
13087
13441
  };
@@ -13089,14 +13443,14 @@
13089
13443
  "ref": swipeRef,
13090
13444
  "lazyRender": true,
13091
13445
  "loop": props2.loop,
13092
- "class": bem$H("swipe"),
13446
+ "class": bem$F("swipe"),
13093
13447
  "duration": props2.swipeDuration,
13094
13448
  "initialSwipe": props2.startPosition,
13095
13449
  "showIndicators": props2.showIndicators,
13096
13450
  "indicatorColor": "white",
13097
13451
  "onChange": setActive
13098
13452
  }, {
13099
- default: () => [props2.images.map((image) => vue.createVNode(stdin_default$Q, {
13453
+ default: () => [props2.images.map((image) => vue.createVNode(stdin_default$O, {
13100
13454
  "src": image,
13101
13455
  "show": props2.show,
13102
13456
  "active": state.active,
@@ -13115,7 +13469,7 @@
13115
13469
  return vue.createVNode(Icon, {
13116
13470
  "role": "button",
13117
13471
  "name": props2.closeIcon,
13118
- "class": [bem$H("close-icon", props2.closeIconPosition), HAPTICS_FEEDBACK],
13472
+ "class": [bem$F("close-icon", props2.closeIconPosition), HAPTICS_FEEDBACK],
13119
13473
  "onClick": emitClose
13120
13474
  }, null);
13121
13475
  }
@@ -13152,8 +13506,8 @@
13152
13506
  }
13153
13507
  });
13154
13508
  return () => vue.createVNode(Popup, vue.mergeProps({
13155
- "class": [bem$H(), props2.className],
13156
- "overlayClass": [bem$H("overlay"), props2.overlayClass],
13509
+ "class": [bem$F(), props2.className],
13510
+ "overlayClass": [bem$F("overlay"), props2.overlayClass],
13157
13511
  "onClosed": onClosed,
13158
13512
  "onUpdate:show": updateShow
13159
13513
  }, pick(props2, popupProps$1)), {
@@ -13197,7 +13551,7 @@
13197
13551
  const onClosed = () => {
13198
13552
  state.images = [];
13199
13553
  };
13200
- return () => vue.createVNode(stdin_default$P, vue.mergeProps(state, {
13554
+ return () => vue.createVNode(stdin_default$N, vue.mergeProps(state, {
13201
13555
  "onClosed": onClosed,
13202
13556
  "onUpdate:show": toggle
13203
13557
  }), null);
@@ -13218,7 +13572,7 @@
13218
13572
  instance$2.open(extend$1({}, defaultConfig$1, options));
13219
13573
  return instance$2;
13220
13574
  };
13221
- ImagePreview.Component = withInstall(stdin_default$P);
13575
+ ImagePreview.Component = withInstall(stdin_default$N);
13222
13576
  ImagePreview.install = (app) => {
13223
13577
  app.use(ImagePreview.Component);
13224
13578
  };
@@ -13227,7 +13581,7 @@
13227
13581
  const indexList = Array(26).fill("").map((_, i) => String.fromCharCode(charCodeOfA + i));
13228
13582
  return indexList;
13229
13583
  }
13230
- const [name$G, bem$G] = createNamespace("index-bar");
13584
+ const [name$E, bem$E] = createNamespace("index-bar");
13231
13585
  const indexBarProps = {
13232
13586
  sticky: truthProp,
13233
13587
  zIndex: numericProp,
@@ -13239,9 +13593,9 @@
13239
13593
  default: genAlphabet
13240
13594
  }
13241
13595
  };
13242
- const INDEX_BAR_KEY = Symbol(name$G);
13243
- var stdin_default$O = vue.defineComponent({
13244
- name: name$G,
13596
+ const INDEX_BAR_KEY = Symbol(name$E);
13597
+ var stdin_default$M = vue.defineComponent({
13598
+ name: name$E,
13245
13599
  props: indexBarProps,
13246
13600
  emits: ["select", "change"],
13247
13601
  setup(props2, {
@@ -13353,7 +13707,7 @@
13353
13707
  const renderIndexes = () => props2.indexList.map((index) => {
13354
13708
  const active = index === activeAnchor.value;
13355
13709
  return vue.createVNode("span", {
13356
- "class": bem$G("index", {
13710
+ "class": bem$E("index", {
13357
13711
  active
13358
13712
  }),
13359
13713
  "style": active ? highlightStyle.value : void 0,
@@ -13414,7 +13768,7 @@
13414
13768
  };
13415
13769
  const renderSidebar = () => vue.createVNode("div", {
13416
13770
  "ref": sidebar,
13417
- "class": bem$G("sidebar"),
13771
+ "class": bem$E("sidebar"),
13418
13772
  "style": sidebarStyle.value,
13419
13773
  "onClick": onClickSidebar,
13420
13774
  "onTouchstartPassive": touch.start
@@ -13430,7 +13784,7 @@
13430
13784
  var _a;
13431
13785
  return vue.createVNode("div", {
13432
13786
  "ref": root,
13433
- "class": bem$G()
13787
+ "class": bem$E()
13434
13788
  }, [props2.teleport ? vue.createVNode(vue.Teleport, {
13435
13789
  "to": props2.teleport
13436
13790
  }, {
@@ -13439,12 +13793,12 @@
13439
13793
  };
13440
13794
  }
13441
13795
  });
13442
- const [name$F, bem$F] = createNamespace("index-anchor");
13796
+ const [name$D, bem$D] = createNamespace("index-anchor");
13443
13797
  const indexAnchorProps = {
13444
13798
  index: numericProp
13445
13799
  };
13446
- var stdin_default$N = vue.defineComponent({
13447
- name: name$F,
13800
+ var stdin_default$L = vue.defineComponent({
13801
+ name: name$D,
13448
13802
  props: indexAnchorProps,
13449
13803
  setup(props2, {
13450
13804
  slots
@@ -13504,7 +13858,7 @@
13504
13858
  }
13505
13859
  }, [vue.createVNode("div", {
13506
13860
  "style": anchorStyle.value,
13507
- "class": [bem$F({
13861
+ "class": [bem$D({
13508
13862
  sticky
13509
13863
  }), {
13510
13864
  [BORDER_BOTTOM]: sticky
@@ -13513,9 +13867,9 @@
13513
13867
  };
13514
13868
  }
13515
13869
  });
13516
- const IndexAnchor = withInstall(stdin_default$N);
13517
- const IndexBar = withInstall(stdin_default$O);
13518
- const [name$E, bem$E] = createNamespace("label");
13870
+ const IndexAnchor = withInstall(stdin_default$L);
13871
+ const IndexBar = withInstall(stdin_default$M);
13872
+ const [name$C, bem$C] = createNamespace("label");
13519
13873
  const labelProps = {
13520
13874
  label: makeStringProp(""),
13521
13875
  showLabel: truthProp,
@@ -13525,6 +13879,10 @@
13525
13879
  default: void 0
13526
13880
  },
13527
13881
  content: makeStringProp(""),
13882
+ contentList: {
13883
+ type: Array,
13884
+ default: () => []
13885
+ },
13528
13886
  type: makeStringProp("default"),
13529
13887
  size: makeStringProp("default"),
13530
13888
  contentAlign: makeStringProp("follow"),
@@ -13544,8 +13902,8 @@
13544
13902
  default: () => []
13545
13903
  }
13546
13904
  };
13547
- var stdin_default$M = vue.defineComponent({
13548
- name: name$E,
13905
+ var stdin_default$K = vue.defineComponent({
13906
+ name: name$C,
13549
13907
  props: labelProps,
13550
13908
  emits: ["click", "click-media", "long-press"],
13551
13909
  setup(props2, {
@@ -13554,7 +13912,9 @@
13554
13912
  }) {
13555
13913
  let longPressTimer;
13556
13914
  const vertical = vue.computed(() => props2.vertical || props2.type === "media");
13557
- const ellipsis = vue.computed(() => props2.ellipsis && !vertical.value && !["tag", "media"].includes(props2.type));
13915
+ const hasContentList = vue.computed(() => props2.contentList.length > 0);
13916
+ const displayContent = vue.computed(() => hasContentList.value ? props2.contentList.join("、") : props2.content);
13917
+ const ellipsis = vue.computed(() => props2.ellipsis && !hasContentList.value && !vertical.value && !["tag", "media"].includes(props2.type));
13558
13918
  const displayLabel = vue.computed(() => {
13559
13919
  var _a;
13560
13920
  const showColon = (_a = props2.showColon) != null ? _a : !vertical.value && props2.contentAlign !== "right";
@@ -13586,24 +13946,24 @@
13586
13946
  };
13587
13947
  const renderText = () => {
13588
13948
  var _a;
13589
- const content = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || props2.content;
13949
+ const content = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || displayContent.value;
13590
13950
  if (props2.type === "link") {
13591
13951
  return props2.href ? vue.createVNode("a", {
13592
- "class": bem$E("link"),
13952
+ "class": bem$C("link"),
13593
13953
  "href": props2.href,
13594
13954
  "onClick": (event) => emit("click", event)
13595
13955
  }, [content]) : vue.createVNode("button", {
13596
- "class": bem$E("link"),
13956
+ "class": bem$C("link"),
13597
13957
  "type": "button",
13598
13958
  "onClick": (event) => emit("click", event)
13599
13959
  }, [content]);
13600
13960
  }
13601
13961
  return vue.createVNode("span", {
13602
- "class": bem$E("text")
13962
+ "class": bem$C("text")
13603
13963
  }, [content]);
13604
13964
  };
13605
13965
  const renderTags = () => vue.createVNode("div", {
13606
- "class": bem$E("tags")
13966
+ "class": bem$C("tags")
13607
13967
  }, [props2.tags.map((tag) => vue.createVNode(Tag, {
13608
13968
  "key": tag,
13609
13969
  "type": "gray"
@@ -13611,10 +13971,10 @@
13611
13971
  default: () => [tag]
13612
13972
  }))]);
13613
13973
  const renderMedia = () => vue.createVNode("div", {
13614
- "class": bem$E("media")
13974
+ "class": bem$C("media")
13615
13975
  }, [props2.media.map((item, index) => vue.createVNode("button", {
13616
13976
  "key": `${item.url}-${index}`,
13617
- "class": bem$E("media-item"),
13977
+ "class": bem$C("media-item"),
13618
13978
  "type": "button",
13619
13979
  "onClick": (event) => emit("click-media", item, index, event)
13620
13980
  }, [vue.createVNode(Image$1, {
@@ -13623,7 +13983,7 @@
13623
13983
  "fit": "cover"
13624
13984
  }, null), item.type === "video" && vue.createVNode(Icon, {
13625
13985
  "name": "play-circle-o",
13626
- "class": bem$E("play")
13986
+ "class": bem$C("play")
13627
13987
  }, null)]))]);
13628
13988
  const renderContent = () => {
13629
13989
  if (props2.type === "tag")
@@ -13633,40 +13993,41 @@
13633
13993
  return renderText();
13634
13994
  };
13635
13995
  return () => vue.createVNode("div", {
13636
- "class": bem$E([props2.type, {
13996
+ "class": bem$C([props2.type, {
13637
13997
  mini: props2.size === "mini",
13638
13998
  vertical: vertical.value,
13639
13999
  ellipsis: ellipsis.value,
13640
14000
  location: showLocation.value,
13641
14001
  "content-right": props2.contentAlign === "right",
13642
- "same-color": props2.sameColor
14002
+ "same-color": props2.sameColor,
14003
+ "multiple-content": hasContentList.value
13643
14004
  }])
13644
14005
  }, [showLeftIcon.value && vue.createVNode("div", {
13645
- "class": bem$E("left-icon")
14006
+ "class": bem$C("left-icon")
13646
14007
  }, [vue.createVNode(Icon, {
13647
14008
  "name": props2.leftIcon,
13648
14009
  "size": "12"
13649
14010
  }, null)]), props2.showLabel && vue.createVNode("span", {
13650
- "class": bem$E("label"),
14011
+ "class": bem$C("label"),
13651
14012
  "onPointerdown": () => startLongPress("label", displayLabel.value),
13652
14013
  "onPointerup": clearLongPress,
13653
14014
  "onPointercancel": clearLongPress,
13654
14015
  "onPointerleave": clearLongPress
13655
14016
  }, [displayLabel.value]), props2.showContent && vue.createVNode("div", {
13656
- "class": bem$E("value"),
13657
- "onPointerdown": () => startLongPress("content", props2.content),
14017
+ "class": bem$C("value"),
14018
+ "onPointerdown": () => startLongPress("content", displayContent.value),
13658
14019
  "onPointerup": clearLongPress,
13659
14020
  "onPointercancel": clearLongPress,
13660
14021
  "onPointerleave": clearLongPress
13661
14022
  }, [renderContent(), showLocation.value && vue.createVNode("div", {
13662
- "class": bem$E("location")
14023
+ "class": bem$C("location")
13663
14024
  }, [vue.createVNode(Icon, {
13664
14025
  "name": "location-o"
13665
14026
  }, null), vue.createVNode("span", null, [props2.location])])])]);
13666
14027
  }
13667
14028
  });
13668
- const Label = withInstall(stdin_default$M);
13669
- const [name$D, bem$D] = createNamespace("info-card");
14029
+ const Label = withInstall(stdin_default$K);
14030
+ const [name$B, bem$B] = createNamespace("info-card");
13670
14031
  const infoCardProps = {
13671
14032
  title: makeStringProp(""),
13672
14033
  showTitle: truthProp,
@@ -13688,8 +14049,8 @@
13688
14049
  expandText: makeStringProp("查看更多"),
13689
14050
  collapseText: makeStringProp("收起")
13690
14051
  };
13691
- var stdin_default$L = vue.defineComponent({
13692
- name: name$D,
14052
+ var stdin_default$J = vue.defineComponent({
14053
+ name: name$B,
13693
14054
  props: infoCardProps,
13694
14055
  emits: ["update:modelValue", "change", "click", "click-media"],
13695
14056
  setup(props2, {
@@ -13737,22 +14098,22 @@
13737
14098
  "name": "van-info-card-expand"
13738
14099
  }, {
13739
14100
  default: () => [showExtra.value && vue.createVNode("div", {
13740
- "class": bem$D("extra")
14101
+ "class": bem$B("extra")
13741
14102
  }, [visibleExtraFields.value.map(renderField), extraSlot])]
13742
14103
  });
13743
14104
  };
13744
14105
  return () => {
13745
14106
  var _a, _b;
13746
14107
  return vue.createVNode("section", {
13747
- "class": bem$D()
14108
+ "class": bem$B()
13748
14109
  }, [props2.showCacheBadge && vue.createVNode("div", {
13749
- "class": bem$D("cache-badge")
14110
+ "class": bem$B("cache-badge")
13750
14111
  }, [vue.createVNode(Icon, {
13751
14112
  "name": "success",
13752
14113
  "size": "12",
13753
- "class": bem$D("cache-badge-icon")
14114
+ "class": bem$B("cache-badge-icon")
13754
14115
  }, null), vue.createVNode("span", null, [props2.cacheText])]), props2.showTitle && (slots.title || props2.title) && vue.createVNode("div", {
13755
- "class": bem$D("title", {
14116
+ "class": bem$B("title", {
13756
14117
  collapsible: showTitleCollapse.value
13757
14118
  }),
13758
14119
  "role": showTitleCollapse.value ? "button" : void 0,
@@ -13761,14 +14122,14 @@
13761
14122
  "onClick": showTitleCollapse.value ? onTitleCollapse : void 0,
13762
14123
  "onKeydown": showTitleCollapse.value ? onTitleCollapseKeydown : void 0
13763
14124
  }, [vue.createVNode("span", {
13764
- "class": bem$D("title-content")
14125
+ "class": bem$B("title-content")
13765
14126
  }, [((_a = slots.title) == null ? void 0 : _a.call(slots)) || props2.title]), showTitleCollapse.value && vue.createVNode("div", {
13766
- "class": bem$D("title-collapse"),
14127
+ "class": bem$B("title-collapse"),
13767
14128
  "aria-hidden": "true"
13768
14129
  }, [vue.createVNode(Icon, {
13769
14130
  "name": "trangle-down",
13770
14131
  "size": "16",
13771
- "class": bem$D("title-collapse-icon", {
14132
+ "class": bem$B("title-collapse-icon", {
13772
14133
  expanded: props2.modelValue
13773
14134
  })
13774
14135
  }, null)])]), visibleFields.value.map(renderField), (_b = slots.default) == null ? void 0 : _b.call(slots), hasExtra.value && showCollapse.value && !showTitleCollapse.value && vue.createVNode(CollapseToggle, {
@@ -13779,255 +14140,12 @@
13779
14140
  "onUpdate:modelValue": (value) => emit("update:modelValue", value),
13780
14141
  "onChange": (value) => emit("change", value)
13781
14142
  }, null), hasExtra.value && !showCollapse.value && props2.divider && vue.createVNode(Divider, {
13782
- "class": bem$D("divider")
14143
+ "class": bem$B("divider")
13783
14144
  }, null), renderExtra()]);
13784
14145
  };
13785
14146
  }
13786
14147
  });
13787
- const InfoCard = withInstall(stdin_default$L);
13788
- const [name$C, bem$C, t$6] = createNamespace("list");
13789
- const listProps = {
13790
- error: Boolean,
13791
- offset: makeNumericProp(300),
13792
- loading: Boolean,
13793
- finished: Boolean,
13794
- errorText: String,
13795
- direction: makeStringProp("down"),
13796
- loadingText: String,
13797
- finishedText: String,
13798
- immediateCheck: truthProp
13799
- };
13800
- var stdin_default$K = vue.defineComponent({
13801
- name: name$C,
13802
- props: listProps,
13803
- emits: ["load", "update:error", "update:loading"],
13804
- setup(props2, {
13805
- emit,
13806
- slots
13807
- }) {
13808
- const loading = vue.ref(props2.loading);
13809
- const root = vue.ref();
13810
- const placeholder = vue.ref();
13811
- const tabStatus = useTabStatus();
13812
- const scrollParent = useScrollParent(root);
13813
- const check = () => {
13814
- vue.nextTick(() => {
13815
- if (loading.value || props2.finished || props2.error || // skip check when inside an inactive tab
13816
- (tabStatus == null ? void 0 : tabStatus.value) === false) {
13817
- return;
13818
- }
13819
- const {
13820
- offset: offset2,
13821
- direction
13822
- } = props2;
13823
- const scrollParentRect = useRect(scrollParent);
13824
- if (!scrollParentRect.height || isHidden(root)) {
13825
- return;
13826
- }
13827
- let isReachEdge = false;
13828
- const placeholderRect = useRect(placeholder);
13829
- if (direction === "up") {
13830
- isReachEdge = scrollParentRect.top - placeholderRect.top <= offset2;
13831
- } else {
13832
- isReachEdge = placeholderRect.bottom - scrollParentRect.bottom <= offset2;
13833
- }
13834
- if (isReachEdge) {
13835
- loading.value = true;
13836
- emit("update:loading", true);
13837
- emit("load");
13838
- }
13839
- });
13840
- };
13841
- const renderFinishedText = () => {
13842
- if (props2.finished) {
13843
- const text = slots.finished ? slots.finished() : props2.finishedText;
13844
- if (text) {
13845
- return vue.createVNode("div", {
13846
- "class": bem$C("finished-text")
13847
- }, [text]);
13848
- }
13849
- }
13850
- };
13851
- const clickErrorText = () => {
13852
- emit("update:error", false);
13853
- check();
13854
- };
13855
- const renderErrorText = () => {
13856
- if (props2.error) {
13857
- const text = slots.error ? slots.error() : props2.errorText;
13858
- if (text) {
13859
- return vue.createVNode("div", {
13860
- "role": "button",
13861
- "class": bem$C("error-text"),
13862
- "tabindex": 0,
13863
- "onClick": clickErrorText
13864
- }, [text]);
13865
- }
13866
- }
13867
- };
13868
- const renderLoading = () => {
13869
- if (loading.value && !props2.finished) {
13870
- return vue.createVNode("div", {
13871
- "class": bem$C("loading")
13872
- }, [slots.loading ? slots.loading() : vue.createVNode(Loading, {
13873
- "class": bem$C("loading-icon")
13874
- }, {
13875
- default: () => [props2.loadingText || t$6("loading")]
13876
- })]);
13877
- }
13878
- };
13879
- vue.watch(() => [props2.loading, props2.finished, props2.error], check);
13880
- if (tabStatus) {
13881
- vue.watch(tabStatus, (tabActive) => {
13882
- if (tabActive) {
13883
- check();
13884
- }
13885
- });
13886
- }
13887
- vue.onUpdated(() => {
13888
- loading.value = props2.loading;
13889
- });
13890
- vue.onMounted(() => {
13891
- if (props2.immediateCheck) {
13892
- check();
13893
- }
13894
- });
13895
- useExpose({
13896
- check
13897
- });
13898
- useEventListener("scroll", check, {
13899
- target: scrollParent,
13900
- passive: true
13901
- });
13902
- return () => {
13903
- var _a;
13904
- const Content = (_a = slots.default) == null ? void 0 : _a.call(slots);
13905
- const Placeholder = vue.createVNode("div", {
13906
- "ref": placeholder,
13907
- "class": bem$C("placeholder")
13908
- }, null);
13909
- return vue.createVNode("div", {
13910
- "ref": root,
13911
- "role": "feed",
13912
- "class": bem$C(),
13913
- "aria-busy": loading.value
13914
- }, [props2.direction === "down" ? Content : Placeholder, renderLoading(), renderFinishedText(), renderErrorText(), props2.direction === "up" ? Content : Placeholder]);
13915
- };
13916
- }
13917
- });
13918
- const List = withInstall(stdin_default$K);
13919
- const [name$B, bem$B, t$5] = createNamespace("search");
13920
- const searchProps = extend$1({}, fieldSharedProps, {
13921
- label: String,
13922
- shape: makeStringProp("round"),
13923
- variant: makeStringProp("default"),
13924
- inputAlign: makeStringProp("left"),
13925
- leftIcon: makeStringProp("search"),
13926
- clearable: truthProp,
13927
- actionText: String,
13928
- background: String,
13929
- showAction: Boolean
13930
- });
13931
- var stdin_default$J = vue.defineComponent({
13932
- name: name$B,
13933
- props: searchProps,
13934
- emits: ["blur", "focus", "clear", "search", "cancel", "click-input", "click-left-icon", "click-right-icon", "update:modelValue"],
13935
- setup(props2, {
13936
- emit,
13937
- slots,
13938
- attrs
13939
- }) {
13940
- const id = useId();
13941
- const filedRef = vue.ref();
13942
- const onCancel = () => {
13943
- if (!slots.action) {
13944
- emit("update:modelValue", "");
13945
- emit("cancel");
13946
- }
13947
- };
13948
- const onKeypress = (event) => {
13949
- const ENTER_CODE = 13;
13950
- if (event.keyCode === ENTER_CODE) {
13951
- preventDefault(event);
13952
- emit("search", props2.modelValue);
13953
- }
13954
- };
13955
- const getInputId = () => props2.id || `${id}-input`;
13956
- const renderLabel = () => {
13957
- if (slots.label || props2.label) {
13958
- return vue.createVNode("label", {
13959
- "class": bem$B("label"),
13960
- "for": getInputId()
13961
- }, [slots.label ? slots.label() : props2.label]);
13962
- }
13963
- };
13964
- const renderAction = () => {
13965
- if (props2.showAction) {
13966
- const text = props2.actionText || t$5("cancel");
13967
- return vue.createVNode("div", {
13968
- "class": bem$B("action"),
13969
- "role": "button",
13970
- "tabindex": 0,
13971
- "onClick": onCancel
13972
- }, [slots.action ? slots.action() : text]);
13973
- }
13974
- };
13975
- const blur = () => {
13976
- var _a;
13977
- return (_a = filedRef.value) == null ? void 0 : _a.blur();
13978
- };
13979
- const focus = () => {
13980
- var _a;
13981
- return (_a = filedRef.value) == null ? void 0 : _a.focus();
13982
- };
13983
- const onBlur = (event) => emit("blur", event);
13984
- const onFocus = (event) => emit("focus", event);
13985
- const onClear = (event) => emit("clear", event);
13986
- const onClickInput = (event) => emit("click-input", event);
13987
- const onClickLeftIcon = (event) => emit("click-left-icon", event);
13988
- const onClickRightIcon = (event) => emit("click-right-icon", event);
13989
- const fieldPropNames = Object.keys(fieldSharedProps);
13990
- const renderField = () => {
13991
- const fieldAttrs = extend$1({}, attrs, pick(props2, fieldPropNames), {
13992
- id: getInputId()
13993
- });
13994
- const onInput = (value) => emit("update:modelValue", value);
13995
- return vue.createVNode(Field, vue.mergeProps({
13996
- "ref": filedRef,
13997
- "type": "search",
13998
- "class": bem$B("field"),
13999
- "border": false,
14000
- "onBlur": onBlur,
14001
- "onFocus": onFocus,
14002
- "onClear": onClear,
14003
- "onKeypress": onKeypress,
14004
- "onClick-input": onClickInput,
14005
- "onClick-left-icon": onClickLeftIcon,
14006
- "onClick-right-icon": onClickRightIcon,
14007
- "onUpdate:modelValue": onInput
14008
- }, fieldAttrs), pick(slots, ["left-icon", "right-icon"]));
14009
- };
14010
- useExpose({
14011
- focus,
14012
- blur
14013
- });
14014
- return () => {
14015
- var _a;
14016
- return vue.createVNode("div", {
14017
- "class": bem$B({
14018
- "show-action": props2.showAction,
14019
- pure: props2.variant === "pure"
14020
- }),
14021
- "style": {
14022
- background: props2.variant === "default" ? props2.background : void 0
14023
- }
14024
- }, [(_a = slots.left) == null ? void 0 : _a.call(slots), vue.createVNode("div", {
14025
- "class": bem$B("content", props2.shape)
14026
- }, [renderLabel(), renderField()]), renderAction()]);
14027
- };
14028
- }
14029
- });
14030
- const Search = withInstall(stdin_default$J);
14148
+ const InfoCard = withInstall(stdin_default$J);
14031
14149
  var __defProp = Object.defineProperty;
14032
14150
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
14033
14151
  var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -14739,6 +14857,8 @@
14739
14857
  default: ""
14740
14858
  },
14741
14859
  selected: Boolean,
14860
+ showDetail: truthProp,
14861
+ stepperTheme: makeStringProp("round-outline"),
14742
14862
  enableInputDialog: truthProp,
14743
14863
  showWarning: Boolean,
14744
14864
  warning: {
@@ -14814,7 +14934,7 @@
14814
14934
  };
14815
14935
  vue.onBeforeUnmount(clearDetailLongPress);
14816
14936
  return () => {
14817
- var _a, _b, _c, _d, _e;
14937
+ var _a, _b, _c, _d;
14818
14938
  return vue.createVNode("div", {
14819
14939
  "class": bem$x({
14820
14940
  selected: props2.selected
@@ -14843,7 +14963,7 @@
14843
14963
  "modelValue": props2.modelValue,
14844
14964
  "min": 0,
14845
14965
  "max": props2.max,
14846
- "theme": "round",
14966
+ "theme": props2.stepperTheme,
14847
14967
  "buttonSize": 18,
14848
14968
  "disableInput": true,
14849
14969
  "onUpdate:modelValue": (value) => emit("update:modelValue", Number(value))
@@ -14854,7 +14974,7 @@
14854
14974
  "onClick": openInputDialog
14855
14975
  }, null)]), vue.createVNode("span", {
14856
14976
  "class": bem$x("unit")
14857
- }, [props2.item.unit])]), vue.createVNode("p", {
14977
+ }, [props2.item.unit])]), props2.showDetail && vue.createVNode("p", {
14858
14978
  "class": bem$x("desc"),
14859
14979
  "onTouchstart": onDetailLongPressStart,
14860
14980
  "onTouchmove": clearDetailLongPress,
@@ -14875,7 +14995,9 @@
14875
14995
  "style": {
14876
14996
  fontWeight: props2.picking.outboundBold ? 600 : 400
14877
14997
  }
14878
- }, [props2.picking.outboundValue])]), (_e = slots.default) == null ? void 0 : _e.call(slots), vue.createVNode(Dialog.Component, {
14998
+ }, [props2.picking.outboundValue])]), slots.default && vue.createVNode("div", {
14999
+ "class": bem$x("bottom")
15000
+ }, [slots.default()]), vue.createVNode(Dialog.Component, {
14879
15001
  "show": showInputDialog.value,
14880
15002
  "inputValue": inputValue.value,
14881
15003
  "inputAlign": "left",
@@ -15912,7 +16034,6 @@
15912
16034
  return vue.createVNode(Label, {
15913
16035
  "key": `${field.label}-${index}`,
15914
16036
  "class": bem$t("field"),
15915
- "size": "mini",
15916
16037
  "label": field.label,
15917
16038
  "showLabel": field.showLabel,
15918
16039
  "showContent": field.showContent,
@@ -18450,7 +18571,7 @@
18450
18571
  installRate(app);
18451
18572
  app.use(RateCell);
18452
18573
  };
18453
- const Row = withInstall(stdin_default$1f);
18574
+ const Row = withInstall(stdin_default$1c);
18454
18575
  const popupInheritKeys = [...popupSharedPropKeys, "round", "closeOnPopstate", "safeAreaInsetBottom"];
18455
18576
  const iconMap = {
18456
18577
  qq: "qq",
@@ -19623,8 +19744,11 @@
19623
19744
  description: makeStringProp(""),
19624
19745
  icon: String,
19625
19746
  showIcon: Boolean,
19747
+ rightIcon: makeStringProp("cross"),
19748
+ showRightIcon: Boolean,
19626
19749
  showDescription: Boolean,
19627
19750
  showArrow: Boolean,
19751
+ showExpandIcon: truthProp,
19628
19752
  actionText: makeStringProp("操作"),
19629
19753
  showAction: Boolean,
19630
19754
  size: makeStringProp("default"),
@@ -19695,11 +19819,14 @@
19695
19819
  "onClick": onActionClick
19696
19820
  }, null)])]), props2.size !== "mini" && props2.showDescription && props2.description && vue.createVNode("span", {
19697
19821
  "class": bem$4("description")
19698
- }, [((_b = slots.description) == null ? void 0 : _b.call(slots)) || props2.description])]), (props2.showArrow || props2.expandable) && vue.createVNode(Icon, {
19822
+ }, [((_b = slots.description) == null ? void 0 : _b.call(slots)) || props2.description])]), (props2.showArrow || props2.expandable && props2.showExpandIcon) && vue.createVNode(Icon, {
19699
19823
  "name": "arrow-up",
19700
19824
  "class": bem$4("arrow", {
19701
19825
  expanded: props2.expandable && props2.modelValue
19702
19826
  })
19827
+ }, null), props2.showRightIcon && vue.createVNode(Icon, {
19828
+ "name": props2.rightIcon,
19829
+ "class": bem$4("right-icon")
19703
19830
  }, null)]), (!props2.expandable || props2.modelValue) && ((_c = slots.default) == null ? void 0 : _c.call(slots))]);
19704
19831
  };
19705
19832
  }
@@ -19998,6 +20125,7 @@
19998
20125
  deletable: truthProp,
19999
20126
  afterRead: Function,
20000
20127
  showUpload: truthProp,
20128
+ uploadFirst: Boolean,
20001
20129
  modelValue: makeArrayProp(),
20002
20130
  beforeRead: Function,
20003
20131
  beforeDelete: Function,
@@ -20218,7 +20346,7 @@
20218
20346
  "class": bem$3("wrapper", {
20219
20347
  disabled: props2.disabled
20220
20348
  })
20221
- }, [renderPreviewList(), renderUpload()])]);
20349
+ }, [props2.uploadFirst ? vue.createVNode(vue.Fragment, null, [renderUpload(), renderPreviewList()]) : vue.createVNode(vue.Fragment, null, [renderPreviewList(), renderUpload()])])]);
20222
20350
  }
20223
20351
  });
20224
20352
  const Uploader = withInstall(stdin_default$7);
@@ -24498,7 +24626,7 @@
24498
24626
  });
24499
24627
  }
24500
24628
  };
24501
- const version = "0.0.39";
24629
+ const version = "0.0.41";
24502
24630
  function install(app) {
24503
24631
  const components = [
24504
24632
  ActionBar,