sard 1.0.8 → 1.0.9
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.
- package/components/back-top/back-top.d.ts +1 -1
- package/components/infinite-list/index.css +1 -1
- package/components/infinite-list/infinite-list.js +4 -10
- package/components/load-more/useLoadMore.d.ts +1 -1
- package/components/pull-down-refresh/common.d.ts +0 -1
- package/components/pull-down-refresh/index.css +1 -1
- package/components/pull-down-refresh/pull-down-refresh.js +14 -9
- package/index.css +1 -1
- package/index.js +2 -2
- package/package.json +1 -1
- package/use/useIntersectionObserver.d.ts +2 -2
- package/use/useIntersectionObserver.js +5 -1
- package/use/useScrollParent.d.ts +5 -0
- package/use/useScrollParent.js +25 -0
- package/utils/dom.d.ts +2 -0
- package/utils/dom.js +5 -1
- package/utils/index.js +2 -2
|
@@ -5,9 +5,9 @@ declare const __VLS_base: import("vue").DefineComponent<BackTopProps, {}, {}, {}
|
|
|
5
5
|
}, string, import("vue").PublicProps, Readonly<BackTopProps> & Readonly<{
|
|
6
6
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
7
7
|
}>, {
|
|
8
|
+
scrollTop: number;
|
|
8
9
|
right: string;
|
|
9
10
|
bottom: string;
|
|
10
|
-
scrollTop: number;
|
|
11
11
|
visibleHeight: number;
|
|
12
12
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
13
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.s-infinite-list
|
|
1
|
+
.s-infinite-list .s-pull-down-refresh{min-height:100%}.s-infinite-list__load-more:is(.is-hidden){height:0;overflow:hidden;visibility:hidden;pointer-events:none}
|
|
@@ -2,6 +2,7 @@ import { createBem } from "../../utils/bem.js";
|
|
|
2
2
|
import loading_default from "../loading/loading.js";
|
|
3
3
|
import { useTranslateWithPrefix } from "../../locale/index.js";
|
|
4
4
|
import { defaultInfiniteListProps } from "./common.js";
|
|
5
|
+
import { useScrollParent } from "../../use/useScrollParent.js";
|
|
5
6
|
import pull_down_refresh_default from "../pull-down-refresh/pull-down-refresh.js";
|
|
6
7
|
import load_more_default from "../load-more/load-more.js";
|
|
7
8
|
import { useLoadMore } from "../load-more/useLoadMore.js";
|
|
@@ -38,11 +39,6 @@ var infinite_list_default = /*@__PURE__*/ defineComponent({
|
|
|
38
39
|
const bem = createBem("infinite-list");
|
|
39
40
|
const { t } = useTranslateWithPrefix("pullDownRefresh");
|
|
40
41
|
const doneText = ref("");
|
|
41
|
-
const scrollRef = useTemplateRef("scroll");
|
|
42
|
-
const pullDownRefresh = useTemplateRef("pull-down-refresh");
|
|
43
|
-
const onScroll = () => {
|
|
44
|
-
pullDownRefresh.value?.enableToRefresh(scrollRef.value.scrollTop === 0);
|
|
45
|
-
};
|
|
46
42
|
const onRefresh = () => {
|
|
47
43
|
refresh().then(() => {
|
|
48
44
|
doneText.value = t("doneSuccess");
|
|
@@ -53,7 +49,7 @@ var infinite_list_default = /*@__PURE__*/ defineComponent({
|
|
|
53
49
|
});
|
|
54
50
|
};
|
|
55
51
|
const { status, isLoading, isRefreshing, onLoadMore, onReload, refresh } = useLoadMore({
|
|
56
|
-
root:
|
|
52
|
+
root: useScrollParent(useTemplateRef("scroll")),
|
|
57
53
|
target: useTemplateRef("load-more"),
|
|
58
54
|
rootMargin: () => props.rootMargin,
|
|
59
55
|
request: async (page, isRefresh) => {
|
|
@@ -64,10 +60,8 @@ var infinite_list_default = /*@__PURE__*/ defineComponent({
|
|
|
64
60
|
return (_ctx, _cache) => {
|
|
65
61
|
return openBlock(), createElementBlock("div", {
|
|
66
62
|
ref: "scroll",
|
|
67
|
-
class: normalizeClass(unref(bem).b())
|
|
68
|
-
onScroll
|
|
63
|
+
class: normalizeClass(unref(bem).b())
|
|
69
64
|
}, [createVNode(pull_down_refresh_default, {
|
|
70
|
-
ref: "pull-down-refresh",
|
|
71
65
|
loading: unref(isRefreshing),
|
|
72
66
|
disabled: !__props.refreshable || unref(isLoading),
|
|
73
67
|
"done-duration": __props.doneDuration,
|
|
@@ -118,7 +112,7 @@ var infinite_list_default = /*@__PURE__*/ defineComponent({
|
|
|
118
112
|
"loading",
|
|
119
113
|
"disabled",
|
|
120
114
|
"done-duration"
|
|
121
|
-
])],
|
|
115
|
+
])], 2);
|
|
122
116
|
};
|
|
123
117
|
}
|
|
124
118
|
});
|
|
@@ -6,7 +6,7 @@ import type { LoadMoreStatus } from './common';
|
|
|
6
6
|
export interface UseLoadMoreOptions {
|
|
7
7
|
request: (page: number, isRefresh: boolean) => Promise<boolean>;
|
|
8
8
|
rootMargin?: MaybeRefOrGetter<string>;
|
|
9
|
-
root?: MaybeRefOrGetter<Element | Document | null>;
|
|
9
|
+
root?: MaybeRefOrGetter<Element | Document | Window | null | undefined>;
|
|
10
10
|
target?: MaybeRefOrGetter<Element | null>;
|
|
11
11
|
disabled?: MaybeRefOrGetter<boolean>;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--s-pull-down-refresh-header-font-size:var(--s-font-size-sm);--s-pull-down-refresh-header-color:var(--s-text-color-tertiary);--s-pull-down-refresh-loading-font-size:18px}.s-pull-down-refresh{transition-property:transform}.s-pull-down-refresh__header{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:center;align-items:center;transform:translateY(-100%);font-size:var(--s-pull-down-refresh-header-font-size);color:var(--s-pull-down-refresh-header-color)}.s-pull-down-refresh__loading{font-size:var(--s-pull-down-refresh-loading-font-size)}
|
|
1
|
+
:root{--s-pull-down-refresh-header-font-size:var(--s-font-size-sm);--s-pull-down-refresh-header-color:var(--s-text-color-tertiary);--s-pull-down-refresh-loading-font-size:18px}.s-pull-down-refresh{display:flex;flex-direction:column;overflow:hidden}.s-pull-down-refresh__gesture{min-height:100%;flex-grow:1;transition-property:transform}.s-pull-down-refresh__header{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:center;align-items:center;transform:translateY(-100%);font-size:var(--s-pull-down-refresh-header-font-size);color:var(--s-pull-down-refresh-header-color)}.s-pull-down-refresh__loading{font-size:var(--s-pull-down-refresh-loading-font-size)}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createBem } from "../../utils/bem.js";
|
|
2
|
+
import { getScrollTop } from "../../utils/dom.js";
|
|
2
3
|
import { useTimeout } from "../../use/useTimeout.js";
|
|
3
4
|
import { usePointerDown } from "../../use/usePointerDown.js";
|
|
4
5
|
import loading_default from "../loading/loading.js";
|
|
5
6
|
import { defaultPullDownRefreshProps } from "./common.js";
|
|
6
|
-
import {
|
|
7
|
+
import { useScrollParent } from "../../use/useScrollParent.js";
|
|
8
|
+
import { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeDefaults, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, watch } from "vue";
|
|
7
9
|
//#region packages/sard/components/pull-down-refresh/pull-down-refresh.vue
|
|
8
10
|
var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
9
11
|
__name: "pull-down-refresh",
|
|
@@ -38,6 +40,7 @@ var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
|
38
40
|
const props = __props;
|
|
39
41
|
const emit = __emit;
|
|
40
42
|
const bem = createBem("pull-down-refresh");
|
|
43
|
+
const scrollParent = useScrollParent(useTemplateRef("root"));
|
|
41
44
|
const status = ref("initial");
|
|
42
45
|
const translateY = ref(0);
|
|
43
46
|
const progress = computed(() => {
|
|
@@ -76,8 +79,11 @@ var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
|
76
79
|
let movable = false;
|
|
77
80
|
let lockDirection = "";
|
|
78
81
|
const isDragging = ref(false);
|
|
82
|
+
const checkScrollTop = () => {
|
|
83
|
+
return getScrollTop(scrollParent.value) === 0;
|
|
84
|
+
};
|
|
79
85
|
const onTouchStart = (event) => {
|
|
80
|
-
if (props.disabled || status.value !== "initial" || !
|
|
86
|
+
if (props.disabled || status.value !== "initial" || !checkScrollTop()) return;
|
|
81
87
|
startX = event.touches[0].clientX;
|
|
82
88
|
startY = event.touches[0].clientY;
|
|
83
89
|
movable = true;
|
|
@@ -111,10 +117,6 @@ var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
|
111
117
|
}
|
|
112
118
|
};
|
|
113
119
|
const onPointerDown = usePointerDown(onTouchStart, onTouchMove, onTouchEnd);
|
|
114
|
-
const canRefresh = ref(true);
|
|
115
|
-
const enableToRefresh = (can) => {
|
|
116
|
-
canRefresh.value = can;
|
|
117
|
-
};
|
|
118
120
|
const pullDownRefreshStyle = computed(() => {
|
|
119
121
|
return {
|
|
120
122
|
transform: `translate3d(0,${translateY.value}px,0)`,
|
|
@@ -124,10 +126,13 @@ var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
|
124
126
|
const headerStyle = computed(() => {
|
|
125
127
|
return { height: props.headerHeight + "px" };
|
|
126
128
|
});
|
|
127
|
-
__expose({
|
|
129
|
+
__expose({});
|
|
128
130
|
return (_ctx, _cache) => {
|
|
129
131
|
return openBlock(), createElementBlock("div", {
|
|
130
|
-
|
|
132
|
+
ref: "root",
|
|
133
|
+
class: normalizeClass(unref(bem).b())
|
|
134
|
+
}, [createElementVNode("div", {
|
|
135
|
+
class: normalizeClass(unref(bem).e("gesture")),
|
|
131
136
|
style: normalizeStyle(pullDownRefreshStyle.value),
|
|
132
137
|
onTouchstart: onTouchStart,
|
|
133
138
|
onTouchmove: onTouchMove,
|
|
@@ -152,7 +157,7 @@ var pull_down_refresh_default = /*@__PURE__*/ defineComponent({
|
|
|
152
157
|
}, null, 8, ["class"])]) : status.value === "loading" ? renderSlot(_ctx.$slots, "loading", { key: 2 }, () => [createVNode(loading_default, {
|
|
153
158
|
type: "clock",
|
|
154
159
|
class: normalizeClass(unref(bem).e("loading"))
|
|
155
|
-
}, null, 8, ["class"])]) : status.value === "done" ? renderSlot(_ctx.$slots, "done", { key: 3 }) : createCommentVNode("v-if", true)], 6), renderSlot(_ctx.$slots, "default")], 38);
|
|
160
|
+
}, null, 8, ["class"])]) : status.value === "done" ? renderSlot(_ctx.$slots, "done", { key: 3 }) : createCommentVNode("v-if", true)], 6), renderSlot(_ctx.$slots, "default")], 38)], 2);
|
|
156
161
|
};
|
|
157
162
|
}
|
|
158
163
|
});
|