@vue-ui-kit/ant 2.4.2 → 2.4.4

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 (32) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/index.js +5 -5
  3. package/dist/es/index.js +11094 -12211
  4. package/dist/index.d.ts +3080 -23
  5. package/dist/style.css +419 -1
  6. package/dist/style.scss +22 -1
  7. package/package.json +8 -8
  8. package/src/declarations/antProxy.ts +21 -6
  9. package/src/index.ts +1 -0
  10. package/src/packages/components/PGrid.vue +201 -98
  11. package/src/packages/components/RenderAntCell.tsx +29 -29
  12. package/src/packages/components/RenderDefaultSlots.tsx +6 -2
  13. package/src/packages/store/renderStore.tsx +1 -1
  14. package/src/packages/styles/index.scss +22 -1
  15. package/src/packages/utils/autoViewportBox.ts +156 -0
  16. package/src/packages/utils/config.ts +109 -105
  17. package/dist/declarations/antProxy.d.ts +0 -373
  18. package/dist/declarations/type.d.ts +0 -1
  19. package/dist/packages/components/RenderAntCell.d.ts +0 -28
  20. package/dist/packages/components/RenderAntItem.d.ts +0 -18
  21. package/dist/packages/components/RenderDefaultSlots.d.ts +0 -34
  22. package/dist/packages/components/RenderEditCell.d.ts +0 -25
  23. package/dist/packages/components/RenderItemSlots.d.ts +0 -25
  24. package/dist/packages/components/RenderTitleSlots.d.ts +0 -16
  25. package/dist/packages/hooks/useMessage.d.ts +0 -8
  26. package/dist/packages/renders/Icon.d.ts +0 -4
  27. package/dist/packages/store/renderStore.d.ts +0 -16
  28. package/dist/packages/utils/AFormatters.d.ts +0 -9
  29. package/dist/packages/utils/config.d.ts +0 -30
  30. package/dist/packages/utils/core.d.ts +0 -10
  31. package/dist/packages/utils/is.d.ts +0 -4
  32. package/dist/packages/utils/treeHelper.d.ts +0 -19
