eco-vue-js 0.26.28 → 0.26.30

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 (101) hide show
  1. package/dist/components/DragContainer/components/DragItem.vue_vue_type_script_setup_true_lang.js +2 -2
  2. package/dist/components/EmptyComponent/WEmptyComponent.vue.d.ts +5 -8
  3. package/dist/components/EmptyComponent/WEmptyComponent.vue.d.ts.map +1 -1
  4. package/dist/components/EmptyComponent/WEmptyComponent.vue.js +2 -2
  5. package/dist/components/EmptyComponent/WEmptyComponent.vue_vue_type_script_lang.js +4 -0
  6. package/dist/components/InfiniteList/WInfiniteList.vue.d.ts +2 -0
  7. package/dist/components/InfiniteList/WInfiniteList.vue.d.ts.map +1 -1
  8. package/dist/components/InfiniteList/WInfiniteList.vue_vue_type_script_setup_true_lang.js +5 -19
  9. package/dist/components/InfiniteList/WInfiniteListWrapper.vue.d.ts +5 -1
  10. package/dist/components/InfiniteList/WInfiniteListWrapper.vue.d.ts.map +1 -1
  11. package/dist/components/InfiniteList/WInfiniteListWrapper.vue_vue_type_script_setup_true_lang.js +152 -70
  12. package/dist/components/InfiniteList/components/InfiniteListPage.vue.d.ts +4 -16
  13. package/dist/components/InfiniteList/components/InfiniteListPage.vue.d.ts.map +1 -1
  14. package/dist/components/InfiniteList/components/InfiniteListPage.vue_vue_type_script_setup_true_lang.js +52 -48
  15. package/dist/components/InfiniteList/components/InfiniteListPages.vue.d.ts +3 -16
  16. package/dist/components/InfiniteList/components/InfiniteListPages.vue.d.ts.map +1 -1
  17. package/dist/components/InfiniteList/components/InfiniteListPages.vue_vue_type_script_setup_true_lang.js +146 -172
  18. package/dist/components/InfiniteList/types.d.ts +17 -0
  19. package/dist/components/InfiniteList/types.d.ts.map +1 -1
  20. package/dist/components/List/WList.vue.d.ts.map +1 -1
  21. package/dist/components/List/WList.vue_vue_type_script_setup_true_lang.js +180 -150
  22. package/dist/components/List/components/HeaderSettingsList.vue.d.ts.map +1 -1
  23. package/dist/components/List/components/HeaderSettingsList.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/dist/components/List/components/ListCardFieldNested.vue.d.ts.map +1 -1
  25. package/dist/components/List/components/ListCardFieldNested.vue_vue_type_script_setup_true_lang.js +41 -48
  26. package/dist/components/List/components/ListItem.vue.d.ts +1 -0
  27. package/dist/components/List/components/ListItem.vue.d.ts.map +1 -1
  28. package/dist/components/List/components/ListItem.vue_vue_type_script_setup_true_lang.js +95 -131
  29. package/dist/components/List/components/ListPageFrame.vue.d.ts +33 -0
  30. package/dist/components/List/components/ListPageFrame.vue.d.ts.map +1 -0
  31. package/dist/components/List/components/ListPageFrame.vue.js +4 -0
  32. package/dist/components/List/components/ListPageFrame.vue_vue_type_script_setup_true_lang.js +79 -0
  33. package/dist/components/{InfiniteList/components/InfiniteListHeaderPadding.vue.d.ts → List/components/ListPageFrameScope.vue.d.ts} +8 -7
  34. package/dist/components/List/components/ListPageFrameScope.vue.d.ts.map +1 -0
  35. package/dist/components/List/components/ListPageFrameScope.vue.js +4 -0
  36. package/dist/components/List/components/ListPageFrameScope.vue_vue_type_script_setup_true_lang.js +26 -0
  37. package/dist/components/{InfiniteList/components/InfiniteListHeaderHeight.vue.d.ts → List/components/ListPageSurface.vue.d.ts} +8 -6
  38. package/dist/components/List/components/ListPageSurface.vue.d.ts.map +1 -0
  39. package/dist/components/List/components/ListPageSurface.vue.js +4 -0
  40. package/dist/components/List/components/ListPageSurface.vue_vue_type_script_setup_true_lang.js +33 -0
  41. package/dist/components/List/components/ListToolbar.vue.d.ts.map +1 -1
  42. package/dist/components/List/components/ListToolbar.vue_vue_type_script_setup_true_lang.js +1 -1
  43. package/dist/components/List/models/injection.d.ts +28 -0
  44. package/dist/components/List/models/injection.d.ts.map +1 -0
  45. package/dist/components/List/models/injection.js +4 -0
  46. package/dist/components/List/use/useListConfig.d.ts.map +1 -1
  47. package/dist/components/List/use/useListConfig.js +7 -2
  48. package/dist/components/List/use/useStickyPath.d.ts +21 -0
  49. package/dist/components/List/use/useStickyPath.d.ts.map +1 -0
  50. package/dist/components/List/use/useStickyPath.js +84 -0
  51. package/dist/components/Modal/components/OverlayDropdown.vue.d.ts.map +1 -1
  52. package/dist/components/Modal/components/OverlayDropdown.vue_vue_type_script_setup_true_lang.js +1 -0
  53. package/dist/components/QueryStatus/WQueryStatus.vue.d.ts.map +1 -1
  54. package/dist/components/QueryStatus/WQueryStatus.vue_vue_type_script_setup_true_lang.js +9 -1
  55. package/dist/components/Surface/models/injection.d.ts +1 -6
  56. package/dist/components/Surface/models/injection.d.ts.map +1 -1
  57. package/dist/components/Surface/models/injection.js +1 -6
  58. package/dist/components/Tabs/WTabs.vue.d.ts +4 -0
  59. package/dist/components/Tabs/WTabs.vue.d.ts.map +1 -1
  60. package/dist/components/Tabs/WTabs.vue_vue_type_script_setup_true_lang.js +146 -129
  61. package/dist/components/Tabs/components/TabItem.vue.d.ts.map +1 -1
  62. package/dist/components/Tabs/components/TabItem.vue_vue_type_script_setup_true_lang.js +7 -1
  63. package/dist/components/Tooltip/components/TooltipContainer.vue_vue_type_script_setup_true_lang.js +1 -1
  64. package/docs/components/drag-container.md +1 -1
  65. package/docs/components/dropdown.md +5 -2
  66. package/docs/components/infinite-list.md +2 -0
  67. package/docs/components/list.md +6 -0
  68. package/docs/components/surface.md +1 -1
  69. package/docs/components/tabs.md +1 -0
  70. package/docs/llms.txt +1 -1
  71. package/docs/recipes/page-layout.md +1 -1
  72. package/package.json +1 -1
  73. package/tailwind-base/css/default.css +28 -0
  74. package/tailwind-base/css/internal-variables.css +5 -0
  75. package/tailwind-base/css/surfaces.css +189 -70
  76. package/tailwind-base/plugins/internal-classes.ts +8 -2
  77. package/dist/components/EmptyComponent/WEmptyComponent.vue_vue_type_script_setup_true_lang.js +0 -12
  78. package/dist/components/InfiniteList/components/InfiniteListHeaderHeight.vue.d.ts.map +0 -1
  79. package/dist/components/InfiniteList/components/InfiniteListHeaderHeight.vue.js +0 -4
  80. package/dist/components/InfiniteList/components/InfiniteListHeaderHeight.vue_vue_type_script_setup_true_lang.js +0 -68
  81. package/dist/components/InfiniteList/components/InfiniteListHeaderPadding.vue.d.ts.map +0 -1
  82. package/dist/components/InfiniteList/components/InfiniteListHeaderPadding.vue.js +0 -4
  83. package/dist/components/InfiniteList/components/InfiniteListHeaderPadding.vue_vue_type_script_setup_true_lang.js +0 -27
  84. package/dist/components/InfiniteList/components/InfiniteListScroll.vue.d.ts +0 -14
  85. package/dist/components/InfiniteList/components/InfiniteListScroll.vue.d.ts.map +0 -1
  86. package/dist/components/InfiniteList/components/InfiniteListScroll.vue.js +0 -10
  87. package/dist/components/List/components/ListCardAction.vue.d.ts +0 -27
  88. package/dist/components/List/components/ListCardAction.vue.d.ts.map +0 -1
  89. package/dist/components/List/components/ListCardAction.vue.js +0 -4
  90. package/dist/components/List/components/ListCardAction.vue_vue_type_script_setup_true_lang.js +0 -24
  91. package/dist/components/List/components/ListCardFieldItem.vue.d.ts +0 -42
  92. package/dist/components/List/components/ListCardFieldItem.vue.d.ts.map +0 -1
  93. package/dist/components/List/components/ListCardFieldItem.vue.js +0 -4
  94. package/dist/components/List/components/ListCardFieldItem.vue_vue_type_script_setup_true_lang.js +0 -73
  95. package/dist/components/List/components/ListCardFieldNestedArrayItems.vue.d.ts +0 -33
  96. package/dist/components/List/components/ListCardFieldNestedArrayItems.vue.d.ts.map +0 -1
  97. package/dist/components/List/components/ListCardFieldNestedArrayItems.vue.js +0 -4
  98. package/dist/components/List/components/ListCardFieldNestedArrayItems.vue_vue_type_script_setup_true_lang.js +0 -22
  99. package/dist/components/Surface/use/useSectionHead.d.ts +0 -12
  100. package/dist/components/Surface/use/useSectionHead.d.ts.map +0 -1
  101. package/dist/components/Surface/use/useSectionHead.js +0 -26
