@vuetify/nightly 4.0.0-dev-20230422.0 → 4.0.0-dev-20230426.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 (124) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +56 -4
  4. package/dist/json/importMap-labs.json +4 -0
  5. package/dist/json/importMap.json +64 -64
  6. package/dist/json/tags.json +18 -0
  7. package/dist/json/web-types.json +237 -10
  8. package/dist/vuetify-labs.css +1379 -1354
  9. package/dist/vuetify-labs.d.ts +343 -0
  10. package/dist/vuetify-labs.esm.js +216 -6
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +216 -6
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.css +9 -9
  15. package/dist/vuetify.d.ts +18 -18
  16. package/dist/vuetify.esm.js +10 -6
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +10 -6
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +7 -7
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/composables/intersectionObserver.mjs +2 -2
  24. package/lib/composables/intersectionObserver.mjs.map +1 -1
  25. package/lib/entry-bundler.mjs +1 -1
  26. package/lib/framework.mjs +1 -1
  27. package/lib/index.d.ts +18 -18
  28. package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
  29. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
  30. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
  31. package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
  32. package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
  33. package/lib/labs/VInfiniteScroll/index.d.ts +349 -0
  34. package/lib/labs/VInfiniteScroll/index.mjs +2 -0
  35. package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
  36. package/lib/labs/components.d.ts +343 -2
  37. package/lib/labs/components.mjs +1 -0
  38. package/lib/labs/components.mjs.map +1 -1
  39. package/lib/locale/af.mjs +5 -1
  40. package/lib/locale/af.mjs.map +1 -1
  41. package/lib/locale/ar.mjs +5 -1
  42. package/lib/locale/ar.mjs.map +1 -1
  43. package/lib/locale/az.mjs +5 -1
  44. package/lib/locale/az.mjs.map +1 -1
  45. package/lib/locale/bg.mjs +5 -1
  46. package/lib/locale/bg.mjs.map +1 -1
  47. package/lib/locale/ca.mjs +5 -1
  48. package/lib/locale/ca.mjs.map +1 -1
  49. package/lib/locale/ckb.mjs +5 -1
  50. package/lib/locale/ckb.mjs.map +1 -1
  51. package/lib/locale/cs.mjs +5 -1
  52. package/lib/locale/cs.mjs.map +1 -1
  53. package/lib/locale/da.mjs +5 -1
  54. package/lib/locale/da.mjs.map +1 -1
  55. package/lib/locale/de.mjs +5 -1
  56. package/lib/locale/de.mjs.map +1 -1
  57. package/lib/locale/el.mjs +5 -1
  58. package/lib/locale/el.mjs.map +1 -1
  59. package/lib/locale/en.mjs +5 -1
  60. package/lib/locale/en.mjs.map +1 -1
  61. package/lib/locale/es.mjs +5 -1
  62. package/lib/locale/es.mjs.map +1 -1
  63. package/lib/locale/et.mjs +5 -1
  64. package/lib/locale/et.mjs.map +1 -1
  65. package/lib/locale/fa.mjs +5 -1
  66. package/lib/locale/fa.mjs.map +1 -1
  67. package/lib/locale/fi.mjs +5 -1
  68. package/lib/locale/fi.mjs.map +1 -1
  69. package/lib/locale/fr.mjs +5 -1
  70. package/lib/locale/fr.mjs.map +1 -1
  71. package/lib/locale/he.mjs +5 -1
  72. package/lib/locale/he.mjs.map +1 -1
  73. package/lib/locale/hr.mjs +5 -1
  74. package/lib/locale/hr.mjs.map +1 -1
  75. package/lib/locale/hu.mjs +5 -1
  76. package/lib/locale/hu.mjs.map +1 -1
  77. package/lib/locale/id.mjs +5 -1
  78. package/lib/locale/id.mjs.map +1 -1
  79. package/lib/locale/index.d.ts +168 -0
  80. package/lib/locale/it.mjs +5 -1
  81. package/lib/locale/it.mjs.map +1 -1
  82. package/lib/locale/ja.mjs +5 -1
  83. package/lib/locale/ja.mjs.map +1 -1
  84. package/lib/locale/ko.mjs +5 -1
  85. package/lib/locale/ko.mjs.map +1 -1
  86. package/lib/locale/lt.mjs +5 -1
  87. package/lib/locale/lt.mjs.map +1 -1
  88. package/lib/locale/lv.mjs +5 -1
  89. package/lib/locale/lv.mjs.map +1 -1
  90. package/lib/locale/nl.mjs +5 -1
  91. package/lib/locale/nl.mjs.map +1 -1
  92. package/lib/locale/no.mjs +5 -1
  93. package/lib/locale/no.mjs.map +1 -1
  94. package/lib/locale/pl.mjs +5 -1
  95. package/lib/locale/pl.mjs.map +1 -1
  96. package/lib/locale/pt.mjs +5 -1
  97. package/lib/locale/pt.mjs.map +1 -1
  98. package/lib/locale/ro.mjs +5 -1
  99. package/lib/locale/ro.mjs.map +1 -1
  100. package/lib/locale/ru.mjs +5 -1
  101. package/lib/locale/ru.mjs.map +1 -1
  102. package/lib/locale/sk.mjs +5 -1
  103. package/lib/locale/sk.mjs.map +1 -1
  104. package/lib/locale/sl.mjs +5 -1
  105. package/lib/locale/sl.mjs.map +1 -1
  106. package/lib/locale/sr-Cyrl.mjs +5 -1
  107. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  108. package/lib/locale/sr-Latn.mjs +5 -1
  109. package/lib/locale/sr-Latn.mjs.map +1 -1
  110. package/lib/locale/sv.mjs +5 -1
  111. package/lib/locale/sv.mjs.map +1 -1
  112. package/lib/locale/th.mjs +5 -1
  113. package/lib/locale/th.mjs.map +1 -1
  114. package/lib/locale/tr.mjs +5 -1
  115. package/lib/locale/tr.mjs.map +1 -1
  116. package/lib/locale/uk.mjs +5 -1
  117. package/lib/locale/uk.mjs.map +1 -1
  118. package/lib/locale/vi.mjs +5 -1
  119. package/lib/locale/vi.mjs.map +1 -1
  120. package/lib/locale/zh-Hans.mjs +5 -1
  121. package/lib/locale/zh-Hans.mjs.map +1 -1
  122. package/lib/locale/zh-Hant.mjs +5 -1
  123. package/lib/locale/zh-Hant.mjs.map +1 -1
  124. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
