vant 4.6.1 → 4.6.2

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 (60) hide show
  1. package/README.md +1 -1
  2. package/es/checkbox/Checkbox.d.ts +14 -13
  3. package/es/checkbox/Checkbox.mjs +2 -1
  4. package/es/checkbox/Checker.d.ts +9 -13
  5. package/es/checkbox/Checker.mjs +13 -3
  6. package/es/checkbox/index.d.ts +8 -8
  7. package/es/field/Field.d.ts +25 -0
  8. package/es/field/Field.mjs +9 -0
  9. package/es/field/index.d.ts +13 -0
  10. package/es/floating-bubble/FloatingBubble.d.ts +16 -21
  11. package/es/floating-bubble/FloatingBubble.mjs +6 -8
  12. package/es/floating-bubble/index.css +1 -1
  13. package/es/floating-bubble/index.d.ts +18 -18
  14. package/es/floating-bubble/types.d.ts +12 -0
  15. package/es/index.d.ts +1 -1
  16. package/es/index.mjs +1 -1
  17. package/es/pagination/index.css +1 -1
  18. package/es/radio/Radio.d.ts +18 -15
  19. package/es/radio/Radio.mjs +5 -3
  20. package/es/radio/index.css +1 -1
  21. package/es/radio/index.d.ts +11 -9
  22. package/es/radio/types.d.ts +1 -0
  23. package/es/search/Search.d.ts +19 -0
  24. package/es/search/index.d.ts +13 -0
  25. package/es/text-ellipsis/TextEllipsis.d.ts +13 -0
  26. package/es/text-ellipsis/TextEllipsis.mjs +50 -19
  27. package/es/text-ellipsis/index.d.ts +9 -0
  28. package/lib/checkbox/Checkbox.d.ts +14 -13
  29. package/lib/checkbox/Checkbox.js +1 -0
  30. package/lib/checkbox/Checker.d.ts +9 -13
  31. package/lib/checkbox/Checker.js +13 -3
  32. package/lib/checkbox/index.d.ts +8 -8
  33. package/lib/field/Field.d.ts +25 -0
  34. package/lib/field/Field.js +9 -0
  35. package/lib/field/index.d.ts +13 -0
  36. package/lib/floating-bubble/FloatingBubble.d.ts +16 -21
  37. package/lib/floating-bubble/FloatingBubble.js +6 -8
  38. package/lib/floating-bubble/index.css +1 -1
  39. package/lib/floating-bubble/index.d.ts +18 -18
  40. package/lib/floating-bubble/types.d.ts +12 -0
  41. package/lib/index.css +1 -1
  42. package/lib/index.d.ts +1 -1
  43. package/lib/index.js +1 -1
  44. package/lib/pagination/index.css +1 -1
  45. package/lib/radio/Radio.d.ts +18 -15
  46. package/lib/radio/Radio.js +4 -2
  47. package/lib/radio/index.css +1 -1
  48. package/lib/radio/index.d.ts +11 -9
  49. package/lib/radio/types.d.ts +1 -0
  50. package/lib/search/Search.d.ts +19 -0
  51. package/lib/search/index.d.ts +13 -0
  52. package/lib/text-ellipsis/TextEllipsis.d.ts +13 -0
  53. package/lib/text-ellipsis/TextEllipsis.js +49 -18
  54. package/lib/text-ellipsis/index.d.ts +9 -0
  55. package/lib/vant.cjs.js +82 -31
  56. package/lib/vant.es.js +82 -31
  57. package/lib/vant.js +82 -31
  58. package/lib/vant.min.js +1 -1
  59. package/lib/web-types.json +1 -1
  60. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -105,4 +105,4 @@ declare namespace _default {
105
105
  }
106
106
  export default _default;
107
107
  export function install(app: any): void;
108
- export const version: "4.6.1";
108
+ export const version: "4.6.2";
package/lib/index.js CHANGED
@@ -224,7 +224,7 @@ __reExport(stdin_exports, require("./toast"), module.exports);
224
224
  __reExport(stdin_exports, require("./tree-select"), module.exports);
225
225
  __reExport(stdin_exports, require("./uploader"), module.exports);
226
226
  __reExport(stdin_exports, require("./watermark"), module.exports);
