nuxt-ui-tools 0.1.3 → 1.0.0
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.
- package/dist/module.d.mts +2 -0
- package/dist/module.json +5 -5
- package/dist/module.mjs +239 -67
- package/dist/runtime/form/components/actions/{FormActions.vue → form-actions.vue} +45 -22
- package/dist/runtime/form/components/layout/{DrawerLayout.vue → drawer-layout.vue} +13 -10
- package/dist/runtime/form/components/layout/{FullscreenLayout.vue → fullscreen-layout.vue} +1 -1
- package/dist/runtime/form/components/layout/{ModalLayout.vue → modal-layout.vue} +7 -5
- package/dist/runtime/form/components/provider/{FormOverlayHost.vue → form-overlay-host.vue} +7 -5
- package/dist/runtime/form/components/provider/{FormProvider.vue → form-provider.vue} +2 -2
- package/dist/runtime/form/components/renderer/{FormCompositeControl.vue → form-composite-control.vue} +1 -1
- package/dist/runtime/{spreadsheet/components/shared/SpreadsheetObjectPreviewTable.d.vue.ts → form/components/renderer/form-field-error.d.vue.ts} +2 -1
- package/dist/runtime/form/components/renderer/form-field-error.vue +16 -0
- package/dist/runtime/{spreadsheet/components/shared/SpreadsheetObjectPreviewTable.vue.d.ts → form/components/renderer/form-field-error.vue.d.ts} +2 -1
- package/dist/runtime/form/components/renderer/{FormFieldRenderer.d.vue.ts → form-field-renderer.d.vue.ts} +2 -1
- package/dist/runtime/form/components/renderer/{FormFieldRenderer.vue → form-field-renderer.vue} +64 -15
- package/dist/runtime/form/components/renderer/{FormFieldRenderer.vue.d.ts → form-field-renderer.vue.d.ts} +2 -1
- package/dist/runtime/form/components/renderer/{FormFieldShell.d.vue.ts → form-field-shell.d.vue.ts} +7 -7
- package/dist/runtime/form/components/renderer/{FormFieldShell.vue → form-field-shell.vue} +120 -18
- package/dist/runtime/form/components/renderer/{FormFieldShell.vue.d.ts → form-field-shell.vue.d.ts} +7 -7
- package/dist/runtime/form/components/renderer/form-field-status.d.vue.ts +22 -0
- package/dist/runtime/form/components/renderer/form-field-status.vue +24 -0
- package/dist/runtime/form/components/renderer/form-field-status.vue.d.ts +22 -0
- package/dist/runtime/form/components/root/{Form.d.vue.ts → form.d.vue.ts} +14 -15
- package/dist/runtime/form/components/root/form.vue +510 -0
- package/dist/runtime/form/components/root/{Form.vue.d.ts → form.vue.d.ts} +14 -15
- package/dist/runtime/form/components/utils/form-directional-transition.d.vue.ts +22 -0
- package/dist/runtime/form/components/utils/form-directional-transition.vue +26 -0
- package/dist/runtime/form/components/utils/form-directional-transition.vue.d.ts +22 -0
- package/dist/runtime/form/components/utils/form-file-preview.d.vue.ts +10 -0
- package/dist/runtime/form/components/utils/form-file-preview.vue +127 -0
- package/dist/runtime/form/components/utils/form-file-preview.vue.d.ts +10 -0
- package/dist/runtime/form/components/utils/form-option-item-label.d.vue.ts +7 -0
- package/dist/runtime/form/components/utils/form-option-item-label.vue +30 -0
- package/dist/runtime/form/components/utils/form-option-item-label.vue.d.ts +7 -0
- package/dist/runtime/form/components/utils/form-option-menu-footer.d.vue.ts +14 -0
- package/dist/runtime/form/components/utils/form-option-menu-footer.vue +120 -0
- package/dist/runtime/form/components/utils/form-option-menu-footer.vue.d.ts +14 -0
- package/dist/runtime/form/composables/use-field-control.d.ts +48 -18
- package/dist/runtime/form/composables/use-field-control.js +193 -86
- package/dist/runtime/form/composables/use-field-effects.d.ts +2 -0
- package/dist/runtime/form/composables/use-field-effects.js +74 -0
- package/dist/runtime/form/composables/use-field-options.d.ts +23 -11
- package/dist/runtime/form/composables/use-field-options.js +199 -67
- package/dist/runtime/form/composables/use-form-actions.js +51 -26
- package/dist/runtime/form/composables/use-form-api.js +45 -28
- package/dist/runtime/form/composables/use-form-context-resources.d.ts +2 -2
- package/dist/runtime/form/composables/use-form-context-resources.js +37 -27
- package/dist/runtime/form/composables/use-form-focus.d.ts +3 -3
- package/dist/runtime/form/composables/use-form-focus.js +22 -11
- package/dist/runtime/form/composables/use-form-layout.d.ts +1 -1
- package/dist/runtime/form/composables/use-form-option-registry.d.ts +1 -1
- package/dist/runtime/form/composables/use-form-option-registry.js +35 -17
- package/dist/runtime/form/composables/use-form-overlay-controller.d.ts +6 -6
- package/dist/runtime/form/composables/use-form-overlay-controller.js +18 -12
- package/dist/runtime/form/composables/use-form-runtime.d.ts +1 -2
- package/dist/runtime/form/composables/use-form-runtime.js +388 -188
- package/dist/runtime/form/composables/use-form-state.d.ts +14 -10
- package/dist/runtime/form/composables/use-form-state.js +47 -14
- package/dist/runtime/form/composables/use-form-submission.d.ts +13 -0
- package/dist/runtime/form/composables/use-form-submission.js +74 -0
- package/dist/runtime/form/composables/use-form-ui.d.ts +5 -5
- package/dist/runtime/form/composables/use-form-ui.js +6 -4
- package/dist/runtime/form/composables/use-form-upload-registry.d.ts +1 -1
- package/dist/runtime/form/composables/use-form-upload-registry.js +4 -2
- package/dist/runtime/form/composables/use-form-validation.d.ts +22 -12
- package/dist/runtime/form/composables/use-form-validation.js +1012 -55
- package/dist/runtime/form/composables/use-form.d.ts +2 -2
- package/dist/runtime/form/composables/use-form.js +53 -44
- package/dist/runtime/form/composables/use-remote-field-options.d.ts +29 -0
- package/dist/runtime/form/composables/use-remote-field-options.js +468 -0
- package/dist/runtime/form/fields/array-collapse/component.d.vue.ts +8 -0
- package/dist/runtime/form/fields/array-collapse/component.vue +295 -0
- package/dist/runtime/form/fields/array-collapse/component.vue.d.ts +8 -0
- package/dist/runtime/form/fields/array-collapse/config.d.ts +12 -0
- package/dist/runtime/form/fields/array-collapse/config.js +7 -0
- package/dist/runtime/form/fields/array-collapse/index.d.ts +2 -0
- package/dist/runtime/form/fields/array-collapse/index.js +1 -0
- package/dist/runtime/form/fields/array-collapse/types.d.ts +13 -0
- package/dist/runtime/form/fields/array-collapse/types.js +0 -0
- package/dist/runtime/form/fields/array-list/component.vue +223 -330
- package/dist/runtime/form/fields/array-list/config.d.ts +6 -6
- package/dist/runtime/form/fields/array-list/config.js +3 -3
- package/dist/runtime/form/fields/array-list/types.d.ts +23 -15
- package/dist/runtime/form/fields/array-list/use-array-items.d.ts +56 -0
- package/dist/runtime/form/fields/array-list/use-array-items.js +263 -0
- package/dist/runtime/form/fields/array-primitive/component.d.vue.ts +8 -0
- package/dist/runtime/form/fields/array-primitive/component.vue +274 -0
- package/dist/runtime/form/fields/array-primitive/component.vue.d.ts +8 -0
- package/dist/runtime/form/fields/array-primitive/config.d.ts +14 -0
- package/dist/runtime/form/fields/array-primitive/config.js +9 -0
- package/dist/runtime/form/fields/array-primitive/index.d.ts +2 -0
- package/dist/runtime/form/fields/array-primitive/index.js +1 -0
- package/dist/runtime/form/fields/array-primitive/types.d.ts +52 -0
- package/dist/runtime/form/fields/array-primitive/types.js +0 -0
- package/dist/runtime/form/fields/array-table/component.vue +192 -271
- package/dist/runtime/form/fields/array-table/config.d.ts +6 -6
- package/dist/runtime/form/fields/array-table/config.js +3 -3
- package/dist/runtime/form/fields/array-table/types.d.ts +5 -3
- package/dist/runtime/form/fields/array-tabs/config.d.ts +6 -6
- package/dist/runtime/form/fields/array-tabs/config.js +3 -3
- package/dist/runtime/form/fields/array-tabs/types.d.ts +7 -5
- package/dist/runtime/form/fields/array-variant/config.d.ts +6 -6
- package/dist/runtime/form/fields/array-variant/config.js +3 -3
- package/dist/runtime/form/fields/array-variant/types.d.ts +9 -11
- package/dist/runtime/form/fields/auto-complete/component.vue +72 -50
- package/dist/runtime/form/fields/auto-complete/config.d.ts +8 -8
- package/dist/runtime/form/fields/auto-complete/config.js +5 -5
- package/dist/runtime/form/fields/auto-complete/types.d.ts +8 -6
- package/dist/runtime/form/fields/button/component.vue +4 -4
- package/dist/runtime/form/fields/button/config.d.ts +2 -2
- package/dist/runtime/form/fields/button/config.js +2 -2
- package/dist/runtime/form/fields/button/types.d.ts +4 -2
- package/dist/runtime/form/fields/card/component.vue +6 -5
- package/dist/runtime/form/fields/card/config.d.ts +6 -6
- package/dist/runtime/form/fields/card/config.js +3 -3
- package/dist/runtime/form/fields/card/types.d.ts +1 -1
- package/dist/runtime/form/fields/cascader/config.d.ts +8 -8
- package/dist/runtime/form/fields/cascader/config.js +5 -5
- package/dist/runtime/form/fields/checkbox/component.vue +1 -1
- package/dist/runtime/form/fields/checkbox/config.d.ts +6 -6
- package/dist/runtime/form/fields/checkbox/config.js +5 -5
- package/dist/runtime/form/fields/checkbox/types.d.ts +1 -1
- package/dist/runtime/form/fields/checkbox-card/component.vue +16 -6
- package/dist/runtime/form/fields/checkbox-card/config.d.ts +8 -8
- package/dist/runtime/form/fields/checkbox-card/config.js +5 -5
- package/dist/runtime/form/fields/checkbox-card/types.d.ts +9 -4
- package/dist/runtime/form/fields/checkbox-group/component.vue +17 -7
- package/dist/runtime/form/fields/checkbox-group/config.d.ts +8 -8
- package/dist/runtime/form/fields/checkbox-group/config.js +5 -5
- package/dist/runtime/form/fields/checkbox-group/types.d.ts +4 -2
- package/dist/runtime/form/fields/color-picker/component.vue +41 -16
- package/dist/runtime/form/fields/color-picker/config.d.ts +6 -6
- package/dist/runtime/form/fields/color-picker/config.js +5 -5
- package/dist/runtime/form/fields/color-picker/types.d.ts +2 -1
- package/dist/runtime/form/fields/column/component.vue +1 -1
- package/dist/runtime/form/fields/column/config.d.ts +3 -3
- package/dist/runtime/form/fields/column/config.js +2 -2
- package/dist/runtime/form/fields/column/types.d.ts +1 -1
- package/dist/runtime/form/fields/custom-component/component.vue +1 -1
- package/dist/runtime/form/fields/custom-component/config.d.ts +6 -6
- package/dist/runtime/form/fields/custom-component/config.js +5 -5
- package/dist/runtime/form/fields/custom-component/types.d.ts +3 -2
- package/dist/runtime/form/fields/date/component.d.vue.ts +1 -1
- package/dist/runtime/form/fields/date/component.vue +3 -323
- package/dist/runtime/form/fields/date/component.vue.d.ts +1 -1
- package/dist/runtime/form/fields/date/config.d.ts +6 -6
- package/dist/runtime/form/fields/date/config.js +5 -5
- package/dist/runtime/form/fields/date/types.d.ts +7 -13
- package/dist/runtime/form/fields/date-family/component.d.vue.ts +2 -1
- package/dist/runtime/form/fields/date-family/component.vue +500 -95
- package/dist/runtime/form/fields/date-family/component.vue.d.ts +2 -1
- package/dist/runtime/form/fields/date-family/types.d.ts +28 -12
- package/dist/runtime/form/fields/date-family/utils.d.ts +33 -0
- package/dist/runtime/form/fields/date-family/utils.js +370 -0
- package/dist/runtime/form/fields/date-range/config.d.ts +6 -6
- package/dist/runtime/form/fields/date-range/config.js +5 -5
- package/dist/runtime/form/fields/date-time/config.d.ts +6 -6
- package/dist/runtime/form/fields/date-time/config.js +5 -5
- package/dist/runtime/form/fields/date-time-range/config.d.ts +6 -6
- package/dist/runtime/form/fields/date-time-range/config.js +5 -5
- package/dist/runtime/form/fields/divider/config.d.ts +2 -2
- package/dist/runtime/form/fields/divider/config.js +2 -2
- package/dist/runtime/form/fields/divider/types.d.ts +1 -1
- package/dist/runtime/form/fields/file/component.vue +63 -12
- package/dist/runtime/form/fields/file/config.d.ts +6 -6
- package/dist/runtime/form/fields/file/config.js +5 -5
- package/dist/runtime/form/fields/file/types.d.ts +13 -3
- package/dist/runtime/form/fields/group/component.vue +7 -3
- package/dist/runtime/form/fields/group/config.d.ts +6 -6
- package/dist/runtime/form/fields/group/config.js +3 -3
- package/dist/runtime/form/fields/group/types.d.ts +1 -1
- package/dist/runtime/form/fields/hidden/component.vue +7 -2
- package/dist/runtime/form/fields/hidden/config.d.ts +2 -2
- package/dist/runtime/form/fields/hidden/config.js +3 -3
- package/dist/runtime/form/fields/hidden/types.d.ts +3 -3
- package/dist/runtime/form/fields/hierarchy/component.vue +230 -80
- package/dist/runtime/form/fields/hierarchy/{SelectionRadio.vue → selection-radio.vue} +1 -1
- package/dist/runtime/form/fields/hierarchy/types.d.ts +21 -11
- package/dist/runtime/form/fields/hierarchy/utils.d.ts +1 -1
- package/dist/runtime/form/fields/hierarchy/utils.js +18 -7
- package/dist/runtime/form/fields/index.d.ts +236 -246
- package/dist/runtime/form/fields/index.js +9 -49
- package/dist/runtime/form/fields/info/component.vue +12 -10
- package/dist/runtime/form/fields/info/config.d.ts +2 -2
- package/dist/runtime/form/fields/info/config.js +2 -2
- package/dist/runtime/form/fields/info/types.d.ts +8 -2
- package/dist/runtime/form/fields/input-group/component.vue +50 -4
- package/dist/runtime/form/fields/input-group/config.d.ts +6 -6
- package/dist/runtime/form/fields/input-group/config.js +3 -3
- package/dist/runtime/form/fields/input-group/types.d.ts +3 -1
- package/dist/runtime/form/fields/matrix/component.vue +44 -9
- package/dist/runtime/form/fields/matrix/config.d.ts +7 -7
- package/dist/runtime/form/fields/matrix/config.js +5 -5
- package/dist/runtime/form/fields/matrix/types.d.ts +9 -2
- package/dist/runtime/form/fields/month/config.d.ts +6 -6
- package/dist/runtime/form/fields/month/config.js +5 -5
- package/dist/runtime/form/fields/month-range/config.d.ts +6 -6
- package/dist/runtime/form/fields/month-range/config.js +5 -5
- package/dist/runtime/form/fields/number/component.vue +115 -21
- package/dist/runtime/form/fields/number/config.d.ts +6 -6
- package/dist/runtime/form/fields/number/config.js +5 -5
- package/dist/runtime/form/fields/number/types.d.ts +8 -1
- package/dist/runtime/form/fields/object/component.vue +3 -3
- package/dist/runtime/form/fields/object/config.d.ts +7 -7
- package/dist/runtime/form/fields/object/config.js +4 -4
- package/dist/runtime/form/fields/object/types.d.ts +3 -2
- package/dist/runtime/form/fields/one-time-code/component.vue +21 -9
- package/dist/runtime/form/fields/one-time-code/config.d.ts +6 -6
- package/dist/runtime/form/fields/one-time-code/config.js +5 -5
- package/dist/runtime/form/fields/one-time-code/types.d.ts +2 -1
- package/dist/runtime/form/fields/password/component.vue +66 -10
- package/dist/runtime/form/fields/password/config.d.ts +6 -6
- package/dist/runtime/form/fields/password/config.js +5 -5
- package/dist/runtime/form/fields/password/types.d.ts +10 -1
- package/dist/runtime/form/fields/phone-number/component.vue +95 -34
- package/dist/runtime/form/fields/phone-number/config.d.ts +6 -6
- package/dist/runtime/form/fields/phone-number/config.js +5 -5
- package/dist/runtime/form/fields/phone-number/types.d.ts +4 -1
- package/dist/runtime/form/fields/radio/component.vue +9 -3
- package/dist/runtime/form/fields/radio/config.d.ts +8 -8
- package/dist/runtime/form/fields/radio/config.js +5 -5
- package/dist/runtime/form/fields/radio/types.d.ts +6 -1
- package/dist/runtime/form/fields/radio-card/component.vue +24 -5
- package/dist/runtime/form/fields/radio-card/config.d.ts +8 -8
- package/dist/runtime/form/fields/radio-card/config.js +5 -5
- package/dist/runtime/form/fields/radio-card/types.d.ts +4 -2
- package/dist/runtime/form/fields/rating/component.vue +25 -15
- package/dist/runtime/form/fields/rating/config.d.ts +6 -6
- package/dist/runtime/form/fields/rating/config.js +5 -5
- package/dist/runtime/form/fields/rating/types.d.ts +2 -1
- package/dist/runtime/form/fields/section/component.d.vue.ts +8 -0
- package/dist/runtime/form/fields/section/component.vue +46 -0
- package/dist/runtime/form/fields/section/component.vue.d.ts +8 -0
- package/dist/runtime/form/fields/section/config.d.ts +7 -0
- package/dist/runtime/form/fields/section/config.js +6 -0
- package/dist/runtime/form/fields/section/index.d.ts +2 -0
- package/dist/runtime/form/fields/section/index.js +1 -0
- package/dist/runtime/form/fields/section/types.d.ts +10 -0
- package/dist/runtime/form/fields/section/types.js +0 -0
- package/dist/runtime/form/fields/select/component.vue +103 -87
- package/dist/runtime/form/fields/select/config.d.ts +8 -8
- package/dist/runtime/form/fields/select/config.js +5 -5
- package/dist/runtime/form/fields/select/types.d.ts +9 -6
- package/dist/runtime/form/fields/slider/component.vue +16 -11
- package/dist/runtime/form/fields/slider/config.d.ts +6 -6
- package/dist/runtime/form/fields/slider/config.js +5 -5
- package/dist/runtime/form/fields/slider/types.d.ts +4 -2
- package/dist/runtime/form/fields/switch/component.vue +10 -9
- package/dist/runtime/form/fields/switch/config.d.ts +6 -6
- package/dist/runtime/form/fields/switch/config.js +5 -5
- package/dist/runtime/form/fields/switch/types.d.ts +6 -9
- package/dist/runtime/form/fields/switch-group/component.vue +7 -6
- package/dist/runtime/form/fields/switch-group/config.d.ts +8 -8
- package/dist/runtime/form/fields/switch-group/config.js +5 -5
- package/dist/runtime/form/fields/switch-group/types.d.ts +4 -2
- package/dist/runtime/form/fields/tabs/component.d.vue.ts +9 -0
- package/dist/runtime/form/fields/tabs/component.vue +116 -0
- package/dist/runtime/form/fields/tabs/component.vue.d.ts +9 -0
- package/dist/runtime/form/fields/tabs/config.d.ts +8 -0
- package/dist/runtime/form/fields/tabs/config.js +6 -0
- package/dist/runtime/form/fields/tabs/index.d.ts +2 -0
- package/dist/runtime/form/fields/tabs/index.js +1 -0
- package/dist/runtime/form/fields/tabs/types.d.ts +21 -0
- package/dist/runtime/form/fields/tabs/types.js +0 -0
- package/dist/runtime/form/fields/tag/component.vue +3 -2
- package/dist/runtime/form/fields/tag/config.d.ts +6 -6
- package/dist/runtime/form/fields/tag/config.js +5 -5
- package/dist/runtime/form/fields/tag/types.d.ts +1 -1
- package/dist/runtime/form/fields/text/component.vue +104 -15
- package/dist/runtime/form/fields/text/config.d.ts +6 -6
- package/dist/runtime/form/fields/text/config.js +5 -5
- package/dist/runtime/form/fields/text/types.d.ts +13 -1
- package/dist/runtime/form/fields/textarea/component.vue +9 -4
- package/dist/runtime/form/fields/textarea/config.d.ts +6 -6
- package/dist/runtime/form/fields/textarea/config.js +5 -5
- package/dist/runtime/form/fields/textarea/types.d.ts +6 -1
- package/dist/runtime/form/fields/time/component.vue +73 -182
- package/dist/runtime/form/fields/time/config.d.ts +6 -6
- package/dist/runtime/form/fields/time/config.js +5 -5
- package/dist/runtime/form/fields/time/types.d.ts +2 -1
- package/dist/runtime/form/fields/tree/config.d.ts +8 -8
- package/dist/runtime/form/fields/tree/config.js +5 -5
- package/dist/runtime/form/fields/tree-select/config.d.ts +8 -8
- package/dist/runtime/form/fields/tree-select/config.js +5 -5
- package/dist/runtime/form/fields/upload/component.vue +96 -20
- package/dist/runtime/form/fields/upload/config.d.ts +6 -6
- package/dist/runtime/form/fields/upload/config.js +5 -5
- package/dist/runtime/form/fields/upload/types.d.ts +20 -10
- package/dist/runtime/form/fields/year/config.d.ts +6 -6
- package/dist/runtime/form/fields/year/config.js +5 -5
- package/dist/runtime/form/index.d.ts +0 -1
- package/dist/runtime/form/index.js +0 -1
- package/dist/runtime/form/schema/index.d.ts +14 -14
- package/dist/runtime/form/types/actions.d.ts +3 -3
- package/dist/runtime/form/types/api.d.ts +80 -24
- package/dist/runtime/form/types/callbacks.d.ts +3 -2
- package/dist/runtime/form/types/context.d.ts +12 -9
- package/dist/runtime/form/types/controller.d.ts +13 -12
- package/dist/runtime/form/types/dependencies.d.ts +5 -4
- package/dist/runtime/form/types/field-base.d.ts +59 -26
- package/dist/runtime/form/types/field-output-utils.d.ts +3 -0
- package/dist/runtime/form/types/field-output.d.ts +8 -2
- package/dist/runtime/form/types/field.d.ts +9 -1
- package/dist/runtime/form/types/form-api.d.ts +14 -7
- package/dist/runtime/form/types/layout.d.ts +11 -0
- package/dist/runtime/form/types/options-runtime.d.ts +30 -23
- package/dist/runtime/form/types/options.d.ts +76 -5
- package/dist/runtime/form/types/output.d.ts +29 -16
- package/dist/runtime/form/types/overlay.d.ts +3 -2
- package/dist/runtime/form/types/runtime.d.ts +11 -8
- package/dist/runtime/form/types/schema.d.ts +31 -13
- package/dist/runtime/form/types/transform.d.ts +2 -1
- package/dist/runtime/form/types/ui.d.ts +54 -0
- package/dist/runtime/form/types/upload-runtime.d.ts +2 -1
- package/dist/runtime/form/types/utils.d.ts +2 -0
- package/dist/runtime/form/types/validation.d.ts +11 -3
- package/dist/runtime/form/utils/api.js +6 -5
- package/dist/runtime/form/utils/array.d.ts +2 -2
- package/dist/runtime/form/utils/array.js +11 -3
- package/dist/runtime/form/utils/compare.d.ts +2 -0
- package/dist/runtime/form/utils/compare.js +27 -0
- package/dist/runtime/form/utils/dependencies.js +16 -5
- package/dist/runtime/form/utils/field-instance.d.ts +1 -1
- package/dist/runtime/form/utils/field-instance.js +55 -29
- package/dist/runtime/form/utils/focus.js +22 -9
- package/dist/runtime/form/utils/layout.js +10 -3
- package/dist/runtime/form/utils/mask.d.ts +7 -0
- package/dist/runtime/form/utils/mask.js +44 -0
- package/dist/runtime/form/utils/options.d.ts +11 -5
- package/dist/runtime/form/utils/options.js +57 -19
- package/dist/runtime/form/utils/overlay.d.ts +8 -8
- package/dist/runtime/form/utils/overlay.js +22 -7
- package/dist/runtime/form/utils/predicate.d.ts +9 -0
- package/dist/runtime/form/utils/predicate.js +35 -0
- package/dist/runtime/form/utils/state.d.ts +21 -9
- package/dist/runtime/form/utils/state.js +504 -134
- package/dist/runtime/form/utils/text.d.ts +8 -1
- package/dist/runtime/form/utils/text.js +37 -2
- package/dist/runtime/form/utils/ui.d.ts +2 -2
- package/dist/runtime/form/utils/ui.js +30 -17
- package/dist/runtime/i18n/define-locale.js +14 -9
- package/dist/runtime/i18n/locales/en.js +291 -208
- package/dist/runtime/i18n/locales/fr.js +291 -208
- package/dist/runtime/i18n/types.d.ts +83 -0
- package/dist/runtime/i18n/use-locale.d.ts +1 -1
- package/dist/runtime/i18n/use-locale.js +9 -6
- package/dist/runtime/i18n/utils.d.ts +1 -1
- package/dist/runtime/i18n/utils.js +8 -5
- package/dist/runtime/query-prefetch/index.d.ts +2 -0
- package/dist/runtime/query-prefetch/index.js +2 -0
- package/dist/runtime/query-prefetch/plugins/link-prefetch.client.d.ts +2 -0
- package/dist/runtime/query-prefetch/plugins/link-prefetch.client.js +8 -0
- package/dist/runtime/query-prefetch/types/index.d.ts +2 -0
- package/dist/runtime/query-prefetch/types/index.js +2 -0
- package/dist/runtime/query-prefetch/types/page.d.ts +55 -0
- package/dist/runtime/query-prefetch/types/page.js +0 -0
- package/dist/runtime/query-prefetch/types/plan.d.ts +55 -0
- package/dist/runtime/query-prefetch/types/plan.js +0 -0
- package/dist/runtime/query-prefetch/utils/index.d.ts +3 -0
- package/dist/runtime/query-prefetch/utils/index.js +3 -0
- package/dist/runtime/query-prefetch/utils/page.d.ts +24 -0
- package/dist/runtime/query-prefetch/utils/page.js +63 -0
- package/dist/runtime/query-prefetch/utils/plan.d.ts +29 -0
- package/dist/runtime/query-prefetch/utils/plan.js +67 -0
- package/dist/runtime/query-prefetch/utils/prefetch-page.d.ts +17 -0
- package/dist/runtime/query-prefetch/utils/prefetch-page.js +57 -0
- package/dist/runtime/query-state/client.d.ts +6 -6
- package/dist/runtime/query-state/client.js +39 -20
- package/dist/runtime/query-state/codecs.js +13 -5
- package/dist/runtime/query-state/composables.d.ts +10 -8
- package/dist/runtime/query-state/composables.js +46 -25
- package/dist/runtime/shared/composables/use-range-select.d.ts +1 -1
- package/dist/runtime/shared/composables/use-range-select.js +4 -2
- package/dist/runtime/shared/composables/use-responsive-value.d.ts +4 -3
- package/dist/runtime/shared/composables/use-responsive-value.js +20 -11
- package/dist/runtime/shared/styles/scrollbars.css +1 -0
- package/dist/runtime/shared/styles/tokens.css +1 -0
- package/dist/runtime/shared/types/utils.d.ts +15 -12
- package/dist/runtime/shared/utils/object.d.ts +6 -4
- package/dist/runtime/shared/utils/object.js +53 -33
- package/dist/runtime/shared/utils/path.d.ts +6 -4
- package/dist/runtime/shared/utils/path.js +31 -13
- package/dist/runtime/shared/utils/predicate.d.ts +102 -209
- package/dist/runtime/shared/utils/predicate.js +50 -28
- package/dist/runtime/shared/utils/registry.js +1 -0
- package/dist/runtime/shared/utils/render.d.ts +1 -1
- package/dist/runtime/shared/utils/render.js +12 -4
- package/dist/runtime/shared/utils/responsive.d.ts +4 -3
- package/dist/runtime/shared/utils/responsive.js +45 -15
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.d.vue.ts +7 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetObjectPreviewTable.vue → spreadsheet-object-preview-table.vue} +11 -8
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue.d.ts +7 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.vue → spreadsheet-raw-preview-table.vue} +2 -2
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.d.vue.ts → spreadsheet-summary-stats.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.vue.d.ts → spreadsheet-summary-stats.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.d.vue.ts +10 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetValuePreview.vue → spreadsheet-value-preview.vue} +10 -3
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue.d.ts +10 -0
- package/dist/runtime/spreadsheet/components/{SpreadsheetImport.vue → spreadsheet-import.vue} +50 -26
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.d.vue.ts → spreadsheet-matching-summary.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.vue → spreadsheet-matching-summary.vue} +9 -3
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.vue.d.ts → spreadsheet-matching-summary.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.d.vue.ts → spreadsheet-matching-table.d.vue.ts} +6 -6
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.vue → spreadsheet-matching-table.vue} +18 -12
- package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.vue.d.ts → spreadsheet-matching-table.vue.d.ts} +6 -6
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.d.vue.ts → spreadsheet-references-accordion.d.vue.ts} +4 -4
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.vue.d.ts → spreadsheet-references-accordion.vue.d.ts} +4 -4
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.d.vue.ts → spreadsheet-references-summary.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.vue.d.ts → spreadsheet-references-summary.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.d.vue.ts → spreadsheet-review-inspection.d.vue.ts} +8 -8
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.vue → spreadsheet-review-inspection.vue} +13 -9
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.vue.d.ts → spreadsheet-review-inspection.vue.d.ts} +8 -8
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.d.vue.ts → spreadsheet-review-stats.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.vue.d.ts → spreadsheet-review-stats.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.vue → spreadsheet-import-matching-step.vue} +30 -25
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.vue → spreadsheet-import-references-step.vue} +63 -41
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.vue → spreadsheet-import-review-step.vue} +14 -9
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.vue → spreadsheet-import-structure-step.vue} +4 -4
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.vue → spreadsheet-import-upload-step.vue} +10 -5
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.d.vue.ts → spreadsheet-structure-preview-table.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.vue → spreadsheet-structure-preview-table.vue} +3 -3
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.vue.d.ts → spreadsheet-structure-preview-table.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.d.vue.ts → spreadsheet-structure-sheet-list.d.vue.ts} +2 -2
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.vue.d.ts → spreadsheet-structure-sheet-list.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +9 -9
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +7 -7
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +10 -10
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +5 -5
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +2 -2
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +32 -30
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +336 -336
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +13 -17
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +21 -21
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +23 -21
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +83 -83
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +129 -100
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +7 -7
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +15 -11
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +12 -12
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +5 -5
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +8 -8
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +17 -13
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +2 -2
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +42 -36
- package/dist/runtime/spreadsheet/schema/index.d.ts +2 -2
- package/dist/runtime/spreadsheet/schema/index.js +3 -1
- package/dist/runtime/spreadsheet/schema/normalize.d.ts +26 -26
- package/dist/runtime/spreadsheet/schema/normalize.js +48 -39
- package/dist/runtime/spreadsheet/types/columns.d.ts +18 -24
- package/dist/runtime/spreadsheet/types/inference.d.ts +5 -5
- package/dist/runtime/spreadsheet/types/reference-session.d.ts +2 -1
- package/dist/runtime/spreadsheet/types/references.d.ts +8 -7
- package/dist/runtime/spreadsheet/types/resolution.d.ts +4 -4
- package/dist/runtime/spreadsheet/types/rows.d.ts +2 -2
- package/dist/runtime/spreadsheet/types/schema.d.ts +2 -1
- package/dist/runtime/spreadsheet/types/shared.d.ts +7 -0
- package/dist/runtime/spreadsheet/types/validation.d.ts +12 -12
- package/dist/runtime/spreadsheet/utils/builders/core.js +86 -74
- package/dist/runtime/spreadsheet/utils/context.d.ts +3 -3
- package/dist/runtime/spreadsheet/utils/context.js +1 -1
- package/dist/runtime/spreadsheet/utils/display.d.ts +2 -1
- package/dist/runtime/spreadsheet/utils/display.js +17 -7
- package/dist/runtime/spreadsheet/utils/object.d.ts +9 -8
- package/dist/runtime/spreadsheet/utils/object.js +23 -8
- package/dist/runtime/spreadsheet/utils/options.d.ts +9 -7
- package/dist/runtime/spreadsheet/utils/options.js +24 -8
- package/dist/runtime/spreadsheet/utils/references/candidates.js +11 -5
- package/dist/runtime/spreadsheet/utils/references/guards.d.ts +3 -3
- package/dist/runtime/spreadsheet/utils/references/guards.js +10 -6
- package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +7 -7
- package/dist/runtime/spreadsheet/utils/references/resolutions.js +60 -41
- package/dist/runtime/spreadsheet/utils/references/shared.d.ts +2 -1
- package/dist/runtime/spreadsheet/utils/references/shared.js +16 -6
- package/dist/runtime/spreadsheet/utils/references/sources.d.ts +5 -5
- package/dist/runtime/spreadsheet/utils/references/sources.js +11 -7
- package/dist/runtime/spreadsheet/utils/rows/headers.js +2 -2
- package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +1 -2
- package/dist/runtime/spreadsheet/utils/rows/matching.js +79 -39
- package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +2 -3
- package/dist/runtime/spreadsheet/utils/rows/parsing.js +72 -42
- package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +11 -12
- package/dist/runtime/spreadsheet/utils/rows/shared.js +133 -83
- package/dist/runtime/spreadsheet/utils/rows/summary.js +3 -3
- package/dist/runtime/spreadsheet/utils/source/core.js +22 -11
- package/dist/runtime/spreadsheet/utils/validation/core.d.ts +2 -2
- package/dist/runtime/spreadsheet/utils/validation/core.js +107 -88
- package/dist/runtime/table/builders/index.d.ts +1 -1
- package/dist/runtime/table/builders/index.js +24 -20
- package/dist/runtime/table/components/actions/{RowActions.d.vue.ts → row-actions.d.vue.ts} +7 -2
- package/dist/runtime/table/components/actions/row-actions.vue +111 -0
- package/dist/runtime/table/components/actions/{RowActions.vue.d.ts → row-actions.vue.d.ts} +7 -2
- package/dist/runtime/table/components/actions/{TableRowScopeProvider.d.vue.ts → table-row-scope-provider.d.vue.ts} +1 -1
- package/dist/runtime/table/components/actions/{TableRowScopeProvider.vue → table-row-scope-provider.vue} +1 -3
- package/dist/runtime/table/components/actions/{TableRowScopeProvider.vue.d.ts → table-row-scope-provider.vue.d.ts} +1 -1
- package/dist/runtime/table/components/{filters/panel/FilterPanel.d.vue.ts → data-list/data-list-actions-dropdown.d.vue.ts} +9 -8
- package/dist/runtime/table/components/data-list/data-list-actions-dropdown.vue +57 -0
- package/dist/runtime/table/components/{filters/panel/FilterPanel.vue.d.ts → data-list/data-list-actions-dropdown.vue.d.ts} +9 -8
- package/dist/runtime/table/components/data-list/data-list-actions-toolbar.d.vue.ts +15 -0
- package/dist/runtime/table/components/data-list/data-list-actions-toolbar.vue +23 -0
- package/dist/runtime/table/components/data-list/data-list-actions-toolbar.vue.d.ts +15 -0
- package/dist/runtime/table/components/data-list/{DataListAddFilter.vue → data-list-add-filter.vue} +1 -1
- package/dist/runtime/table/components/data-list/{DataListColumnPanel.d.vue.ts → data-list-column-panel.d.vue.ts} +6 -2
- package/dist/runtime/table/components/data-list/data-list-column-panel.vue +26 -0
- package/dist/runtime/table/components/data-list/{DataListColumnPanel.vue.d.ts → data-list-column-panel.vue.d.ts} +6 -2
- package/dist/runtime/table/components/data-list/{DataListContent.d.vue.ts → data-list-content.d.vue.ts} +7 -4
- package/dist/runtime/table/components/data-list/{DataListContent.vue → data-list-content.vue} +45 -17
- package/dist/runtime/table/components/data-list/{DataListContent.vue.d.ts → data-list-content.vue.d.ts} +7 -4
- package/dist/runtime/table/components/data-list/{DataListDefault.d.vue.ts → data-list-default.d.vue.ts} +20 -20
- package/dist/runtime/table/components/data-list/{DataListDefault.vue → data-list-default.vue} +32 -23
- package/dist/runtime/table/components/data-list/{DataListDefault.vue.d.ts → data-list-default.vue.d.ts} +20 -20
- package/dist/runtime/table/components/data-list/{DataListFilterPanel.d.vue.ts → data-list-filter-panel.d.vue.ts} +6 -1
- package/dist/runtime/table/components/data-list/data-list-filter-panel.vue +37 -0
- package/dist/runtime/table/components/data-list/{DataListFilterPanel.vue.d.ts → data-list-filter-panel.vue.d.ts} +6 -1
- package/dist/runtime/table/components/data-list/{DataListFilterTags.d.vue.ts → data-list-filter-tags.d.vue.ts} +9 -6
- package/dist/runtime/table/components/data-list/{DataListFilterTags.vue → data-list-filter-tags.vue} +7 -2
- package/dist/runtime/table/components/data-list/{DataListFilterTags.vue.d.ts → data-list-filter-tags.vue.d.ts} +9 -6
- package/dist/runtime/table/components/data-list/{DataListGrid.d.vue.ts → data-list-grid.d.vue.ts} +3 -1
- package/dist/runtime/table/components/data-list/{DataListGrid.vue → data-list-grid.vue} +7 -2
- package/dist/runtime/table/components/data-list/{DataListGrid.vue.d.ts → data-list-grid.vue.d.ts} +3 -1
- package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.d.vue.ts → data-list-infinite-loader.d.vue.ts} +12 -12
- package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.vue → data-list-infinite-loader.vue} +15 -3
- package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.vue.d.ts → data-list-infinite-loader.vue.d.ts} +12 -12
- package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.d.vue.ts → data-list-layout-switch.d.vue.ts} +5 -2
- package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.vue → data-list-layout-switch.vue} +31 -9
- package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.vue.d.ts → data-list-layout-switch.vue.d.ts} +5 -2
- package/dist/runtime/table/components/data-list/{DataListPagination.d.vue.ts → data-list-pagination.d.vue.ts} +8 -7
- package/dist/runtime/table/components/data-list/{DataListPagination.vue → data-list-pagination.vue} +4 -3
- package/dist/runtime/table/components/data-list/{DataListPagination.vue.d.ts → data-list-pagination.vue.d.ts} +8 -7
- package/dist/runtime/table/components/data-list/{DataListRefresh.d.vue.ts → data-list-refresh.d.vue.ts} +2 -1
- package/dist/runtime/table/components/data-list/{DataListRefresh.vue → data-list-refresh.vue} +26 -7
- package/dist/runtime/table/components/data-list/{DataListRefresh.vue.d.ts → data-list-refresh.vue.d.ts} +2 -1
- package/dist/runtime/table/components/data-list/{DataListResultCount.d.vue.ts → data-list-result-count.d.vue.ts} +2 -1
- package/dist/runtime/table/components/data-list/{DataListResultCount.vue → data-list-result-count.vue} +9 -2
- package/dist/runtime/table/components/data-list/{DataListResultCount.vue.d.ts → data-list-result-count.vue.d.ts} +2 -1
- package/dist/runtime/table/components/data-list/{DataListRoot.d.vue.ts → data-list-root.d.vue.ts} +5 -4
- package/dist/runtime/table/components/data-list/{DataListRoot.vue → data-list-root.vue} +30 -9
- package/dist/runtime/table/components/data-list/{DataListRoot.vue.d.ts → data-list-root.vue.d.ts} +5 -4
- package/dist/runtime/table/components/data-list/{DataListSearch.d.vue.ts → data-list-search.d.vue.ts} +2 -1
- package/dist/runtime/table/components/data-list/{DataListSearch.vue → data-list-search.vue} +8 -2
- package/dist/runtime/table/components/data-list/{DataListSearch.vue.d.ts → data-list-search.vue.d.ts} +2 -1
- package/dist/runtime/table/components/data-list/data-list-selection-actions.d.vue.ts +36 -0
- package/dist/runtime/table/components/data-list/data-list-selection-actions.vue +242 -0
- package/dist/runtime/table/components/data-list/data-list-selection-actions.vue.d.ts +36 -0
- package/dist/runtime/table/components/data-list/{DataListSortMenu.d.vue.ts → data-list-sort-menu.d.vue.ts} +11 -7
- package/dist/runtime/table/components/data-list/data-list-sort-menu.vue +187 -0
- package/dist/runtime/table/components/data-list/{DataListSortMenu.vue.d.ts → data-list-sort-menu.vue.d.ts} +11 -7
- package/dist/runtime/table/components/data-list/{DataListTable.d.vue.ts → data-list-table.d.vue.ts} +3 -1
- package/dist/runtime/table/components/data-list/{DataListTable.vue → data-list-table.vue} +7 -2
- package/dist/runtime/table/components/data-list/{DataListTable.vue.d.ts → data-list-table.vue.d.ts} +3 -1
- package/dist/runtime/table/components/data-list/sort-menu-panel.d.vue.ts +18 -0
- package/dist/runtime/table/components/data-list/sort-menu-panel.vue +86 -0
- package/dist/runtime/table/components/data-list/sort-menu-panel.vue.d.ts +18 -0
- package/dist/runtime/table/components/{DataList.d.vue.ts → data-list.d.vue.ts} +6 -5
- package/dist/runtime/table/components/{DataList.vue → data-list.vue} +4 -3
- package/dist/runtime/table/components/{DataList.vue.d.ts → data-list.vue.d.ts} +6 -5
- package/dist/runtime/table/components/drawers/{ColumnPanel.d.vue.ts → column-panel.d.vue.ts} +4 -2
- package/dist/runtime/table/components/drawers/column-panel.vue +431 -0
- package/dist/runtime/table/components/drawers/{ColumnPanel.vue.d.ts → column-panel.vue.d.ts} +4 -2
- package/dist/runtime/table/components/filters/panel/{BooleanFilterPanelField.d.vue.ts → boolean-filter-panel-field.d.vue.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/boolean-filter-panel-field.vue +69 -0
- package/dist/runtime/table/components/filters/panel/{BooleanFilterPanelField.vue.d.ts → boolean-filter-panel-field.vue.d.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.d.vue.ts → date-filter-panel-field.d.vue.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.vue → date-filter-panel-field.vue} +44 -19
- package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.vue.d.ts → date-filter-panel-field.vue.d.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/filter-panel-chips.d.vue.ts +23 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-chips.vue +74 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-chips.vue.d.ts +23 -0
- package/dist/runtime/table/components/filters/panel/{FilterPanelFieldShell.d.vue.ts → filter-panel-field-shell.d.vue.ts} +4 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-field-shell.vue +56 -0
- package/dist/runtime/table/components/filters/panel/{FilterPanelFieldShell.vue.d.ts → filter-panel-field-shell.vue.d.ts} +4 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-fields.d.vue.ts +8 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-fields.vue +46 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-fields.vue.d.ts +8 -0
- package/dist/runtime/table/components/filters/panel/{FilterPanelInputTrigger.d.vue.ts → filter-panel-input-trigger.d.vue.ts} +2 -0
- package/dist/runtime/table/components/filters/panel/filter-panel-input-trigger.vue +26 -0
- package/dist/runtime/table/components/filters/panel/{FilterPanelInputTrigger.vue.d.ts → filter-panel-input-trigger.vue.d.ts} +2 -0
- package/dist/runtime/table/components/filters/panel/filter-panel.d.vue.ts +35 -0
- package/dist/runtime/table/components/filters/panel/filter-panel.vue +330 -0
- package/dist/runtime/table/components/filters/panel/filter-panel.vue.d.ts +35 -0
- package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.d.vue.ts → number-filter-panel-field.d.vue.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.vue → number-filter-panel-field.vue} +37 -20
- package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.vue.d.ts → number-filter-panel-field.vue.d.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.d.vue.ts → option-filter-panel-field.d.vue.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.vue → option-filter-panel-field.vue} +75 -20
- package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.vue.d.ts → option-filter-panel-field.vue.d.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/registry.js +6 -6
- package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.d.vue.ts → text-filter-panel-field.d.vue.ts} +3 -1
- package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.vue → text-filter-panel-field.vue} +23 -11
- package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.vue.d.ts → text-filter-panel-field.vue.d.ts} +3 -1
- package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.vue → dynamic-filter-picker.vue} +100 -31
- package/dist/runtime/table/components/filters/shared/{FilterMatchModeButton.d.vue.ts → filter-match-mode-button.d.vue.ts} +5 -4
- package/dist/runtime/table/components/filters/shared/filter-match-mode-button.vue +120 -0
- package/dist/runtime/table/components/filters/shared/{FilterMatchModeButton.vue.d.ts → filter-match-mode-button.vue.d.ts} +5 -4
- package/dist/runtime/table/components/filters/shared/{FilterMatchModePanel.d.vue.ts → filter-match-mode-panel.d.vue.ts} +3 -2
- package/dist/runtime/table/components/filters/shared/filter-match-mode-panel.vue +81 -0
- package/dist/runtime/table/components/filters/shared/{FilterMatchModePanel.vue.d.ts → filter-match-mode-panel.vue.d.ts} +3 -2
- package/dist/runtime/table/components/filters/shared/{FilterOptionRow.d.vue.ts → filter-option-loading-list.d.vue.ts} +4 -8
- package/dist/runtime/table/components/filters/shared/filter-option-loading-list.vue +42 -0
- package/dist/runtime/table/components/filters/shared/{FilterOptionRow.vue.d.ts → filter-option-loading-list.vue.d.ts} +4 -8
- package/dist/runtime/table/components/filters/shared/{FilterOptionMultipleList.d.vue.ts → filter-option-multiple-list.d.vue.ts} +2 -2
- package/dist/runtime/table/components/filters/shared/filter-option-multiple-list.vue +115 -0
- package/dist/runtime/table/components/filters/shared/{FilterOptionMultipleList.vue.d.ts → filter-option-multiple-list.vue.d.ts} +2 -2
- package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.d.vue.ts → filter-option-picker-content.d.vue.ts} +1 -1
- package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.vue → filter-option-picker-content.vue} +32 -47
- package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.vue.d.ts → filter-option-picker-content.vue.d.ts} +1 -1
- package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.d.vue.ts → filter-option-single-list.d.vue.ts} +2 -2
- package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.vue → filter-option-single-list.vue} +12 -4
- package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.vue.d.ts → filter-option-single-list.vue.d.ts} +2 -2
- package/dist/runtime/table/components/filters/shared/{FilterOptionTreeContent.d.vue.ts → filter-option-tree-content.d.vue.ts} +4 -4
- package/dist/runtime/table/components/filters/shared/filter-option-tree-content.vue +222 -0
- package/dist/runtime/table/components/filters/shared/{FilterOptionTreeContent.vue.d.ts → filter-option-tree-content.vue.d.ts} +4 -4
- package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.vue → filter-popover-shell.vue} +9 -2
- package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.vue → filter-searchable-panel.vue} +1 -1
- package/dist/runtime/table/components/filters/shared/{FilterStageTransition.vue → filter-stage-transition.vue} +6 -2
- package/dist/runtime/table/components/filters/shared/{FilterTriggerTag.d.vue.ts → filter-trigger-tag.d.vue.ts} +8 -2
- package/dist/runtime/table/components/filters/shared/filter-trigger-tag.vue +227 -0
- package/dist/runtime/table/components/filters/shared/{FilterTriggerTag.vue.d.ts → filter-trigger-tag.vue.d.ts} +8 -2
- package/dist/runtime/{spreadsheet/components/shared/SpreadsheetValuePreview.d.vue.ts → table/components/filters/sheet/filter-sheet.d.vue.ts} +2 -3
- package/dist/runtime/table/components/filters/sheet/filter-sheet.vue +239 -0
- package/dist/runtime/{spreadsheet/components/shared/SpreadsheetValuePreview.vue.d.ts → table/components/filters/sheet/filter-sheet.vue.d.ts} +2 -3
- package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.d.vue.ts → boolean-filter-tag.d.vue.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.vue → boolean-filter-tag.vue} +56 -39
- package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.vue.d.ts → boolean-filter-tag.vue.d.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{DateFilterTag.d.vue.ts → date-filter-tag.d.vue.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{DateFilterTag.vue → date-filter-tag.vue} +138 -67
- package/dist/runtime/table/components/filters/tags/{DateFilterTag.vue.d.ts → date-filter-tag.vue.d.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{FilterTagsBar.d.vue.ts → filter-tags-bar.d.vue.ts} +6 -6
- package/dist/runtime/table/components/filters/tags/{FilterTagsBar.vue → filter-tags-bar.vue} +47 -14
- package/dist/runtime/table/components/filters/tags/{FilterTagsBar.vue.d.ts → filter-tags-bar.vue.d.ts} +6 -6
- package/dist/runtime/table/components/filters/tags/{NumberFilterTag.d.vue.ts → number-filter-tag.d.vue.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{NumberFilterTag.vue → number-filter-tag.vue} +57 -50
- package/dist/runtime/table/components/filters/tags/{NumberFilterTag.vue.d.ts → number-filter-tag.vue.d.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{OptionFilterTag.d.vue.ts → option-filter-tag.d.vue.ts} +14 -2
- package/dist/runtime/table/components/filters/tags/{OptionFilterTag.vue → option-filter-tag.vue} +93 -40
- package/dist/runtime/table/components/filters/tags/{OptionFilterTag.vue.d.ts → option-filter-tag.vue.d.ts} +14 -2
- package/dist/runtime/table/components/filters/tags/registry.js +6 -6
- package/dist/runtime/table/components/filters/tags/{TextFilterTag.d.vue.ts → text-filter-tag.d.vue.ts} +8 -1
- package/dist/runtime/table/components/filters/tags/{TextFilterTag.vue → text-filter-tag.vue} +32 -20
- package/dist/runtime/table/components/filters/tags/{TextFilterTag.vue.d.ts → text-filter-tag.vue.d.ts} +8 -1
- package/dist/runtime/table/components/grid/{GridCard.vue → grid-card.vue} +5 -5
- package/dist/runtime/table/components/grid/{GridRenderer.d.vue.ts → grid-renderer.d.vue.ts} +5 -5
- package/dist/runtime/table/components/grid/grid-renderer.vue +386 -0
- package/dist/runtime/table/components/grid/{GridRenderer.vue.d.ts → grid-renderer.vue.d.ts} +5 -5
- package/dist/runtime/table/components/grid/grid-skeleton.vue +40 -0
- package/dist/runtime/table/components/layout/{TableFooter.d.vue.ts → table-footer.d.vue.ts} +18 -12
- package/dist/runtime/table/components/layout/table-footer.vue +280 -0
- package/dist/runtime/table/components/layout/{TableFooter.vue.d.ts → table-footer.vue.d.ts} +18 -12
- package/dist/runtime/table/components/layout/{TableHeader.vue → table-header.vue} +11 -8
- package/dist/runtime/table/components/table/{TableCellEllipsis.js → table-cell-ellipsis.js} +11 -11
- package/dist/runtime/table/components/table/table-cell.d.ts +12 -0
- package/dist/runtime/table/components/table/table-cell.js +4 -0
- package/dist/runtime/table/components/table/table-column-header.d.vue.ts +25 -0
- package/dist/runtime/table/components/table/table-column-header.vue +80 -0
- package/dist/runtime/table/components/table/table-column-header.vue.d.ts +25 -0
- package/dist/runtime/table/components/table/{TableRenderer.d.vue.ts → table-empty-state.d.vue.ts} +5 -5
- package/dist/runtime/table/components/table/table-empty-state.vue +87 -0
- package/dist/runtime/table/components/table/{TableRenderer.vue.d.ts → table-empty-state.vue.d.ts} +5 -5
- package/dist/runtime/table/components/table/{TableEmptyState.d.vue.ts → table-loading-state.d.vue.ts} +2 -0
- package/dist/runtime/table/components/table/table-loading-state.vue +111 -0
- package/dist/runtime/table/components/table/{TableEmptyState.vue.d.ts → table-loading-state.vue.d.ts} +2 -0
- package/dist/runtime/table/components/table/table-overlay-scrollbars.d.vue.ts +9 -0
- package/dist/runtime/table/components/table/table-overlay-scrollbars.vue +180 -0
- package/dist/runtime/table/components/table/table-overlay-scrollbars.vue.d.ts +9 -0
- package/dist/runtime/table/components/table/table-renderer.d.vue.ts +44 -0
- package/dist/runtime/table/components/table/table-renderer.vue +844 -0
- package/dist/runtime/table/components/table/table-renderer.vue.d.ts +44 -0
- package/dist/runtime/table/components/table/table-row-actions-control.d.vue.ts +3 -0
- package/dist/runtime/table/components/table/table-row-actions-control.vue +42 -0
- package/dist/runtime/table/components/table/table-row-actions-control.vue.d.ts +3 -0
- package/dist/runtime/table/components/table/table-selection-control.d.vue.ts +11 -0
- package/dist/runtime/table/components/table/table-selection-control.vue +34 -0
- package/dist/runtime/table/components/table/table-selection-control.vue.d.ts +11 -0
- package/dist/runtime/table/components/utils/{SearchQueryInput.d.vue.ts → search-query-input.d.vue.ts} +3 -2
- package/dist/runtime/table/components/utils/{SearchQueryInput.vue → search-query-input.vue} +23 -10
- package/dist/runtime/table/components/utils/{SearchQueryInput.vue.d.ts → search-query-input.vue.d.ts} +3 -2
- package/dist/runtime/table/composables/use-data-list-breakpoint.d.ts +19 -0
- package/dist/runtime/table/composables/use-data-list-breakpoint.js +32 -0
- package/dist/runtime/table/composables/use-data-list-ui.d.ts +5 -5
- package/dist/runtime/table/composables/use-data-list-ui.js +17 -6
- package/dist/runtime/table/composables/use-data-list-viewport.js +3 -1
- package/dist/runtime/table/composables/use-filter-tag-session.d.ts +3 -3
- package/dist/runtime/table/composables/use-filter-tag-session.js +21 -9
- package/dist/runtime/table/composables/use-option-filter-editor-state.d.ts +55 -51
- package/dist/runtime/table/composables/use-option-filter-editor-state.js +139 -68
- package/dist/runtime/table/composables/use-query-state.d.ts +13 -13
- package/dist/runtime/table/composables/use-query-state.js +48 -38
- package/dist/runtime/table/composables/use-table-actions.d.ts +28 -0
- package/dist/runtime/table/composables/use-table-actions.js +111 -0
- package/dist/runtime/table/composables/use-table-api.d.ts +4 -3
- package/dist/runtime/table/composables/use-table-api.js +54 -48
- package/dist/runtime/table/composables/use-table-columns.d.ts +120 -119
- package/dist/runtime/table/composables/use-table-columns.js +125 -60
- package/dist/runtime/table/composables/use-table-controls.d.ts +33 -5
- package/dist/runtime/table/composables/use-table-controls.js +51 -9
- package/dist/runtime/table/composables/use-table-data.d.ts +8 -8
- package/dist/runtime/table/composables/use-table-data.js +230 -168
- package/dist/runtime/table/composables/use-table-filter-options.d.ts +10 -10
- package/dist/runtime/table/composables/use-table-filter-options.js +106 -82
- package/dist/runtime/table/composables/use-table-filter-presentation.d.ts +32 -26
- package/dist/runtime/table/composables/use-table-filter-presentation.js +87 -53
- package/dist/runtime/table/composables/use-table-filters.d.ts +46 -41
- package/dist/runtime/table/composables/use-table-filters.js +60 -53
- package/dist/runtime/table/composables/use-table-grid.d.ts +5 -5
- package/dist/runtime/table/composables/use-table-grid.js +17 -11
- package/dist/runtime/table/composables/use-table-internals.d.ts +1328 -1025
- package/dist/runtime/table/composables/use-table-internals.js +58 -37
- package/dist/runtime/table/composables/use-table-layout.d.ts +5 -5
- package/dist/runtime/table/composables/use-table-layout.js +34 -15
- package/dist/runtime/table/composables/use-table-pagination.d.ts +42 -19
- package/dist/runtime/table/composables/use-table-pagination.js +79 -31
- package/dist/runtime/table/composables/use-table-row-actions.d.ts +3 -3
- package/dist/runtime/table/composables/use-table-search.d.ts +3 -3
- package/dist/runtime/table/composables/use-table-search.js +4 -4
- package/dist/runtime/table/composables/use-table-selection.d.ts +19 -17
- package/dist/runtime/table/composables/use-table-selection.js +40 -22
- package/dist/runtime/table/composables/use-table-startup.d.ts +4 -4
- package/dist/runtime/table/composables/use-table-startup.js +18 -13
- package/dist/runtime/table/composables/use-table-state.d.ts +13 -13
- package/dist/runtime/table/composables/use-table-state.js +2 -2
- package/dist/runtime/table/composables/use-table-summaries.d.ts +30 -0
- package/dist/runtime/table/composables/use-table-summaries.js +223 -0
- package/dist/runtime/table/composables/use-table.d.ts +1 -1
- package/dist/runtime/table/composables/use-table.js +2 -2
- package/dist/runtime/table/composables/use-tanstack-table.d.ts +50 -0
- package/dist/runtime/table/composables/use-tanstack-table.js +64 -0
- package/dist/runtime/table/constants/grid.d.ts +3 -3
- package/dist/runtime/table/constants/grid.js +4 -4
- package/dist/runtime/table/constants/query-state.d.ts +10 -5
- package/dist/runtime/table/constants/query-state.js +7 -7
- package/dist/runtime/table/schema/index.js +5 -4
- package/dist/runtime/table/types/actions.d.ts +25 -0
- package/dist/runtime/table/types/columns.d.ts +37 -5
- package/dist/runtime/table/types/context.d.ts +1 -1
- package/dist/runtime/table/types/data-list.d.ts +199 -25
- package/dist/runtime/table/types/filters.d.ts +12 -7
- package/dist/runtime/table/types/layout.d.ts +24 -9
- package/dist/runtime/table/types/query-state.d.ts +4 -5
- package/dist/runtime/table/types/source.d.ts +15 -3
- package/dist/runtime/table/types/table-api.d.ts +14 -4
- package/dist/runtime/table/types/utils.d.ts +12 -9
- package/dist/runtime/table/utils/actions.d.ts +17 -3
- package/dist/runtime/table/utils/actions.js +69 -24
- package/dist/runtime/table/utils/builders/table-source.d.ts +60 -0
- package/dist/runtime/table/utils/builders/table-source.js +3 -0
- package/dist/runtime/table/utils/client-query.js +161 -103
- package/dist/runtime/table/utils/columns/defs.d.ts +6 -0
- package/dist/runtime/table/utils/columns/defs.js +94 -0
- package/dist/runtime/table/utils/columns/menu.d.ts +3 -2
- package/dist/runtime/table/utils/columns/menu.js +51 -59
- package/dist/runtime/table/utils/columns/render.d.ts +78 -43
- package/dist/runtime/table/utils/columns/render.js +141 -230
- package/dist/runtime/table/utils/columns/schema.d.ts +3 -3
- package/dist/runtime/table/utils/columns/schema.js +30 -21
- package/dist/runtime/table/utils/columns/state.d.ts +37 -37
- package/dist/runtime/table/utils/columns/state.js +33 -35
- package/dist/runtime/table/utils/columns/types.d.ts +49 -8
- package/dist/runtime/table/utils/columns/types.js +5 -2
- package/dist/runtime/table/utils/cursor-query.d.ts +2 -0
- package/dist/runtime/table/utils/cursor-query.js +3 -0
- package/dist/runtime/table/utils/data-list-ui.d.ts +124 -2
- package/dist/runtime/table/utils/data-list-ui.js +198 -23
- package/dist/runtime/table/utils/facets.d.ts +4 -0
- package/dist/runtime/table/utils/facets.js +34 -0
- package/dist/runtime/table/utils/filter-presentation.d.ts +16 -0
- package/dist/runtime/table/utils/filter-presentation.js +11 -0
- package/dist/runtime/table/utils/filters/common.d.ts +18 -18
- package/dist/runtime/table/utils/filters/common.js +26 -26
- package/dist/runtime/table/utils/filters/date.js +92 -65
- package/dist/runtime/table/utils/filters/editor-size.d.ts +51 -0
- package/dist/runtime/table/utils/filters/editor-size.js +57 -32
- package/dist/runtime/table/utils/filters/options.d.ts +6 -6
- package/dist/runtime/table/utils/filters/options.js +59 -41
- package/dist/runtime/table/utils/filters/presentation.d.ts +1 -1
- package/dist/runtime/table/utils/filters/presentation.js +8 -3
- package/dist/runtime/table/utils/filters/preview/date-preview.js +6 -4
- package/dist/runtime/table/utils/filters/preview/index.d.ts +1 -1
- package/dist/runtime/table/utils/filters/preview/index.js +5 -4
- package/dist/runtime/table/utils/filters/preview/number-preview.js +13 -9
- package/dist/runtime/table/utils/filters/preview/option-preview.js +27 -11
- package/dist/runtime/table/utils/filters/preview/text-preview.js +4 -3
- package/dist/runtime/table/utils/filters/preview/types.d.ts +8 -0
- package/dist/runtime/table/utils/filters/registry.js +12 -6
- package/dist/runtime/table/utils/filters/tree.d.ts +1 -1
- package/dist/runtime/table/utils/filters/tree.js +35 -24
- package/dist/runtime/table/utils/filters/ui.js +196 -191
- package/dist/runtime/table/utils/index.d.ts +4 -0
- package/dist/runtime/table/utils/index.js +4 -0
- package/dist/runtime/table/utils/pagination.d.ts +1 -1
- package/dist/runtime/table/utils/pagination.js +19 -8
- package/dist/runtime/table/utils/prefetch.d.ts +25 -0
- package/dist/runtime/table/utils/prefetch.js +272 -0
- package/dist/runtime/table/utils/query-state.d.ts +1 -1
- package/dist/runtime/table/utils/query-state.js +120 -62
- package/dist/runtime/table/utils/resolved-filters.d.ts +5 -5
- package/dist/runtime/table/utils/resolved-filters.js +10 -9
- package/dist/runtime/table/utils/rows.d.ts +2 -2
- package/dist/runtime/table/utils/rows.js +5 -4
- package/dist/runtime/table/utils/schema.d.ts +1 -1
- package/dist/runtime/table/utils/schema.js +8 -14
- package/package.json +65 -31
- package/dist/runtime/form/components/root/Form.vue +0 -312
- package/dist/runtime/form/composables/use-form-submit.d.ts +0 -23
- package/dist/runtime/form/composables/use-form-submit.js +0 -71
- package/dist/runtime/table/components/actions/RowActions.vue +0 -56
- package/dist/runtime/table/components/data-list/DataListColumnPanel.vue +0 -17
- package/dist/runtime/table/components/data-list/DataListFilterPanel.vue +0 -17
- package/dist/runtime/table/components/data-list/DataListSortMenu.vue +0 -110
- package/dist/runtime/table/components/drawers/ColumnPanel.vue +0 -379
- package/dist/runtime/table/components/filters/panel/BooleanFilterPanelField.vue +0 -108
- package/dist/runtime/table/components/filters/panel/FilterPanel.vue +0 -132
- package/dist/runtime/table/components/filters/panel/FilterPanelFieldShell.vue +0 -25
- package/dist/runtime/table/components/filters/panel/FilterPanelInputTrigger.vue +0 -22
- package/dist/runtime/table/components/filters/shared/FilterMatchModeButton.vue +0 -58
- package/dist/runtime/table/components/filters/shared/FilterMatchModePanel.vue +0 -47
- package/dist/runtime/table/components/filters/shared/FilterOptionMultipleList.vue +0 -49
- package/dist/runtime/table/components/filters/shared/FilterOptionRow.vue +0 -75
- package/dist/runtime/table/components/filters/shared/FilterOptionTreeContent.vue +0 -180
- package/dist/runtime/table/components/filters/shared/FilterTriggerTag.vue +0 -139
- package/dist/runtime/table/components/grid/GridRenderer.vue +0 -526
- package/dist/runtime/table/components/grid/GridSkeleton.vue +0 -46
- package/dist/runtime/table/components/layout/TableFooter.vue +0 -172
- package/dist/runtime/table/components/table/TableEmptyState.vue +0 -21
- package/dist/runtime/table/components/table/TableLoadingState.d.vue.ts +0 -6
- package/dist/runtime/table/components/table/TableLoadingState.vue +0 -68
- package/dist/runtime/table/components/table/TableLoadingState.vue.d.ts +0 -6
- package/dist/runtime/table/components/table/TableRenderer.vue +0 -160
- package/dist/runtime/form/components/actions/{FormActions.d.vue.ts → form-actions.d.vue.ts} +0 -0
- package/dist/runtime/form/components/actions/{FormActions.vue.d.ts → form-actions.vue.d.ts} +0 -0
- package/dist/runtime/form/components/layout/{DrawerLayout.d.vue.ts → drawer-layout.d.vue.ts} +0 -0
- package/dist/runtime/form/components/layout/{DrawerLayout.vue.d.ts → drawer-layout.vue.d.ts} +0 -0
- package/dist/runtime/form/components/layout/{FullscreenLayout.d.vue.ts → fullscreen-layout.d.vue.ts} +0 -0
- package/dist/runtime/form/components/layout/{FullscreenLayout.vue.d.ts → fullscreen-layout.vue.d.ts} +0 -0
- package/dist/runtime/form/components/layout/{ModalLayout.d.vue.ts → modal-layout.d.vue.ts} +0 -0
- package/dist/runtime/form/components/layout/{ModalLayout.vue.d.ts → modal-layout.vue.d.ts} +0 -0
- package/dist/runtime/form/components/provider/{FormOverlayHost.d.vue.ts → form-overlay-host.d.vue.ts} +0 -0
- package/dist/runtime/form/components/provider/{FormOverlayHost.vue.d.ts → form-overlay-host.vue.d.ts} +0 -0
- package/dist/runtime/form/components/provider/{FormProvider.d.vue.ts → form-provider.d.vue.ts} +0 -0
- package/dist/runtime/form/components/provider/{FormProvider.vue.d.ts → form-provider.vue.d.ts} +0 -0
- package/dist/runtime/form/components/renderer/{FormCompositeControl.d.vue.ts → form-composite-control.d.vue.ts} +0 -0
- package/dist/runtime/form/components/renderer/{FormCompositeControl.vue.d.ts → form-composite-control.vue.d.ts} +0 -0
- package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.d.vue.ts → selection-checkbox.d.vue.ts} +0 -0
- package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.vue → selection-checkbox.vue} +0 -0
- package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.vue.d.ts → selection-checkbox.vue.d.ts} +0 -0
- package/dist/runtime/form/fields/hierarchy/{SelectionRadio.d.vue.ts → selection-radio.d.vue.ts} +0 -0
- package/dist/runtime/form/fields/hierarchy/{SelectionRadio.vue.d.ts → selection-radio.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.d.vue.ts → spreadsheet-import-file-bar.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.vue → spreadsheet-import-file-bar.vue} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.vue.d.ts → spreadsheet-import-file-bar.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.d.vue.ts → spreadsheet-import-footer.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.vue → spreadsheet-import-footer.vue} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.vue.d.ts → spreadsheet-import-footer.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.d.vue.ts → spreadsheet-import-header.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.vue → spreadsheet-import-header.vue} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.vue.d.ts → spreadsheet-import-header.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.d.vue.ts → spreadsheet-import-sidebar.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.vue → spreadsheet-import-sidebar.vue} +0 -0
- package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.vue.d.ts → spreadsheet-import-sidebar.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.d.vue.ts → spreadsheet-raw-preview-table.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.vue.d.ts → spreadsheet-raw-preview-table.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.vue → spreadsheet-summary-stats.vue} +0 -0
- package/dist/runtime/spreadsheet/components/{SpreadsheetImport.d.vue.ts → spreadsheet-import.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/{SpreadsheetImport.vue.d.ts → spreadsheet-import.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.vue → spreadsheet-references-accordion.vue} +0 -0
- package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.vue → spreadsheet-references-summary.vue} +0 -0
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.d.vue.ts → spreadsheet-review-overflow-alert.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.vue → spreadsheet-review-overflow-alert.vue} +0 -0
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.vue.d.ts → spreadsheet-review-overflow-alert.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.vue → spreadsheet-review-stats.vue} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.d.vue.ts → spreadsheet-import-matching-step.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.vue.d.ts → spreadsheet-import-matching-step.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.d.vue.ts → spreadsheet-import-references-step.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.vue.d.ts → spreadsheet-import-references-step.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.d.vue.ts → spreadsheet-import-review-step.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.vue.d.ts → spreadsheet-import-review-step.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.d.vue.ts → spreadsheet-import-structure-step.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.vue.d.ts → spreadsheet-import-structure-step.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.d.vue.ts → spreadsheet-import-upload-step.d.vue.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.vue.d.ts → spreadsheet-import-upload-step.vue.d.ts} +0 -0
- package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.vue → spreadsheet-structure-sheet-list.vue} +0 -0
- package/dist/runtime/table/components/data-list/{DataListAddFilter.d.vue.ts → data-list-add-filter.d.vue.ts} +0 -0
- package/dist/runtime/table/components/data-list/{DataListAddFilter.vue.d.ts → data-list-add-filter.vue.d.ts} +0 -0
- package/dist/runtime/table/components/data-list/{DataListClearFilters.d.vue.ts → data-list-clear-filters.d.vue.ts} +0 -0
- package/dist/runtime/table/components/data-list/{DataListClearFilters.vue → data-list-clear-filters.vue} +0 -0
- package/dist/runtime/table/components/data-list/{DataListClearFilters.vue.d.ts → data-list-clear-filters.vue.d.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.d.vue.ts → dynamic-filter-picker.d.vue.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.vue.d.ts → dynamic-filter-picker.vue.d.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.d.vue.ts → filter-popover-shell.d.vue.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.vue.d.ts → filter-popover-shell.vue.d.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.d.vue.ts → filter-searchable-panel.d.vue.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.vue.d.ts → filter-searchable-panel.vue.d.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterStageTransition.d.vue.ts → filter-stage-transition.d.vue.ts} +0 -0
- package/dist/runtime/table/components/filters/shared/{FilterStageTransition.vue.d.ts → filter-stage-transition.vue.d.ts} +0 -0
- package/dist/runtime/table/components/grid/{GridCard.d.vue.ts → grid-card.d.vue.ts} +0 -0
- package/dist/runtime/table/components/grid/{GridCard.vue.d.ts → grid-card.vue.d.ts} +0 -0
- package/dist/runtime/table/components/grid/{GridSkeleton.d.vue.ts → grid-skeleton.d.vue.ts} +0 -0
- package/dist/runtime/table/components/grid/{GridSkeleton.vue.d.ts → grid-skeleton.vue.d.ts} +0 -0
- package/dist/runtime/table/components/layout/{TableHeader.d.vue.ts → table-header.d.vue.ts} +0 -0
- package/dist/runtime/table/components/layout/{TableHeader.vue.d.ts → table-header.vue.d.ts} +0 -0
- package/dist/runtime/table/components/table/{TableCellEllipsis.d.ts → table-cell-ellipsis.d.ts} +12 -12
|
@@ -0,0 +1,844 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useVirtualizer } from "@tanstack/vue-virtual";
|
|
3
|
+
import {
|
|
4
|
+
computed,
|
|
5
|
+
h,
|
|
6
|
+
nextTick,
|
|
7
|
+
onBeforeUnmount,
|
|
8
|
+
onMounted,
|
|
9
|
+
ref,
|
|
10
|
+
shallowRef,
|
|
11
|
+
TransitionGroup,
|
|
12
|
+
useTemplateRef,
|
|
13
|
+
watch
|
|
14
|
+
} from "vue";
|
|
15
|
+
import { useUiToolsLocale } from "#ui-tools/i18n";
|
|
16
|
+
import { isDefined, isFunction, isNumber, isObject } from "../../../shared/utils/predicate";
|
|
17
|
+
import { useDataListUi } from "../../composables/use-data-list-ui";
|
|
18
|
+
import { useTableInternals } from "../../composables/use-table-internals";
|
|
19
|
+
import { useTanstackTable } from "../../composables/use-tanstack-table";
|
|
20
|
+
import { mergeDataListUiClass } from "../../utils";
|
|
21
|
+
import {
|
|
22
|
+
ROW_ACTIONS_COLUMN_ID,
|
|
23
|
+
SELECT_COLUMN_ID,
|
|
24
|
+
SELECT_COLUMN_WIDTH
|
|
25
|
+
} from "../../utils/columns/types";
|
|
26
|
+
import TableCell from "./table-cell";
|
|
27
|
+
import TableColumnHeader from "./table-column-header.vue";
|
|
28
|
+
import TableEmptyState from "./table-empty-state.vue";
|
|
29
|
+
import TableOverlayScrollbars from "./table-overlay-scrollbars.vue";
|
|
30
|
+
const LOAD_MORE_THRESHOLD = 6;
|
|
31
|
+
const PREFETCH_VIEWPORTS = 3;
|
|
32
|
+
const VIRTUALIZE_ROW_THRESHOLD = 40;
|
|
33
|
+
const VIRTUALIZE_CELL_THRESHOLD = 240;
|
|
34
|
+
const VIRTUALIZE_COLUMN_THRESHOLD = 32;
|
|
35
|
+
const ANIMATION_WINDOW = 600;
|
|
36
|
+
const SKELETON_MIN_ROWS = 6;
|
|
37
|
+
const SIZE_TOKENS = {
|
|
38
|
+
lg: { font: 13.5, head: 46, row: 52, x: 16 },
|
|
39
|
+
md: { font: 13, head: 42, row: 44, x: 14 },
|
|
40
|
+
sm: { font: 12.5, head: 38, row: 36, x: 10 },
|
|
41
|
+
xl: { font: 14, head: 48, row: 60, x: 16 },
|
|
42
|
+
xs: { font: 12, head: 34, row: 32, x: 8 }
|
|
43
|
+
};
|
|
44
|
+
const props = defineProps({
|
|
45
|
+
gutter: { type: Number, required: false },
|
|
46
|
+
height: { type: String, required: false },
|
|
47
|
+
size: { type: String, required: false },
|
|
48
|
+
fill: { type: Boolean, required: false },
|
|
49
|
+
ui: { type: Object, required: false }
|
|
50
|
+
});
|
|
51
|
+
const internals = useTableInternals();
|
|
52
|
+
const dataListUi = useDataListUi();
|
|
53
|
+
const { locale, t } = useUiToolsLocale();
|
|
54
|
+
const rows = computed(
|
|
55
|
+
() => internals.queryContent.error.value ? [] : internals.queryContent.data.value.rows
|
|
56
|
+
);
|
|
57
|
+
const { status } = internals.queryContent;
|
|
58
|
+
const rowsMounted = ref(false);
|
|
59
|
+
let rowMountFrame = 0;
|
|
60
|
+
const isFirstLoad = computed(
|
|
61
|
+
() => status.value.isBooting || status.value.isPending && rows.value.length === 0 || !rowsMounted.value && rows.value.length > 0
|
|
62
|
+
);
|
|
63
|
+
const refreshing = computed(
|
|
64
|
+
() => rows.value.length > 0 && (status.value.isFetching || status.value.isRefreshing)
|
|
65
|
+
);
|
|
66
|
+
const empty = computed(() => !isFirstLoad.value && rows.value.length === 0);
|
|
67
|
+
const resolvedSize = computed(
|
|
68
|
+
() => props.size ?? dataListUi.ui.value.table?.size ?? dataListUi.controlSize.value
|
|
69
|
+
);
|
|
70
|
+
const tokens = computed(() => SIZE_TOKENS[resolvedSize.value]);
|
|
71
|
+
const rowHeight = computed(() => tokens.value.row);
|
|
72
|
+
const gutter = computed(() => props.gutter ?? dataListUi.ui.value.table?.gutter ?? tokens.value.x);
|
|
73
|
+
const gutterExtra = computed(() => Math.max(0, gutter.value - tokens.value.x));
|
|
74
|
+
const tokenStyle = computed(() => ({
|
|
75
|
+
"--nut-dl-cell-x": `${tokens.value.x}px`,
|
|
76
|
+
"--nut-dl-font": `${tokens.value.font}px`,
|
|
77
|
+
"--nut-dl-foot-h": `${tokens.value.head - 2}px`,
|
|
78
|
+
"--nut-dl-gutter": `${gutter.value}px`,
|
|
79
|
+
"--nut-dl-head-h": `${tokens.value.head}px`,
|
|
80
|
+
"--nut-dl-row-h": `${tokens.value.row}px`
|
|
81
|
+
}));
|
|
82
|
+
const { columnDefs } = internals.tableColumns;
|
|
83
|
+
const columnState = internals.tableColumns.tableState;
|
|
84
|
+
const columnSizing = computed({
|
|
85
|
+
get: () => {
|
|
86
|
+
const sizing = columnState.value.columnSizing ?? {};
|
|
87
|
+
if (!gutterExtra.value) {
|
|
88
|
+
return sizing;
|
|
89
|
+
}
|
|
90
|
+
const ids = new Set(columnDefs.value.map((def) => def.id));
|
|
91
|
+
const next = { ...sizing };
|
|
92
|
+
if (ids.has(SELECT_COLUMN_ID) && !(SELECT_COLUMN_ID in sizing)) {
|
|
93
|
+
next[SELECT_COLUMN_ID] = SELECT_COLUMN_WIDTH + gutterExtra.value;
|
|
94
|
+
}
|
|
95
|
+
return next;
|
|
96
|
+
},
|
|
97
|
+
set: (columnSizing2) => {
|
|
98
|
+
columnState.value = { ...columnState.value, columnSizing: columnSizing2 };
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
const pinned = computed(() => {
|
|
102
|
+
const ids = new Set(columnDefs.value.map((def) => def.id));
|
|
103
|
+
const left = (columnState.value.columnPinning?.left ?? []).filter(
|
|
104
|
+
(id) => ids.has(id) && id !== SELECT_COLUMN_ID
|
|
105
|
+
);
|
|
106
|
+
const right = (columnState.value.columnPinning?.right ?? []).filter(
|
|
107
|
+
(id) => ids.has(id) && id !== ROW_ACTIONS_COLUMN_ID
|
|
108
|
+
);
|
|
109
|
+
return {
|
|
110
|
+
end: ids.has(ROW_ACTIONS_COLUMN_ID) ? [...right, ROW_ACTIONS_COLUMN_ID] : right,
|
|
111
|
+
start: ids.has(SELECT_COLUMN_ID) ? [SELECT_COLUMN_ID, ...left] : left
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
function getRowId(row, index) {
|
|
115
|
+
return internals.selection.getRowId({ index, row });
|
|
116
|
+
}
|
|
117
|
+
const renderRows = computed(() => rowsMounted.value ? rows.value : []);
|
|
118
|
+
const virtualized = computed(
|
|
119
|
+
() => renderRows.value.length >= VIRTUALIZE_ROW_THRESHOLD || renderRows.value.length * columnDefs.value.length >= VIRTUALIZE_CELL_THRESHOLD
|
|
120
|
+
);
|
|
121
|
+
const scrollRef = useTemplateRef("scrollRef");
|
|
122
|
+
const rowHeights = /* @__PURE__ */ new Map();
|
|
123
|
+
function measureRowHeight(element) {
|
|
124
|
+
const key = element instanceof HTMLElement ? element.dataset.rowId : void 0;
|
|
125
|
+
const { height } = element.getBoundingClientRect();
|
|
126
|
+
if (key === void 0) {
|
|
127
|
+
return height;
|
|
128
|
+
}
|
|
129
|
+
const next = Math.max(rowHeights.get(key) ?? 0, height);
|
|
130
|
+
rowHeights.set(key, next);
|
|
131
|
+
return next;
|
|
132
|
+
}
|
|
133
|
+
const rowVirtualizer = useVirtualizer(
|
|
134
|
+
computed(() => ({
|
|
135
|
+
count: virtualized.value ? renderRows.value.length : 0,
|
|
136
|
+
estimateSize: () => rowHeight.value,
|
|
137
|
+
getItemKey: (index) => renderRows.value[index] ? getRowId(renderRows.value[index], index) : index,
|
|
138
|
+
getScrollElement: () => scrollRef.value ?? null,
|
|
139
|
+
measureElement: (element) => measureRowHeight(element),
|
|
140
|
+
overscan: 8
|
|
141
|
+
}))
|
|
142
|
+
);
|
|
143
|
+
const virtualRows = computed(
|
|
144
|
+
() => virtualized.value ? rowVirtualizer.value.getVirtualItems() : []
|
|
145
|
+
);
|
|
146
|
+
const materializedRows = computed(
|
|
147
|
+
() => virtualized.value ? virtualRows.value.map((item) => renderRows.value[item.index]).filter(isDefined) : renderRows.value
|
|
148
|
+
);
|
|
149
|
+
const { table, resetColumnSizing } = useTanstackTable({
|
|
150
|
+
columnSizing,
|
|
151
|
+
columns: columnDefs,
|
|
152
|
+
data: materializedRows,
|
|
153
|
+
getRowId,
|
|
154
|
+
pinned
|
|
155
|
+
});
|
|
156
|
+
const tableRows = computed(() => table.getRowModel().rows);
|
|
157
|
+
const leafColumns = computed(() => table.getVisibleLeafColumns());
|
|
158
|
+
const centerColumns = computed(() => table.getCenterVisibleLeafColumns());
|
|
159
|
+
const bodyWidth = ref(0);
|
|
160
|
+
const bodyHeight = ref(0);
|
|
161
|
+
const columnsOverflow = computed(
|
|
162
|
+
() => bodyWidth.value > 0 && table.getTotalSize() > bodyWidth.value && centerColumns.value.length > VIRTUALIZE_COLUMN_THRESHOLD
|
|
163
|
+
);
|
|
164
|
+
const columnVirtualizer = useVirtualizer(
|
|
165
|
+
computed(() => ({
|
|
166
|
+
count: columnsOverflow.value ? centerColumns.value.length : 0,
|
|
167
|
+
estimateSize: (index) => centerColumns.value[index]?.getSize() ?? 0,
|
|
168
|
+
getItemKey: (index) => centerColumns.value[index]?.id ?? index,
|
|
169
|
+
getScrollElement: () => scrollRef.value ?? null,
|
|
170
|
+
horizontal: true,
|
|
171
|
+
initialRect: { height: 0, width: bodyWidth.value },
|
|
172
|
+
onChange: (instance) => {
|
|
173
|
+
const width = instance.scrollRect?.width;
|
|
174
|
+
if (width && width !== bodyWidth.value) {
|
|
175
|
+
bodyWidth.value = width;
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
overscan: 2,
|
|
179
|
+
paddingEnd: table.getEndTotalSize(),
|
|
180
|
+
paddingStart: table.getStartTotalSize()
|
|
181
|
+
}))
|
|
182
|
+
);
|
|
183
|
+
const virtualColumns = computed(() => columnVirtualizer.value.getVirtualItems());
|
|
184
|
+
const columnSlots = computed(() => {
|
|
185
|
+
function asSlot(column) {
|
|
186
|
+
return {
|
|
187
|
+
columnId: column.id,
|
|
188
|
+
key: column.id,
|
|
189
|
+
kind: "column"
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
const slots = table.getStartVisibleLeafColumns().map(asSlot);
|
|
193
|
+
if (!columnsOverflow.value) {
|
|
194
|
+
slots.push(...centerColumns.value.map(asSlot), ...table.getEndVisibleLeafColumns().map(asSlot));
|
|
195
|
+
return slots;
|
|
196
|
+
}
|
|
197
|
+
const first = virtualColumns.value[0];
|
|
198
|
+
const last = virtualColumns.value.at(-1);
|
|
199
|
+
if (first?.index) {
|
|
200
|
+
slots.push({ colSpan: first.index, key: "pad-start", kind: "spacer" });
|
|
201
|
+
}
|
|
202
|
+
slots.push(
|
|
203
|
+
...virtualColumns.value.flatMap((item) => {
|
|
204
|
+
const column = centerColumns.value[item.index];
|
|
205
|
+
return column ? [asSlot(column)] : [];
|
|
206
|
+
})
|
|
207
|
+
);
|
|
208
|
+
const trailing = last ? centerColumns.value.length - last.index - 1 : centerColumns.value.length;
|
|
209
|
+
if (trailing) {
|
|
210
|
+
slots.push({ colSpan: trailing, key: "pad-end", kind: "spacer" });
|
|
211
|
+
}
|
|
212
|
+
slots.push(...table.getEndVisibleLeafColumns().map(asSlot));
|
|
213
|
+
return slots;
|
|
214
|
+
});
|
|
215
|
+
function rowColumnSlots(row) {
|
|
216
|
+
const cells = new Map(row.getVisibleCells().map((cell) => [cell.column.id, cell]));
|
|
217
|
+
const slots = [];
|
|
218
|
+
for (const slot of columnSlots.value) {
|
|
219
|
+
if (slot.kind === "spacer") {
|
|
220
|
+
slots.push(slot);
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
const cell = cells.get(slot.columnId);
|
|
224
|
+
if (cell) {
|
|
225
|
+
slots.push({ cell, key: cell.id, kind: "cell" });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return slots;
|
|
229
|
+
}
|
|
230
|
+
const headers = computed(() => table.getHeaderGroups()[0]?.headers ?? []);
|
|
231
|
+
const headerByColumnId = computed(() => new Map(headers.value.map((h2) => [h2.column.id, h2])));
|
|
232
|
+
const virtualPaddingTop = computed(() => virtualRows.value[0]?.start ?? 0);
|
|
233
|
+
const virtualPaddingBottom = computed(() => {
|
|
234
|
+
if (!virtualized.value || !virtualRows.value.length) {
|
|
235
|
+
return 0;
|
|
236
|
+
}
|
|
237
|
+
return rowVirtualizer.value.getTotalSize() - (virtualRows.value.at(-1)?.end ?? 0);
|
|
238
|
+
});
|
|
239
|
+
const virtualRowByKey = computed(() => {
|
|
240
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
241
|
+
for (const item of virtualRows.value) {
|
|
242
|
+
const row = renderRows.value[item.index];
|
|
243
|
+
if (row) {
|
|
244
|
+
byKey.set(getRowId(row, item.index), { index: item.index, key: String(item.key) });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return byKey;
|
|
248
|
+
});
|
|
249
|
+
const renderedRows = computed(() => {
|
|
250
|
+
if (!virtualized.value) {
|
|
251
|
+
return tableRows.value.map((row, index) => ({ row, virtual: { index, key: String(row.id) } }));
|
|
252
|
+
}
|
|
253
|
+
return tableRows.value.map((row) => {
|
|
254
|
+
const virtual = virtualRowByKey.value.get(String(row.id));
|
|
255
|
+
return virtual ? { row, virtual } : void 0;
|
|
256
|
+
}).filter(isDefined);
|
|
257
|
+
});
|
|
258
|
+
function measureRow(element) {
|
|
259
|
+
if (!(element instanceof HTMLElement)) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (element.isConnected) {
|
|
263
|
+
rowVirtualizer.value.measureElement(element);
|
|
264
|
+
} else {
|
|
265
|
+
nextTick().then(() => element.isConnected && rowVirtualizer.value.measureElement(element));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
const scrollbarsRef = useTemplateRef("scrollbarsRef");
|
|
269
|
+
const totalWidth = computed(() => table.getTotalSize());
|
|
270
|
+
const skeletonRows = computed(() => {
|
|
271
|
+
const usable = bodyHeight.value - tokens.value.head;
|
|
272
|
+
if (usable <= 0) {
|
|
273
|
+
return SKELETON_MIN_ROWS;
|
|
274
|
+
}
|
|
275
|
+
return Math.max(SKELETON_MIN_ROWS, Math.ceil(usable / rowHeight.value));
|
|
276
|
+
});
|
|
277
|
+
function measureBody() {
|
|
278
|
+
bodyHeight.value = scrollRef.value?.clientHeight ?? 0;
|
|
279
|
+
bodyWidth.value = scrollRef.value?.clientWidth ?? 0;
|
|
280
|
+
}
|
|
281
|
+
let resizeObserver;
|
|
282
|
+
onMounted(() => {
|
|
283
|
+
measureBody();
|
|
284
|
+
if (scrollRef.value) {
|
|
285
|
+
resizeObserver = new ResizeObserver(measureBody);
|
|
286
|
+
resizeObserver.observe(scrollRef.value);
|
|
287
|
+
}
|
|
288
|
+
rowMountFrame = requestAnimationFrame(() => rowsMounted.value = true);
|
|
289
|
+
});
|
|
290
|
+
onBeforeUnmount(() => {
|
|
291
|
+
cancelAnimationFrame(rowMountFrame);
|
|
292
|
+
resizeObserver?.disconnect();
|
|
293
|
+
});
|
|
294
|
+
watch(
|
|
295
|
+
[totalWidth, () => rows.value.length],
|
|
296
|
+
() => nextTick().then(() => {
|
|
297
|
+
columnVirtualizer.value.measure();
|
|
298
|
+
scrollbarsRef.value?.measure();
|
|
299
|
+
})
|
|
300
|
+
);
|
|
301
|
+
watch(
|
|
302
|
+
() => internals.pagination.currentPage.value,
|
|
303
|
+
() => scrollRef.value?.scrollTo({ top: 0 })
|
|
304
|
+
);
|
|
305
|
+
const openMenuId = ref(null);
|
|
306
|
+
function pinnedOffset(column) {
|
|
307
|
+
const side = column.getIsPinned();
|
|
308
|
+
if (side === "start") {
|
|
309
|
+
return { left: `${column.getStart("start")}px` };
|
|
310
|
+
}
|
|
311
|
+
if (side === "end") {
|
|
312
|
+
return { right: `${column.getAfter("end")}px` };
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function isLastStart(column) {
|
|
316
|
+
return table.getStartVisibleLeafColumns().at(-1)?.id === column.id;
|
|
317
|
+
}
|
|
318
|
+
function isFirstEnd(column) {
|
|
319
|
+
return table.getEndVisibleLeafColumns()[0]?.id === column.id;
|
|
320
|
+
}
|
|
321
|
+
const { summaries } = internals;
|
|
322
|
+
const summaryColumnIds = computed(() => new Set(summaries.columns.value.map((column) => column.id)));
|
|
323
|
+
const summaryLabelColumnId = computed(
|
|
324
|
+
() => leafColumns.value.find(
|
|
325
|
+
(column) => !column.columnDef.meta?.internal && !summaryColumnIds.value.has(column.id)
|
|
326
|
+
)?.id
|
|
327
|
+
);
|
|
328
|
+
const summaryLabel = computed(() => {
|
|
329
|
+
const label = summaries.label.value;
|
|
330
|
+
if (label) {
|
|
331
|
+
return isFunction(label) ? String(label()) : String(label);
|
|
332
|
+
}
|
|
333
|
+
return t("table.summaries.total");
|
|
334
|
+
});
|
|
335
|
+
function formatNumber(value) {
|
|
336
|
+
return isNumber(value) ? new Intl.NumberFormat(locale.value.code).format(value).replaceAll("\u202F", "\xA0") : String(value ?? "");
|
|
337
|
+
}
|
|
338
|
+
function isSummaryConfig(summary) {
|
|
339
|
+
return isObject(summary);
|
|
340
|
+
}
|
|
341
|
+
function renderSummary(columnId) {
|
|
342
|
+
const column = summaries.columns.value.find((entry) => entry.id === columnId);
|
|
343
|
+
const cell = summaries.cell(columnId);
|
|
344
|
+
const summary = column?.summary;
|
|
345
|
+
const render = isSummaryConfig(summary) ? summary.render : void 0;
|
|
346
|
+
if (render) {
|
|
347
|
+
return () => render({ loading: cell.loading, scope: summaries.scope.value, value: cell.value });
|
|
348
|
+
}
|
|
349
|
+
const value = summaries.format(columnId);
|
|
350
|
+
return () => h("span", formatNumber(value));
|
|
351
|
+
}
|
|
352
|
+
const animateEpoch = ref(false);
|
|
353
|
+
const enterFrom = ref(Number.POSITIVE_INFINITY);
|
|
354
|
+
const previousIds = shallowRef(/* @__PURE__ */ new Set());
|
|
355
|
+
const flipPositions = /* @__PURE__ */ new Map();
|
|
356
|
+
watch(
|
|
357
|
+
rows,
|
|
358
|
+
() => {
|
|
359
|
+
previousIds.value = new Set(rows.value.map((row, index) => getRowId(row, index)));
|
|
360
|
+
flipPositions.clear();
|
|
361
|
+
const elements = scrollRef.value?.querySelectorAll("tr.nut-dl-row[data-row-id]") ?? [];
|
|
362
|
+
for (const element of elements) {
|
|
363
|
+
flipPositions.set(element.dataset.rowId ?? "", element.getBoundingClientRect().top);
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{ flush: "pre" }
|
|
367
|
+
);
|
|
368
|
+
watch(rows, () => nextTick().then(flipRows), { flush: "post" });
|
|
369
|
+
function flipRows() {
|
|
370
|
+
if (!flipPositions.size) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
const elements = scrollRef.value?.querySelectorAll("tr.nut-dl-row[data-row-id]") ?? [];
|
|
374
|
+
for (const element of elements) {
|
|
375
|
+
const previous = flipPositions.get(element.dataset.rowId ?? "");
|
|
376
|
+
if (previous === void 0) {
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
const delta = previous - element.getBoundingClientRect().top;
|
|
380
|
+
if (Math.abs(delta) > 1) {
|
|
381
|
+
element.animate([{ transform: `translateY(${delta}px)` }, { transform: "none" }], {
|
|
382
|
+
duration: 240,
|
|
383
|
+
easing: "cubic-bezier(0.2, 0.9, 0.3, 1)"
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
flipPositions.clear();
|
|
388
|
+
}
|
|
389
|
+
let animateTimer = 0;
|
|
390
|
+
function armAnimation(from = Number.POSITIVE_INFINITY) {
|
|
391
|
+
enterFrom.value = from;
|
|
392
|
+
animateEpoch.value = true;
|
|
393
|
+
window.clearTimeout(animateTimer);
|
|
394
|
+
animateTimer = window.setTimeout(() => {
|
|
395
|
+
animateEpoch.value = false;
|
|
396
|
+
}, ANIMATION_WINDOW);
|
|
397
|
+
}
|
|
398
|
+
watch(
|
|
399
|
+
() => [
|
|
400
|
+
internals.pagination.currentPage.value,
|
|
401
|
+
internals.pagination.pageSize.value,
|
|
402
|
+
JSON.stringify(internals.tableColumns.sortingState.value),
|
|
403
|
+
JSON.stringify(internals.queryState.filters.value),
|
|
404
|
+
internals.filters.searchQuery.value
|
|
405
|
+
],
|
|
406
|
+
() => {
|
|
407
|
+
if (!rowsMounted.value || cursorMode.value) {
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
rowHeights.clear();
|
|
411
|
+
armAnimation();
|
|
412
|
+
scrollRef.value?.scrollTo({ top: 0 });
|
|
413
|
+
}
|
|
414
|
+
);
|
|
415
|
+
const SKELETON_WIDTHS = [62, 44, 78, 54, 70, 38, 66, 48];
|
|
416
|
+
function skeletonWidth(seed) {
|
|
417
|
+
return SKELETON_WIDTHS[seed % SKELETON_WIDTHS.length];
|
|
418
|
+
}
|
|
419
|
+
function renderSkeletonCell(columnId, rowIndex) {
|
|
420
|
+
const meta = headerByColumnId.value.get(columnId)?.column.columnDef.meta;
|
|
421
|
+
const kind = meta?.internal === "selection" ? "check" : meta?.internal ? "none" : meta?.skeleton ?? "text";
|
|
422
|
+
const seed = rowIndex * 7 + columnId.length;
|
|
423
|
+
function line(width, extra = "") {
|
|
424
|
+
return h("span", {
|
|
425
|
+
class: `nut-dl-skeleton block h-3 rounded ${extra}`,
|
|
426
|
+
style: { width: `${width}%` }
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
return () => {
|
|
430
|
+
if (kind === "none") {
|
|
431
|
+
return null;
|
|
432
|
+
}
|
|
433
|
+
if (kind === "check") {
|
|
434
|
+
return h("span", { class: "nut-dl-skeleton block size-4 rounded-[4px]" });
|
|
435
|
+
}
|
|
436
|
+
if (kind === "dot") {
|
|
437
|
+
return h("span", { class: "flex items-center gap-2" }, [
|
|
438
|
+
h("span", { class: "nut-dl-skeleton size-[7px] rounded-full" }),
|
|
439
|
+
line(skeletonWidth(seed) - 10)
|
|
440
|
+
]);
|
|
441
|
+
}
|
|
442
|
+
if (kind === "avatar") {
|
|
443
|
+
return h("span", { class: "flex items-center gap-2.5" }, [
|
|
444
|
+
h("span", { class: "nut-dl-skeleton size-7 shrink-0 rounded-md" }),
|
|
445
|
+
h("span", { class: "grid flex-1 gap-1.5" }, [
|
|
446
|
+
line(skeletonWidth(seed)),
|
|
447
|
+
line(skeletonWidth(seed + 3) - 20, "h-2.5")
|
|
448
|
+
])
|
|
449
|
+
]);
|
|
450
|
+
}
|
|
451
|
+
if (kind === "badge") {
|
|
452
|
+
return h("span", { class: "nut-dl-skeleton inline-block h-5 w-16 rounded-full" });
|
|
453
|
+
}
|
|
454
|
+
if (kind === "number") {
|
|
455
|
+
return h("span", {
|
|
456
|
+
class: "nut-dl-skeleton ml-auto block h-3 rounded",
|
|
457
|
+
style: { width: "36%" }
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
return line(skeletonWidth(seed));
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
watch(isFirstLoad, (loading, was) => {
|
|
464
|
+
if (was && !loading) {
|
|
465
|
+
armAnimation();
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
watch(
|
|
469
|
+
() => rows.value.length,
|
|
470
|
+
(next, previous) => {
|
|
471
|
+
if (cursorMode.value && previous > 0 && next > previous) {
|
|
472
|
+
armAnimation(previous);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
);
|
|
476
|
+
const cursorMode = computed(() => internals.pagination.mode.value === "cursor");
|
|
477
|
+
const loadingMore = computed(
|
|
478
|
+
() => cursorMode.value && internals.pagination.state.value.isLoadingMore
|
|
479
|
+
);
|
|
480
|
+
const hasNextPage = computed(() => cursorMode.value && internals.pagination.state.value.hasNextPage);
|
|
481
|
+
watch(
|
|
482
|
+
() => [
|
|
483
|
+
virtualRows.value.at(-1)?.index ?? renderRows.value.length - 1,
|
|
484
|
+
renderRows.value.length,
|
|
485
|
+
hasNextPage.value,
|
|
486
|
+
loadingMore.value
|
|
487
|
+
],
|
|
488
|
+
([lastIndex, count, more, loading]) => {
|
|
489
|
+
if (!more || loading || !count) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
const threshold = Math.max(LOAD_MORE_THRESHOLD, virtualRows.value.length * PREFETCH_VIEWPORTS);
|
|
493
|
+
if (lastIndex >= count - 1 - threshold) {
|
|
494
|
+
void internals.pagination.loadMore();
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
);
|
|
498
|
+
function onScrollLoadMore() {
|
|
499
|
+
if (!hasNextPage.value || loadingMore.value || virtualized.value) {
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
const element = scrollRef.value;
|
|
503
|
+
if (!element) {
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
506
|
+
const threshold = Math.max(320, element.clientHeight * PREFETCH_VIEWPORTS);
|
|
507
|
+
if (element.scrollHeight - element.scrollTop - element.clientHeight < threshold) {
|
|
508
|
+
void internals.pagination.loadMore();
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
watch(
|
|
512
|
+
() => [renderRows.value.length, loadingMore.value],
|
|
513
|
+
async () => {
|
|
514
|
+
await nextTick();
|
|
515
|
+
onScrollLoadMore();
|
|
516
|
+
}
|
|
517
|
+
);
|
|
518
|
+
defineExpose({ resetColumnSizing });
|
|
519
|
+
</script>
|
|
520
|
+
|
|
521
|
+
<template>
|
|
522
|
+
<div
|
|
523
|
+
class="nut-dl-table relative min-h-0"
|
|
524
|
+
:class="[
|
|
525
|
+
fill ? 'flex h-full flex-col' : '',
|
|
526
|
+
mergeDataListUiClass(void 0, void 0, ui?.wrapper)
|
|
527
|
+
]"
|
|
528
|
+
:style="{ ...tokenStyle, height: !fill && height ? height : void 0 }"
|
|
529
|
+
:data-size="resolvedSize"
|
|
530
|
+
:data-virtualized="virtualized"
|
|
531
|
+
:data-loading="isFirstLoad"
|
|
532
|
+
>
|
|
533
|
+
<div
|
|
534
|
+
ref="scrollRef"
|
|
535
|
+
class="nut-dl-table__scroll relative min-h-0 overflow-auto overscroll-x-contain bg-[var(--nut-dl-surface)]"
|
|
536
|
+
:class="[
|
|
537
|
+
fill || height ? 'flex-1' : '',
|
|
538
|
+
mergeDataListUiClass(void 0, void 0, ui?.root)
|
|
539
|
+
]"
|
|
540
|
+
@scroll.passive="onScrollLoadMore"
|
|
541
|
+
>
|
|
542
|
+
<table
|
|
543
|
+
class="nut-dl-table__table w-full table-fixed border-separate border-spacing-0 text-[length:var(--nut-dl-font)]"
|
|
544
|
+
:class="mergeDataListUiClass(void 0, void 0, ui?.base)"
|
|
545
|
+
:style="{ minWidth: `${totalWidth}px` }"
|
|
546
|
+
>
|
|
547
|
+
<colgroup>
|
|
548
|
+
<col
|
|
549
|
+
v-for="leaf in leafColumns"
|
|
550
|
+
:key="leaf.id"
|
|
551
|
+
:style="{ width: `${leaf.getSize()}px` }"
|
|
552
|
+
/>
|
|
553
|
+
</colgroup>
|
|
554
|
+
<thead :class="mergeDataListUiClass('nut-dl-table__head', void 0, ui?.thead)">
|
|
555
|
+
<tr class="nut-dl-table__head-row">
|
|
556
|
+
<template v-for="slot in columnSlots" :key="slot.key">
|
|
557
|
+
<th
|
|
558
|
+
v-if="slot.kind === 'spacer'"
|
|
559
|
+
:colspan="slot.colSpan"
|
|
560
|
+
class="nut-dl-table__spacer sticky top-0 z-[3] p-0"
|
|
561
|
+
aria-hidden="true"
|
|
562
|
+
/>
|
|
563
|
+
<th
|
|
564
|
+
v-else-if="headerByColumnId.get(slot.columnId)"
|
|
565
|
+
class="nut-dl-th sticky top-0 z-[3] h-[var(--nut-dl-head-h)] p-0 text-left align-middle"
|
|
566
|
+
:class="[
|
|
567
|
+
headerByColumnId.get(slot.columnId).column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[4]' : '',
|
|
568
|
+
headerByColumnId.get(slot.columnId).column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[4]' : '',
|
|
569
|
+
isLastStart(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--last-start' : '',
|
|
570
|
+
isFirstEnd(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--first-end' : '',
|
|
571
|
+
headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal ? `nut-dl-th--internal nut-dl-th--${headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal}` : '',
|
|
572
|
+
mergeDataListUiClass(void 0, void 0, ui?.th)
|
|
573
|
+
]"
|
|
574
|
+
:data-col="slot.columnId"
|
|
575
|
+
:style="pinnedOffset(headerByColumnId.get(slot.columnId).column)"
|
|
576
|
+
>
|
|
577
|
+
<template
|
|
578
|
+
v-if="headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal"
|
|
579
|
+
>
|
|
580
|
+
<div
|
|
581
|
+
class="nut-dl-th__static flex h-full items-center"
|
|
582
|
+
:class="
|
|
583
|
+
headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'right' ? 'justify-end' : ''
|
|
584
|
+
"
|
|
585
|
+
>
|
|
586
|
+
<TableCell
|
|
587
|
+
v-if="
|
|
588
|
+
headerByColumnId.get(slot.columnId).column.columnDef.meta?.renderHeader
|
|
589
|
+
"
|
|
590
|
+
:render="
|
|
591
|
+
() => headerByColumnId.get(slot.columnId).column.columnDef.meta.renderHeader()
|
|
592
|
+
"
|
|
593
|
+
:row="{}"
|
|
594
|
+
:index="-1"
|
|
595
|
+
/>
|
|
596
|
+
</div>
|
|
597
|
+
</template>
|
|
598
|
+
<TableColumnHeader
|
|
599
|
+
v-else
|
|
600
|
+
:open="openMenuId === slot.columnId"
|
|
601
|
+
:label="headerByColumnId.get(slot.columnId).column.columnDef.meta.label"
|
|
602
|
+
:icon="headerByColumnId.get(slot.columnId).column.columnDef.meta.icon"
|
|
603
|
+
:align="headerByColumnId.get(slot.columnId).column.columnDef.meta.align"
|
|
604
|
+
:sortable="headerByColumnId.get(slot.columnId).column.columnDef.meta.sortable"
|
|
605
|
+
:sort-state="internals.tableColumns.getSortState({ columnId: slot.columnId })"
|
|
606
|
+
:pinned="
|
|
607
|
+
Boolean(internals.tableColumns.getPinnedState({ columnId: slot.columnId }))
|
|
608
|
+
"
|
|
609
|
+
:items="internals.tableColumns.getMenuItems({ columnId: slot.columnId })"
|
|
610
|
+
:resizable="headerByColumnId.get(slot.columnId).column.getCanResize()"
|
|
611
|
+
:resizing="headerByColumnId.get(slot.columnId).column.getIsResizing()"
|
|
612
|
+
:reset-size="() => headerByColumnId.get(slot.columnId).column.resetSize()"
|
|
613
|
+
:resize="headerByColumnId.get(slot.columnId).getResizeHandler()"
|
|
614
|
+
@update:open="openMenuId = $event ? slot.columnId : null"
|
|
615
|
+
/>
|
|
616
|
+
</th>
|
|
617
|
+
</template>
|
|
618
|
+
</tr>
|
|
619
|
+
<tr v-if="refreshing" class="nut-dl-progress" aria-hidden="true">
|
|
620
|
+
<th
|
|
621
|
+
:colspan="leafColumns.length"
|
|
622
|
+
class="sticky top-[var(--nut-dl-head-h)] z-[3] h-0 p-0"
|
|
623
|
+
>
|
|
624
|
+
<span />
|
|
625
|
+
</th>
|
|
626
|
+
</tr>
|
|
627
|
+
</thead>
|
|
628
|
+
|
|
629
|
+
<component
|
|
630
|
+
:is="virtualized ? 'tbody' : TransitionGroup"
|
|
631
|
+
:key="virtualized ? 'virtual' : 'rows'"
|
|
632
|
+
:tag="virtualized ? void 0 : 'tbody'"
|
|
633
|
+
:class="mergeDataListUiClass('nut-dl-table__body', void 0, ui?.tbody)"
|
|
634
|
+
:move-class="virtualized ? void 0 : 'nut-dl-row--moving'"
|
|
635
|
+
:enter-active-class="virtualized ? void 0 : 'nut-dl-row--settling'"
|
|
636
|
+
:enter-from-class="virtualized ? void 0 : 'nut-dl-row--from'"
|
|
637
|
+
:leave-active-class="virtualized ? void 0 : 'hidden'"
|
|
638
|
+
>
|
|
639
|
+
<tr
|
|
640
|
+
v-if="virtualPaddingTop"
|
|
641
|
+
key="pad-top"
|
|
642
|
+
:style="{ height: `${virtualPaddingTop}px` }"
|
|
643
|
+
aria-hidden="true"
|
|
644
|
+
>
|
|
645
|
+
<td :colspan="leafColumns.length" class="p-0" />
|
|
646
|
+
</tr>
|
|
647
|
+
|
|
648
|
+
<tr
|
|
649
|
+
v-for="{ row, virtual } in renderedRows"
|
|
650
|
+
:key="virtual.key"
|
|
651
|
+
:ref="measureRow"
|
|
652
|
+
class="nut-dl-row group/row"
|
|
653
|
+
:class="[
|
|
654
|
+
internals.selection.isRowSelected({ rowId: String(row.id) }) ? 'nut-dl-row--selected' : '',
|
|
655
|
+
mergeDataListUiClass(void 0, void 0, ui?.tr)
|
|
656
|
+
]"
|
|
657
|
+
:data-index="virtual.index"
|
|
658
|
+
:data-row-id="row.id"
|
|
659
|
+
:style="
|
|
660
|
+
virtualized && animateEpoch && (virtual.index >= enterFrom || !previousIds.has(String(row.id))) ? {
|
|
661
|
+
'--nut-dl-i': Math.min(
|
|
662
|
+
virtual.index - Math.max(enterFrom, virtualRows[0]?.index ?? 0),
|
|
663
|
+
24
|
|
664
|
+
)
|
|
665
|
+
} : void 0
|
|
666
|
+
"
|
|
667
|
+
>
|
|
668
|
+
<template v-for="slot in rowColumnSlots(row)" :key="slot.key">
|
|
669
|
+
<td
|
|
670
|
+
v-if="slot.kind === 'spacer'"
|
|
671
|
+
:colspan="slot.colSpan"
|
|
672
|
+
class="nut-dl-table__spacer p-0"
|
|
673
|
+
aria-hidden="true"
|
|
674
|
+
/>
|
|
675
|
+
<td
|
|
676
|
+
v-else
|
|
677
|
+
class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
|
|
678
|
+
:class="[
|
|
679
|
+
slot.cell.column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[2]' : '',
|
|
680
|
+
slot.cell.column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[2]' : '',
|
|
681
|
+
isLastStart(slot.cell.column) ? 'nut-dl-pin--last-start' : '',
|
|
682
|
+
isFirstEnd(slot.cell.column) ? 'nut-dl-pin--first-end' : '',
|
|
683
|
+
slot.cell.column.columnDef.meta?.align === 'right' ? 'text-right' : slot.cell.column.columnDef.meta?.align === 'center' ? 'text-center' : '',
|
|
684
|
+
slot.cell.column.columnDef.meta?.internal ? `nut-dl-td--${slot.cell.column.columnDef.meta.internal}` : '',
|
|
685
|
+
slot.cell.column.columnDef.meta?.ellipsis ? 'nut-dl-td--ellipsis' : '',
|
|
686
|
+
mergeDataListUiClass(void 0, void 0, ui?.td)
|
|
687
|
+
]"
|
|
688
|
+
:data-col="slot.cell.column.id"
|
|
689
|
+
:style="[
|
|
690
|
+
pinnedOffset(slot.cell.column),
|
|
691
|
+
slot.cell.column.columnDef.meta?.lines ? { '--nut-dl-lines': slot.cell.column.columnDef.meta.lines } : void 0
|
|
692
|
+
]"
|
|
693
|
+
>
|
|
694
|
+
<div
|
|
695
|
+
class="nut-dl-td__inner min-w-0"
|
|
696
|
+
:class="
|
|
697
|
+
slot.cell.column.columnDef.meta?.align === 'right' ? 'justify-end' : slot.cell.column.columnDef.meta?.align === 'center' ? 'justify-center' : ''
|
|
698
|
+
"
|
|
699
|
+
>
|
|
700
|
+
<TableCell
|
|
701
|
+
:index="virtual.index"
|
|
702
|
+
:render="slot.cell.column.columnDef.meta.render"
|
|
703
|
+
:row="row.original"
|
|
704
|
+
/>
|
|
705
|
+
</div>
|
|
706
|
+
</td>
|
|
707
|
+
</template>
|
|
708
|
+
</tr>
|
|
709
|
+
|
|
710
|
+
<tr
|
|
711
|
+
v-if="virtualPaddingBottom"
|
|
712
|
+
key="pad-bottom"
|
|
713
|
+
:style="{ height: `${virtualPaddingBottom}px` }"
|
|
714
|
+
aria-hidden="true"
|
|
715
|
+
>
|
|
716
|
+
<td :colspan="leafColumns.length" class="p-0" />
|
|
717
|
+
</tr>
|
|
718
|
+
<tr
|
|
719
|
+
v-if="loadingMore"
|
|
720
|
+
key="loading-more"
|
|
721
|
+
class="nut-dl-row nut-dl-row--loading-more"
|
|
722
|
+
aria-hidden="true"
|
|
723
|
+
>
|
|
724
|
+
<td
|
|
725
|
+
:colspan="leafColumns.length"
|
|
726
|
+
class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
|
|
727
|
+
>
|
|
728
|
+
<div
|
|
729
|
+
class="nut-dl-loading-more flex items-center gap-2.5 px-[var(--nut-dl-gutter)] text-[12.5px] text-muted"
|
|
730
|
+
>
|
|
731
|
+
<span
|
|
732
|
+
class="nut-dl-spinner size-3.5 rounded-full border-2 border-accented border-t-primary"
|
|
733
|
+
/>
|
|
734
|
+
<span>{{ t("table.controls.loadingMore") }}</span>
|
|
735
|
+
</div>
|
|
736
|
+
</td>
|
|
737
|
+
</tr>
|
|
738
|
+
|
|
739
|
+
<tr
|
|
740
|
+
v-for="placeholder in isFirstLoad ? skeletonRows : 0"
|
|
741
|
+
:key="`skeleton-${placeholder}`"
|
|
742
|
+
class="nut-dl-row nut-dl-row--skeleton"
|
|
743
|
+
:style="{ '--nut-dl-i': placeholder }"
|
|
744
|
+
aria-hidden="true"
|
|
745
|
+
>
|
|
746
|
+
<template v-for="slot in columnSlots" :key="slot.key">
|
|
747
|
+
<td v-if="slot.kind === 'spacer'" :colspan="slot.colSpan" class="p-0" />
|
|
748
|
+
<td
|
|
749
|
+
v-else
|
|
750
|
+
class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
|
|
751
|
+
:class="[
|
|
752
|
+
headerByColumnId.get(slot.columnId)?.column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[2]' : '',
|
|
753
|
+
headerByColumnId.get(slot.columnId)?.column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[2]' : '',
|
|
754
|
+
headerByColumnId.get(slot.columnId)?.column.columnDef.meta?.align === 'right' ? 'text-right' : ''
|
|
755
|
+
]"
|
|
756
|
+
:style="
|
|
757
|
+
headerByColumnId.get(slot.columnId) ? pinnedOffset(headerByColumnId.get(slot.columnId).column) : void 0
|
|
758
|
+
"
|
|
759
|
+
>
|
|
760
|
+
<component :is="renderSkeletonCell(slot.columnId, placeholder)" />
|
|
761
|
+
</td>
|
|
762
|
+
</template>
|
|
763
|
+
</tr>
|
|
764
|
+
</component>
|
|
765
|
+
|
|
766
|
+
<tfoot
|
|
767
|
+
v-if="summaries.enabled.value && !isFirstLoad && !empty"
|
|
768
|
+
:class="mergeDataListUiClass('nut-dl-table__foot', void 0, ui?.tfoot)"
|
|
769
|
+
>
|
|
770
|
+
<tr class="nut-dl-table__foot-row">
|
|
771
|
+
<template v-for="slot in columnSlots" :key="`foot-${slot.key}`">
|
|
772
|
+
<td
|
|
773
|
+
v-if="slot.kind === 'spacer'"
|
|
774
|
+
:colspan="slot.colSpan"
|
|
775
|
+
class="nut-dl-table__spacer nut-dl-tf sticky bottom-0 z-[3] p-0"
|
|
776
|
+
aria-hidden="true"
|
|
777
|
+
/>
|
|
778
|
+
<td
|
|
779
|
+
v-else-if="headerByColumnId.get(slot.columnId)"
|
|
780
|
+
class="nut-dl-tf sticky bottom-0 z-[3] h-[var(--nut-dl-foot-h)] py-0 align-middle"
|
|
781
|
+
:class="[
|
|
782
|
+
headerByColumnId.get(slot.columnId).column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[4]' : '',
|
|
783
|
+
headerByColumnId.get(slot.columnId).column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[4]' : '',
|
|
784
|
+
isLastStart(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--last-start' : '',
|
|
785
|
+
isFirstEnd(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--first-end' : '',
|
|
786
|
+
headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'right' ? 'text-right' : headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'center' ? 'text-center' : '',
|
|
787
|
+
headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal ? `nut-dl-tf--${headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal}` : ''
|
|
788
|
+
]"
|
|
789
|
+
:data-col="slot.columnId"
|
|
790
|
+
:style="pinnedOffset(headerByColumnId.get(slot.columnId).column)"
|
|
791
|
+
>
|
|
792
|
+
<div
|
|
793
|
+
v-if="slot.columnId === summaryLabelColumnId"
|
|
794
|
+
class="nut-dl-tf__label flex items-center gap-2 whitespace-nowrap"
|
|
795
|
+
>
|
|
796
|
+
<span
|
|
797
|
+
class="nut-dl-tf__caption text-[10.5px] tracking-[0.08em] text-muted uppercase"
|
|
798
|
+
>
|
|
799
|
+
{{ summaryLabel }}
|
|
800
|
+
</span>
|
|
801
|
+
<span class="nut-dl-tf__count tabular-nums">{{
|
|
802
|
+
formatNumber(summaries.count.value)
|
|
803
|
+
}}</span>
|
|
804
|
+
</div>
|
|
805
|
+
<template v-else-if="summaryColumnIds.has(slot.columnId)">
|
|
806
|
+
<span
|
|
807
|
+
v-if="summaries.cell(slot.columnId).loading"
|
|
808
|
+
class="nut-dl-skeleton nut-dl-tf__skeleton inline-block h-3 w-12 rounded-full align-middle"
|
|
809
|
+
aria-hidden="true"
|
|
810
|
+
/>
|
|
811
|
+
<span v-else class="nut-dl-tf__value tabular-nums">
|
|
812
|
+
<component :is="renderSummary(slot.columnId)" />
|
|
813
|
+
</span>
|
|
814
|
+
</template>
|
|
815
|
+
</td>
|
|
816
|
+
</template>
|
|
817
|
+
</tr>
|
|
818
|
+
</tfoot>
|
|
819
|
+
<tfoot
|
|
820
|
+
v-else-if="$slots.footer"
|
|
821
|
+
:class="mergeDataListUiClass('nut-dl-table__foot', void 0, ui?.tfoot)"
|
|
822
|
+
>
|
|
823
|
+
<slot name="footer" :column-slots="columnSlots" :leaf-columns="leafColumns" />
|
|
824
|
+
</tfoot>
|
|
825
|
+
</table>
|
|
826
|
+
|
|
827
|
+
<div v-if="empty" class="nut-dl-table__empty sticky left-0 w-full">
|
|
828
|
+
<slot name="empty">
|
|
829
|
+
<TableEmptyState
|
|
830
|
+
:min-height="fill ? 'calc(100% - var(--nut-dl-head-h))' : '16rem'"
|
|
831
|
+
:size="resolvedSize"
|
|
832
|
+
/>
|
|
833
|
+
</slot>
|
|
834
|
+
</div>
|
|
835
|
+
</div>
|
|
836
|
+
<TableOverlayScrollbars ref="scrollbarsRef" :target="scrollRef" />
|
|
837
|
+
</div>
|
|
838
|
+
</template>
|
|
839
|
+
|
|
840
|
+
<style>
|
|
841
|
+
.nut-dl-table{--nut-dl-surface:var(--nut-dl-table-surface,var(--ui-bg-elevated));--nut-dl-line:var(--nut-dl-table-line,var(--ui-border));--nut-dl-line-soft:var(--nut-dl-table-line-soft,var(--ui-border-muted));--nut-dl-head-bg:var(--nut-dl-table-head-bg,var(--ui-bg-muted));--nut-dl-head-fg:var(--nut-dl-table-head-fg,var(--ui-text-muted));--nut-dl-head-font:var(--nut-dl-table-head-font,11px);--nut-dl-head-weight:var(--nut-dl-table-head-weight,600);--nut-dl-head-tracking:var(--nut-dl-table-head-tracking,0.04em);--nut-dl-head-transform:var(--nut-dl-table-head-transform,none);--nut-dl-row-hover:var(--nut-dl-table-row-hover,var(--ui-bg-muted));--nut-dl-row-selected:var(
|
|
842
|
+
--nut-dl-table-row-selected,color-mix(in srgb,var(--ui-primary) 10%,var(--nut-dl-surface))
|
|
843
|
+
);--nut-dl-accent:var(--ui-primary);--nut-dl-cell-fg:var(--nut-dl-table-cell-fg,var(--ui-text-toned));--nut-dl-pin-line:var(--nut-dl-table-pin-line,var(--nut-dl-line))}.nut-dl-table__scroll{overflow-anchor:none;scrollbar-width:none}.nut-dl-table__scroll::-webkit-scrollbar{display:none}.nut-dl-th{color:var(--nut-dl-head-fg);font-size:var(--nut-dl-head-font);font-weight:var(--nut-dl-head-weight);letter-spacing:var(--nut-dl-head-tracking);text-transform:var(--nut-dl-head-transform);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.nut-dl-table__spacer,.nut-dl-th{border-bottom:1px solid var(--nut-dl-line)}.nut-dl-table__spacer,.nut-dl-tf,.nut-dl-th{background:var(--nut-dl-head-bg);border-top:1px solid var(--nut-dl-line)}.nut-dl-tf{color:var(--ui-text-highlighted);font-weight:var(--nut-dl-table-foot-weight,500);white-space:nowrap}tfoot .nut-dl-table__spacer{border-bottom:0;border-top:1px solid var(--nut-dl-line)}.nut-dl-spinner{animation:nut-dl-spin .8s linear infinite}@keyframes nut-dl-spin{to{transform:rotate(1turn)}}tbody .nut-dl-table__spacer{background:var(--nut-dl-surface);border-bottom:1px solid var(--nut-dl-line-soft)}.nut-dl-th__btn--open{background:color-mix(in srgb,var(--nut-dl-head-fg) 8%,transparent)}.nut-dl-rz:after{background:var(--ui-border-accented);bottom:10px;content:"";opacity:0;position:absolute;right:0;top:10px;transition:opacity .12s;width:1px}.nut-dl-rz:hover:after,.nut-dl-th:hover .nut-dl-rz:after{opacity:1}.nut-dl-rz--active:after,.nut-dl-rz:hover:after{background:var(--nut-dl-accent);bottom:6px;left:2.5px;opacity:1;top:6px;width:2px}.nut-dl-row{background:var(--nut-dl-surface);transition:background-color .1s}.nut-dl-row:hover{background:var(--nut-dl-row-hover)}.nut-dl-row--selected,.nut-dl-row--selected:hover{background:var(--nut-dl-row-selected)}.nut-dl-td,.nut-dl-th__btn,.nut-dl-th__static{padding-left:var(--nut-dl-cell-l,var(--nut-dl-cell-x));padding-right:var(--nut-dl-cell-r,var(--nut-dl-cell-x))}.nut-dl-row>.nut-dl-td:first-child,.nut-dl-table__head-row>.nut-dl-th:first-child{--nut-dl-cell-l:var(--nut-dl-gutter)}.nut-dl-row>.nut-dl-td:last-child,.nut-dl-table__head-row>.nut-dl-th:last-child{--nut-dl-cell-r:var(--nut-dl-gutter)}.nut-dl-row>.nut-dl-td--actions:last-child,.nut-dl-table__head-row>.nut-dl-th--actions:last-child,.nut-dl-td--actions{--nut-dl-cell-l:var(--nut-dl-cell-x);--nut-dl-cell-r:var(--nut-dl-cell-x)}.nut-dl-td--actions .nut-dl-td__inner{justify-content:flex-end}.nut-dl-td{background:inherit;border-bottom:1px solid var(--nut-dl-line-soft);box-sizing:border-box;color:var(--nut-dl-cell-fg);overflow:hidden;overflow-wrap:anywhere;padding-block:var(--nut-dl-cell-y,6px);white-space:normal}.nut-dl-td__inner{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--nut-dl-lines,3);line-clamp:var(--nut-dl-lines,3);max-height:calc(var(--nut-dl-lines, 3)*1.5em);overflow:hidden}.nut-dl-td--ellipsis{--nut-dl-lines:1;white-space:nowrap}.nut-dl-td--ellipsis .nut-dl-td__inner{display:block;text-overflow:ellipsis}.nut-dl-td--actions .nut-dl-td__inner,.nut-dl-td--selection .nut-dl-td__inner{align-items:center;display:flex}.nut-dl-td--actions,.nut-dl-td--selection{white-space:nowrap}.nut-dl-td--actions .nut-dl-td__inner>*{opacity:.55;transition:opacity .12s}.nut-dl-row:hover .nut-dl-td--actions .nut-dl-td__inner>*{opacity:1}.nut-dl-pin{position:sticky}.nut-dl-pin--first-end:before,.nut-dl-pin--last-start:after{background:var(--nut-dl-line);bottom:0;content:"";pointer-events:none;position:absolute;top:0;width:1px}.nut-dl-pin--last-start:after{right:0}.nut-dl-pin--first-end:before{left:0}.nut-dl-pin--first-end:before,.nut-dl-pin--last-start:after{background:var(--nut-dl-pin-line)}.nut-dl-td--actions.nut-dl-pin--first-end:before,.nut-dl-th--actions.nut-dl-pin--first-end:before{display:none}.nut-dl-progress th{overflow:hidden}.nut-dl-progress th span{animation:nut-dl-progress 1s ease-in-out infinite;background:linear-gradient(90deg,transparent,var(--nut-dl-accent),transparent);background-size:40% 100%;height:2px;left:0;position:absolute;right:0}@keyframes nut-dl-progress{0%{background-position:-40% 0}to{background-position:140% 0}}.nut-dl-skeleton{animation:nut-dl-shimmer 1.6s ease-in-out infinite;animation-delay:calc(var(--nut-dl-i, 0)*-90ms);background:linear-gradient(90deg,var(--ui-bg-accented) 0,var(--ui-bg-muted) 45%,var(--ui-bg-accented) 100%);background-size:200% 100%}.nut-dl-row--skeleton{animation:nut-dl-fade-in .2s ease both;animation-delay:calc(var(--nut-dl-i, 0)*18ms)}@keyframes nut-dl-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nut-dl-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.nut-dl-table[data-virtualized=true] .nut-dl-row[style*="--nut-dl-i"]{animation:nut-dl-row-in .22s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--nut-dl-i)*10ms)}@keyframes nut-dl-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.nut-dl-row--moving{transition:transform .24s cubic-bezier(.2,.9,.3,1)}.nut-dl-row--settling{transition:opacity .18s ease,transform .24s cubic-bezier(.2,.9,.3,1)}.nut-dl-row--from{opacity:0;transform:translateY(4px)}@media (prefers-reduced-motion:reduce){.nut-dl-row,.nut-dl-row--moving,.nut-dl-row--settling{transition:none}.nut-dl-progress th span,.nut-dl-skeleton,.nut-dl-table[data-virtualized=true] .nut-dl-row[style*="--nut-dl-i"]{animation:none}}
|
|
844
|
+
</style>
|