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.
@@ -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{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.s-infinite-list .s-pull-down-refresh{display:flex;flex-direction:column;min-height:100%}.s-infinite-list__load-more:is(.is-hidden){height:1px;overflow:hidden;visibility:hidden;pointer-events:none}
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: scrollRef,
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
- ])], 34);
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
  }
@@ -22,5 +22,4 @@ export interface PullDownRefreshEmits {
22
22
  (e: 'refresh'): void;
23
23
  }
24
24
  export interface PullDownRefreshExpose {
25
- enableToRefresh: (canRefresh: boolean) => void;
26
25
  }
@@ -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 { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeDefaults, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderSlot, unref, watch } from "vue";
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" || !canRefresh.value) return;
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({ enableToRefresh });
129
+ __expose({});
128
130
  return (_ctx, _cache) => {
129
131
  return openBlock(), createElementBlock("div", {
130
- class: normalizeClass(unref(bem).b()),
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
  });