package/dist/style.css CHANGED
@@ -1 +1,419 @@
1
- @charset "UTF-8";.p-pane{background-color:var(--p-theme-bg, #fff);padding:16px;border-radius:4px}.text-slate-5{color:#64748b}.w-full{width:100%}.cursor-pointer{cursor:pointer}.py-4x{padding-top:4px;padding-bottom:4px}.px-2x{padding-left:2px;padding-right:2px}.pl-4x{padding-left:1em}.pl-8{padding-left:2em}.h-0{height:0}.h-full{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4px{gap:4px}.gap-8px{gap:8px}.pt-8px{padding-top:8px}.px-16px{padding-left:16px;padding-right:16px}.mt-4px{margin-top:4px}.text-right{text-align:right}.overflow-y-auto{overflow-y:auto}.p-theme-bg{background-color:var(--p-theme-bg, #fff)}.p-wrapper .p-form-wrapper{z-index:4}.p-wrapper .p-canvas-pagination.ant-pagination{padding:16px 0}.p-wrapper .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper{border-color:var(--p-border-color, #d9d9d9)!important}.p-wrapper .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:var(--p-primary-color, #4096ff)!important}.p-wrapper .p-error-hang-out .ant-form-item-explain-error{opacity:0!important;transform:translateY(-10px)!important;max-height:0!important;overflow:hidden!important;transition:none!important}.p-wrapper .ant-form-item-explain-error{opacity:0;transform:translateY(-10px);max-height:0;overflow:hidden;transition:opacity .3s ease-out .3s,transform .3s ease-out .3s,max-height .3s ease-out .3s}.p-wrapper .ant-form-item-has-error .ant-form-item-explain-error{opacity:1;transform:translateY(0);max-height:100px}.p-wrapper .p-toolbar-wrapper{box-shadow:0 8px var(--p-bg-color, #fff);border-radius:.5em .5em 0 0;margin-bottom:-.5em}.p-wrapper .p-canvas-toolbar-wrapper{box-shadow:0 8px var(--p-bg-color, #fff);border-radius:.5em .5em 0 0}.p-wrapper .ant-form .ant-form-item{margin-bottom:0}.p-wrapper .ant-form .ant-form-item.p-required .ant-form-item-label>label:before{display:inline-block;margin-inline-end:4px;color:var(--p-danger-color, #ff4d4f);font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.p-wrapper .ant-form .ant-form-item .ant-form-item-label{display:flex;align-items:start;justify-content:flex-end}.p-wrapper .ant-form .ant-form-item .ant-form-item-label>label{white-space:break-spaces;align-items:flex-start;height:fit-content;padding-top:.36em}.p-wrapper .ant-form .ant-form-item .ant-form-item-label>label:after{padding-left:4px;margin-inline-start:unset}.p-wrapper .ant-form.ant-form-vertical .ant-form-item .ant-form-item-label{justify-content:flex-start;font-weight:600}.p-wrapper .ant-table-wrapper .ant-table,.p-wrapper .ant-table-wrapper .ant-table td.ant-table-cell{background-color:var(--p-table-row-bg-color, #fff)}.p-wrapper .ant-table-wrapper .ant-table-tbody>tr>td.ant-table-cell-row-hover{background-color:var(--p-table-row-hover-bg-color, #e6e7ea)}.p-wrapper .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:unset;padding:16px 0}.p-wrapper .ant-table-wrapper tr.p-grid-row-striped{background-color:var(--p-striped-bg-color, #f2f3f6)}.p-wrapper .ant-table-wrapper tr.p-grid-row-striped>td.ant-table-cell{background-color:var(--p-striped-bg-color, #e6e7ea)}.p-wrapper .ant-table-wrapper tr.p-grid-row-striped>td.ant-table-cell.ant-table-cell-row-hover{background-color:var(--p-table-row-hover-bg-color, #e6e7ea)}.p-wrapper .ant-table-wrapper .ant-table-thead>tr>th{background-color:var(--p-table-thead-bg-color, #f2f3f6)}.p-wrapper .ant-table-sticky-scroll{visibility:hidden}.p-wrapper .ant-table-header.ant-table-sticky-holder:before{content:"";width:100%;position:absolute;height:22px;display:block;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);top:-16px}.p-wrapper .ant-table-wrapper .ant-pagination{gap:8px}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-prev,.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-next{border:1px solid var(--p-pagination-border-color, #bbbdbf)}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-total-text{margin-inline-end:0;padding-inline-end:8px}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item{border:1px solid var(--p-pagination-border-color, transparent)}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active){background-color:var(--p-pagination-bg-color, #fff)}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active)>a{color:var(--p-pagination-color, #323335)}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active):hover{background-color:var(--p-pagination-hover-bg-color, rgba(0, 0, 0, .0588235294))}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active):hover>a{color:var(--p-pagination-active-color, rgba(0, 0, 0, .8784313725))}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item.ant-pagination-item-active{background-color:var(--p-pagination-active-bg-color, #fff);border-color:var(--p-pagination-active-border-color, var(--p-primary-color, #4096ff))}.p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item.ant-pagination-item-active>a{color:var(--p-pagination-active-color, var(--p-primary-color, #4096ff))}.p-wrapper .h-lack .ant-table-wrapper .ant-table-pagination.ant-pagination{padding:unset;margin-top:8px}.p-wrapper .p-inner-scroll>.ant-table-wrapper{height:100%}.p-wrapper .p-inner-scroll>.ant-table-wrapper>.ant-spin-nested-loading{height:100%}.p-wrapper .p-inner-scroll>.ant-table-wrapper>.ant-spin-nested-loading>.ant-spin-container{height:100%;display:flex;flex-direction:column}.p-wrapper .p-inner-scroll>.ant-table-wrapper>.ant-spin-nested-loading>.ant-spin-container>.ant-table{flex:1;height:0;overflow-y:hidden;border-radius:unset}.p-wrapper .p-inner-scroll>.ant-table-wrapper>.ant-spin-nested-loading>.ant-spin-container>.ant-table>.ant-table-container>.ant-table-body{position:relative}.p-wrapper .ant-pagination-options .ant-select{width:100px}.p-wrapper .ant-table-cell:not(.normal-break){word-break:break-all}.p-error-group-tab{position:relative;overflow:visible;color:var(--p-danger-color, #f5222d)!important}.p-error-group-tab:after{content:"🏷️";position:absolute;top:-1em;right:0;width:1em;height:1em;font-size:.8em;animation:heartbeat 2s infinite}.ant-picker-dropdown .ant-picker-footer{padding-left:4px}.p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper{border-color:var(--p-border-color, #d9d9d9)!important}.p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:var(--p-primary-color, #4096ff)!important}.p-error-hang-out .ant-form-item-explain-error{display:none}.no-error-border{border-color:var(--p-border-color, #d9d9d9)!important}.no-error-border:focus{border-color:var(--p-primary-color, #4096ff)!important}@media (max-width: 575px){.p-wrapper .ant-form .ant-form-item .ant-form-item-label{justify-content:flex-start}}.collapsible-card{background-color:var(--p-bg-color, #fff);border-color:var(--p-border-light-color, #f0f0f0)}.collapsible-card .ant-collapse-header{padding:0 12px;min-height:38px;display:flex;align-items:center;font-weight:600}.collapsible-card .ant-collapse-content{border-color:var(--p-border-light-color, #f0f0f0)}.collapsible-card .ant-collapse-content .ant-collapse-content-box{padding:var(--collapsible-card-body-padding, 12px)}.collapsible-card .ant-collapse-item{border-color:var(--p-border-light-color, #f0f0f0)}.canvas-cell{display:flex;flex-direction:column;justify-content:center;align-items:start;padding:0 8px}.p-content-align-right.ant-form-item .ant-form-item-control-input-content{display:flex;justify-content:flex-end;align-items:center;text-align:right}.p-content-align-center.ant-form-item .ant-form-item-control-input-content{display:flex;justify-content:center;align-items:center;text-align:center}@keyframes heartbeat{0%{transform:scale(1)}6%{transform:scale(1.22)}12%{transform:scale(1)}18%{transform:scale(1.18)}24%{transform:scale(1)}48%{transform:scale(1)}54%{transform:scale(1.22)}60%{transform:scale(1)}66%{transform:scale(1.18)}72%{transform:scale(1)}to{transform:scale(1)}}
1
+ @charset "UTF-8";
2
+ .p-pane {
3
+ background-color: var(--p-theme-bg, #fff);
4
+ padding: 16px;
5
+ border-radius: 4px;
6
+ }
7
+
8
+ .text-slate-5 {
9
+ color: #64748b;
10
+ }
11
+
12
+ /* #region patch for env without unocss/tailwind/windicss */
13
+ .w-full {
14
+ width: 100%;
15
+ }
16
+
17
+ .cursor-pointer {
18
+ cursor: pointer;
19
+ }
20
+
21
+ .py-4x {
22
+ padding-top: 4px;
23
+ padding-bottom: 4px;
24
+ }
25
+
26
+ .px-2x {
27
+ padding-left: 2px;
28
+ padding-right: 2px;
29
+ }
30
+
31
+ .pl-4x {
32
+ padding-left: 1em;
33
+ }
34
+
35
+ .pl-8 {
36
+ padding-left: 2em;
37
+ }
38
+
39
+ .h-0 {
40
+ height: 0;
41
+ }
42
+
43
+ .h-full {
44
+ height: 100%;
45
+ }
46
+
47
+ .flex {
48
+ display: flex;
49
+ }
50
+
51
+ .flex-col {
52
+ flex-direction: column;
53
+ }
54
+
55
+ .flex-1 {
56
+ flex: 1;
57
+ }
58
+
59
+ .items-center {
60
+ align-items: center;
61
+ }
62
+
63
+ .justify-between {
64
+ justify-content: space-between;
65
+ }
66
+
67
+ .gap-4px {
68
+ gap: 4px;
69
+ }
70
+
71
+ .gap-8px {
72
+ gap: 8px;
73
+ }
74
+
75
+ .gap-12px {
76
+ gap: 12px;
77
+ }
78
+
79
+ .flex-shrink-0 {
80
+ flex-shrink: 0;
81
+ }
82
+
83
+ .min-w-0 {
84
+ min-width: 0;
85
+ }
86
+
87
+ .min-h-0 {
88
+ min-height: 0;
89
+ }
90
+
91
+ .pt-8px {
92
+ padding-top: 8px;
93
+ }
94
+
95
+ .px-16px {
96
+ padding-left: 16px;
97
+ padding-right: 16px;
98
+ }
99
+
100
+ .mt-4px {
101
+ margin-top: 4px;
102
+ }
103
+
104
+ .text-right {
105
+ text-align: right;
106
+ }
107
+
108
+ .overflow-y-auto {
109
+ overflow-y: auto;
110
+ }
111
+
112
+ .overflow-hidden {
113
+ overflow: hidden;
114
+ }
115
+
116
+ /* #endregion */
117
+ /* #region P family styles */
118
+ .p-theme-bg {
119
+ background-color: var(--p-theme-bg, #fff);
120
+ }
121
+
122
+ .p-wrapper .p-form-wrapper {
123
+ z-index: 4;
124
+ }
125
+ .p-wrapper .p-canvas-pagination.ant-pagination {
126
+ padding: 16px 0;
127
+ }
128
+ .p-wrapper .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper {
129
+ border-color: var(--p-border-color, #d9d9d9) !important;
130
+ }
131
+ .p-wrapper .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus {
132
+ border-color: var(--p-primary-color, #4096ff) !important;
133
+ }
134
+ .p-wrapper .p-error-hang-out .ant-form-item-explain-error {
135
+ opacity: 0 !important;
136
+ transform: translateY(-10px) !important;
137
+ max-height: 0 !important;
138
+ overflow: hidden !important;
139
+ transition: none !important;
140
+ }
141
+ .p-wrapper .ant-form-item-explain-error {
142
+ opacity: 0;
143
+ transform: translateY(-10px);
144
+ max-height: 0;
145
+ overflow: hidden;
146
+ transition: opacity 0.3s ease-out 0.3s, transform 0.3s ease-out 0.3s, max-height 0.3s ease-out 0.3s;
147
+ }
148
+ .p-wrapper .ant-form-item-has-error .ant-form-item-explain-error {
149
+ opacity: 1;
150
+ transform: translateY(0);
151
+ max-height: 100px;
152
+ }
153
+ .p-wrapper .p-toolbar-wrapper {
154
+ box-shadow: 0 8px var(--p-bg-color, #fff);
155
+ border-radius: 0.5em 0.5em 0 0;
156
+ margin-bottom: -0.5em;
157
+ }
158
+ .p-wrapper .p-canvas-toolbar-wrapper {
159
+ box-shadow: 0 8px var(--p-bg-color, #fff);
160
+ border-radius: 0.5em 0.5em 0 0;
161
+ }
162
+ .p-wrapper .ant-form .ant-form-item {
163
+ margin-bottom: 0;
164
+ }
165
+ .p-wrapper .ant-form .ant-form-item.p-required .ant-form-item-label > label:before {
166
+ display: inline-block;
167
+ margin-inline-end: 4px;
168
+ color: var(--p-danger-color, #ff4d4f);
169
+ font-size: 14px;
170
+ font-family: SimSun, sans-serif;
171
+ line-height: 1;
172
+ content: "*";
173
+ }
174
+ .p-wrapper .ant-form .ant-form-item .ant-form-item-label {
175
+ display: flex;
176
+ align-items: start;
177
+ justify-content: flex-end;
178
+ }
179
+ .p-wrapper .ant-form .ant-form-item .ant-form-item-label > label {
180
+ white-space: break-spaces;
181
+ align-items: flex-start;
182
+ height: fit-content;
183
+ padding-top: 0.36em;
184
+ }
185
+ .p-wrapper .ant-form .ant-form-item .ant-form-item-label > label:after {
186
+ padding-left: 4px;
187
+ margin-inline-start: unset;
188
+ }
189
+ .p-wrapper .ant-form.ant-form-vertical .ant-form-item .ant-form-item-label {
190
+ justify-content: flex-start;
191
+ font-weight: 600;
192
+ }
193
+ .p-wrapper .ant-table-wrapper .ant-table {
194
+ background-color: var(--p-table-row-bg-color, #fff);
195
+ }
196
+ .p-wrapper .ant-table-wrapper .ant-table td.ant-table-cell {
197
+ background-color: var(--p-table-row-bg-color, #fff);
198
+ }
199
+ .p-wrapper .ant-table-wrapper .ant-table-tbody > tr > td.ant-table-cell-row-hover {
200
+ background-color: var(--p-table-row-hover-bg-color, #e6e7ea);
201
+ }
202
+ .p-wrapper .ant-table-wrapper .ant-table-pagination.ant-pagination {
203
+ margin: unset;
204
+ padding: 16px 0;
205
+ }
206
+ .p-wrapper .ant-table-wrapper tr.p-grid-row-striped {
207
+ background-color: var(--p-striped-bg-color, #f2f3f6);
208
+ }
209
+ .p-wrapper .ant-table-wrapper tr.p-grid-row-striped > td.ant-table-cell {
210
+ background-color: var(--p-striped-bg-color, #e6e7ea);
211
+ }
212
+ .p-wrapper .ant-table-wrapper tr.p-grid-row-striped > td.ant-table-cell.ant-table-cell-row-hover {
213
+ background-color: var(--p-table-row-hover-bg-color, #e6e7ea);
214
+ }
215
+ .p-wrapper .ant-table-wrapper .ant-table-thead > tr > th {
216
+ background-color: var(--p-table-thead-bg-color, #f2f3f6);
217
+ }
218
+ .p-wrapper .ant-table-sticky-scroll {
219
+ visibility: hidden;
220
+ }
221
+ .p-wrapper .ant-table-header.ant-table-sticky-holder:before {
222
+ content: "";
223
+ width: 100%;
224
+ position: absolute;
225
+ height: 22px;
226
+ display: block;
227
+ backdrop-filter: blur(2px);
228
+ top: -16px;
229
+ }
230
+ .p-wrapper .ant-table-wrapper .ant-pagination {
231
+ gap: 8px;
232
+ }
233
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-prev,
234
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-next {
235
+ border: 1px solid var(--p-pagination-border-color, #bbbdbf);
236
+ }
237
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-total-text {
238
+ margin-inline-end: 0;
239
+ padding-inline-end: 8px;
240
+ }
241
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item {
242
+ border: 1px solid var(--p-pagination-border-color, transparent);
243
+ }
244
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active) {
245
+ background-color: var(--p-pagination-bg-color, #fff);
246
+ }
247
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active) > a {
248
+ color: var(--p-pagination-color, #323335);
249
+ }
250
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active):hover {
251
+ background-color: var(--p-pagination-hover-bg-color, rgba(0, 0, 0, 0.0588235294));
252
+ }
253
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item:not(.ant-pagination-item-active):hover > a {
254
+ color: var(--p-pagination-active-color, rgba(0, 0, 0, 0.8784313725));
255
+ }
256
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item.ant-pagination-item-active {
257
+ background-color: var(--p-pagination-active-bg-color, #fff);
258
+ border-color: var(--p-pagination-active-border-color, var(--p-primary-color, #4096ff));
259
+ }
260
+ .p-wrapper .ant-table-wrapper .ant-pagination .ant-pagination-item.ant-pagination-item-active > a {
261
+ color: var(--p-pagination-active-color, var(--p-primary-color, #4096ff));
262
+ }
263
+ .p-wrapper .h-lack .ant-table-wrapper .ant-table-pagination.ant-pagination {
264
+ padding: unset;
265
+ margin-top: 8px;
266
+ }
267
+ .p-wrapper .p-inner-scroll > .ant-table-wrapper, .p-wrapper .p-inner-scroll > .p-grid-table-body > .ant-table-wrapper {
268
+ height: 100%;
269
+ }
270
+ .p-wrapper .p-inner-scroll > .ant-table-wrapper > .ant-spin-nested-loading, .p-wrapper .p-inner-scroll > .p-grid-table-body > .ant-table-wrapper > .ant-spin-nested-loading {
271
+ height: 100%;
272
+ }
273
+ .p-wrapper .p-inner-scroll > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container, .p-wrapper .p-inner-scroll > .p-grid-table-body > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container {
274
+ height: 100%;
275
+ display: flex;
276
+ flex-direction: column;
277
+ }
278
+ .p-wrapper .p-inner-scroll > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container > .ant-table, .p-wrapper .p-inner-scroll > .p-grid-table-body > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container > .ant-table {
279
+ flex: 1;
280
+ height: 0;
281
+ overflow-y: hidden;
282
+ /*border-radius: unset; 修复模糊问题 according to https://stackoverflow.com/questions/49349337/chrome-text-blur-with-overflow-yscroll-and-fixed-height*/
283
+ border-radius: unset;
284
+ }
285
+ .p-wrapper .p-inner-scroll > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container > .ant-table > .ant-table-container > .ant-table-body, .p-wrapper .p-inner-scroll > .p-grid-table-body > .ant-table-wrapper > .ant-spin-nested-loading > .ant-spin-container > .ant-table > .ant-table-container > .ant-table-body {
286
+ position: relative;
287
+ }
288
+ .p-wrapper .ant-pagination-options .ant-select {
289
+ width: 100px;
290
+ }
291
+ .p-wrapper .ant-table-cell:not(.normal-break) {
292
+ word-break: break-all;
293
+ }
294
+
295
+ .p-error-group-tab {
296
+ position: relative;
297
+ overflow: visible;
298
+ color: var(--p-danger-color, #f5222d) !important;
299
+ }
300
+ .p-error-group-tab:after {
301
+ content: "🏷️";
302
+ position: absolute;
303
+ top: -1em;
304
+ right: 0;
305
+ width: 1em;
306
+ height: 1em;
307
+ font-size: 0.8em;
308
+ animation: heartbeat 2s infinite;
309
+ }
310
+
311
+ .ant-picker-dropdown .ant-picker-footer {
312
+ padding-left: 4px;
313
+ }
314
+
315
+ .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper {
316
+ border-color: var(--p-border-color, #d9d9d9) !important;
317
+ }
318
+ .p-error-hang-out .ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus {
319
+ border-color: var(--p-primary-color, #4096ff) !important;
320
+ }
321
+ .p-error-hang-out .ant-form-item-explain-error {
322
+ display: none;
323
+ }
324
+
325
+ .no-error-border {
326
+ border-color: var(--p-border-color, #d9d9d9) !important;
327
+ }
328
+ .no-error-border:focus {
329
+ border-color: var(--p-primary-color, #4096ff) !important;
330
+ }
331
+
332
+ @media (max-width: 575px) {
333
+ .p-wrapper .ant-form .ant-form-item .ant-form-item-label {
334
+ justify-content: flex-start;
335
+ }
336
+ }
337
+ .collapsible-card {
338
+ background-color: var(--p-bg-color, #fff);
339
+ border-color: var(--p-border-light-color, #f0f0f0);
340
+ }
341
+ .collapsible-card .ant-collapse-header {
342
+ padding: 0 12px;
343
+ min-height: 38px;
344
+ display: flex;
345
+ align-items: center;
346
+ font-weight: 600;
347
+ }
348
+ .collapsible-card .ant-collapse-content {
349
+ border-color: var(--p-border-light-color, #f0f0f0);
350
+ }
351
+ .collapsible-card .ant-collapse-content .ant-collapse-content-box {
352
+ padding: var(--collapsible-card-body-padding, 12px);
353
+ }
354
+ .collapsible-card .ant-collapse-item {
355
+ border-color: var(--p-border-light-color, #f0f0f0);
356
+ }
357
+
358
+ /* #endregion */
359
+ /* #region EVirtTable */
360
+ .canvas-cell {
361
+ display: flex;
362
+ flex-direction: column;
363
+ justify-content: center;
364
+ align-items: start;
365
+ padding: 0 8px;
366
+ }
367
+
368
+ /* #endregion */
369
+ /**/
370
+ .p-content-align-right.ant-form-item .ant-form-item-control-input-content {
371
+ display: flex;
372
+ justify-content: flex-end;
373
+ align-items: center;
374
+ text-align: right;
375
+ }
376
+
377
+ /**/
378
+ .p-content-align-center.ant-form-item .ant-form-item-control-input-content {
379
+ display: flex;
380
+ justify-content: center;
381
+ align-items: center;
382
+ text-align: center;
383
+ }
384
+
385
+ @keyframes heartbeat {
386
+ 0% {
387
+ transform: scale(1);
388
+ }
389
+ 6% {
390
+ transform: scale(1.22);
391
+ }
392
+ 12% {
393
+ transform: scale(1);
394
+ }
395
+ 18% {
396
+ transform: scale(1.18);
397
+ }
398
+ 24% {
399
+ transform: scale(1);
400
+ }
401
+ 48% {
402
+ transform: scale(1);
403
+ }
404
+ 54% {
405
+ transform: scale(1.22);
406
+ }
407
+ 60% {
408
+ transform: scale(1);
409
+ }
410
+ 66% {
411
+ transform: scale(1.18);
412
+ }
413
+ 72% {
414
+ transform: scale(1);
415
+ }
416
+ 100% {
417
+ transform: scale(1);
418
+ }
419
+ }
package/dist/style.scss CHANGED
@@ -67,6 +67,22 @@
67
67
  gap: 8px;
68
68
  }
69
69
 
70
+ .gap-12px {
71
+ gap: 12px;
72
+ }
73
+
74
+ .flex-shrink-0 {
75
+ flex-shrink: 0;
76
+ }
77
+
78
+ .min-w-0 {
79
+ min-width: 0;
80
+ }
81
+
82
+ .min-h-0 {
83
+ min-height: 0;
84
+ }
85
+
70
86
  .pt-8px {
71
87
  padding-top: 8px;
72
88
  }
@@ -88,6 +104,10 @@
88
104
  overflow-y: auto;
89
105
  }
90
106
 
107
+ .overflow-hidden {
108
+ overflow: hidden;
109
+ }
110
+
91
111
  /* #endregion */
92
112
 
93
113
  /* #region P family styles */
@@ -273,7 +293,8 @@
273
293
  }
274
294
  }
275
295
  .p-inner-scroll {
276
- & > .ant-table-wrapper {
296
+ & > .ant-table-wrapper,
297
+ & > .p-grid-table-body > .ant-table-wrapper {
277
298
  height: 100%;
278
299
 
279
300
  & > .ant-spin-nested-loading {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-ui-kit/ant",
3
- "version": "2.4.2",
3
+ "version": "2.4.4",
4
4
  "description": "Vue3 UI Kit based on Ant Design",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "scripts": {
30
30
  "dev": "vue-tsc --noEmit --skipLibCheck & vite",
31
- "build": "ts-patch install && vite build",
31
+ "build": "ts-patch install && vite build && sass src/packages/styles/index.scss dist/style.css --no-source-map",
32
32
  "prepack": "rimraf dist && pnpm build",
33
33
  "prepare": "husky",
34
34
  "lint:lint-staged": "lint-staged",
@@ -57,17 +57,17 @@
57
57
  },
58
58
  "license": "GPL",
59
59
  "engines": {
60
- "node": ">=16"
60
+ "node": "^20.19.0 || >=22.12.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@ant-design/icons-vue": ">=7.0.0",
64
64
  "@commitlint/cli": "^19.4.1",
65
65
  "@commitlint/config-conventional": "^19.4.1",
66
66
  "@types/uuid": "^10.0.0",
67
- "@vitejs/plugin-vue": "^5.1.2",
68
- "@vitejs/plugin-vue-jsx": "^4.0.1",
67
+ "@vitejs/plugin-vue": "^6.0.5",
68
+ "@vitejs/plugin-vue-jsx": "^5.1.5",
69
69
  "ant-design-vue": "^4.2.3",
70
- "esbuild": "^0.23.1",
70
+ "esbuild": "^0.28.0",
71
71
  "husky": "^9.1.5",
72
72
  "lint-staged": "^15.2.9",
73
73
  "prettier": "^3.3.3",
@@ -75,8 +75,8 @@
75
75
  "sass": "^1.77.8",
76
76
  "ts-patch": "^3.2.1",
77
77
  "typescript-transform-paths": "^3.5.0",
78
- "vite": "^5.4.2",
79
- "vite-plugin-dts": "^5.0.0-beta.6",
78
+ "vite": "^8.0.8",
79
+ "vite-plugin-dts": "^4.5.4",
80
80
  "vue": "^3.4.38"
81
81
  }
82
82
  }
@@ -144,8 +144,10 @@ export interface PFormGroupProps<F extends Recordable = Recordable> {
144
144
  menuHandler?: GroupMenuItemHandler<F>;
145
145
  }
146
146
 
147
- export interface ColumnProps<D extends Recordable = Recordable>
148
- extends Omit<TableColumnType, 'slots'> {
147
+ export interface ColumnProps<D extends Recordable = Recordable> extends Omit<
148
+ TableColumnType,
149
+ 'slots'
150
+ > {
149
151
  field?: string;
150
152
  children?: ColumnProps<D>[];
151
153
  formatter?:
@@ -162,7 +164,8 @@ export interface ColumnProps<D extends Recordable = Recordable>
162
164
  export interface PButtonProps extends Omit<ButtonProps, 'type'> {
163
165
  content?: string | (() => any);
164
166
  icon?: string;
165
- type?: string;
167
+ /** 与 `a-button` 一致,便于模板类型检查 */
168
+ type?: ButtonProps['type'];
166
169
  }
167
170
 
168
171
  export interface ToolbarButtonProps extends PButtonProps {
@@ -229,10 +232,20 @@ export type PGridProps<D extends Recordable = Recordable, F extends Recordable =
229
232
  proxyConfig?: ProxyConfig<D, F>;
230
233
  tableConfig?: TableProps<D>;
231
234
  scrollMode?: 'outer' | 'inner';
235
+ /**
236
+ * 为 true 时根容器按视口从左上角铺满(与 v-rest 同源),用于外层未声明高度、靠内部撑开的布局。
237
+ * 偏移见 `autoBoxSizeOffset`。
238
+ */
239
+ autoBoxSize?: boolean;
240
+ /**
241
+ * `autoBoxSize` 时距视口右侧/底部的预留像素;数字或 `"12px"` 同时作用于两侧;对象可分别指定 `right` / `bottom`。
242
+ * 未传时使用 `setUIKitConfig({ grid: { autoBoxSizeOffset } })` 的全局值。
243
+ */
244
+ autoBoxSizeOffset?: number | string | { right?: number; bottom?: number };
232
245
  // 重置后不自动提交
233
246
  lazyReset?: boolean;
234
247
  /**
235
- * 适应展示区到页面顶部的高度,通常和容器最上的y值有关(正比)
248
+ * 表格纵向滚动区额外预留像素:在 `tableWrapper` 高度内扣减表头、底栏后,再从 body 可滚动高度中减去本值,避免末行与滚动条贴边或被裁切。可通过 `setUIKitConfig({ grid: { fitHeight } })` 或组件 `fitHeight` 按项目微调;库内全局默认见 `config`。
236
249
  */
237
250
  fitHeight?: number;
238
251
  /**
@@ -299,8 +312,10 @@ export interface RenderTableParams<D extends Recordable = Recordable> {
299
312
  field?: string;
300
313
  title?: string;
301
314
  }
302
- export interface CanvasColumnProps<T extends Recordable = Recordable>
303
- extends Omit<EVirtColumn, 'children' | 'formatter' | 'key'> {
315
+ export interface CanvasColumnProps<T extends Recordable = Recordable> extends Omit<
316
+ EVirtColumn,
317
+ 'children' | 'formatter' | 'key'
318
+ > {
304
319
  key?: string;
305
320
  field?: string;
306
321
  children?: CanvasColumnProps<T>[];
package/src/index.ts CHANGED
@@ -40,6 +40,7 @@ export default {
40
40
 
41
41
  // 导出所有类型
42
42
  export * from '#/antProxy';
43
+ export * from '@/utils/autoViewportBox';
43
44
  export * from '@/utils/core';
44
45
 
45
46
  // 导出配置方法