nuxt-ui-tools 1.12.0 → 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/i18n/locales/en.js +251 -130
- package/dist/runtime/i18n/locales/fr.js +251 -130
- package/dist/runtime/i18n/types.d.ts +241 -119
- 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/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
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { setSpreadsheetValueAtPath } from "../object.js";
|
|
2
|
-
import {
|
|
3
|
-
getSpreadsheetOptionLabel,
|
|
4
|
-
getSpreadsheetOptionValue,
|
|
5
|
-
resolveSpreadsheetOptionEntries
|
|
6
|
-
} from "../options.js";
|
|
7
|
-
import {
|
|
8
|
-
applySpreadsheetModifiers,
|
|
9
|
-
applySpreadsheetNormalization,
|
|
10
|
-
getSpreadsheetIssueText,
|
|
11
|
-
isSpreadsheetDynamicCollectionColumn,
|
|
12
|
-
parseSpreadsheetCellValue
|
|
13
|
-
} from "./shared.js";
|
|
14
|
-
function resolveOptionValue(params) {
|
|
15
|
-
const issueText = getSpreadsheetIssueText();
|
|
16
|
-
const text = String(params.raw ?? "").trim();
|
|
17
|
-
if (!text) {
|
|
18
|
-
return params.definition.mode === "multiple" ? [] : void 0;
|
|
19
|
-
}
|
|
20
|
-
const tokens = params.definition.mode === "multiple" ? text.split(params.definition.separator ?? ",").map((entry) => entry.trim()).filter(Boolean) : [text];
|
|
21
|
-
const resolvedValues = [];
|
|
22
|
-
for (const token of tokens) {
|
|
23
|
-
const normalizedToken = applySpreadsheetNormalization(token, params.definition.itemModifiers);
|
|
24
|
-
const match = params.definition.from.find((option) => {
|
|
25
|
-
const candidate = params.definition.matchBy === "value" ? String(getSpreadsheetOptionValue(option) ?? "") : getSpreadsheetOptionLabel(option);
|
|
26
|
-
return applySpreadsheetNormalization(candidate, params.definition.itemModifiers) === normalizedToken;
|
|
27
|
-
});
|
|
28
|
-
if (!match) {
|
|
29
|
-
params.issues.push({
|
|
30
|
-
code: "option.not_found",
|
|
31
|
-
columnIndex: params.columnIndex,
|
|
32
|
-
columnKey: params.columnKey,
|
|
33
|
-
header: params.header,
|
|
34
|
-
level: "error",
|
|
35
|
-
message: issueText.unrecognizedValue(token),
|
|
36
|
-
rowIndex: params.rowIndex
|
|
37
|
-
});
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
const value = getSpreadsheetOptionValue(match);
|
|
41
|
-
if (value === void 0) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
resolvedValues.push(value);
|
|
45
|
-
}
|
|
46
|
-
if (params.definition.mode === "multiple") {
|
|
47
|
-
return resolvedValues;
|
|
48
|
-
}
|
|
49
|
-
return resolvedValues[0];
|
|
50
|
-
}
|
|
51
|
-
function resolveCollectionCellValue(params) {
|
|
52
|
-
const { item } = params.match;
|
|
53
|
-
if (!item) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const valueDefinition = item.value;
|
|
57
|
-
const text = String(params.raw ?? "").trim();
|
|
58
|
-
if (!text) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (valueDefinition.kind === "text") {
|
|
62
|
-
return applySpreadsheetModifiers(text, valueDefinition.modifiers);
|
|
63
|
-
}
|
|
64
|
-
if (valueDefinition.kind === "number") {
|
|
65
|
-
return Number(text);
|
|
66
|
-
}
|
|
67
|
-
if (valueDefinition.kind === "date") {
|
|
68
|
-
return text;
|
|
69
|
-
}
|
|
70
|
-
if (valueDefinition.kind === "boolean") {
|
|
71
|
-
return ["true", "1", "yes"].includes(text.toLowerCase());
|
|
72
|
-
}
|
|
73
|
-
return resolveOptionValue({
|
|
74
|
-
columnIndex: params.match.columnIndex,
|
|
75
|
-
columnKey: item.id,
|
|
76
|
-
definition: valueDefinition,
|
|
77
|
-
header: params.match.header.text,
|
|
78
|
-
issues: params.issues,
|
|
79
|
-
raw: params.raw,
|
|
80
|
-
rowIndex: params.rowIndex
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function applyCollectionValue(params) {
|
|
84
|
-
const { item } = params.match;
|
|
85
|
-
if (!item) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
if (params.resolvedValue === void 0) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const builtValue = item.build ? item.build(
|
|
92
|
-
Array.isArray(params.resolvedValue) ? {
|
|
93
|
-
id: item.id,
|
|
94
|
-
source: params.match.source,
|
|
95
|
-
values: params.resolvedValue
|
|
96
|
-
} : {
|
|
97
|
-
id: item.id,
|
|
98
|
-
source: params.match.source,
|
|
99
|
-
value: params.resolvedValue
|
|
100
|
-
}
|
|
101
|
-
) : params.resolvedValue;
|
|
102
|
-
if (params.column.as === "array") {
|
|
103
|
-
const existing = params.data[params.column.rootKey];
|
|
104
|
-
const nextItems = Array.isArray(existing) ? existing : [];
|
|
105
|
-
const nextValue = item.build ? builtValue : Array.isArray(params.resolvedValue) ? { id: item.id, values: params.resolvedValue } : { id: item.id, value: params.resolvedValue };
|
|
106
|
-
params.data[params.column.rootKey] = [...nextItems, nextValue];
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
setSpreadsheetValueAtPath(params.data, `${params.column.rootKey}.${item.id}`, builtValue);
|
|
110
|
-
}
|
|
111
|
-
function resolveSpreadsheetDynamicCellValues(column, source, raw, issues, rowIndex, columnIndex, header) {
|
|
112
|
-
const issueText = getSpreadsheetIssueText();
|
|
113
|
-
const text = String(raw ?? "").trim();
|
|
114
|
-
if (!text) {
|
|
115
|
-
return [];
|
|
116
|
-
}
|
|
117
|
-
const valuesConfig = column.values;
|
|
118
|
-
const optionsConfig = column.options;
|
|
119
|
-
if (!valuesConfig || !optionsConfig) {
|
|
120
|
-
return [];
|
|
121
|
-
}
|
|
122
|
-
const tokens = valuesConfig.mode === "csv" ? text.split(valuesConfig.separator ?? ",").map((entry) => entry.trim()).filter(Boolean) : [text];
|
|
123
|
-
const options = resolveSpreadsheetOptionEntries(optionsConfig, source);
|
|
124
|
-
const resolvedValues = [];
|
|
125
|
-
for (const token of tokens) {
|
|
126
|
-
const normalizedToken = applySpreadsheetNormalization(token, valuesConfig.itemModifiers);
|
|
127
|
-
const match = options.find((option) => {
|
|
128
|
-
const candidate = valuesConfig.resolve === "label" ? getSpreadsheetOptionLabel(option) : String(getSpreadsheetOptionValue(option) ?? "");
|
|
129
|
-
return applySpreadsheetNormalization(candidate, valuesConfig.itemModifiers) === normalizedToken;
|
|
130
|
-
});
|
|
131
|
-
if (!match) {
|
|
132
|
-
issues.push({
|
|
133
|
-
code: "option.not_found",
|
|
134
|
-
columnIndex,
|
|
135
|
-
columnKey: column.key,
|
|
136
|
-
header,
|
|
137
|
-
level: "error",
|
|
138
|
-
message: issueText.unrecognizedValue(token),
|
|
139
|
-
rowIndex
|
|
140
|
-
});
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
resolvedValues.push(getSpreadsheetOptionValue(match));
|
|
144
|
-
}
|
|
145
|
-
return resolvedValues;
|
|
146
|
-
}
|
|
147
|
-
export async function parseSpreadsheetRows(params) {
|
|
148
|
-
const parsedRows = [];
|
|
149
|
-
for (const [rowIndex, source] of params.rows.entries()) {
|
|
150
|
-
const issues = [];
|
|
151
|
-
const data = {};
|
|
152
|
-
for (const match of params.matches) {
|
|
153
|
-
const raw = source[match.columnIndex];
|
|
154
|
-
const cell = {
|
|
155
|
-
columnIndex: match.columnIndex,
|
|
156
|
-
header: match.header.text,
|
|
157
|
-
raw,
|
|
158
|
-
rowIndex,
|
|
159
|
-
text: String(raw ?? "").trim()
|
|
160
|
-
};
|
|
161
|
-
const value = await parseSpreadsheetCellValue(match.column, cell, params.context, issues);
|
|
162
|
-
if (value !== void 0) {
|
|
163
|
-
setSpreadsheetValueAtPath(data, match.key, value);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
for (const entry of params.dynamicMatches ?? []) {
|
|
167
|
-
const raw = source[entry.columnIndex];
|
|
168
|
-
if (entry.column.kind === "option-groups") {
|
|
169
|
-
const values = resolveSpreadsheetDynamicCellValues(
|
|
170
|
-
entry.column,
|
|
171
|
-
entry.source,
|
|
172
|
-
raw,
|
|
173
|
-
issues,
|
|
174
|
-
rowIndex,
|
|
175
|
-
entry.columnIndex,
|
|
176
|
-
entry.header.text
|
|
177
|
-
);
|
|
178
|
-
if (values.length) {
|
|
179
|
-
setSpreadsheetValueAtPath(data, `${entry.key}.${entry.targetKey}`, values);
|
|
180
|
-
}
|
|
181
|
-
continue;
|
|
182
|
-
}
|
|
183
|
-
if (!isSpreadsheetDynamicCollectionColumn(entry.column)) {
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
const resolvedValue = resolveCollectionCellValue({
|
|
187
|
-
column: entry.column,
|
|
188
|
-
issues,
|
|
189
|
-
match: entry,
|
|
190
|
-
raw,
|
|
191
|
-
rowIndex
|
|
192
|
-
});
|
|
193
|
-
applyCollectionValue({
|
|
194
|
-
column: entry.column,
|
|
195
|
-
data,
|
|
196
|
-
match: entry,
|
|
197
|
-
resolvedValue
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
parsedRows.push({
|
|
201
|
-
data,
|
|
202
|
-
index: rowIndex,
|
|
203
|
-
isValid: issues.every((issue) => issue.level !== "error"),
|
|
204
|
-
issues,
|
|
205
|
-
source
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
return parsedRows;
|
|
209
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { SpreadsheetColumnDefinition, SpreadsheetDynamicCollectionItemDefinition, SpreadsheetDynamicCollectionDefinition, SpreadsheetDynamicOptionGroupsDefinition, SpreadsheetCellValue, SpreadsheetModifier, SpreadsheetRowIssue, SpreadsheetStaticColumn, SpreadsheetStaticColumnGroup, SpreadsheetValue } from '../../types/index.js';
|
|
2
|
-
export declare function normalizeSpreadsheetText(value: SpreadsheetValue): string;
|
|
3
|
-
export declare function applySpreadsheetNormalization(value: SpreadsheetValue, normalize: readonly SpreadsheetModifier[] | undefined): string;
|
|
4
|
-
export declare function applySpreadsheetModifiers(value: SpreadsheetValue, modifiers: readonly string[] | undefined): string;
|
|
5
|
-
export declare function isSpreadsheetStaticColumn(value: SpreadsheetValue): value is SpreadsheetStaticColumn;
|
|
6
|
-
export declare function isSpreadsheetColumnGroup(value: SpreadsheetValue): value is SpreadsheetStaticColumnGroup;
|
|
7
|
-
export declare function isSpreadsheetDynamicOptionGroupsColumn(value: SpreadsheetValue): value is SpreadsheetDynamicOptionGroupsDefinition<string, string, unknown>;
|
|
8
|
-
export declare function isSpreadsheetDynamicCollectionColumn(value: SpreadsheetValue): value is SpreadsheetDynamicCollectionDefinition<string, 'array' | 'record'>;
|
|
9
|
-
export declare function isSpreadsheetDynamicCollectionItem(value: SpreadsheetValue): value is SpreadsheetDynamicCollectionItemDefinition;
|
|
10
|
-
export declare function getSpreadsheetIssueText(): {
|
|
11
|
-
invalidBooleanInput: (value: string) => string;
|
|
12
|
-
invalidNumberInput: (value: string) => string;
|
|
13
|
-
missingValue: (field: string) => string;
|
|
14
|
-
parseFailed: (field: string) => string;
|
|
15
|
-
unrecognizedValue: (value: string) => string;
|
|
16
|
-
};
|
|
17
|
-
export declare function parseSpreadsheetCellValue<TContext>(column: SpreadsheetColumnDefinition<string, unknown, boolean, TContext>, cell: SpreadsheetCellValue, context: TContext, issues: SpreadsheetRowIssue[]): Promise<unknown>;
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { useUiToolsLocale } from "#ui-tools/i18n";
|
|
2
|
-
import { isSpreadsheetRecord } from "../object.js";
|
|
3
|
-
import {
|
|
4
|
-
getSpreadsheetOptionLabel,
|
|
5
|
-
getSpreadsheetOptionValue,
|
|
6
|
-
resolveSpreadsheetOptionEntries
|
|
7
|
-
} from "../options.js";
|
|
8
|
-
import { executeSpreadsheetRules } from "../validation/index.js";
|
|
9
|
-
export function normalizeSpreadsheetText(value) {
|
|
10
|
-
return String(value ?? "").normalize("NFD").replaceAll(/[\u0300-\u036F]/gu, "").replaceAll(/\s*\*\s*$/gu, "").replaceAll(/\s*\(required\)\s*$/giu, "").trim().replaceAll(/\s+/gu, " ").toLowerCase();
|
|
11
|
-
}
|
|
12
|
-
export function applySpreadsheetNormalization(value, normalize) {
|
|
13
|
-
const nextValue = String(value ?? "").trim();
|
|
14
|
-
if (!normalize?.length) {
|
|
15
|
-
return nextValue;
|
|
16
|
-
}
|
|
17
|
-
return normalize.reduce((result, token) => {
|
|
18
|
-
if (token === "trim") {
|
|
19
|
-
return result.trim();
|
|
20
|
-
}
|
|
21
|
-
if (token === "case-insensitive") {
|
|
22
|
-
return result.toLowerCase();
|
|
23
|
-
}
|
|
24
|
-
if (token === "accent-insensitive") {
|
|
25
|
-
return result.normalize("NFD").replaceAll(/[\u0300-\u036F]/gu, "");
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}, nextValue).replaceAll(/\s*\*\s*$/gu, "").replaceAll(/\s*\(required\)\s*$/giu, "");
|
|
29
|
-
}
|
|
30
|
-
export function applySpreadsheetModifiers(value, modifiers) {
|
|
31
|
-
const nextValue = String(value ?? "");
|
|
32
|
-
if (!modifiers?.length) {
|
|
33
|
-
return nextValue;
|
|
34
|
-
}
|
|
35
|
-
return modifiers.reduce((result, modifier) => {
|
|
36
|
-
if (modifier === "trim") {
|
|
37
|
-
return result.trim();
|
|
38
|
-
}
|
|
39
|
-
if (modifier === "lowercase" || modifier === "case-insensitive") {
|
|
40
|
-
return result.toLowerCase();
|
|
41
|
-
}
|
|
42
|
-
if (modifier === "uppercase") {
|
|
43
|
-
return result.toUpperCase();
|
|
44
|
-
}
|
|
45
|
-
if (modifier === "normalizeSpaces") {
|
|
46
|
-
return result.replaceAll(/\s+/gu, " ");
|
|
47
|
-
}
|
|
48
|
-
if (modifier === "accent-insensitive") {
|
|
49
|
-
return result.normalize("NFD").replaceAll(/[\u0300-\u036F]/gu, "");
|
|
50
|
-
}
|
|
51
|
-
return result;
|
|
52
|
-
}, nextValue);
|
|
53
|
-
}
|
|
54
|
-
export function isSpreadsheetStaticColumn(value) {
|
|
55
|
-
return isSpreadsheetRecord(value) && "kind" in value && value.kind !== "group" && "key" in value;
|
|
56
|
-
}
|
|
57
|
-
export function isSpreadsheetColumnGroup(value) {
|
|
58
|
-
return isSpreadsheetRecord(value) && "kind" in value && value.kind === "group" && "columns" in value;
|
|
59
|
-
}
|
|
60
|
-
export function isSpreadsheetDynamicOptionGroupsColumn(value) {
|
|
61
|
-
return isSpreadsheetRecord(value) && "kind" in value && value.kind === "option-groups";
|
|
62
|
-
}
|
|
63
|
-
export function isSpreadsheetDynamicCollectionColumn(value) {
|
|
64
|
-
return isSpreadsheetRecord(value) && "kind" in value && value.kind === "collection";
|
|
65
|
-
}
|
|
66
|
-
export function isSpreadsheetDynamicCollectionItem(value) {
|
|
67
|
-
return isSpreadsheetRecord(value) && "id" in value && "match" in value && "value" in value;
|
|
68
|
-
}
|
|
69
|
-
function hasSpreadsheetColumnResolve(column) {
|
|
70
|
-
return "resolve" in column && Boolean(column.resolve);
|
|
71
|
-
}
|
|
72
|
-
function resolveSpreadsheetColumnOptionEntries(options, context) {
|
|
73
|
-
return resolveSpreadsheetOptionEntries(options, { context });
|
|
74
|
-
}
|
|
75
|
-
function resolveSpreadsheetMultipleConfig(multiple) {
|
|
76
|
-
if (!multiple) {
|
|
77
|
-
return void 0;
|
|
78
|
-
}
|
|
79
|
-
if (multiple === true) {
|
|
80
|
-
return {};
|
|
81
|
-
}
|
|
82
|
-
return multiple;
|
|
83
|
-
}
|
|
84
|
-
function splitSpreadsheetMultipleTokens(value, separator) {
|
|
85
|
-
return value.split(separator ?? ",").map((entry) => entry.trim()).filter(Boolean);
|
|
86
|
-
}
|
|
87
|
-
function parseSpreadsheetNumberValue(value) {
|
|
88
|
-
const nextValue = Number(value);
|
|
89
|
-
if (Number.isNaN(nextValue) || !Number.isFinite(nextValue)) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
return nextValue;
|
|
93
|
-
}
|
|
94
|
-
function parseSpreadsheetBooleanValue(value) {
|
|
95
|
-
const normalized = value.toLowerCase();
|
|
96
|
-
if (["true", "1", "yes"].includes(normalized)) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
if (["false", "0", "no"].includes(normalized)) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function pushSpreadsheetParseIssue(params) {
|
|
104
|
-
params.issues.push({
|
|
105
|
-
code: params.code,
|
|
106
|
-
columnIndex: params.columnIndex,
|
|
107
|
-
columnKey: params.columnKey,
|
|
108
|
-
header: params.header,
|
|
109
|
-
level: "error",
|
|
110
|
-
message: params.message,
|
|
111
|
-
rowIndex: params.rowIndex
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
export function getSpreadsheetIssueText() {
|
|
115
|
-
const { t } = useUiToolsLocale();
|
|
116
|
-
return {
|
|
117
|
-
invalidBooleanInput: (value) => t("spreadsheet.validation.invalidBooleanInput", { value }),
|
|
118
|
-
invalidNumberInput: (value) => t("spreadsheet.validation.invalidNumberInput", { value }),
|
|
119
|
-
missingValue: (field) => t("spreadsheet.validation.missingValue", { field }),
|
|
120
|
-
parseFailed: (field) => t("spreadsheet.validation.parseFailed", { field }),
|
|
121
|
-
unrecognizedValue: (value) => t("spreadsheet.validation.unrecognizedValue", { value })
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function parseSpreadsheetEnumColumnValue(column, token, cell, issues) {
|
|
125
|
-
const issueText = getSpreadsheetIssueText();
|
|
126
|
-
if (!token) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
const multipleConfig = resolveSpreadsheetMultipleConfig(column.multiple);
|
|
130
|
-
const normalizedToken = multipleConfig?.itemModifiers ? applySpreadsheetNormalization(token, multipleConfig.itemModifiers) : token;
|
|
131
|
-
const match = column.options.find((option) => {
|
|
132
|
-
const candidate = String(option);
|
|
133
|
-
if (!multipleConfig?.itemModifiers) {
|
|
134
|
-
return candidate === token;
|
|
135
|
-
}
|
|
136
|
-
return applySpreadsheetNormalization(candidate, multipleConfig.itemModifiers) === normalizedToken;
|
|
137
|
-
});
|
|
138
|
-
if (match !== void 0) {
|
|
139
|
-
return match;
|
|
140
|
-
}
|
|
141
|
-
pushSpreadsheetParseIssue({
|
|
142
|
-
code: "enum.not_found",
|
|
143
|
-
columnIndex: cell.columnIndex,
|
|
144
|
-
columnKey: column.key,
|
|
145
|
-
header: cell.header,
|
|
146
|
-
issues,
|
|
147
|
-
message: issueText.unrecognizedValue(token),
|
|
148
|
-
rowIndex: cell.rowIndex
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
function parseSpreadsheetOptionColumnValue(column, token, cell, context, issues) {
|
|
152
|
-
const issueText = getSpreadsheetIssueText();
|
|
153
|
-
if (!token) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
const options = resolveSpreadsheetColumnOptionEntries(column.options, context);
|
|
157
|
-
const multipleConfig = resolveSpreadsheetMultipleConfig(column.multiple);
|
|
158
|
-
const normalizedToken = multipleConfig?.itemModifiers ? applySpreadsheetNormalization(token, multipleConfig.itemModifiers) : token;
|
|
159
|
-
const match = options.find((option) => {
|
|
160
|
-
const label = getSpreadsheetOptionLabel(option);
|
|
161
|
-
const value = getSpreadsheetOptionValue(option);
|
|
162
|
-
const by = multipleConfig?.matchBy;
|
|
163
|
-
if (by === "label") {
|
|
164
|
-
return (multipleConfig?.itemModifiers ? applySpreadsheetNormalization(label, multipleConfig.itemModifiers) : label) === normalizedToken;
|
|
165
|
-
}
|
|
166
|
-
if (by === "value") {
|
|
167
|
-
return (multipleConfig?.itemModifiers ? applySpreadsheetNormalization(String(value ?? ""), multipleConfig.itemModifiers) : String(value ?? "")) === normalizedToken;
|
|
168
|
-
}
|
|
169
|
-
return token === label || token === String(value ?? "");
|
|
170
|
-
});
|
|
171
|
-
if (match === void 0) {
|
|
172
|
-
pushSpreadsheetParseIssue({
|
|
173
|
-
code: "option.not_found",
|
|
174
|
-
columnIndex: cell.columnIndex,
|
|
175
|
-
columnKey: column.key,
|
|
176
|
-
header: cell.header,
|
|
177
|
-
issues,
|
|
178
|
-
message: issueText.unrecognizedValue(token),
|
|
179
|
-
rowIndex: cell.rowIndex
|
|
180
|
-
});
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
return getSpreadsheetOptionValue(match);
|
|
184
|
-
}
|
|
185
|
-
function isSpreadsheetEnumColumn(column) {
|
|
186
|
-
return column.kind === "enum" && "options" in column && Array.isArray(column.options);
|
|
187
|
-
}
|
|
188
|
-
function isSpreadsheetOptionColumn(column) {
|
|
189
|
-
return column.kind === "option" && "options" in column;
|
|
190
|
-
}
|
|
191
|
-
function parseSpreadsheetSingleBuiltInValue(column, token, cell, context, issues) {
|
|
192
|
-
const issueText = getSpreadsheetIssueText();
|
|
193
|
-
if (column.kind === "text" || column.kind === "email" || column.kind === "date") {
|
|
194
|
-
return token;
|
|
195
|
-
}
|
|
196
|
-
if (column.kind === "number") {
|
|
197
|
-
const value = parseSpreadsheetNumberValue(token);
|
|
198
|
-
if (value !== void 0) {
|
|
199
|
-
return value;
|
|
200
|
-
}
|
|
201
|
-
pushSpreadsheetParseIssue({
|
|
202
|
-
code: "number.invalid",
|
|
203
|
-
columnIndex: cell.columnIndex,
|
|
204
|
-
columnKey: column.key,
|
|
205
|
-
header: cell.header,
|
|
206
|
-
issues,
|
|
207
|
-
message: issueText.invalidNumberInput(token),
|
|
208
|
-
rowIndex: cell.rowIndex
|
|
209
|
-
});
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
if (column.kind === "boolean") {
|
|
213
|
-
const value = parseSpreadsheetBooleanValue(token);
|
|
214
|
-
if (value !== void 0) {
|
|
215
|
-
return value;
|
|
216
|
-
}
|
|
217
|
-
pushSpreadsheetParseIssue({
|
|
218
|
-
code: "boolean.invalid",
|
|
219
|
-
columnIndex: cell.columnIndex,
|
|
220
|
-
columnKey: column.key,
|
|
221
|
-
header: cell.header,
|
|
222
|
-
issues,
|
|
223
|
-
message: issueText.invalidBooleanInput(token),
|
|
224
|
-
rowIndex: cell.rowIndex
|
|
225
|
-
});
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
if (isSpreadsheetEnumColumn(column)) {
|
|
229
|
-
return parseSpreadsheetEnumColumnValue(column, token, cell, issues);
|
|
230
|
-
}
|
|
231
|
-
if (isSpreadsheetOptionColumn(column)) {
|
|
232
|
-
return parseSpreadsheetOptionColumnValue(column, token, cell, context, issues);
|
|
233
|
-
}
|
|
234
|
-
return token;
|
|
235
|
-
}
|
|
236
|
-
function createSpreadsheetCellWithModifiers(cell, modifiers) {
|
|
237
|
-
if (!modifiers?.length) {
|
|
238
|
-
return cell;
|
|
239
|
-
}
|
|
240
|
-
return {
|
|
241
|
-
...cell,
|
|
242
|
-
text: applySpreadsheetModifiers(cell.text, modifiers)
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
function parseSpreadsheetBuiltInCellValue(column, cell, context, issues) {
|
|
246
|
-
const nextCell = createSpreadsheetCellWithModifiers(cell, column.modifiers);
|
|
247
|
-
const multipleConfig = resolveSpreadsheetMultipleConfig(column.multiple);
|
|
248
|
-
if (!multipleConfig) {
|
|
249
|
-
return parseSpreadsheetSingleBuiltInValue(column, nextCell.text, nextCell, context, issues);
|
|
250
|
-
}
|
|
251
|
-
if (!nextCell.text) {
|
|
252
|
-
return [];
|
|
253
|
-
}
|
|
254
|
-
return splitSpreadsheetMultipleTokens(nextCell.text, multipleConfig.separator).flatMap(
|
|
255
|
-
(token) => {
|
|
256
|
-
const nextToken = applySpreadsheetModifiers(token, multipleConfig.itemModifiers);
|
|
257
|
-
const value = parseSpreadsheetSingleBuiltInValue(column, nextToken, nextCell, context, issues);
|
|
258
|
-
return value === void 0 ? [] : [value];
|
|
259
|
-
}
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
export async function parseSpreadsheetCellValue(column, cell, context, issues) {
|
|
263
|
-
const issueText = getSpreadsheetIssueText();
|
|
264
|
-
const nextCell = createSpreadsheetCellWithModifiers(cell, column.modifiers);
|
|
265
|
-
const isEmpty = nextCell.text.trim() === "";
|
|
266
|
-
if (column.required && !hasSpreadsheetColumnResolve(column) && isEmpty) {
|
|
267
|
-
issues.push({
|
|
268
|
-
code: "cell.required",
|
|
269
|
-
columnIndex: cell.columnIndex,
|
|
270
|
-
columnKey: column.key,
|
|
271
|
-
header: cell.header,
|
|
272
|
-
level: "error",
|
|
273
|
-
message: issueText.missingValue(cell.header),
|
|
274
|
-
rowIndex: cell.rowIndex
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
try {
|
|
278
|
-
const value = column.parse ? await column.parse({ cell: nextCell, context }) : parseSpreadsheetBuiltInCellValue(column, cell, context, issues);
|
|
279
|
-
const validationIssues = hasSpreadsheetColumnResolve(column) ? [] : executeSpreadsheetRules({
|
|
280
|
-
rules: column.rules,
|
|
281
|
-
value
|
|
282
|
-
});
|
|
283
|
-
issues.push(
|
|
284
|
-
...validationIssues.map(
|
|
285
|
-
(issue) => ({
|
|
286
|
-
...issue,
|
|
287
|
-
columnIndex: cell.columnIndex,
|
|
288
|
-
columnKey: column.key,
|
|
289
|
-
header: cell.header,
|
|
290
|
-
rowIndex: cell.rowIndex
|
|
291
|
-
})
|
|
292
|
-
)
|
|
293
|
-
);
|
|
294
|
-
if (isEmpty && !column.parse) {
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
return value;
|
|
298
|
-
} catch (error) {
|
|
299
|
-
issues.push({
|
|
300
|
-
code: "cell.parse_failed",
|
|
301
|
-
columnIndex: cell.columnIndex,
|
|
302
|
-
columnKey: column.key,
|
|
303
|
-
header: cell.header,
|
|
304
|
-
level: "error",
|
|
305
|
-
message: error instanceof Error ? error.message : issueText.parseFailed(cell.header),
|
|
306
|
-
rowIndex: cell.rowIndex
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function createSpreadsheetRowSummary(rows) {
|
|
2
|
-
const invalidRows = rows.filter((row) => !row.isValid).length;
|
|
3
|
-
const issueCount = rows.reduce((total, row) => total + row.issues.length, 0);
|
|
4
|
-
return {
|
|
5
|
-
invalidRows,
|
|
6
|
-
issueCount,
|
|
7
|
-
totalRows: rows.length,
|
|
8
|
-
validRows: rows.length - invalidRows
|
|
9
|
-
};
|
|
10
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { SpreadsheetBinarySource, SpreadsheetWorkbookData, SpreadsheetWorkbookSheet } from '../../types/index.js';
|
|
2
|
-
export declare function parseSpreadsheetWorkbook(params: {
|
|
3
|
-
source: SpreadsheetBinarySource;
|
|
4
|
-
fileName?: string;
|
|
5
|
-
}): Promise<SpreadsheetWorkbookData>;
|
|
6
|
-
export declare function getDefaultSpreadsheetSheetName(workbook: SpreadsheetWorkbookData | null): string | undefined;
|
|
7
|
-
export declare function getSpreadsheetSheet(workbook: SpreadsheetWorkbookData | null, sheetName: string | undefined): SpreadsheetWorkbookSheet | null;
|
|
8
|
-
export declare function getSpreadsheetHeaders(sheet: SpreadsheetWorkbookSheet | null, headerRowIndex: number): readonly unknown[];
|
|
9
|
-
export declare function getSpreadsheetDataRows(sheet: SpreadsheetWorkbookSheet | null, headerRowIndex: number): (readonly unknown[])[];
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { read, utils } from "xlsx";
|
|
2
|
-
async function resolveSpreadsheetBinarySource(source) {
|
|
3
|
-
if (source instanceof Uint8Array) {
|
|
4
|
-
return source;
|
|
5
|
-
}
|
|
6
|
-
if (source instanceof ArrayBuffer) {
|
|
7
|
-
return new Uint8Array(source);
|
|
8
|
-
}
|
|
9
|
-
return new Uint8Array(await source.arrayBuffer());
|
|
10
|
-
}
|
|
11
|
-
function normalizeSheetRows(rows) {
|
|
12
|
-
return rows.map((row) => row.map((cell) => cell ?? ""));
|
|
13
|
-
}
|
|
14
|
-
export async function parseSpreadsheetWorkbook(params) {
|
|
15
|
-
const data = await resolveSpreadsheetBinarySource(params.source);
|
|
16
|
-
const workbook = read(data, {
|
|
17
|
-
cellDates: true,
|
|
18
|
-
type: "array"
|
|
19
|
-
});
|
|
20
|
-
const sheets = workbook.SheetNames.map((sheetName) => {
|
|
21
|
-
const sheet = workbook.Sheets[sheetName];
|
|
22
|
-
if (!sheet) {
|
|
23
|
-
return {
|
|
24
|
-
name: sheetName,
|
|
25
|
-
rows: []
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
name: sheetName,
|
|
30
|
-
rows: normalizeSheetRows(
|
|
31
|
-
utils.sheet_to_json(sheet, {
|
|
32
|
-
blankrows: false,
|
|
33
|
-
defval: "",
|
|
34
|
-
header: 1,
|
|
35
|
-
raw: false
|
|
36
|
-
})
|
|
37
|
-
)
|
|
38
|
-
};
|
|
39
|
-
});
|
|
40
|
-
return {
|
|
41
|
-
fileName: params.fileName,
|
|
42
|
-
sheets
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
export function getDefaultSpreadsheetSheetName(workbook) {
|
|
46
|
-
return workbook?.sheets[0]?.name;
|
|
47
|
-
}
|
|
48
|
-
export function getSpreadsheetSheet(workbook, sheetName) {
|
|
49
|
-
if (!workbook) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
if (!sheetName) {
|
|
53
|
-
return workbook.sheets[0] ?? null;
|
|
54
|
-
}
|
|
55
|
-
return workbook.sheets.find((sheet) => sheet.name === sheetName) ?? workbook.sheets[0] ?? null;
|
|
56
|
-
}
|
|
57
|
-
export function getSpreadsheetHeaders(sheet, headerRowIndex) {
|
|
58
|
-
return sheet?.rows[headerRowIndex] ?? [];
|
|
59
|
-
}
|
|
60
|
-
export function getSpreadsheetDataRows(sheet, headerRowIndex) {
|
|
61
|
-
if (!sheet) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
return sheet.rows.slice(headerRowIndex + 1);
|
|
65
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './core.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./core.js";
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CreateSpreadsheetRule, SpreadsheetFieldRules, SpreadsheetFieldRulesInput, SpreadsheetRuleBuilder } from '../../types/validation.js';
|
|
2
|
-
export declare const createSheetRule: CreateSpreadsheetRule;
|
|
3
|
-
export declare function resolveSpreadsheetRules<TValue>(rules: SpreadsheetFieldRulesInput<TValue> | undefined): SpreadsheetFieldRules<TValue>;
|
|
4
|
-
export declare function resolveSpreadsheetRelationRules<TRow, TValue>(params: {
|
|
5
|
-
row: TRow;
|
|
6
|
-
rules: (rules: SpreadsheetRuleBuilder, row: TRow) => SpreadsheetFieldRules<TValue>;
|
|
7
|
-
}): SpreadsheetFieldRules<TValue>;
|
|
8
|
-
export declare function executeSpreadsheetRules<TValue>(params: {
|
|
9
|
-
value: TValue;
|
|
10
|
-
rules: SpreadsheetFieldRulesInput<TValue> | undefined;
|
|
11
|
-
}): {
|
|
12
|
-
code: string;
|
|
13
|
-
level: import("../../types/index.js").SpreadsheetIssueLevel;
|
|
14
|
-
message: string;
|
|
15
|
-
ruleKey: string | undefined;
|
|
16
|
-
}[];
|