nuxt-ui-tools 1.11.2 → 1.13.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/README.md +11 -5
- package/dist/module.json +1 -1
- package/dist/module.mjs +46 -0
- package/dist/runtime/dashboard/components/dashboard-stat.d.vue.ts +1 -1
- package/dist/runtime/dashboard/components/dashboard-stat.vue.d.ts +1 -1
- package/dist/runtime/file-preview/components/shell/file-preview-stage.d.vue.ts +2 -2
- package/dist/runtime/file-preview/components/shell/file-preview-stage.vue.d.ts +2 -2
- package/dist/runtime/form/fields/array-collapse/component.vue +2 -1
- package/dist/runtime/form/fields/array-list/component.vue +72 -63
- package/dist/runtime/form/fields/array-list/use-array-items.d.ts +1 -0
- package/dist/runtime/form/fields/array-list/use-array-items.js +4 -0
- package/dist/runtime/form/fields/array-table/component.vue +2 -1
- package/dist/runtime/form/types/api.d.ts +10 -2
- package/dist/runtime/i18n/locales/en.js +252 -130
- package/dist/runtime/i18n/locales/fr.js +252 -130
- package/dist/runtime/i18n/types.d.ts +242 -119
- package/dist/runtime/shared/types/query.d.ts +14 -4
- package/dist/runtime/shared/types/remote-options.d.ts +11 -0
- package/dist/runtime/shared/utils/define-remote-options.js +6 -0
- package/dist/runtime/shared/utils/file.d.ts +1 -1
- package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.d.vue.ts → internal/spreadsheet-import-cell-editor.d.vue.ts} +8 -5
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-cell-editor.vue +73 -0
- package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.vue.d.ts → internal/spreadsheet-import-cell-editor.vue.d.ts} +8 -5
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.d.vue.ts +17 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue +98 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue.d.ts +17 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.d.vue.ts +17 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue +20 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue.d.ts +17 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.d.vue.ts +10 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue +34 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue.d.ts +10 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.d.vue.ts +13 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue +113 -0
- package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue.d.ts +13 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.d.vue.ts +35 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue +154 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue.d.ts +35 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.d.vue.ts +23 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue +83 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue.d.ts +23 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.d.vue.ts +19 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue +45 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue.d.ts +19 -0
- package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.d.vue.ts → parts/spreadsheet-import-export-button.d.vue.ts} +3 -2
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-export-button.vue +34 -0
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.vue.d.ts → parts/spreadsheet-import-export-button.vue.d.ts} +3 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.d.vue.ts +17 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue +49 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue.d.ts +17 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.d.vue.ts +18 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue +101 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue.d.ts +18 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.d.vue.ts +22 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue +276 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue.d.ts +22 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.d.vue.ts +11 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue +164 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue.d.ts +11 -0
- package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.d.vue.ts → parts/spreadsheet-import-stat.d.vue.ts} +7 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stat.vue +30 -0
- package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.vue.d.ts → parts/spreadsheet-import-stat.vue.d.ts} +7 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.d.vue.ts +26 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue +55 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue.d.ts +26 -0
- package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.vue.d.ts → parts/spreadsheet-import-submit-button.d.vue.ts} +3 -2
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue +27 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue.d.ts +8 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.d.vue.ts +16 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue +51 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue.d.ts +16 -0
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.d.vue.ts → parts/spreadsheet-import-table-toolbar.d.vue.ts} +2 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table-toolbar.vue +217 -0
- package/dist/runtime/spreadsheet/components/{shared/spreadsheet-raw-preview-table.d.vue.ts → parts/spreadsheet-import-table-toolbar.vue.d.ts} +2 -2
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.d.vue.ts +33 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue +302 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue.d.ts +33 -0
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.d.vue.ts → parts/spreadsheet-import-template-button.d.vue.ts} +5 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-template-button.vue +31 -0
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.vue.d.ts → parts/spreadsheet-import-template-button.vue.d.ts} +5 -4
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.d.vue.ts +27 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue +162 -0
- package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue.d.ts +27 -0
- package/dist/runtime/spreadsheet/components/spreadsheet-import-root.d.vue.ts +24 -0
- package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue +23 -0
- package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue.d.ts +24 -0
- package/dist/runtime/spreadsheet/components/spreadsheet-import.d.vue.ts +21 -6
- package/dist/runtime/spreadsheet/components/spreadsheet-import.vue +46 -262
- package/dist/runtime/spreadsheet/components/spreadsheet-import.vue.d.ts +21 -6
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.d.vue.ts → steps/spreadsheet-import-step-nav.d.vue.ts} +6 -2
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step-nav.vue +116 -0
- package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.vue.d.ts → steps/spreadsheet-import-step-nav.vue.d.ts} +6 -2
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.d.vue.ts +26 -0
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue +106 -0
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue.d.ts +26 -0
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.d.vue.ts +15 -0
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue +131 -0
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue.d.ts +15 -0
- package/dist/runtime/spreadsheet/composables/index.d.ts +2 -0
- package/dist/runtime/spreadsheet/composables/index.js +2 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.d.ts +8 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.js +19 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.d.ts +23 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.js +75 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +8 -45
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +28 -32
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.d.ts +11 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.js +25 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.d.ts +16 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.js +20 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.d.ts +14 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.js +44 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.d.ts +12 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.js +22 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +18 -7
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +340 -109
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.d.ts +36 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.js +95 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.d.ts +24 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.js +159 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.d.ts +14 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.js +11 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +37 -169
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +148 -408
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +48 -26
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +334 -21
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.d.ts +33 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.js +126 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.d.ts +37 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.js +136 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.d.ts +27 -0
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.js +121 -0
- package/dist/runtime/spreadsheet/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/index.js +0 -1
- package/dist/runtime/spreadsheet/schema/builder.d.ts +8 -0
- package/dist/runtime/spreadsheet/schema/builder.js +31 -0
- package/dist/runtime/spreadsheet/schema/index.d.ts +24 -32
- package/dist/runtime/spreadsheet/schema/index.js +4 -21
- package/dist/runtime/spreadsheet/types/columns.d.ts +252 -273
- package/dist/runtime/spreadsheet/types/fields.d.ts +64 -0
- package/dist/runtime/spreadsheet/types/importer.d.ts +308 -0
- package/dist/runtime/spreadsheet/types/index.d.ts +6 -10
- package/dist/runtime/spreadsheet/types/options.d.ts +47 -9
- package/dist/runtime/spreadsheet/types/rows.d.ts +57 -48
- package/dist/runtime/spreadsheet/types/schema.d.ts +162 -76
- package/dist/runtime/spreadsheet/types/shared.d.ts +19 -21
- package/dist/runtime/spreadsheet/types/source.d.ts +39 -15
- package/dist/runtime/spreadsheet/types/steps.d.ts +76 -0
- package/dist/runtime/spreadsheet/types/validation.d.ts +49 -69
- package/dist/runtime/spreadsheet/types/values.d.ts +77 -0
- package/dist/runtime/spreadsheet/utils/download.d.ts +2 -0
- package/dist/runtime/spreadsheet/utils/download.js +8 -0
- package/dist/runtime/spreadsheet/utils/export.d.ts +26 -0
- package/dist/runtime/spreadsheet/utils/export.js +50 -0
- package/dist/runtime/spreadsheet/utils/fields.d.ts +26 -0
- package/dist/runtime/spreadsheet/utils/fields.js +169 -0
- package/dist/runtime/spreadsheet/utils/guards.d.ts +18 -0
- package/dist/runtime/spreadsheet/utils/guards.js +27 -0
- package/dist/runtime/spreadsheet/utils/headers.d.ts +15 -0
- package/dist/runtime/spreadsheet/utils/headers.js +36 -0
- package/dist/runtime/spreadsheet/utils/identity.d.ts +24 -0
- package/dist/runtime/spreadsheet/utils/identity.js +57 -0
- package/dist/runtime/spreadsheet/utils/index.d.ts +15 -6
- package/dist/runtime/spreadsheet/utils/index.js +15 -6
- package/dist/runtime/spreadsheet/utils/layout.d.ts +12 -0
- package/dist/runtime/spreadsheet/utils/layout.js +37 -0
- package/dist/runtime/spreadsheet/utils/options.d.ts +31 -10
- package/dist/runtime/spreadsheet/utils/options.js +58 -30
- package/dist/runtime/spreadsheet/utils/parse.d.ts +6 -0
- package/dist/runtime/spreadsheet/utils/parse.js +147 -0
- package/dist/runtime/spreadsheet/utils/paths.d.ts +4 -0
- package/dist/runtime/spreadsheet/utils/paths.js +29 -0
- package/dist/runtime/spreadsheet/utils/rows.d.ts +69 -0
- package/dist/runtime/spreadsheet/utils/rows.js +168 -0
- package/dist/runtime/spreadsheet/utils/rules.d.ts +4 -0
- package/dist/runtime/spreadsheet/utils/rules.js +95 -0
- package/dist/runtime/spreadsheet/utils/suggestions.d.ts +20 -0
- package/dist/runtime/spreadsheet/utils/suggestions.js +43 -0
- package/dist/runtime/spreadsheet/utils/text.d.ts +9 -0
- package/dist/runtime/spreadsheet/utils/text.js +11 -0
- package/dist/runtime/spreadsheet/utils/workbook.d.ts +13 -0
- package/dist/runtime/spreadsheet/utils/workbook.js +121 -0
- package/dist/runtime/table/components/filters/tags/boolean-filter-tag.d.vue.ts +2 -2
- package/dist/runtime/table/components/filters/tags/boolean-filter-tag.vue.d.ts +2 -2
- package/dist/runtime/table/components/filters/tags/date-filter-tag.d.vue.ts +2 -2
- package/dist/runtime/table/components/filters/tags/date-filter-tag.vue.d.ts +2 -2
- package/dist/runtime/table/components/filters/tags/number-filter-tag.d.vue.ts +2 -2
- package/dist/runtime/table/components/filters/tags/number-filter-tag.vue.d.ts +2 -2
- package/dist/runtime/table/components/filters/tags/option-filter-tag.d.vue.ts +2 -2
- package/dist/runtime/table/components/filters/tags/option-filter-tag.vue.d.ts +2 -2
- package/dist/runtime/table/components/filters/tags/text-filter-tag.d.vue.ts +2 -2
- package/dist/runtime/table/components/filters/tags/text-filter-tag.vue.d.ts +2 -2
- package/dist/runtime/table/components/table/table-cell-ellipsis.d.ts +1 -1
- package/dist/runtime/table/composables/use-table-actions.d.ts +1 -1
- package/dist/runtime/table/composables/use-table-actions.js +11 -3
- package/dist/runtime/table/composables/use-table-internals.d.ts +3 -3
- package/dist/runtime/table/types/actions.d.ts +8 -1
- package/dist/runtime/table/utils/data-list-ui.d.ts +1 -1
- package/package.json +18 -3
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-file-bar.vue +0 -31
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.d.vue.ts +0 -24
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue +0 -69
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue.d.ts +0 -24
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-header.vue +0 -36
- package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-sidebar.vue +0 -63
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue +0 -67
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue +0 -41
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue.d.ts +0 -7
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.d.vue.ts +0 -10
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue +0 -25
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue.d.ts +0 -10
- package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue +0 -201
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.d.vue.ts +0 -11
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue +0 -38
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue.d.ts +0 -11
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.d.vue.ts +0 -45
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue +0 -219
- package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue.d.ts +0 -45
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.d.vue.ts +0 -51
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue +0 -166
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue.d.ts +0 -51
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.d.vue.ts +0 -11
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue +0 -26
- package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue.d.ts +0 -11
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.d.vue.ts +0 -41
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue +0 -392
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue.d.ts +0 -41
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-overflow-alert.vue +0 -43
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.d.vue.ts +0 -15
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue +0 -40
- package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue.d.ts +0 -15
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.d.vue.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue +0 -137
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue.d.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.d.vue.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue +0 -222
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue.d.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.d.vue.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue +0 -191
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue.d.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.d.vue.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue +0 -62
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue.d.ts +0 -7
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.d.vue.ts +0 -8
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue +0 -81
- package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue.d.ts +0 -8
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.d.vue.ts +0 -15
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue +0 -95
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue.d.ts +0 -15
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.d.vue.ts +0 -15
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue +0 -56
- package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue.d.ts +0 -15
- package/dist/runtime/spreadsheet/components/types.d.ts +0 -41
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +0 -18
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +0 -62
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +0 -629
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +0 -68
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.d.ts +0 -1
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.js +0 -3
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +0 -40
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +0 -97
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +0 -24
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +0 -74
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +0 -27
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +0 -109
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +0 -15
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +0 -109
- package/dist/runtime/spreadsheet/schema/normalize.d.ts +0 -73
- package/dist/runtime/spreadsheet/schema/normalize.js +0 -136
- package/dist/runtime/spreadsheet/types/context.d.ts +0 -9
- package/dist/runtime/spreadsheet/types/import.d.ts +0 -55
- package/dist/runtime/spreadsheet/types/inference.d.ts +0 -83
- package/dist/runtime/spreadsheet/types/normalized.d.ts +0 -50
- package/dist/runtime/spreadsheet/types/normalized.js +0 -0
- package/dist/runtime/spreadsheet/types/pipeline.d.ts +0 -7
- package/dist/runtime/spreadsheet/types/pipeline.js +0 -0
- package/dist/runtime/spreadsheet/types/reference-session.d.ts +0 -43
- package/dist/runtime/spreadsheet/types/reference-session.js +0 -0
- package/dist/runtime/spreadsheet/types/references.d.ts +0 -32
- package/dist/runtime/spreadsheet/types/references.js +0 -0
- package/dist/runtime/spreadsheet/types/resolution.d.ts +0 -43
- package/dist/runtime/spreadsheet/types/resolution.js +0 -0
- package/dist/runtime/spreadsheet/utils/builders/core.d.ts +0 -17
- package/dist/runtime/spreadsheet/utils/builders/core.js +0 -262
- package/dist/runtime/spreadsheet/utils/builders/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/utils/builders/index.js +0 -1
- package/dist/runtime/spreadsheet/utils/context.d.ts +0 -20
- package/dist/runtime/spreadsheet/utils/context.js +0 -25
- package/dist/runtime/spreadsheet/utils/display.d.ts +0 -6
- package/dist/runtime/spreadsheet/utils/display.js +0 -26
- package/dist/runtime/spreadsheet/utils/object.d.ts +0 -9
- package/dist/runtime/spreadsheet/utils/object.js +0 -78
- package/dist/runtime/spreadsheet/utils/references/candidates.d.ts +0 -6
- package/dist/runtime/spreadsheet/utils/references/candidates.js +0 -28
- package/dist/runtime/spreadsheet/utils/references/core.d.ts +0 -3
- package/dist/runtime/spreadsheet/utils/references/core.js +0 -3
- package/dist/runtime/spreadsheet/utils/references/guards.d.ts +0 -4
- package/dist/runtime/spreadsheet/utils/references/guards.js +0 -28
- package/dist/runtime/spreadsheet/utils/references/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/utils/references/index.js +0 -1
- package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +0 -17
- package/dist/runtime/spreadsheet/utils/references/resolutions.js +0 -172
- package/dist/runtime/spreadsheet/utils/references/shared.d.ts +0 -3
- package/dist/runtime/spreadsheet/utils/references/shared.js +0 -26
- package/dist/runtime/spreadsheet/utils/references/sources.d.ts +0 -9
- package/dist/runtime/spreadsheet/utils/references/sources.js +0 -38
- package/dist/runtime/spreadsheet/utils/rows/core.d.ts +0 -4
- package/dist/runtime/spreadsheet/utils/rows/core.js +0 -4
- package/dist/runtime/spreadsheet/utils/rows/headers.d.ts +0 -2
- package/dist/runtime/spreadsheet/utils/rows/headers.js +0 -9
- package/dist/runtime/spreadsheet/utils/rows/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/utils/rows/index.js +0 -1
- package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +0 -5
- package/dist/runtime/spreadsheet/utils/rows/matching.js +0 -209
- package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +0 -7
- package/dist/runtime/spreadsheet/utils/rows/parsing.js +0 -209
- package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +0 -17
- package/dist/runtime/spreadsheet/utils/rows/shared.js +0 -309
- package/dist/runtime/spreadsheet/utils/rows/summary.d.ts +0 -2
- package/dist/runtime/spreadsheet/utils/rows/summary.js +0 -10
- package/dist/runtime/spreadsheet/utils/source/core.d.ts +0 -9
- package/dist/runtime/spreadsheet/utils/source/core.js +0 -65
- package/dist/runtime/spreadsheet/utils/source/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/utils/source/index.js +0 -1
- package/dist/runtime/spreadsheet/utils/validation/core.d.ts +0 -16
- package/dist/runtime/spreadsheet/utils/validation/core.js +0 -211
- package/dist/runtime/spreadsheet/utils/validation/index.d.ts +0 -1
- package/dist/runtime/spreadsheet/utils/validation/index.js +0 -1
- /package/dist/runtime/spreadsheet/{components/types.js → types/fields.js} +0 -0
- /package/dist/runtime/spreadsheet/types/{context.js → importer.js} +0 -0
- /package/dist/runtime/spreadsheet/types/{import.js → steps.js} +0 -0
- /package/dist/runtime/spreadsheet/types/{inference.js → values.js} +0 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import type { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import type { QueryFnDefinition } from '#ui-tools/shared/types/query';
|
|
3
|
+
import type { MaybePromise } from '#ui-tools/shared/types/utils';
|
|
4
|
+
import type { SpreadsheetColumnKind } from './columns.js';
|
|
5
|
+
import type { SpreadsheetFieldGroup } from './fields.js';
|
|
6
|
+
import type { SpreadsheetPrimitiveOption, SpreadsheetResolvedOption } from './options.js';
|
|
7
|
+
import type { SpreadsheetCellView, SpreadsheetRow, SpreadsheetRowIssue } from './rows.js';
|
|
8
|
+
import type { ExtractSpreadsheetContext, ExtractSpreadsheetExisting, ExtractSpreadsheetFieldPath, ExtractSpreadsheetOutput, ExtractSpreadsheetRow, SpreadsheetRuntimeSchema } from './schema.js';
|
|
9
|
+
import type { SpreadsheetHeaderCell, SpreadsheetIssueLevel } from './shared.js';
|
|
10
|
+
import type { SpreadsheetFileSource, SpreadsheetHeaderRowCandidate, SpreadsheetLayoutDetection } from './source.js';
|
|
11
|
+
import type { SpreadsheetRecognizedValue, SpreadsheetValueAnswer, SpreadsheetValueQuestion, SpreadsheetValueScope } from './values.js';
|
|
12
|
+
/** A context entry: a value, a ref, a getter, or a TanStack query the runtime loads. */
|
|
13
|
+
export type SpreadsheetContextEntry<TValue> = MaybeRefOrGetter<TValue> | QueryFnDefinition<TValue> | (() => QueryFnDefinition<TValue>);
|
|
14
|
+
export type SpreadsheetContextInput<TContext> = {
|
|
15
|
+
[TKey in keyof TContext]: SpreadsheetContextEntry<TContext[TKey]>;
|
|
16
|
+
};
|
|
17
|
+
export interface SpreadsheetSubmitRow<TOutput, TExisting> {
|
|
18
|
+
/** Index of the data row. */
|
|
19
|
+
index: number;
|
|
20
|
+
mode: 'create' | 'update';
|
|
21
|
+
payload: TOutput;
|
|
22
|
+
existing: TExisting | undefined;
|
|
23
|
+
}
|
|
24
|
+
export interface SpreadsheetSubmitParams<TOutput, TExisting, TContext> {
|
|
25
|
+
/** Payloads of new records. */
|
|
26
|
+
create: readonly TOutput[];
|
|
27
|
+
/** Payloads of stored records to update. */
|
|
28
|
+
update: readonly TOutput[];
|
|
29
|
+
/** Every payload with its row, to report rejections by row index. */
|
|
30
|
+
rows: readonly SpreadsheetSubmitRow<TOutput, TExisting>[];
|
|
31
|
+
ctx: TContext;
|
|
32
|
+
/** Position of this call when rows are sent in batches. */
|
|
33
|
+
batch: {
|
|
34
|
+
index: number;
|
|
35
|
+
count: number;
|
|
36
|
+
};
|
|
37
|
+
/** Reports how many rows of this call are done. */
|
|
38
|
+
reportProgress: (done: number) => void;
|
|
39
|
+
signal: AbortSignal;
|
|
40
|
+
}
|
|
41
|
+
export interface SpreadsheetSubmitRejection {
|
|
42
|
+
/** Index of the data row, from `rows[i].index`. */
|
|
43
|
+
index: number;
|
|
44
|
+
message: string;
|
|
45
|
+
field?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface SpreadsheetSubmitResult {
|
|
48
|
+
/** Rows the server refused: they go back to review with the message. */
|
|
49
|
+
rejected?: readonly SpreadsheetSubmitRejection[];
|
|
50
|
+
}
|
|
51
|
+
type SpreadsheetContextOption<TContext> = [keyof TContext] extends [never] ? {
|
|
52
|
+
context?: SpreadsheetContextInput<TContext>;
|
|
53
|
+
} : {
|
|
54
|
+
context: SpreadsheetContextInput<TContext>;
|
|
55
|
+
};
|
|
56
|
+
export type SpreadsheetImportOptions<TSchema> = SpreadsheetContextOption<ExtractSpreadsheetContext<TSchema>> & {
|
|
57
|
+
/** Imports the rows. Return `{ rejected }` to send refused rows back to review. */
|
|
58
|
+
onSubmit?: (params: SpreadsheetSubmitParams<ExtractSpreadsheetOutput<TSchema>, ExtractSpreadsheetExisting<TSchema>, ExtractSpreadsheetContext<TSchema>>) => MaybePromise<void | SpreadsheetSubmitResult>;
|
|
59
|
+
submit?: {
|
|
60
|
+
/** Rows per `onSubmit` call. Defaults to every row in one call. */
|
|
61
|
+
batchSize?: number;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export interface SpreadsheetContextModel<TContext> {
|
|
65
|
+
/** The context, complete once `ready`. */
|
|
66
|
+
readonly ctx: TContext;
|
|
67
|
+
readonly loading: boolean;
|
|
68
|
+
readonly ready: boolean;
|
|
69
|
+
readonly error: unknown;
|
|
70
|
+
}
|
|
71
|
+
export interface SpreadsheetFileModel {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly loaded: boolean;
|
|
74
|
+
readonly reading: boolean;
|
|
75
|
+
/** The file could not be read. */
|
|
76
|
+
readonly error: unknown;
|
|
77
|
+
readonly sheets: readonly {
|
|
78
|
+
name: string;
|
|
79
|
+
rowCount: number;
|
|
80
|
+
}[];
|
|
81
|
+
/** Reads a file. `name` defaults to the file's name. */
|
|
82
|
+
load(source: SpreadsheetFileSource, name?: string): void;
|
|
83
|
+
/** Reads rows copied from a spreadsheet. */
|
|
84
|
+
paste(text: string, name?: string): void;
|
|
85
|
+
clear(): void;
|
|
86
|
+
}
|
|
87
|
+
export interface SpreadsheetPreviewRow {
|
|
88
|
+
rowNumber: number;
|
|
89
|
+
cells: readonly string[];
|
|
90
|
+
kind: 'title' | 'header' | 'data';
|
|
91
|
+
}
|
|
92
|
+
export interface SpreadsheetLayoutModel {
|
|
93
|
+
readonly sheet: string | null;
|
|
94
|
+
/** Index of the header row among the sheet's rows. */
|
|
95
|
+
readonly headerRow: number;
|
|
96
|
+
readonly headerRowNumber: number;
|
|
97
|
+
readonly detection: SpreadsheetLayoutDetection | null;
|
|
98
|
+
/** The selection is what detection found. */
|
|
99
|
+
readonly detected: boolean;
|
|
100
|
+
readonly ambiguous: boolean;
|
|
101
|
+
/** Header row candidates of the current sheet, with their scores. */
|
|
102
|
+
readonly candidates: readonly SpreadsheetHeaderRowCandidate[];
|
|
103
|
+
readonly headers: readonly SpreadsheetHeaderCell[];
|
|
104
|
+
/** Rows around the header row, for a preview. */
|
|
105
|
+
readonly preview: readonly SpreadsheetPreviewRow[];
|
|
106
|
+
setSheet(name: string): void;
|
|
107
|
+
setHeaderRow(index: number): void;
|
|
108
|
+
redetect(): void;
|
|
109
|
+
}
|
|
110
|
+
/** Where a field stands in the file. */
|
|
111
|
+
export type SpreadsheetFieldStatus = 'matched' | 'default' | 'missing' | 'unmatched';
|
|
112
|
+
export interface SpreadsheetFieldState<TPath extends string = string> {
|
|
113
|
+
path: TPath;
|
|
114
|
+
label: string;
|
|
115
|
+
/** Name of the column in files. */
|
|
116
|
+
name: string;
|
|
117
|
+
description: string;
|
|
118
|
+
example: string;
|
|
119
|
+
kind: SpreadsheetColumnKind;
|
|
120
|
+
group: SpreadsheetFieldGroup | null;
|
|
121
|
+
required: boolean;
|
|
122
|
+
/** Path of the column a select reads, or `null`. */
|
|
123
|
+
from: string | null;
|
|
124
|
+
/**
|
|
125
|
+
* `matched`: a column of the file; `default`: no column, the default fills it; `missing`: a
|
|
126
|
+
* required field without a column; `unmatched`: an optional field without a column.
|
|
127
|
+
*/
|
|
128
|
+
status: SpreadsheetFieldStatus;
|
|
129
|
+
header: SpreadsheetHeaderCell | null;
|
|
130
|
+
/** `file` when a header named the field, `user` when the user chose the column. */
|
|
131
|
+
assignedBy: 'file' | 'user' | null;
|
|
132
|
+
/** First distinct values of the column. */
|
|
133
|
+
samples: readonly string[];
|
|
134
|
+
/** For a missing field: a column whose values fit it. Never applied without the user. */
|
|
135
|
+
suggestion: {
|
|
136
|
+
header: SpreadsheetHeaderCell;
|
|
137
|
+
samples: readonly string[];
|
|
138
|
+
} | null;
|
|
139
|
+
}
|
|
140
|
+
export interface SpreadsheetColumnsModel<TPath extends string = string> {
|
|
141
|
+
readonly fields: readonly SpreadsheetFieldState<TPath>[];
|
|
142
|
+
readonly groups: readonly SpreadsheetFieldGroup[];
|
|
143
|
+
readonly missing: readonly SpreadsheetFieldState<TPath>[];
|
|
144
|
+
readonly headers: readonly SpreadsheetHeaderCell[];
|
|
145
|
+
/** Columns of the file no field reads. */
|
|
146
|
+
readonly unusedHeaders: readonly SpreadsheetHeaderCell[];
|
|
147
|
+
/** Reads the field from a column (0-based index). */
|
|
148
|
+
assign(field: TPath, header: number): void;
|
|
149
|
+
/** Imports the field without a column. */
|
|
150
|
+
ignore(field: TPath): void;
|
|
151
|
+
/** Back to what the headers name. */
|
|
152
|
+
reset(field: TPath): void;
|
|
153
|
+
}
|
|
154
|
+
/** A value to answer: a question, or a field and a value (with a scope id when there is one). */
|
|
155
|
+
export interface SpreadsheetValueTarget<TPath extends string = string> {
|
|
156
|
+
field: TPath;
|
|
157
|
+
value: string;
|
|
158
|
+
scope?: Pick<SpreadsheetValueScope, 'id'> | null;
|
|
159
|
+
}
|
|
160
|
+
export interface SpreadsheetValuesModel<TPath extends string = string> {
|
|
161
|
+
/** Distinct values matching no option, answered or not. */
|
|
162
|
+
readonly questions: readonly SpreadsheetValueQuestion<TPath>[];
|
|
163
|
+
/** Questions without an answer: they block the import. */
|
|
164
|
+
readonly open: readonly SpreadsheetValueQuestion<TPath>[];
|
|
165
|
+
/** Distinct values that matched an option. */
|
|
166
|
+
readonly recognized: readonly SpreadsheetRecognizedValue<TPath>[];
|
|
167
|
+
/** Options are still loading. */
|
|
168
|
+
readonly loading: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Options of a select field, in declared order. Options depending on the row need the row
|
|
171
|
+
* index; without it, they give no options.
|
|
172
|
+
*/
|
|
173
|
+
choices(field: TPath, row?: number): readonly SpreadsheetResolvedOption[];
|
|
174
|
+
/** Searches a remote list; other fields filter their options. */
|
|
175
|
+
search(field: TPath, text: string): Promise<readonly SpreadsheetResolvedOption[]>;
|
|
176
|
+
/**
|
|
177
|
+
* Answers a question: an option value, or an action. It applies to every row with the value,
|
|
178
|
+
* in the question's scope.
|
|
179
|
+
*/
|
|
180
|
+
answer(question: SpreadsheetValueTarget<TPath>, answer: SpreadsheetValueAnswer | SpreadsheetPrimitiveOption): void;
|
|
181
|
+
clear(question: SpreadsheetValueTarget<TPath>): void;
|
|
182
|
+
}
|
|
183
|
+
export interface SpreadsheetFieldIssue {
|
|
184
|
+
row: number;
|
|
185
|
+
issue: SpreadsheetRowIssue;
|
|
186
|
+
}
|
|
187
|
+
export interface SpreadsheetRowsModel<TRow, TExisting, TPath extends string = string> {
|
|
188
|
+
readonly all: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
189
|
+
readonly valid: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
190
|
+
readonly invalid: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
191
|
+
readonly discarded: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
192
|
+
readonly importable: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
193
|
+
/** Importable rows by mode, and skipped stored records. */
|
|
194
|
+
readonly byMode: {
|
|
195
|
+
create: number;
|
|
196
|
+
update: number;
|
|
197
|
+
skip: number;
|
|
198
|
+
};
|
|
199
|
+
/** Fields the row key reads. */
|
|
200
|
+
readonly keyFields: readonly string[];
|
|
201
|
+
/** Stored records are being looked up. */
|
|
202
|
+
readonly loading: boolean;
|
|
203
|
+
row(index: number): SpreadsheetRow<TRow, TExisting> | undefined;
|
|
204
|
+
cell(index: number, field: TPath): SpreadsheetCellView;
|
|
205
|
+
/** Distinct displayed values of a field among rows that are not discarded. */
|
|
206
|
+
distinct(field: TPath): readonly string[];
|
|
207
|
+
/** Issues of a field, or of every field. */
|
|
208
|
+
issues(field?: TPath): readonly SpreadsheetFieldIssue[];
|
|
209
|
+
edit(index: number, field: TPath, text: string): void;
|
|
210
|
+
revert(index: number, field: TPath): void;
|
|
211
|
+
discard(indexes: readonly number[]): void;
|
|
212
|
+
restore(indexes: readonly number[]): void;
|
|
213
|
+
/** The invalid rows as an xlsx file, with an Issues column. */
|
|
214
|
+
exportInvalid(): Blob;
|
|
215
|
+
}
|
|
216
|
+
export type SpreadsheetReviewTab = 'all' | 'importable' | 'invalid' | 'discarded';
|
|
217
|
+
export type SpreadsheetReviewLevel = 'all' | 'blocking' | 'warnings';
|
|
218
|
+
export type SpreadsheetReviewMode = 'all' | 'create' | 'update';
|
|
219
|
+
/** One kind of issue across rows. */
|
|
220
|
+
export interface SpreadsheetIssueType {
|
|
221
|
+
/** `field|code`, a review issue filter. */
|
|
222
|
+
id: string;
|
|
223
|
+
field: string;
|
|
224
|
+
code: string;
|
|
225
|
+
level: SpreadsheetIssueLevel;
|
|
226
|
+
message: string;
|
|
227
|
+
rowCount: number;
|
|
228
|
+
}
|
|
229
|
+
export interface SpreadsheetReviewModel<TRow, TExisting> {
|
|
230
|
+
readonly tab: SpreadsheetReviewTab;
|
|
231
|
+
readonly level: SpreadsheetReviewLevel;
|
|
232
|
+
readonly mode: SpreadsheetReviewMode;
|
|
233
|
+
/** `field|code`, `field|*` for every issue of a field, or empty. */
|
|
234
|
+
readonly issue: string;
|
|
235
|
+
readonly search: string;
|
|
236
|
+
readonly visible: readonly SpreadsheetRow<TRow, TExisting>[];
|
|
237
|
+
readonly selection: ReadonlySet<number>;
|
|
238
|
+
readonly inspected: SpreadsheetRow<TRow, TExisting> | null;
|
|
239
|
+
readonly issueTypes: readonly SpreadsheetIssueType[];
|
|
240
|
+
/** Rows with an issue on each field, and the most severe level. */
|
|
241
|
+
readonly fieldIssues: ReadonlyMap<string, {
|
|
242
|
+
rowCount: number;
|
|
243
|
+
level: SpreadsheetIssueLevel;
|
|
244
|
+
}>;
|
|
245
|
+
/** Position of the inspected row among rows with issues. */
|
|
246
|
+
readonly position: {
|
|
247
|
+
current: number;
|
|
248
|
+
total: number;
|
|
249
|
+
};
|
|
250
|
+
setTab(tab: SpreadsheetReviewTab): void;
|
|
251
|
+
setLevel(level: SpreadsheetReviewLevel): void;
|
|
252
|
+
setMode(mode: SpreadsheetReviewMode): void;
|
|
253
|
+
setIssue(issue: string): void;
|
|
254
|
+
setSearch(search: string): void;
|
|
255
|
+
select(indexes: readonly number[], selected: boolean): void;
|
|
256
|
+
clearSelection(): void;
|
|
257
|
+
inspect(index: number | null): void;
|
|
258
|
+
/** Inspects the next row with an issue. */
|
|
259
|
+
next(): void;
|
|
260
|
+
previous(): void;
|
|
261
|
+
}
|
|
262
|
+
export type SpreadsheetSubmitStatus = 'idle' | 'running' | 'done' | 'error';
|
|
263
|
+
export interface SpreadsheetSubmitModel {
|
|
264
|
+
readonly status: SpreadsheetSubmitStatus;
|
|
265
|
+
readonly progress: {
|
|
266
|
+
done: number;
|
|
267
|
+
total: number;
|
|
268
|
+
};
|
|
269
|
+
/** Rows the server refused in the last run. */
|
|
270
|
+
readonly rejected: readonly SpreadsheetSubmitRejection[];
|
|
271
|
+
/** Rows imported in the last run. */
|
|
272
|
+
readonly imported: number;
|
|
273
|
+
readonly error: unknown;
|
|
274
|
+
run(): Promise<void>;
|
|
275
|
+
/** Sends again the rows the server refused. */
|
|
276
|
+
retryRejected(): Promise<void>;
|
|
277
|
+
reset(): void;
|
|
278
|
+
}
|
|
279
|
+
export interface SpreadsheetReadiness {
|
|
280
|
+
missingColumns: number;
|
|
281
|
+
openValues: number;
|
|
282
|
+
invalidRows: number;
|
|
283
|
+
importable: number;
|
|
284
|
+
/** Context, file, options, or stored records are loading. */
|
|
285
|
+
loading: boolean;
|
|
286
|
+
/** Something can be imported and nothing blocks it. */
|
|
287
|
+
canSubmit: boolean;
|
|
288
|
+
}
|
|
289
|
+
/** What `useSpreadsheetImport` returns. Every member is reactive and readable in templates. */
|
|
290
|
+
export interface SpreadsheetImporter<TSchema extends SpreadsheetRuntimeSchema = SpreadsheetRuntimeSchema> {
|
|
291
|
+
readonly schema: TSchema;
|
|
292
|
+
readonly context: SpreadsheetContextModel<ExtractSpreadsheetContext<TSchema>>;
|
|
293
|
+
readonly file: SpreadsheetFileModel;
|
|
294
|
+
readonly layout: SpreadsheetLayoutModel;
|
|
295
|
+
readonly columns: SpreadsheetColumnsModel<ExtractSpreadsheetFieldPath<TSchema>>;
|
|
296
|
+
readonly values: SpreadsheetValuesModel<ExtractSpreadsheetFieldPath<TSchema>>;
|
|
297
|
+
readonly rows: SpreadsheetRowsModel<ExtractSpreadsheetRow<TSchema>, ExtractSpreadsheetExisting<TSchema>, ExtractSpreadsheetFieldPath<TSchema>>;
|
|
298
|
+
readonly review: SpreadsheetReviewModel<ExtractSpreadsheetRow<TSchema>, ExtractSpreadsheetExisting<TSchema>>;
|
|
299
|
+
readonly submit: SpreadsheetSubmitModel;
|
|
300
|
+
readonly readiness: SpreadsheetReadiness;
|
|
301
|
+
/** Resolves when the file is read, the context and options are loaded, and rows are parsed. */
|
|
302
|
+
ready(): Promise<void>;
|
|
303
|
+
/** The file to fill in, from the schema and the context. */
|
|
304
|
+
template(): Blob;
|
|
305
|
+
/** Clears the file and everything decided about it. */
|
|
306
|
+
reset(): void;
|
|
307
|
+
}
|
|
308
|
+
export {};
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
export type * from './shared';
|
|
2
|
-
export type * from './source';
|
|
3
|
-
export type * from './context';
|
|
4
1
|
export type * from './columns';
|
|
2
|
+
export type * from './fields';
|
|
5
3
|
export type * from './options';
|
|
6
|
-
export type * from './resolution';
|
|
7
|
-
export type * from './references';
|
|
8
|
-
export type * from './reference-session';
|
|
9
|
-
export type * from './import';
|
|
10
|
-
export type * from './pipeline';
|
|
11
|
-
export type * from './inference';
|
|
12
4
|
export type * from './rows';
|
|
13
5
|
export type * from './schema';
|
|
14
|
-
export type * from './
|
|
6
|
+
export type * from './shared';
|
|
7
|
+
export type * from './source';
|
|
15
8
|
export type * from './validation';
|
|
9
|
+
export type * from './values';
|
|
10
|
+
export type * from './importer';
|
|
11
|
+
export type * from './steps';
|
|
@@ -1,15 +1,53 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueryFnDefinition } from '#ui-tools/shared/types/query';
|
|
2
|
+
import type { RemoteOptionsLoader } from '#ui-tools/shared/types/remote-options';
|
|
3
|
+
import type { LazyTextValue, MaybePromise } from '#ui-tools/shared/types/utils';
|
|
2
4
|
export type SpreadsheetPrimitiveOption = string | number | boolean;
|
|
5
|
+
/** An option with a label; `aliases` are the other exact names this value has in files. */
|
|
3
6
|
export interface SpreadsheetOptionEntry<TValue = unknown> {
|
|
4
|
-
label: LazyTextValue;
|
|
5
7
|
value: TValue;
|
|
8
|
+
label: LazyTextValue;
|
|
9
|
+
aliases?: readonly string[];
|
|
6
10
|
}
|
|
7
|
-
export type SpreadsheetOptionItem
|
|
11
|
+
export type SpreadsheetOptionItem = SpreadsheetPrimitiveOption | SpreadsheetOptionEntry;
|
|
8
12
|
export type InferSpreadsheetOptionValue<TOption> = TOption extends SpreadsheetOptionEntry<infer TValue> ? TValue : TOption extends SpreadsheetPrimitiveOption ? TOption : never;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Where a `select` column finds its options. The same sources as a form select:
|
|
15
|
+
*
|
|
16
|
+
* - a list of values or `{ value, label, aliases }`
|
|
17
|
+
* - a TanStack query returning that list
|
|
18
|
+
* - a `defineRemoteOptions` loader, for lists too large to load at once
|
|
19
|
+
* - a function of the context returning a list or a query
|
|
20
|
+
*/
|
|
21
|
+
export type SpreadsheetOptionsSource<TContext, TOption, TRow = unknown> = readonly TOption[] | QueryFnDefinition<readonly TOption[]> | RemoteOptionsLoader<TOption> | SpreadsheetOptionsResolver<TContext, TOption, TRow>;
|
|
22
|
+
/**
|
|
23
|
+
* Options from the context, or from the row so far: `({ row }) => scalesOf(row.productId)`. A
|
|
24
|
+
* function reading `row` runs for each distinct set of values it reads and must return a list.
|
|
25
|
+
*/
|
|
26
|
+
export type SpreadsheetOptionsResolver<TContext, TOption, TRow = unknown> = {
|
|
27
|
+
bivarianceHack(params: {
|
|
28
|
+
ctx: TContext;
|
|
29
|
+
row: TRow;
|
|
30
|
+
}): readonly TOption[] | QueryFnDefinition<readonly TOption[]>;
|
|
13
31
|
}['bivarianceHack'];
|
|
14
|
-
|
|
15
|
-
export {
|
|
32
|
+
/** Creates an option for a value that isn't in the list. Runs when the user imports. */
|
|
33
|
+
export interface SpreadsheetOptionsCreate<TContext, TOption> {
|
|
34
|
+
handler: {
|
|
35
|
+
bivarianceHack(params: {
|
|
36
|
+
label: string;
|
|
37
|
+
ctx: TContext;
|
|
38
|
+
}): MaybePromise<TOption>;
|
|
39
|
+
}['bivarianceHack'];
|
|
40
|
+
}
|
|
41
|
+
/** Options with a creation handler, as in form option configs. */
|
|
42
|
+
export interface SpreadsheetOptionsConfig<TContext, TOption, TRow = unknown> {
|
|
43
|
+
source: SpreadsheetOptionsSource<TContext, TOption, TRow>;
|
|
44
|
+
/** Enables `unknown: 'create'`: each new value is created once, before the rows are sent. */
|
|
45
|
+
create?: SpreadsheetOptionsCreate<TContext, TOption>;
|
|
46
|
+
}
|
|
47
|
+
export type SpreadsheetOptionsInput<TContext, TOption, TRow = unknown> = SpreadsheetOptionsSource<TContext, TOption, TRow> | SpreadsheetOptionsConfig<TContext, TOption, TRow>;
|
|
48
|
+
/** An option as the runtime uses it: resolved label and the keys it matches exactly. */
|
|
49
|
+
export interface SpreadsheetResolvedOption {
|
|
50
|
+
value: unknown;
|
|
51
|
+
label: string;
|
|
52
|
+
aliases: readonly string[];
|
|
53
|
+
}
|
|
@@ -1,58 +1,67 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SpreadsheetResolvedOption } from './options.js';
|
|
2
|
+
import type { SpreadsheetRowMode } from './schema.js';
|
|
2
3
|
import type { SpreadsheetIssueLevel, SpreadsheetRecord } from './shared.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
key: string;
|
|
11
|
-
label: string;
|
|
12
|
-
assigned: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface SpreadsheetColumnMatch<TColumn = SpreadsheetColumnDefinition<string, unknown, boolean, unknown>> {
|
|
15
|
-
key: string;
|
|
16
|
-
columnIndex: number;
|
|
17
|
-
header: SpreadsheetHeaderCell;
|
|
18
|
-
column: TColumn;
|
|
19
|
-
}
|
|
20
|
-
export interface SpreadsheetUnmatchedColumn<TColumn = SpreadsheetColumnDefinition<string, unknown, boolean, unknown>> {
|
|
21
|
-
key: string;
|
|
22
|
-
column: TColumn;
|
|
23
|
-
}
|
|
24
|
-
export interface SpreadsheetDynamicColumnMatch<TColumn = SpreadsheetDynamicOptionGroupsDefinition<string, string, unknown> | SpreadsheetDynamicCollectionDefinition<string, 'array' | 'record'>, TItem = SpreadsheetDynamicCollectionItemDefinition> {
|
|
25
|
-
key: string;
|
|
26
|
-
targetKey: string;
|
|
27
|
-
columnIndex: number;
|
|
28
|
-
header: SpreadsheetHeaderCell;
|
|
29
|
-
column: TColumn;
|
|
30
|
-
source: unknown;
|
|
31
|
-
item?: TItem;
|
|
32
|
-
}
|
|
4
|
+
/**
|
|
5
|
+
* An issue on a row. `field` is the path of the cell it is about, or `null` for the row.
|
|
6
|
+
*
|
|
7
|
+
* Codes raised by the engine: `required`, `number`, `date`, `boolean`, `parse`, `value.unknown`
|
|
8
|
+
* (a question to answer), `value.not-found`, `value.skipped`, `row.duplicate`, `row.exists`, and
|
|
9
|
+
* `server` (refused on submit). Rules use their name; `validate` issues use their `code`.
|
|
10
|
+
*/
|
|
33
11
|
export interface SpreadsheetRowIssue {
|
|
34
|
-
|
|
12
|
+
field: string | null;
|
|
35
13
|
code: string;
|
|
14
|
+
level: SpreadsheetIssueLevel;
|
|
36
15
|
message: string;
|
|
37
|
-
rowIndex: number;
|
|
38
|
-
ruleKey?: string;
|
|
39
|
-
columnKey?: string;
|
|
40
|
-
columnIndex?: number;
|
|
41
|
-
header?: string;
|
|
42
16
|
}
|
|
43
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Why a row is left out: discarded by the user (`manual`), by a value answered “skip these rows”
|
|
19
|
+
* (`value`), past `file.maxRows` (`limit`), a duplicate kept elsewhere (`duplicate`), or a stored
|
|
20
|
+
* record left as it is (`existing`).
|
|
21
|
+
*/
|
|
22
|
+
export type SpreadsheetDiscardReason = 'manual' | 'value' | 'limit' | 'duplicate' | 'existing';
|
|
23
|
+
/** State of a row from its most severe issue; `discarded` rows are left out whatever their issues. */
|
|
24
|
+
export type SpreadsheetRowStatus = 'valid' | 'warning' | 'blocking' | 'discarded';
|
|
25
|
+
export interface SpreadsheetRow<TRow = SpreadsheetRecord, TExisting = unknown> {
|
|
26
|
+
/** 0-based index among the data rows. */
|
|
44
27
|
index: number;
|
|
45
|
-
|
|
28
|
+
/** Row number in the file. */
|
|
29
|
+
rowNumber: number;
|
|
46
30
|
data: TRow;
|
|
47
31
|
issues: readonly SpreadsheetRowIssue[];
|
|
48
|
-
|
|
32
|
+
errors: readonly SpreadsheetRowIssue[];
|
|
33
|
+
warnings: readonly SpreadsheetRowIssue[];
|
|
34
|
+
/** Most severe issue of each field. */
|
|
35
|
+
fieldIssues: Readonly<Record<string, SpreadsheetRowIssue>>;
|
|
36
|
+
status: SpreadsheetRowStatus;
|
|
37
|
+
discardReason: SpreadsheetDiscardReason | null;
|
|
38
|
+
/** `create` for a new record, `update` or `skip` when the key matches a stored one. */
|
|
39
|
+
mode: SpreadsheetRowMode;
|
|
40
|
+
/** The stored record the row's key matches. */
|
|
41
|
+
existing: TExisting | undefined;
|
|
42
|
+
/** Fields whose value differs from the stored record. */
|
|
43
|
+
changed: readonly string[];
|
|
44
|
+
/** Fields edited in review. */
|
|
45
|
+
edited: readonly string[];
|
|
46
|
+
/** Valid and not discarded: part of the import. */
|
|
47
|
+
importable: boolean;
|
|
49
48
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
/** A cell as the table shows it. */
|
|
50
|
+
export interface SpreadsheetCellView {
|
|
51
|
+
/** Current text, edits included. */
|
|
52
|
+
text: string;
|
|
53
|
+
/** Text in the file. */
|
|
54
|
+
original: string;
|
|
55
|
+
/** Text to display: the option label for a select, several items joined. */
|
|
56
|
+
display: string;
|
|
57
|
+
edited: boolean;
|
|
58
|
+
/** Filled by the column's `default`. */
|
|
59
|
+
defaulted: boolean;
|
|
60
|
+
/** Holds a value created on import. */
|
|
61
|
+
created: boolean;
|
|
62
|
+
issue: SpreadsheetRowIssue | null;
|
|
63
|
+
/** Value of the stored record, when it differs. */
|
|
64
|
+
stored: string | null;
|
|
65
|
+
/** Options of a select cell for its row. Empty for other cells. */
|
|
66
|
+
choices: readonly SpreadsheetResolvedOption[];
|
|
55
67
|
}
|
|
56
|
-
export type SpreadsheetStaticColumn = SpreadsheetColumnDefinition<string, unknown, boolean, unknown>;
|
|
57
|
-
export type SpreadsheetStaticColumnGroup = SpreadsheetColumnGroupDefinition<string, readonly SpreadsheetRuntimeStaticColumnEntry[]>;
|
|
58
|
-
export type SpreadsheetRuntimeStaticColumnEntry = SpreadsheetStaticColumn | SpreadsheetStaticColumnGroup;
|