@@ -35,7 +35,7 @@ var DragItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
35
35
  return openBlock(), createElementBlock(Fragment, null, [renderSlot(_ctx.$slots, "default", mergeProps({ initDrag }, { container: {
36
36
  draggable: draggable.value,
37
37
  style: { order: __props.order + 1 },
38
- class: __props.disabled ? "opacity-50" : void 0,
38
+ class: __props.disabled ? "opacity-50" : isDragging.value ? "opacity-0 transition-opacity delay-100" : void 0,
39
39
  onDragend: !__props.disabled ? endDrag : void 0,
40
40
  onDragenter: !draggable.value ? () => _ctx.$emit("drag:enter", __props.order) : void 0,
41
41
  onDragstart: !__props.disabled ? startDrag : void 0,
@@ -49,7 +49,7 @@ var DragItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
49
49
  }, {
50
50
  default: withCtx(() => [isDragging.value ? (openBlock(), createElementBlock("div", {
51
51
  key: 0,
52
- class: "bg-(--w-drag-item-overlay,var(--w-surface)) pointer-events-none absolute z-1 size-full transition-opacity col-[1/2]",
52
+ class: "bg-(--w-drag-item-overlay,transparent) pointer-events-none absolute z-1 size-full transition-opacity col-[1/2]",
53
53
  style: normalizeStyle({ gridRow: `${__props.order + 1}/${__props.order + 2}` })
54
54
  }, null, 4)) : createCommentVNode("", true)]),
55
55
  _: 1
@@ -1,16 +1,13 @@
1
- type __VLS_Slots = {
1
+ import { DefineComponent } from 'vue';
2
+ type Slots = {
2
3
  /** Content rendered without a wrapping element. It gets no slot props. */
3
4
  default?: (props: {
4
5
  [key: string]: never;
5
6
  }) => void;
6
7
  };
7
- declare const __VLS_base: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
8
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
9
8
  declare const _default: typeof __VLS_export;
10
9
  export default _default;
11
- type __VLS_WithSlots<T, S> = T & {
12
- new (): {
13
- $slots: S;
14
- };
15
- };
10
+ declare const __VLS_export: DefineComponent & (new () => {
11
+ $slots: Slots;
12
+ });
16
13
  //# sourceMappingURL=WEmptyComponent.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WEmptyComponent.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/EmptyComponent/WEmptyComponent.vue"],"names":[],"mappings":"AAGA;AAeA,KAAK,WAAW,GAAG;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAC,KAAK,IAAI,CAAA;CAClD,CAAC;AAaF,QAAA,MAAM,UAAU,+QACd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"WEmptyComponent.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/EmptyComponent/WEmptyComponent.vue"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAC,eAAe,EAAsB,MAAM,KAAK,CAAA;AAE7D,KAAK,KAAK,GAAG;IACX,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAC,KAAK,IAAI,CAAA;CAClD,CAAA;wBAQoB,OAAO,YAAY;AAAxC,wBAAyC;AAQzC,QAAA,MAAM,YAAY,EAAiC,eAAe,GAAG,CAAC,UAAU;IAAC,MAAM,EAAE,KAAK,CAAA;CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import WEmptyComponent_vue_vue_type_script_setup_true_lang_default from "./WEmptyComponent.vue_vue_type_script_setup_true_lang.js";
1
+ import WEmptyComponent from "./WEmptyComponent.vue_vue_type_script_lang.js";
2
2
  // src/components/EmptyComponent/WEmptyComponent.vue
3
- var WEmptyComponent_default = WEmptyComponent_vue_vue_type_script_setup_true_lang_default;
3
+ var WEmptyComponent_default = WEmptyComponent;
4
4
  export { WEmptyComponent_default as default };
@@ -0,0 +1,4 @@
1
+ // src/components/EmptyComponent/WEmptyComponent.vue?vue&type=script&lang.ts
2
+ var WEmptyComponent = (_props, { slots }) => slots.default?.();
3
+ WEmptyComponent.inheritAttrs = false;
4
+ export { WEmptyComponent as default };
@@ -28,6 +28,8 @@ declare const __VLS_export: <Model extends number | string, Data extends Default
28
28
  pageStyle?: StyleValue;
29
29
  /** Number of pages kept rendered, 5 by default. Scrolling further drops pages at the other end, keeping their height as space. */
30
30
  maxPages?: number;
31
+ /** Keeps each item in its column of a `pageClass` grid with several columns, such as cards, when the list starts past the first page or drops a page at the top. Leave it off when every item spans the row, as the rows of a table: the columns are then not measured. */
32
+ keepColumns?: boolean;
31
33
  /** Refetches the pages in view every this many ms. */
32
34
  refetchInterval?: number | false;
33
35
  /** Options for every page query. */
@@ -1 +1 @@
1
- {"version":3,"file":"WInfiniteList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/InfiniteList/WInfiniteList.vue"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WInfiniteList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/InfiniteList/WInfiniteList.vue"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import WEmptyComponent_default from "../EmptyComponent/WEmptyComponent.vue.js";
2
- import { getPosition } from "../../utils/useSelected.js";
3
2
  import WInfiniteListWrapper_default from "./WInfiniteListWrapper.vue.js";
4
3
  import InfiniteListPages_default from "./components/InfiniteListPages.vue.js";
5
- import { computed, createBlock, createSlots, createVNode, defineComponent, guardReactiveProps, normalizeClass, normalizeProps, normalizeStyle, openBlock, renderSlot, resolveDynamicComponent, unref, useTemplateRef, withCtx } from "vue";
4
+ import { computed, createBlock, createSlots, createVNode, defineComponent, guardReactiveProps, normalizeClass, normalizeProps, normalizeStyle, openBlock, renderSlot, resolveDynamicComponent, useTemplateRef, withCtx } from "vue";
6
5
  // src/components/InfiniteList/WInfiniteList.vue?vue&type=script&setup=true&lang.ts
7
6
  var WInfiniteList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
7
  __name: "WInfiniteList",
@@ -28,6 +27,7 @@ var WInfiniteList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
28
27
  default: void 0
29
28
  },
30
29
  maxPages: { default: void 0 },
30
+ keepColumns: { type: Boolean },
31
31
  refetchInterval: {
32
32
  type: [Number, Boolean],
33
33
  default: void 0
@@ -79,6 +79,7 @@ var WInfiniteList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
79
79
  "page-class": __props.pageClass,
80
80
  "page-style": __props.pageStyle,
81
81
  "max-pages": __props.maxPages,
82
+ "keep-columns": __props.keepColumns,
82
83
  "refetch-interval": __props.refetchInterval,
83
84
  "query-options": __props.queryOptions,
84
85
  class: normalizeClass(_ctx.$attrs.class),
@@ -88,23 +89,7 @@ var WInfiniteList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
88
89
  "onUpdate:page": _cache[1] || (_cache[1] = ($event) => _ctx.$emit("update:page", $event)),
89
90
  "onUpdate:error": _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:error", $event))
90
91
  }, createSlots({
91
- default: withCtx(({ item, value, setter, skeleton, refetch, previous, next, first, last, resetting, page, index, results, intersecting }) => [renderSlot(_ctx.$slots, "default", {
92
- item,
93
- setter,
94
- skeleton,
95
- refetch,
96
- previous,
97
- next,
98
- first,
99
- last,
100
- resetting,
101
- page,
102
- index,
103
- position: unref(getPosition)(page, index, __props.pageLength),
104
- value,
105
- results,
106
- intersecting
107
- })]),
92
+ default: withCtx((scope) => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))]),
108
93
  _: 2
109
94
  }, [
110
95
  _ctx.$slots["pages-before"] ? {
@@ -137,6 +122,7 @@ var WInfiniteList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
137
122
  "page-class",
138
123
  "page-style",
139
124
  "max-pages",
125
+ "keep-columns",
140
126
  "refetch-interval",
141
127
  "query-options",
142
128
  "class",
@@ -5,6 +5,8 @@ type __VLS_Props = {
5
5
  initIsIntersecting?: boolean;
6
6
  /** Keeps the sticky header out of the app header bar's padding while scrolled. */
7
7
  noHeaderUpdate?: boolean;
8
+ /** Renders the header in place over the content: it neither sticks nor pads the app header bar. */
9
+ inPlace?: boolean;
8
10
  };
9
11
  type __VLS_Slots = {
10
12
  /** Content that sticks to the top while the page scrolls. `updateHeader` re-measures it right away. */
@@ -12,7 +14,9 @@ type __VLS_Slots = {
12
14
  /** The scrolling content. Gets the header's `headerHeight` and `headerTop`. */
13
15
  default: (props: InfiniteListHeaderScope) => VNode[];
14
16
  };
15
- declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
18
+ resetScroll: () => void;
19
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
20
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
21
  declare const _default: typeof __VLS_export;
18
22
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"WInfiniteListWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/InfiniteList/WInfiniteListWrapper.vue"],"names":[],"mappings":"AAsDA;AAqKA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEpD,OAAO,EAAC,KAAK,KAAK,EAA2E,MAAM,KAAK,CAAA;AAcxG,KAAK,WAAW,GAAG;IACjB,gIAAgI;IAChI,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAC;AAgFF,KAAK,WAAW,GAAG;IACjB,uGAAuG;IACvG,MAAM,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,EAAE,CAAA;IACnD,+EAA+E;IAC/E,OAAO,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,EAAE,CAAA;CACrD,CAAC;AA6HF,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"WInfiniteListWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/InfiniteList/WInfiniteListWrapper.vue"],"names":[],"mappings":"AAmDA;AAmRA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEpD,OAAO,EAAC,KAAK,KAAK,EAA0E,MAAM,KAAK,CAAA;AAYvG,KAAK,WAAW,GAAG;IACjB,gIAAgI;IAChI,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAC;AAkMF,KAAK,WAAW,GAAG;IACjB,uGAAuG;IACvG,MAAM,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,EAAE,CAAA;IACnD,+EAA+E;IAC/E,OAAO,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,EAAE,CAAA;CACrD,CAAC;AA8FF,QAAA,MAAM,UAAU;;oPAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1,11 +1,9 @@
1
- import { wIsModal } from "../Modal/models/injection.js";
2
- import { wSectionHeadHeight } from "../Surface/models/injection.js";
3
- import { getIsClientSide } from "../../utils/utils.js";
4
- import InfiniteListHeaderHeight_default from "./components/InfiniteListHeaderHeight.vue.js";
5
- import InfiniteListHeaderPadding_default from "./components/InfiniteListHeaderPadding.vue.js";
1
+ import { wListPageFrameHeader } from "../List/models/injection.js";
2
+ import { wIsModal, wModalHeaderHeight } from "../Modal/models/injection.js";
3
+ import { getIsClientSide, getScrollParent } from "../../utils/utils.js";
6
4
  import { wScrollingElement } from "./models/injection.js";
7
5
  import { useHeader } from "../HeaderBar/use/useHeader.js";
8
- import { Fragment, computed, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, guardReactiveProps, inject, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, watch, withCtx } from "vue";
6
+ import { Fragment, Teleport, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, guardReactiveProps, inject, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, unref, useTemplateRef, watch } from "vue";
9
7
  // src/components/InfiniteList/WInfiniteListWrapper.vue?vue&type=script&setup=true&lang.ts
10
8
  var _hoisted_1 = {
11
9
  ref: "indicator",
@@ -16,93 +14,177 @@ var WInfiniteListWrapper_vue_vue_type_script_setup_true_lang_default = /*@__PURE
16
14
  __name: "WInfiniteListWrapper",
17
15
  props: {
18
16
  initIsIntersecting: { type: Boolean },
19
- noHeaderUpdate: { type: Boolean }
17
+ noHeaderUpdate: { type: Boolean },
18
+ inPlace: { type: Boolean }
20
19
  },
21
- setup(__props) {
20
+ setup(__props, { expose: __expose }) {
22
21
  const props = __props;
23
22
  const isModal = inject(wIsModal, false);
24
- const isContained = isModal || inject(wScrollingElement, null) !== null;
25
- const isIntersecting = ref(props.initIsIntersecting ?? null);
23
+ const modalHeaderHeight = inject(wModalHeaderHeight, void 0);
24
+ const scrollingElement = inject(wScrollingElement, null);
25
+ const isContained = isModal || scrollingElement !== null;
26
+ const joined = isContained ? null : inject(wListPageFrameHeader, null);
27
+ provide(wListPageFrameHeader, null);
28
+ const { headerHeight: headerHeightLayout, updateHeaderPadding } = useHeader();
26
29
  const indicatorRef = useTemplateRef("indicator");
30
+ const headerRef = useTemplateRef("header");
31
+ const headerHeight = ref(0);
32
+ const headerTop = ref(0);
33
+ const stickyTop = ref(0);
34
+ const isIntersecting = ref(props.initIsIntersecting ?? null);
35
+ /** The header's sticky top on the page, which counts the gaps a theme keeps above it, not just the header bar. */
36
+ const getPageStickyTop = () => {
37
+ const top = headerRef.value ? parseFloat(getComputedStyle(headerRef.value).top) : NaN;
38
+ return Number.isNaN(top) ? headerHeightLayout.value : top;
39
+ };
40
+ const getTopOffset = () => {
41
+ if (modalHeaderHeight) return modalHeaderHeight.value;
42
+ if (scrollingElement) return 0;
43
+ return getPageStickyTop();
44
+ };
45
+ const updateHeaderTop = () => {
46
+ if (!headerRef.value) return;
47
+ stickyTop.value = getTopOffset();
48
+ const rect = headerRef.value.getBoundingClientRect();
49
+ headerTop.value = rect.top + (scrollingElement?.value?.scrollTop ?? document.scrollingElement?.scrollTop ?? 0) - stickyTop.value;
50
+ };
51
+ const updateHeader = () => {
52
+ if (!headerRef.value) return;
53
+ headerHeight.value = headerRef.value.getBoundingClientRect().height;
54
+ updateHeaderTop();
55
+ };
56
+ watch(() => modalHeaderHeight?.value ?? (scrollingElement ? 0 : headerHeightLayout.value), updateHeaderTop);
57
+ const stickyGap = ref(0);
58
+ const isPadding = () => !joined && !isContained && !props.noHeaderUpdate;
59
+ const updatePadding = () => {
60
+ if (!isPadding()) return;
61
+ const intersecting = props.inPlace || isSectionInView.value || isIntersecting.value;
62
+ if (intersecting === null) return;
63
+ const offset = indicatorRef.value?.closest(".w-list-page") ? 0 : stickyGap.value;
64
+ const height = headerHeight.value + offset;
65
+ updateHeaderPadding(!intersecting && height ? height : 0);
66
+ };
67
+ /**
68
+ * Whether the page list's section fits the screen below the header bar. Its frame then has no room to stick, so the
69
+ * section's top scrolls away above where a stuck header would draw it: the header scrolls along, as in a section.
70
+ */
71
+ const isSectionInView = ref(false);
72
+ const updateSectionInView = () => {
73
+ const page = indicatorRef.value?.closest(".w-list-page");
74
+ const surface = page?.querySelector(":scope > .w-list-page-surface");
75
+ const frame = page?.querySelector(":scope > .w-list-page-frame");
76
+ isSectionInView.value = !!surface && !!frame && getComputedStyle(frame).top !== "auto" && frame.getBoundingClientRect().height >= surface.getBoundingClientRect().height - 1;
77
+ };
78
+ watch(() => [
79
+ props.inPlace,
80
+ isIntersecting.value,
81
+ isSectionInView.value,
82
+ headerHeight.value,
83
+ stickyGap.value
84
+ ], updatePadding);
85
+ watch(() => props.noHeaderUpdate, (value) => {
86
+ if (value && !joined && !isContained) updateHeaderPadding(0);
87
+ });
27
88
  const observerCb = (entries) => {
28
89
  isIntersecting.value = entries.some((entry) => {
29
90
  if (entry.target === indicatorRef.value) return entry.isIntersecting || entry.boundingClientRect.top > window.innerHeight;
30
91
  });
31
92
  };
32
- let observer = null;
33
- let observerTop = null;
34
- const { headerHeight } = useHeader();
35
- const getStickyTop = () => {
36
- const header = isContained ? null : indicatorRef.value?.nextElementSibling;
37
- const top = header ? parseFloat(getComputedStyle(header).top) : NaN;
38
- return Number.isNaN(top) ? headerHeight.value : top;
39
- };
40
- const sectionHeadHeight = isContained ? null : inject(wSectionHeadHeight, null);
41
- const isPage = ref(false);
42
- const stickyGap = ref(0);
43
- const sectionHeadOffset = computed(() => isPage.value ? sectionHeadHeight?.value ?? 0 : stickyGap.value);
93
+ let intersectionObserver = null;
94
+ let intersectionObserverTop = null;
44
95
  const observe = () => {
45
96
  if (!indicatorRef.value) return;
46
- isPage.value = indicatorRef.value.closest(".w-list-page") !== null;
47
- const top = getStickyTop();
48
- stickyGap.value = isContained ? 0 : Math.max(0, top - headerHeight.value);
49
- if (observer && top === observerTop) return;
50
- observer?.disconnect();
51
- observerTop = top;
52
- observer = new IntersectionObserver(observerCb, {
97
+ const top = isContained ? headerHeightLayout.value : getPageStickyTop();
98
+ stickyGap.value = isContained ? 0 : Math.max(0, top - headerHeightLayout.value);
99
+ if (intersectionObserver && top === intersectionObserverTop) return;
100
+ intersectionObserver?.disconnect();
101
+ intersectionObserverTop = top;
102
+ intersectionObserver = new IntersectionObserver(observerCb, {
53
103
  root: null,
54
104
  rootMargin: `-${top}px 100% 100000px 0px`,
55
105
  threshold: 1
56
106
  });
57
- observer.observe(indicatorRef.value);
107
+ intersectionObserver.observe(indicatorRef.value);
108
+ };
109
+ const onResize = () => {
110
+ updateHeaderTop();
111
+ observe();
112
+ updateSectionInView();
58
113
  };
114
+ let resizeObserver = null;
115
+ let sectionObserver = null;
59
116
  onMounted(() => {
60
- if (!getIsClientSide()) return;
117
+ if (!getIsClientSide() || joined || !headerRef.value) return;
118
+ resizeObserver = new ResizeObserver((entries) => {
119
+ const entry = entries[0];
120
+ if (!entry) return;
121
+ headerHeight.value = entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height;
122
+ updateHeaderTop();
123
+ });
124
+ resizeObserver.observe(headerRef.value);
125
+ const page = indicatorRef.value?.closest(".w-list-page");
126
+ if (page && !isContained) {
127
+ sectionObserver = new ResizeObserver(updateSectionInView);
128
+ sectionObserver.observe(page);
129
+ }
61
130
  observe();
62
- window.addEventListener("resize", observe);
131
+ window.addEventListener("resize", onResize);
63
132
  });
64
- if (sectionHeadHeight) watch(sectionHeadHeight, observe, { flush: "post" });
65
133
  onBeforeUnmount(() => {
66
- window.removeEventListener("resize", observe);
67
- observer?.disconnect();
134
+ window.removeEventListener("resize", onResize);
135
+ resizeObserver?.disconnect();
136
+ sectionObserver?.disconnect();
137
+ intersectionObserver?.disconnect();
138
+ if (isPadding()) updateHeaderPadding(0);
68
139
  });
140
+ /**
141
+ * While the header is stuck, scrolls back to where it stops sticking, such as before other content opens under it. The
142
+ * indicator stays where the header is in the flow, so how far it is above the stuck header is how far the content is scrolled.
143
+ */
144
+ const resetScroll = () => {
145
+ if (!indicatorRef.value || !headerRef.value) return;
146
+ const delta = indicatorRef.value.getBoundingClientRect().top - headerRef.value.getBoundingClientRect().top;
147
+ if (delta < 0) (scrollingElement?.value ?? getScrollParent(indicatorRef.value) ?? document.scrollingElement)?.scrollBy({
148
+ top: delta,
149
+ behavior: "instant"
150
+ });
151
+ };
152
+ __expose({ resetScroll });
69
153
  return (_ctx, _cache) => {
70
- return openBlock(), createElementBlock(Fragment, null, [createElementVNode("div", _hoisted_1, null, 512), createVNode(InfiniteListHeaderHeight_default, {
71
- "is-intersecting": isIntersecting.value,
72
- class: normalizeClass(["sticky print:hidden", {
73
- "top-(--w-header-inner)": !unref(isContained),
74
- "w-infinite-list-header": !unref(isContained) && !__props.noHeaderUpdate,
75
- "w-infinite-list-header-stuck": !unref(isContained) && !__props.noHeaderUpdate && isIntersecting.value === false,
76
- "top-0 not-empty:pt-(--w-list-contained-top,0.75rem)": unref(isContained) && !unref(isModal),
77
- "top---modal-header-height": unref(isModal),
78
- "bg-surface": __props.noHeaderUpdate || unref(isContained)
79
- }]),
80
- style: normalizeStyle({ zIndex: isIntersecting.value ? unref(2) : unref(20) })
81
- }, createSlots({
82
- default: withCtx((scope) => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))]),
83
- _: 2
84
- }, [unref(isContained) || __props.noHeaderUpdate ? {
85
- name: "header",
86
- fn: withCtx((scope) => [renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))]),
87
- key: "0"
88
- } : {
89
- name: "header",
90
- fn: withCtx((scope) => [createElementVNode("div", {
154
+ return unref(joined) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [unref(joined).target.value ? (openBlock(), createBlock(Teleport, {
155
+ key: 0,
156
+ to: unref(joined).target.value
157
+ }, [renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(unref(joined).scope)))], 8, ["to"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(joined).scope)))], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
158
+ createElementVNode("div", _hoisted_1, null, 512),
159
+ createElementVNode("div", {
160
+ ref: "header",
161
+ class: normalizeClass(["print:hidden", __props.inPlace ? void 0 : {
162
+ "sticky": !isSectionInView.value,
163
+ "top-(--w-header-inner)": !unref(isContained),
164
+ "w-infinite-list-header": !unref(isContained) && !__props.noHeaderUpdate,
165
+ "w-infinite-list-header-stuck": !unref(isContained) && !__props.noHeaderUpdate && !isSectionInView.value && isIntersecting.value === false,
166
+ "top-0 not-empty:pt-(--w-list-contained-top,0.75rem)": unref(isContained) && !unref(isModal),
167
+ "top---modal-header-height": unref(isModal),
168
+ "bg-surface": __props.noHeaderUpdate || unref(isContained)
169
+ }]),
170
+ style: normalizeStyle(__props.inPlace ? void 0 : { zIndex: isIntersecting.value ? unref(2) : unref(20) })
171
+ }, [!__props.inPlace && !unref(isContained) && !__props.noHeaderUpdate ? (openBlock(), createElementBlock("div", {
172
+ key: 0,
91
173
  class: "w-infinite-list-header-edge",
92
- style: normalizeStyle({ "--w-list-header-height": scope.headerHeight + "px" })
93
- }, null, 4), createVNode(InfiniteListHeaderPadding_default, {
94
- "is-intersecting": isIntersecting.value,
95
- "header-height": scope.headerHeight + sectionHeadOffset.value
96
- }, {
97
- default: withCtx(() => [renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))]),
98
- _: 2
99
- }, 1032, ["is-intersecting", "header-height"])]),
100
- key: "1"
101
- }]), 1032, [
102
- "is-intersecting",
103
- "class",
104
- "style"
105
- ])], 64);
174
+ style: normalizeStyle({ "--w-list-header-height": headerHeight.value + "px" })
175
+ }, null, 4)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps({
176
+ headerTop: headerTop.value,
177
+ headerHeight: headerHeight.value,
178
+ stickyTop: stickyTop.value,
179
+ updateHeader
180
+ })))], 6),
181
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
182
+ headerTop: headerTop.value,
183
+ headerHeight: headerHeight.value,
184
+ stickyTop: stickyTop.value,
185
+ updateHeader
186
+ })))
187
+ ], 64));
106
188
  };
