persagy-vant 0.0.35 → 0.0.36

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 (86) hide show
  1. package/es/index.d.ts +1 -1
  2. package/es/index.mjs +1 -1
  3. package/es/label/Label.d.ts +11 -1
  4. package/es/label/Label.mjs +34 -3
  5. package/es/label/index.css +1 -1
  6. package/es/label/index.d.ts +6 -2
  7. package/es/label/index.less +22 -0
  8. package/es/label/var.less +1 -0
  9. package/es/material-action-bar/MaterialActionBar.d.ts +15 -0
  10. package/es/material-action-bar/MaterialActionBar.mjs +107 -58
  11. package/es/material-action-bar/index.css +1 -1
  12. package/es/material-action-bar/index.d.ts +76 -2
  13. package/es/material-action-bar/index.less +6 -2
  14. package/es/material-action-bar/index.mjs +4 -2
  15. package/es/material-action-bar/style/index.mjs +1 -0
  16. package/es/material-action-bar/style/less.mjs +1 -0
  17. package/es/material-add/index.css +1 -1
  18. package/es/material-add/style/index.mjs +1 -0
  19. package/es/material-add/style/less.mjs +1 -0
  20. package/es/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  21. package/es/material-display-bar/MaterialDisplayBar.mjs +4 -3
  22. package/es/material-display-bar/index.css +1 -1
  23. package/es/material-display-bar/index.d.ts +105 -4
  24. package/es/material-display-bar/index.mjs +5 -3
  25. package/es/material-display-bar/var.less +1 -1
  26. package/es/tag/Tag.d.ts +15 -2
  27. package/es/tag/Tag.mjs +20 -3
  28. package/es/tag/index.css +1 -1
  29. package/es/tag/index.d.ts +9 -0
  30. package/es/tag/index.less +45 -1
  31. package/es/tag/var.less +13 -0
  32. package/es/title-bar/TitleBar.d.ts +29 -11
  33. package/es/title-bar/TitleBar.mjs +38 -8
  34. package/es/title-bar/index.css +1 -1
  35. package/es/title-bar/index.d.ts +14 -1
  36. package/es/title-bar/index.less +10 -2
  37. package/es/title-bar/style/index.mjs +2 -0
  38. package/es/title-bar/style/less.mjs +2 -0
  39. package/es/title-bar/var.less +4 -0
  40. package/lib/index.css +1 -1
  41. package/lib/index.d.ts +1 -1
  42. package/lib/index.js +1 -1
  43. package/lib/index.less +1 -1
  44. package/lib/label/Label.d.ts +11 -1
  45. package/lib/label/Label.js +34 -3
  46. package/lib/label/index.css +1 -1
  47. package/lib/label/index.d.ts +6 -2
  48. package/lib/label/index.less +22 -0
  49. package/lib/label/var.less +1 -0
  50. package/lib/material-action-bar/MaterialActionBar.d.ts +15 -0
  51. package/lib/material-action-bar/MaterialActionBar.js +106 -57
  52. package/lib/material-action-bar/index.css +1 -1
  53. package/lib/material-action-bar/index.d.ts +76 -2
  54. package/lib/material-action-bar/index.js +4 -2
  55. package/lib/material-action-bar/index.less +6 -2
  56. package/lib/material-action-bar/style/index.js +1 -0
  57. package/lib/material-action-bar/style/less.js +1 -0
  58. package/lib/material-add/index.css +1 -1
  59. package/lib/material-add/style/index.js +1 -0
  60. package/lib/material-add/style/less.js +1 -0
  61. package/lib/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  62. package/lib/material-display-bar/MaterialDisplayBar.js +4 -3
  63. package/lib/material-display-bar/index.css +1 -1
  64. package/lib/material-display-bar/index.d.ts +105 -4
  65. package/lib/material-display-bar/index.js +5 -3
  66. package/lib/material-display-bar/var.less +1 -1
  67. package/lib/tag/Tag.d.ts +15 -2
  68. package/lib/tag/Tag.js +20 -3
  69. package/lib/tag/index.css +1 -1
  70. package/lib/tag/index.d.ts +9 -0
  71. package/lib/tag/index.less +45 -1
  72. package/lib/tag/var.less +13 -0
  73. package/lib/title-bar/TitleBar.d.ts +29 -11
  74. package/lib/title-bar/TitleBar.js +38 -8
  75. package/lib/title-bar/index.css +1 -1
  76. package/lib/title-bar/index.d.ts +14 -1
  77. package/lib/title-bar/index.less +10 -2
  78. package/lib/title-bar/style/index.js +2 -0
  79. package/lib/title-bar/style/less.js +2 -0
  80. package/lib/title-bar/var.less +4 -0
  81. package/lib/vant.cjs.js +209 -79
  82. package/lib/vant.es.js +209 -79
  83. package/lib/vant.js +209 -79
  84. package/lib/vant.min.js +1 -1
  85. package/lib/web-types.json +1 -1
  86. package/package.json +1 -1
package/es/index.d.ts CHANGED
@@ -116,4 +116,4 @@ declare namespace _default {
116
116
  }
117
117
  export default _default;
118
118
  export function install(app: any): void;
119
- export const version: "0.0.35";
119
+ export const version: "0.0.36";
package/es/index.mjs CHANGED
@@ -109,7 +109,7 @@ import { Uploader } from "./uploader/index.mjs";
109
109
  import { VideoPreview } from "./video-preview/index.mjs";
110
110
  import { WorkOrderCard } from "./work-order-card/index.mjs";
111
111
  import { WorkOrderFilter } from "./work-order-filter/index.mjs";
