@hinen/pro-element-plus 1.8.1 → 1.8.3

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 (75) hide show
  1. package/dist/components/DataTable/DataTable.vue.d.ts +1 -0
  2. package/dist/components/DataTable/DataTable.vue.d.ts.map +1 -1
  3. package/dist/components/DataTable/types.d.ts +3 -0
  4. package/dist/components/DataTable/types.d.ts.map +1 -1
  5. package/dist/components/DataTable/useDataTable.d.ts +2 -0
  6. package/dist/components/DataTable/useDataTable.d.ts.map +1 -1
  7. package/dist/components/Drawer/Drawer.vue.d.ts +1 -1
  8. package/dist/components/FormFields/FormAutocomplete/FormAutocomplete.vue.d.ts +9 -0
  9. package/dist/components/FormFields/FormAutocomplete/FormAutocomplete.vue.d.ts.map +1 -1
  10. package/dist/components/FormFields/FormAutocomplete/props.d.ts +4 -0
  11. package/dist/components/FormFields/FormAutocomplete/props.d.ts.map +1 -1
  12. package/dist/components/FormFields/FormCascadeSelect/FormCascadeSelect.vue.d.ts +9 -0
  13. package/dist/components/FormFields/FormCascadeSelect/FormCascadeSelect.vue.d.ts.map +1 -1
  14. package/dist/components/FormFields/FormCascadeSelect/props.d.ts +4 -0
  15. package/dist/components/FormFields/FormCascadeSelect/props.d.ts.map +1 -1
  16. package/dist/components/FormFields/FormCheckboxGroup/FormCheckboxGroup.vue.d.ts +9 -0
  17. package/dist/components/FormFields/FormCheckboxGroup/FormCheckboxGroup.vue.d.ts.map +1 -1
  18. package/dist/components/FormFields/FormCheckboxGroup/props.d.ts +4 -0
  19. package/dist/components/FormFields/FormCheckboxGroup/props.d.ts.map +1 -1
  20. package/dist/components/FormFields/FormDatePicker/FormDatePicker.vue.d.ts +9 -0
  21. package/dist/components/FormFields/FormDatePicker/FormDatePicker.vue.d.ts.map +1 -1
  22. package/dist/components/FormFields/FormDatePicker/props.d.ts +4 -0
  23. package/dist/components/FormFields/FormDatePicker/props.d.ts.map +1 -1
  24. package/dist/components/FormFields/FormItem/FormItem.test.d.ts +2 -0
  25. package/dist/components/FormFields/FormItem/FormItem.test.d.ts.map +1 -0
  26. package/dist/components/FormFields/FormItem/FormItem.vue.d.ts +9 -0
  27. package/dist/components/FormFields/FormItem/FormItem.vue.d.ts.map +1 -1
  28. package/dist/components/FormFields/FormItem/props.d.ts +4 -0
  29. package/dist/components/FormFields/FormItem/props.d.ts.map +1 -1
  30. package/dist/components/FormFields/FormNumber/FormNumber.vue.d.ts +9 -0
  31. package/dist/components/FormFields/FormNumber/FormNumber.vue.d.ts.map +1 -1
  32. package/dist/components/FormFields/FormNumber/props.d.ts +4 -0
  33. package/dist/components/FormFields/FormNumber/props.d.ts.map +1 -1
  34. package/dist/components/FormFields/FormRadioGroup/FormRadioGroup.vue.d.ts +9 -0
  35. package/dist/components/FormFields/FormRadioGroup/FormRadioGroup.vue.d.ts.map +1 -1
  36. package/dist/components/FormFields/FormRadioGroup/props.d.ts +4 -0
  37. package/dist/components/FormFields/FormRadioGroup/props.d.ts.map +1 -1
  38. package/dist/components/FormFields/FormRate/FormRate.vue.d.ts +9 -0
  39. package/dist/components/FormFields/FormRate/FormRate.vue.d.ts.map +1 -1
  40. package/dist/components/FormFields/FormRate/props.d.ts +4 -0
  41. package/dist/components/FormFields/FormRate/props.d.ts.map +1 -1
  42. package/dist/components/FormFields/FormSelect/FormSelect.vue.d.ts +9 -0
  43. package/dist/components/FormFields/FormSelect/FormSelect.vue.d.ts.map +1 -1
  44. package/dist/components/FormFields/FormSelect/props.d.ts +4 -0
  45. package/dist/components/FormFields/FormSelect/props.d.ts.map +1 -1
  46. package/dist/components/FormFields/FormSwitch/FormSwitch.vue.d.ts +9 -0
  47. package/dist/components/FormFields/FormSwitch/FormSwitch.vue.d.ts.map +1 -1
  48. package/dist/components/FormFields/FormSwitch/props.d.ts +4 -0
  49. package/dist/components/FormFields/FormSwitch/props.d.ts.map +1 -1
  50. package/dist/components/FormFields/FormTagInput/FormTagInput.vue.d.ts +9 -0
  51. package/dist/components/FormFields/FormTagInput/FormTagInput.vue.d.ts.map +1 -1
  52. package/dist/components/FormFields/FormTagInput/props.d.ts +4 -0
  53. package/dist/components/FormFields/FormTagInput/props.d.ts.map +1 -1
  54. package/dist/components/FormFields/FormText/FormText.vue.d.ts +9 -0
  55. package/dist/components/FormFields/FormText/FormText.vue.d.ts.map +1 -1
  56. package/dist/components/FormFields/FormText/props.d.ts +4 -0
  57. package/dist/components/FormFields/FormText/props.d.ts.map +1 -1
  58. package/dist/components/FormFields/FormTimePicker/FormTimePicker.vue.d.ts +9 -0
  59. package/dist/components/FormFields/FormTimePicker/FormTimePicker.vue.d.ts.map +1 -1
  60. package/dist/components/FormFields/FormTimePicker/props.d.ts +4 -0
  61. package/dist/components/FormFields/FormTimePicker/props.d.ts.map +1 -1
  62. package/dist/components/FormFields/FormTreeSelect/FormTreeSelect.vue.d.ts +4 -0
  63. package/dist/components/FormFields/FormTreeSelect/FormTreeSelect.vue.d.ts.map +1 -1
  64. package/dist/components/FormFields/FormTreeSelect/props.d.ts +4 -0
  65. package/dist/components/FormFields/FormTreeSelect/props.d.ts.map +1 -1
  66. package/dist/components/FormFields/utils.d.ts +4 -0
  67. package/dist/components/FormFields/utils.d.ts.map +1 -1
  68. package/dist/index.cjs +26 -26
  69. package/dist/index.js +2338 -2227
  70. package/dist/skills/using-data-table/SKILL.md +16 -11
  71. package/dist/skills/using-data-table/references/examples.md +11 -12
  72. package/dist/skills/using-data-table/references/gotchas.md +23 -11
  73. package/dist/skills/using-data-table/references/props.md +40 -13
  74. package/dist/style.css +1 -1
  75. package/package.json +1 -1
