ep-craft 0.1.26 → 0.1.28

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 (87) hide show
  1. package/dist/components/date-picker/src/date-picker.js +38 -34
  2. package/dist/components/date-picker/src/props.js +19 -7
  3. package/dist/components/form/EpForm.vue.d.ts +61 -0
  4. package/dist/components/form/EpForm.vue.js +199 -0
  5. package/dist/components/form/EpForm2.vue.js +4 -0
  6. package/dist/components/form/index.d.ts +12 -2
  7. package/dist/components/form/index.js +9 -3
  8. package/dist/components/form/instance.d.ts +2 -0
  9. package/dist/components/form/src/form-item.d.ts +103 -0
  10. package/dist/components/form/src/form-item.js +91 -0
  11. package/dist/components/form/src/form-label-wrap.d.ts +11 -0
  12. package/dist/components/form/src/form-label-wrap.js +74 -0
  13. package/dist/components/form/src/form.d.ts +127 -0
  14. package/dist/components/form/src/form.js +112 -0
  15. package/dist/components/form/src/types.d.ts +48 -19
  16. package/dist/components/form/src/utils.d.ts +9 -0
  17. package/dist/components/form/src/utils.js +45 -0
  18. package/dist/components/form-item/EpFormItem.vue.d.ts +55 -0
  19. package/dist/components/form-item/EpFormItem.vue.js +257 -0
  20. package/dist/components/form-item/EpFormItem2.vue.js +4 -0
  21. package/dist/components/form-item/index.d.ts +5 -2
  22. package/dist/components/form-item/index.js +5 -3
  23. package/dist/components/form-item/instance.d.ts +2 -0
  24. package/dist/components/scrollbar/index.d.ts +1 -0
  25. package/dist/components/scrollbar/src/util.d.ts +40 -0
  26. package/dist/components/scrollbar/src/util.js +25 -0
  27. package/dist/components/select/select.vue.d.ts +9 -9
  28. package/dist/components/select/src/useSelect.d.ts +3 -3
  29. package/dist/components/select-v2/index.d.ts +6 -2
  30. package/dist/components/select-v2/index.js +7 -4
  31. package/dist/components/select-v2/src/defaults.d.ts +258 -0
  32. package/dist/components/select-v2/src/defaults.js +359 -0
  33. package/dist/components/select-v2/src/group-item.vue.d.ts +40 -0
  34. package/dist/components/select-v2/src/group-item.vue.js +13 -0
  35. package/dist/components/select-v2/src/group-item2.vue.js +33 -0
  36. package/dist/components/select-v2/src/option-item.vue.d.ts +66 -0
  37. package/dist/components/select-v2/src/option-item.vue.js +37 -0
  38. package/dist/components/select-v2/src/option-item2.vue.js +46 -0
  39. package/dist/components/select-v2/src/select-dropdown.d.ts +53 -0
  40. package/dist/components/select-v2/src/select-dropdown.js +209 -0
  41. package/dist/components/select-v2/src/select.types.d.ts +2 -1
  42. package/dist/components/select-v2/src/select.vue.d.ts +918 -0
  43. package/dist/components/select-v2/src/select.vue.js +388 -0
  44. package/dist/components/select-v2/src/select2.vue.js +86 -0
  45. package/dist/components/select-v2/src/token.d.ts +16 -0
  46. package/dist/components/select-v2/src/token.js +6 -0
  47. package/dist/components/select-v2/src/useAllowCreate.d.ts +8 -0
  48. package/dist/components/select-v2/src/useAllowCreate.js +64 -0
  49. package/dist/components/select-v2/src/useOption.d.ts +7 -0
  50. package/dist/components/select-v2/src/useOption.js +13 -0
  51. package/dist/components/select-v2/src/useProps.d.ts +2 -3
  52. package/dist/components/select-v2/src/useSelect.d.ts +129 -0
  53. package/dist/components/select-v2/src/useSelect.js +501 -0
  54. package/dist/components/time-picker/index.js +10 -11
  55. package/dist/components/time-picker/src/common/picker.vue.d.ts +131 -125
  56. package/dist/components/time-picker/src/common/picker.vue.js +163 -160
  57. package/dist/components/time-picker/src/common/props.d.ts +0 -1
  58. package/dist/components/time-picker/src/common/props.js +13 -14
  59. package/dist/components/time-picker/src/time-picker.d.ts +0 -3
  60. package/dist/components/virtual-list/index.d.ts +8 -0
  61. package/dist/components/virtual-list/src/builders/build-list.d.ts +187 -0
  62. package/dist/components/virtual-list/src/builders/build-list.js +363 -0
  63. package/dist/components/virtual-list/src/components/dynamic-size-list.d.ts +186 -0
  64. package/dist/components/virtual-list/src/components/dynamic-size-list.js +112 -0
  65. package/dist/components/virtual-list/src/components/fixed-size-list.d.ts +185 -0
  66. package/dist/components/virtual-list/src/components/fixed-size-list.js +68 -0
  67. package/dist/components/virtual-list/src/components/scrollbar.d.ts +79 -0
  68. package/dist/components/virtual-list/src/components/scrollbar.js +134 -0
  69. package/dist/components/virtual-list/src/defaults.d.ts +27 -0
  70. package/dist/components/virtual-list/src/defaults.js +26 -0
  71. package/dist/components/virtual-list/src/hooks/use-cache.d.ts +1 -0
  72. package/dist/components/virtual-list/src/hooks/use-cache.js +13 -0
  73. package/dist/components/virtual-list/src/hooks/use-wheel.d.ts +13 -0
  74. package/dist/components/virtual-list/src/hooks/use-wheel.js +26 -0
  75. package/dist/components/virtual-list/src/props.d.ts +211 -0
  76. package/dist/components/virtual-list/src/props.js +151 -0
  77. package/dist/components/virtual-list/src/types.d.ts +152 -0
  78. package/dist/components/virtual-list/src/utils.d.ts +16 -0
  79. package/dist/components/virtual-list/src/utils.js +22 -0
  80. package/dist/hooks/use-float-label/index.d.ts +6 -2
  81. package/dist/hooks/use-float-label/index.js +11 -7
  82. package/dist/index.css +1 -1
  83. package/dist/utils/objects.js +11 -3
  84. package/dist/vendored-components.d.ts +1 -1
  85. package/dist/vendored-components.js +1 -0
  86. package/package.json +3 -1
  87. package/theme-chalk/src/float-label.scss +57 -0
