zartui 3.1.13 → 3.1.14

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 (112) hide show
  1. package/es/cell/index.css +1 -1
  2. package/es/dropdown-item/DropdownItem.d.ts +7 -0
  3. package/es/dropdown-item/DropdownItem.mjs +39 -25
  4. package/es/dropdown-item/index.css +1 -1
  5. package/es/dropdown-item/index.d.ts +4 -0
  6. package/es/dropdown-item/style/index.mjs +1 -0
  7. package/es/dropdown-item/types.d.ts +2 -1
  8. package/es/dropdown-menu/index.css +1 -1
  9. package/es/field/index.css +1 -1
  10. package/es/form/index.css +1 -0
  11. package/es/form/style/index.mjs +1 -0
  12. package/es/icon/config.mjs +3 -1
  13. package/es/icon/index.css +1 -1
  14. package/es/image-preview/ImagePreview.d.ts +1 -1
  15. package/es/image-preview/index.d.ts +1 -1
  16. package/es/index.d.ts +1 -0
  17. package/es/index.mjs +3 -0
  18. package/es/lazyload/vue-lazyload/index.d.ts +55 -55
  19. package/es/media-picker/MediaPicker.mjs +12 -2
  20. package/es/media-picker/type.d.ts +3 -0
  21. package/es/multiple-picker/MultiplePicker.d.ts +28 -2
  22. package/es/multiple-picker/MultiplePicker.mjs +26 -16
  23. package/es/multiple-picker/MultiplePickerOptions.mjs +2 -1
  24. package/es/multiple-picker/index.css +1 -1
  25. package/es/multiple-picker/index.d.ts +20 -2
  26. package/es/picker/Picker.d.ts +30 -4
  27. package/es/picker/Picker.mjs +69 -16
  28. package/es/picker/PickerOptions.d.ts +75 -0
  29. package/es/picker/PickerOptions.mjs +93 -0
  30. package/es/picker/index.css +1 -1
  31. package/es/picker/index.d.ts +21 -3
  32. package/es/picker/types.d.ts +5 -1
  33. package/es/popup/Popup.mjs +3 -3
  34. package/es/radio-picker/RadioPicker.d.ts +11 -11
  35. package/es/radio-picker/index.d.ts +9 -9
  36. package/es/radio-picker/style/index.mjs +1 -1
  37. package/es/skeleton/index.css +1 -1
  38. package/es/slider/Slider.d.ts +139 -0
  39. package/es/slider/Slider.mjs +335 -0
  40. package/es/slider/index.css +1 -0
  41. package/es/slider/index.d.ts +103 -0
  42. package/es/slider/index.mjs +10 -0
  43. package/es/slider/style/index.d.ts +1 -0
  44. package/es/slider/style/index.mjs +2 -0
  45. package/es/slider/types.d.ts +11 -0
  46. package/es/slider/types.mjs +0 -0
  47. package/es/style/base.css +1 -1
  48. package/es/style/css-variables.css +1 -1
  49. package/es/tabbar-item/index.css +1 -1
  50. package/es/utils/mount-component.mjs +1 -1
  51. package/es/vue-sfc-shim.d.ts +6 -6
  52. package/es/vue-tsx-shim.d.ts +23 -23
  53. package/lib/cell/index.css +1 -1
  54. package/lib/dropdown-item/DropdownItem.d.ts +7 -0
  55. package/lib/dropdown-item/DropdownItem.js +37 -23
  56. package/lib/dropdown-item/index.css +1 -1
  57. package/lib/dropdown-item/index.d.ts +4 -0
  58. package/lib/dropdown-item/style/index.js +1 -0
  59. package/lib/dropdown-item/types.d.ts +2 -1
  60. package/lib/dropdown-menu/index.css +1 -1
  61. package/lib/field/index.css +1 -1
  62. package/lib/form/index.css +1 -0
  63. package/lib/form/style/index.js +1 -0
  64. package/lib/icon/config.js +3 -1
  65. package/lib/icon/index.css +1 -1
  66. package/lib/image-preview/ImagePreview.d.ts +1 -1
  67. package/lib/image-preview/index.d.ts +1 -1
  68. package/lib/index.css +1 -1
  69. package/lib/index.d.ts +1 -0
  70. package/lib/index.js +3 -0
  71. package/lib/lazyload/vue-lazyload/index.d.ts +55 -55
  72. package/lib/media-picker/MediaPicker.js +12 -2
  73. package/lib/media-picker/type.d.ts +3 -0
  74. package/lib/multiple-picker/MultiplePicker.d.ts +28 -2
  75. package/lib/multiple-picker/MultiplePicker.js +26 -16
  76. package/lib/multiple-picker/MultiplePickerOptions.js +2 -1
  77. package/lib/multiple-picker/index.css +1 -1
  78. package/lib/multiple-picker/index.d.ts +20 -2
  79. package/lib/picker/Picker.d.ts +30 -4
  80. package/lib/picker/Picker.js +68 -15
  81. package/lib/picker/PickerOptions.d.ts +75 -0
  82. package/lib/picker/PickerOptions.js +112 -0
  83. package/lib/picker/index.css +1 -1
  84. package/lib/picker/index.d.ts +21 -3
  85. package/lib/picker/types.d.ts +5 -1
  86. package/lib/popup/Popup.js +3 -3
  87. package/lib/radio-picker/RadioPicker.d.ts +11 -11
  88. package/lib/radio-picker/index.d.ts +9 -9
  89. package/lib/radio-picker/style/index.js +1 -1
  90. package/lib/skeleton/index.css +1 -1
  91. package/lib/slider/Slider.d.ts +139 -0
  92. package/lib/slider/Slider.js +354 -0
  93. package/lib/slider/index.css +1 -0
  94. package/lib/slider/index.d.ts +103 -0
  95. package/lib/slider/index.js +39 -0
  96. package/lib/slider/style/index.d.ts +1 -0
  97. package/lib/slider/style/index.js +2 -0
  98. package/lib/slider/types.d.ts +11 -0
  99. package/lib/slider/types.js +15 -0
  100. package/lib/style/base.css +1 -1
  101. package/lib/style/css-variables.css +1 -1
  102. package/lib/tabbar-item/index.css +1 -1
  103. package/lib/utils/mount-component.js +1 -1
  104. package/lib/vue-sfc-shim.d.ts +6 -6
  105. package/lib/vue-tsx-shim.d.ts +23 -23
  106. package/lib/web-types.json +1 -1
  107. package/lib/zartui.cjs.js +1419 -915
  108. package/lib/zartui.es.js +1419 -915
  109. package/lib/zartui.js +1419 -915
  110. package/lib/zartui.min.js +1 -1
  111. package/package.json +79 -79
  112. package/README.md +0 -23