112
- const version = "0.0.35";
112
+ const version = "0.0.36";
113
113
  function install(app) {
114
114
  const components = [
115
115
  ActionBar,
@@ -3,6 +3,11 @@ export declare type LabelType = 'default' | 'bold' | 'link' | 'tag' | 'media';
3
3
  export declare type LabelSize = 'default' | 'mini';
4
4
  export declare type LabelContentAlign = 'follow' | 'right';
5
5
  export declare type LabelMediaType = 'image' | 'video';
6
+ export declare type LabelLongPressTarget = 'label' | 'content';
7
+ export declare type LabelLongPressEvent = {
8
+ target: LabelLongPressTarget;
9
+ text: string;
10
+ };
6
11
  export declare type LabelMedia = {
7
12
  url: string;
8
13
  type?: LabelMediaType;
@@ -43,6 +48,7 @@ declare const labelProps: {
43
48
  default: LabelContentAlign;
44
49
  };
45
50
  vertical: BooleanConstructor;
51
+ ellipsis: BooleanConstructor;
46
52
  href: StringConstructor;
47
53
  location: StringConstructor;
48
54
  tags: {
@@ -89,6 +95,7 @@ declare const _default: import("vue").DefineComponent<{
89
95
  default: LabelContentAlign;
90
96
  };
91
97
  vertical: BooleanConstructor;
98
+ ellipsis: BooleanConstructor;
92
99
  href: StringConstructor;
93
100
  location: StringConstructor;
94
101
  tags: {
@@ -99,7 +106,7 @@ declare const _default: import("vue").DefineComponent<{
99
106
  type: PropType<LabelMedia[]>;
100
107
  default: () => never[];
101
108
  };
102
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-media")[], "click" | "click-media", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
109
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-media" | "long-press")[], "click" | "click-media" | "long-press", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
103
110
  label: {
104
111
  type: PropType<string>;
105
112
  default: string;
@@ -133,6 +140,7 @@ declare const _default: import("vue").DefineComponent<{
133
140
  default: LabelContentAlign;
134
141
  };
135
142
  vertical: BooleanConstructor;
143
+ ellipsis: BooleanConstructor;
136
144
  href: StringConstructor;
137
145
  location: StringConstructor;
138
146
  tags: {
@@ -146,6 +154,7 @@ declare const _default: import("vue").DefineComponent<{
146
154
  }>> & {
147
155
  onClick?: ((...args: any[]) => any) | undefined;
148
156
  "onClick-media"?: ((...args: any[]) => any) | undefined;
157
+ "onLong-press"?: ((...args: any[]) => any) | undefined;
149
158
  }, {
150
159
  type: LabelType;
151
160
  label: string;
@@ -154,6 +163,7 @@ declare const _default: import("vue").DefineComponent<{
154
163
  tags: string[];
155
164
  media: LabelMedia[];
156
165
  vertical: boolean;
166
+ ellipsis: boolean;
157
167
  showLabel: boolean;
158
168
  showContent: boolean;
159
169
  showColon: boolean | undefined;
@@ -17,6 +17,7 @@ const labelProps = {
17
17
  size: makeStringProp("default"),
18
18
  contentAlign: makeStringProp("follow"),
19
19
  vertical: Boolean,
20
+ ellipsis: Boolean,
20
21
  href: String,
21
22
  location: String,
22
23
  tags: {
@@ -31,12 +32,14 @@ const labelProps = {
31
32
  var stdin_default = defineComponent({
32
33
  name,
33
34
  props: labelProps,
34
- emits: ["click", "click-media"],
35
+ emits: ["click", "click-media", "long-press"],
35
36
  setup(props, {
36
37
  slots,
37
38
  emit
38
39
  }) {
40
+ let longPressTimer;
39
41
  const vertical = computed(() => props.vertical || props.type === "media");
42
+ const ellipsis = computed(() => props.ellipsis && !vertical.value && !["tag", "media"].includes(props.type));
40
43
  const displayLabel = computed(() => {
41
44
  var _a;
42
45
  const showColon = (_a = props.showColon) != null ? _a : !vertical.value && props.contentAlign !== "right";
@@ -46,6 +49,25 @@ var stdin_default = defineComponent({
46
49
  return `${props.label}\uFF1A`;
47
50
  });
48
51
  const showLocation = computed(() => props.vertical && (props.type === "bold" || props.type === "link") && !!props.location);
52
+ const clearLongPress = () => {
53
+ if (longPressTimer !== void 0) {
54
+ clearTimeout(longPressTimer);
55
+ longPressTimer = void 0;
56
+ }
57
+ };
58
+ const startLongPress = (target, text) => {
59
+ if (!ellipsis.value || !text)
60
+ return;
61
+ clearLongPress();
62
+ longPressTimer = setTimeout(() => {
63
+ longPressTimer = void 0;
64
+ const payload = {
65
+ target,
66
+ text
67
+ };
68
+ emit("long-press", payload);
69
+ }, 500);
70
+ };
49
71
  const renderText = () => {
50
72
  var _a;
51
73
  const content = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || props.content;
@@ -98,13 +120,22 @@ var stdin_default = defineComponent({
98
120
  "class": bem([props.type, {
99
121
  mini: props.size === "mini",
100
122
  vertical: vertical.value,
123
+ ellipsis: ellipsis.value,
101
124
  location: showLocation.value,
102
125
  "content-right": props.contentAlign === "right"
103
126
  }])
104
127
  }, [props.showLabel && _createVNode("span", {
105
- "class": bem("label")
128
+ "class": bem("label"),
129
+ "onPointerdown": () => startLongPress("label", displayLabel.value),
130
+ "onPointerup": clearLongPress,
131
+ "onPointercancel": clearLongPress,
132
+ "onPointerleave": clearLongPress
106
133
  }, [displayLabel.value]), props.showContent && _createVNode("div", {
107
- "class": bem("value")
134
+ "class": bem("value"),
135
+ "onPointerdown": () => startLongPress("content", props.content),
136
+ "onPointerup": clearLongPress,
137
+ "onPointercancel": clearLongPress,
138
+ "onPointerleave": clearLongPress
108
139
  }, [renderContent(), showLocation.value && _createVNode("div", {
109
140
  "class": bem("location")
110
141
  }, [_createVNode(Icon, {
@@ -1 +1 @@
1
- :root{--van-label-font-size: var(--van-font-size-md);--van-label-line-height: var(--van-line-height-lg);--van-label-mini-font-size: var(--van-font-size-sm);--van-label-mini-line-height: var(--van-line-height-md);--van-label-label-color: var(--van-gray-6);--van-label-value-color: var(--van-black);--van-label-bold-color: var(--van-gray-8);--van-label-link-color: var(--van-primary-color);--van-label-gap: 2px;--van-label-tags-gap: 4px;--van-label-media-gap: 6px;--van-label-media-size: 64px;--van-label-mini-media-size: 48px;--van-label-media-radius: 4px;--van-label-location-color: var(--van-gray-7);--van-label-location-font-size: var(--van-font-size-sm);--van-label-location-line-height: var(--van-line-height-md);--van-label-location-icon-size: 12px;--van-label-location-gap: 2px}.van-label{display:flex;align-items:flex-start;gap:var(--van-label-gap);color:var(--van-label-value-color);font-size:var(--van-label-font-size);line-height:var(--van-label-line-height)}.van-label--vertical{flex-direction:column}.van-label--content-right .van-label__value{text-align:right}.van-label--mini{--van-label-font-size: var(--van-label-mini-font-size);--van-label-line-height: var(--van-label-mini-line-height);--van-label-media-size: var(--van-label-mini-media-size)}.van-label__label{flex:none;color:var(--van-label-label-color);white-space:nowrap}.van-label__value{flex:1;min-width:0;color:inherit;overflow-wrap:anywhere}.van-label__text{display:block}.van-label--location .van-label__value{display:flex;flex-direction:column;gap:var(--van-label-location-gap);width:100%}.van-label--location .van-label__link{align-self:flex-start;text-align:left}.van-label__location{display:inline-flex;gap:var(--van-label-location-gap);align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--van-label-location-color);font-size:var(--van-label-location-font-size);font-weight:400;line-height:var(--van-label-location-line-height);overflow-wrap:anywhere}.van-label__location .van-icon{flex:none;font-size:var(--van-label-location-icon-size)}.van-label--bold .van-label__value{color:var(--van-label-bold-color);font-weight:var(--van-font-weight-bold)}.van-label__link{display:inline;padding:0;color:var(--van-label-link-color);font:inherit;font-weight:var(--van-font-weight-bold);text-decoration:none;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__link:active{opacity:var(--van-active-opacity)}.van-label__tags,.van-label__media{display:flex;flex-wrap:wrap;align-items:flex-start}.van-label__tags{gap:var(--van-label-tags-gap);min-height:var(--van-label-line-height);align-items:center}.van-label__media{gap:var(--van-label-media-gap);width:100%}.van-label__media-item{position:relative;flex:none;width:var(--van-label-media-size);height:var(--van-label-media-size);padding:0;overflow:hidden;background:transparent;border:0;border-radius:var(--van-label-media-radius);cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__media-item:active{opacity:var(--van-active-opacity)}.van-label__media-item .van-image{display:block;width:100%;height:100%}.van-label__play{position:absolute;top:50%;left:50%;color:var(--van-white);font-size:24px;transform:translate(-50%,-50%);text-shadow:0 1px 2px rgba(0,0,0,.45)}
1
+ :root{--van-label-font-size: var(--van-font-size-md);--van-label-line-height: var(--van-line-height-lg);--van-label-mini-font-size: var(--van-font-size-sm);--van-label-mini-line-height: var(--van-line-height-md);--van-label-label-color: var(--van-gray-6);--van-label-value-color: var(--van-black);--van-label-bold-color: var(--van-gray-8);--van-label-link-color: var(--van-primary-color);--van-label-gap: 2px;--van-label-tags-gap: 4px;--van-label-media-gap: 6px;--van-label-media-size: 64px;--van-label-mini-media-size: 48px;--van-label-media-radius: 4px;--van-label-location-color: var(--van-gray-7);--van-label-location-font-size: var(--van-font-size-sm);--van-label-location-line-height: var(--van-line-height-md);--van-label-location-icon-size: 12px;--van-label-location-gap: 2px;--van-label-ellipsis-label-max-width: 120px}.van-label{display:flex;align-items:flex-start;gap:var(--van-label-gap);color:var(--van-label-value-color);font-size:var(--van-label-font-size);line-height:var(--van-label-line-height)}.van-label--vertical{flex-direction:column}.van-label--content-right .van-label__value{text-align:right}.van-label--mini{--van-label-font-size: var(--van-label-mini-font-size);--van-label-line-height: var(--van-label-mini-line-height);--van-label-media-size: var(--van-label-mini-media-size)}.van-label--ellipsis .van-label__label{flex:0 1 var(--van-label-ellipsis-label-max-width);max-width:var(--van-label-ellipsis-label-max-width);overflow:hidden;text-overflow:ellipsis}.van-label--ellipsis .van-label__value{overflow:hidden}.van-label--ellipsis .van-label__text,.van-label--ellipsis .van-label__link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-label__label{flex:none;color:var(--van-label-label-color);white-space:nowrap}.van-label__value{flex:1;min-width:0;color:inherit;overflow-wrap:anywhere}.van-label__text{display:block}.van-label--location .van-label__value{display:flex;flex-direction:column;gap:var(--van-label-location-gap);width:100%}.van-label--location .van-label__link{align-self:flex-start;text-align:left}.van-label__location{display:inline-flex;gap:var(--van-label-location-gap);align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--van-label-location-color);font-size:var(--van-label-location-font-size);font-weight:400;line-height:var(--van-label-location-line-height);overflow-wrap:anywhere}.van-label__location .van-icon{flex:none;font-size:var(--van-label-location-icon-size)}.van-label--bold .van-label__value{color:var(--van-label-bold-color);font-weight:var(--van-font-weight-bold)}.van-label__link{display:inline;padding:0;color:var(--van-label-link-color);font:inherit;font-weight:var(--van-font-weight-bold);text-decoration:none;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__link:active{opacity:var(--van-active-opacity)}.van-label__tags,.van-label__media{display:flex;flex-wrap:wrap;align-items:flex-start}.van-label__tags{gap:var(--van-label-tags-gap);min-height:var(--van-label-line-height);align-items:center}.van-label__media{gap:var(--van-label-media-gap);width:100%}.van-label__media-item{position:relative;flex:none;width:var(--van-label-media-size);height:var(--van-label-media-size);padding:0;overflow:hidden;background:transparent;border:0;border-radius:var(--van-label-media-radius);cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-label__media-item:active{opacity:var(--van-active-opacity)}.van-label__media-item .van-image{display:block;width:100%;height:100%}.van-label__play{position:absolute;top:50%;left:50%;color:var(--van-white);font-size:24px;transform:translate(-50%,-50%);text-shadow:0 1px 2px rgba(0,0,0,.45)}
@@ -32,6 +32,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
32
32
  default: import("./Label").LabelContentAlign;
33
33
  };
34
34
  vertical: BooleanConstructor;
35
+ ellipsis: BooleanConstructor;
35
36
  href: StringConstructor;
36
37
  location: StringConstructor;
37
38
  tags: {
@@ -42,7 +43,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
42
43
  type: import("vue").PropType<import("./Label").LabelMedia[]>;
43
44
  default: () => never[];
44
45
  };
45
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-media")[], "click" | "click-media", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
46
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-media" | "long-press")[], "click" | "click-media" | "long-press", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
46
47
  label: {
47
48
  type: import("vue").PropType<string>;
48
49
  default: string;
@@ -76,6 +77,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
76
77
  default: import("./Label").LabelContentAlign;
77
78
  };
78
79
  vertical: BooleanConstructor;
80
+ ellipsis: BooleanConstructor;
79
81
  href: StringConstructor;
80
82
  location: StringConstructor;
81
83
  tags: {
@@ -89,6 +91,7 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
89
91
  }>> & {
90
92
  onClick?: ((...args: any[]) => any) | undefined;
91
93
  "onClick-media"?: ((...args: any[]) => any) | undefined;
94
+ "onLong-press"?: ((...args: any[]) => any) | undefined;
92
95
  }, {
93
96
  type: import("./Label").LabelType;
94
97
  label: string;
@@ -97,13 +100,14 @@ export declare const Label: import("../utils").WithInstall<import("vue").DefineC
97
100
  tags: string[];
98
101
  media: import("./Label").LabelMedia[];
99
102
  vertical: boolean;
103
+ ellipsis: boolean;
100
104
  showLabel: boolean;
101
105
  showContent: boolean;
102
106
  showColon: boolean | undefined;
103
107
  contentAlign: import("./Label").LabelContentAlign;
104
108
  }>>;
105
109
  export default Label;
106
- export type { LabelMedia, LabelMediaType, LabelProps, LabelType } from './Label';
110
+ export type { LabelLongPressEvent, LabelLongPressTarget, LabelMedia, LabelMediaType, LabelProps, LabelType, } from './Label';
107
111
  declare module 'vue' {
108
112
  interface GlobalComponents {
109
113
  VanLabel: typeof Label;
@@ -20,6 +20,7 @@
20
20
  --van-label-location-line-height: @label-location-line-height;
21
21
  --van-label-location-icon-size: @label-location-icon-size;
22
22
  --van-label-location-gap: @label-location-gap;
23
+ --van-label-ellipsis-label-max-width: @label-ellipsis-label-max-width;
23
24
  }
24
25
 
25
26
  .van-label {
@@ -44,6 +45,27 @@
44
45
  --van-label-media-size: var(--van-label-mini-media-size);
45
46
  }
46
47
 
48
+ &--ellipsis {
49
+ .van-label__label {
50
+ flex: 0 1 var(--van-label-ellipsis-label-max-width);
51
+ max-width: var(--van-label-ellipsis-label-max-width);
52
+ overflow: hidden;
53
+ text-overflow: ellipsis;
54
+ }
55
+
56
+ .van-label__value {
57
+ overflow: hidden;
58
+ }
59
+
60
+ .van-label__text,
61
+ .van-label__link {
62
+ display: block;
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ }
67
+ }
68
+
47
69
  &__label {
48
70
  flex: none;
49
71
  color: var(--van-label-label-color);
package/es/label/var.less CHANGED
@@ -17,3 +17,4 @@
17
17
  @label-location-line-height: var(--van-line-height-md);
18
18
  @label-location-icon-size: 12px;
19
19
  @label-location-gap: 2px;
20
+ @label-ellipsis-label-max-width: 120px;
@@ -7,6 +7,12 @@ export declare type MaterialActionBarItem = {
7
7
  unit: string;
8
8
  kind?: 'material' | 'tool';
9
9
  };
10
+ export declare type MaterialActionBarPicking = {
11
+ quantityLabel?: string;
12
+ outboundLabel?: string;
13
+ outboundValue?: Numeric;
14
+ outboundBold?: boolean;
15
+ };
10
16
  declare const _default: import("vue").DefineComponent<{
11
17
  item: {
12
18
  type: PropType<MaterialActionBarItem>;
@@ -30,6 +36,10 @@ declare const _default: import("vue").DefineComponent<{
30
36
  type: StringConstructor;
31
37
  default: string;
32
38
  };
39
+ picking: {
40
+ type: PropType<MaterialActionBarPicking>;
41
+ default: undefined;
42
+ };
33
43
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "detail")[], "update:modelValue" | "detail", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
34
44
  item: {
35
45
  type: PropType<MaterialActionBarItem>;
@@ -53,6 +63,10 @@ declare const _default: import("vue").DefineComponent<{
53
63
  type: StringConstructor;
54
64
  default: string;
55
65
  };
66
+ picking: {
67
+ type: PropType<MaterialActionBarPicking>;
68
+ default: undefined;
69
+ };
56
70
  }>> & {
57
71
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
58
72
  onDetail?: ((...args: any[]) => any) | undefined;
@@ -62,5 +76,6 @@ declare const _default: import("vue").DefineComponent<{
62
76
  keyword: string;
63
77
  enableInputDialog: boolean;
64
78
  showWarning: boolean;
79
+ picking: MaterialActionBarPicking;
65
80
  }>;
66
81
  export default _default;
@@ -1,8 +1,9 @@
1
- import { defineComponent, ref, createVNode as _createVNode } from "vue";
1
+ import { defineComponent, onBeforeUnmount, ref, createVNode as _createVNode } from "vue";
2
2
  import { Dialog } from "../dialog/index.mjs";
3
3
  import { Icon } from "../icon/index.mjs";
4
4
  import { Stepper } from "../stepper/index.mjs";
5
5
  import { Tag } from "../tag/index.mjs";
6
+ import { Toast } from "../toast/index.mjs";
6
7
  import { createNamespace, truthProp } from "../utils/index.mjs";
7
8
  const [name, bem] = createNamespace("material-action-bar");
8
9
  var stdin_default = defineComponent({
@@ -26,14 +27,20 @@ var stdin_default = defineComponent({
26
27
  warning: {
27
28
  type: String,
28
29
  default: ""
30
+ },
31
+ picking: {
32
+ type: Object,
33
+ default: void 0
29
34
  }
30
35
  },
31
36
  emits: ["update:modelValue", "detail"],
32
37
  setup(props, {
38
+ slots,
33
39
  emit
34
40
  }) {
35
41
  const showInputDialog = ref(false);
36
42
  const inputValue = ref("");
43
+ let detailLongPressTimer;
37
44
  const openInputDialog = () => {
38
45
  if (!props.enableInputDialog)
39
46
  return;
@@ -46,6 +53,25 @@ var stdin_default = defineComponent({
46
53
  emit("update:modelValue", Math.max(0, value));
47
54
  }
48
55
  };
56
+ const clearDetailLongPress = () => {
57
+ if (detailLongPressTimer) {
58
+ clearTimeout(detailLongPressTimer);
59
+ detailLongPressTimer = void 0;
60
+ }
61
+ };
62
+ const onDetailLongPressStart = (event) => {
63
+ const target = event.currentTarget;
64
+ if (target.scrollWidth <= target.clientWidth) {
65
+ return;
66
+ }
67
+ clearDetailLongPress();
68
+ detailLongPressTimer = setTimeout(() => {
69
+ Toast({
70
+ message: props.item.detail,
71
+ position: "middle"
72
+ });
73
+ }, 500);
74
+ };
49
75
  const highlight = (text) => {
50
76
  const query = props.keyword.trim();
51
77
  if (!query)
@@ -68,63 +94,86 @@ var stdin_default = defineComponent({
68
94
  parts.push(text.slice(start));
69
95
  return parts;
70
96
  };
71
- return () => _createVNode("div", {
72
- "class": bem({
73
- selected: props.selected
74
- })
75
- }, [_createVNode("div", {
76
- "class": bem("main")
77
- }, [_createVNode("button", {
78
- "type": "button",
79
- "class": bem("detail"),
80
- "onClick": () => emit("detail", props.item)
81
- }, [_createVNode("span", null, [highlight(props.item.name)]), props.selected && props.item.kind && _createVNode(Tag, {
82
- "class": bem("kind-tag"),
83
- "color": props.item.kind === "material" ? "#d9ebff" : "#d9f7f7",
84
- "textColor": props.item.kind === "material" ? "var(--van-primary-color)" : "#00aeb3"
85
- }, {
86
- default: () => [props.item.kind === "material" ? "\u7269\u8D44" : "\u5DE5\u5177"]
87
- }), _createVNode(Icon, {
88
- "name": "arrow",
89
- "size": "12"
90
- }, null)]), _createVNode("div", {
91
- "class": bem("stepper-wrapper")
92
- }, [_createVNode(Stepper, {
93
- "class": bem("stepper"),
94
- "modelValue": props.modelValue,
95
- "min": 0,
96
- "theme": "round",
97
- "buttonSize": 18,
98
- "disableInput": true,
99
- "onUpdate:modelValue": (value) => emit("update:modelValue", Number(value))
100
- }, null), props.enableInputDialog && _createVNode("button", {
101
- "type": "button",
102
- "class": bem("number-trigger"),
103
- "aria-label": "\u8F93\u5165\u6570\u91CF",
104
- "onClick": openInputDialog
105
- }, null)]), _createVNode("span", {
106
- "class": bem("unit")
107
- }, [props.item.unit])]), _createVNode("p", {
108
- "class": bem("desc")
109
- }, [highlight(props.item.detail)]), props.showWarning && props.warning && _createVNode("p", {
110
- "class": bem("warning")
111
- }, [props.warning]), _createVNode(Dialog.Component, {
112
- "show": showInputDialog.value,
113
- "inputValue": inputValue.value,
114
- "inputAlign": "left",
115
- "title": "\u8F93\u5165\u6570\u91CF",
116
- "inputPlaceholder": "\u8BF7\u8F93\u5165\u6570\u91CF",
117
- "inputAutofocus": true,
118
- "showInput": true,
119
- "showCancelButton": true,
120
- "onUpdate:show": (value) => {
121
- showInputDialog.value = value;
122
- },
123
- "onUpdate:inputValue": (value) => {
124
- inputValue.value = value;
125
- },
126
- "onConfirm": confirmInputValue
127
- }, null)]);
97
+ onBeforeUnmount(clearDetailLongPress);
98
+ return () => {
99
+ var _a, _b, _c, _d, _e;
100
+ return _createVNode("div", {
101
+ "class": bem({
102
+ selected: props.selected
103
+ })
104
+ }, [_createVNode("div", {
105
+ "class": bem("main")
106
+ }, [_createVNode("button", {
107
+ "type": "button",
108
+ "class": bem("detail"),
109
+ "onClick": () => emit("detail", props.item)
110
+ }, [_createVNode("span", null, [highlight(props.item.name)]), props.selected && props.item.kind && _createVNode(Tag, {
111
+ "class": bem("kind-tag"),
112
+ "color": props.item.kind === "material" ? "#d9ebff" : "#d9f7f7",
113
+ "textColor": props.item.kind === "material" ? "var(--van-primary-color)" : "#00aeb3"
114
+ }, {
115
+ default: () => [props.item.kind === "material" ? "\u7269\u8D44" : "\u5DE5\u5177"]
116
+ }), _createVNode(Icon, {
117
+ "name": "arrow",
118
+ "size": "12"
119
+ }, null)]), (((_a = props.picking) == null ? void 0 : _a.quantityLabel) || slots["stepper-prefix"]) && _createVNode("div", {
120
+ "class": bem("stepper-prefix")
121
+ }, [((_b = props.picking) == null ? void 0 : _b.quantityLabel) || ((_c = slots["stepper-prefix"]) == null ? void 0 : _c.call(slots))]), _createVNode("div", {
122
+ "class": bem("stepper-wrapper")
123
+ }, [_createVNode(Stepper, {
124
+ "class": bem("stepper"),
125
+ "modelValue": props.modelValue,
126
+ "min": 0,
127
+ "theme": "round",
128
+ "buttonSize": 18,
129
+ "disableInput": true,
130
+ "onUpdate:modelValue": (value) => emit("update:modelValue", Number(value))
131
+ }, null), props.enableInputDialog && _createVNode("button", {
132
+ "type": "button",
133
+ "class": bem("number-trigger"),
134
+ "aria-label": "\u8F93\u5165\u6570\u91CF",
135
+ "onClick": openInputDialog
136
+ }, null)]), _createVNode("span", {
137
+ "class": bem("unit")
138
+ }, [props.item.unit])]), _createVNode("p", {
139
+ "class": bem("desc"),
140
+ "onTouchstart": onDetailLongPressStart,
141
+ "onTouchmove": clearDetailLongPress,
142
+ "onTouchend": clearDetailLongPress,
143
+ "onTouchcancel": clearDetailLongPress,
144
+ "onMousedown": onDetailLongPressStart,
145
+ "onMousemove": clearDetailLongPress,
146
+ "onMouseup": clearDetailLongPress,
147
+ "onMouseleave": clearDetailLongPress
148
+ }, [highlight(props.item.detail)]), props.showWarning && props.warning && _createVNode("p", {
149
+ "class": bem("warning")
150
+ }, [props.warning]), ((_d = props.picking) == null ? void 0 : _d.outboundValue) !== void 0 && _createVNode("p", {
151
+ "class": bem("picking-outbound")
152
+ }, [_createVNode("span", {
153
+ "class": bem("picking-label")
154
+ }, [props.picking.outboundLabel || "\u5E94\u51FA\uFF1A"]), _createVNode("span", {
155
+ "class": bem("picking-value"),
156
+ "style": {
157
+ fontWeight: props.picking.outboundBold ? 600 : 400
158
+ }
159
+ }, [props.picking.outboundValue])]), (_e = slots.default) == null ? void 0 : _e.call(slots), _createVNode(Dialog.Component, {
160
+ "show": showInputDialog.value,
161
+ "inputValue": inputValue.value,
162
+ "inputAlign": "left",
163
+ "title": "\u8F93\u5165\u6570\u91CF",
164
+ "inputPlaceholder": "\u8BF7\u8F93\u5165\u6570\u91CF",
165
+ "inputAutofocus": true,
166
+ "showInput": true,
167
+ "showCancelButton": true,
168
+ "onUpdate:show": (value) => {
169
+ showInputDialog.value = value;
170
+ },
171
+ "onUpdate:inputValue": (value) => {
172
+ inputValue.value = value;
173
+ },
174
+ "onConfirm": confirmInputValue
175
+ }, null)]);
176
+ };
128
177
  }
129
178
  });
130
179
  export {
@@ -1 +1 @@
1
- .van-material-action-bar{position:relative;padding:10px var(--van-padding-md)}.van-material-action-bar--selected{padding:10px var(--van-padding-md);background:var(--van-gray-2);border-radius:8px}.van-material-action-bar--selected:after{display:none}.van-material-action-bar:not(:last-child):after{position:absolute;right:var(--van-padding-md);bottom:0;left:var(--van-padding-md);height:1px;background:var(--van-border-color);transform:scaleY(.5);content:""}.van-material-action-bar__main{display:flex;align-items:center;min-height:22px}.van-material-action-bar__detail{display:inline-flex;flex:1 1 0;gap:2px;align-items:center;min-width:0;padding:0;overflow:hidden;color:var(--van-gray-9);font:inherit;font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);text-align:left;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-material-action-bar__detail:active{opacity:var(--van-active-opacity)}.van-material-action-bar__detail>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__stepper-wrapper{position:relative;flex:none;margin-left:4px}.van-material-action-bar__kind-tag{flex:none;margin-left:4px}.van-material-action-bar__stepper{flex:none;margin-left:0;--van-stepper-input-width: 32px;--van-stepper-input-height: 18px;--van-stepper-input-font-size: var(--van-font-size-md);--van-stepper-input-line-height: var(--van-line-height-lg)}.van-material-action-bar__number-trigger{position:absolute;z-index:1;top:0;left:18px;width:32px;height:18px;padding:0;background:transparent;border:0;cursor:pointer}.van-material-action-bar__unit{flex:none;width:32px;margin-left:8px;overflow:hidden;color:var(--van-text-color-2);font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__desc{margin:2px 0 0;overflow:hidden;color:var(--van-gray-6);font-size:var(--van-font-size-sm);line-height:20px;text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__warning{margin:2px 0 0;color:var(--van-red-500);font-size:var(--van-font-size-sm);line-height:20px}.van-material-action-bar__keyword{color:var(--van-primary-color)}
1
+ .van-material-action-bar{position:relative;padding:10px var(--van-padding-md)}.van-material-action-bar--selected{padding:10px var(--van-padding-md);background:var(--van-gray-2);border-radius:8px}.van-material-action-bar--selected:after{display:none}.van-material-action-bar:not(:last-child):after{position:absolute;right:var(--van-padding-md);bottom:0;left:var(--van-padding-md);height:1px;background:var(--van-border-color);transform:scaleY(.5);content:""}.van-material-action-bar__main{display:flex;align-items:center;min-height:22px}.van-material-action-bar__detail{display:inline-flex;flex:1 1 0;gap:2px;align-items:center;min-width:0;padding:0;overflow:hidden;color:var(--van-gray-9);font:inherit;font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);text-align:left;background:transparent;border:0;cursor:pointer;transition:opacity var(--van-animation-duration-fast)}.van-material-action-bar__detail:active{opacity:var(--van-active-opacity)}.van-material-action-bar__detail>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__stepper-prefix{flex:none;margin:0 4px 0 8px;color:var(--van-text-color-2);font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg)}.van-material-action-bar__stepper-wrapper{position:relative;flex:none;margin-left:4px}.van-material-action-bar__kind-tag{flex:none;margin-left:4px}.van-material-action-bar__stepper{flex:none;margin-left:0;--van-stepper-input-width: 24px;--van-stepper-input-height: 18px;--van-stepper-input-font-size: var(--van-font-size-md);--van-stepper-input-line-height: var(--van-line-height-lg)}.van-material-action-bar__number-trigger{position:absolute;z-index:1;top:0;left:18px;width:24px;height:18px;padding:0;background:transparent;border:0;cursor:pointer}.van-material-action-bar__unit{flex:none;width:32px;margin-left:8px;overflow:hidden;color:var(--van-text-color-2);font-size:var(--van-font-size-md);line-height:var(--van-line-height-lg);text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__desc{margin:2px 0 0;overflow:hidden;color:var(--van-gray-6);font-size:var(--van-font-size-sm);line-height:20px;text-overflow:ellipsis;white-space:nowrap}.van-material-action-bar__warning{margin:2px 0 0;color:var(--van-red-500);font-size:var(--van-font-size-sm);line-height:20px}.van-material-action-bar__picking-outbound{display:flex;gap:4px;margin:2px 0 0;color:var(--van-text-color);font-size:var(--van-font-size-sm);line-height:20px}.van-material-action-bar__picking-label{color:var(--van-gray-6)}.van-material-action-bar__picking-value{font-weight:600}.van-material-action-bar__keyword{color:var(--van-primary-color)}
@@ -1,3 +1,68 @@
1
+ export declare const MaterialActionList: import("../utils").WithInstall<import("vue").DefineComponent<{
2
+ item: {
3
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarItem>;
4
+ required: true;
5
+ };
6
+ modelValue: {
7
+ type: NumberConstructor;
8
+ required: true;
9
+ };
10
+ keyword: {
11
+ type: StringConstructor;
12
+ default: string;
13
+ };
14
+ selected: BooleanConstructor;
15
+ enableInputDialog: {
16
+ type: BooleanConstructor;
17
+ default: true;
18
+ };
19
+ showWarning: BooleanConstructor;
20
+ warning: {
21
+ type: StringConstructor;
22
+ default: string;
23
+ };
24
+ picking: {
25
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarPicking>;
26
+ default: undefined;
27
+ };
28
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "detail")[], "update:modelValue" | "detail", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
+ item: {
30
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarItem>;
31
+ required: true;
32
+ };
33
+ modelValue: {
34
+ type: NumberConstructor;
35
+ required: true;
36
+ };
37
+ keyword: {
38
+ type: StringConstructor;
39
+ default: string;
40
+ };
41
+ selected: BooleanConstructor;
42
+ enableInputDialog: {
43
+ type: BooleanConstructor;
44
+ default: true;
45
+ };
46
+ showWarning: BooleanConstructor;
47
+ warning: {
48
+ type: StringConstructor;
49
+ default: string;
50
+ };
51
+ picking: {
52
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarPicking>;
53
+ default: undefined;
54
+ };
55
+ }>> & {
56
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
57
+ onDetail?: ((...args: any[]) => any) | undefined;
58
+ }, {
59
+ selected: boolean;
60
+ warning: string;
61
+ keyword: string;
62
+ enableInputDialog: boolean;
63
+ showWarning: boolean;
64
+ picking: import("./MaterialActionBar").MaterialActionBarPicking;
65
+ }>>;
1
66
  export declare const MaterialActionBar: import("../utils").WithInstall<import("vue").DefineComponent<{
2
67
  item: {
3
68
  type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarItem>;
@@ -21,6 +86,10 @@ export declare const MaterialActionBar: import("../utils").WithInstall<import("v
21
86
  type: StringConstructor;
22
87
  default: string;
23
88
  };
89
+ picking: {
90
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarPicking>;
91
+ default: undefined;
92
+ };
24
93
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "detail")[], "update:modelValue" | "detail", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
25
94
  item: {
26
95
  type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarItem>;
@@ -44,6 +113,10 @@ export declare const MaterialActionBar: import("../utils").WithInstall<import("v
44
113
  type: StringConstructor;
45
114
  default: string;
46
115
  };
116
+ picking: {
117
+ type: import("vue").PropType<import("./MaterialActionBar").MaterialActionBarPicking>;
118
+ default: undefined;
119
+ };
47
120
  }>> & {
48
121
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
49
122
  onDetail?: ((...args: any[]) => any) | undefined;
@@ -53,6 +126,7 @@ export declare const MaterialActionBar: import("../utils").WithInstall<import("v
53
126
  keyword: string;
54
127
  enableInputDialog: boolean;
55
128
  showWarning: boolean;
129
+ picking: import("./MaterialActionBar").MaterialActionBarPicking;
56
130
  }>>;
57
- export default MaterialActionBar;
58
- export type { MaterialActionBarItem } from './MaterialActionBar';
131
+ export default MaterialActionList;
132
+ export type { MaterialActionBarItem, MaterialActionBarItem as MaterialActionListItem, MaterialActionBarPicking, } from './MaterialActionBar';
@@ -22,12 +22,16 @@
22
22
 
23
23
  &__main { display: flex; align-items: center; min-height: 22px; }
24
24
  &__detail { display: inline-flex; flex: 1 1 0; gap: 2px; align-items: center; min-width: 0; padding: 0; overflow: hidden; color: var(--van-gray-9); font: inherit; font-size: var(--van-font-size-md); line-height: var(--van-line-height-lg); text-align: left; background: transparent; border: 0; cursor: pointer; transition: opacity var(--van-animation-duration-fast); &:active { opacity: var(--van-active-opacity); } > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }
25
+ &__stepper-prefix { flex: none; margin: 0 4px 0 8px; color: var(--van-text-color-2); font-size: var(--van-font-size-md); line-height: var(--van-line-height-lg); }
25
26
  &__stepper-wrapper { position: relative; flex: none; margin-left: 4px; }
26
27
  &__kind-tag { flex: none; margin-left: 4px; }
27
- &__stepper { flex: none; margin-left: 0; --van-stepper-input-width: 32px; --van-stepper-input-height: 18px; --van-stepper-input-font-size: var(--van-font-size-md); --van-stepper-input-line-height: var(--van-line-height-lg); }
28
- &__number-trigger { position: absolute; z-index: 1; top: 0; left: 18px; width: 32px; height: 18px; padding: 0; background: transparent; border: 0; cursor: pointer; }
28
+ &__stepper { flex: none; margin-left: 0; --van-stepper-input-width: 24px; --van-stepper-input-height: 18px; --van-stepper-input-font-size: var(--van-font-size-md); --van-stepper-input-line-height: var(--van-line-height-lg); }
29
+ &__number-trigger { position: absolute; z-index: 1; top: 0; left: 18px; width: 24px; height: 18px; padding: 0; background: transparent; border: 0; cursor: pointer; }
29
30
  &__unit { flex: none; width: 32px; margin-left: 8px; overflow: hidden; color: var(--van-text-color-2); font-size: var(--van-font-size-md); line-height: var(--van-line-height-lg); text-overflow: ellipsis; white-space: nowrap; }
30
31
  &__desc { margin: 2px 0 0; overflow: hidden; color: var(--van-gray-6); font-size: var(--van-font-size-sm); line-height: 20px; text-overflow: ellipsis; white-space: nowrap; }
31
32
  &__warning { margin: 2px 0 0; color: var(--van-red-500); font-size: var(--van-font-size-sm); line-height: 20px; }
33
+ &__picking-outbound { display: flex; gap: 4px; margin: 2px 0 0; color: var(--van-text-color); font-size: var(--van-font-size-sm); line-height: 20px; }
34
+ &__picking-label { color: var(--van-gray-6); }
35
+ &__picking-value { font-weight: 600; }
32
36
  &__keyword { color: var(--van-primary-color); }
33
37
  }