@@ -1,7 +1,15 @@
1
- import "lodash-unified";
1
+ import { set as s, get as n } from "lodash-unified";
2
2
  import { hasOwn as p } from "@vue/shared";
3
- const t = (e) => Object.keys(e);
3
+ const c = (e) => Object.keys(e), f = (e, t, r) => ({
4
+ get value() {
5
+ return n(e, t, r);
6
+ },
7
+ set value(o) {
8
+ s(e, t, o);
9
+ }
10
+ });
4
11
  export {
12
+ f as getProp,
5
13
  p as hasOwn,
6
- t as keysOf
14
+ c as keysOf
7
15
  };
@@ -11,6 +11,6 @@
11
11
  * 2. 横切组件(icon/tooltip/collapse-transition/popper)由 vendor-cross-cutting
12
12
  * vendor 到本地,同样需跳过 gen 包装以免被覆盖为 wrapper。
13
13
  */
14
- export declare const vendoredComponents: readonly ["Affix", "Alert", "Anchor", "AnchorLink", "Button", "CheckTag", "Tag", "Menu", "MenuItem", "MenuItemGroup", "SubMenu", "Tabs", "TabPane", "Radio", "RadioButton", "RadioGroup", "Input", "Option", "OptionGroup", "Select", "DatePicker", "DatePickerPanel", "TimePicker", "CollapseTransition", "Form", "Icon", "Popper", "Tooltip", "Scrollbar"];
14
+ export declare const vendoredComponents: readonly ["Affix", "Alert", "Anchor", "AnchorLink", "Button", "CheckTag", "Tag", "Menu", "MenuItem", "MenuItemGroup", "SubMenu", "Tabs", "TabPane", "Radio", "RadioButton", "RadioGroup", "Input", "Option", "OptionGroup", "Select", "SelectV2", "DatePicker", "DatePickerPanel", "TimePicker", "CollapseTransition", "Form", "Icon", "Popper", "Tooltip", "Scrollbar"];
15
15
  export type VendoredComponentName = (typeof vendoredComponents)[number];
16
16
  export declare const isVendored: (name: string) => boolean;