@@ -0,0 +1,75 @@
1
+ import { ExtractPropTypes, PropType } from 'vue';
2
+ import { PickerOption, PickerFieldNames } from './types';
3
+ declare const pickerOptionsProps: {
4
+ value: (NumberConstructor | StringConstructor)[];
5
+ fields: {
6
+ type: PropType<Required<PickerFieldNames>>;
7
+ required: true;
8
+ };
9
+ readonly: BooleanConstructor;
10
+ allowHtml: BooleanConstructor;
11
+ itemHeight: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ columnCounts: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
19
+ options: {
20
+ type: PropType<PickerOption[]>;
21
+ default: () => PickerOption[];
22
+ };
23
+ };
24
+ export type PickerOptionsProps = ExtractPropTypes<typeof pickerOptionsProps>;
25
+ declare const _default: import("vue").DefineComponent<{
26
+ value: (NumberConstructor | StringConstructor)[];
27
+ fields: {
28
+ type: PropType<Required<PickerFieldNames>>;
29
+ required: true;
30
+ };
31
+ readonly: BooleanConstructor;
32
+ allowHtml: BooleanConstructor;
33
+ itemHeight: {
34
+ type: NumberConstructor;
35
+ default: number;
36
+ };
37
+ columnCounts: {
38
+ type: NumberConstructor;
39
+ default: number;
40
+ };
41
+ options: {
42
+ type: PropType<PickerOption[]>;
43
+ default: () => PickerOption[];
44
+ };
45
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "clickOption")[], "change" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
46
+ value: (NumberConstructor | StringConstructor)[];
47
+ fields: {
48
+ type: PropType<Required<PickerFieldNames>>;
49
+ required: true;
50
+ };
51
+ readonly: BooleanConstructor;
52
+ allowHtml: BooleanConstructor;
53
+ itemHeight: {
54
+ type: NumberConstructor;
55
+ default: number;
56
+ };
57
+ columnCounts: {
58
+ type: NumberConstructor;
59
+ default: number;
60
+ };
61
+ options: {
62
+ type: PropType<PickerOption[]>;
63
+ default: () => PickerOption[];
64
+ };
65
+ }>> & {
66
+ onChange?: ((...args: any[]) => any) | undefined;
67
+ onClickOption?: ((...args: any[]) => any) | undefined;
68
+ }, {
69
+ readonly: boolean;
70
+ options: PickerOption[];
71
+ allowHtml: boolean;
72
+ itemHeight: number;
73
+ columnCounts: number;
74
+ }, {}>;
75
+ export default _default;
@@ -0,0 +1,112 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name2 in all)
7
+ __defProp(target, name2, { get: all[name2], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ default: () => stdin_default
21
+ });
22
+ module.exports = __toCommonJS(stdin_exports);
23
+ var import_vue = require("vue");
24
+ var import_vue2 = require("vue");
25
+ var import_utils = require("../utils");
26
+ const [name, bem] = (0, import_utils.createNamespace)("picker-options");
27
+ const pickerOptionsProps = {
28
+ value: import_utils.numericProp,
29
+ fields: (0, import_utils.makeRequiredProp)(Object),
30
+ readonly: Boolean,
31
+ allowHtml: Boolean,
32
+ itemHeight: (0, import_utils.makeNumberProp)(0),
33
+ columnCounts: (0, import_utils.makeNumberProp)(3),
34
+ options: (0, import_utils.makeArrayProp)()
35
+ };
36
+ var stdin_default = (0, import_vue2.defineComponent)({
37
+ name,
38
+ props: pickerOptionsProps,
39
+ emits: ["change", "clickOption"],
40
+ setup(props, {
41
+ emit,
42
+ slots
43
+ }) {
44
+ const currentIndex = (0, import_vue2.ref)(-1);
45
+ const state = (0, import_vue2.reactive)({
46
+ options: props.options,
47
+ confirmed: false
48
+ });
49
+ const columnCounts = (0, import_vue2.ref)(props.columnCounts);
50
+ const onClickItem = (index) => {
51
+ if (props.readonly) {
52
+ return;
53
+ }
54
+ if (currentIndex.value !== index) {
55
+ currentIndex.value = index;
56
+ const value = props.options[index][props.fields.value];
57
+ emit("change", value);
58
+ }
59
+ emit("clickOption", props.options[index]);
60
+ };
61
+ const getOptionText = (option) => {
62
+ if ((0, import_utils.isObject)(option) && option[props.fields.text]) {
63
+ return option[props.fields.text];
64
+ }
65
+ return option;
66
+ };
67
+ const isOptionDisabled = (option) => props.readonly || (0, import_utils.isObject)(option) && option.disabled;
68
+ const genOptions = () => {
69
+ columnCounts.value = Number(props.columnCounts);
70
+ if (columnCounts.value && columnCounts.value > 3) {
71
+ columnCounts.value = 3;
72
+ }
73
+ if (columnCounts.value && columnCounts.value < 1) {
74
+ columnCounts.value = 1;
75
+ }
76
+ const optionStyle = {
77
+ height: `${props.itemHeight + 8}px`,
78
+ width: `${1 / columnCounts.value * 100}%`
79
+ };
80
+ return state.options.map((option, index) => {
81
+ const text = getOptionText(option);
82
+ const value = option[props.fields.value];
83
+ const disabled = isOptionDisabled(option);
84
+ const childData = {
85
+ class: "zt-ellipsis",
86
+ [props.allowHtml ? "innerHTML" : "textContent"]: text
87
+ };
88
+ return (0, import_vue.createVNode)("div", {
89
+ "role": "button",
90
+ "style": optionStyle,
91
+ "tabindex": disabled ? -1 : 0,
92
+ "onClick": () => onClickItem(index),
93
+ "class": [bem("item", {
94
+ disabled,
95
+ selected: value === props.value,
96
+ "disabled-selected": disabled && value === props.value,
97
+ last: (index + 1) % columnCounts.value === 0
98
+ })]
99
+ }, [slots.options ? slots.options(option) : (0, import_vue.createVNode)("div", childData, null)]);
100
+ });
101
+ };
102
+ (0, import_vue2.watchEffect)(() => {
103
+ currentIndex.value = props.options.findIndex((option) => option[props.fields.value] === props.value);
104
+ });
105
+ return () => (0, import_vue.createVNode)("div", {
106
+ "class": bem()
107
+ }, [(0, import_vue.createVNode)("div", {
108
+ "ref": "wrapper",
109
+ "class": bem("wrapper")
110
+ }, [genOptions()])]);
111
+ }
112
+ });
@@ -1 +1 @@
1
- :root{--zt-picker-cancel-margin: 8px 4px 8px 16px;--zt-picker-confirm-margin: 8px 16px 8px 4px;--zt-picker-title-height: 44px;--zt-picker-title-border-radius: 16px 16px 0 0;--zt-picker-frame-background-color: var(--zt-gray-a06);--zt-picker-title-text-color: var(--zt-gray-a4);--zt-picker-background: var(--zt-background-popup);--zt-picker-toolbar-height: 60px;--zt-picker-title-background: var(--zt-background-popup);--zt-picker-option-padding: 0 var(--zt-padding-base);--zt-picker-option-text-color: var(--zt-text-color);--zt-picker-option-disabled-opacity: var(--zt-disabled-opacity);--zt-picker-loading-icon-color: var(--zt-primary-color);--zt-picker-loading-mask-color: rgba(255, 255, 255, .9);--zt-picker-mask-color: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4)), linear-gradient(0deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4))}.zt-theme-dark{--zt-picker-loading-mask-color: rgba(0, 0, 0, .6);--zt-picker-mask-color: linear-gradient(180deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1)), linear-gradient(0deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1))}.zt-picker{position:relative;background:var(--zt-picker-background);-webkit-user-select:none;user-select:none}.zt-picker__toolbar{display:flex;align-items:center;justify-content:space-between;height:var(--zt-picker-toolbar-height)}.zt-picker__cancel,.zt-picker__confirm{width:50%}.zt-picker__cancel{background:var(--zt-button-default-background);margin:var(--zt-picker-cancel-margin)}.zt-picker__confirm{margin:var(--zt-picker-confirm-margin)}.zt-picker__title{display:flex;justify-content:center;align-items:center;width:100%;height:var(--zt-picker-title-height);border-radius:var(--zt-picker-title-border-radius);font-size:var(--zt-font-size-md);background:var(--zt-picker-title-background);color:var(--zt-picker-title-text-color)}.zt-picker__columns{position:relative;display:flex;cursor:-webkit-grab;cursor:grab}.zt-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:var(--zt-picker-loading-icon-color);background:var(--zt-picker-loading-mask-color)}.zt-picker__frame{position:absolute;top:50%;z-index:2;transform:translateY(-50%);pointer-events:none;width:100%;background:var(--zt-picker-frame-background-color)}.zt-picker__mask{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:var(--zt-picker-mask-color);background-repeat:no-repeat;background-position:top,bottom;transform:translateZ(0);pointer-events:none}.zt-picker-column{position:relative;flex:1;overflow:hidden;font-size:var(--zt-font-size-lg);background:var(--zt-picker-background)}.zt-picker-column__wrapper{transition-timing-function:cubic-bezier(.23,1,.68,1)}.zt-picker-column__item{display:flex;align-items:center;justify-content:center;padding:var(--zt-picker-option-padding);color:var(--zt-picker-option-text-color)}.zt-picker-column__item--disabled{cursor:not-allowed;opacity:var(--zt-picker-option-disabled-opacity)}.zt-picker-column__item--selected{font-weight:700}.zt-picker-column__unit{background:var(--zt-picker-title-background);position:absolute;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--zt-picker-option-text-color);font-size:var(--zt-font-size-lg);width:100%;height:100%}.zt-picker-column__unit-text{margin:0 4px;font-size:var(--zt-font-size-md)}
1
+ :root{--zt-picker-cancel-margin: 8px 4px 8px 16px;--zt-picker-confirm-margin: 8px 16px 8px 4px;--zt-picker-title-height: 44px;--zt-picker-title-border-radius: 16px 16px 0 0;--zt-picker-frame-background-color: var(--zt-gray-a06);--zt-picker-title-text-color: var(--zt-gray-a4);--zt-picker-background: var(--zt-background-popup);--zt-picker-toolbar-height: 60px;--zt-picker-title-background: var(--zt-background-popup);--zt-picker-option-padding: 0 var(--zt-padding-base);--zt-picker-option-text-color: var(--zt-text-color);--zt-picker-option-disabled-opacity: var(--zt-disabled-opacity);--zt-picker-option-disabled-background: var(--zt-gray-a04);--zt-picker-loading-icon-color: var(--zt-primary-color);--zt-picker-loading-mask-color: rgba(255, 255, 255, .9);--zt-picker-mask-color: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4)), linear-gradient(0deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4));--zt-picker-warpper-padding: 12px 16px 4px 16px;--zt-picker-option-item-text-color: var(--zt-gray-a6);--zt-picker-option-item-padding: 0 4px 8px 0;--zt-picker-options-ellipsis-height: 36px;--zt-picker-options-ellipsis-border: 1px solid var(--zt-gray-a2);--zt-picker-option-item-disabled-opacity: var(--zt-disabled-opacity)}:root[zt-theme-size=large]{--zt-picker-options-ellipsis-height: 50px}.zt-theme-dark{--zt-picker-loading-mask-color: rgba(0, 0, 0, .6);--zt-picker-mask-color: linear-gradient(180deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1)), linear-gradient(0deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1))}.zt-picker{position:relative;background:var(--zt-picker-background);-webkit-user-select:none;user-select:none}.zt-picker__toolbar{display:flex;align-items:center;justify-content:space-between;height:var(--zt-picker-toolbar-height)}.zt-picker__cancel,.zt-picker__confirm{width:50%}.zt-picker__cancel{background:var(--zt-button-default-background);margin:var(--zt-picker-cancel-margin)}.zt-picker__confirm{margin:var(--zt-picker-confirm-margin)}.zt-picker__title{display:flex;justify-content:center;align-items:center;width:100%;height:var(--zt-picker-title-height);border-radius:var(--zt-picker-title-border-radius);font-size:var(--zt-font-size-md);background:var(--zt-picker-title-background);color:var(--zt-picker-title-text-color)}.zt-picker__columns{position:relative;display:flex;cursor:-webkit-grab;cursor:grab}.zt-picker__options{position:relative;display:flex;cursor:-webkit-grab;cursor:grab;overflow-y:scroll}.zt-picker__options:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:0;bottom:0;left:0;border-bottom:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-picker__options:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:0;right:0;left:0;border-top:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:var(--zt-picker-loading-icon-color);background:var(--zt-picker-loading-mask-color)}.zt-picker__frame{position:absolute;top:50%;z-index:2;transform:translateY(-50%);pointer-events:none;width:100%;background:var(--zt-picker-frame-background-color)}.zt-picker__mask{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:var(--zt-picker-mask-color);background-repeat:no-repeat;background-position:top,bottom;transform:translateZ(0);pointer-events:none}.zt-picker-column{position:relative;flex:1;overflow:hidden;font-size:var(--zt-font-size-lg);background:var(--zt-picker-background)}.zt-picker-column__wrapper{transition-timing-function:cubic-bezier(.23,1,.68,1)}.zt-picker-column__item{display:flex;align-items:center;justify-content:center;padding:var(--zt-picker-option-padding);color:var(--zt-picker-option-text-color)}.zt-picker-column__item--disabled{cursor:not-allowed;opacity:var(--zt-picker-option-disabled-opacity)}.zt-picker-column__item--selected{font-weight:700}.zt-picker-column__unit{background:var(--zt-picker-title-background);position:absolute;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--zt-picker-option-text-color);font-size:var(--zt-font-size-lg);width:100%;height:100%}.zt-picker-column__unit-text{margin:0 4px;font-size:var(--zt-font-size-md)}.zt-picker-options{flex:1;overflow-y:scroll;font-size:var(--zt-font-size-md);margin:0;outline:0 none;padding:0}.zt-picker-options__wrapper{display:flex;flex-wrap:wrap;background-color:var(--zt-picker-background);padding:var(--zt-picker-warpper-padding)}.zt-picker-options__item{color:var(--zt-picker-option-item-text-color);padding:var(--zt-picker-option-item-padding);box-sizing:border-box;text-align:center;font-size:var(--zt-font-size-md)}.zt-picker-options__item .zt-ellipsis{height:var(--zt-picker-options-ellipsis-height);line-height:var(--zt-picker-options-ellipsis-height);border-radius:calc(var(--zt-picker-options-ellipsis-height) / 2);background:var(--zt-gray-a04);padding:0 var(--zt-padding-md)}.zt-picker-options__item:active{opacity:var(--zt-active-opacity)}.zt-picker-options__item--disabled{cursor:not-allowed;color:var(--zt-gray-a2)}.zt-picker-options__item--disabled .zt-ellipsis{background:var(--zt-picker-option-disabled-background)!important}.zt-picker-options__item--last{padding-right:0}.zt-picker-options__item--selected{color:var(--zt-white)}.zt-picker-options__item--selected .zt-ellipsis{background:var(--zt-primary-color)}.zt-picker-options__item--disabled-selected{cursor:not-allowed;color:var(--zt-gray)!important}.zt-picker-options__item--disabled-selected .zt-ellipsis{background:var(--zt-picker-option-disabled-background)!important}
@@ -53,7 +53,15 @@ export declare const Picker: import("../utils").WithInstall<import("vue").Define
53
53
  type: BooleanConstructor;