@@ -76,8 +76,9 @@ If not, a simpler table or a standalone form is usually a better fit.
76
76
  3. Add selection bar, `selection`, sticky layout, and custom slots only after the base flow is correct.
77
77
  4. Use `useDataTable()` only when parent code truly needs imperative control.
78
78
 
79
- 5. Treat `highlightCurrentRow` intentionally.
80
- In `DataTable`, this is not just native Element Plus row highlighting anymore. It enables the built-in single-select mode with a leading radio column.
79
+ 5. Treat selection and highlight as independent concerns.
80
+ Use `selection.mode` to control selection UI: `'single'` for radio-driven single selection, `'multiple'` for checkbox-driven multi selection, or `'none'` for no selection column.
81
+ Use `highlightCurrentRow` separately to enable native row highlighting, independent of selection mode.
81
82
 
82
83
  ## Minimal patterns
83
84
 
@@ -160,13 +161,15 @@ Common methods:
160
161
 
161
162
  Use this pattern when toolbars, tabs, route sync, or external controls need to coordinate the table.
162
163
 
164
+ - `getSelectedRow()` returns the current row in single-select mode (`selection.mode: 'single'`)
165
+ - `clearSelection()` clears checkbox selection and single-select current-row state
166
+
163
167
  For current-row control in single-select mode:
164
168
 
165
169
  - use `setCurrentRow(row)` to select a row programmatically
166
170
  - use `setCurrentRow()` to clear the current single-select row
167
171
  - use `currentRowKey` together with `rowKey` for controlled current-row sync
168
- - do not rely on row clicks to change the current row when `highlightCurrentRow` is enabled
169
- - do not use `clearSelection()` to clear single-select current-row state; that method is for checkbox selection
172
+ - do not rely on row clicks to change the current row when single-select mode is active
170
173
 
171
174
  ## Controlled selection mode
172
175
 
@@ -180,7 +183,7 @@ For current-row control in single-select mode:
180
183
  Use internal mode when the page does not need to read or manipulate selection from outside the component.
181
184
 
182
185
  ```vue
183
- <DataTable :columns="columns" :query-fn="queryFn" row-selection />
186
+ <DataTable :columns="columns" :query-fn="queryFn" :selection="{ mode: 'multiple' }" />
184
187
  ```
185
188
 
186
189
  ### Controlled mode
@@ -197,7 +200,7 @@ Use controlled mode when parent code needs to:
197
200
  v-model:selectedRowKeys="selectedKeys"
198
201
  :columns="columns"
199
202
  :query-fn="queryFn"
200
- row-selection
203
+ :selection="{ mode: 'multiple' }"
201
204
  />
202
205
  ```
203
206
 
@@ -248,14 +251,16 @@ Prefer slots over rebuilding table scaffolding from scratch.
248
251
  For checkbox selection review:
249
252
 
250
253
  - `selection` is the public API for built-in checkbox review item customization
254
+ - `selection.mode` controls the selection UI: `'single'`, `'multiple'`, or `'none'`
251
255
  - `formatter(row)` customizes the built-in review tag text
252
256
  - `render(...)` customizes each built-in review item
253
- - `selectionBar.reviewPopoverProps` customizes the built-in 查看已选 popover (default placement is 'bottom-start')
257
+ - `selectionBar.reviewPopoverProps` customizes the built-in 查看已选 popover (default placement is 'top-start')
254
258
  - `rowKey` is required if the built-in checkbox review should stay correct across pages
255
259
  - the `selectionBar` slot replaces the built-in review UI instead of extending it
256
260
  - in cross-page checkbox mode, the `selectionBar` slot receives the aggregated selected rows, so Search/Reset or pagination should not make that slot-level selection disappear
257
- - `selectionChange` and `getSelectionRows()` still describe the current page only
258
- - single-select behavior from `highlightCurrentRow` is unchanged
261
+ - `selectionChange` returns all selected rows across pages, not just the current page
262
+ - `getSelectionRows()` also returns all selected rows across pages
263
+ - single-select behavior from `selection.mode: 'single'` uses a radio column and highlights the selected row
259
264
 
260
265
  ## Common mistakes
261
266
 
@@ -268,12 +273,12 @@ For checkbox selection review:
268
273
  - Accidentally hiding pagination through `hidePaginationWhenEmpty`
269
274
  - Assuming `success` is optional in remote mode
270
275
  - Expecting cross-page checkbox review state without `rowKey`
271
- - Treating `selectionChange` or `getSelectionRows()` as cross-page aggregate APIs
272
276
  - Assuming the `selectionBar` slot keeps the built-in review UI
273
277
  - Treating `selectionBar.reviewPopoverProps` as item-render customization instead of popover-container customization
274
- - Treating `highlightCurrentRow` as a visual-only prop in `DataTable`
278
+ - Treating `highlightCurrentRow` as a selection-mode prop instead of a pure highlight switch
275
279
  - Expecting row clicks to change the current row when built-in single-select mode is active
276
280
  - Using `currentRowKey` without `rowKey` and expecting controlled current-row sync to work
281
+ - Using `row-selection` prop (it does not exist; use `selection.mode` instead)
277
282
 
278
283
  ## Related skills
279
284
 
@@ -134,7 +134,7 @@ Use row selection and `selectionBar` when the page supports batch operations.
134
134
  Minimal pattern:
135
135
 
136
136
  ```vue
