vuetify 3.1.7 → 3.1.8

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 (113) hide show
  1. package/dist/json/attributes.json +0 -528
  2. package/dist/json/importMap.json +4 -4
  3. package/dist/json/tags.json +2 -136
  4. package/dist/json/web-types.json +20 -1210
  5. package/dist/vuetify-labs.css +419 -276
  6. package/dist/vuetify-labs.esm.js +48 -37
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +48 -37
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +1413 -1270
  11. package/dist/vuetify.d.ts +1 -1
  12. package/dist/vuetify.esm.js +33 -32
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +33 -32
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +209 -210
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.css +1 -1
  20. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  24. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  25. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  26. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  27. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  28. package/lib/components/VCard/VCard.mjs.map +1 -1
  29. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  30. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  31. package/lib/components/VChip/VChip.mjs.map +1 -1
  32. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  33. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  34. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  35. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  36. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  37. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  38. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  39. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  40. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  41. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  42. package/lib/components/VField/VField.mjs.map +1 -1
  43. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  44. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  45. package/lib/components/VInput/VInput.mjs.map +1 -1
  46. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  47. package/lib/components/VList/VListGroup.mjs.map +1 -1
  48. package/lib/components/VList/VListItem.mjs.map +1 -1
  49. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  50. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  51. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  52. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  53. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  54. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  55. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  56. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  57. package/lib/components/VRating/VRating.mjs.map +1 -1
  58. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  59. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  60. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  61. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  62. package/lib/components/VSnackbar/VSnackbar.css +0 -2
  63. package/lib/components/VSnackbar/VSnackbar.mjs +6 -8
  64. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  65. package/lib/components/VSnackbar/VSnackbar.sass +0 -2
  66. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  67. package/lib/components/VTable/VTable.mjs.map +1 -1
  68. package/lib/components/VTabs/VTab.mjs.map +1 -1
  69. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  70. package/lib/components/VTextField/VTextField.mjs +1 -0
  71. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  72. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  73. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  74. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  75. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  76. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  77. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  78. package/lib/components/transitions/createTransition.mjs +1 -1
  79. package/lib/components/transitions/createTransition.mjs.map +1 -1
  80. package/lib/composables/display.mjs +13 -10
  81. package/lib/composables/display.mjs.map +1 -1
  82. package/lib/composables/loader.mjs.map +1 -1
  83. package/lib/composables/theme.mjs +7 -10
  84. package/lib/composables/theme.mjs.map +1 -1
  85. package/lib/composables/variant.mjs.map +1 -1
  86. package/lib/entry-bundler.mjs +1 -1
  87. package/lib/framework.mjs +1 -1
  88. package/lib/index.d.ts +1 -1
  89. package/lib/labs/VDataTable/VDataTable.mjs +4 -2
  90. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  91. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  92. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  93. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  94. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  95. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  96. package/lib/labs/VDataTable/VDataTableVirtual.mjs +4 -2
  97. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  98. package/lib/labs/VDataTable/composables/options.mjs +7 -1
  99. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  100. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  101. package/lib/locale/index.mjs +1 -1
  102. package/lib/locale/index.mjs.map +1 -1
  103. package/lib/styles/elements/_global.sass +0 -4
  104. package/lib/styles/generic/_index.scss +0 -1
  105. package/lib/styles/generic/_transitions.scss +111 -9
  106. package/lib/styles/main.css +312 -167
  107. package/lib/styles/tools/_sheet.sass +3 -6
  108. package/lib/styles/utilities/_display.sass +6 -5
  109. package/lib/styles/utilities/_elevation.scss +13 -0
  110. package/lib/styles/utilities/_index.sass +3 -2
  111. package/lib/styles/utilities/_screenreaders.sass +13 -11
  112. package/package.json +17 -4
  113. package/lib/styles/generic/_elevation.scss +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","useProxiedModel","createExpanded","makeDataTableExpandProps","createGroupBy","makeDataTableGroupProps","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","createSort","makeDataTableSortProps","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","toggleSort","opened","itemsPerPage","flatItems","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n createExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { sortBy, toggleSort } = createSort(props)\n\n const { opened } = createGroupBy(props, groupBy, sortBy)\n\n const { page, itemsPerPage } = createPagination(props, items)\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n v-slots={ slots }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,MAAM;AAAA,SACNC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,cAAc,gCAEvB;AAAA,SACSC,eAAe;AAAA,SACfC,eAAe;AAAA,SACfC,cAAc,EAAEC,wBAAwB;AAAA,SACxCC,aAAa,EAAEC,uBAAuB,EAAEC,eAAe;AAAA,SACvDC,aAAa,EAAEC,wBAAwB;AAAA,SACvCC,sBAAsB,EAAEC,iBAAiB;AAAA,SACzCC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,0BAA0B;AAAA,SAC5CC,eAAe,EAAEC,wBAAwB;AAAA,SACzCC,UAAU,EAAEC,sBAAsB,kCAE3C;AACA,SAASC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC3BC,gBAAgB,EAAEC,SAAS;AAAA,SAC3BC,mBAAmB,4BAE5B;AAIA,OAAO,MAAMC,gBAAgB,GAAGH,gBAAgB,EAAmB,CAAC;EAClEI,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAAM;IACbC,OAAO,EAAE,CAACC,OAAO,EAAEF,MAAM,CAAC;IAC1BG,WAAW,EAAE;MACXC,IAAI,EAAEJ,MAAM;MACZK,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE,CAACC,MAAM,EAAEP,MAAM,CAAC;IAE7B,GAAGL,mBAAmB,EAAE;IACxB,GAAGnB,wBAAwB,EAAE;IAC7B,GAAGK,wBAAwB,EAAE;IAC7B,GAAGC,sBAAsB,EAAE;IAC3B,GAAGM,wBAAwB,EAAE;IAC7B,GAAGE,sBAAsB,EAAE;IAC3B,GAAGJ,0BAA0B,EAAE;IAC/B,GAAGR,uBAAuB;EAC5B,CAAC;EAED8B,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,qBAAqB,EAAGA,IAAY,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGA,OAAY,IAAK,IAAI;IACzC,gBAAgB,EAAGH,KAAU,IAAK,IAAI;IACtC,WAAW,EAAE,CAACI,KAAY,EAAEJ,KAA8B,KAAK;EACjE,CAAC;EAEDK,KAAK,CAAEhB,KAAK,QAAmB;IAAA,IAAjB;MAAEiB,IAAI;MAAEC;IAAM,CAAC;IAC3B,MAAMC,OAAO,GAAG3C,eAAe,CAACwB,KAAK,EAAE,SAAS,CAAC;IAEjDvB,cAAc,CAACuB,KAAK,CAAC;IAErB,MAAM;MAAEoB;IAAQ,CAAC,GAAGtC,aAAa,CAACkB,KAAK,EAAE;MACvCmB,OAAO;MACPE,UAAU,EAAE3B,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;MACtCsB,UAAU,EAAE5B,KAAK,CAACM,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEuB;IAAM,CAAC,GAAGtC,iBAAiB,CAACe,KAAK,EAAEoB,OAAO,CAAC;IAEnD,MAAM;MAAEP,MAAM;MAAEW;IAAW,CAAC,GAAGjC,UAAU,CAACS,KAAK,CAAC;IAEhD,MAAM;MAAEyB;IAAO,CAAC,GAAG9C,aAAa,CAACqB,KAAK,EAAEmB,OAAO,EAAEN,MAAM,CAAC;IAExD,MAAM;MAAED,IAAI;MAAEc;IAAa,CAAC,GAAGvC,gBAAgB,CAACa,KAAK,EAAEuB,KAAK,CAAC;IAE7D,MAAM;MAAEI;IAAU,CAAC,GAAG9C,eAAe,CAAC0C,KAAK,EAAEJ,OAAO,EAAEM,MAAM,CAAC;IAE7DpC,eAAe,CAACW,KAAK,EAAEuB,KAAK,CAAC;IAE7BrC,UAAU,CAAC;MACT0B,IAAI;MACJc,YAAY;MACZb,MAAM;MACNM;IACF,CAAC,CAAC;IAEF1B,OAAO,CAAC,cAAc,EAAE;MACtB+B,UAAU;MACVX;IACF,CAAC,CAAC;IAEFtC,eAAe,CAAC;MACdD,cAAc,EAAE;QACdsD,UAAU,EAAElC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtC6B,UAAU,EAAEnC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtCG,OAAO,EAAET,KAAK,CAACM,KAAK,EAAE,SAAS,CAAC;QAChCK,WAAW,EAAEX,KAAK,CAACM,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEFJ,SAAS,CAAC;MAAA,SAEC,CACL,cAAc,EACd;QACE,uBAAuB,EAAEI,KAAK,CAACG;MACjC,CAAC,CACF;MAAA,eACaH,KAAK,CAAC8B,WAAW;MAAA,eACjB9B,KAAK,CAAC+B,WAAW;MAAA,UACtB/B,KAAK,CAACgC;IAAM;MAGnBC,GAAG,EAAEf,KAAK,CAACe,GAAG;MACd1B,OAAO,EAAEW,KAAK,CAACX,OAAO,KAAK;QAAA,SAEV,qBAAqB;QAAA,QAAM;MAAU,IAC9CW,KAAK,CAACgB,OAAO,GAAGhB,KAAK,CAACgB,OAAO,EAAE;QAAA,UAEpBlC,KAAK,CAAC8B,WAAW;QAAA,WAChB9B,KAAK,CAACG,OAAO;QAAA,SACfH,KAAK,CAACC;MAAK,GACTiB,KAAK,CAElB,IAEDA,KAAK,CAACiB,KAAK,IAAI;QAAA,SACJ,qBAAqB;QAAA,QAAM;MAAU,IAC9CjB,KAAK,CAACkB,IAAI,GAAGlB,KAAK,CAACkB,IAAI,EAAE;QAAA,SAEfT,SAAS,CAAChB,KAAK;QAAA,eACT,CAACI,KAAK,EAAEJ,KAAK,KAAKM,IAAI,CAAC,WAAW,EAAEF,KAAK,EAAEJ,KAAK;MAAC,GACrDO,KAAK,CAElB,IAEDA,KAAK,CAACmB,KAAK,IAAI,EACfnB,KAAK,CAACoB,KAAK,IAAI,EAEpB,CAAC;MACFC,MAAM,EAAErB,KAAK,CAACqB,MAAM,KAAK,2CAEZ;QACPC,OAAO,EAAEtB,KAAK,CAAC,gBAAgB;MACjC,CAAC,CAEJ;IAAC,EAGP,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","useProxiedModel","createExpanded","makeDataTableExpandProps","createGroupBy","makeDataTableGroupProps","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","createSort","makeDataTableSortProps","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","toggleSort","opened","itemsPerPage","flatItems","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n createExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { sortBy, toggleSort } = createSort(props)\n\n const { opened } = createGroupBy(props, groupBy, sortBy)\n\n const { page, itemsPerPage } = createPagination(props, items)\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
