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.
Files changed (332) hide show
  1. package/README.md +11 -5
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +46 -0
  4. package/dist/runtime/dashboard/components/dashboard-stat.d.vue.ts +1 -1
  5. package/dist/runtime/dashboard/components/dashboard-stat.vue.d.ts +1 -1
  6. package/dist/runtime/file-preview/components/shell/file-preview-stage.d.vue.ts +2 -2
  7. package/dist/runtime/file-preview/components/shell/file-preview-stage.vue.d.ts +2 -2
  8. package/dist/runtime/form/fields/array-collapse/component.vue +2 -1
  9. package/dist/runtime/form/fields/array-list/component.vue +72 -63
  10. package/dist/runtime/form/fields/array-list/use-array-items.d.ts +1 -0
  11. package/dist/runtime/form/fields/array-list/use-array-items.js +4 -0
  12. package/dist/runtime/form/fields/array-table/component.vue +2 -1
  13. package/dist/runtime/form/types/api.d.ts +10 -2
  14. package/dist/runtime/i18n/locales/en.js +252 -130
  15. package/dist/runtime/i18n/locales/fr.js +252 -130
  16. package/dist/runtime/i18n/types.d.ts +242 -119
  17. package/dist/runtime/shared/types/query.d.ts +14 -4
  18. package/dist/runtime/shared/types/remote-options.d.ts +11 -0
  19. package/dist/runtime/shared/utils/define-remote-options.js +6 -0
  20. package/dist/runtime/shared/utils/file.d.ts +1 -1
  21. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.d.vue.ts → internal/spreadsheet-import-cell-editor.d.vue.ts} +8 -5
  22. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-cell-editor.vue +73 -0
  23. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.vue.d.ts → internal/spreadsheet-import-cell-editor.vue.d.ts} +8 -5
  24. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.d.vue.ts +17 -0
  25. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue +98 -0
  26. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue.d.ts +17 -0
  27. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.d.vue.ts +17 -0
  28. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue +20 -0
  29. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue.d.ts +17 -0
  30. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.d.vue.ts +10 -0
  31. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue +34 -0
  32. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue.d.ts +10 -0
  33. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.d.vue.ts +13 -0
  34. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue +113 -0
  35. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue.d.ts +13 -0
  36. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.d.vue.ts +35 -0
  37. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue +154 -0
  38. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue.d.ts +35 -0
  39. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.d.vue.ts +23 -0
  40. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue +83 -0
  41. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue.d.ts +23 -0
  42. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.d.vue.ts +19 -0
  43. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue +45 -0
  44. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue.d.ts +19 -0
  45. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.d.vue.ts → parts/spreadsheet-import-export-button.d.vue.ts} +3 -2
  46. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-export-button.vue +34 -0
  47. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.vue.d.ts → parts/spreadsheet-import-export-button.vue.d.ts} +3 -4
  48. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.d.vue.ts +17 -0
  49. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue +49 -0
  50. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue.d.ts +17 -0
  51. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.d.vue.ts +18 -0
  52. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue +101 -0
  53. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue.d.ts +18 -0
  54. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.d.vue.ts +22 -0
  55. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue +276 -0
  56. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue.d.ts +22 -0
  57. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.d.vue.ts +11 -0
  58. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue +164 -0
  59. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue.d.ts +11 -0
  60. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.d.vue.ts → parts/spreadsheet-import-stat.d.vue.ts} +7 -4
  61. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stat.vue +30 -0
  62. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.vue.d.ts → parts/spreadsheet-import-stat.vue.d.ts} +7 -4
  63. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.d.vue.ts +26 -0
  64. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue +55 -0
  65. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue.d.ts +26 -0
  66. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.vue.d.ts → parts/spreadsheet-import-submit-button.d.vue.ts} +3 -2
  67. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue +27 -0
  68. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue.d.ts +8 -0
  69. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.d.vue.ts +16 -0
  70. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue +51 -0
  71. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue.d.ts +16 -0
  72. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.d.vue.ts → parts/spreadsheet-import-table-toolbar.d.vue.ts} +2 -4
  73. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table-toolbar.vue +217 -0
  74. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-raw-preview-table.d.vue.ts → parts/spreadsheet-import-table-toolbar.vue.d.ts} +2 -2
  75. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.d.vue.ts +33 -0
  76. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue +302 -0
  77. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue.d.ts +33 -0
  78. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.d.vue.ts → parts/spreadsheet-import-template-button.d.vue.ts} +5 -4
  79. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-template-button.vue +31 -0
  80. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.vue.d.ts → parts/spreadsheet-import-template-button.vue.d.ts} +5 -4
  81. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.d.vue.ts +27 -0
  82. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue +162 -0
  83. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue.d.ts +27 -0
  84. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.d.vue.ts +24 -0
  85. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue +23 -0
  86. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue.d.ts +24 -0
  87. package/dist/runtime/spreadsheet/components/spreadsheet-import.d.vue.ts +21 -6
  88. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue +46 -262
  89. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue.d.ts +21 -6
  90. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.d.vue.ts → steps/spreadsheet-import-step-nav.d.vue.ts} +6 -2
  91. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step-nav.vue +116 -0
  92. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.vue.d.ts → steps/spreadsheet-import-step-nav.vue.d.ts} +6 -2
  93. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.d.vue.ts +26 -0
  94. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue +106 -0
  95. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue.d.ts +26 -0
  96. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.d.vue.ts +15 -0
  97. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue +131 -0
  98. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue.d.ts +15 -0
  99. package/dist/runtime/spreadsheet/composables/index.d.ts +2 -0
  100. package/dist/runtime/spreadsheet/composables/index.js +2 -0
  101. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.d.ts +8 -0
  102. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.js +19 -0
  103. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.d.ts +23 -0
  104. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.js +75 -0
  105. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +8 -45
  106. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +28 -32
  107. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.d.ts +11 -0
  108. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.js +25 -0
  109. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.d.ts +16 -0
  110. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.js +20 -0
  111. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.d.ts +14 -0
  112. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.js +44 -0
  113. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.d.ts +12 -0
  114. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.js +22 -0
  115. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +18 -7
  116. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +340 -109
  117. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.d.ts +36 -0
  118. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.js +95 -0
  119. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.d.ts +24 -0
  120. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.js +159 -0
  121. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.d.ts +14 -0
  122. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.js +11 -0
  123. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +37 -169
  124. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +148 -408
  125. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +48 -26
  126. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +334 -21
  127. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.d.ts +33 -0
  128. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.js +126 -0
  129. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.d.ts +37 -0
  130. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.js +136 -0
  131. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.d.ts +27 -0
  132. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.js +121 -0
  133. package/dist/runtime/spreadsheet/index.d.ts +0 -1
  134. package/dist/runtime/spreadsheet/index.js +0 -1
  135. package/dist/runtime/spreadsheet/schema/builder.d.ts +8 -0
  136. package/dist/runtime/spreadsheet/schema/builder.js +31 -0
  137. package/dist/runtime/spreadsheet/schema/index.d.ts +24 -32
  138. package/dist/runtime/spreadsheet/schema/index.js +4 -21
  139. package/dist/runtime/spreadsheet/types/columns.d.ts +252 -273
  140. package/dist/runtime/spreadsheet/types/fields.d.ts +64 -0
  141. package/dist/runtime/spreadsheet/types/importer.d.ts +308 -0
  142. package/dist/runtime/spreadsheet/types/index.d.ts +6 -10
  143. package/dist/runtime/spreadsheet/types/options.d.ts +47 -9
  144. package/dist/runtime/spreadsheet/types/rows.d.ts +57 -48
  145. package/dist/runtime/spreadsheet/types/schema.d.ts +162 -76
  146. package/dist/runtime/spreadsheet/types/shared.d.ts +19 -21
  147. package/dist/runtime/spreadsheet/types/source.d.ts +39 -15
  148. package/dist/runtime/spreadsheet/types/steps.d.ts +76 -0
  149. package/dist/runtime/spreadsheet/types/validation.d.ts +49 -69
  150. package/dist/runtime/spreadsheet/types/values.d.ts +77 -0
  151. package/dist/runtime/spreadsheet/utils/download.d.ts +2 -0
  152. package/dist/runtime/spreadsheet/utils/download.js +8 -0
  153. package/dist/runtime/spreadsheet/utils/export.d.ts +26 -0
  154. package/dist/runtime/spreadsheet/utils/export.js +50 -0
  155. package/dist/runtime/spreadsheet/utils/fields.d.ts +26 -0
  156. package/dist/runtime/spreadsheet/utils/fields.js +169 -0
  157. package/dist/runtime/spreadsheet/utils/guards.d.ts +18 -0
  158. package/dist/runtime/spreadsheet/utils/guards.js +27 -0
  159. package/dist/runtime/spreadsheet/utils/headers.d.ts +15 -0
  160. package/dist/runtime/spreadsheet/utils/headers.js +36 -0
  161. package/dist/runtime/spreadsheet/utils/identity.d.ts +24 -0
  162. package/dist/runtime/spreadsheet/utils/identity.js +57 -0
  163. package/dist/runtime/spreadsheet/utils/index.d.ts +15 -6
  164. package/dist/runtime/spreadsheet/utils/index.js +15 -6
  165. package/dist/runtime/spreadsheet/utils/layout.d.ts +12 -0
  166. package/dist/runtime/spreadsheet/utils/layout.js +37 -0
  167. package/dist/runtime/spreadsheet/utils/options.d.ts +31 -10
  168. package/dist/runtime/spreadsheet/utils/options.js +58 -30
  169. package/dist/runtime/spreadsheet/utils/parse.d.ts +6 -0
  170. package/dist/runtime/spreadsheet/utils/parse.js +147 -0
  171. package/dist/runtime/spreadsheet/utils/paths.d.ts +4 -0
  172. package/dist/runtime/spreadsheet/utils/paths.js +29 -0
  173. package/dist/runtime/spreadsheet/utils/rows.d.ts +69 -0
  174. package/dist/runtime/spreadsheet/utils/rows.js +168 -0
  175. package/dist/runtime/spreadsheet/utils/rules.d.ts +4 -0
  176. package/dist/runtime/spreadsheet/utils/rules.js +95 -0
  177. package/dist/runtime/spreadsheet/utils/suggestions.d.ts +20 -0
  178. package/dist/runtime/spreadsheet/utils/suggestions.js +43 -0
  179. package/dist/runtime/spreadsheet/utils/text.d.ts +9 -0
  180. package/dist/runtime/spreadsheet/utils/text.js +11 -0
  181. package/dist/runtime/spreadsheet/utils/workbook.d.ts +13 -0
  182. package/dist/runtime/spreadsheet/utils/workbook.js +121 -0
  183. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.d.vue.ts +2 -2
  184. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.vue.d.ts +2 -2
  185. package/dist/runtime/table/components/filters/tags/date-filter-tag.d.vue.ts +2 -2
  186. package/dist/runtime/table/components/filters/tags/date-filter-tag.vue.d.ts +2 -2
  187. package/dist/runtime/table/components/filters/tags/number-filter-tag.d.vue.ts +2 -2
  188. package/dist/runtime/table/components/filters/tags/number-filter-tag.vue.d.ts +2 -2
  189. package/dist/runtime/table/components/filters/tags/option-filter-tag.d.vue.ts +2 -2
  190. package/dist/runtime/table/components/filters/tags/option-filter-tag.vue.d.ts +2 -2
  191. package/dist/runtime/table/components/filters/tags/text-filter-tag.d.vue.ts +2 -2
  192. package/dist/runtime/table/components/filters/tags/text-filter-tag.vue.d.ts +2 -2
  193. package/dist/runtime/table/components/table/table-cell-ellipsis.d.ts +1 -1
  194. package/dist/runtime/table/composables/use-table-actions.d.ts +1 -1
  195. package/dist/runtime/table/composables/use-table-actions.js +11 -3
  196. package/dist/runtime/table/composables/use-table-internals.d.ts +3 -3
  197. package/dist/runtime/table/types/actions.d.ts +8 -1
  198. package/dist/runtime/table/utils/data-list-ui.d.ts +1 -1
  199. package/package.json +18 -3
  200. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-file-bar.vue +0 -31
  201. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.d.vue.ts +0 -24
  202. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue +0 -69
  203. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue.d.ts +0 -24
  204. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-header.vue +0 -36
  205. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-sidebar.vue +0 -63
  206. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue +0 -67
  207. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue +0 -41
  208. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue.d.ts +0 -7
  209. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.d.vue.ts +0 -10
  210. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue +0 -25
  211. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue.d.ts +0 -10
  212. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue +0 -201
  213. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.d.vue.ts +0 -11
  214. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue +0 -38
  215. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue.d.ts +0 -11
  216. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.d.vue.ts +0 -45
  217. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue +0 -219
  218. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue.d.ts +0 -45
  219. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.d.vue.ts +0 -51
  220. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue +0 -166
  221. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue.d.ts +0 -51
  222. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.d.vue.ts +0 -11
  223. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue +0 -26
  224. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue.d.ts +0 -11
  225. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.d.vue.ts +0 -41
  226. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue +0 -392
  227. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue.d.ts +0 -41
  228. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-overflow-alert.vue +0 -43
  229. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.d.vue.ts +0 -15
  230. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue +0 -40
  231. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue.d.ts +0 -15
  232. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.d.vue.ts +0 -7
  233. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue +0 -137
  234. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue.d.ts +0 -7
  235. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.d.vue.ts +0 -7
  236. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue +0 -222
  237. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue.d.ts +0 -7
  238. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.d.vue.ts +0 -7
  239. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue +0 -191
  240. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue.d.ts +0 -7
  241. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.d.vue.ts +0 -7
  242. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue +0 -62
  243. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue.d.ts +0 -7
  244. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.d.vue.ts +0 -8
  245. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue +0 -81
  246. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue.d.ts +0 -8
  247. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.d.vue.ts +0 -15
  248. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue +0 -95
  249. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue.d.ts +0 -15
  250. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.d.vue.ts +0 -15
  251. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue +0 -56
  252. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue.d.ts +0 -15
  253. package/dist/runtime/spreadsheet/components/types.d.ts +0 -41
  254. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +0 -18
  255. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +0 -62
  256. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +0 -629
  257. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +0 -68
  258. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.d.ts +0 -1
  259. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.js +0 -3
  260. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +0 -40
  261. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +0 -97
  262. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +0 -24
  263. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +0 -74
  264. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +0 -27
  265. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +0 -109
  266. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +0 -15
  267. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +0 -109
  268. package/dist/runtime/spreadsheet/schema/normalize.d.ts +0 -73
  269. package/dist/runtime/spreadsheet/schema/normalize.js +0 -136
  270. package/dist/runtime/spreadsheet/types/context.d.ts +0 -9
  271. package/dist/runtime/spreadsheet/types/import.d.ts +0 -55
  272. package/dist/runtime/spreadsheet/types/inference.d.ts +0 -83
  273. package/dist/runtime/spreadsheet/types/normalized.d.ts +0 -50
  274. package/dist/runtime/spreadsheet/types/normalized.js +0 -0
  275. package/dist/runtime/spreadsheet/types/pipeline.d.ts +0 -7
  276. package/dist/runtime/spreadsheet/types/pipeline.js +0 -0
  277. package/dist/runtime/spreadsheet/types/reference-session.d.ts +0 -43
  278. package/dist/runtime/spreadsheet/types/reference-session.js +0 -0
  279. package/dist/runtime/spreadsheet/types/references.d.ts +0 -32
  280. package/dist/runtime/spreadsheet/types/references.js +0 -0
  281. package/dist/runtime/spreadsheet/types/resolution.d.ts +0 -43
  282. package/dist/runtime/spreadsheet/types/resolution.js +0 -0
  283. package/dist/runtime/spreadsheet/utils/builders/core.d.ts +0 -17
  284. package/dist/runtime/spreadsheet/utils/builders/core.js +0 -262
  285. package/dist/runtime/spreadsheet/utils/builders/index.d.ts +0 -1
  286. package/dist/runtime/spreadsheet/utils/builders/index.js +0 -1
  287. package/dist/runtime/spreadsheet/utils/context.d.ts +0 -20
  288. package/dist/runtime/spreadsheet/utils/context.js +0 -25
  289. package/dist/runtime/spreadsheet/utils/display.d.ts +0 -6
  290. package/dist/runtime/spreadsheet/utils/display.js +0 -26
  291. package/dist/runtime/spreadsheet/utils/object.d.ts +0 -9
  292. package/dist/runtime/spreadsheet/utils/object.js +0 -78
  293. package/dist/runtime/spreadsheet/utils/references/candidates.d.ts +0 -6
  294. package/dist/runtime/spreadsheet/utils/references/candidates.js +0 -28
  295. package/dist/runtime/spreadsheet/utils/references/core.d.ts +0 -3
  296. package/dist/runtime/spreadsheet/utils/references/core.js +0 -3
  297. package/dist/runtime/spreadsheet/utils/references/guards.d.ts +0 -4
  298. package/dist/runtime/spreadsheet/utils/references/guards.js +0 -28
  299. package/dist/runtime/spreadsheet/utils/references/index.d.ts +0 -1
  300. package/dist/runtime/spreadsheet/utils/references/index.js +0 -1
  301. package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +0 -17
  302. package/dist/runtime/spreadsheet/utils/references/resolutions.js +0 -172
  303. package/dist/runtime/spreadsheet/utils/references/shared.d.ts +0 -3
  304. package/dist/runtime/spreadsheet/utils/references/shared.js +0 -26
  305. package/dist/runtime/spreadsheet/utils/references/sources.d.ts +0 -9
  306. package/dist/runtime/spreadsheet/utils/references/sources.js +0 -38
  307. package/dist/runtime/spreadsheet/utils/rows/core.d.ts +0 -4
  308. package/dist/runtime/spreadsheet/utils/rows/core.js +0 -4
  309. package/dist/runtime/spreadsheet/utils/rows/headers.d.ts +0 -2
  310. package/dist/runtime/spreadsheet/utils/rows/headers.js +0 -9
  311. package/dist/runtime/spreadsheet/utils/rows/index.d.ts +0 -1
  312. package/dist/runtime/spreadsheet/utils/rows/index.js +0 -1
  313. package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +0 -5
  314. package/dist/runtime/spreadsheet/utils/rows/matching.js +0 -209
  315. package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +0 -7
  316. package/dist/runtime/spreadsheet/utils/rows/parsing.js +0 -209
  317. package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +0 -17
  318. package/dist/runtime/spreadsheet/utils/rows/shared.js +0 -309
  319. package/dist/runtime/spreadsheet/utils/rows/summary.d.ts +0 -2
  320. package/dist/runtime/spreadsheet/utils/rows/summary.js +0 -10
  321. package/dist/runtime/spreadsheet/utils/source/core.d.ts +0 -9
  322. package/dist/runtime/spreadsheet/utils/source/core.js +0 -65
  323. package/dist/runtime/spreadsheet/utils/source/index.d.ts +0 -1
  324. package/dist/runtime/spreadsheet/utils/source/index.js +0 -1
  325. package/dist/runtime/spreadsheet/utils/validation/core.d.ts +0 -16
  326. package/dist/runtime/spreadsheet/utils/validation/core.js +0 -211
  327. package/dist/runtime/spreadsheet/utils/validation/index.d.ts +0 -1
  328. package/dist/runtime/spreadsheet/utils/validation/index.js +0 -1
  329. /package/dist/runtime/spreadsheet/{components/types.js → types/fields.js} +0 -0
  330. /package/dist/runtime/spreadsheet/types/{context.js → importer.js} +0 -0
  331. /package/dist/runtime/spreadsheet/types/{import.js → steps.js} +0 -0
  332. /package/dist/runtime/spreadsheet/types/{inference.js → values.js} +0 -0