227
- const version = "4.6.1";
227
+ const version = "4.6.2";
228
228
  function install(app) {
229
229
  const components = [
230
230
  import_action_bar.ActionBar,
@@ -1 +1 @@
1
- :root{--van-pagination-height: 40px;--van-pagination-font-size: var(--van-font-size-md);--van-pagination-item-width: 36px;--van-pagination-item-default-color: var(--van-primary-color);--van-pagination-item-disabled-color: var(--van-gray-7);--van-pagination-item-disabled-background: var(--van-background);--van-pagination-background: var(--van-background-2);--van-pagination-desc-color: var(--van-gray-7);--van-pagination-disabled-opacity: var(--van-disabled-opacity)}.van-pagination{font-size:var(--van-pagination-font-size)}.van-pagination__items{display:flex}.van-pagination__item,.van-pagination__page-desc{display:flex;align-items:center;justify-content:center}.van-pagination__item{flex:1;box-sizing:border-box;min-width:var(--van-pagination-item-width);height:var(--van-pagination-height);color:var(--van-pagination-item-default-color);background:var(--van-pagination-background);cursor:pointer;-webkit-user-select:none;user-select:none}.van-pagination__item button{flex:1;height:100%;border:none;padding:0;background:transparent}.van-pagination__item button[disabled]{cursor:not-allowed}.van-pagination__item:active{color:var(--van-white);background-color:var(--van-pagination-item-default-color)}.van-pagination__item:not(:last-child):after{border-right-width:0}.van-pagination__item--active{color:var(--van-white);background-color:var(--van-pagination-item-default-color)}.van-pagination__item--page{flex-grow:0}.van-pagination__item--prev,.van-pagination__item--next{padding:0 var(--van-padding-base);cursor:pointer}.van-pagination__item--border:after{border-width:var(--van-border-width)}.van-pagination__item--disabled,.van-pagination__item--disabled:active{color:var(--van-pagination-item-disabled-color);background-color:var(--van-pagination-item-disabled-background);opacity:var(--van-pagination-disabled-opacity)}.van-pagination__page-desc{flex:1;height:var(--van-pagination-height);color:var(--van-pagination-desc-color)}
1
+ :root{--van-pagination-height: 40px;--van-pagination-font-size: var(--van-font-size-md);--van-pagination-item-width: 36px;--van-pagination-item-default-color: var(--van-primary-color);--van-pagination-item-disabled-color: var(--van-gray-7);--van-pagination-item-disabled-background: var(--van-background);--van-pagination-background: var(--van-background-2);--van-pagination-desc-color: var(--van-gray-7);--van-pagination-disabled-opacity: var(--van-disabled-opacity)}.van-pagination{font-size:var(--van-pagination-font-size)}.van-pagination__items{display:flex}.van-pagination__item,.van-pagination__page-desc{display:flex;align-items:center;justify-content:center}.van-pagination__item{flex:1;box-sizing:border-box;min-width:var(--van-pagination-item-width);height:var(--van-pagination-height);color:var(--van-pagination-item-default-color);background:var(--van-pagination-background);cursor:pointer;-webkit-user-select:none;user-select:none}.van-pagination__item button{flex:1;height:100%;border:none;padding:0;background:transparent}.van-pagination__item button[disabled]{cursor:not-allowed}.van-pagination__item:active{color:var(--van-white);background-color:var(--van-pagination-item-default-color)}.van-pagination__item:not(:last-child):after{border-right-width:0}.van-pagination__item--active{color:var(--van-white);background-color:var(--van-pagination-item-default-color)}.van-pagination__item--page{flex-grow:0}.van-pagination__item--prev,.van-pagination__item--next{padding:0 var(--van-padding-base);cursor:pointer}.van-pagination__item--border:first-child:after{border-right-width:var(--van-border-width)}.van-pagination__item--disabled,.van-pagination__item--disabled:active{color:var(--van-pagination-item-disabled-color);background-color:var(--van-pagination-item-disabled-background);opacity:var(--van-pagination-disabled-opacity)}.van-pagination__page-desc{flex:1;height:var(--van-pagination-height);color:var(--van-pagination-desc-color)}
@@ -1,50 +1,53 @@
1
1
  import { type ExtractPropTypes } from 'vue';
2
- import { CheckerShape, CheckerLabelPosition } from '../checkbox/Checker';
2
+ import { type CheckerShape, type CheckerLabelPosition } from '../checkbox/Checker';
3
+ export type RadioShape = CheckerShape | 'dot';
3
4
  export declare const radioProps: {
4
5
  name: import("vue").PropType<unknown>;
5
- shape: {
6
- type: import("vue").PropType<CheckerShape>;
7
- default: CheckerShape;
8
- };
9
6
  disabled: BooleanConstructor;
10
7
  iconSize: (NumberConstructor | StringConstructor)[];
11
8
  modelValue: import("vue").PropType<unknown>;
12
9
  checkedColor: StringConstructor;
13
10
  labelPosition: import("vue").PropType<CheckerLabelPosition>;
14
11
  labelDisabled: BooleanConstructor;
12
+ } & {
13
+ shape: {
14
+ type: import("vue").PropType<RadioShape>;
15
+ default: RadioShape;
16
+ };
15
17
  };
16
- export type RadioShape = CheckerShape;
17
18
  export type RadioLabelPosition = CheckerLabelPosition;
18
19
  export type RadioProps = ExtractPropTypes<typeof radioProps>;
19
20
  declare const _default: import("vue").DefineComponent<{
20
21
  name: import("vue").PropType<unknown>;
21
- shape: {
22
- type: import("vue").PropType<CheckerShape>;
23
- default: CheckerShape;
24
- };
25
22
  disabled: BooleanConstructor;
26
23
  iconSize: (NumberConstructor | StringConstructor)[];
27
24
  modelValue: import("vue").PropType<unknown>;
28
25
  checkedColor: StringConstructor;
29
26
  labelPosition: import("vue").PropType<CheckerLabelPosition>;
30
27
  labelDisabled: BooleanConstructor;
31
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
32
- name: import("vue").PropType<unknown>;
28
+ } & {
33
29
  shape: {
34
- type: import("vue").PropType<CheckerShape>;
35
- default: CheckerShape;
30
+ type: import("vue").PropType<RadioShape>;
31
+ default: RadioShape;
36
32
  };
33
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
34
+ name: import("vue").PropType<unknown>;
37
35
  disabled: BooleanConstructor;
38
36
  iconSize: (NumberConstructor | StringConstructor)[];
39
37
  modelValue: import("vue").PropType<unknown>;
40
38
  checkedColor: StringConstructor;
41
39
  labelPosition: import("vue").PropType<CheckerLabelPosition>;
42
40
  labelDisabled: BooleanConstructor;
41
+ } & {
42
+ shape: {
43
+ type: import("vue").PropType<RadioShape>;
44
+ default: RadioShape;
45
+ };
43
46
  }>> & {
44
47
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
45
48
  }, {
46
49
  disabled: boolean;
47
- shape: CheckerShape;
50
+ shape: RadioShape;
48
51
  labelDisabled: boolean;
49
52
  }, {}>;
50
53
  export default _default;
@@ -37,11 +37,13 @@ var import_utils = require("../utils");
37
37
  var import_RadioGroup = require("../radio-group/RadioGroup");
38
38
  var import_use = require("@vant/use");
39
39
  var import_Checker = __toESM(require("../checkbox/Checker"));
40
- const radioProps = import_Checker.checkerProps;
40
+ const radioProps = (0, import_utils.extend)({}, import_Checker.checkerProps, {
41
+ shape: (0, import_utils.makeStringProp)("round")
42
+ });
41
43
  const [name, bem] = (0, import_utils.createNamespace)("radio");
42
44
  var stdin_default = (0, import_vue2.defineComponent)({
43
45
  name,
44
- props: import_Checker.checkerProps,
46
+ props: radioProps,
45
47
  emits: ["update:modelValue"],
46
48
  setup(props, {
47
49
  emit,
@@ -1 +1 @@
1
- :root{--van-radio-size: 20px;--van-radio-border-color: var(--van-gray-5);--van-radio-duration: var(--van-duration-fast);--van-radio-label-margin: var(--van-padding-xs);--van-radio-label-color: var(--van-text-color);--van-radio-checked-icon-color: var(--van-primary-color);--van-radio-disabled-icon-color: var(--van-gray-5);--van-radio-disabled-label-color: var(--van-text-color-3);--van-radio-disabled-background: var(--van-border-color)}.van-radio{display:flex;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:var(--van-padding-sm)}.van-radio__icon{flex:none;height:1em;font-size:var(--van-radio-size);line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid var(--van-radio-border-color);transition-duration:var(--van-radio-duration);transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--checked .van-icon{color:var(--van-white);background-color:var(--van-radio-checked-icon-color);border-color:var(--van-radio-checked-icon-color)}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:var(--van-radio-disabled-background);border-color:var(--van-radio-disabled-icon-color)}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:var(--van-radio-disabled-icon-color)}.van-radio__label{margin-left:var(--van-radio-label-margin);color:var(--van-radio-label-color);line-height:var(--van-radio-size)}.van-radio__label--left{margin:0 var(--van-radio-label-margin) 0 0}.van-radio__label--disabled{color:var(--van-radio-disabled-label-color)}
1
+ :root{--van-radio-size: 20px;--van-radio-dot-size: 8px;--van-radio-border-color: var(--van-gray-5);--van-radio-duration: var(--van-duration-fast);--van-radio-label-margin: var(--van-padding-xs);--van-radio-label-color: var(--van-text-color);--van-radio-checked-icon-color: var(--van-primary-color);--van-radio-disabled-icon-color: var(--van-gray-5);--van-radio-disabled-label-color: var(--van-text-color-3);--van-radio-disabled-background: var(--van-border-color)}.van-radio{display:flex;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:var(--van-padding-sm)}.van-radio__icon{flex:none;height:1em;font-size:var(--van-radio-size);line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid var(--van-radio-border-color);transition-duration:var(--van-radio-duration);transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--dot{position:relative;border-radius:100%;box-sizing:border-box;width:var(--van-radio-size);height:var(--van-radio-size);border:1px solid var(--van-radio-border-color);transition-duration:var(--van-radio-duration);transition-property:border-color}.van-radio__icon--dot__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:100%;height:calc(100% - var(--van-radio-dot-size));width:calc(100% - var(--van-radio-dot-size));transition-duration:var(--van-radio-duration);transition-property:border-color,background-color}.van-radio__icon--checked .van-icon{color:var(--van-white);background-color:var(--van-radio-checked-icon-color);border-color:var(--van-radio-checked-icon-color)}.van-radio__icon--checked.van-radio__icon--dot{border-color:var(--van-radio-checked-icon-color)}.van-radio__icon--checked.van-radio__icon--dot .van-radio__icon--dot__icon{background:var(--van-radio-checked-icon-color)}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:var(--van-radio-disabled-background);border-color:var(--van-radio-disabled-icon-color)}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:var(--van-radio-disabled-icon-color)}.van-radio__label{margin-left:var(--van-radio-label-margin);color:var(--van-radio-label-color);line-height:var(--van-radio-size)}.van-radio__label--left{margin:0 var(--van-radio-label-margin) 0 0}.van-radio__label--disabled{color:var(--van-radio-disabled-label-color)}
@@ -1,32 +1,34 @@
1
1
  export declare const Radio: import("../utils").WithInstall<import("vue").DefineComponent<{
2
2
  name: import("vue").PropType<unknown>;
3
- shape: {
4
- type: import("vue").PropType<import("../checkbox/Checker").CheckerShape>;
5
- default: import("../checkbox/Checker").CheckerShape;
6
- };
7
3
  disabled: BooleanConstructor;
8
4
  iconSize: (NumberConstructor | StringConstructor)[];
9
5
  modelValue: import("vue").PropType<unknown>;
10
6
  checkedColor: StringConstructor;
11
7
  labelPosition: import("vue").PropType<import("../checkbox/Checker").CheckerLabelPosition>;
12
8
  labelDisabled: BooleanConstructor;
13
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
- name: import("vue").PropType<unknown>;
9
+ } & {
15
10
  shape: {
16
- type: import("vue").PropType<import("../checkbox/Checker").CheckerShape>;
17
- default: import("../checkbox/Checker").CheckerShape;
11
+ type: import("vue").PropType<import("./Radio").RadioShape>;
12
+ default: import("./Radio").RadioShape;
18
13
  };
14
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
+ name: import("vue").PropType<unknown>;
19
16
  disabled: BooleanConstructor;
20
17
  iconSize: (NumberConstructor | StringConstructor)[];
21
18
  modelValue: import("vue").PropType<unknown>;
22
19
  checkedColor: StringConstructor;
23
20
  labelPosition: import("vue").PropType<import("../checkbox/Checker").CheckerLabelPosition>;
24
21
  labelDisabled: BooleanConstructor;
22
+ } & {
23
+ shape: {
24
+ type: import("vue").PropType<import("./Radio").RadioShape>;
25
+ default: import("./Radio").RadioShape;
26
+ };
25
27
  }>> & {
26
28
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
27
29
  }, {
28
30
  disabled: boolean;
29
- shape: import("../checkbox/Checker").CheckerShape;
31
+ shape: import("./Radio").RadioShape;
30
32
  labelDisabled: boolean;
31
33
  }, {}>>;
32
34
  export default Radio;
@@ -1,5 +1,6 @@
1
1
  export type RadioThemeVars = {
2
2
  radioSize?: string;
3
+ radioDotSize?: string;
3
4
  radioBorderColor?: string;
4
5
  radioDuration?: string;
5
6
  radioLabelMargin?: string;
@@ -20,8 +20,14 @@ export declare const searchProps: {
20
20
  inputAlign: import("vue").PropType<import("../field").FieldTextAlign>;
21
21
  placeholder: StringConstructor;
22
22
  autocomplete: StringConstructor;
23
+ autocapitalize: StringConstructor;
24
+ autocorrect: StringConstructor;
23
25
  errorMessage: StringConstructor;
24
26
  enterkeyhint: StringConstructor;
27
+ spellcheck: {
28
+ type: BooleanConstructor;
29
+ default: null;
30
+ };
25
31
  clearTrigger: {
26
32
  type: import("vue").PropType<import("../field").FieldClearTrigger>;
27
33
  default: import("../field").FieldClearTrigger;
@@ -81,8 +87,14 @@ declare const _default: import("vue").DefineComponent<{
81
87
  inputAlign: import("vue").PropType<import("../field").FieldTextAlign>;
82
88
  placeholder: StringConstructor;
83
89
  autocomplete: StringConstructor;
90
+ autocapitalize: StringConstructor;
91
+ autocorrect: StringConstructor;
84
92
  errorMessage: StringConstructor;
85
93
  enterkeyhint: StringConstructor;
94
+ spellcheck: {
95
+ type: BooleanConstructor;
96
+ default: null;
97
+ };
86
98
  clearTrigger: {
87
99
  type: import("vue").PropType<import("../field").FieldClearTrigger>;
88
100
  default: import("../field").FieldClearTrigger;
@@ -140,8 +152,14 @@ declare const _default: import("vue").DefineComponent<{
140
152
  inputAlign: import("vue").PropType<import("../field").FieldTextAlign>;
141
153
  placeholder: StringConstructor;
142
154
  autocomplete: StringConstructor;
155
+ autocapitalize: StringConstructor;
156
+ autocorrect: StringConstructor;
143
157
  errorMessage: StringConstructor;
144
158
  enterkeyhint: StringConstructor;
159
+ spellcheck: {
160
+ type: BooleanConstructor;
161
+ default: null;
162
+ };
145
163
  clearTrigger: {
146
164
  type: import("vue").PropType<import("../field").FieldClearTrigger>;
147
165
  default: import("../field").FieldClearTrigger;
@@ -197,6 +215,7 @@ declare const _default: import("vue").DefineComponent<{
197
215
  clearable: boolean;
198
216
  clearIcon: string;
199
217
  modelValue: string | number;
218
+ spellcheck: boolean;
200
219
  clearTrigger: import("../field").FieldClearTrigger;
201
220
  formatTrigger: import("../field").FieldFormatTrigger;
202
221
  error: boolean;
@@ -19,8 +19,14 @@ export declare const Search: import("../utils").WithInstall<import("vue").Define
19
19
  inputAlign: import("vue").PropType<import("..").FieldTextAlign>;
20
20
  placeholder: StringConstructor;
21
21
  autocomplete: StringConstructor;
22
+ autocapitalize: StringConstructor;
23
+ autocorrect: StringConstructor;
22
24
  errorMessage: StringConstructor;
23
25
  enterkeyhint: StringConstructor;
26
+ spellcheck: {
27
+ type: BooleanConstructor;
28
+ default: null;
29
+ };
24
30
  clearTrigger: {
25
31
  type: import("vue").PropType<import("..").FieldClearTrigger>;
26
32
  default: import("..").FieldClearTrigger;
@@ -78,8 +84,14 @@ export declare const Search: import("../utils").WithInstall<import("vue").Define
78
84
  inputAlign: import("vue").PropType<import("..").FieldTextAlign>;
79
85
  placeholder: StringConstructor;
80
86
  autocomplete: StringConstructor;
87
+ autocapitalize: StringConstructor;
88
+ autocorrect: StringConstructor;
81
89
  errorMessage: StringConstructor;
82
90
  enterkeyhint: StringConstructor;
91
+ spellcheck: {
92
+ type: BooleanConstructor;
93
+ default: null;
94
+ };
83
95
  clearTrigger: {
84
96
  type: import("vue").PropType<import("..").FieldClearTrigger>;
85
97
  default: import("..").FieldClearTrigger;
@@ -135,6 +147,7 @@ export declare const Search: import("../utils").WithInstall<import("vue").Define
135
147
  clearable: boolean;
136
148
  clearIcon: string;
137
149
  modelValue: string | number;
150
+ spellcheck: boolean;
138
151
  clearTrigger: import("..").FieldClearTrigger;
139
152
  formatTrigger: import("..").FieldFormatTrigger;
140
153
  error: boolean;
@@ -20,6 +20,10 @@ export declare const textEllipsisProps: {
20
20
  type: import("vue").PropType<string>;
21
21
  default: string;
22
22
  };
23
+ position: {
24
+ type: import("vue").PropType<string>;
25
+ default: string;
26
+ };
23
27
  };
24
28
  export type TextEllipsisProps = ExtractPropTypes<typeof textEllipsisProps>;
25
29
  declare const _default: import("vue").DefineComponent<{
@@ -43,6 +47,10 @@ declare const _default: import("vue").DefineComponent<{
43
47
  type: import("vue").PropType<string>;
44
48
  default: string;
45
49
  };
50
+ position: {
51
+ type: import("vue").PropType<string>;
52
+ default: string;
53
+ };
46
54
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "clickAction"[], "clickAction", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
47
55
  rows: {
48
56
  type: (NumberConstructor | StringConstructor)[];
@@ -64,10 +72,15 @@ declare const _default: import("vue").DefineComponent<{
64
72
  type: import("vue").PropType<string>;
65
73
  default: string;
66
74
  };
75
+ position: {
76
+ type: import("vue").PropType<string>;
77
+ default: string;
78
+ };
67
79
  }>> & {
68
80
  onClickAction?: ((...args: any[]) => any) | undefined;
69
81
  }, {
70
82
  content: string;
83
+ position: string;
71
84
  rows: string | number;
72
85
  dots: string;
73
86
  expandText: string;
@@ -31,7 +31,8 @@ const textEllipsisProps = {
31
31
  dots: (0, import_utils.makeStringProp)("..."),
32
32
  content: (0, import_utils.makeStringProp)(""),
33
33
  expandText: (0, import_utils.makeStringProp)(""),
34
- collapseText: (0, import_utils.makeStringProp)("")
34
+ collapseText: (0, import_utils.makeStringProp)(""),
35
+ position: (0, import_utils.makeStringProp)("end")
35
36
  };
36
37
  var stdin_default = (0, import_vue2.defineComponent)({
37
38
  name,
@@ -44,6 +45,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
44
45
  const expanded = (0, import_vue2.ref)(false);
45
46
  const hasAction = (0, import_vue2.ref)(false);
46
47
  const root = (0, import_vue2.ref)();
48
+ const actionText = (0, import_vue2.computed)(() => expanded.value ? props.expandText : props.collapseText);
47
49
  const pxToNum = (value) => {
48
50
  if (!value)
49
51
  return 0;
@@ -72,24 +74,53 @@ var stdin_default = (0, import_vue2.defineComponent)({
72
74
  };
73
75
  const calcEllipsisText = (container2, maxHeight2) => {
74
76
  const {
75
- dots,
76
77
  content,
77
- expandText
78
+ position,
79
+ dots
78
80
  } = props;
79
- let left = 0;
80
- let right = content.length;
81
- let res = -1;
82
- while (left <= right) {
83
- const mid = Math.floor((left + right) / 2);
84
- container2.innerText = content.slice(0, mid) + dots + expandText;
85
- if (container2.offsetHeight <= maxHeight2) {
86
- left = mid + 1;
87
- res = mid;
88
- } else {
89
- right = mid - 1;
81
+ const end = content.length;
82
+ const calcEllipse = () => {
83
+ const tail = (left, right) => {
84
+ if (right - left <= 1) {
85
+ if (position === "end") {
86
+ return content.slice(0, left) + dots;
87
+ }
88
+ return dots + content.slice(right, end);
89
+ }
90
+ const middle2 = Math.round(left + right >> 1);
91
+ if (position === "end") {
92
+ container2.innerText = content.slice(0, middle2) + dots + actionText.value;
93
+ } else {
94
+ container2.innerText = dots + content.slice(middle2, end) + actionText.value;
95
+ }
96
+ if (container2.offsetHeight > maxHeight2) {
97
+ if (position === "end") {
98
+ return tail(left, middle2);
99
+ }
100
+ return tail(middle2, right);
101
+ }
102
+ if (position === "end") {
103
+ return tail(middle2, right);
104
+ }
105
+ return tail(left, middle2);
106
+ };
107
+ container2.innerText = tail(0, end);
108
+ };
109
+ const middleTail = (leftPart, rightPart) => {
110
+ if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
111
+ return content.slice(0, leftPart[1]) + dots + dots + content.slice(rightPart[1], end);
90
112
  }
91
- }
92
- return content.slice(0, res) + dots;
113
+ const leftMiddle = Math.floor(leftPart[0] + leftPart[1] >> 1);
114
+ const rightMiddle = Math.ceil(rightPart[0] + rightPart[1] >> 1);
115
+ container2.innerText = props.content.slice(0, leftMiddle) + props.dots + actionText.value + props.dots + props.content.slice(rightMiddle, end);
116
+ if (container2.offsetHeight >= maxHeight2) {
117
+ return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);
118
+ }
119
+ return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);
120
+ };
121
+ const middle = 0 + end >> 1;
122
+ props.position === "middle" ? container2.innerText = middleTail([0, middle], [middle, end]) : calcEllipse();
123
+ return container2.innerText;
93
124
  };
94
125
  const container = cloneContainer();
95
126
  if (!container)
@@ -99,7 +130,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
99
130
  paddingTop,
100
131
  lineHeight
101
132
  } = container.style;
102
- const maxHeight = (Number(props.rows) + 0.5) * pxToNum(lineHeight) + pxToNum(paddingTop) + pxToNum(paddingBottom);
133
+ const maxHeight = Math.ceil((Number(props.rows) + 0.5) * pxToNum(lineHeight) + pxToNum(paddingTop) + pxToNum(paddingBottom));
103
134
  if (maxHeight < container.offsetHeight) {
104
135
  hasAction.value = true;
105
136
  text.value = calcEllipsisText(container, maxHeight);
@@ -118,7 +149,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
118
149
  "onClick": onClickAction
119
150
  }, [expanded.value ? props.collapseText : props.expandText]);
120
151
  (0, import_vue2.onMounted)(calcEllipsised);
121
- (0, import_vue2.watch)(() => [props.content, props.rows], calcEllipsised);
152
+ (0, import_vue2.watch)(() => [props.content, props.rows, props.position], calcEllipsised);
122
153
  (0, import_use.useEventListener)("resize", calcEllipsised);
123
154
  return () => (0, import_vue.createVNode)("div", {
124
155
  "ref": root,
@@ -19,6 +19,10 @@ export declare const TextEllipsis: import("../utils").WithInstall<import("vue").
19
19
  type: import("vue").PropType<string>;
20
20
  default: string;
21
21
  };
22
+ position: {
23
+ type: import("vue").PropType<string>;
24
+ default: string;
25
+ };
22
26
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "clickAction"[], "clickAction", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
23
27
  rows: {
24
28
  type: (NumberConstructor | StringConstructor)[];
@@ -40,10 +44,15 @@ export declare const TextEllipsis: import("../utils").WithInstall<import("vue").
40
44
  type: import("vue").PropType<string>;
41
45
  default: string;
42
46
  };
47
+ position: {
48
+ type: import("vue").PropType<string>;
49
+ default: string;
50
+ };
43
51
  }>> & {
44
52
  onClickAction?: ((...args: any[]) => any) | undefined;
45
53
  }, {
46
54
  content: string;
55
+ position: string;
47
56
  rows: string | number;
48
57
  dots: string;
49
58
  expandText: string;