137
- <DataTable :columns="columns" :query-fn="queryFn" row-selection />
137
+ <DataTable :columns="columns" :query-fn="queryFn" :selection="{ mode: 'multiple' }" />
138
138
  ```
139
139
 
140
140
  Typical fit:
@@ -161,8 +161,8 @@ Minimal pattern:
161
161
  :columns="columns"
162
162
  :query-fn="queryFn"
163
163
  row-key="id"
164
- row-selection
165
164
  :selection="{
165
+ mode: 'multiple',
166
166
  formatter: (row) => row.name,
167
167
  }"
168
168
  />
@@ -174,8 +174,8 @@ Recommended pattern:
174
174
  - provide `rowKey` so built-in review items can aggregate across pages
175
175
  - use `formatter(row)` when the default tag text needs a small change
176
176
  - use `render(...)` when each built-in review item needs custom rendering
177
- - use `selectionBar.reviewPopoverProps` when the built-in 查看已选 popover needs container-level tweaks (default placement is 'bottom-start')
178
- - keep using `selectionChange` and `getSelectionRows()` as current-page signals
177
+ - use `selectionBar.reviewPopoverProps` when the built-in 查看已选 popover needs container-level tweaks (default placement is 'top-start')
178
+ - `selectionChange` and `getSelectionRows()` return all selected rows across pages
179
179
 
180
180
  Use the `selectionBar` slot only when the page should replace the built-in review UI completely.
181
181
 
@@ -191,7 +191,7 @@ Minimal pattern:
191
191
  :columns="columns"
192
192
  :query-fn="queryFn"
193
193
  row-key="id"
194
- row-selection
194
+ :selection="{ mode: 'multiple' }"
195
195
  />
196
196
  ```
197
197
 
@@ -237,8 +237,8 @@ Minimal pattern:
237
237
  :columns="columns"
238
238
  :query-fn="queryFn"
239
239
  row-key="id"
240
- row-selection
241
240
  :selection="{
241
+ mode: 'multiple',
242
242
  formatter: (row) => row.name,
243
243
  }"
244
244
  />
@@ -262,7 +262,7 @@ Recommended pattern:
262
262
  - `rowKey` is required for cross-page selection to work correctly
263
263
  - the model accepts keys from any page, not just the current one
264
264
  - built-in review UI aggregates selections across pages when `rowKey` is provided
265
- - `selectionChange` event still emits current-page changes only
265
+ - `selectionChange` event emits all selected rows across pages
266
266
 
267
267
  ## 8. Sticky large-page table
268
268
 
@@ -296,7 +296,7 @@ Typical fit:
296
296
 
297
297
  ## 10. Built-in radio single-select row
298
298
 
299
- Use `highlightCurrentRow` when the page wants `DataTable` to own a radio-based single-select row state.
299
+ Use `selection.mode: 'single'` when the page wants `DataTable` to own a radio-based single-select row state.
300
300
 
301
301
  Minimal pattern:
302
302
 
@@ -306,7 +306,7 @@ Minimal pattern:
306
306
  :columns="columns"
307
307
  :data="rows"
308
308
  row-key="id"
309
- highlight-current-row
309
+ :selection="{ mode: 'single' }"
310
310
  @current-change="handleCurrentChange"
311
311
  />
312
312
  ```
@@ -317,11 +317,10 @@ Recommended pattern:
317
317
  - treat the radio as the selection trigger
318
318
  - use `setCurrentRow(row)` for imperative select
319
319
  - use `setCurrentRow()` to clear the single-select current row
320
+ - use `getSelectedRow()` to read the currently selected row
320
321
 
321
322
  Do not expect row clicks to change the current row in this mode.
322
323
 
323
- Checkbox review changes do not affect this single-select mode.
324
-
325
324
  ## 11. Controlled current row with `currentRowKey`
326
325
 
327
326
  Use `currentRowKey` when parent state should control which single-select row is active.
@@ -333,7 +332,7 @@ Minimal pattern:
333
332
  :columns="columns"
334
333
  :data="rows"
335
334
  row-key="id"
336
- highlight-current-row
335
+ :selection="{ mode: 'single' }"
337
336
  :current-row-key="currentRowKey"
338
337
  />
339
338
  ```