@@ -0,0 +1,44 @@
1
+ import { computed, shallowRef } from "vue";
2
+ import { readSpreadsheetFile, readSpreadsheetText } from "../utils/index.js";
3
+ export function useSpreadsheetFile() {
4
+ const workbook = shallowRef(null);
5
+ const reading = shallowRef(false);
6
+ const error = shallowRef(null);
7
+ let run = 0;
8
+ async function load(source, name) {
9
+ const current = run += 1;
10
+ reading.value = true;
11
+ error.value = null;
12
+ const fileName = name ?? (source instanceof File ? source.name : "import.xlsx");
13
+ try {
14
+ const next = await readSpreadsheetFile({ name: fileName, source });
15
+ if (current === run) workbook.value = next;
16
+ } catch (nextError) {
17
+ if (current === run) {
18
+ workbook.value = null;
19
+ error.value = nextError;
20
+ }
21
+ } finally {
22
+ if (current === run) reading.value = false;
23
+ }
24
+ }
25
+ function paste(text, name = "clipboard.tsv") {
26
+ run += 1;
27
+ error.value = null;
28
+ reading.value = false;
29
+ workbook.value = readSpreadsheetText({ name, text });
30
+ }
31
+ function clear() {
32
+ run += 1;
33
+ workbook.value = null;
34
+ error.value = null;
35
+ reading.value = false;
36
+ }
37
+ const sheets = computed(
38
+ () => (workbook.value?.sheets ?? []).map((sheet) => ({
39
+ name: sheet.name,
40
+ rowCount: sheet.rows.length
41
+ }))
42
+ );
43
+ return { clear, error, load, paste, reading, sheets, workbook };
44
+ }
@@ -0,0 +1,12 @@
1
+ import type { SpreadsheetImporter, SpreadsheetSteps } from '../types/index.js';
2
+ interface SpreadsheetImportProvided {
3
+ readonly importer: SpreadsheetImporter;
4
+ readonly steps: SpreadsheetSteps | null;
5
+ }
6
+ /** Provides an importer, and optionally its steps, to the `SpreadsheetImport*` parts below. */
7
+ export declare function provideSpreadsheetImport(provided: SpreadsheetImportProvided): void;
8
+ /** The importer of a part: its own `importer` prop, or the one of the closest root. */
9
+ export declare function useSpreadsheetImporter(own?: () => SpreadsheetImporter | undefined): import("vue").ComputedRef<SpreadsheetImporter<import("../types/index.js").SpreadsheetRuntimeSchema>>;
10
+ /** The steps of a part: its own `steps` prop, the closest root's, or `null` outside a wizard. */
11
+ export declare function useSpreadsheetStepsContext(own?: () => SpreadsheetSteps | undefined): import("vue").ComputedRef<SpreadsheetSteps | null>;
12
+ export {};
@@ -0,0 +1,22 @@
1
+ import { computed, inject, provide } from "vue";
2
+ const SPREADSHEET_IMPORT = Symbol.for(
3
+ "nuxt-ui-tools.spreadsheet-import"
4
+ );
5
+ export function provideSpreadsheetImport(provided) {
6
+ provide(SPREADSHEET_IMPORT, provided);
7
+ }
8
+ export function useSpreadsheetImporter(own) {
9
+ const provided = inject(SPREADSHEET_IMPORT, null);
10
+ return computed(() => {
11
+ const importer = own?.() ?? provided?.importer;
12
+ if (!importer)
13
+ throw new Error(
14
+ "[spreadsheet] Pass `importer` to the part or place it in a `SpreadsheetImportRoot`."
15
+ );
16
+ return importer;
17
+ });
18
+ }
19
+ export function useSpreadsheetStepsContext(own) {
20
+ const provided = inject(SPREADSHEET_IMPORT, null);
21
+ return computed(() => own?.() ?? provided?.steps ?? null);
22
+ }
@@ -1,8 +1,19 @@
1
1
  import type { MaybeRefOrGetter } from 'vue';