1
  // Utilities
2
2
  import { onBeforeUnmount, ref, watch } from 'vue';
3
3
  import { SUPPORTS_INTERSECTION } from "../util/index.mjs";
4
- export function useIntersectionObserver(callback) {
4
+ export function useIntersectionObserver(callback, options) {
5
5
  const intersectionRef = ref();
6
6
  const isIntersecting = ref(false);
7
7
  if (SUPPORTS_INTERSECTION) {
8
8
  const observer = new IntersectionObserver(entries => {
9
9
  callback?.(entries, observer);
10
10
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
11
- });
11
+ }, options);
12
12
  onBeforeUnmount(() => {
13
13
  observer.disconnect();
14
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"intersectionObserver.mjs","names":["onBeforeUnmount","ref","watch","SUPPORTS_INTERSECTION","useIntersectionObserver","callback","intersectionRef","isIntersecting","observer","IntersectionObserver","entries","value","find","entry","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/intersectionObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = ref(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACxCC,qBAAqB;AAE9B,OAAO,SAASC,uBAAuBA,CAAEC,QAAuC,EAAE;EAChF,MAAMC,eAAe,GAAGL,GAAG,EAAe;EAC1C,MAAMM,cAAc,GAAGN,GAAG,CAAC,KAAK,CAAC;EAEjC,IAAIE,qBAAqB,EAAE;IACzB,MAAMK,QAAQ,GAAG,IAAIC,oBAAoB,CAAEC,OAAoC,IAAK;MAClFL,QAAQ,GAAGK,OAAO,EAAEF,QAAQ,CAAC;MAE7BD,cAAc,CAACI,KAAK,GAAG,CAAC,CAACD,OAAO,CAACE,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACN,cAAc,CAAC;IACtE,CAAC,CAAC;IAEFP,eAAe,CAAC,MAAM;MACpBQ,QAAQ,CAACM,UAAU,EAAE;IACvB,CAAC,CAAC;IAEFZ,KAAK,CAACI,eAAe,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MAC7C,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACD,QAAQ,CAAC;QAC5BT,cAAc,CAACI,KAAK,GAAG,KAAK;MAC9B;MAEA,IAAII,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IAAEb,eAAe;IAAEC;EAAe,CAAC;AAC5C"}
1
+ {"version":3,"file":"intersectionObserver.mjs","names":["onBeforeUnmount","ref","watch","SUPPORTS_INTERSECTION","useIntersectionObserver","callback","options","intersectionRef","isIntersecting","observer","IntersectionObserver","entries","value","find","entry","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/intersectionObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = ref(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACxCC,qBAAqB;AAE9B,OAAO,SAASC,uBAAuBA,CAAEC,QAAuC,EAAEC,OAAkC,EAAE;EACpH,MAAMC,eAAe,GAAGN,GAAG,EAAe;EAC1C,MAAMO,cAAc,GAAGP,GAAG,CAAC,KAAK,CAAC;EAEjC,IAAIE,qBAAqB,EAAE;IACzB,MAAMM,QAAQ,GAAG,IAAIC,oBAAoB,CAAEC,OAAoC,IAAK;MAClFN,QAAQ,GAAGM,OAAO,EAAEF,QAAQ,CAAC;MAE7BD,cAAc,CAACI,KAAK,GAAG,CAAC,CAACD,OAAO,CAACE,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACN,cAAc,CAAC;IACtE,CAAC,EAAEF,OAAO,CAAC;IAEXN,eAAe,CAAC,MAAM;MACpBS,QAAQ,CAACM,UAAU,EAAE;IACvB,CAAC,CAAC;IAEFb,KAAK,CAACK,eAAe,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MAC7C,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACD,QAAQ,CAAC;QAC5BT,cAAc,CAACI,KAAK,GAAG,KAAK;MAC9B;MAEA,IAAII,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IAAEb,eAAe;IAAEC;EAAe,CAAC;AAC5C"}
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "4.0.0-dev-20230422.0";
13
+ export const version = "4.0.0-dev-20230426.0";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -94,7 +94,7 @@ export function createVuetify() {
94
94
  date
95
95
  };
96
96
  }
97
- export const version = "4.0.0-dev-20230422.0";
97
+ export const version = "4.0.0-dev-20230426.0";
98
98
  createVuetify.version = version;
99
99
 
100
100
  // Vue's inject() can only be used in setup
package/lib/index.d.ts CHANGED
@@ -362,16 +362,16 @@ declare module '@vue/runtime-core' {
362
362
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
363
363
  VAvatar: typeof import('vuetify/components')['VAvatar']
364
364
  VBadge: typeof import('vuetify/components')['VBadge']
365
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
366
365
  VBanner: typeof import('vuetify/components')['VBanner']
367
366
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
368
367
  VBannerText: typeof import('vuetify/components')['VBannerText']
369
- VBtn: typeof import('vuetify/components')['VBtn']
368
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
370
369
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
371
370
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
372
371
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
373
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
372
+ VBtn: typeof import('vuetify/components')['VBtn']
374
373
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
374
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
375
375
  VCard: typeof import('vuetify/components')['VCard']
376
376
  VCardActions: typeof import('vuetify/components')['VCardActions']
377
377
  VCardItem: typeof import('vuetify/components')['VCardItem']
@@ -380,22 +380,22 @@ declare module '@vue/runtime-core' {
380
380
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
381
381
  VCarousel: typeof import('vuetify/components')['VCarousel']
382
382
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
383
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
384
383
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
385
384
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
385
+ VChip: typeof import('vuetify/components')['VChip']
386
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
386
387
  VCode: typeof import('vuetify/components')['VCode']
387
388
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
388
- VChip: typeof import('vuetify/components')['VChip']
389
389
  VCombobox: typeof import('vuetify/components')['VCombobox']
390
390
  VCounter: typeof import('vuetify/components')['VCounter']
391
391
  VDialog: typeof import('vuetify/components')['VDialog']
392
392
  VDivider: typeof import('vuetify/components')['VDivider']
393
- VField: typeof import('vuetify/components')['VField']
394
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
395
393
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
396
394
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
397
395
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
398
396
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
397
+ VField: typeof import('vuetify/components')['VField']
398
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
399
399
  VFileInput: typeof import('vuetify/components')['VFileInput']
400
400
  VFooter: typeof import('vuetify/components')['VFooter']
401
401
  VIcon: typeof import('vuetify/components')['VIcon']
@@ -409,7 +409,6 @@ declare module '@vue/runtime-core' {
409
409
  VItem: typeof import('vuetify/components')['VItem']
410
410
  VKbd: typeof import('vuetify/components')['VKbd']
411
411
  VLabel: typeof import('vuetify/components')['VLabel']
412
- VMain: typeof import('vuetify/components')['VMain']
413
412
  VList: typeof import('vuetify/components')['VList']
414
413
  VListGroup: typeof import('vuetify/components')['VListGroup']
415
414
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -419,25 +418,24 @@ declare module '@vue/runtime-core' {
419
418
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
420
419
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
421
420
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
421
+ VMain: typeof import('vuetify/components')['VMain']
422
422
  VMenu: typeof import('vuetify/components')['VMenu']
423
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
424
423
  VMessages: typeof import('vuetify/components')['VMessages']
424
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
425
425
  VOverlay: typeof import('vuetify/components')['VOverlay']
426
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
427
426
  VPagination: typeof import('vuetify/components')['VPagination']
427
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
428
428
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
429
429
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
430
430
  VRating: typeof import('vuetify/components')['VRating']
431
431
  VSelect: typeof import('vuetify/components')['VSelect']
432
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
433
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
434
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
435
432
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
433
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
436
434
  VSheet: typeof import('vuetify/components')['VSheet']
437
435
  VSlider: typeof import('vuetify/components')['VSlider']
438
436
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
439
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
440
437
  VSwitch: typeof import('vuetify/components')['VSwitch']
438
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
441
439
  VTabs: typeof import('vuetify/components')['VTabs']
442
440
  VTab: typeof import('vuetify/components')['VTab']
443
441
  VTable: typeof import('vuetify/components')['VTable']
@@ -452,22 +450,23 @@ declare module '@vue/runtime-core' {
452
450
  VWindow: typeof import('vuetify/components')['VWindow']
453
451
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
454
452
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
455
- VHover: typeof import('vuetify/components')['VHover']
456
453
  VForm: typeof import('vuetify/components')['VForm']
457
454
  VContainer: typeof import('vuetify/components')['VContainer']
458
455
  VCol: typeof import('vuetify/components')['VCol']
459
456
  VRow: typeof import('vuetify/components')['VRow']
460
457
  VSpacer: typeof import('vuetify/components')['VSpacer']
461
- VLazy: typeof import('vuetify/components')['VLazy']
458
+ VHover: typeof import('vuetify/components')['VHover']
462
459
  VLayout: typeof import('vuetify/components')['VLayout']
463
460
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
461
+ VLazy: typeof import('vuetify/components')['VLazy']
464
462
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
465
463
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
466
464
  VParallax: typeof import('vuetify/components')['VParallax']
467
465
  VRadio: typeof import('vuetify/components')['VRadio']
468
- VResponsive: typeof import('vuetify/components')['VResponsive']
469
466
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
467
+ VResponsive: typeof import('vuetify/components')['VResponsive']
470
468
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
469
+ VValidation: typeof import('vuetify/components')['VValidation']
471
470
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
472
471
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
473
472
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -485,6 +484,7 @@ declare module '@vue/runtime-core' {
485
484
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
486
485
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
487
486
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
488
- VValidation: typeof import('vuetify/components')['VValidation']
487
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
488
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
489
489
  }
490
490
  }
@@ -0,0 +1,26 @@
1
+ .v-infinite-scroll--horizontal {
2
+ display: flex;
3
+ flex-direction: row;
4
+ overflow-x: auto;
5
+ }
6
+ .v-infinite-scroll--horizontal .v-infinite-scroll-intersect {
7
+ height: 100%;
8
+ width: 1px;
9
+ }
10
+
11
+ .v-infinite-scroll--vertical {
12
+ display: flex;
13
+ flex-direction: column;
14
+ overflow-y: auto;
15
+ }
16
+ .v-infinite-scroll--vertical .v-infinite-scroll-intersect {
17
+ height: 1px;
18
+ width: 100%;
19
+ }
20
+
21
+ .v-infinite-scroll__side {
22
+ align-items: center;
23
+ display: flex;
24
+ justify-content: center;
25
+ padding: 8px;
26
+ }
@@ -0,0 +1,215 @@
1
+ import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
2
+ // Styles
3
+ import "./VInfiniteScroll.css";
4
+
5
+ // Components
6
+ import { VBtn } from "../../components/VBtn/index.mjs";
7
+ import { VProgressCircular } from "../../components/VProgressCircular/index.mjs"; // Composables
8
+ import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
9
+ import { useIntersectionObserver } from "../../composables/intersectionObserver.mjs";
10
+ import { useLocale } from "../../composables/locale.mjs"; // Utilities
11
+ import { computed, nextTick, onMounted, ref, watch } from 'vue';
12
+ import { convertToUnit, defineComponent, genericComponent, useRender } from "../../util/index.mjs"; // Types
13
+ export const VInfiniteScrollIntersect = defineComponent({
14
+ name: 'VInfiniteScrollIntersect',
15
+ props: {
16
+ side: {
17
+ type: String,
18
+ required: true
19
+ },
20
+ rootRef: null,
21
+ rootMargin: String
22
+ },
23
+ emits: {
24
+ intersect: side => true
25
+ },
26
+ setup(props, _ref) {
27
+ let {
28
+ emit
29
+ } = _ref;
30
+ const {
31
+ intersectionRef,
32
+ isIntersecting
33
+ } = useIntersectionObserver(entries => {}, props.rootMargin ? {
34
+ root: props.rootRef,
35
+ rootMargin: props.rootMargin
36
+ } : undefined);
37
+ watch(isIntersecting, async val => {
38
+ if (val) emit('intersect', props.side);
39
+ });
40
+ useRender(() => _createVNode("div", {
41
+ "class": "v-infinite-scroll-intersect",
42
+ "ref": intersectionRef
43
+ }, [_createTextVNode("\xA0")]));
44
+ return {};
45
+ }
46
+ });
47
+ export const VInfiniteScroll = genericComponent()({
48
+ name: 'VInfiniteScroll',
49
+ props: {
50
+ color: String,
51
+ direction: {
52
+ type: String,
53
+ default: 'vertical',
54
+ validator: v => ['vertical', 'horizontal'].includes(v)
55
+ },
56
+ side: {
57
+ type: String,
58
+ default: 'end',
59
+ validator: v => ['start', 'end', 'both'].includes(v)
60
+ },
61
+ mode: {
62
+ type: String,
63
+ default: 'intersect',
64
+ validator: v => ['intersect', 'manual'].includes(v)
65
+ },
66
+ margin: [Number, String],
67
+ loadMoreText: {
68
+ type: String,
69
+ default: '$vuetify.infiniteScroll.loadMore'
70
+ },
71
+ emptyText: {
72
+ type: String,
73
+ default: '$vuetify.infiniteScroll.empty'
74
+ },
75
+ ...makeDimensionProps()
76
+ },
77
+ emits: {
78
+ load: options => true
79
+ },
80
+ setup(props, _ref2) {
81
+ let {
82
+ slots,
83
+ emit
84
+ } = _ref2;
85
+ const rootEl = ref();
86
+ const startStatus = ref('ok');
87
+ const endStatus = ref('ok');
88
+ const margin = computed(() => convertToUnit(props.margin));
89
+ function setScrollAmount(amount) {
90
+ if (!rootEl.value) return;
91
+ const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
92
+ rootEl.value[property] = amount;
93
+ }
94
+ function getScrollAmount() {
95
+ if (!rootEl.value) return 0;
96
+ const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
97
+ return rootEl.value[property];
98
+ }
99
+ function getScrollSize() {
100
+ if (!rootEl.value) return 0;
101
+ const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
102
+ return rootEl.value[property];
103
+ }
104
+ function getContainerSize() {
105
+ if (!rootEl.value) return 0;
106
+ const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
107
+ return rootEl.value[property];
108
+ }
109
+ onMounted(() => {
110
+ if (!rootEl.value) return;
111
+ if (props.side === 'start') {
112
+ setScrollAmount(getScrollSize());
113
+ } else if (props.side === 'both') {
114
+ setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
115
+ }
116
+ });
117
+ function setStatus(side, status) {
118
+ if (side === 'start') {
119
+ startStatus.value = status;
120
+ } else if (side === 'end') {
121
+ endStatus.value = status;
122
+ }
123
+ }
124
+ function getStatus(side) {
125
+ return side === 'start' ? startStatus.value : endStatus.value;
126
+ }
127
+ let previousScrollSize = 0;
128
+ function handleIntersect(side) {
129
+ const status = getStatus(side);
130
+ if (!rootEl.value || status === 'loading') return;
131
+ previousScrollSize = getScrollSize();
132
+ setStatus(side, 'loading');
133
+ function done(status) {
134
+ setStatus(side, status);
135
+ nextTick(() => {
136
+ if (status === 'ok' && side === 'start') {
137
+ setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
138
+ }
139
+ });
140
+ }
141
+ emit('load', {
142
+ side,
143
+ done
144
+ });
145
+ }
146
+ const {
147
+ t
148
+ } = useLocale();
149
+ function renderSide(side, status) {
150
+ if (props.side !== side && props.side !== 'both') return;
151
+ const onClick = () => handleIntersect(side);
152
+ const slotProps = {
153
+ side,
154
+ props: {
155
+ onClick,
156
+ color: props.color
157
+ }
158
+ };
159
+ if (status === 'error') return slots.error?.(slotProps);
160
+ if (status === 'empty') return slots.empty?.(slotProps) ?? _createVNode("div", null, [t(props.emptyText)]);
161
+ if (props.mode === 'manual') {
162
+ if (status === 'loading') {
163
+ return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {
164
+ "indeterminate": true,
165
+ "color": props.color
166
+ }, null);
167
+ }
168
+ return slots['load-more']?.(slotProps) ?? _createVNode(VBtn, {
169
+ "variant": "outlined",
170
+ "color": props.color,
171
+ "onClick": onClick
172
+ }, {
173
+ default: () => [t(props.loadMoreText)]
174
+ });
175
+ }
176
+ return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {
177
+ "indeterminate": true,
178
+ "color": props.color
179
+ }, null);
180
+ }
181
+ const {
182
+ dimensionStyles
183
+ } = useDimension(props);
184
+ useRender(() => {
185
+ const hasStartIntersect = props.side === 'start' || props.side === 'both';
186
+ const hasEndIntersect = props.side === 'end' || props.side === 'both';
187
+ const intersectMode = props.mode === 'intersect';
188
+ return _createVNode("div", {
189
+ "ref": rootEl,
190
+ "class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
191
+ 'v-infinite-scroll--start': hasStartIntersect,
192
+ 'v-infinite-scroll--end': hasEndIntersect
193
+ }],
194
+ "style": dimensionStyles.value
195
+ }, [_createVNode("div", {
196
+ "class": "v-infinite-scroll__side"
197
+ }, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {
198
+ "key": "start",
199
+ "side": "start",
200
+ "onIntersect": handleIntersect,
201
+ "rootRef": rootEl.value,
202
+ "rootMargin": margin.value
203
+ }, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {
204
+ "key": "end",
205
+ "side": "end",
206
+ "onIntersect": handleIntersect,
207
+ "rootRef": rootEl.value,
208
+ "rootMargin": margin.value
209
+ }, null), _createVNode("div", {
210
+ "class": "v-infinite-scroll__side"
211
+ }, [renderSide('end', endStatus.value)])]);
212
+ });
213
+ }
214
+ });
215
+ //# sourceMappingURL=VInfiniteScroll.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VInfiniteScroll.mjs","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","computed","nextTick","onMounted","ref","watch","convertToUnit","defineComponent","genericComponent","useRender","VInfiniteScrollIntersect","name","props","side","type","String","required","rootRef","rootMargin","emits","intersect","setup","_ref","emit","intersectionRef","isIntersecting","entries","root","undefined","val","_createVNode","_createTextVNode","VInfiniteScroll","color","direction","default","validator","v","includes","mode","margin","Number","loadMoreText","emptyText","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","done","t","renderSide","onClick","slotProps","error","empty","loading","dimensionStyles","hasStartIntersect","hasEndIntersect","intersectMode"],"sources":["../../../src/labs/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: {\n onClick: () => (side: InfiniteScrollSide) => void\n color: string | undefined\n }\n}\n\ntype VInfiniteScrollSlots = {\n default: [InfiniteScrollSlot]\n loading: [InfiniteScrollSlot]\n error: [InfiniteScrollSlot]\n empty: [InfiniteScrollSlot]\n 'load-more': [InfiniteScrollSlot]\n}\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootRef: null,\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver(entries => {\n }, props.rootMargin ? {\n root: props.rootRef,\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n if (val) emit('intersect', props.side)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }>&nbsp;</div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: {\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n },\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = ref<InfiniteScrollStatus>('ok')\n const endStatus = ref<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide) {\n const status = getStatus(side)\n if (!rootEl.value || status === 'loading') return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => handleIntersect(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <div\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,wDAE1B;AAAA,SACSC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,uBAAuB;AAAA,SACvBC,SAAS,wCAElB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACtDC,aAAa,EAAEC,eAAe,EAAEC,gBAAgB,EAAEC,SAAS,gCAEpE;AAsBA,OAAO,MAAMC,wBAAwB,GAAGH,eAAe,CAAC;EACtDI,IAAI,EAAE,0BAA0B;EAEhCC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJC,IAAI,EAAEC,MAAsC;MAC5CC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE,IAAI;IACbC,UAAU,EAAEH;EACd,CAAC;EAEDI,KAAK,EAAE;IACLC,SAAS,EAAGP,IAAwB,IAAK;EAC3C,CAAC;EAEDQ,KAAKA,CAAET,KAAK,EAAAU,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE,eAAe;MAAEC;IAAe,CAAC,GAAG1B,uBAAuB,CAAC2B,OAAO,IAAI,CAC/E,CAAC,EAAEd,KAAK,CAACM,UAAU,GAAG;MACpBS,IAAI,EAAEf,KAAK,CAACK,OAAO;MACnBC,UAAU,EAAEN,KAAK,CAACM;IACpB,CAAC,GAAGU,SAAS,CAAC;IAEdvB,KAAK,CAACoB,cAAc,EAAE,MAAMI,GAAG,IAAI;MACjC,IAAIA,GAAG,EAAEN,IAAI,CAAC,WAAW,EAAEX,KAAK,CAACC,IAAI,CAAC;IACxC,CAAC,CAAC;IAEFJ,SAAS,CAAC,MAAAqB,YAAA;MAAA,SACG,6BAA6B;MAAA,OAAON;IAAe,IAAAO,gBAAA,UAC/D,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAe,GAAGxB,gBAAgB,EAAwB,CAAC;EACtEG,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAE;IACLqB,KAAK,EAAElB,MAAM;IACbmB,SAAS,EAAE;MACTpB,IAAI,EAAEC,MAA6C;MACnDoB,OAAO,EAAE,UAAU;MACnBC,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,CAAC;IAC9D,CAAC;IACDxB,IAAI,EAAE;MACJC,IAAI,EAAEC,MAAsC;MAC5CoB,OAAO,EAAE,KAAK;MACdC,SAAS,EAAGC,CAAM,IAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACD,CAAC;IAC5D,CAAC;IACDE,IAAI,EAAE;MACJzB,IAAI,EAAEC,MAA0C;MAChDoB,OAAO,EAAE,WAAW;MACpBC,SAAS,EAAGC,CAAM,IAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACD,CAAC;IAC3D,CAAC;IACDG,MAAM,EAAE,CAACC,MAAM,EAAE1B,MAAM,CAAC;IACxB2B,YAAY,EAAE;MACZ5B,IAAI,EAAEC,MAAM;MACZoB,OAAO,EAAE;IACX,CAAC;IACDQ,SAAS,EAAE;MACT7B,IAAI,EAAEC,MAAM;MACZoB,OAAO,EAAE;IACX,CAAC;IAED,GAAGtC,kBAAkB;EACvB,CAAC;EAEDsB,KAAK,EAAE;IACLyB,IAAI,EAAGC,OAAmF,IAAK;EACjG,CAAC;EAEDxB,KAAKA,CAAET,KAAK,EAAAkC,KAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAExB;IAAK,CAAC,GAAAuB,KAAA;IAC3B,MAAME,MAAM,GAAG5C,GAAG,EAAkB;IACpC,MAAM6C,WAAW,GAAG7C,GAAG,CAAuB,IAAI,CAAC;IACnD,MAAM8C,SAAS,GAAG9C,GAAG,CAAuB,IAAI,CAAC;IACjD,MAAMoC,MAAM,GAAGvC,QAAQ,CAAC,MAAMK,aAAa,CAACM,KAAK,CAAC4B,MAAM,CAAC,CAAC;IAE1D,SAASW,eAAeA,CAAEC,MAAc,EAAE;MACxC,IAAI,CAACJ,MAAM,CAACK,KAAK,EAAE;MAEnB,MAAMC,QAAQ,GAAG1C,KAAK,CAACsB,SAAS,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY;MAC5Ec,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC,GAAGF,MAAM;IACjC;IAEA,SAASG,eAAeA,CAAA,EAAI;MAC1B,IAAI,CAACP,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG1C,KAAK,CAACsB,SAAS,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY;MAC5E,OAAOc,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEA,SAASE,aAAaA,CAAA,EAAI;MACxB,IAAI,CAACR,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG1C,KAAK,CAACsB,SAAS,KAAK,UAAU,GAAG,cAAc,GAAG,aAAa;MAChF,OAAOc,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEA,SAASG,gBAAgBA,CAAA,EAAI;MAC3B,IAAI,CAACT,MAAM,CAACK,KAAK,EAAE,OAAO,CAAC;MAE3B,MAAMC,QAAQ,GAAG1C,KAAK,CAACsB,SAAS,KAAK,UAAU,GAAG,cAAc,GAAG,aAAa;MAChF,OAAOc,MAAM,CAACK,KAAK,CAACC,QAAQ,CAAC;IAC/B;IAEAnD,SAAS,CAAC,MAAM;MACd,IAAI,CAAC6C,MAAM,CAACK,KAAK,EAAE;MAEnB,IAAIzC,KAAK,CAACC,IAAI,KAAK,OAAO,EAAE;QAC1BsC,eAAe,CAACK,aAAa,EAAE,CAAC;MAClC,CAAC,MAAM,IAAI5C,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;QAChCsC,eAAe,CAACK,aAAa,EAAE,GAAG,CAAC,GAAGC,gBAAgB,EAAE,GAAG,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEF,SAASC,SAASA,CAAE7C,IAAwB,EAAE8C,MAA4B,EAAE;MAC1E,IAAI9C,IAAI,KAAK,OAAO,EAAE;QACpBoC,WAAW,CAACI,KAAK,GAAGM,MAAM;MAC5B,CAAC,MAAM,IAAI9C,IAAI,KAAK,KAAK,EAAE;QACzBqC,SAAS,CAACG,KAAK,GAAGM,MAAM;MAC1B;IACF;IAEA,SAASC,SAASA,CAAE/C,IAAY,EAAE;MAChC,OAAOA,IAAI,KAAK,OAAO,GAAGoC,WAAW,CAACI,KAAK,GAAGH,SAAS,CAACG,KAAK;IAC/D;IAEA,IAAIQ,kBAAkB,GAAG,CAAC;IAC1B,SAASC,eAAeA,CAAEjD,IAAwB,EAAE;MAClD,MAAM8C,MAAM,GAAGC,SAAS,CAAC/C,IAAI,CAAC;MAC9B,IAAI,CAACmC,MAAM,CAACK,KAAK,IAAIM,MAAM,KAAK,SAAS,EAAE;MAE3CE,kBAAkB,GAAGL,aAAa,EAAE;MACpCE,SAAS,CAAC7C,IAAI,EAAE,SAAS,CAAC;MAE1B,SAASkD,IAAIA,CAAEJ,MAA4B,EAAE;QAC3CD,SAAS,CAAC7C,IAAI,EAAE8C,MAAM,CAAC;QAEvBzD,QAAQ,CAAC,MAAM;UACb,IAAIyD,MAAM,KAAK,IAAI,IAAI9C,IAAI,KAAK,OAAO,EAAE;YACvCsC,eAAe,CAACK,aAAa,EAAE,GAAGK,kBAAkB,GAAGN,eAAe,EAAE,CAAC;UAC3E;QACF,CAAC,CAAC;MACJ;MAEAhC,IAAI,CAAC,MAAM,EAAE;QAAEV,IAAI;QAAEkD;MAAK,CAAC,CAAC;IAC9B;IAEA,MAAM;MAAEC;IAAE,CAAC,GAAGhE,SAAS,EAAE;IAEzB,SAASiE,UAAUA,CAAEpD,IAAwB,EAAE8C,MAA4B,EAAE;MAC3E,IAAI/C,KAAK,CAACC,IAAI,KAAKA,IAAI,IAAID,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;MAElD,MAAMqD,OAAO,GAAGA,CAAA,KAAMJ,eAAe,CAACjD,IAAI,CAAC;MAC3C,MAAMsD,SAAS,GAAG;QAAEtD,IAAI;QAAED,KAAK,EAAE;UAAEsD,OAAO;UAAEjC,KAAK,EAAErB,KAAK,CAACqB;QAAM;MAAE,CAAC;MAElE,IAAI0B,MAAM,KAAK,OAAO,EAAE,OAAOZ,KAAK,CAACqB,KAAK,GAAGD,SAAS,CAAC;MAEvD,IAAIR,MAAM,KAAK,OAAO,EAAE,OAAOZ,KAAK,CAACsB,KAAK,GAAGF,SAAS,CAAC,IAAArC,YAAA,eAAWkC,CAAC,CAACpD,KAAK,CAAC+B,SAAS,CAAC,EAAQ;MAE5F,IAAI/B,KAAK,CAAC2B,IAAI,KAAK,QAAQ,EAAE;QAC3B,IAAIoB,MAAM,KAAK,SAAS,EAAE;UACxB,OAAOZ,KAAK,CAACuB,OAAO,GAAGH,SAAS,CAAC,IAAArC,YAAA,CAAAlC,iBAAA;YAAA;YAAA,SACUgB,KAAK,CAACqB;UAAK,QACrD;QACH;QAEA,OAAOc,KAAK,CAAC,WAAW,CAAC,GAAGoB,SAAS,CAAC,IAAArC,YAAA,CAAAnC,IAAA;UAAA,WACtB,UAAU;UAAA,SAASiB,KAAK,CAACqB,KAAK;UAAA,WAAaiC;QAAO;UAAA/B,OAAA,EAAAA,CAAA,MAC5D6B,CAAC,CAACpD,KAAK,CAAC8B,YAAY,CAAC;QAAA,EAE1B;MACH;MAEA,OAAOK,KAAK,CAACuB,OAAO,GAAGH,SAAS,CAAC,IAAArC,YAAA,CAAAlC,iBAAA;QAAA;QAAA,SACUgB,KAAK,CAACqB;MAAK,QACrD;IACH;IAEA,MAAM;MAAEsC;IAAgB,CAAC,GAAGzE,YAAY,CAACc,KAAK,CAAC;IAE/CH,SAAS,CAAC,MAAM;MACd,MAAM+D,iBAAiB,GAAG5D,KAAK,CAACC,IAAI,KAAK,OAAO,IAAID,KAAK,CAACC,IAAI,KAAK,MAAM;MACzE,MAAM4D,eAAe,GAAG7D,KAAK,CAACC,IAAI,KAAK,KAAK,IAAID,KAAK,CAACC,IAAI,KAAK,MAAM;MACrE,MAAM6D,aAAa,GAAG9D,KAAK,CAAC2B,IAAI,KAAK,WAAW;MAEhD,OAAAT,YAAA;QAAA,OAEUkB,MAAM;QAAA,SACL,CACL,mBAAmB,EAClB,sBAAqBpC,KAAK,CAACsB,SAAU,EAAC,EACvC;UACE,0BAA0B,EAAEsC,iBAAiB;UAC7C,wBAAwB,EAAEC;QAC5B,CAAC,CACF;QAAA,SACOF,eAAe,CAAClB;MAAK,IAAAvB,YAAA;QAAA,SAElB;MAAyB,IAChCmC,UAAU,CAAC,OAAO,EAAEhB,WAAW,CAACI,KAAK,CAAC,IAGxCL,MAAM,CAACK,KAAK,IAAImB,iBAAiB,IAAIE,aAAa,IAAA5C,YAAA,CAAApB,wBAAA;QAAA,OAE5C,OAAO;QAAA,QACN,OAAO;QAAA,eACEoD,eAAe;QAAA,WACnBd,MAAM,CAACK,KAAK;QAAA,cACTb,MAAM,CAACa;MAAK,QAE5B,EAECN,KAAK,CAACZ,OAAO,IAAI,EAEjBa,MAAM,CAACK,KAAK,IAAIoB,eAAe,IAAIC,aAAa,IAAA5C,YAAA,CAAApB,wBAAA;QAAA,OAE1C,KAAK;QAAA,QACJ,KAAK;QAAA,eACIoD,eAAe;QAAA,WACnBd,MAAM,CAACK,KAAK;QAAA,cACTb,MAAM,CAACa;MAAK,QAE5B,EAAAvB,YAAA;QAAA,SAEU;MAAyB,IAChCmC,UAAU,CAAC,KAAK,EAAEf,SAAS,CAACG,KAAK,CAAC;IAI5C,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ @use './variables' as *
2
+
3
+ .v-infinite-scroll--horizontal
4
+ display: flex
5
+ flex-direction: row
6
+ overflow-x: auto
7
+
8
+ .v-infinite-scroll-intersect
9
+ height: 100%
10
+ width: 1px
11
+
12
+ .v-infinite-scroll--vertical
13
+ display: flex
14
+ flex-direction: column
15
+ overflow-y: auto
16
+
17
+ .v-infinite-scroll-intersect
18
+ height: 1px
19
+ width: 100%
20
+
21
+ .v-infinite-scroll__side
22
+ align-items: center
23
+ display: flex
24
+ justify-content: center
25
+ padding: $infinite-scroll-side-padding
@@ -0,0 +1,3 @@
1
+ @use '../../styles/settings';
2
+
3
+ $infinite-scroll-side-padding: 8px !default;