@@ -45,8 +45,20 @@
45
45
  - In cross-page checkbox mode, the `selectionBar` slot gets aggregated rows
46
46
  Search, Reset, pagination, or other current-page changes should not make the slot-level `selection` suddenly drop to the current page only.
47
47
 
48
- - `selectionChange` and `getSelectionRows()` stay current-page oriented
49
- They do not become cross-page aggregate contracts just because the built-in review UI keeps state across pages.
48
+ - `selectionChange` and `getSelectionRows()` return **all selected rows across pages**
49
+ They aggregate selection from all pages when cross-page selection is enabled.
50
+
51
+ - `selection.mode` controls selection behavior
52
+ Use `'single'` for radio column, `'multiple'` for checkbox column, or `'none'` (default) for no selection column.
53
+
54
+ - `highlightCurrentRow` is a pure highlight switch
55
+ It no longer enables single-select mode. Use `selection.mode: 'single'` for single selection.
56
+
57
+ - `selection.mode: 'single'` renders a radio column
58
+ Clicking a radio selects that row and deselects any previously selected row.
59
+
60
+ - `selection.mode: 'multiple'` requires a selection column
61
+ You must include `{ type: 'selection' }` in `columns` for multi-select to work.
50
62
 
51
63
  - `loading` combines with internal query loading
52
64
  External loading and internal query loading both affect the final visual loading state.
@@ -63,17 +75,17 @@
63
75
  - Do not overuse imperative control
64
76
  `useDataTable()` should coordinate the component, not replace its internal state model.
65
77
 
66
- - `highlightCurrentRow` is not visual-only in `DataTable`
67
- It enables the built-in radio single-select mode, changes click behavior, and prepends a radio column.
78
+ - `highlightCurrentRow` is independent of selection mode
79
+ It controls native Element Plus row highlighting without affecting selection UI.
68
80
 
69
81
  - Row click and current-row change are decoupled in single-select mode
70
- With `highlightCurrentRow: true`, clicking a row still emits `rowClick`, but only clicking the radio changes the current row.
82
+ With `selection.mode: 'single'`, clicking a row still emits `rowClick`, but only clicking the radio changes the current row.
71
83
 
72
84
  - Controlled single-select requires `rowKey`
73
85
  If you pass `currentRowKey` without `rowKey`, do not expect stable controlled current-row behavior.
74
86
 
75
- - Clearing single-select current row uses `setCurrentRow()`, not `clearSelection()`
76
- `clearSelection()` is for checkbox selection. To clear the current radio-selected row, use `setCurrentRow()` or set `currentRowKey` to `undefined`.
87
+ - Clearing single-select current row uses `setCurrentRow()` or `clearSelection()`
88
+ Both methods clear the current radio-selected row. `setCurrentRow()` can also programmatically select a row.
77
89
 
78
90
  - Empty `currentRowKey` clearing is a wrapper convention
79
91
  `DataTable` treats `currentRowKey: undefined` as “clear current row” in single-select mode. This is aligned with the wrapper behavior, not a documented Element Plus `current-row-key` guarantee.
@@ -101,8 +113,8 @@
101
113
  - `selectedRowKeys` accepts keys from any page
102
114
  In controlled mode with `rowKey`, the model can contain keys from pages other than the current one. The built-in review UI aggregates them.
103
115
 
104
- - `selectionChange` remains current-page oriented
105
- Even in controlled mode, `selectionChange` only emits changes for the current page. Use `watch(selectedKeys)` to observe all changes.
116
+ - `selectionChange` returns all selected rows across pages
117
+ In both controlled and internal modes, the event emits the aggregated selection from all pages.
106
118
 
107
119
  - Instance methods still work in controlled mode
108
120
  `getSelectionRows()`, `toggleRowSelection()`, etc. continue to function, but parent state should be the primary control mechanism.
@@ -110,5 +122,5 @@
110
122
  - Clearing selection in controlled mode
111
123
  Call `clearSelection()` or set `selectedKeys.value = []`. In controlled mode, prefer updating the model directly.
112
124
 
113
- - Default placement for review popover is 'bottom-start'
114
- When using `selectionBar.reviewPopoverProps`, the default placement is 'bottom-start'. Only override if necessary.
125
+ - Default placement for review popover is 'top-start'
126
+ When using `selectionBar.reviewPopoverProps`, the default placement is 'top-start'. Only override if necessary.
@@ -195,7 +195,7 @@ Cross-page selection works with `selectedRowKeys` when `rowKey` is defined. The
195
195
  :columns="columns"
196
196
  :query-fn="queryFn"
197
197
  row-key="id"
198
- row-selection
198
+ :selection="{ mode: 'multiple' }"
199
199
  />
