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
|
@@ -1,292 +1,271 @@
|
|
|
1
|
-
import type { LazyTextValue
|
|
2
|
-
import type { InferSpreadsheetOptionValue,
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { LazyTextValue } from '#ui-tools/shared/types/utils';
|
|
2
|
+
import type { InferSpreadsheetOptionValue, SpreadsheetOptionItem, SpreadsheetOptionsInput } from './options.js';
|
|
3
|
+
import type { SpreadsheetCell, SpreadsheetHeaderCell, SpreadsheetPrettify } from './shared.js';
|
|
4
|
+
import type { SpreadsheetRule, SpreadsheetRuleBuilder, SpreadsheetRulesInput } from './validation.js';
|
|
5
|
+
export type SpreadsheetColumnKind = 'text' | 'number' | 'date' | 'boolean' | 'select';
|
|
6
|
+
/**
|
|
7
|
+
* What happens to a value that is not one of a `select` column's options:
|
|
8
|
+
*
|
|
9
|
+
* - `ask` (default): a question for the user, once per distinct value
|
|
10
|
+
* - `error`: a blocking issue on the row
|
|
11
|
+
* - `skip-rows`: rows using the value are left out of the import
|
|
12
|
+
* - `leave-empty`: the value is dropped
|
|
13
|
+
* - `create`: the value is created with the options' `create` handler when the user imports
|
|
14
|
+
*/
|
|
15
|
+
export type SpreadsheetUnknownPolicy = 'ask' | 'error' | 'skip-rows' | 'leave-empty' | 'create';
|
|
16
|
+
/** Callback typed with the context; stored bivariantly so any context fits the runtime shape. */
|
|
17
|
+
export type SpreadsheetContextCallback<TContext, TResult> = {
|
|
18
|
+
bivarianceHack(params: {
|
|
19
|
+
ctx: TContext;
|
|
20
|
+
}): TResult;
|
|
21
|
+
}['bivarianceHack'];
|
|
22
|
+
/** Callback typed with the context and the row so far. */
|
|
23
|
+
export type SpreadsheetRowCallback<TContext, TRow, TResult> = {
|
|
24
|
+
bivarianceHack(params: {
|
|
25
|
+
ctx: TContext;
|
|
26
|
+
row: TRow;
|
|
27
|
+
}): TResult;
|
|
28
|
+
}['bivarianceHack'];
|
|
29
|
+
/**
|
|
30
|
+
* A declared name of the column in files. Strings match exactly, ignoring case, accents, extra
|
|
31
|
+
* spaces, and a trailing `*`; a regex tests the header text; a predicate decides.
|
|
32
|
+
*/
|
|
33
|
+
export type SpreadsheetHeaderMatcher<TContext = unknown> = string | RegExp | {
|
|
34
|
+
bivarianceHack(params: {
|
|
35
|
+
header: SpreadsheetHeaderCell;
|
|
36
|
+
ctx: TContext;
|
|
37
|
+
}): boolean;
|
|
38
|
+
}['bivarianceHack'];
|
|
39
|
+
export interface SpreadsheetMultipleOptions {
|
|
40
|
+
/** Separator between items. Defaults to a comma. */
|
|
41
|
+
separator?: string;
|
|
42
|
+
}
|
|
43
|
+
/** Runtime shape of a column's options, with every type parameter erased. */
|
|
44
|
+
export interface SpreadsheetColumnConfig {
|
|
9
45
|
label?: LazyTextValue;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
46
|
+
headers?: SpreadsheetHeaderMatcher | readonly SpreadsheetHeaderMatcher[];
|
|
47
|
+
required?: boolean;
|
|
48
|
+
/** A value, or `({ ctx, row }) => value`. */
|
|
49
|
+
default?: unknown;
|
|
50
|
+
when?: SpreadsheetContextCallback<unknown, boolean>;
|
|
51
|
+
description?: LazyTextValue;
|
|
52
|
+
example?: LazyTextValue;
|
|
53
|
+
rules?: readonly SpreadsheetRule<unknown>[] | {
|
|
54
|
+
bivarianceHack(rules: SpreadsheetRuleBuilder<unknown>, params: {
|
|
55
|
+
row: unknown;
|
|
56
|
+
ctx: unknown;
|
|
57
|
+
}): readonly SpreadsheetRule<unknown>[];
|
|
58
|
+
}['bivarianceHack'];
|
|
59
|
+
editable?: boolean;
|
|
60
|
+
multiple?: boolean | SpreadsheetMultipleOptions;
|
|
61
|
+
parse?: {
|
|
62
|
+
bivarianceHack(params: {
|
|
63
|
+
cell: SpreadsheetCell;
|
|
64
|
+
ctx: unknown;
|
|
65
|
+
row: unknown;
|
|
66
|
+
}): unknown;
|
|
67
|
+
}['bivarianceHack'];
|
|
68
|
+
/** `number` */
|
|
69
|
+
decimal?: '.' | ',';
|
|
70
|
+
/** `date` */
|
|
71
|
+
formats?: readonly string[];
|
|
72
|
+
/** `boolean` */
|
|
73
|
+
true?: readonly string[];
|
|
74
|
+
false?: readonly string[];
|
|
75
|
+
/** `select` */
|
|
76
|
+
options?: SpreadsheetOptionsInput<unknown, SpreadsheetOptionItem, unknown>;
|
|
77
|
+
from?: string;
|
|
78
|
+
unknown?: SpreadsheetUnknownPolicy;
|
|
29
79
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
80
|
+
/** A column, as the builder records it. */
|
|
81
|
+
export interface SpreadsheetColumnEntry<TKey extends string = string> {
|
|
82
|
+
readonly entry: 'column';
|
|
83
|
+
readonly kind: SpreadsheetColumnKind;
|
|
84
|
+
readonly key: TKey;
|
|
85
|
+
readonly config: SpreadsheetColumnConfig;
|
|
34
86
|
}
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
itemModifiers?: readonly SpreadsheetModifier[];
|
|
87
|
+
export interface SpreadsheetGroupOptions<TContext> {
|
|
88
|
+
label?: LazyTextValue;
|
|
89
|
+
description?: LazyTextValue;
|
|
90
|
+
when?: SpreadsheetContextCallback<TContext, boolean>;
|
|
40
91
|
}
|
|
41
|
-
|
|
92
|
+
/** A group: its columns are nested under its key in the row. */
|
|
93
|
+
export interface SpreadsheetGroupEntry {
|
|
94
|
+
readonly entry: 'group';
|
|
95
|
+
readonly key: string;
|
|
96
|
+
readonly config: SpreadsheetGroupOptions<unknown>;
|
|
97
|
+
readonly children: readonly SpreadsheetColumnEntry[];
|
|
42
98
|
}
|
|
43
|
-
|
|
44
|
-
|
|
99
|
+
/** A group whose columns are built from the context, one per item. */
|
|
100
|
+
export interface SpreadsheetDynamicEntry {
|
|
101
|
+
readonly entry: 'dynamic';
|
|
102
|
+
readonly key: string;
|
|
103
|
+
readonly config: SpreadsheetGroupOptions<unknown> & {
|
|
104
|
+
items: SpreadsheetContextCallback<unknown, readonly unknown[]>;
|
|
105
|
+
column: {
|
|
106
|
+
bivarianceHack(item: unknown, factory: SpreadsheetColumnFactory<never, never>): SpreadsheetColumnEntry;
|
|
107
|
+
}['bivarianceHack'];
|
|
108
|
+
};
|
|
45
109
|
}
|
|
46
|
-
export
|
|
110
|
+
export type SpreadsheetEntry = SpreadsheetColumnEntry | SpreadsheetGroupEntry | SpreadsheetDynamicEntry;
|
|
111
|
+
type SpreadsheetItems<TItem, TMultiple> = [TMultiple] extends [undefined | false] ? TItem : TItem[];
|
|
112
|
+
/**
|
|
113
|
+
* Value of a column in the row: an array with `multiple` (empty when the cell is), otherwise the
|
|
114
|
+
* item, or `null` when the cell can be empty (not required and without a default).
|
|
115
|
+
*/
|
|
116
|
+
export type SpreadsheetColumnValue<TItem, TMultiple, TRequired, TDefault> = [TMultiple] extends [
|
|
117
|
+
undefined | false
|
|
118
|
+
] ? [TRequired] extends [true] ? TItem : [TDefault] extends [never] ? TItem | null : TItem : TItem[];
|
|
119
|
+
export type SpreadsheetIsOptional<TWhen> = [TWhen] extends [never] ? false : true;
|
|
120
|
+
type SpreadsheetItem<TParsed, TFallback> = [TParsed] extends [never] ? TFallback : TParsed;
|
|
121
|
+
/** The row with one more column. */
|
|
122
|
+
export type SpreadsheetWith<TRow, TKey extends string, TValue, TOptional> = TOptional extends true ? TRow & {
|
|
123
|
+
[K in TKey]?: TValue;
|
|
124
|
+
} : TRow & {
|
|
125
|
+
[K in TKey]: TValue;
|
|
126
|
+
};
|
|
127
|
+
/** A key the row does not have yet; declaring a key twice is a type error. */
|
|
128
|
+
type SpreadsheetNewKey<TKey extends string, TRow> = TKey & NoInfer<TKey extends keyof TRow ? {
|
|
129
|
+
duplicateColumn: TKey;
|
|
130
|
+
} : unknown>;
|
|
131
|
+
/** Options shared by every column. `TRow` is the row so far: the columns declared above. */
|
|
132
|
+
export interface SpreadsheetColumnCommonOptions<TContext, TRow, TItem> {
|
|
133
|
+
/** Name of the field everywhere in the UI. Also a header the column matches. */
|
|
47
134
|
label?: LazyTextValue;
|
|
135
|
+
/** Other names the column has in files. Defaults to the label and the key. */
|
|
136
|
+
headers?: SpreadsheetHeaderMatcher<TContext> | readonly SpreadsheetHeaderMatcher<TContext>[];
|
|
137
|
+
/** Shown with the expected columns, in the template, and in mapping hints. */
|
|
138
|
+
description?: LazyTextValue;
|
|
139
|
+
/** Sample value for the template. */
|
|
140
|
+
example?: LazyTextValue;
|
|
141
|
+
/** Checks on each non-empty value (each item with `multiple`); the function form reads the row. */
|
|
142
|
+
rules?: SpreadsheetRulesInput<NoInfer<TItem>, TContext, TRow>;
|
|
143
|
+
/** Whether the cell can be edited in review. Defaults to `true`. */
|
|
144
|
+
editable?: boolean;
|
|
145
|
+
}
|
|
146
|
+
/** Options whose presence changes the value type; their generics are inferred from return types. */
|
|
147
|
+
interface SpreadsheetTypedOptions<TContext, TRow, TMultiple, TRequired, TDefault, TWhen> {
|
|
148
|
+
/** A required column without a match blocks the import; an empty cell is a blocking issue. */
|
|
48
149
|
required?: TRequired;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
150
|
+
/** Used when the column is missing from the file or the cell is empty. */
|
|
151
|
+
default?: TDefault | ((params: {
|
|
152
|
+
ctx: TContext;
|
|
153
|
+
row: TRow;
|
|
154
|
+
}) => TDefault);
|
|
155
|
+
/** Includes the column only when it returns `true` for the context. */
|
|
156
|
+
when?: (params: {
|
|
157
|
+
ctx: TContext;
|
|
158
|
+
}) => TWhen;
|
|
159
|
+
/** Splits the cell into items, on commas unless a separator is given. */
|
|
52
160
|
multiple?: TMultiple;
|
|
53
|
-
parse?: (params: {
|
|
54
|
-
cell: SpreadsheetCellValue;
|
|
55
|
-
context: TContext;
|
|
56
|
-
}) => MaybePromise<TSourceValue>;
|
|
57
|
-
rules?: SpreadsheetFieldRulesInput<TSourceValue>;
|
|
58
161
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
162
|
+
type SpreadsheetScalarOptions<TContext, TRow, TItem, TParsed, TMultiple, TRequired, TDefault, TWhen> = SpreadsheetColumnCommonOptions<TContext, TRow, TItem> & SpreadsheetTypedOptions<TContext, TRow, TMultiple, TRequired, TDefault, TWhen> & {
|
|
163
|
+
/** Reads the cell yourself; its return type becomes the value type. */
|
|
164
|
+
parse?: (params: {
|
|
165
|
+
cell: SpreadsheetCell;
|
|
166
|
+
ctx: TContext;
|
|
167
|
+
row: TRow;
|
|
168
|
+
}) => TParsed;
|
|
66
169
|
};
|
|
67
|
-
export
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
export interface SpreadsheetResolvableScalarColumnBuilder<TContext = unknown, TDefault = unknown, TMultipleConfig = SpreadsheetColumnMultipleOptions> {
|
|
71
|
-
<TKey extends string, TRequired extends boolean = false, TMultiple extends boolean | TMultipleConfig | undefined = undefined, TParse extends SpreadsheetColumnBaseOptions<TContext, ResolveSpreadsheetColumnValue<TDefault, undefined, TMultiple>, TRequired, Exclude<TMultiple, undefined>>['parse'] | undefined = undefined, TSourceValue = ResolveSpreadsheetColumnValue<TDefault, TParse, TMultiple>, TRulesInput extends SpreadsheetFieldRulesInput<TSourceValue> | undefined = SpreadsheetFieldRulesInput<TSourceValue> | undefined>(key: TKey, options?: Omit<SpreadsheetColumnBaseOptions<TContext, TSourceValue, TRequired, Exclude<TMultiple, undefined>>, 'rules'> & {
|
|
72
|
-
rules?: TRulesInput;
|
|
73
|
-
}): SpreadsheetColumnDefinition<TKey, TSourceValue, TRequired, TContext, TRulesInput, TSourceValue>;
|
|
74
|
-
<TKey extends string, TRequired extends boolean = false, TMultiple extends boolean | TMultipleConfig | undefined = undefined, TParse extends SpreadsheetColumnBaseOptions<TContext, ResolveSpreadsheetColumnValue<TDefault, undefined, TMultiple>, TRequired, Exclude<TMultiple, undefined>>['parse'] | undefined = undefined, TSourceValue = ResolveSpreadsheetColumnValue<TDefault, TParse, TMultiple>, const TResolveOptions = readonly SpreadsheetOptionItem[], TResolveValue = SpreadsheetResolvedSelectionValue<TSourceValue, InferSpreadsheetOptionsSourceValue<TResolveOptions>>, TRulesInput extends SpreadsheetFieldRulesInput<TResolveValue> | undefined = SpreadsheetFieldRulesInput<TResolveValue> | undefined>(key: TKey, options: Omit<SpreadsheetColumnBaseOptions<TContext, TSourceValue, TRequired, Exclude<TMultiple, undefined>>, 'rules'> & {
|
|
75
|
-
resolve: {
|
|
76
|
-
options: TResolveOptions & SpreadsheetOptionsSource<{
|
|
77
|
-
context: TContext;
|
|
78
|
-
}, SpreadsheetOptionItem>;
|
|
79
|
-
getOptions?: SpreadsheetColumnResolveDefinition<TContext, TSourceValue, SpreadsheetOptionItem, TResolveValue>['getOptions'];
|
|
80
|
-
};
|
|
81
|
-
rules?: TRulesInput;
|
|
82
|
-
}): SpreadsheetColumnDefinition<TKey, TResolveValue, TRequired, TContext, TRulesInput, TSourceValue, SpreadsheetColumnResolveDefinition<TContext, TSourceValue, SpreadsheetOptionItem, TResolveValue>>;
|
|
83
|
-
}
|
|
84
|
-
export type SpreadsheetOptionColumnBuilder<TContext = unknown> = <TKey extends string, const TOption extends SpreadsheetOptionItem, TRequired extends boolean = false, TMultiple extends boolean | SpreadsheetOptionColumnMultipleOptions | undefined = undefined, TParse extends SpreadsheetColumnBaseOptions<TContext, ResolveSpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, undefined, TMultiple>, TRequired, Exclude<TMultiple, undefined>>['parse'] | undefined = undefined, TRulesInput extends SpreadsheetFieldRulesInput<ResolveSpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, TParse, TMultiple>> | undefined = SpreadsheetFieldRulesInput<ResolveSpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, TParse, TMultiple>> | undefined>(key: TKey, options: SpreadsheetColumnBaseOptions<TContext, ResolveSpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, TParse, TMultiple>, TRequired, Exclude<TMultiple, undefined>> & {
|
|
85
|
-
rules?: TRulesInput;
|
|
86
|
-
options: SpreadsheetOptionsSource<{
|
|
87
|
-
context: TContext;
|
|
88
|
-
}, TOption>;
|
|
89
|
-
}) => SpreadsheetColumnDefinition<TKey, ResolveSpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, TParse, TMultiple>, TRequired, TContext, TRulesInput>;
|
|
90
|
-
export interface SpreadsheetColumnBuilder<TContext = unknown> {
|
|
91
|
-
text: SpreadsheetResolvableScalarColumnBuilder<TContext, string>;
|
|
92
|
-
email: SpreadsheetScalarColumnBuilder<TContext, string>;
|
|
93
|
-
number: SpreadsheetResolvableScalarColumnBuilder<TContext, number>;
|
|
94
|
-
date: SpreadsheetScalarColumnBuilder<TContext, string>;
|
|
95
|
-
boolean: SpreadsheetScalarColumnBuilder<TContext, boolean>;
|
|
96
|
-
enum: <TKey extends string, const TOptions extends readonly unknown[], TRequired extends boolean = false, TMultiple extends boolean | SpreadsheetEnumColumnMultipleOptions | undefined = undefined, TParse extends SpreadsheetColumnBaseOptions<TContext, ResolveSpreadsheetColumnValue<TOptions[number], undefined, TMultiple>, TRequired, Exclude<TMultiple, undefined>>['parse'] | undefined = undefined, TRulesInput extends SpreadsheetFieldRulesInput<ResolveSpreadsheetColumnValue<TOptions[number], TParse, TMultiple>> | undefined = SpreadsheetFieldRulesInput<ResolveSpreadsheetColumnValue<TOptions[number], TParse, TMultiple>> | undefined>(key: TKey, options: SpreadsheetEnumColumnOptions<TContext, TOptions[number], TRequired, Exclude<TMultiple, undefined>, ResolveSpreadsheetColumnValue<TOptions[number], TParse, TMultiple>> & {
|
|
97
|
-
rules?: TRulesInput;
|
|
98
|
-
options: TOptions;
|
|
99
|
-
}) => SpreadsheetColumnDefinition<TKey, ResolveSpreadsheetColumnValue<TOptions[number], TParse, TMultiple>, TRequired, TContext, TRulesInput>;
|
|
100
|
-
option: SpreadsheetOptionColumnBuilder<TContext>;
|
|
101
|
-
}
|
|
102
|
-
export type SpreadsheetGroupBuilder = <TKey extends string, TColumns extends readonly SpreadsheetStaticColumnEntry[]>(key: TKey, columns: TColumns) => SpreadsheetColumnGroupDefinition<TKey, TColumns>;
|
|
103
|
-
type ArrayElement<TValue> = TValue extends readonly (infer TItem)[] ? TItem : never;
|
|
104
|
-
type SpreadsheetDynamicCollectionCallback<TParams, TResult> = (params: TParams) => TResult;
|
|
105
|
-
type SpreadsheetDynamicCallback<TParams, TResult> = (params: TParams) => TResult;
|
|
106
|
-
type SpreadsheetDynamicItemCallback<TResult> = SpreadsheetDynamicCallback<unknown, TResult>;
|
|
107
|
-
export interface SpreadsheetDynamicTextValueDefinition {
|
|
108
|
-
kind: 'text';
|
|
109
|
-
modifiers?: readonly SpreadsheetModifier[];
|
|
170
|
+
export interface SpreadsheetNumberOptions {
|
|
171
|
+
/** Decimal separator of the file. Defaults to `.`; thousands separators are ignored. */
|
|
172
|
+
decimal?: '.' | ',';
|
|
110
173
|
}
|
|
111
|
-
export interface
|
|
112
|
-
|
|
174
|
+
export interface SpreadsheetDateOptions {
|
|
175
|
+
/**
|
|
176
|
+
* Text formats to read, like `dd/MM/yyyy` or `MMMM d, yyyy h:mm a`. Excel dates are read
|
|
177
|
+
* whatever the format. The value is an ISO date, with the time when the format has one.
|
|
178
|
+
*/
|
|
179
|
+
formats?: readonly string[];
|
|
113
180
|
}
|
|
114
|
-
export interface
|
|
115
|
-
|
|
181
|
+
export interface SpreadsheetBooleanOptions {
|
|
182
|
+
/** Texts read as `true`. Defaults to yes, oui, true, vrai, x, 1. */
|
|
183
|
+
true?: readonly string[];
|
|
184
|
+
/** Texts read as `false`. Defaults to no, non, false, faux, 0. */
|
|
185
|
+
false?: readonly string[];
|
|
116
186
|
}
|
|
117
|
-
export
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
type
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
values?: SpreadsheetDynamicResolvedValue<TValueDefinition>;
|
|
143
|
-
}
|
|
144
|
-
export interface SpreadsheetDynamicValueBuilder {
|
|
145
|
-
text: (config?: {
|
|
146
|
-
modifiers?: readonly SpreadsheetModifier[];
|
|
147
|
-
}) => SpreadsheetDynamicTextValueDefinition;
|
|
148
|
-
number: () => SpreadsheetDynamicNumberValueDefinition;
|
|
149
|
-
date: () => SpreadsheetDynamicDateValueDefinition;
|
|
150
|
-
boolean: () => SpreadsheetDynamicBooleanValueDefinition;
|
|
151
|
-
options<const TOption extends SpreadsheetOptionItem, TMode extends 'single' | 'multiple' = 'single'>(config: {
|
|
152
|
-
from: readonly TOption[];
|
|
153
|
-
mode?: TMode;
|
|
154
|
-
separator?: string;
|
|
155
|
-
matchBy: 'label' | 'value';
|
|
156
|
-
itemModifiers?: readonly SpreadsheetModifier[];
|
|
157
|
-
}): SpreadsheetDynamicOptionsValueDefinition<TOption, TMode>;
|
|
158
|
-
}
|
|
159
|
-
type SpreadsheetDynamicValueInput = SpreadsheetDynamicValueDefinition | ((value: SpreadsheetDynamicValueBuilder) => SpreadsheetValue);
|
|
160
|
-
type ResolveSpreadsheetDynamicValueInput<TValueInput> = TValueInput extends (...args: infer _Args) => infer TValueDefinition ? TValueDefinition extends SpreadsheetDynamicValueDefinition ? TValueDefinition : never : TValueInput extends SpreadsheetDynamicValueDefinition ? TValueInput : never;
|
|
161
|
-
interface SpreadsheetDynamicCollectionItemContract<TSource = unknown> {
|
|
162
|
-
id: string;
|
|
163
|
-
match: SpreadsheetMatchDefinition;
|
|
164
|
-
value: SpreadsheetDynamicValueInput;
|
|
165
|
-
build?: SpreadsheetDynamicCollectionCallback<SpreadsheetDynamicBuildParams<TSource, string, SpreadsheetDynamicValueDefinition>, unknown>;
|
|
166
|
-
}
|
|
167
|
-
export interface SpreadsheetDynamicCollectionItemDefinition<TId extends string = string, TValueInput extends SpreadsheetDynamicValueInput = SpreadsheetDynamicValueInput, TSource = unknown, TBuild = unknown> {
|
|
168
|
-
id: TId;
|
|
169
|
-
match: SpreadsheetMatchDefinition;
|
|
170
|
-
value: TValueInput;
|
|
171
|
-
build?: SpreadsheetDynamicCollectionCallback<SpreadsheetDynamicBuildParams<TSource, TId, ResolveSpreadsheetDynamicValueInput<TValueInput>>, TBuild>;
|
|
172
|
-
source?: TSource;
|
|
173
|
-
}
|
|
174
|
-
export interface SpreadsheetDynamicCollectionDefinition<TRootKey extends string = string, TAs extends 'array' | 'record' = 'record', TItems = readonly unknown[], TOutput = unknown> {
|
|
175
|
-
kind: 'collection';
|
|
176
|
-
rootKey: TRootKey;
|
|
177
|
-
as: TAs;
|
|
178
|
-
items: TItems;
|
|
179
|
-
__outputType?: TOutput;
|
|
187
|
+
export type SpreadsheetSelectOptions<TContext, TRow, TOption, TMultiple, TRequired, TDefault, TWhen, TFrom> = SpreadsheetColumnCommonOptions<TContext, TRow, InferSpreadsheetOptionValue<TOption>> & SpreadsheetTypedOptions<TContext, TRow, TMultiple, TRequired, TDefault, TWhen> & {
|
|
188
|
+
/**
|
|
189
|
+
* The known values: a list, a query, a remote loader, or `({ ctx, row }) => list`. A cell
|
|
190
|
+
* matches an option on its label, value, or an alias, exactly.
|
|
191
|
+
*/
|
|
192
|
+
options: SpreadsheetOptionsInput<TContext, TOption, TRow>;
|
|
193
|
+
/** Reads the cell of a column declared above, like a product from an exam name. */
|
|
194
|
+
from?: TFrom;
|
|
195
|
+
/** What to do with a value that is not an option. Defaults to `ask`. */
|
|
196
|
+
unknown?: SpreadsheetUnknownPolicy;
|
|
197
|
+
};
|
|
198
|
+
type SpreadsheetBuilderKind = 'root' | 'group' | 'factory';
|
|
199
|
+
/** What the row looks like to the callbacks of a column. */
|
|
200
|
+
type SpreadsheetScope<TKind, TRow, TOuter, TGroupKey extends string> = TKind extends 'group' ? SpreadsheetPrettify<TOuter & {
|
|
201
|
+
[K in TGroupKey]: SpreadsheetPrettify<TRow>;
|
|
202
|
+
}> : TKind extends 'factory' ? SpreadsheetPrettify<TOuter> : SpreadsheetPrettify<TRow>;
|
|
203
|
+
type SpreadsheetNext<TKind, TContext, TRow, TOuter, TGroupKey extends string, TKey extends string, TValue, TOptional> = TKind extends 'group' ? SpreadsheetGroupBuilder<TContext, TOuter, TGroupKey, SpreadsheetWith<TRow, TKey, TValue, TOptional>> : TKind extends 'factory' ? SpreadsheetColumnSpec<TKey, TValue> : SpreadsheetColumnsBuilder<TContext, SpreadsheetWith<TRow, TKey, TValue, TOptional>>;
|
|
204
|
+
type SpreadsheetScalarMethod<TKind extends SpreadsheetBuilderKind, TContext, TRow, TOuter, TGroupKey extends string, TFallback, TExtra> = <const TKey extends string, TParsed = never, TMultiple extends boolean | SpreadsheetMultipleOptions | undefined = undefined, TRequired extends boolean | undefined = undefined, TDefault extends SpreadsheetItems<SpreadsheetItem<TParsed, TFallback>, TMultiple> = never, TWhen extends boolean = never>(key: SpreadsheetNewKey<TKey, TRow>, options?: SpreadsheetScalarOptions<TContext, SpreadsheetScope<TKind, TRow, TOuter, TGroupKey>, SpreadsheetItem<TParsed, TFallback>, TParsed, TMultiple, TRequired, TDefault, TWhen> & TExtra) => SpreadsheetNext<TKind, TContext, TRow, TOuter, TGroupKey, TKey, NoInfer<SpreadsheetColumnValue<SpreadsheetItem<TParsed, TFallback>, TMultiple, TRequired, TDefault>>, NoInfer<SpreadsheetIsOptional<TWhen>>>;
|
|
205
|
+
/** The column methods every builder has: text, number, date, boolean, select. */
|
|
206
|
+
export interface SpreadsheetColumnMethods<TKind extends SpreadsheetBuilderKind, TContext, TRow, TOuter, TGroupKey extends string> {
|
|
207
|
+
text: SpreadsheetScalarMethod<TKind, TContext, TRow, TOuter, TGroupKey, string, NonNullable<unknown>>;
|
|
208
|
+
number: SpreadsheetScalarMethod<TKind, TContext, TRow, TOuter, TGroupKey, number, SpreadsheetNumberOptions>;
|
|
209
|
+
date: SpreadsheetScalarMethod<TKind, TContext, TRow, TOuter, TGroupKey, string, SpreadsheetDateOptions>;
|
|
210
|
+
boolean: SpreadsheetScalarMethod<TKind, TContext, TRow, TOuter, TGroupKey, boolean, SpreadsheetBooleanOptions>;
|
|
211
|
+
select: <const TKey extends string, const TOption extends SpreadsheetOptionItem, TMultiple extends boolean | SpreadsheetMultipleOptions | undefined = undefined, TRequired extends boolean | undefined = undefined, TDefault extends SpreadsheetItems<InferSpreadsheetOptionValue<TOption>, TMultiple> = never, TWhen extends boolean = never, const TFrom extends SpreadsheetFieldPath<SpreadsheetScope<TKind, TRow, TOuter, TGroupKey>> = never>(key: SpreadsheetNewKey<TKey, TRow>, options: SpreadsheetSelectOptions<TContext, SpreadsheetScope<TKind, TRow, TOuter, TGroupKey>, TOption, TMultiple, TRequired, TDefault, TWhen, TFrom>) => SpreadsheetNext<TKind, TContext, TRow, TOuter, TGroupKey, TKey, NoInfer<SpreadsheetColumnValue<InferSpreadsheetOptionValue<TOption>, TMultiple, TRequired, TDefault>>, NoInfer<SpreadsheetIsOptional<TWhen>>>;
|
|
180
212
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
213
|
+
/**
|
|
214
|
+
* The `c` of `columns: (c) => c.text(…).select(…)`. Each method adds a column and returns the
|
|
215
|
+
* builder; callbacks of a column receive the row so far, typed.
|
|
216
|
+
*/
|
|
217
|
+
export interface SpreadsheetColumnsBuilder<TContext, TRow> extends SpreadsheetColumnMethods<'root', TContext, TRow, unknown, never> {
|
|
218
|
+
/** Columns nested under `key`; their callbacks also read the columns declared above the group. */
|
|
219
|
+
group: <const TKey extends string, TGroupRow, TWhen extends boolean = never>(key: SpreadsheetNewKey<TKey, TRow>, options: Omit<SpreadsheetGroupOptions<TContext>, 'when'> & {
|
|
220
|
+
when?: (params: {
|
|
221
|
+
ctx: TContext;
|
|
222
|
+
}) => TWhen;
|
|
223
|
+
}, build: (group: SpreadsheetGroupBuilder<TContext, SpreadsheetPrettify<TRow>, TKey, NonNullable<unknown>>) => SpreadsheetGroupBuilder<TContext, SpreadsheetPrettify<TRow>, TKey, TGroupRow>) => SpreadsheetColumnsBuilder<TContext, SpreadsheetWith<TRow, TKey, SpreadsheetPrettify<TGroupRow>, NoInfer<SpreadsheetIsOptional<TWhen>>>>;
|
|
224
|
+
/**
|
|
225
|
+
* A group with one column per item of the context, like one column per affiliation group. Its
|
|
226
|
+
* value is a record keyed by the columns' keys.
|
|
227
|
+
*/
|
|
228
|
+
dynamic: <const TKey extends string, TItem, TValue, TWhen extends boolean = never>(key: SpreadsheetNewKey<TKey, TRow>, options: Omit<SpreadsheetGroupOptions<TContext>, 'when'> & {
|
|
229
|
+
when?: (params: {
|
|
230
|
+
ctx: TContext;
|
|
231
|
+
}) => TWhen;
|
|
232
|
+
/** The items, one column each. */
|
|
233
|
+
items: (params: {
|
|
234
|
+
ctx: TContext;
|
|
235
|
+
}) => readonly TItem[];
|
|
236
|
+
/** The column of an item, built with `c`. */
|
|
237
|
+
column: (item: TItem, c: SpreadsheetColumnFactory<TContext, SpreadsheetPrettify<TRow>>) => SpreadsheetColumnSpec<string, TValue>;
|
|
238
|
+
}) => SpreadsheetColumnsBuilder<TContext, SpreadsheetWith<TRow, TKey, {
|
|
239
|
+
[key: string]: TValue;
|
|
240
|
+
}, NoInfer<SpreadsheetIsOptional<TWhen>>>>;
|
|
241
|
+
/** Runtime: the columns declared so far. */
|
|
242
|
+
readonly '~entries': readonly SpreadsheetEntry[];
|
|
243
|
+
/** Type only. */
|
|
244
|
+
readonly '~row'?: TRow;
|
|
208
245
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
strategy: 'exact' | 'template' | 'patterns';
|
|
216
|
-
template?: (params: {
|
|
217
|
-
source: ArrayElement<TSource>;
|
|
218
|
-
}) => string;
|
|
219
|
-
patterns?: (params: {
|
|
220
|
-
source: ArrayElement<TSource>;
|
|
221
|
-
}) => readonly (string | RegExp)[];
|
|
222
|
-
};
|
|
223
|
-
options: readonly TOption[] | ((item: ArrayElement<TSource>) => readonly TOption[]);
|
|
224
|
-
values: {
|
|
225
|
-
mode: 'single' | 'csv';
|
|
226
|
-
separator?: string;
|
|
227
|
-
resolve: 'label' | 'value';
|
|
228
|
-
itemModifiers?: readonly SpreadsheetModifier[];
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
export type SpreadsheetDynamicColumnEntry = SpreadsheetDynamicOptionGroupsDefinition<string, string, unknown> | SpreadsheetDynamicCollectionDefinition<string, 'array' | 'record', readonly SpreadsheetDynamicCollectionItemDefinition[], unknown>;
|
|
232
|
-
export interface SpreadsheetDynamicBuilder<TContext = unknown> {
|
|
233
|
-
optionGroups: <TKey extends string, TSource extends readonly unknown[], const TOption extends SpreadsheetOptionItem, TInto extends string>(config: {
|
|
234
|
-
key: TKey;
|
|
235
|
-
source: TSource;
|
|
236
|
-
itemKey: (item: ArrayElement<TSource>) => string;
|
|
237
|
-
itemLabel: (item: ArrayElement<TSource>) => string;
|
|
238
|
-
targetKey?: (item: ArrayElement<TSource>) => string;
|
|
239
|
-
header: {
|
|
240
|
-
strategy: 'exact' | 'template' | 'patterns';
|
|
241
|
-
template?: (params: {
|
|
242
|
-
source: ArrayElement<TSource>;
|
|
243
|
-
}) => string;
|
|
244
|
-
patterns?: (params: {
|
|
245
|
-
source: ArrayElement<TSource>;
|
|
246
|
-
}) => readonly (string | RegExp)[];
|
|
247
|
-
};
|
|
248
|
-
options: readonly TOption[] | ((item: ArrayElement<TSource>) => readonly TOption[]);
|
|
249
|
-
values: {
|
|
250
|
-
mode: 'single' | 'csv';
|
|
251
|
-
separator?: string;
|
|
252
|
-
resolve: 'label' | 'value';
|
|
253
|
-
itemModifiers?: readonly SpreadsheetModifier[];
|
|
254
|
-
};
|
|
255
|
-
output: {
|
|
256
|
-
into: TInto;
|
|
257
|
-
};
|
|
258
|
-
}) => SpreadsheetBuiltDynamicOptionGroupsDefinition<TKey, TSource, TOption, InferSpreadsheetOptionValue<TOption>, TInto>;
|
|
259
|
-
arrayFromCollection: <TRootKey extends string, TSource extends readonly unknown[], TItem extends SpreadsheetDynamicCollectionItemContract<TSource[number]>>(rootKey: TRootKey, config: {
|
|
260
|
-
from: SpreadsheetDynamicCollectionCallback<{
|
|
261
|
-
context: TContext;
|
|
262
|
-
}, TSource>;
|
|
263
|
-
each: SpreadsheetDynamicCollectionCallback<TSource[number], TItem>;
|
|
264
|
-
}) => SpreadsheetDynamicCollectionDefinition<TRootKey, 'array', readonly TItem[], TItem extends {
|
|
265
|
-
id: infer TId extends string;
|
|
266
|
-
value: infer TValueInput;
|
|
267
|
-
build?: infer TBuild;
|
|
268
|
-
} ? [TBuild] extends [unknown] ? SpreadsheetDynamicDefaultArrayItem<TId, ResolveSpreadsheetDynamicValueInput<TValueInput>> : TBuild : never>;
|
|
269
|
-
recordFromCollection: <TRootKey extends string, TSource extends readonly unknown[], TItem extends SpreadsheetDynamicCollectionItemContract<TSource[number]>>(rootKey: TRootKey, config: {
|
|
270
|
-
from: SpreadsheetDynamicCollectionCallback<{
|
|
271
|
-
context: TContext;
|
|
272
|
-
}, TSource>;
|
|
273
|
-
each: SpreadsheetDynamicCollectionCallback<TSource[number], TItem>;
|
|
274
|
-
}) => SpreadsheetDynamicCollectionDefinition<TRootKey, 'record', readonly TItem[], TItem extends {
|
|
275
|
-
value: infer TValueInput;
|
|
276
|
-
build?: infer TBuild;
|
|
277
|
-
} ? [TBuild] extends [unknown] ? SpreadsheetDynamicDefaultRecordValue<ResolveSpreadsheetDynamicValueInput<TValueInput>> : TBuild : never>;
|
|
246
|
+
/** The builder inside a group. */
|
|
247
|
+
export interface SpreadsheetGroupBuilder<TContext, TOuter, TGroupKey extends string, TRow> extends SpreadsheetColumnMethods<'group', TContext, TRow, TOuter, TGroupKey> {
|
|
248
|
+
/** Runtime: the columns declared so far. */
|
|
249
|
+
readonly '~entries': readonly SpreadsheetEntry[];
|
|
250
|
+
/** Type only. */
|
|
251
|
+
readonly '~row'?: TRow;
|
|
278
252
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
253
|
+
/** The `c` of a dynamic group's `column`: each method returns one column. */
|
|
254
|
+
export type SpreadsheetColumnFactory<TContext, TScope> = SpreadsheetColumnMethods<'factory', TContext, NonNullable<unknown>, TScope, never>;
|
|
255
|
+
/** One column built by a factory. */
|
|
256
|
+
export interface SpreadsheetColumnSpec<TKey extends string, TValue> extends SpreadsheetColumnEntry<TKey> {
|
|
257
|
+
/** Type only. */
|
|
258
|
+
readonly '~value'?: TValue;
|
|
285
259
|
}
|
|
286
|
-
|
|
287
|
-
export type
|
|
288
|
-
|
|
289
|
-
} ?
|
|
290
|
-
|
|
291
|
-
|
|
260
|
+
/** Row type of a columns builder. */
|
|
261
|
+
export type SpreadsheetRowOf<TBuilder> = TBuilder extends {
|
|
262
|
+
'~row'?: infer TRow;
|
|
263
|
+
} ? SpreadsheetPrettify<TRow> : never;
|
|
264
|
+
type SpreadsheetIsNested<TValue> = [NonNullable<TValue>] extends [never] ? false : NonNullable<TValue> extends readonly unknown[] ? false : NonNullable<TValue> extends Record<string, unknown> ? true : false;
|
|
265
|
+
/** Path of every field of a row, like `secureCode` or `levels.general`. */
|
|
266
|
+
export type SpreadsheetFieldPath<TRow> = string extends keyof TRow ? string : {
|
|
267
|
+
[TKey in keyof TRow & string]: SpreadsheetIsNested<TRow[TKey]> extends true ? `${TKey}.${SpreadsheetFieldPath<NonNullable<TRow[TKey]>>}` : TKey;
|
|
268
|
+
}[keyof TRow & string];
|
|
269
|
+
/** Value of a field path in a row. */
|
|
270
|
+
export type SpreadsheetFieldValue<TRow, TPath extends string> = TPath extends `${infer THead}.${infer TRest}` ? THead extends keyof TRow ? SpreadsheetFieldValue<NonNullable<TRow[THead]>, TRest> : never : TPath extends keyof TRow ? TRow[TPath] : never;
|
|
292
271
|
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { SpreadsheetColumnKind, SpreadsheetHeaderMatcher, SpreadsheetUnknownPolicy } from './columns.js';
|
|
2
|
+
import type { SpreadsheetOptionItem, SpreadsheetOptionsCreate, SpreadsheetOptionsSource } from './options.js';
|
|
3
|
+
import type { SpreadsheetCell, SpreadsheetRecord } from './shared.js';
|
|
4
|
+
import type { SpreadsheetRule } from './validation.js';
|
|
5
|
+
/** A group of fields, resolved for the current context. */
|
|
6
|
+
export interface SpreadsheetFieldGroup {
|
|
7
|
+
/** Path of the group in the row. */
|
|
8
|
+
path: string;
|
|
9
|
+
label: string;
|
|
10
|
+
description: string;
|
|
11
|
+
/** Its columns are built from the context. */
|
|
12
|
+
dynamic: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A column of the schema, resolved for the current context: groups flattened, `when` applied,
|
|
16
|
+
* texts and rules resolved.
|
|
17
|
+
*/
|
|
18
|
+
export interface SpreadsheetField {
|
|
19
|
+
/** Path in the row, like `secureCode` or `levels.general`. */
|
|
20
|
+
path: string;
|
|
21
|
+
kind: SpreadsheetColumnKind;
|
|
22
|
+
label: string;
|
|
23
|
+
/** Name of the column in files: the first declared header, or the label. */
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
example: string;
|
|
27
|
+
group: SpreadsheetFieldGroup | null;
|
|
28
|
+
/** Names the column matches, the label and the key included. */
|
|
29
|
+
headers: readonly SpreadsheetHeaderMatcher[];
|
|
30
|
+
required: boolean;
|
|
31
|
+
/** Default value of a row: the declared value, or the result of `default({ ctx, row })`. */
|
|
32
|
+
defaultOf: ((row: SpreadsheetRecord) => unknown) | null;
|
|
33
|
+
hasDefault: boolean;
|
|
34
|
+
/** Rules of a row; rules reading the row are resolved for each row. */
|
|
35
|
+
rulesOf: (row: SpreadsheetRecord) => readonly SpreadsheetRule<unknown>[];
|
|
36
|
+
/** The rules do not read the row. */
|
|
37
|
+
staticRules: boolean;
|
|
38
|
+
editable: boolean;
|
|
39
|
+
/** Item separator with `multiple`, or `null`. */
|
|
40
|
+
separator: string | null;
|
|
41
|
+
parse: ((params: {
|
|
42
|
+
cell: SpreadsheetCell;
|
|
43
|
+
ctx: unknown;
|
|
44
|
+
row: SpreadsheetRecord;
|
|
45
|
+
}) => unknown) | null;
|
|
46
|
+
decimal: '.' | ',';
|
|
47
|
+
formats: readonly string[];
|
|
48
|
+
trueTexts: readonly string[];
|
|
49
|
+
falseTexts: readonly string[];
|
|
50
|
+
/** `select` columns only. */
|
|
51
|
+
select: {
|
|
52
|
+
source: SpreadsheetOptionsSource<unknown, SpreadsheetOptionItem, unknown>;
|
|
53
|
+
create: SpreadsheetOptionsCreate<unknown, SpreadsheetOptionItem> | null;
|
|
54
|
+
/** Path of the field whose cell the select reads, or `null` for its own column. */
|
|
55
|
+
from: string | null;
|
|
56
|
+
unknown: SpreadsheetUnknownPolicy;
|
|
57
|
+
/** Options that depend on the row: resolved per row, for the fields they read. */
|
|
58
|
+
rowOptions: {
|
|
59
|
+
resolve: (row: SpreadsheetRecord) => readonly SpreadsheetOptionItem[];
|
|
60
|
+
/** Field paths the options read. */
|
|
61
|
+
dependsOn: readonly string[];
|
|
62
|
+
} | null;
|
|
63
|
+
} | null;
|
|
64
|
+
}
|