2
- import type { SpreadsheetImportApi } from '../types/index.js';
3
- import type { SpreadsheetInternals } from './use-spreadsheet-internals.js';
4
- export declare function useSpreadsheetImport<TSchema extends {
5
- importKey: string;
6
- }>(schema: MaybeRefOrGetter<TSchema>): SpreadsheetImportApi<TSchema> & {
7
- __internals: SpreadsheetInternals<TSchema>;
8
- };
2
+ import type { SpreadsheetImporter, SpreadsheetImportOptions, SpreadsheetRuntimeSchema } from '../types/index.js';
3
+ /**
4
+ * The import runtime of a schema: file, layout, columns, values, rows, review, and submit, each a
5
+ * reactive model readable in templates and scripts. Use it headless, with the `SpreadsheetImport*`
6
+ * parts, or with the ready-made `<SpreadsheetImport>`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const importer = useSpreadsheetImport(assessmentsImport, {
11
+ * context: { center: () => center.value, products: productsQuery() },
12
+ * onSubmit: ({ create, update }) => api.assessments.import({ create, update }),
13
+ * })
14
+ * importer.file.load(file)
15
+ * await importer.ready()
16
+ * importer.readiness.canSubmit
17
+ * ```
18
+ */
19
+ export declare function useSpreadsheetImport<const TSchema extends SpreadsheetRuntimeSchema>(schema: MaybeRefOrGetter<TSchema>, ...args: [keyof NonNullable<TSchema['~context']>] extends [never] ? [options?: SpreadsheetImportOptions<TSchema>] : [options: SpreadsheetImportOptions<TSchema>]): SpreadsheetImporter<TSchema>;
@@ -1,120 +1,351 @@
1
- import { computed, shallowRef, toValue, watch } from "vue";
2
- import { createSpreadsheetInternals } from "./use-spreadsheet-internals.js";
3
- function mapSpreadsheetParsedRows(rows) {
4
- return rows;
5
- }
6
- function mapSpreadsheetResolvedRows(rows) {
7
- return rows;
8
- }
9
- function mapSpreadsheetRowData(rows) {
10
- return rows.map((row) => row.data);
11
- }
12
- async function createSpreadsheetSubmitPayloads(params) {
13
- if (!params.schema.buildRow) {
14
- return params.rows.map((row) => row.data);
15
- }
16
- return Promise.all(
17
- params.rows.map(
18
- (row) => params.schema.buildRow({
19
- context: params.context,
20
- row: row.data
21
- })
22
- )
23
- );
24
- }
25
- export function useSpreadsheetImport(schema) {
26
- const resolvedSchema = computed(() => toValue(schema));
27
- const sourceRef = shallowRef(null);
28
- const fileNameRef = shallowRef();
29
- const internals = createSpreadsheetInternals({
30
- fileName: fileNameRef,
31
- rawSchema: resolvedSchema,
32
- source: sourceRef
1
+ import { computed, toValue, watch } from "vue";
2
+ import { useUiToolsLocale } from "#ui-tools/i18n";
3
+ import { createSpreadsheetTemplateWorkbook, suggestSpreadsheetColumns } from "../utils/index.js";
4
+ import { useSpreadsheetAnswers } from "./use-spreadsheet-answers.js";
5
+ import { useSpreadsheetColumns } from "./use-spreadsheet-columns.js";
6
+ import { useSpreadsheetContext } from "./use-spreadsheet-context.js";
7
+ import { useSpreadsheetEdits } from "./use-spreadsheet-edits.js";
8
+ import { useSpreadsheetFields } from "./use-spreadsheet-fields.js";
9
+ import { useSpreadsheetFile } from "./use-spreadsheet-file.js";
10
+ import { useSpreadsheetLayout } from "./use-spreadsheet-layout.js";
11
+ import { useSpreadsheetOptions } from "./use-spreadsheet-options.js";
12
+ import { useSpreadsheetReview } from "./use-spreadsheet-review.js";
13
+ import { useSpreadsheetRows } from "./use-spreadsheet-rows.js";
14
+ import { useSpreadsheetSubmit } from "./use-spreadsheet-submit.js";
15
+ import { useSpreadsheetValues } from "./use-spreadsheet-values.js";
16
+ export function useSpreadsheetImport(schemaInput, options = {}) {
17
+ const { t } = useUiToolsLocale();
18
+ const schema = computed(() => toValue(schemaInput));
19
+ const context = useSpreadsheetContext({ input: () => options.context });
20
+ const file = useSpreadsheetFile();
21
+ const edits = useSpreadsheetEdits();
22
+ const answers = useSpreadsheetAnswers();
23
+ const fields = useSpreadsheetFields({ context, schema, t });
24
+ const layout = useSpreadsheetLayout({ context, fields, file, schema });
25
+ const columns = useSpreadsheetColumns({ context, fields, layout });
26
+ const options$ = useSpreadsheetOptions({ columns, context, edits, fields, layout });
27
+ const rows = useSpreadsheetRows({
28
+ answers,
29
+ columns,
30
+ context,
31
+ edits,
32
+ fields,
33
+ layout,
34
+ options: options$,
35
+ schema,
36
+ t
33
37
  });
34
- const parsedRows = computed(
35
- () => mapSpreadsheetParsedRows(internals.rows.parsedRows.value)
36
- );
37
- const resolvedRows = computed(
38
- () => mapSpreadsheetResolvedRows(internals.resolutions.resolvedRows.value)
38
+ const values = useSpreadsheetValues({ answers, fields, options: options$, rows });
39
+ const review = useSpreadsheetReview({ layout, rows });
40
+ const submit = useSpreadsheetSubmit({
41
+ batchSize: options.submit?.batchSize,
42
+ context,
43
+ fields,
44
+ onSubmit: options.onSubmit,
45
+ rows,
46
+ schema,
47
+ t,
48
+ values
49
+ });
50
+ watch(file.workbook, () => {
51
+ edits.clear();
52
+ answers.clear();
53
+ columns.clear();
54
+ rows.reset();
55
+ submit.reset();
56
+ });
57
+ const suggestions = computed(() => {
58
+ const missing2 = new Set(
59
+ columns.states.value.filter((state) => state.status === "missing").map((state) => state.path)
60
+ );
61
+ if (!missing2.size)
62
+ return /* @__PURE__ */ new Map();
63
+ return suggestSpreadsheetColumns({
64
+ ctx: context.ctx.value,
65
+ fields: fields.columnFields.value.filter((field) => missing2.has(field.path)),
66
+ headers: columns.unusedHeaders.value,
67
+ options: options$.options.value,
68
+ raws: layout.dataRaws.value,
69
+ rows: layout.dataRows.value,
70
+ t
71
+ });
72
+ });
73
+ const fieldStates = computed(
74
+ () => columns.states.value.map((state) => ({
75
+ ...state,
76
+ suggestion: suggestions.value.get(state.path) ?? null
77
+ }))
39
78
  );
40
- const rowData = computed(
41
- () => mapSpreadsheetRowData(internals.resolutions.resolvedRows.value)
79
+ const missing = computed(() => fieldStates.value.filter((state) => state.status === "missing"));
80
+ const loading = computed(
81
+ () => context.loading.value || file.reading.value || options$.loading.value || rows.loading.value
42
82
  );
43
- const submitPayloads = computedAsyncPayloads({
44
- context: internals.context.contextData,
45
- rows: computed(() => internals.resolutions.resolvedRows.value),
46
- schema: resolvedSchema
83
+ const readiness = computed(() => {
84
+ const importable = rows.importable.value.length;
85
+ const openValues = values.open.value.length;
86
+ return {
87
+ canSubmit: Boolean(file.workbook.value) && !loading.value && !missing.value.length && !openValues && importable > 0,
88
+ importable,
89
+ invalidRows: rows.invalid.value.length,
90
+ loading: loading.value,
91
+ missingColumns: missing.value.length,
92
+ openValues
93
+ };
47
94
  });
48
- const status = computed(() => ({
49
- initialized: internals.source.status.value.initialized || internals.context.status.value.initialized || internals.rows.status.value.initialized,
50
- isLoadingContext: internals.context.status.value.isPending || internals.context.status.value.isFetching,
51
- isParsingRows: internals.rows.status.value.isParsing,
52
- isParsingSource: internals.source.status.value.isParsing,
53
- isReady: internals.source.status.value.isReady && internals.context.status.value.isReady && internals.rows.status.value.isReady
54
- }));
55
- function loadSource(params) {
56
- sourceRef.value = params.source;
57
- fileNameRef.value = params.fileName;
95
+ function ready() {
96
+ return new Promise((resolve) => {
97
+ const stop = watch(
98
+ () => !loading.value && (!file.workbook.value || fields.fields.value.length > 0 || !context.ready.value),
99
+ (settled) => {
100
+ if (!settled) return;
101
+ queueMicrotask(() => stop());
102
+ resolve();
103
+ },
104
+ { immediate: true }
105
+ );
106
+ });
58
107
  }
59
- function clearSource() {
60
- sourceRef.value = null;
61
- fileNameRef.value = void 0;
108
+ function template() {
109
+ return createSpreadsheetTemplateWorkbook({
110
+ fields: fields.fields.value,
111
+ guideHeaders: [
112
+ t("spreadsheet.template.column"),
113
+ t("spreadsheet.template.required"),
114
+ t("spreadsheet.template.allowed"),
115
+ t("spreadsheet.template.description")
116
+ ],
117
+ guideName: t("spreadsheet.template.guide"),
118
+ options: options$.options.value,
119
+ sheetName: t("spreadsheet.template.sheet"),
120
+ yes: t("spreadsheet.template.yes")
121
+ });
62
122
  }
63
- async function refresh() {
64
- await internals.source.refreshWorkbook();
65
- await internals.context.refreshContext();
66
- await internals.rows.refreshRows();
123
+ function reset() {
124
+ file.clear();
67
125
  }
68
- return {
69
- __internals: internals,
70
- activeSheet: internals.source.sheet,
71
- assignColumn: ({ headerIndex, columnKey }) => internals.rows.assignColumn(headerIndex, columnKey),
72
- clearColumnAssignment: (headerIndex) => internals.rows.clearColumnAssignment(headerIndex),
73
- clearReference: internals.resolutions.clearReference,
74
- clearSource,
75
- contextError: internals.context.error,
76
- headerCells: internals.rows.headerCells,
77
- headers: internals.source.headers,
78
- loadSource,
79
- parsedRows,
80
- referenceResolutions: computed(() => internals.resolutions.resolutions.value),
81
- refresh,
82
- resolvedRows,
83
- rowData,
84
- rowError: internals.rows.error,
85
- rowSummary: internals.rows.summary,
86
- rows: internals.source.rows,
87
- schema: resolvedSchema,
88
- selectReference: internals.resolutions.selectReference,
89
- selection: internals.source.selection,
90
- setHeaderRowIndex: internals.source.setHeaderRowIndex,
91
- setSheetName: internals.source.setSheetName,
92
- sourceError: internals.source.error,
93
- status,
94
- submitPayloads,
95
- unresolvedReferenceResolutions: computed(
96
- () => internals.resolutions.unresolvedResolutions.value
97
- ),
98
- workbook: internals.source.workbook
126
+ const contextModel = {
127
+ get ctx() {
128
+ return context.ctx.value;
129
+ },
130
+ get error() {
131
+ return context.error.value;
132
+ },
133
+ get loading() {
134
+ return context.loading.value;
135
+ },
136
+ get ready() {
137
+ return context.ready.value;
138
+ }
99
139
  };
100
- }
101
- function computedAsyncPayloads(params) {
102
- const payloads = shallowRef([]);
103
- async function refreshPayloads() {
104
- payloads.value = await createSpreadsheetSubmitPayloads({
105
- context: params.context.value,
106
- rows: params.rows.value,
107
- schema: params.schema.value
108
- });
109
- }
110
- watch(
111
- [params.schema, params.context, params.rows],
112
- () => {
113
- void refreshPayloads();
140
+ const fileModel = {
141
+ clear: file.clear,
142
+ get error() {
143
+ return file.error.value;
144
+ },
145
+ load: (source, name) => void file.load(source, name),
146
+ get loaded() {
147
+ return Boolean(file.workbook.value);
148
+ },
149
+ get name() {
150
+ return file.workbook.value?.name ?? "";
114
151
  },
115
- {
116
- immediate: true
152
+ paste: file.paste,
153
+ get reading() {
154
+ return file.reading.value;
155
+ },
156
+ get sheets() {
157
+ return file.sheets.value;
117
158
  }
118
- );
119
- return computed(() => payloads.value);
159
+ };
160
+ const layoutModel = {
161
+ get ambiguous() {
162
+ return layout.detection.value?.ambiguous ?? false;
163
+ },
164
+ get candidates() {
165
+ return layout.candidates.value;
166
+ },
167
+ get detected() {
168
+ return layout.detected.value;
169
+ },
170
+ get detection() {
171
+ return layout.detection.value;
172
+ },
173
+ get headerRow() {
174
+ return layout.selection.value.headerRow;
175
+ },
176
+ get headerRowNumber() {
177
+ return layout.sheet.value?.rowNumbers[layout.selection.value.headerRow] ?? layout.selection.value.headerRow + 1;
178
+ },
179
+ get headers() {
180
+ return layout.headers.value;
181
+ },
182
+ get preview() {
183
+ return layout.preview.value;
184
+ },
185
+ redetect: layout.redetect,
186
+ setHeaderRow: layout.setHeaderRow,
187
+ setSheet: layout.setSheet,
188
+ get sheet() {
189
+ return layout.selection.value.sheet;
190
+ }
191
+ };
192
+ const columnsModel = {
193
+ assign: columns.assign,
194
+ get fields() {
195
+ return fieldStates.value;
196
+ },
197
+ get groups() {
198
+ return fields.groups.value;
199
+ },
200
+ get headers() {
201
+ return layout.headers.value;
202
+ },
203
+ ignore: columns.ignore,
204
+ get missing() {
205
+ return missing.value;
206
+ },
207
+ reset: columns.reset,
208
+ get unusedHeaders() {
209
+ return columns.unusedHeaders.value;
210
+ }
211
+ };
212
+ const valuesModel = {
213
+ answer: values.answer,
214
+ choices: values.choices,
215
+ clear: values.clear,
216
+ get loading() {
217
+ return options$.loading.value;
218
+ },
219
+ get open() {
220
+ return values.open.value;
221
+ },
222
+ get questions() {
223
+ return values.questions.value;
224
+ },
225
+ get recognized() {
226
+ return values.recognized.value;
227
+ },
228
+ search: values.search
229
+ };
230
+ const rowsModel = {
231
+ get all() {
232
+ return rows.rows.value;
233
+ },
234
+ get byMode() {
235
+ return rows.byMode.value;
236
+ },
237
+ cell: rows.cell,
238
+ discard: rows.discard,
239
+ get discarded() {
240
+ return rows.discarded.value;
241
+ },
242
+ distinct: rows.distinct,
243
+ edit: rows.edit,
244
+ exportInvalid: () => rows.exportInvalid(t("spreadsheet.review.issuesColumn")),
245
+ get importable() {
246
+ return rows.importable.value;
247
+ },
248
+ get invalid() {
249
+ return rows.invalid.value;
250
+ },
251
+ issues: rows.issues,
252
+ get keyFields() {
253
+ return rows.keyFields.value;
254
+ },
255
+ get loading() {
256
+ return rows.loading.value;
257
+ },
258
+ restore: rows.restore,
259
+ revert: edits.revert,
260
+ row: (index) => rows.rows.value[index],
261
+ get valid() {
262
+ return rows.valid.value;
263
+ }
264
+ };
265
+ const reviewModel = {
266
+ clearSelection: review.clearSelection,
267
+ get fieldIssues() {
268
+ return review.fieldIssues.value;
269
+ },
270
+ inspect: review.inspect,
271
+ get inspected() {
272
+ return review.inspected.value;
273
+ },
274
+ get issue() {
275
+ return review.issue.value;
276
+ },
277
+ get issueTypes() {
278
+ return review.issueTypes.value;
279
+ },
280
+ get level() {
281
+ return review.level.value;
282
+ },
283
+ get mode() {
284
+ return review.mode.value;
285
+ },
286
+ next: review.next,
287
+ get position() {
288
+ return review.position.value;
289
+ },
290
+ previous: review.previous,
291
+ get search() {
292
+ return review.search.value;
293
+ },
294
+ select: review.select,
295
+ get selection() {
296
+ return review.selection.value;
297
+ },
298
+ setIssue: review.setIssue,
299
+ setLevel: review.setLevel,
300
+ setMode: review.setMode,
301
+ setSearch: review.setSearch,
302
+ setTab: review.setTab,
303
+ get tab() {
304
+ return review.tab.value;
305
+ },
306
+ get visible() {
307
+ return review.visible.value;
308
+ }
309
+ };
310
+ const submitModel = {
311
+ get error() {
312
+ return submit.error.value;
313
+ },
314
+ get imported() {
315
+ return submit.imported.value;
316
+ },
317
+ get progress() {
318
+ return submit.progress.value;
319
+ },
320
+ get rejected() {
321
+ return submit.rejected.value;
322
+ },
323
+ reset: submit.reset,
324
+ retryRejected: submit.retryRejected,
325
+ run: submit.run,
326
+ get status() {
327
+ return submit.status.value;
328
+ }
329
+ };
330
+ return {
331
+ columns: columnsModel,
332
+ context: contextModel,
333
+ file: fileModel,
334
+ get layout() {
335
+ return layoutModel;
336
+ },
337
+ get readiness() {
338
+ return readiness.value;
339
+ },
340
+ ready,
341
+ reset,
342
+ review: reviewModel,
343
+ rows: rowsModel,
344
+ get schema() {
345
+ return schema.value;
346
+ },
347
+ submit: submitModel,
348
+ template,
349
+ values: valuesModel
350
+ };
120
351
  }
@@ -0,0 +1,36 @@
1
+ import type { ComputedRef } from 'vue';
2
+ import type { SpreadsheetPreviewRow, SpreadsheetRuntimeSchema } from '../types/index.js';
3
+ import type { useSpreadsheetContext } from './use-spreadsheet-context.js';
4
+ import type { useSpreadsheetFields } from './use-spreadsheet-fields.js';
5
+ import type { useSpreadsheetFile } from './use-spreadsheet-file.js';
6
+ export interface UseSpreadsheetLayoutParams {
7
+ schema: ComputedRef<SpreadsheetRuntimeSchema>;
8
+ file: ReturnType<typeof useSpreadsheetFile>;
9
+ fields: ReturnType<typeof useSpreadsheetFields>;
10
+ context: ReturnType<typeof useSpreadsheetContext>;
11
+ }
12
+ /**
13
+ * The sheet and header row read. Detection runs on each new file and applies the schema's `sheet`
14
+ * and `headerRow`; the user can change both.
15
+ */
16
+ export declare function useSpreadsheetLayout(params: UseSpreadsheetLayoutParams): {
17
+ candidates: ComputedRef<readonly import("..").SpreadsheetHeaderRowCandidate[]>;
18
+ dataRaws: ComputedRef<(readonly unknown[] | undefined)[]>;
19
+ dataRowNumbers: ComputedRef<number[]>;
20
+ dataRows: ComputedRef<(readonly string[])[]>;
21
+ detected: ComputedRef<boolean>;
22
+ detection: ComputedRef<import("..").SpreadsheetLayoutDetection | null>;
23
+ headers: ComputedRef<import("..").SpreadsheetHeaderCell[]>;
24
+ preview: ComputedRef<SpreadsheetPreviewRow[]>;
25
+ redetect: () => void;
26
+ selection: import("vue").ShallowRef<{
27
+ sheet: string | null;
28
+ headerRow: number;
29
+ }, {
30
+ sheet: string | null;
31
+ headerRow: number;
32
+ }>;
33
+ setHeaderRow: (index: number) => void;
34
+ setSheet: (name: string) => void;
35
+ sheet: ComputedRef<import("..").SpreadsheetSheet | null>;
36
+ };