@@ -57,9 +57,10 @@ export const VDataTableVirtual = genericComponent()({
57
57
  items
58
58
  } = useDataTableItems(props, columns);
59
59
  const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
60
+ const search = toRef(props, 'search');
60
61
  const {
61
62
  filteredItems
62
- } = useFilter(props, items, toRef(props, 'search'), {
63
+ } = useFilter(props, items, search, {
63
64
  filterKeys
64
65
  });
65
66
  const {
@@ -95,7 +96,8 @@ export const VDataTableVirtual = genericComponent()({
95
96
  sortBy,
96
97
  page: ref(1),
97
98
  itemsPerPage: ref(-1),
98
- groupBy
99
+ groupBy,
100
+ search
99
101
  });
100
102
  provideDefaults({
101
103
  VDataTableRows: {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","genericComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'), { filterKeys })\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n createSelection(props, allRows)\n createExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n itemsPerPage: ref(-1),\n groupBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={visibleItems.value}\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","genericComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n createSelection(props, allRows)\n createExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n itemsPerPage: ref(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={ visibleItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
@@ -6,7 +6,8 @@ export function useOptions(_ref) {
6
6
  page,
7
7
  itemsPerPage,
8
8
  sortBy,
9
- groupBy
9
+ groupBy,
10
+ search
10
11
  } = _ref;
11
12
  const vm = getCurrentInstance('VDataTable');
12
13
  const options = computed(() => ({
@@ -23,6 +24,11 @@ export function useOptions(_ref) {
23
24
  deep: true
24
25
  });
25
26
 
27
+ // Reset page when searching
28
+ watch(() => search?.value, () => {
29
+ page.value = 1;
30
+ });
31
+
26
32
  // Reset page when items-per-page changes
27
33
  watch(itemsPerPage, () => {
28
34
  page.value = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","page","itemsPerPage","sortBy","groupBy","vm","options","value","deep","oldOptions","emit","immediate"],"sources":["../../../../src/labs/VDataTable/composables/options.ts"],"sourcesContent":["// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n }))\n\n // Reset page when sorting changes\n watch(sortBy, () => {\n page.value = 1\n }, { deep: true })\n\n // Reset page when items-per-page changes\n watch(itemsPerPage, () => {\n page.value = 1\n })\n\n let oldOptions: unknown = null\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return\n vm.emit('update:options', options.value)\n oldOptions = options.value\n }, { deep: true, immediate: true })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,SAAS,EAAEC,kBAAkB,mCAEtC;AAIA,OAAO,SAASC,UAAU,OAUvB;EAAA,IAVyB;IAC1BC,IAAI;IACJC,YAAY;IACZC,MAAM;IACNC;EAMF,CAAC;EACC,MAAMC,EAAE,GAAGN,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMO,OAAO,GAAGV,QAAQ,CAAC,OAAO;IAC9BK,IAAI,EAAEA,IAAI,CAACM,KAAK;IAChBL,YAAY,EAAEA,YAAY,CAACK,KAAK;IAChCJ,MAAM,EAAEA,MAAM,CAACI,KAAK;IACpBH,OAAO,EAAEA,OAAO,CAACG;EACnB,CAAC,CAAC,CAAC;;EAEH;EACAV,KAAK,CAACM,MAAM,EAAE,MAAM;IAClBF,IAAI,CAACM,KAAK,GAAG,CAAC;EAChB,CAAC,EAAE;IAAEC,IAAI,EAAE;EAAK,CAAC,CAAC;;EAElB;EACAX,KAAK,CAACK,YAAY,EAAE,MAAM;IACxBD,IAAI,CAACM,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;EAEF,IAAIE,UAAmB,GAAG,IAAI;EAC9BZ,KAAK,CAACS,OAAO,EAAE,MAAM;IACnB,IAAIR,SAAS,CAACW,UAAU,EAAEH,OAAO,CAACC,KAAK,CAAC,EAAE;IAC1CF,EAAE,CAACK,IAAI,CAAC,gBAAgB,EAAEJ,OAAO,CAACC,KAAK,CAAC;IACxCE,UAAU,GAAGH,OAAO,CAACC,KAAK;EAC5B,CAAC,EAAE;IAAEC,IAAI,EAAE,IAAI;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACrC"}
1
+ {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","page","itemsPerPage","sortBy","groupBy","search","vm","options","value","deep","oldOptions","emit","immediate"],"sources":["../../../../src/labs/VDataTable/composables/options.ts"],"sourcesContent":["// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n search?: Ref<string | undefined>\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n }))\n\n // Reset page when sorting changes\n watch(sortBy, () => {\n page.value = 1\n }, { deep: true })\n\n // Reset page when searching\n watch(() => search?.value, () => {\n page.value = 1\n })\n\n // Reset page when items-per-page changes\n watch(itemsPerPage, () => {\n page.value = 1\n })\n\n let oldOptions: unknown = null\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return\n vm.emit('update:options', options.value)\n oldOptions = options.value\n }, { deep: true, immediate: true })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,SAAS,EAAEC,kBAAkB,mCAEtC;AAIA,OAAO,SAASC,UAAU,OAYvB;EAAA,IAZyB;IAC1BC,IAAI;IACJC,YAAY;IACZC,MAAM;IACNC,OAAO;IACPC;EAOF,CAAC;EACC,MAAMC,EAAE,GAAGP,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMQ,OAAO,GAAGX,QAAQ,CAAC,OAAO;IAC9BK,IAAI,EAAEA,IAAI,CAACO,KAAK;IAChBN,YAAY,EAAEA,YAAY,CAACM,KAAK;IAChCL,MAAM,EAAEA,MAAM,CAACK,KAAK;IACpBJ,OAAO,EAAEA,OAAO,CAACI;EACnB,CAAC,CAAC,CAAC;;EAEH;EACAX,KAAK,CAACM,MAAM,EAAE,MAAM;IAClBF,IAAI,CAACO,KAAK,GAAG,CAAC;EAChB,CAAC,EAAE;IAAEC,IAAI,EAAE;EAAK,CAAC,CAAC;;EAElB;EACAZ,KAAK,CAAC,MAAMQ,MAAM,EAAEG,KAAK,EAAE,MAAM;IAC/BP,IAAI,CAACO,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;;EAEF;EACAX,KAAK,CAACK,YAAY,EAAE,MAAM;IACxBD,IAAI,CAACO,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;EAEF,IAAIE,UAAmB,GAAG,IAAI;EAC9Bb,KAAK,CAACU,OAAO,EAAE,MAAM;IACnB,IAAIT,SAAS,CAACY,UAAU,EAAEH,OAAO,CAACC,KAAK,CAAC,EAAE;IAC1CF,EAAE,CAACK,IAAI,CAAC,gBAAgB,EAAEJ,OAAO,CAACC,KAAK,CAAC;IACxCE,UAAU,GAAGH,OAAO,CAACC,KAAK;EAC5B,CAAC,EAAE;IAAEC,IAAI,EAAE,IAAI;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","watch","watchEffect","clamp","convertToUnit","createRange","genericComponent","useRender","UP","DOWN","VVirtualScroll","name","props","items","type","Array","default","itemHeight","Number","String","visibleItems","setup","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizeMap","Map","sizes","length","map","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","start","end","middle","floor","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","forEach","item","indexOf","delete"],"sources":["../../../src/labs/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n useRender,\n} from '@/util'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const VVirtualScroll = genericComponent<new <T>() => {\n $props: {\n items: readonly T[]\n } & SlotsToProps<{\n default: [VVirtualScrollSlot<T>]\n }>\n}>()({\n name: 'VVirtualScroll',\n\n props: {\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n visibleItems: [Number, String],\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const first = ref(0)\n const baseItemHeight = ref(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizeMap = new Map<any, number>()\n let sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return props.visibleItems\n ? parseInt(props.visibleItems, 10)\n : Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n sizeMap.set(props.items[index], height)\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = props.items.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => props.items.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n watch(() => props.items.length, () => {\n sizes = createRange(props.items.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = props.items.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class=\"v-virtual-scroll\"\n onScroll={ handleScroll }\n style={ dimensionStyles.value }\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map((item, index) => (\n <VVirtualScrollItem\n key={ index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(index + first.value, height) }\n >\n { slots.default?.({ item, index: index + first.value }) }\n </VVirtualScrollItem>\n )) }\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","watch","watchEffect","clamp","convertToUnit","createRange","genericComponent","useRender","UP","DOWN","VVirtualScroll","name","props","items","type","Array","default","itemHeight","Number","String","visibleItems","setup","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizeMap","Map","sizes","length","map","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","start","end","middle","floor","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","forEach","item","indexOf","delete"],"sources":["../../../src/labs/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n useRender,\n} from '@/util'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const VVirtualScroll = genericComponent<new <T>() => {\n $props: {\n items: readonly T[]\n } & SlotsToProps<{\n default: [VVirtualScrollSlot<T>]\n }>\n}>()({\n name: 'VVirtualScroll',\n\n props: {\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n visibleItems: [Number, String],\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const first = ref(0)\n const baseItemHeight = ref(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizeMap = new Map<any, number>()\n let sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return props.visibleItems\n ? parseInt(props.visibleItems, 10)\n : Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n sizeMap.set(props.items[index], height)\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = props.items.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => props.items.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n watch(() => props.items.length, () => {\n sizes = createRange(props.items.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = props.items.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class=\"v-virtual-scroll\"\n onScroll={ handleScroll }\n style={ dimensionStyles.value }\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map((item, index) => (\n <VVirtualScrollItem\n key={ index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(index + first.value, height) }\n >\n { slots.default?.({ item, index: index + first.value }) }\n </VVirtualScrollItem>\n ))}\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
@@ -52,7 +52,7 @@ export const defaultRtl = {
52
52
  en: false,
53
53
  es: false,
54
54
  et: false,
55
- fa: false,
55
+ fa: true,
56
56
  fi: false,
57
57
  fr: false,
58
58
  hr: false,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["default","af","ar","bg","ca","ckb","cs","da","de","el","en","es","et","fa","fi","fr","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","defaultRtl"],"sources":["../../src/locale/index.ts"],"sourcesContent":["export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as da } from './da'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const defaultRtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: false,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["default","af","ar","bg","ca","ckb","cs","da","de","el","en","es","et","fa","fi","fr","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","defaultRtl"],"sources":["../../src/locale/index.ts"],"sourcesContent":["export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as da } from './da'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const defaultRtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n"],"mappings":"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"}
@@ -14,10 +14,6 @@ html.overflow-y-hidden
14
14
  overflow-y: hidden !important
15
15
 
16
16
  :root
17
- --v-theme-background: #fff
18
- --v-theme-on-background: #000
19
- --v-theme-surface: #fff
20
- --v-theme-on-surface: #000
21
17
  --v-theme-overlay-multiplier: 1
22
18
  --v-scrollbar-offset: 0px
23
19
 
@@ -1,6 +1,5 @@
1
1
  @use './animations';
2
2
  @use './colors';
3
3
  @use './reset';
4
- @use './elevation';
5
4
  @use './transitions';
6
5
  @use './rtl';
@@ -2,15 +2,27 @@
2
2
 
3
3
  @mixin transition-default() {
4
4
  &-enter-active {
5
- transition: 0.3s settings.$standard-easing;
5
+ transition-duration: 0.3s !important;
6
+ transition-timing-function: settings.$standard-easing !important;
6
7
  }
7
8
 
8
9
  &-leave-active {
9
- transition: 0.3s settings.$standard-easing;
10
+ transition-duration: 0.3s !important;
11
+ transition-timing-function: settings.$standard-easing !important;
10
12
  }
11
13
 
12
14
  &-move {
13
- transition: transform .5s settings.$standard-easing;
15
+ transition-duration: 0.5s !important;
16
+ transition-property: transform !important;
17
+ transition-timing-function: settings.$standard-easing !important;
18
+ }
19
+ }
20
+ @mixin fade-out() {
21
+ &-leave-to {
22
+ opacity: 0;
23
+ }
24
+ &-leave-active {
25
+ transition-duration: 100ms !important;
14
26
  }
15
27
  }
16
28
 
@@ -19,16 +31,18 @@
19
31
  .dialog-bottom-transition,
20
32
  .dialog-top-transition {
21
33
  &-enter-active {
22
- transition: 225ms settings.$decelerated-easing
34
+ transition-duration: 225ms !important;
35
+ transition-timing-function: settings.$decelerated-easing !important;
23
36
  }
24
37
 
25
38
  &-leave-active {
26
- transition: 125ms settings.$accelerated-easing
39
+ transition-duration: 125ms !important;
40
+ transition-timing-function: settings.$accelerated-easing !important;
27
41
  }
28
42
 
29
43
  &-enter-active,
30
44
  &-leave-active {
31
- transition-property: transform, opacity;
45
+ transition-property: transform, opacity !important;
32
46
  pointer-events: none;
33
47
  }
34
48
  }
@@ -70,6 +84,11 @@
70
84
  &-leave-to {
71
85
  position: absolute !important;
72
86
  }
87
+
88
+ &-enter-active,
89
+ &-leave-active {
90
+ transition-property: transform, opacity !important;
91
+ }
73
92
  }
74
93
 
75
94
  .picker-transition {
@@ -99,37 +118,65 @@
99
118
  // Generic transitions
100
119
  .expand-transition {
101
120
  @include transition-default();
121
+
122
+ &-enter-active,
123
+ &-leave-active {
124
+ transition-property: height !important;
125
+ }
102
126
  }
103
127
 
104
128
  .expand-x-transition {
105
129
  @include transition-default();
130
+
131
+ &-enter-active,
132
+ &-leave-active {
133
+ transition-property: width !important;
134
+ }
106
135
  }
107
136
 
108
137
  .scale-transition {
109
138
  @include transition-default();
139
+ @include fade-out();
110
140
 
111
- &-enter-from, &-leave-from, &-leave-to {
141
+ &-enter-from {
112
142
  opacity: 0;
113
143
  transform: scale(0);
114
144
  }
145
+
146
+ &-enter-active,
147
+ &-leave-active {
148
+ transition-property: transform, opacity !important;
149
+ }
115
150
  }
116
151
 
117
152
  .scale-rotate-transition {
118
153
  @include transition-default();
154
+ @include fade-out();
119
155
 
120
- &-enter-from, &-leave, &-leave-to {
156
+ &-enter-from {
121
157
  opacity: 0;
122
158
  transform: scale(0) rotate(-45deg);
123
159
  }
160
+
161
+ &-enter-active,
162
+ &-leave-active {
163
+ transition-property: transform, opacity !important;
164
+ }
124
165
  }
125
166
 
126
167
  .scale-rotate-reverse-transition {
127
168
  @include transition-default();
169
+ @include fade-out();
128
170
 
129
- &-enter-from, &-leave-from, &-leave-to {
171
+ &-enter-from {
130
172
  opacity: 0;
131
173
  transform: scale(0) rotate(45deg);
132
174
  }
175
+
176
+ &-enter-active,
177
+ &-leave-active {
178
+ transition-property: transform, opacity !important;
179
+ }
133
180
  }
134
181
 
135
182
  .message-transition {
@@ -143,6 +190,11 @@
143
190
  &-leave-from, &-leave-active {
144
191
  position: absolute;
145
192
  }
193
+
194
+ &-enter-active,
195
+ &-leave-active {
196
+ transition-property: transform, opacity !important;
197
+ }
146
198
  }
147
199
 
148
200
  .slide-y-transition {
@@ -152,6 +204,11 @@
152
204
  opacity: 0;
153
205
  transform: translateY(-15px);
154
206
  }
207
+
208
+ &-enter-active,
209
+ &-leave-active {
210
+ transition-property: transform, opacity !important;
211
+ }
155
212
  }
156
213
 
157
214
  .slide-y-reverse-transition {
@@ -161,6 +218,11 @@
161
218
  opacity: 0;
162
219
  transform: translateY(15px);
163
220
  }
221
+
222
+ &-enter-active,
223
+ &-leave-active {
224
+ transition-property: transform, opacity !important;
225
+ }
164
226
  }
165
227
 
166
228
  .scroll-y-transition {
@@ -177,6 +239,11 @@
177
239
  &-leave-to {
178
240
  transform: translateY(15px);
179
241
  }
242
+
243
+ &-enter-active,
244
+ &-leave-active {
245
+ transition-property: transform, opacity !important;
246
+ }
180
247
  }
181
248
 
182
249
  .scroll-y-reverse-transition {
@@ -193,6 +260,11 @@
193
260
  &-leave-to {
194
261
  transform: translateY(-15px);
195
262
  }
263
+
264
+ &-enter-active,
265
+ &-leave-active {
266
+ transition-property: transform, opacity !important;
267
+ }
196
268
  }
197
269
 
198
270
  .scroll-x-transition {
@@ -209,6 +281,11 @@
209
281
  &-leave-to {
210
282
  transform: translateX(15px);
211
283
  }
284
+
285
+ &-enter-active,
286
+ &-leave-active {
287
+ transition-property: transform, opacity !important;
288
+ }
212
289
  }
213
290
 
214
291
  .scroll-x-reverse-transition {
@@ -225,6 +302,11 @@
225
302
  &-leave-to {
226
303
  transform: translateX(-15px);
227
304
  }
305
+
306
+ &-enter-active,
307
+ &-leave-active {
308
+ transition-property: transform, opacity !important;
309
+ }
228
310
  }
229
311
 
230
312
  .slide-x-transition {
@@ -234,6 +316,11 @@
234
316
  opacity: 0;
235
317
  transform: translateX(-15px);
236
318
  }
319
+
320
+ &-enter-active,
321
+ &-leave-active {
322
+ transition-property: transform, opacity !important;
323
+ }
237
324
  }
238
325
 
239
326
  .slide-x-reverse-transition {
@@ -243,6 +330,11 @@
243
330
  opacity: 0;
244
331
  transform: translateX(15px);
245
332
  }
333
+
334
+ &-enter-active,
335
+ &-leave-active {
336
+ transition-property: transform, opacity !important;
337
+ }
246
338
  }
247
339
 
248
340
  .fade-transition {
@@ -251,6 +343,11 @@
251
343
  &-enter-from, &-leave-to {
252
344
  opacity: 0 !important;
253
345
  }
346
+
347
+ &-enter-active,
348
+ &-leave-active {
349
+ transition-property: opacity !important;
350
+ }
254
351
  }
255
352
 
256
353
  .fab-transition {
@@ -259,4 +356,9 @@
259
356
  &-enter-from, &-leave-to {
260
357
  transform: scale(0) rotate(-45deg);
261
358
  }
359
+
360
+ &-enter-active,
361
+ &-leave-active {
362
+ transition-property: transform !important;
363
+ }
262
364
  }