54
54
  default: true;
55
55
  };
56
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption")[], "update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
56
+ showType: {
57
+ type: import("vue").PropType<import("./types").PickerShowType>;
58
+ default: import("./types").PickerShowType;
59
+ };
60
+ columnCounts: {
61
+ type: NumberConstructor;
62
+ default: number;
63
+ };
64
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker")[], "update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
57
65
  loading: BooleanConstructor;
58
66
  readonly: BooleanConstructor;
59
67
  allowHtml: BooleanConstructor;
@@ -107,25 +115,35 @@ export declare const Picker: import("../utils").WithInstall<import("vue").Define
107
115
  type: BooleanConstructor;
108
116
  default: true;
109
117
  };
118
+ showType: {
119
+ type: import("vue").PropType<import("./types").PickerShowType>;
120
+ default: import("./types").PickerShowType;
121
+ };
122
+ columnCounts: {
123
+ type: NumberConstructor;
124
+ default: number;
125
+ };
110
126
  }>> & {
111
127
  onChange?: ((...args: any[]) => any) | undefined;
112
128
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
113
129
  onCancel?: ((...args: any[]) => any) | undefined;
114
130
  onConfirm?: ((...args: any[]) => any) | undefined;
115
- "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
116
131
  onClickOption?: ((...args: any[]) => any) | undefined;
132
+ "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
117
133
  }, {
118
134
  title: string;
119
135
  modelValue: import("../utils").Numeric[];
120
136
  readonly: boolean;
121
137
  popup: boolean;
122
138
  loading: boolean;
139
+ showType: import("./types").PickerShowType;
123
140
  showTitle: boolean;
124
141
  columns: (import("./types").PickerColumn | import("./types").PickerOption)[];
125
142
  allowHtml: boolean;
126
143
  swipeDuration: string | number;
127
- showPicker: boolean;
128
144
  showToolbar: boolean;
145
+ showPicker: boolean;
146
+ columnCounts: number;
129
147
  toolbarPosition: import("./types").PickerToolbarPosition;
130
148
  optionHeight: string | number;
131
149
  visibleOptionNum: string | number;
@@ -1,6 +1,7 @@
1
1
  import type { ComponentPublicInstance } from 'vue';
2
2
  import type { Numeric } from '../utils';
3
3
  import type { PickerProps } from './Picker';
4
+ export type PickerShowType = 'default' | 'button';
4
5
  export type PickerToolbarPosition = 'top' | 'bottom';
5
6
  export type PickerFieldNames = {
6
7
  text?: string;
@@ -15,6 +16,9 @@ export type PickerOption = {
15
16
  className?: unknown;
16
17
  [key: PropertyKey]: any;
17
18
  };
19
+ export type PickerOptionsExpose = {
20
+ setConfirmIndex: (indexes: PickerOption) => void;
21
+ };
18
22
  export type PickerColumn = PickerOption[];
19
23
  export type PickerExpose = {
20
24
  confirm: () => void;
@@ -33,7 +37,7 @@ export type PickerColumnProvide = {
33
37
  setOptions: (options: PickerOption[]) => void;
34
38
  stopMomentum: () => void;
35
39
  };
36
- export type PickerInstance = ComponentPublicInstance<PickerProps, PickerExpose>;
40
+ export type PickerInstance = ComponentPublicInstance<PickerProps, PickerExpose, PickerOptionsExpose>;
37
41
  export type PickerConfirmEventParams = {
38
42
  selectedValues: Numeric[];
39
43
  selectedOptions: Array<PickerOption | undefined>;
@@ -199,13 +199,13 @@ var stdin_default = (0, import_vue2.defineComponent)({
199
199
  }, attrs, (0, import_use_scope_id.useScopeId)()), [(_a = slots.default) == null ? void 0 : _a.call(slots), renderCloseIcon()]), [[import_vue.vShow, props.show]]);
200
200
  });