107
189
  }
108
190
  });
@@ -1,3 +1,4 @@
1
+ import { InfiniteListItemScope } from '../types';
1
2
  import { DefaultQueryOptions } from '../../../utils/useDefaultQuery';
2
3
  import { Ref } from 'vue';
3
4
  import { ApiError } from '../../../utils/api';
@@ -14,6 +15,8 @@ declare const __VLS_export: <Model extends number | string, Data extends Default
14
15
  refetchInterval?: number | false;
15
16
  queryOptions?: DefaultQueryOptions<PaginatedResponse<Data>>;
16
17
  enabled?: boolean;
18
+ /** Page size the list asks for, for the `position` of an item in the whole list. */
19
+ pageLength: number;
17
20
  valueGetter: (data: Data) => Model;
18
21
  } & {
19
22
  onRefetch?: (() => any) | undefined;
@@ -23,7 +26,6 @@ declare const __VLS_export: <Model extends number | string, Data extends Default
23
26
  "onUpdate:next-page"?: ((value: number | null) => any) | undefined;
24
27
  "onUpdate:previous-page"?: ((value: number | null) => any) | undefined;
25
28
  "onRemove:page"?: ((value: number) => any) | undefined;
26
- "onUpdate:selected"?: ((values: Model[]) => any) | undefined;
27
29
  onFetched?: (() => any) | undefined;
28
30
  "onUpdate:error"?: ((value: ApiError<{}, {
29
31
  detail?: string | undefined;
@@ -43,20 +45,7 @@ declare const __VLS_export: <Model extends number | string, Data extends Default
43
45
  }>) => void;
44
46
  attrs: any;
45
47
  slots: {
46
- default?: (props: {
47
- item: Data;
48
- setter: (newItem?: Data | undefined) => void;
49
- skeleton: boolean;
50
- refetch: () => void;
51
- previous?: Data;
52
- next?: Data;
53
- first: boolean;
54
- last: boolean;
55
- page: number;
56
- index: number;
57
- results: Data[] | undefined;
58
- intersecting: boolean;
59
- }) => void;
48
+ default?: (props: Omit<InfiniteListItemScope<Data, Model>, "resetting">) => void;
60
49
  empty?: () => void;
61
50
  error?: (props: {
62
51
  error: Error;
@@ -72,7 +61,6 @@ declare const __VLS_export: <Model extends number | string, Data extends Default
72
61
  (e: "update:previous-page", value: number | null): void;
73
62
  (e: "remove:page", value: number): void;
74
63
  (e: "refetch"): void;
75
- (e: "update:selected", values: Model[]): void;
76
64
  (e: "fetched"): void;
77
65
  (e: "update:error", value: ApiError): void;
78
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InfiniteListPage.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/InfiniteList/components/InfiniteListPage.vue"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InfiniteListPage.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/InfiniteList/components/InfiniteListPage.vue"],"names":[],"mappings":"AAuEA;AAqbA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAC,KAAK,GAAG,EAA2F,MAAM,KAAK,CAAA;AAKtH,OAAO,EAAC,QAAQ,EAAiB,MAAM,aAAa,CAAA;AAUpD,QAAA,MAAM,YAAY,GAAK,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,SAAS,WAAW,EAAE,WAAW,EAC1F,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAyiBO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;qBAviBvC,WAAW;oBACZ,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;wBACjD,MAAM;mBACX,OAAO;kBACR,OAAO;qBACJ,OAAO;oBACR,OAAO;oBACP,MAAM;0BACA,MAAM,GAAG,KAAK;uBACjB,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;kBACjD,OAAO;QACjB,oFAAoF;oBACxE,MAAM;qBAEL,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK;;;;;;;;;;;;;;KAyhBqD,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB;2BAhZzB,OAAO,EAAE;;;;2BAwEP,MAAM,aAAY,cAAc;;;MAwUa,KAAK,IAAI;WACxE,GAAG;;kBApNC,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI;gBACxE,MAAM,IAAI;gBACV,CAAC,KAAK,EAAE;YAAC,KAAK,EAAE,KAAK,CAAC;YAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAC,KAAK,IAAI;;;YA5TpF,cAAc,SAAS,MAAM,GAAG,IAAI;YACpC,oBAAoB,SAAS,MAAM,GAAG,IAAI;YAC1C,kBAAkB,SAAS,MAAM,GAAG,IAAI;YACxC,kBAAkB,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI;YAC/C,sBAAsB,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI;YACnD,aAAa,SAAS,MAAM,GAAG,IAAI;YACnC,SAAS,GAAG,IAAI;YAChB,SAAS,GAAG,IAAI;YAChB,cAAc,SAAS,QAAQ,GAAG,IAAI;;EA0gBxC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAA;CAAI,CAAC;wBACpE,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}