200
200
  ```
201
201
 
@@ -244,16 +244,41 @@ Use this when the page has prerequisite loading that is separate from the table'
244
244
 
245
245
  ### `highlightCurrentRow`
246
246
 
247
- In `DataTable`, this prop now does more than turn on native Element Plus highlighting.
247
+ In `DataTable`, this prop controls native Element Plus row highlighting independently from selection mode.
248
248
 
249
- When `highlightCurrentRow` is `true`, `DataTable` enters its built-in single-select mode:
249
+ When `highlightCurrentRow` is `true`:
250
250
 
251
- - a leading radio column is rendered
252
- - the current row stays visually highlighted
253
- - radio click becomes the selection trigger
254
- - row click still emits `rowClick`, but does not change the current row
251
+ - the current row is visually highlighted when clicked
252
+ - `@current-change` emits on row click
253
+ - no selection column is rendered by this prop alone
255
254
 
256
- Use this only when the page intentionally wants radio-driven single selection.
255
+ Use this when the page needs row highlighting without selection UI. For selection, use `selection.mode`.
256
+
257
+ ### `selection`
258
+
259
+ Controls selection behavior and customization.
260
+
261
+ Common fields:
262
+
263
+ - `mode` — `'single'` | `'multiple'` | `'none'` (default `'none'`)
264
+ - `'single'` renders a leading radio column for single-select with cross-page support
265
+ - `'multiple'` requires a `{ type: 'selection' }` column for multi-select with cross-page support
266
+ - `'none'` renders no selection column
267
+ - `formatter(row)` customizes the default review tag text
268
+ - `render(...)` customizes each built-in review item
269
+
270
+ Use `rowKey` with this when selection review should stay correct across pages.
271
+
272
+ ```vue
273
+ <!-- Single select with radio column -->
274
+ <DataTable :selection="{ mode: 'single' }" :columns="columns" />
275
+
276
+ <!-- Multi select with checkbox column -->
277
+ <DataTable :selection="{ mode: 'multiple' }" :columns="[{ type: 'selection' }, ...columns]" />
278
+
279
+ <!-- Highlight only, no selection -->
280
+ <DataTable :selection="{ mode: 'none' }" highlight-current-row :columns="columns" />
281
+ ```
257
282
 
258
283
  ### `rowKey`
259
284
 
@@ -318,12 +343,14 @@ Current-row related methods:
318
343
 
319
344
  - `setCurrentRow(row)` selects the current row in single-select mode
320
345
  - `setCurrentRow()` clears the current single-select row
321
- - `clearSelection()` clears checkbox selection, not single-select current-row state
346
+ - `clearSelection()` clears checkbox selection and single-select current-row state
347
+ - `getSelectedRow()` returns the current row in single-select mode
322
348
 
323
349
  Selection notes:
324
350
 
325
- - `getSelectionRows()` returns current-page checkbox rows
326
- - cross-page checkbox review state is internal, not exposed through a new instance method
351
+ - `getSelectionRows()` returns all selected rows across pages (not just current page)
352
+ - `selectionChange` emits all selected rows across pages
353
+ - cross-page selection state is internal unless `v-model:selectedRowKeys` is provided
327
354
 
328
355
  Notes:
329
356
 
@@ -356,8 +383,8 @@ Use these before building a custom shell around `ElTable`.
356
383
  `selectionBar` slot notes:
357
384
 
358
385
  - it replaces the built-in review UI
359
- - in cross-page checkbox mode, its `selection` slot prop is the aggregated selected rows
360
- - `clear` still clears the full checkbox selection state
386
+ - its `selection` slot prop is the aggregated selected rows across pages
387
+ - `clear` still clears the full selection state
361
388
 
362
389
  ## Import
363
390
 
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.pel-ellipsis-text.is-truncated[data-v-36b1aefb]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.pel-ellipsis-text.line-clamp[data-v-36b1aefb]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:box;-webkit-line-clamp:var(--7a7a879f);line-clamp:var(--7a7a879f)}.pel-form-item-label-with-tooltip{display:inline-flex;align-items:center;gap:4px}.pel-form-item-error-wrap{position:absolute;top:100%;left:0;width:100%;min-height:20px;padding-top:2px;display:flex;align-items:flex-start;z-index:10;pointer-events:none}.pel-form-item-error-content{pointer-events:auto;color:var(--el-color-danger);font-size:12px;line-height:1.2;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:4px;cursor:default}.pel-form-item-error-content.is-truncated{cursor:help}.pel-form-item-error-content.is-truncated:hover{position:absolute;top:2px;left:0;width:auto;max-width:100%;min-width:100%;background-color:var(--el-color-danger);color:#fff;white-space:normal;overflow:visible;padding:6px 8px;transform:translateY(-4px);box-shadow:0 4px 12px #00000026;z-index:100;animation:error-expand .2s ease forwards}@keyframes error-expand{0%{opacity:.8;transform:translateY(0) scale(.98)}to{opacity:1;transform:translateY(-4px) scale(1)}}.pel-query-form{display:flex;align-items:flex-start;gap:80px}.pel-query-form-items{display:flex;flex-wrap:wrap;flex-grow:1}.pel-query-form-item-wrapper .el-input-number,.pel-query-form-item-wrapper .el-cascader{width:100%}.pel-query-form-item-wrapper .el-date-editor{--el-date-editor-width: 100%}.pel-query-form-item-wrapper .el-form-item__error{width:100%}.pel-query-form-buttons{flex-shrink:0}.pel-query-form-buttons.el-form-item--label-right .el-form-item__label-wrap,.pel-query-form-buttons.el-form-item--label-left .el-form-item__label-wrap{display:none}.pel-query-form-buttons .el-form-item__label{visibility:hidden}.pel-query-form-hide-label .el-form-item .el-form-item__label{display:none}.pel-query-form-collapse-button{margin-right:8px}.pel-query-form-collapse-icon{margin-left:4px;transition:transform .3s ease-in-out}.pel-query-form-collapsed .pel-query-form-collapse-icon{transform:rotate(180deg)}.pel-query-form-tags{margin-bottom:10px}.pel-query-form-tags.el-form--inline .el-form-item{margin-right:8px;margin-bottom:8px}.pel-query-form-item-tag{padding:0 8px;background-color:var(--el-fill-color);border-radius:4px;border:1px solid transparent}.pel-query-form-item-tag.is-error{border-color:var(--el-color-danger)}.pel-query-form-item-tag .error-icon{margin-left:4px;color:var(--el-color-danger)}.pel-query-form-item-tag .el-form-item__label{padding-right:4px}.pel-query-form-item-tag .el-form-item__label:after{content:":"}.pel-query-form-item-tag-content{max-width:250px}.pel-query-form-item-tag .el-form-item__content{color:var(--el-text-color-regular)}.pel-query-form-item-tag .close-btn.is-text{margin-left:4px;width:18px;height:18px;border-radius:4px;background-color:var(--el-fill-color-darker)}.pel-query-form-item-tag .close-btn.is-text:hover{background-color:#fff}.pel-data-table{display:flex;flex-direction:column}.pel-data-table-toolbar{margin-bottom:16px}.pel-data-table-footer-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;width:100%;background:#fff}.pel-data-table-footer-wrapper--with-footer{justify-content:space-between}.pel-data-table-footer{display:flex;align-items:center;flex:1;min-width:0;padding:16px 0;background:#fff;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:var(--el-line-height-base)}.pel-data-table-selection-review-popper{max-width:300px!important;width:auto!important}.pel-data-table-selection-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:8px 16px;color:var(--el-table-text-color);font-size:var(--el-font-size-base);border-radius:4px;background-color:var(--el-fill-color)}.pel-data-table-selection-tag{display:inline-flex;overflow:hidden}.pel-data-table-selection-tag .el-tag__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1}.pel-data-table-selection-review-list{display:flex;flex-wrap:wrap;gap:8px;max-width:500px;max-height:500px;overflow:hidden}.pel-data-table .el-affix--fixed .pel-data-table-footer-wrapper{border-top:1px solid var(--el-border-color-lighter)}.pel-data-table-pagination{justify-content:flex-end;padding:16px 0;background:#fff}.pel-data-table .el-table{--el-table-header-bg-color: var(--el-fill-color);scroll-margin-top:calc(var(--05377818) * 1px)}.pel-data-table .el-table .cell:not(.el-tooltip){text-overflow:unset}.pel-data-table .el-table th.el-table__cell{padding-top:10px;padding-bottom:10px}.pel-data-table .el-table__header-wrapper{z-index:5}.pel-data-table .el-table .el-scrollbar__bar.is-horizontal.fixed{position:fixed;bottom:calc(var(--51cbf47c) + var(--39ce4da4));left:unset;right:unset}.pel-data-table-cell-tooltip{max-width:300px}.el-dialog{--el-dialog-border-radius: 12px !important;--el-dialog-padding-primary: 32px !important;--el-dialog-padding-x: 32px;--el-dialog-padding-y: 20px;--el-dialog-margin-top: 8vh !important;--el-dialog-width: 95%;display:flex;flex-direction:column;padding:0}.el-dialog__scrollbar{padding-left:32px;padding-right:32px}.el-dialog__small{max-width:450px}.el-dialog__large{max-width:960px}.el-dialog__default{max-width:680px}.el-dialog:not(.is-align-center){max-height:calc(100vh - var(--el-dialog-margin-top) - 50px)}.el-dialog.is-align-center{max-height:calc(100vh - 100px)}.el-dialog__header{z-index:2;flex-shrink:0;padding-top:var(--el-dialog-padding-y);padding-left:var(--el-dialog-padding-x);padding-bottom:var(--el-dialog-padding-y)}.el-dialog__header-shadow{box-shadow:0 0 6px #0000001a}.el-dialog__footer{flex-shrink:0;padding-top:var(--el-dialog-padding-y);padding-bottom:var(--el-dialog-padding-y);padding-left:var(--el-dialog-padding-x);padding-right:var(--el-dialog-padding-x)}.el-dialog__footer-shadow{box-shadow:0 -1px 6px #0000001a}.el-dialog__body{flex-grow:1;padding-left:0;padding-right:0;overflow:hidden;display:flex;flex-direction:column}.el-dialog__body .el-scrollbar{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.el-dialog__headerbtn{top:12px;right:15px}.pel-image-error{display:flex;flex-direction:column;gap:8px}.pel-image-refresh-button{display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer}.pel-image .el-loading-spinner{margin-top:0;transform:translateY(-50%)}.pel-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:var(--el-fill-color-light)}.pel-image-placeholder-loading{color:var(--el-text-color-placeholder)}.pel-image-empty{position:relative;background-color:var(--el-fill-color-light)}.pel-image-empty-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:24px;color:var(--el-text-color-placeholder)}.el-drawer{--el-drawer-border-radius: 12px;--el-drawer-padding-x: 32px;--el-drawer-padding-y: 20px;display:flex;flex-direction:column;padding:0}.el-drawer__rtl{border-top-left-radius:var(--el-drawer-border-radius);border-bottom-left-radius:var(--el-drawer-border-radius)}.el-drawer__ltr{border-top-right-radius:var(--el-drawer-border-radius);border-bottom-right-radius:var(--el-drawer-border-radius)}.el-drawer__ttb{border-bottom-left-radius:var(--el-drawer-border-radius);border-bottom-right-radius:var(--el-drawer-border-radius)}.el-drawer__btt{border-top-left-radius:var(--el-drawer-border-radius);border-top-right-radius:var(--el-drawer-border-radius)}.el-drawer__scrollbar{padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-x)}.el-drawer__rtl.el-drawer__small,.el-drawer__ltr.el-drawer__small{max-width:380px}.el-drawer__rtl.el-drawer__large,.el-drawer__ltr.el-drawer__large{max-width:680px}.el-drawer__rtl.el-drawer__default,.el-drawer__ltr.el-drawer__default{max-width:450px}.el-drawer__ttb.el-drawer__small,.el-drawer__btt.el-drawer__small{max-height:380px}.el-drawer__ttb.el-drawer__large,.el-drawer__btt.el-drawer__large{max-height:680px}.el-drawer__ttb.el-drawer__default,.el-drawer__btt.el-drawer__default{max-height:450px}.el-drawer__header{z-index:2;flex-shrink:0;padding-top:var(--el-drawer-padding-y);padding-bottom:var(--el-drawer-padding-y);padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-y);margin-bottom:0}.el-drawer__header-shadow{box-shadow:0 2px 12px #0000001a}.el-drawer__footer{flex-shrink:0;padding-top:var(--el-drawer-padding-y);padding-bottom:var(--el-drawer-padding-y);padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-y)}.el-drawer__footer-shadow{box-shadow:0 -1px 6px #0000001a}.el-drawer__body{display:flex;flex-grow:1;flex-direction:column;padding:0;overflow:hidden}.el-drawer__body .el-scrollbar{flex-grow:1;flex-direction:column;display:flex;overflow:hidden}
1
+ @charset "UTF-8";.pel-ellipsis-text.is-truncated[data-v-36b1aefb]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.pel-ellipsis-text.line-clamp[data-v-36b1aefb]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:box;-webkit-line-clamp:var(--7a7a879f);line-clamp:var(--7a7a879f)}.pel-form-item-ghost{position:relative;margin-bottom:18px}.pel-form-item-ghost>.el-form-item{margin-bottom:0}.pel-form-item-ghost>.el-form-item>.el-form-item__content{position:unset}.pel-form-item-label-with-tooltip{display:inline-flex;align-items:center;gap:4px}.pel-form-item-error-wrap{position:absolute;top:100%;left:0;width:100%;min-height:20px;padding-top:2px;display:flex;align-items:flex-start;z-index:10;pointer-events:none}.pel-form-item-error-content{pointer-events:auto;color:var(--el-color-danger);font-size:12px;line-height:1.2;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:4px;cursor:default}.pel-form-item-error-content.is-truncated{cursor:help}.pel-form-item-error-content.is-truncated:hover{position:absolute;top:2px;left:0;width:auto;max-width:100%;min-width:100%;background-color:var(--el-color-danger);color:#fff;white-space:normal;overflow:visible;padding:6px 8px;transform:translateY(-4px);box-shadow:0 4px 12px #00000026;z-index:100;animation:error-expand .2s ease forwards}@keyframes error-expand{0%{opacity:.8;transform:translateY(0) scale(.98)}to{opacity:1;transform:translateY(-4px) scale(1)}}.pel-query-form{display:flex;align-items:flex-start;gap:80px}.pel-query-form-items{display:flex;flex-wrap:wrap;flex-grow:1}.pel-query-form-item-wrapper .el-input-number,.pel-query-form-item-wrapper .el-cascader{width:100%}.pel-query-form-item-wrapper .el-date-editor{--el-date-editor-width: 100%}.pel-query-form-item-wrapper .el-form-item__error{width:100%}.pel-query-form-buttons{flex-shrink:0}.pel-query-form-buttons.el-form-item--label-right .el-form-item__label-wrap,.pel-query-form-buttons.el-form-item--label-left .el-form-item__label-wrap{display:none}.pel-query-form-buttons .el-form-item__label{visibility:hidden}.pel-query-form-hide-label .el-form-item .el-form-item__label{display:none}.pel-query-form-collapse-button{margin-right:8px}.pel-query-form-collapse-icon{margin-left:4px;transition:transform .3s ease-in-out}.pel-query-form-collapsed .pel-query-form-collapse-icon{transform:rotate(180deg)}.pel-query-form-tags{margin-bottom:10px}.pel-query-form-tags.el-form--inline .el-form-item{margin-right:8px;margin-bottom:8px}.pel-query-form-item-tag{padding:0 8px;background-color:var(--el-fill-color);border-radius:4px;border:1px solid transparent}.pel-query-form-item-tag.is-error{border-color:var(--el-color-danger)}.pel-query-form-item-tag .error-icon{margin-left:4px;color:var(--el-color-danger)}.pel-query-form-item-tag .el-form-item__label{padding-right:4px}.pel-query-form-item-tag .el-form-item__label:after{content:":"}.pel-query-form-item-tag-content{max-width:250px}.pel-query-form-item-tag .el-form-item__content{color:var(--el-text-color-regular)}.pel-query-form-item-tag .close-btn.is-text{margin-left:4px;width:18px;height:18px;border-radius:4px;background-color:var(--el-fill-color-darker)}.pel-query-form-item-tag .close-btn.is-text:hover{background-color:#fff}.pel-data-table{display:flex;flex-direction:column}.pel-data-table-toolbar{margin-bottom:16px}.pel-data-table-footer-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;width:100%;background:#fff}.pel-data-table-footer-wrapper--with-footer{justify-content:space-between}.pel-data-table-footer{display:flex;align-items:center;flex:1;min-width:0;padding:16px 0;background:#fff;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:var(--el-line-height-base)}.pel-data-table-selection-review-popper{max-width:300px!important;width:auto!important}.pel-data-table-selection-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:8px 16px;color:var(--el-table-text-color);font-size:var(--el-font-size-base);border-radius:4px;background-color:var(--el-fill-color)}.pel-data-table-selection-tag{display:inline-flex;overflow:hidden}.pel-data-table-selection-tag .el-tag__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1}.pel-data-table-selection-review-list{display:flex;flex-wrap:wrap;gap:8px;margin-left:-10px;margin-right:-10px;padding:0 10px;overflow-y:auto;max-height:300px}.pel-data-table .el-affix--fixed .pel-data-table-footer-wrapper{border-top:1px solid var(--el-border-color-lighter)}.pel-data-table-pagination{justify-content:flex-end;padding:16px 0;background:#fff}.pel-data-table .el-table{--el-table-header-bg-color: var(--el-fill-color);scroll-margin-top:calc(var(--fa8d89e2) * 1px)}.pel-data-table .el-table .cell:not(.el-tooltip){text-overflow:unset}.pel-data-table .el-table th.el-table__cell{padding-top:10px;padding-bottom:10px}.pel-data-table .el-table__header-wrapper{z-index:5}.pel-data-table .el-table .el-scrollbar__bar.is-horizontal.fixed{position:fixed;bottom:calc(var(--0447c9c7) + var(--10469d33));left:unset;right:unset}.pel-data-table-cell-tooltip{max-width:300px}.el-dialog{--el-dialog-border-radius: 12px !important;--el-dialog-padding-primary: 32px !important;--el-dialog-padding-x: 32px;--el-dialog-padding-y: 20px;--el-dialog-margin-top: 8vh !important;--el-dialog-width: 95%;display:flex;flex-direction:column;padding:0}.el-dialog__scrollbar{padding-left:32px;padding-right:32px}.el-dialog__small{max-width:450px}.el-dialog__large{max-width:960px}.el-dialog__default{max-width:680px}.el-dialog:not(.is-align-center){max-height:calc(100vh - var(--el-dialog-margin-top) - 50px)}.el-dialog.is-align-center{max-height:calc(100vh - 100px)}.el-dialog__header{z-index:2;flex-shrink:0;padding-top:var(--el-dialog-padding-y);padding-left:var(--el-dialog-padding-x);padding-bottom:var(--el-dialog-padding-y)}.el-dialog__header-shadow{box-shadow:0 0 6px #0000001a}.el-dialog__footer{flex-shrink:0;padding-top:var(--el-dialog-padding-y);padding-bottom:var(--el-dialog-padding-y);padding-left:var(--el-dialog-padding-x);padding-right:var(--el-dialog-padding-x)}.el-dialog__footer-shadow{box-shadow:0 -1px 6px #0000001a}.el-dialog__body{flex-grow:1;padding-left:0;padding-right:0;overflow:hidden;display:flex;flex-direction:column}.el-dialog__body .el-scrollbar{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.el-dialog__headerbtn{top:12px;right:15px}.pel-image-error{display:flex;flex-direction:column;gap:8px}.pel-image-refresh-button{display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer}.pel-image .el-loading-spinner{margin-top:0;transform:translateY(-50%)}.pel-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:var(--el-fill-color-light)}.pel-image-placeholder-loading{color:var(--el-text-color-placeholder)}.pel-image-empty{position:relative;background-color:var(--el-fill-color-light)}.pel-image-empty-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:24px;color:var(--el-text-color-placeholder)}.el-drawer{--el-drawer-border-radius: 12px;--el-drawer-padding-x: 32px;--el-drawer-padding-y: 20px;display:flex;flex-direction:column;padding:0}.el-drawer__rtl{border-top-left-radius:var(--el-drawer-border-radius);border-bottom-left-radius:var(--el-drawer-border-radius)}.el-drawer__ltr{border-top-right-radius:var(--el-drawer-border-radius);border-bottom-right-radius:var(--el-drawer-border-radius)}.el-drawer__ttb{border-bottom-left-radius:var(--el-drawer-border-radius);border-bottom-right-radius:var(--el-drawer-border-radius)}.el-drawer__btt{border-top-left-radius:var(--el-drawer-border-radius);border-top-right-radius:var(--el-drawer-border-radius)}.el-drawer__scrollbar{padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-x)}.el-drawer__rtl.el-drawer__small,.el-drawer__ltr.el-drawer__small{max-width:380px}.el-drawer__rtl.el-drawer__large,.el-drawer__ltr.el-drawer__large{max-width:680px}.el-drawer__rtl.el-drawer__default,.el-drawer__ltr.el-drawer__default{max-width:450px}.el-drawer__ttb.el-drawer__small,.el-drawer__btt.el-drawer__small{max-height:380px}.el-drawer__ttb.el-drawer__large,.el-drawer__btt.el-drawer__large{max-height:680px}.el-drawer__ttb.el-drawer__default,.el-drawer__btt.el-drawer__default{max-height:450px}.el-drawer__header{z-index:2;flex-shrink:0;padding-top:var(--el-drawer-padding-y);padding-bottom:var(--el-drawer-padding-y);padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-y);margin-bottom:0}.el-drawer__header-shadow{box-shadow:0 2px 12px #0000001a}.el-drawer__footer{flex-shrink:0;padding-top:var(--el-drawer-padding-y);padding-bottom:var(--el-drawer-padding-y);padding-left:var(--el-drawer-padding-x);padding-right:var(--el-drawer-padding-y)}.el-drawer__footer-shadow{box-shadow:0 -1px 6px #0000001a}.el-drawer__body{display:flex;flex-grow:1;flex-direction:column;padding:0;overflow:hidden}.el-drawer__body .el-scrollbar{flex-grow:1;flex-direction:column;display:flex;overflow:hidden}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hinen/pro-element-plus",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",