201
201
  const sliderRenderPopup = lazyRender(() => {
202
- var _a, _b;
202
+ var _a;
203
203
  return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", (0, import_vue.mergeProps)({
204
204
  "class": bem("slider"),
205
205
  "ref": popupRef,
206
206
  "style": style.value,
207
207
  "onKeydown": onKeydown
208
- }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), renderCloseIcon(), (0, import_vue.createVNode)("div", {
208
+ }, attrs), [renderCloseIcon(), (0, import_vue.createVNode)("div", {
209
209
  "class": bem("slider-title"),
210
210
  "style": `height:${touchAreaHeight}px;`,
211
211
  "ref": root
@@ -214,7 +214,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
214
214
  }, null)]), (0, import_vue.createVNode)("div", {
215
215
  "class": bem("slider-content"),
216
216
  "style": contentStyle.value
217
- }, [(_b = slots.default) == null ? void 0 : _b.call(slots)])]), [[import_vue.vShow, props.show]]);
217
+ }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]), [[import_vue.vShow, props.show]]);
218
218
  });
219
219
  const renderTransition = () => {
220
220
  const {
@@ -50,8 +50,8 @@ export declare const radioPickerProps: {
50
50
  confirmButtonText: StringConstructor;
51
51
  } & {
52
52
  columns: {
53
- type: PropType<(PickerColumn | RadioPickerOption)[]>;
54
- default: () => (PickerColumn | RadioPickerOption)[];
53
+ type: PropType<(RadioPickerOption | PickerColumn)[]>;
54
+ default: () => (RadioPickerOption | PickerColumn)[];
55
55
  };
56
56
  modelValue: {
57
57
  type: PropType<Numeric[]>;
@@ -103,8 +103,8 @@ declare const _default: import("vue").DefineComponent<{
103
103
  confirmButtonText: StringConstructor;
104
104
  } & {
105
105
  columns: {
106
- type: PropType<(PickerColumn | RadioPickerOption)[]>;
107
- default: () => (PickerColumn | RadioPickerOption)[];
106
+ type: PropType<(RadioPickerOption | PickerColumn)[]>;
107
+ default: () => (RadioPickerOption | PickerColumn)[];
108
108
  };
109
109
  modelValue: {
110
110
  type: PropType<Numeric[]>;
@@ -129,7 +129,7 @@ declare const _default: import("vue").DefineComponent<{
129
129
  type: PropType<string>;
130
130
  default: string;
131
131
  };
132
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption")[], "update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
132
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker")[], "update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
133
133
  loading: BooleanConstructor;
134
134
  readonly: BooleanConstructor;
135
135
  allowHtml: BooleanConstructor;
@@ -154,8 +154,8 @@ declare const _default: import("vue").DefineComponent<{
154
154
  confirmButtonText: StringConstructor;
155
155
  } & {
156
156
  columns: {
157
- type: PropType<(PickerColumn | RadioPickerOption)[]>;
158
- default: () => (PickerColumn | RadioPickerOption)[];
157
+ type: PropType<(RadioPickerOption | PickerColumn)[]>;
158
+ default: () => (RadioPickerOption | PickerColumn)[];
159
159
  };
160
160
  modelValue: {
161
161
  type: PropType<Numeric[]>;
@@ -185,8 +185,8 @@ declare const _default: import("vue").DefineComponent<{
185
185
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
186
186
  onCancel?: ((...args: any[]) => any) | undefined;
187
187
  onConfirm?: ((...args: any[]) => any) | undefined;
188
- "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
189
188
  onClickOption?: ((...args: any[]) => any) | undefined;
189
+ "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
190
190
  }, {
191
191
  title: string;
192
192
  modelValue: Numeric[];
@@ -194,12 +194,12 @@ declare const _default: import("vue").DefineComponent<{
194
194
  popup: boolean;
195
195
  loading: boolean;
196
196
  showTitle: boolean;
197
- columns: (PickerColumn | RadioPickerOption)[];
197
+ columns: (RadioPickerOption | PickerColumn)[];
198
198
  allowHtml: boolean;
199
+ wrapHeight: string | number;
199
200
  swipeDuration: string | number;
200
- showPicker: boolean;
201
201
  showToolbar: boolean;
202
- wrapHeight: string | number;
202
+ showPicker: boolean;
203
203
  searchable: boolean;
204
204
  autoSearch: boolean;
205
205
  searchPlaceholder: string;
@@ -24,8 +24,8 @@ export declare const RadioPicker: import("../utils").WithInstall<import("vue").D
24
24
  confirmButtonText: StringConstructor;
25
25
  } & {
26
26
  columns: {
27
- type: import("vue").PropType<(import("./types").PickerColumn | import("./types").RadioPickerOption)[]>;
28
- default: () => (import("./types").PickerColumn | import("./types").RadioPickerOption)[];
27
+ type: import("vue").PropType<(import("./types").RadioPickerOption | import("./types").PickerColumn)[]>;
28
+ default: () => (import("./types").RadioPickerOption | import("./types").PickerColumn)[];
29
29
  };
30
30
  modelValue: {
31
31
  type: import("vue").PropType<import("../utils").Numeric[]>;
@@ -50,7 +50,7 @@ export declare const RadioPicker: import("../utils").WithInstall<import("vue").D
50
50
  type: import("vue").PropType<string>;
51
51
  default: string;
52
52
  };
53
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption")[], "update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
53
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker")[], "update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
54
54
  loading: BooleanConstructor;
55
55
  readonly: BooleanConstructor;
56
56
  allowHtml: BooleanConstructor;
@@ -75,8 +75,8 @@ export declare const RadioPicker: import("../utils").WithInstall<import("vue").D
75
75
  confirmButtonText: StringConstructor;
76
76
  } & {
77
77
  columns: {
78
- type: import("vue").PropType<(import("./types").PickerColumn | import("./types").RadioPickerOption)[]>;
79
- default: () => (import("./types").PickerColumn | import("./types").RadioPickerOption)[];
78
+ type: import("vue").PropType<(import("./types").RadioPickerOption | import("./types").PickerColumn)[]>;
79
+ default: () => (import("./types").RadioPickerOption | import("./types").PickerColumn)[];
80
80
  };
81
81
  modelValue: {
82
82
  type: import("vue").PropType<import("../utils").Numeric[]>;
@@ -106,8 +106,8 @@ export declare const RadioPicker: import("../utils").WithInstall<import("vue").D
106
106
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
107
107
  onCancel?: ((...args: any[]) => any) | undefined;
108
108
  onConfirm?: ((...args: any[]) => any) | undefined;
109
- "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
110
109
  onClickOption?: ((...args: any[]) => any) | undefined;
110
+ "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
111
111
  }, {
112
112
  title: string;
113
113
  modelValue: import("../utils").Numeric[];
@@ -115,12 +115,12 @@ export declare const RadioPicker: import("../utils").WithInstall<import("vue").D
115
115
  popup: boolean;
116
116
  loading: boolean;
117
117
  showTitle: boolean;
118
- columns: (import("./types").PickerColumn | import("./types").RadioPickerOption)[];
118
+ columns: (import("./types").RadioPickerOption | import("./types").PickerColumn)[];
119
119
  allowHtml: boolean;
120
+ wrapHeight: string | number;
120
121
  swipeDuration: string | number;
121
- showPicker: boolean;
122
122
  showToolbar: boolean;
123
- wrapHeight: string | number;
123
+ showPicker: boolean;
124
124
  searchable: boolean;
125
125
  autoSearch: boolean;
126
126
  searchPlaceholder: string;
@@ -10,7 +10,7 @@ require("../../cell/index.css");
10
10
  require("../../field/index.css");
11
11
  require("../../search/index.css");
12
12
  require("../../checkbox/index.css");
13
- require("../../empty/index.css");
14
13
  require("../../radio-group/index.css");
15
14
  require("../../radio/index.css");
15
+ require("../../empty/index.css");
16
16
  require("../index.css");
@@ -1 +1 @@
1
- :root{--zt-skeleton-row-height: 16px;--zt-skeleton-row-background: var(--zt-active-color);--zt-skeleton-row-margin-top: var(--zt-padding-sm);--zt-skeleton-title-width: 40%;--zt-skeleton-avatar-size: 32px;--zt-skeleton-avatar-background: var(--zt-active-color);--zt-skeleton-duration: 1.2s}.zt-skeleton{display:flex;padding:0 var(--zt-padding-md)}.zt-skeleton__avatar{flex-shrink:0;width:var(--zt-skeleton-avatar-size);height:var(--zt-skeleton-avatar-size);margin-right:var(--zt-padding-md);background:var(--zt-skeleton-avatar-background)}.zt-skeleton__avatar--round{border-radius:var(--zt-radius-max)}.zt-skeleton__content{width:100%}.zt-skeleton__avatar+.zt-skeleton__content{padding-top:var(--zt-padding-xs)}.zt-skeleton__row,.zt-skeleton__textarea,.zt-skeleton__title{height:var(--zt-skeleton-row-height);background:var(--zt-skeleton-row-background)}.zt-skeleton__title{width:var(--zt-skeleton-title-width);margin:0}.zt-skeleton__textarea{margin-top:10px}.zt-skeleton__row:not(:first-child){margin-top:var(--zt-skeleton-row-margin-top)}.zt-skeleton__title+.zt-skeleton__row{margin-top:20px}.zt-skeleton--animate{animation:zt-skeleton-blink var(--zt-skeleton-duration) ease-in-out infinite}.zt-skeleton--round .zt-skeleton__row,.zt-skeleton--round .zt-skeleton__title{border-radius:var(--zt-radius-max)}.zt-skeleton__field{width:100%;display:flex;justify-content:space-between}.zt-skeleton__field:not(:first-child){margin-top:16px}.zt-skeleton__field-title,.zt-skeleton__field-value{height:var(--zt-skeleton-row-height);background:var(--zt-skeleton-row-background)}@keyframes zt-skeleton-blink{50%{opacity:.6}}
1
+ :root{--zt-skeleton-row-height: 16px;--zt-skeleton-row-background: var(--zt-gray-a1);--zt-skeleton-row-margin-top: var(--zt-padding-sm);--zt-skeleton-title-width: 40%;--zt-skeleton-avatar-size: 32px;--zt-skeleton-avatar-background: var(--zt-gray-a1);--zt-skeleton-duration: 1.2s}.zt-skeleton{display:flex;padding:0 var(--zt-padding-md)}.zt-skeleton__avatar{flex-shrink:0;width:var(--zt-skeleton-avatar-size);height:var(--zt-skeleton-avatar-size);margin-right:var(--zt-padding-md);background:var(--zt-skeleton-avatar-background)}.zt-skeleton__avatar--round{border-radius:var(--zt-radius-max)}.zt-skeleton__content{width:100%}.zt-skeleton__avatar+.zt-skeleton__content{padding-top:var(--zt-padding-xs)}.zt-skeleton__row,.zt-skeleton__textarea,.zt-skeleton__title{height:var(--zt-skeleton-row-height);background:var(--zt-skeleton-row-background)}.zt-skeleton__title{width:var(--zt-skeleton-title-width);margin:0}.zt-skeleton__textarea{margin-top:10px}.zt-skeleton__row:not(:first-child){margin-top:var(--zt-skeleton-row-margin-top)}.zt-skeleton__title+.zt-skeleton__row{margin-top:20px}.zt-skeleton--animate{animation:zt-skeleton-blink var(--zt-skeleton-duration) ease-in-out infinite}.zt-skeleton--round .zt-skeleton__row,.zt-skeleton--round .zt-skeleton__title{border-radius:var(--zt-radius-max)}.zt-skeleton__field{width:100%;display:flex;justify-content:space-between}.zt-skeleton__field:not(:first-child){margin-top:16px}.zt-skeleton__field-title,.zt-skeleton__field-value{height:var(--zt-skeleton-row-height);background:var(--zt-skeleton-row-background)}@keyframes zt-skeleton-blink{50%{opacity:.6}}
@@ -0,0 +1,139 @@
1
+ import { type PropType, type ExtractPropTypes } from 'vue';
2
+ type NumberRange = [number, number];
3
+ type SliderValue = number | NumberRange;
4
+ export type SliderDirection = 'horizontal' | 'vertical';
5
+ export declare const sliderProps: {
6
+ min: {
7
+ type: (NumberConstructor | StringConstructor)[];
8
+ default: number;
9
+ };
10
+ max: {
11
+ type: (NumberConstructor | StringConstructor)[];
12
+ default: number;
13
+ };
14
+ step: {
15
+ type: (NumberConstructor | StringConstructor)[];
16
+ default: number;
17
+ };
18
+ range: BooleanConstructor;
19
+ reverse: BooleanConstructor;
20
+ disabled: BooleanConstructor;
21
+ readonly: {
22
+ type: BooleanConstructor;
23
+ default: true;
24
+ };
25
+ vertical: BooleanConstructor;
26
+ barHeight: (NumberConstructor | StringConstructor)[];
27
+ buttonSize: (NumberConstructor | StringConstructor)[];
28
+ activeColor: StringConstructor;
29
+ inactiveColor: StringConstructor;
30
+ modelValue: {
31
+ type: PropType<SliderValue>;
32
+ default: number;
33
+ };
34
+ title: StringConstructor;
35
+ direction: {
36
+ type: PropType<SliderDirection>;
37
+ default: SliderDirection;
38
+ };
39
+ showPercent: {
40
+ type: BooleanConstructor;
41
+ default: true;
42
+ };
43
+ };
44
+ export type SliderProps = ExtractPropTypes<typeof sliderProps>;
45
+ declare const _default: import("vue").DefineComponent<{
46
+ min: {
47
+ type: (NumberConstructor | StringConstructor)[];
48
+ default: number;
49
+ };
50
+ max: {
51
+ type: (NumberConstructor | StringConstructor)[];
52
+ default: number;
53
+ };
54
+ step: {
55
+ type: (NumberConstructor | StringConstructor)[];
56
+ default: number;
57
+ };
58
+ range: BooleanConstructor;
59
+ reverse: BooleanConstructor;
60
+ disabled: BooleanConstructor;
61
+ readonly: {
62
+ type: BooleanConstructor;
63
+ default: true;
64
+ };
65
+ vertical: BooleanConstructor;
66
+ barHeight: (NumberConstructor | StringConstructor)[];
67
+ buttonSize: (NumberConstructor | StringConstructor)[];
68
+ activeColor: StringConstructor;
69
+ inactiveColor: StringConstructor;
70
+ modelValue: {
71
+ type: PropType<SliderValue>;
72
+ default: number;
73
+ };
74
+ title: StringConstructor;
75
+ direction: {
76
+ type: PropType<SliderDirection>;
77
+ default: SliderDirection;
78
+ };
79
+ showPercent: {
80
+ type: BooleanConstructor;
81
+ default: true;
82
+ };
83
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "dragStart" | "dragEnd")[], "update:modelValue" | "change" | "dragStart" | "dragEnd", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
84
+ min: {
85
+ type: (NumberConstructor | StringConstructor)[];
86
+ default: number;
87
+ };
88
+ max: {
89
+ type: (NumberConstructor | StringConstructor)[];
90
+ default: number;
91
+ };
92
+ step: {
93
+ type: (NumberConstructor | StringConstructor)[];
94
+ default: number;
95
+ };
96
+ range: BooleanConstructor;
97
+ reverse: BooleanConstructor;
98
+ disabled: BooleanConstructor;
99
+ readonly: {
100
+ type: BooleanConstructor;
101
+ default: true;
102
+ };
103
+ vertical: BooleanConstructor;
104
+ barHeight: (NumberConstructor | StringConstructor)[];
105
+ buttonSize: (NumberConstructor | StringConstructor)[];
106
+ activeColor: StringConstructor;
107
+ inactiveColor: StringConstructor;
108
+ modelValue: {
109
+ type: PropType<SliderValue>;
110
+ default: number;
111
+ };
112
+ title: StringConstructor;
113
+ direction: {
114
+ type: PropType<SliderDirection>;
115
+ default: SliderDirection;
116
+ };
117
+ showPercent: {
118
+ type: BooleanConstructor;
119
+ default: true;
120
+ };
121
+ }>> & {
122
+ onChange?: ((...args: any[]) => any) | undefined;
123
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
124
+ onDragStart?: ((...args: any[]) => any) | undefined;
125
+ onDragEnd?: ((...args: any[]) => any) | undefined;
126
+ }, {
127
+ reverse: boolean;
128
+ range: boolean;
129
+ max: string | number;
130
+ disabled: boolean;
131
+ vertical: boolean;
132
+ direction: SliderDirection;
133
+ modelValue: SliderValue;
134
+ readonly: boolean;
135
+ step: string | number;
136
+ min: string | number;
137
+ showPercent: boolean;
138
+ }, {}>;
139
+ export default _default;