From 31a8f4d7349b3b6df5e6c5c082419758a0a33136 Mon Sep 17 00:00:00 2001 From: Albert Kaaman Date: Fri, 19 May 2023 13:09:44 +0200 Subject: [PATCH] feat: add VDataIterator to labs (#16839) closes #13478 Co-authored-by: John Leider Co-authored-by: Kael --- .../locale/en/{item.json => list-items.json} | 0 packages/api-generator/src/types.ts | 22 +- packages/docs/src/data/301.json | 1 - packages/docs/src/data/nav.json | 4 + .../examples/v-data-iterator/misc-filter.vue | 305 +++++---- .../examples/v-data-iterator/slot-default.vue | 131 ++-- .../slot-header-and-footer.vue | 217 ++++--- .../src/examples/v-data-iterator/usage.vue | 377 +++-------- .../examples/v-data-table/prop-grouping.vue | 4 +- packages/docs/src/pages/en/components/all.md | 6 + .../src/pages/en/components/data-iterators.md | 59 +- .../pages/en/getting-started/upgrade-guide.md | 2 +- .../VAutocomplete/VAutocomplete.tsx | 12 +- .../src/components/VCombobox/VCombobox.tsx | 12 +- .../vuetify/src/components/VData/VData.ts | 384 ----------- .../components/VData/__tests__/VData.spec.ts | 602 ------------------ .../__snapshots__/VData.spec.ts.snap | 159 ----- .../vuetify/src/components/VData/index.ts | 5 - .../components/VDataIterator/VDataFooter.sass | 71 --- .../components/VDataIterator/VDataFooter.ts | 232 ------- .../components/VDataIterator/VDataIterator.ts | 361 ----------- .../__tests__/VDataFooter.spec.ts | 204 ------ .../__tests__/VDataIterator.spec.ts | 353 ---------- .../__snapshots__/VDataFooter.spec.ts.snap | 450 ------------- .../__snapshots__/VDataIterator.spec.ts.snap | 428 ------------- .../components/VDataIterator/_variables.scss | 13 - .../src/components/VDataIterator/index.ts | 10 - .../vuetify/src/components/VList/VList.tsx | 6 +- .../VList/__tests__/VListItem.spec.ts | 38 -- .../__snapshots__/VListItem.spec.ts.snap | 12 - .../src/components/VSelect/VSelect.tsx | 12 +- packages/vuetify/src/components/index.ts | 1 - .../src/composables/__tests__/filter.spec.ts | 2 +- .../src/composables/__tests__/items.spec.ts | 2 +- packages/vuetify/src/composables/filter.ts | 17 +- .../composables/{items.ts => list-items.ts} | 26 +- .../src/labs/VDataIterator/VDataIterator.tsx | 170 +++++ .../__tests__/VDataIterator.spec.cy.tsx | 105 +++ .../labs/VDataIterator/composables/items.ts | 63 ++ .../vuetify/src/labs/VDataIterator/index.ts | 1 + .../src/labs/VDataTable/VDataTable.tsx | 12 +- .../VDataTable/VDataTableGroupHeaderRow.tsx | 6 +- .../src/labs/VDataTable/VDataTableRows.tsx | 31 +- .../src/labs/VDataTable/VDataTableVirtual.tsx | 8 +- .../labs/VDataTable/__tests__/sort.spec.ts | 2 +- .../src/labs/VDataTable/composables/group.ts | 63 +- .../src/labs/VDataTable/composables/items.ts | 80 ++- .../labs/VDataTable/composables/paginate.ts | 23 +- .../src/labs/VDataTable/composables/select.ts | 28 +- .../src/labs/VDataTable/composables/sort.ts | 27 +- .../labs/VDataTable/composables/virtual.ts | 2 +- packages/vuetify/src/labs/VDataTable/index.ts | 2 +- packages/vuetify/src/labs/VDataTable/types.ts | 19 +- packages/vuetify/src/labs/components.ts | 1 + packages/vuetify/src/util/helpers.ts | 28 - 55 files changed, 1031 insertions(+), 4180 deletions(-) rename packages/api-generator/src/locale/en/{item.json => list-items.json} (100%) delete mode 100644 packages/vuetify/src/components/VData/VData.ts delete mode 100644 packages/vuetify/src/components/VData/__tests__/VData.spec.ts delete mode 100644 packages/vuetify/src/components/VData/__tests__/__snapshots__/VData.spec.ts.snap delete mode 100644 packages/vuetify/src/components/VData/index.ts delete mode 100644 packages/vuetify/src/components/VDataIterator/VDataFooter.sass delete mode 100644 packages/vuetify/src/components/VDataIterator/VDataFooter.ts delete mode 100644 packages/vuetify/src/components/VDataIterator/VDataIterator.ts delete mode 100644 packages/vuetify/src/components/VDataIterator/__tests__/VDataFooter.spec.ts delete mode 100644 packages/vuetify/src/components/VDataIterator/__tests__/VDataIterator.spec.ts delete mode 100644 packages/vuetify/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap delete mode 100644 packages/vuetify/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap delete mode 100644 packages/vuetify/src/components/VDataIterator/_variables.scss delete mode 100644 packages/vuetify/src/components/VDataIterator/index.ts delete mode 100644 packages/vuetify/src/components/VList/__tests__/VListItem.spec.ts delete mode 100644 packages/vuetify/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap rename packages/vuetify/src/composables/{items.ts => list-items.ts} (79%) create mode 100644 packages/vuetify/src/labs/VDataIterator/VDataIterator.tsx create mode 100644 packages/vuetify/src/labs/VDataIterator/__tests__/VDataIterator.spec.cy.tsx create mode 100644 packages/vuetify/src/labs/VDataIterator/composables/items.ts create mode 100644 packages/vuetify/src/labs/VDataIterator/index.ts diff --git a/packages/api-generator/src/locale/en/item.json b/packages/api-generator/src/locale/en/list-items.json similarity index 100% rename from packages/api-generator/src/locale/en/item.json rename to packages/api-generator/src/locale/en/list-items.json diff --git a/packages/api-generator/src/types.ts b/packages/api-generator/src/types.ts index 703f8d0b57c..efea17b04f4 100644 --- a/packages/api-generator/src/types.ts +++ b/packages/api-generator/src/types.ts @@ -247,12 +247,22 @@ const allowedRefs = [ 'ValidationRule', 'FormValidationResult', 'SortItem', - 'InternalItem', - 'InternalDataTableItem', + 'ListItem', + 'Group', 'DataTableItem', 'DataTableHeader', 'InternalDataTableHeader', 'FilterFunction', + 'DataIteratorItem', +] +const plainRefs = [ + 'Component', + 'ComponentPublicInstance', + 'ComponentInternalInstance', + 'FunctionalComponent', + 'DataTableItem', + 'Group', + 'DataIteratorItem', ] function formatDefinition (definition: Definition) { @@ -290,7 +300,7 @@ function formatDefinition (definition: Definition) { }, []).join('; ')} }` break case 'ref': - if (['Component', 'ComponentPublicInstance', 'ComponentInternalInstance', 'FunctionalComponent'].includes(definition.ref)) { + if (plainRefs.includes(definition.ref)) { formatted = definition.ref } else { formatted = definition.text @@ -308,8 +318,8 @@ function formatDefinition (definition: Definition) { definition.formatted = formatted - if (allowedRefs.includes(definition.text)) { - definition.formatted = `${definition.text}` + if (allowedRefs.includes(formatted)) { + definition.formatted = `${formatted}` } } @@ -336,7 +346,7 @@ function generateDefinition (node: Node, recursed: string[], project: P if ( count(recursed, type.getText()) > 1 || - allowedRefs.includes(type.getAliasSymbol()?.getName()) || + allowedRefs.includes(symbol?.getName()) || isExternalDeclaration(declaration, definition.text) ) { definition = definition as RefDefinition diff --git a/packages/docs/src/data/301.json b/packages/docs/src/data/301.json index dd32eddae24..5d8fe0c3b88 100644 --- a/packages/docs/src/data/301.json +++ b/packages/docs/src/data/301.json @@ -118,7 +118,6 @@ "components/application": "/features/application-layout", "components/simple-tables": "/components/tables", "components/data-tables": "/labs/introduction", - "components/data-iterators": "/introduction/roadmap", "components/date-pickers": "/introduction/roadmap", "components/date-pickers-month": "/introduction/roadmap", "components/time-pickers": "/introduction/roadmap", diff --git a/packages/docs/src/data/nav.json b/packages/docs/src/data/nav.json index 9b3505e5093..ec5445ddb85 100644 --- a/packages/docs/src/data/nav.json +++ b/packages/docs/src/data/nav.json @@ -191,6 +191,10 @@ "title": "bottom-sheets", "subfolder": "components" }, + { + "title": "data-iterators", + "subfolder": "components" + }, { "title": "data-tables", "subfolder": "components", diff --git a/packages/docs/src/examples/v-data-iterator/misc-filter.vue b/packages/docs/src/examples/v-data-iterator/misc-filter.vue index 94cc653f914..4387b37403c 100644 --- a/packages/docs/src/examples/v-data-iterator/misc-filter.vue +++ b/packages/docs/src/examples/v-data-iterator/misc-filter.vue @@ -1,177 +1,155 @@ + diff --git a/packages/docs/src/examples/v-data-iterator/slot-default.vue b/packages/docs/src/examples/v-data-iterator/slot-default.vue index 7116d3642de..ddbdaea3ef1 100644 --- a/packages/docs/src/examples/v-data-iterator/slot-default.vue +++ b/packages/docs/src/examples/v-data-iterator/slot-default.vue @@ -1,96 +1,53 @@ diff --git a/packages/docs/src/examples/v-data-iterator/usage.vue b/packages/docs/src/examples/v-data-iterator/usage.vue index 15b57e93542..f8b4d657a7f 100644 --- a/packages/docs/src/examples/v-data-iterator/usage.vue +++ b/packages/docs/src/examples/v-data-iterator/usage.vue @@ -1,305 +1,88 @@ - diff --git a/packages/docs/src/examples/v-data-table/prop-grouping.vue b/packages/docs/src/examples/v-data-table/prop-grouping.vue index a95fac27d50..671ede6e723 100644 --- a/packages/docs/src/examples/v-data-table/prop-grouping.vue +++ b/packages/docs/src/examples/v-data-table/prop-grouping.vue @@ -11,8 +11,8 @@