@@ -19,6 +19,7 @@ const o = [
19
19
  "Option",
20
20
  "OptionGroup",
21
21
  "Select",
22
+ "SelectV2",
22
23
  "DatePicker",
23
24
  "DatePickerPanel",
24
25
  "TimePicker",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ep-craft",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "A Vue 3 component library based on element-plus with ep- prefix",
5
5
  "type": "module",
6
6
  "main": "./dist/ep-craft.js",
@@ -65,10 +65,12 @@
65
65
  "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.8",
66
66
  "@vue/shared": "^3.5.40",
67
67
  "@vueuse/core": "14.3.0",
68
+ "async-validator": "^4.2.5",
68
69
  "csstype": "^3.2.3",
69
70
  "dayjs": "^1.11.20",
70
71
  "element-plus": "^2.9.0",
71
72
  "lodash-unified": "^1.0.3",
73
+ "memoize-one": "^6.0.0",
72
74
  "normalize-wheel-es": "^1.2.0",
73
75
  "vue-component-type-helpers": "^3.3.5"
74
76
  },
@@ -50,6 +50,12 @@ $float-label-scale: 0.75 !default;
50
50
  margin-left: -4px;
51
51
  background-color: getCssVar('fill-color', 'blank');
52
52
  }
53
+
54
+ // 休息态且有值(仅禁用/只读 + 有值可达,见 useFloatLabel):label 与内容文本同位重叠,隐藏之。
55
+ // 用 opacity 而非 display,使禁用态被清空/赋值时仍有淡入淡出,不产生跳变。
56
+ &.is-hidden {
57
+ opacity: 0;
58
+ }
53
59
  }
54
60
 
55
61
  // input(非 textarea):label 位于 wrapper 内,需将 wrapper 设为定位上下文
@@ -98,6 +104,57 @@ $float-label-scale: 0.75 !default;
98
104
  }
99
105
  }
100
106
 
107
+ // input 有 prefix(图标或自定义前缀)时,输入文本起点被右移,label 必须同步右移,否则会压在图标上。
108
+ // 文本起点 = wrapper 水平内边距 + 图标宽 + 图标右间距:
109
+ // - wrapper 水平内边距:$input-padding-horizontal - $border-width(12-1 / 16-1 / 8-1)
110
+ // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit }),随尺寸档位为 14px / 12px
111
+ // - 图标右间距:8px(.el-input__prefix-inner > :last-child { margin-right: 8px })
112
+ // label 自身 font-size 与 .el-input 根一致(default/large 14px、small 12px),故 1em 自动跟随
113
+ // 图标宽度与尺寸档位;三档尺寸仅需替换内边距基数。
114
+ //
115
+ // 作用域限定为「.el-input__wrapper 内的 label」,即 EpInput 自绘的浮标。date-picker 单值形态的
116
+ // 浮标是经 EpInput 默认插槽注入到 .el-input 根的直接子节点(不在 wrapper 内),由下文
117
+ // .el-date-editor 规则单独处理,两者互不干扰——请勿把选择器放宽为 `.el-input--prefix .el-float-label`。
118
+ //
119
+ // 注意:本规则特异性为 (0,3,0),高于上文 .el-input--large/.el-input--small 的 (0,2,0),
120
+ // 故三档尺寸必须各自成条,不能合并为一条通用规则(否则 large/small 的内边距基数会被覆盖)。
121
+ //
122
+ // 局限:仅按「一个图标宽 + 8px」估算。prefix 插槽若塞入非图标内容(如自定义文本/多图标),
123
+ // 实际宽度不同,label 仍可能偏左;此场景需使用方自行覆盖 left。
124
+ .#{$namespace}-input--prefix
125
+ > .#{$namespace}-input__wrapper
126
+ > .#{$namespace}-float-label {
127
+ left: calc(
128
+ #{map.get($input-padding-horizontal, 'default') - $border-width} + 1em + 8px
129
+ );
130
+ max-width: calc(
131
+ 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} - 1em -
132
+ 8px
133
+ );
134
+ }
135
+
136
+ .#{$namespace}-input--large.#{$namespace}-input--prefix
137
+ > .#{$namespace}-input__wrapper
138
+ > .#{$namespace}-float-label {
139
+ left: calc(
140
+ #{map.get($input-padding-horizontal, 'large') - $border-width} + 1em + 8px
141
+ );
142
+ max-width: calc(
143
+ 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} - 1em - 8px
144
+ );
145
+ }
146
+
147
+ .#{$namespace}-input--small.#{$namespace}-input--prefix
148
+ > .#{$namespace}-input__wrapper
149
+ > .#{$namespace}-float-label {
150
+ left: calc(
151
+ #{map.get($input-padding-horizontal, 'small') - $border-width} + 1em + 8px
152
+ );
153
+ max-width: calc(
154
+ 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} - 1em - 8px
155
+ );
156
+ }
157
+
101
158
  // 尺寸适配:select 的水平对齐
102
159
  .#{$namespace}-select--large {
103
160
  .#{$namespace}-float-label {