@tarojs/components-advanced 4.0.0-alpha.2 → 4.0.0-alpha.5

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 (64) hide show
  1. package/LICENSE +1 -8
  2. package/dist/components/index.d.ts +2 -2
  3. package/dist/components/virtual-list/constants.d.ts +1 -2
  4. package/dist/components/virtual-list/dom-helpers.d.ts +1 -2
  5. package/dist/components/virtual-list/dom-helpers.js.map +1 -1
  6. package/dist/components/virtual-list/index.d.ts +9 -17
  7. package/dist/components/virtual-list/index.js.map +1 -1
  8. package/dist/components/virtual-list/list-set.d.ts +3 -3
  9. package/dist/components/virtual-list/list-set.js.map +1 -1
  10. package/dist/components/virtual-list/preset.d.ts +10 -10
  11. package/dist/components/virtual-list/preset.js.map +1 -1
  12. package/dist/components/virtual-list/react/index.d.ts +2 -2
  13. package/dist/components/virtual-list/react/index.js +2 -1
  14. package/dist/components/virtual-list/react/index.js.map +1 -1
  15. package/dist/components/virtual-list/react/list.d.ts +5 -10
  16. package/dist/components/virtual-list/react/list.js +2 -2
  17. package/dist/components/virtual-list/react/list.js.map +1 -1
  18. package/dist/components/virtual-list/react/validate.d.ts +3 -4
  19. package/dist/components/virtual-list/react/validate.js.map +1 -1
  20. package/dist/components/virtual-list/react/wrapper.d.ts +1 -1
  21. package/dist/components/virtual-list/react/wrapper.js.map +1 -1
  22. package/dist/components/virtual-list/utils.d.ts +3 -3
  23. package/dist/components/virtual-list/vue/index.d.ts +6 -6
  24. package/dist/components/virtual-list/vue/list.d.ts +24 -3
  25. package/dist/components/virtual-list/vue/list.js +8 -4
  26. package/dist/components/virtual-list/vue/list.js.map +1 -1
  27. package/dist/components/virtual-waterfall/constants.d.ts +1 -2
  28. package/dist/components/virtual-waterfall/index.d.ts +9 -17
  29. package/dist/components/virtual-waterfall/index.js +1 -1
  30. package/dist/components/virtual-waterfall/index.js.map +1 -1
  31. package/dist/components/virtual-waterfall/list-map.d.ts +3 -4
  32. package/dist/components/virtual-waterfall/list-map.js.map +1 -1
  33. package/dist/components/virtual-waterfall/preset.d.ts +10 -10
  34. package/dist/components/virtual-waterfall/preset.js.map +1 -1
  35. package/dist/components/virtual-waterfall/react/index.d.ts +2 -2
  36. package/dist/components/virtual-waterfall/react/index.js +3 -2
  37. package/dist/components/virtual-waterfall/react/index.js.map +1 -1
  38. package/dist/components/virtual-waterfall/react/waterfall.d.ts +4 -9
  39. package/dist/components/virtual-waterfall/react/waterfall.js +2 -2
  40. package/dist/components/virtual-waterfall/react/waterfall.js.map +1 -1
  41. package/dist/components/virtual-waterfall/react/wrapper.d.ts +1 -1
  42. package/dist/components/virtual-waterfall/react/wrapper.js.map +1 -1
  43. package/dist/components/virtual-waterfall/vue/index.d.ts +6 -6
  44. package/dist/components/virtual-waterfall/vue/waterfall.d.ts +24 -3
  45. package/dist/components/virtual-waterfall/vue/waterfall.js +8 -4
  46. package/dist/components/virtual-waterfall/vue/waterfall.js.map +1 -1
  47. package/dist/index.d.ts +2 -2
  48. package/dist/utils/convert.d.ts +2 -3
  49. package/dist/utils/convert.js.map +1 -1
  50. package/dist/utils/dom.d.ts +3 -4
  51. package/dist/utils/dom.js.map +1 -1
  52. package/dist/utils/helper.d.ts +2 -3
  53. package/dist/utils/helper.js.map +1 -1
  54. package/dist/utils/index.d.ts +6 -6
  55. package/dist/utils/lodash.d.ts +3 -4
  56. package/dist/utils/lodash.js.map +1 -1
  57. package/dist/utils/math.d.ts +2 -3
  58. package/dist/utils/math.js.map +1 -1
  59. package/dist/utils/timer.d.ts +3 -3
  60. package/dist/utils/timer.js.map +1 -1
  61. package/dist/utils/vue-render.d.ts +1 -2
  62. package/dist/utils/vue-render.js +9 -10
  63. package/dist/utils/vue-render.js.map +1 -1
  64. package/package.json +11 -24
@@ -1,4 +1,3 @@
1
- import { IProps } from "../preset.js";
2
- import { IState } from "./list.js";
3
- declare const validateListProps: ({ item, direction, layout, itemTagName, innerTagName, outerTagName, itemSize }: IProps, { instance, }: IState) => any;
4
- export { validateListProps };
1
+ import type { IProps } from '../preset';
2
+ import type { IState } from './list';
3
+ export declare const validateListProps: ({ item, direction, layout, itemTagName, innerTagName, outerTagName, itemSize }: IProps, { instance, }: IState) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sources":["../../../../src/components/virtual-list/react/validate.ts"],"sourcesContent":["import type { IProps } from '../preset'\nimport type { IState } from './list'\n\nlet devWarningsDirection = null\nlet devWarningsTagName = null\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /* #__PURE__ */ new WeakSet()\n devWarningsTagName = /* #__PURE__ */ new WeakSet()\n }\n}\n\nexport const validateListProps = ({\n item,\n direction,\n layout,\n itemTagName,\n innerTagName,\n outerTagName,\n itemSize\n}: IProps, {\n instance,\n}: IState) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!['number', 'function'].includes(typeof itemSize)) {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number or function. ' + `\"${itemSize === null ? 'null' : typeof itemSize}\" was specified.`)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null || itemTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance)\n console.warn('The itemTagName、innerTagName and outerTagName props have been deprecated. ' + 'Please use the itemElementType、innerElementType and outerElementType props instead.')\n }\n }\n\n switch (direction as string) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance)\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.')\n }\n\n break\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + `\"${direction}\" was specified.`)\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + `\"${layout}\" was specified.`)\n }\n\n if (item == null) {\n throw Error('An invalid \"item\" prop has been specified. ' + 'Value should be a React component. ' + `\"${item === null ? 'null' : typeof item}\" was specified.`)\n }\n\n // if (isHorizontal && typeof width !== 'number') {\n // throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + `\"${width === null ? 'null' : typeof width}\" was specified.`)\n // } else if (!isHorizontal && typeof height !== 'number') {\n // throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + `\"${height === null ? 'null' : typeof height}\" was specified.`)\n // }\n }\n\n return null\n}\n"],"names":[],"mappings":"AAGA,IAAI,oBAAoB,GAAG,IAAI,CAAA;AAC/B,IAAI,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;AAC1E,QAAA,oBAAoB,mBAAmB,IAAI,OAAO,EAAE,CAAA;AACpD,QAAA,kBAAkB,mBAAmB,IAAI,OAAO,EAAE,CAAA;AACnD,KAAA;AACF,CAAA;AAEY,MAAA,iBAAiB,GAAG,CAAC,EAChC,IAAI,EACJ,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACD,EAAE,EACT,QAAQ,GACD,KAAI;AACX,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,QAAQ,CAAC,EAAE;YACrD,MAAM,KAAK,CAAC,iDAAiD,GAAG,wCAAwC,GAAG,CAAA,CAAA,EAAI,QAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAkB,gBAAA,CAAA,CAAC,CAAA;AAC/K,SAAA;AACF,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;YACvE,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC3D,gBAAA,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAChC,gBAAA,OAAO,CAAC,IAAI,CAAC,4EAA4E,GAAG,qFAAqF,CAAC,CAAA;AACnL,aAAA;AACF,SAAA;AAED,QAAA,QAAQ,SAAmB;AACzB,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,UAAU;gBACb,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC/D,oBAAA,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAClC,oBAAA,OAAO,CAAC,IAAI,CAAC,gEAAgE,GAAG,yFAAyF,CAAC,CAAA;AAC3K,iBAAA;gBAED,MAAK;AAEP,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,KAAK,KAAK;;gBAER,MAAK;AAEP,YAAA;gBACE,MAAM,KAAK,CAAC,kDAAkD,GAAG,yCAAyC,GAAG,CAAI,CAAA,EAAA,SAAS,CAAkB,gBAAA,CAAA,CAAC,CAAA;AAChJ,SAAA;AAED,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,UAAU;;gBAEb,MAAK;AAEP,YAAA;gBACE,MAAM,KAAK,CAAC,+CAA+C,GAAG,qDAAqD,GAAG,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAA;AACtJ,SAAA;QAED,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,KAAK,CAAC,6CAA6C,GAAG,qCAAqC,GAAG,CAAA,CAAA,EAAI,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,OAAO,IAAI,CAAkB,gBAAA,CAAA,CAAC,CAAA;AAChK,SAAA;;;;;;AAOF,KAAA;AAED,IAAA,OAAO,IAAI,CAAA;AACb;;;;"}
1
+ {"version":3,"file":"validate.js","sources":["../../../../src/components/virtual-list/react/validate.ts"],"sourcesContent":["import type { IProps } from '../preset'\nimport type { IState } from './list'\n\nlet devWarningsDirection = null\nlet devWarningsTagName = null\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /* #__PURE__ */ new WeakSet()\n devWarningsTagName = /* #__PURE__ */ new WeakSet()\n }\n}\n\nexport const validateListProps = ({\n item,\n direction,\n layout,\n itemTagName,\n innerTagName,\n outerTagName,\n itemSize\n}: IProps, {\n instance,\n}: IState) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!['number', 'function'].includes(typeof itemSize)) {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number or function. ' + `\"${itemSize === null ? 'null' : typeof itemSize}\" was specified.`)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null || itemTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance)\n console.warn('The itemTagName、innerTagName and outerTagName props have been deprecated. ' + 'Please use the itemElementType、innerElementType and outerElementType props instead.')\n }\n }\n\n switch (direction as string) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance)\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.')\n }\n\n break\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + `\"${direction}\" was specified.`)\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + `\"${layout}\" was specified.`)\n }\n\n if (item == null) {\n throw Error('An invalid \"item\" prop has been specified. ' + 'Value should be a React component. ' + `\"${item === null ? 'null' : typeof item}\" was specified.`)\n }\n\n // if (isHorizontal && typeof width !== 'number') {\n // throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + `\"${width === null ? 'null' : typeof width}\" was specified.`)\n // } else if (!isHorizontal && typeof height !== 'number') {\n // throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + `\"${height === null ? 'null' : typeof height}\" was specified.`)\n // }\n }\n\n return null\n}\n"],"names":[],"mappings":"AAGA,IAAI,oBAAoB,GAAG,IAAI,CAAA;AAC/B,IAAI,kBAAkB,GAAG,IAAI,CAAA;AAE7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;AAC1E,QAAA,oBAAoB,mBAAmB,IAAI,OAAO,EAAE,CAAA;AACpD,QAAA,kBAAkB,mBAAmB,IAAI,OAAO,EAAE,CAAA;KACnD;AACH,CAAC;AAEY,MAAA,iBAAiB,GAAG,CAAC,EAChC,IAAI,EACJ,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACD,EAAE,EACT,QAAQ,GACD,KAAI;IACX,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,QAAQ,CAAC,EAAE;YACrD,MAAM,KAAK,CAAC,iDAAiD,GAAG,wCAAwC,GAAG,CAAA,CAAA,EAAI,QAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAkB,gBAAA,CAAA,CAAC,CAAA;SAC/K;KACF;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,QAAA,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;YACvE,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC3D,gBAAA,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAChC,gBAAA,OAAO,CAAC,IAAI,CAAC,4EAA4E,GAAG,qFAAqF,CAAC,CAAA;aACnL;SACF;QAED,QAAQ,SAAmB;AACzB,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,UAAU;gBACb,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC/D,oBAAA,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAClC,oBAAA,OAAO,CAAC,IAAI,CAAC,gEAAgE,GAAG,yFAAyF,CAAC,CAAA;iBAC3K;gBAED,MAAK;AAEP,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,KAAK,KAAK;;gBAER,MAAK;AAEP,YAAA;gBACE,MAAM,KAAK,CAAC,kDAAkD,GAAG,yCAAyC,GAAG,CAAI,CAAA,EAAA,SAAS,CAAkB,gBAAA,CAAA,CAAC,CAAA;SAChJ;QAED,QAAQ,MAAM;AACZ,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,UAAU;;gBAEb,MAAK;AAEP,YAAA;gBACE,MAAM,KAAK,CAAC,+CAA+C,GAAG,qDAAqD,GAAG,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAA;SACtJ;AAED,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,KAAK,CAAC,6CAA6C,GAAG,qCAAqC,GAAG,CAAA,CAAA,EAAI,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,OAAO,IAAI,CAAkB,gBAAA,CAAA,CAAC,CAAA;SAChK;;;;;;KAOF;AAED,IAAA,OAAO,IAAI,CAAA;AACb;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  declare const outerWrapper: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
3
- export { outerWrapper as default };
3
+ export default outerWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sources":["../../../../src/components/virtual-list/react/wrapper.ts"],"sourcesContent":["import React, { PropsWithChildren } from 'react'\n\nimport { convertPX2Int } from '../../../utils'\n\nimport type { BaseEventOrig } from '@tarojs/components'\nimport type { VirtualListProps } from '..'\nimport type { IProps } from '../preset'\n\nfunction getRenderExpandNodes ({\n direction,\n isHorizontal,\n isRtl,\n id: sid,\n innerElement,\n renderExpand,\n}: {\n direction: 'top' | 'bottom' | 'left' | 'right'\n isHorizontal: boolean\n isRtl: boolean\n id: string\n innerElement: VirtualListProps['innerElementType']\n renderExpand?: VirtualListProps['renderTop'] | VirtualListProps['renderBottom']\n}) {\n const id = `${sid}-${direction}`\n const props: any = {\n key: id,\n id,\n style: {\n visibility: 'hidden',\n height: isHorizontal ? '100%' : 100,\n width: isHorizontal ? 100 : '100%',\n [isHorizontal ? isRtl ? 'marginRight' : 'marginLeft': 'marginTop']: -100,\n zIndex: -1,\n }\n }\n const expands = [renderExpand, React.createElement(\n innerElement!,\n props,\n )]\n if (isHorizontal ? isRtl ? direction === 'right' : direction === 'left' : direction === 'top') {\n expands.reverse()\n }\n return expands\n}\n\nconst outerWrapper = React.forwardRef(\n function OuterWrapper (props, ref) {\n const {\n id = '', className, style = {}, children,\n outerElementType, innerElementType,\n onScroll, onScrollNative,\n renderTop, renderBottom,\n layout, direction,\n ...rest\n } = props as PropsWithChildren<IProps>\n const handleScroll = (event: BaseEventOrig<VirtualListProps.IVirtualListEventDetail>) => {\n onScroll?.({\n ...event as any,\n currentTarget: {\n ...event.detail,\n clientWidth: convertPX2Int(style.width),\n clientHeight: convertPX2Int(style.height)\n } as any\n })\n\n if (typeof onScrollNative === 'function') {\n onScrollNative(event)\n }\n }\n const isHorizontal = layout === 'horizontal'\n const isRtl = direction === 'rtl'\n\n return React.createElement<any>(outerElementType!, {\n ref,\n id,\n className,\n style,\n scrollY: !isHorizontal,\n scrollX: isHorizontal,\n onScroll: handleScroll,\n ...rest\n }, [\n getRenderExpandNodes({\n direction: isHorizontal ? isRtl ? 'right' : 'left': 'top',\n isHorizontal,\n isRtl,\n id,\n innerElement: innerElementType,\n renderExpand: renderTop,\n }),\n children,\n getRenderExpandNodes({\n direction: isHorizontal ? isRtl ? 'left' : 'right' : 'bottom',\n isHorizontal,\n isRtl,\n id,\n innerElement: innerElementType,\n renderExpand: renderBottom,\n }),\n ])\n }\n)\n\nexport default outerWrapper\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sources":["../../../../src/components/virtual-list/react/wrapper.ts"],"sourcesContent":["import React, { PropsWithChildren } from 'react'\n\nimport { convertPX2Int } from '../../../utils'\n\nimport type { BaseEventOrig } from '@tarojs/components'\nimport type { VirtualListProps } from '..'\nimport type { IProps } from '../preset'\n\nfunction getRenderExpandNodes ({\n direction,\n isHorizontal,\n isRtl,\n id: sid,\n innerElement,\n renderExpand,\n}: {\n direction: 'top' | 'bottom' | 'left' | 'right'\n isHorizontal: boolean\n isRtl: boolean\n id: string\n innerElement: VirtualListProps['innerElementType']\n renderExpand?: VirtualListProps['renderTop'] | VirtualListProps['renderBottom']\n}) {\n const id = `${sid}-${direction}`\n const props: any = {\n key: id,\n id,\n style: {\n visibility: 'hidden',\n height: isHorizontal ? '100%' : 100,\n width: isHorizontal ? 100 : '100%',\n [isHorizontal ? isRtl ? 'marginRight' : 'marginLeft' : 'marginTop']: -100,\n zIndex: -1,\n }\n }\n const expands = [renderExpand, React.createElement(\n innerElement!,\n props,\n )]\n if (isHorizontal ? isRtl ? direction === 'right' : direction === 'left' : direction === 'top') {\n expands.reverse()\n }\n return expands\n}\n\nconst outerWrapper = React.forwardRef(\n function OuterWrapper (props, ref) {\n const {\n id = '', className, style = {}, children,\n outerElementType, innerElementType,\n onScroll, onScrollNative,\n renderTop, renderBottom,\n layout, direction,\n ...rest\n } = props as PropsWithChildren<IProps>\n const handleScroll = (event: BaseEventOrig<VirtualListProps.IVirtualListEventDetail>) => {\n onScroll?.({\n ...event as any,\n currentTarget: {\n ...event.detail,\n clientWidth: convertPX2Int(style.width),\n clientHeight: convertPX2Int(style.height)\n } as any\n })\n\n if (typeof onScrollNative === 'function') {\n onScrollNative(event)\n }\n }\n const isHorizontal = layout === 'horizontal'\n const isRtl = direction === 'rtl'\n\n return React.createElement<any>(outerElementType!, {\n ref,\n id,\n className,\n style,\n scrollY: !isHorizontal,\n scrollX: isHorizontal,\n onScroll: handleScroll,\n ...rest\n }, [\n getRenderExpandNodes({\n direction: isHorizontal ? isRtl ? 'right' : 'left' : 'top',\n isHorizontal,\n isRtl,\n id,\n innerElement: innerElementType,\n renderExpand: renderTop,\n }),\n children,\n getRenderExpandNodes({\n direction: isHorizontal ? isRtl ? 'left' : 'right' : 'bottom',\n isHorizontal,\n isRtl,\n id,\n innerElement: innerElementType,\n renderExpand: renderBottom,\n }),\n ])\n }\n)\n\nexport default outerWrapper\n"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ interface IHorizontal {
2
2
  direction?: string;
3
3
  layout?: string;
4
4
  }
5
- declare function isHorizontalFunc({ direction, layout }: IHorizontal): boolean;
5
+ export declare function isHorizontalFunc({ direction, layout }: IHorizontal): boolean;
6
6
  interface IRrl {
7
7
  direction?: string;
8
8
  }
9
- declare function isRtlFunc({ direction }: IRrl): boolean;
10
- export { isHorizontalFunc, isRtlFunc };
9
+ export declare function isRtlFunc({ direction }: IRrl): boolean;
10
+ export {};
@@ -1,7 +1,7 @@
1
- import { ElementAttrs, TransformReact2VueType } from '@tarojs/components/types/index.vue3';
2
- import { App } from 'vue';
3
- import { VirtualListProps } from "../index.js";
4
- type VueVirtualListProps = Omit<VirtualListProps, 'renderTop' | 'renderBottom'>;
1
+ import type { ElementAttrs, TransformReact2VueType } from '@tarojs/components/types/index.vue3';
2
+ import type { App } from 'vue';
3
+ import type { VirtualListProps } from '../';
4
+ export type VueVirtualListProps = Omit<VirtualListProps, 'renderTop' | 'renderBottom'>;
5
5
  declare global {
6
6
  namespace JSX {
7
7
  interface IntrinsicElements {
@@ -9,9 +9,9 @@ declare global {
9
9
  }
10
10
  }
11
11
  }
12
- declare const VirtualList: DefineComponent<TransformReact2VueType<P>>;
12
+ export declare const VirtualList: DefineComponent<TransformReact2VueType<P>>;
13
13
  declare function install(Vue: App): void;
14
14
  declare const _default: {
15
15
  install: typeof install;
16
16
  };
17
- export { _default as default, VueVirtualListProps, VirtualList };
17
+ export default _default;
@@ -1,4 +1,4 @@
1
- import Preset from "../preset.js";
1
+ import Preset from '../preset';
2
2
  declare const _default: import("vue").DefineComponent<{
3
3
  id: StringConstructor;
4
4
  height: {
@@ -25,6 +25,10 @@ declare const _default: import("vue").DefineComponent<{
25
25
  type: (NumberConstructor | FunctionConstructor)[];
26
26
  required: true;
27
27
  };
28
+ queryPrefix: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
28
32
  unlimitedSize: {
29
33
  type: BooleanConstructor;
30
34
  default: boolean;
@@ -84,7 +88,7 @@ declare const _default: import("vue").DefineComponent<{
84
88
  onScrollNative: FunctionConstructor;
85
89
  onItemsRendered: FunctionConstructor;
86
90
  }, unknown, {
87
- itemList: import("../list-set.js").default;
91
+ itemList: import("../list-set").default;
88
92
  preset: Preset;
89
93
  instance: import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
90
94
  id: StringConstructor;
@@ -112,6 +116,10 @@ declare const _default: import("vue").DefineComponent<{
112
116
  type: (NumberConstructor | FunctionConstructor)[];
113
117
  required: true;
114
118
  };
119
+ queryPrefix: {
120
+ type: StringConstructor;
121
+ default: string;
122
+ };
115
123
  unlimitedSize: {
116
124
  type: BooleanConstructor;
117
125
  default: boolean;
@@ -196,6 +204,10 @@ declare const _default: import("vue").DefineComponent<{
196
204
  type: (NumberConstructor | FunctionConstructor)[];
197
205
  required: true;
198
206
  };
207
+ queryPrefix: {
208
+ type: StringConstructor;
209
+ default: string;
210
+ };
199
211
  unlimitedSize: {
200
212
  type: BooleanConstructor;
201
213
  default: boolean;
@@ -287,6 +299,10 @@ declare const _default: import("vue").DefineComponent<{
287
299
  type: (NumberConstructor | FunctionConstructor)[];
288
300
  required: true;
289
301
  };
302
+ queryPrefix: {
303
+ type: StringConstructor;
304
+ default: string;
305
+ };
290
306
  unlimitedSize: {
291
307
  type: BooleanConstructor;
292
308
  default: boolean;
@@ -401,6 +417,10 @@ declare const _default: import("vue").DefineComponent<{
401
417
  type: (NumberConstructor | FunctionConstructor)[];
402
418
  required: true;
403
419
  };
420
+ queryPrefix: {
421
+ type: StringConstructor;
422
+ default: string;
423
+ };
404
424
  unlimitedSize: {
405
425
  type: BooleanConstructor;
406
426
  default: boolean;
@@ -471,6 +491,7 @@ declare const _default: import("vue").DefineComponent<{
471
491
  innerElementType: string;
472
492
  itemElementType: string;
473
493
  direction: string;
494
+ queryPrefix: string;
474
495
  shouldResetStyleCacheOnItemSizeChange: boolean;
475
496
  }>;
476
- export { _default as default };
497
+ export default _default;
@@ -39,6 +39,10 @@ var List = defineComponent({
39
39
  type: [Number, Function],
40
40
  required: true
41
41
  },
42
+ queryPrefix: {
43
+ type: String,
44
+ default: ''
45
+ },
42
46
  unlimitedSize: {
43
47
  type: Boolean,
44
48
  default: false
@@ -136,7 +140,7 @@ var List = defineComponent({
136
140
  else {
137
141
  option.top = scrollOffset;
138
142
  }
139
- return getScrollViewContextNode(`#${this.preset.id}`).then((node) => node.scrollTo(option));
143
+ return getScrollViewContextNode(`${this.$props.queryPrefix}#${this.preset.id}`).then((node) => node.scrollTo(option));
140
144
  }
141
145
  this.scrollDirection = this.scrollOffset < scrollOffset ? 'forward' : 'backward';
142
146
  this.scrollOffset = scrollOffset;
@@ -189,7 +193,7 @@ var List = defineComponent({
189
193
  return new Promise((resolve) => {
190
194
  if (index >= 0 && index < this.$props.itemCount) {
191
195
  const times = this.itemList.compareSize(index) ? 0 : 2;
192
- getRectSizeSync(`#${this.preset.id}-${index}`, 100, times).then(({ width, height }) => {
196
+ getRectSizeSync(`${this.$props.queryPrefix}#${this.preset.id}-${index}`, 100, times).then(({ width, height }) => {
193
197
  const size = isHorizontal ? width : height;
194
198
  if (typeof size === 'number' && size > 0 && !this.itemList.compareSize(index, size)) {
195
199
  this.itemList.setSize(index, size);
@@ -490,9 +494,9 @@ var List = defineComponent({
490
494
  }
491
495
  return render(this.preset.outerElement, outerElementProps, [
492
496
  this.getRenderExpandNodes(isHorizontal ? isRtl ? 'right' : 'left' : 'top'),
493
- process.env.FRAMEWORK === 'vue3' ? (_b = (_a = this.$slots).top) === null || _b === void 0 ? void 0 : _b.call(_a) : this.$slots.top,
497
+ (_b = (_a = this.$slots).top) === null || _b === void 0 ? void 0 : _b.call(_a),
494
498
  this.getRenderColumnNode(),
495
- process.env.FRAMEWORK === 'vue3' ? (_d = (_c = this.$slots).bottom) === null || _d === void 0 ? void 0 : _d.call(_c) : this.$slots.bottom,
499
+ (_d = (_c = this.$slots).bottom) === null || _d === void 0 ? void 0 : _d.call(_c),
496
500
  this.getRenderExpandNodes(isHorizontal ? isRtl ? 'left' : 'right' : 'bottom'),
497
501
  ]);
498
502
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../src/components/virtual-list/vue/list.ts"],"sourcesContent":["import { isNumber } from '@tarojs/shared'\nimport memoizeOne from 'memoize-one'\nimport { defineComponent } from 'vue'\n\nimport { cancelTimeout, convertNumber2PX, defaultItemKey, getRectSizeSync, getScrollViewContextNode, omit, requestTimeout } from '../../../utils'\nimport render from '../../../utils/vue-render'\nimport { IS_SCROLLING_DEBOUNCE_INTERVAL } from '../constants'\nimport { getRTLOffsetType } from '../dom-helpers'\nimport Preset, { type IProps } from '../preset'\n\nexport default defineComponent({\n props: {\n id: String,\n height: {\n type: [String, Number],\n required: true\n },\n width: {\n type: [String, Number],\n required: true\n },\n item: {\n required: true\n },\n itemCount: {\n type: Number,\n required: true\n },\n itemData: {\n type: Array,\n required: true\n },\n itemKey: Function,\n itemSize: {\n type: [Number, Function],\n required: true\n },\n unlimitedSize: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: 'absolute'\n },\n direction: {\n type: String,\n default: 'ltr'\n },\n layout: {\n type: String,\n default: 'vertical'\n },\n initialScrollOffset: {\n type: Number,\n default: 0\n },\n overscanCount: {\n type: Number,\n default: 1\n },\n placeholderCount: {\n type: Number\n },\n useIsScrolling: {\n type: Boolean,\n default: false\n },\n enhanced: {\n type: Boolean,\n default: false\n },\n shouldResetStyleCacheOnItemSizeChange: {\n type: Boolean,\n default: true\n },\n outerElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-scroll-view-core' : 'scroll-view'\n },\n innerElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-view-core' : 'view'\n },\n itemElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-view-core' : 'view'\n },\n outerTagName: String,\n innerTagName: String,\n itemTagName: String,\n outerRef: String,\n innerRef: String,\n onScrollNative: Function,\n onItemsRendered: Function,\n },\n data () {\n const preset = new Preset(this.$props as IProps, this.refresh as TFunc)\n const id = this.$props.id || preset.id\n preset.updateWrapper(id)\n\n return {\n itemList: preset.itemList,\n preset,\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.$props.initialScrollOffset === 'number'\n ? this.$props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n resetIsScrollingTimeoutId: null,\n refreshCount: 0\n }\n },\n methods: {\n refresh () {\n this.refreshCount = this.refreshCount + 1\n },\n scrollTo (scrollOffset = 0, enhanced = this.preset.enhanced) {\n scrollOffset = Math.max(0, scrollOffset)\n if (this.scrollOffset === scrollOffset) return\n\n if (enhanced) {\n const isHorizontal = this.preset.isHorizontal\n const option: any = {\n animated: true,\n duration: 300,\n }\n if (isHorizontal) {\n option.left\t= scrollOffset\n } else {\n option.top = scrollOffset\n }\n return getScrollViewContextNode(`#${this.preset.id}`).then((node: any) => node.scrollTo(option))\n }\n\n this.scrollDirection = this.scrollOffset < scrollOffset ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = true\n\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n scrollToItem (index: number, align = 'auto', enhanced = this.preset.enhanced) {\n const { itemCount } = this.$props\n const { scrollOffset } = this.$data\n\n index = Math.max(0, Math.min(index, itemCount - 1))\n\n this.scrollTo(\n this.itemList.getOffsetForIndexAndAlignment(\n index,\n align,\n scrollOffset\n ),\n enhanced,\n )\n },\n\n _callOnItemsRendered: memoizeOne(function (overscanStartIndex, overscanStopIndex, startIndex, stopIndex) {\n return this.$props.onItemsRendered({\n overscanStartIndex,\n overscanStopIndex,\n startIndex,\n stopIndex\n })\n }),\n\n _callOnScroll: memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested, detail) {\n this.$emit('scroll', {\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n detail\n })\n }),\n\n _callPropsCallbacks () {\n if (typeof this.$props.onItemsRendered === 'function') {\n if (this.$props.itemCount > 0) {\n const [overscanStartIndex, overscanStopIndex, startIndex, stopIndex] = this._getRangeToRender()\n this._callOnItemsRendered(overscanStartIndex, overscanStopIndex, startIndex, stopIndex)\n }\n }\n\n if (typeof this.$props.onScroll === 'function') {\n this._callOnScroll(\n this.scrollDirection,\n this.scrollOffset,\n this.scrollUpdateWasRequested,\n this.preset.field\n )\n }\n\n if (this.itemList.isUnlimitedMode) {\n setTimeout(() => {\n const [startIndex, stopIndex] = this._getRangeToRender()\n const isHorizontal = this.preset.isHorizontal\n for (let index = startIndex; index <= stopIndex; index++) {\n this._getSizeUploadSync(index, isHorizontal)\n }\n }, 0)\n }\n },\n\n _getSizeUploadSync (index: number, isHorizontal: boolean) {\n return new Promise((resolve) => {\n if (index >= 0 && index < this.$props.itemCount) {\n const times = this.itemList.compareSize(index) ? 0 : 2\n getRectSizeSync(`#${this.preset.id}-${index}`, 100, times).then(({ width, height }) => {\n const size = isHorizontal ? width : height\n if (typeof size === 'number' && size > 0 && !this.itemList.compareSize(index, size)) {\n this.itemList.setSize(index, size)\n resolve(this.itemList.getSize(index))\n }\n })\n }\n })\n },\n\n _getRangeToRender () {\n return this.itemList.getRangeToRender(\n this.$data.scrollDirection,\n this.$data.scrollOffset,\n this.$data.isScrolling\n )\n },\n\n _onScrollHorizontal (event) {\n const {\n scrollHeight,\n scrollWidth = this.itemList.getOffsetSizeCache(),\n scrollTop,\n scrollLeft,\n } = event.currentTarget\n if (!isNumber(scrollHeight) || !isNumber(scrollWidth)) return\n const clientWidth = this.itemList.wrapperSize\n this.preset.field = {\n scrollHeight,\n scrollWidth,\n scrollTop,\n scrollLeft,\n clientHeight: scrollHeight,\n clientWidth: scrollWidth\n }\n if (this.$props.onScrollNative) {\n this.$props.onScrollNative(event)\n }\n const diffOffset = this.preset.field.scrollLeft - scrollLeft\n if (this.scrollOffset === scrollLeft || this.preset.isShaking(diffOffset)) {\n return\n }\n\n let scrollOffset = scrollLeft\n if (this.preset.isRtl) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft\n break\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n )\n this.preset.field = {\n scrollWidth: scrollOffset,\n }\n this.isScrolling = true\n this.scrollDirection = this.scrollOffset < scrollLeft ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = false\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n _onScrollVertical (event) {\n const {\n scrollHeight = this.itemList.getOffsetSizeCache(),\n scrollWidth,\n scrollTop,\n scrollLeft,\n } = event.currentTarget\n if (!isNumber(scrollHeight) || !isNumber(scrollWidth)) return\n const clientHeight = this.itemList.wrapperSize\n if (this.$props.onScrollNative) {\n this.$props.onScrollNative(event)\n }\n const diffOffset = this.preset.field.scrollTop - scrollTop\n if (this.scrollOffset === scrollTop || this.preset.isShaking(diffOffset)) {\n return\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight))\n this.preset.field = {\n scrollHeight,\n scrollWidth,\n scrollTop: scrollOffset,\n scrollLeft,\n clientHeight,\n clientWidth: scrollWidth,\n diffOffset: this.preset.field.scrollTop - scrollOffset,\n }\n\n this.isScrolling = true\n this.scrollDirection = this.scrollOffset < scrollOffset ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = false\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n _outerRefSetter (ref) {\n const { outerRef } = this.$props\n this._outerRef = ref\n\n if (typeof outerRef === 'function') {\n outerRef(ref)\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('value')) {\n outerRef.value = ref\n }\n },\n\n _resetIsScrollingDebounced () {\n if (this.resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.resetIsScrollingTimeoutId)\n }\n\n this.resetIsScrollingTimeoutId = requestTimeout(this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL)\n },\n\n _resetIsScrolling () {\n this.resetIsScrollingTimeoutId = null\n this.isScrolling = false\n this.$nextTick(() => {\n this.preset.resetCache()\n })\n },\n\n getRenderItemNode (index: number, type: 'node' | 'placeholder' = 'node') {\n const { item, itemData, itemKey = defaultItemKey, useIsScrolling } = this.$props\n const { isScrolling } = this.$data\n const key = itemKey(index, itemData)\n\n const style = this.preset.getItemStyle(index)\n if (type === 'placeholder') {\n return render(this.preset.itemElement, {\n key,\n id: `${this.preset.id}-${index}-wrapper`,\n style: this.preset.isBrick ? style : { display: 'none' }\n })\n }\n\n return render(this.preset.itemElement, {\n key: itemKey(index, itemData),\n id: `${this.preset.id}-${index}-wrapper`,\n style\n }, render(item, {\n id: `${this.preset.id}-${index}`,\n data: itemData,\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined\n }))\n },\n\n getRenderColumnNode () {\n const { isScrolling } = this.$data\n const { innerRef, itemCount } = this.$props\n const isHorizontal = this.preset.isHorizontal\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalSize = convertNumber2PX(this.itemList.getOffsetSize())\n const columnProps: any = {\n ref: innerRef,\n key: `${this.preset.id}-inner`,\n id: `${this.preset.id}-inner`,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n width: !isHorizontal ? '100%' : estimatedTotalSize,\n position: 'relative',\n pointerEvents: isScrolling ? 'none' : 'auto',\n }\n }\n\n const [startIndex, stopIndex] = this._getRangeToRender()\n const items = []\n\n if (this.preset.isRelative && !this.preset.isBrick) {\n const pre = convertNumber2PX(this.itemList.getOffsetSizeCache(startIndex))\n items.push(\n render(this.preset.itemElement, {\n key: `${this.preset.id}-pre`,\n id: `${this.preset.id}-pre`,\n style: {\n height: isHorizontal ? '100%' : pre,\n width: !isHorizontal ? '100%' : pre\n }\n })\n )\n }\n\n const placeholderCount = this.preset.placeholderCount\n const restCount = itemCount - stopIndex\n const prevPlaceholder = startIndex < placeholderCount ? startIndex : placeholderCount\n const postPlaceholder = restCount < placeholderCount ? restCount : placeholderCount\n\n for (let itemIndex = 0; itemIndex < stopIndex + postPlaceholder; itemIndex++) {\n if (!this.preset.isBrick) {\n if (itemIndex < startIndex - prevPlaceholder) {\n itemIndex = startIndex - prevPlaceholder\n continue\n }\n }\n\n if (itemIndex < startIndex || itemIndex > stopIndex) {\n items.push(this.getRenderItemNode(itemIndex, 'placeholder'))\n } else {\n items.push(this.getRenderItemNode(itemIndex))\n }\n }\n return render(this.preset.innerElement, columnProps, items)\n },\n getRenderExpandNodes (direction: 'top' | 'bottom' | 'left' | 'right') {\n const isHorizontal = this.preset.isHorizontal\n const isRtl = this.preset.isRtl\n const props: any = {\n id: `${this.preset.id}-${direction}`,\n style: {\n visibility: 'hidden',\n height: isHorizontal ? '100%' : 100,\n width: isHorizontal ? 100 : '100%',\n [isHorizontal ? isRtl ? 'marginRight' : 'marginLeft': 'marginTop']: -100,\n zIndex: -1,\n }\n }\n return render(this.preset.innerElement, props)\n }\n },\n mounted () {\n const { initialScrollOffset } = this.$props\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n const outerRef = this._outerRef\n if (this.preset.isHorizontal) {\n outerRef.scrollLeft = initialScrollOffset\n } else {\n outerRef.scrollTop = initialScrollOffset\n }\n }\n\n this._callPropsCallbacks()\n this.preset.boundaryDetection()\n },\n updated () {\n this.preset.update(this.$props)\n\n const { scrollOffset, scrollUpdateWasRequested } = this.$data\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n const outerRef = this._outerRef\n\n if (this.preset.isHorizontal) {\n if (this.preset.isRtl) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset\n break\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset\n break\n default: {\n const { clientWidth, scrollWidth } = outerRef\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset\n break\n }\n }\n } else {\n outerRef.scrollLeft = scrollOffset\n }\n } else {\n outerRef.scrollTop = scrollOffset\n }\n }\n\n this._callPropsCallbacks()\n },\n\n beforeDestroy () {\n if (this.resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.resetIsScrollingTimeoutId)\n }\n this.preset.dispose()\n },\n\n render () {\n const {\n direction,\n height,\n layout,\n width,\n enhanced = false\n } = omit(this.$props, [\n 'item', 'itemCount', 'itemData', 'itemKey', 'useIsScrolling',\n 'innerElementType', 'innerTagName', 'itemElementType', 'itemTagName',\n 'outerElementType', 'outerTagName', 'onScrollToLower', 'onScrollToUpper',\n 'upperThreshold', 'lowerThreshold',\n 'position', 'innerRef',\n ])\n const {\n scrollOffset,\n scrollUpdateWasRequested\n } = this.$data\n\n const isHorizontal = this.preset.isHorizontal\n const isRtl = this.preset.isRtl\n const outerElementProps: any = {\n id: this.preset.id,\n ref: this._outerRefSetter,\n layout,\n enhanced,\n style: {\n position: 'relative',\n height: convertNumber2PX(height),\n width: convertNumber2PX(width),\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction\n },\n attrs: {\n scrollY: !this.preset.isHorizontal,\n scrollX: this.preset.isHorizontal\n },\n on: {\n scroll: isHorizontal\n ? this._onScrollHorizontal\n : this._onScrollVertical\n }\n }\n\n if (!enhanced) {\n if (isHorizontal) {\n outerElementProps.scrollLeft = scrollUpdateWasRequested ? scrollOffset : this.preset.field.scrollLeft\n } else {\n outerElementProps.scrollTop = scrollUpdateWasRequested ? scrollOffset : this.preset.field.scrollTop\n }\n }\n\n return render(this.preset.outerElement, outerElementProps, [\n this.getRenderExpandNodes(isHorizontal ? isRtl ? 'right' : 'left' : 'top'),\n process.env.FRAMEWORK === 'vue3' ? this.$slots.top?.() : this.$slots.top,\n this.getRenderColumnNode(),\n process.env.FRAMEWORK === 'vue3' ? this.$slots.bottom?.() : this.$slots.bottom,\n this.getRenderExpandNodes(isHorizontal ? isRtl ? 'left' : 'right' : 'bottom'),\n ])\n }\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sources":["../../../../src/components/virtual-list/vue/list.ts"],"sourcesContent":["import { isNumber } from '@tarojs/shared'\nimport memoizeOne from 'memoize-one'\nimport { defineComponent } from 'vue'\n\nimport { cancelTimeout, convertNumber2PX, defaultItemKey, getRectSizeSync, getScrollViewContextNode, omit, requestTimeout } from '../../../utils'\nimport render from '../../../utils/vue-render'\nimport { IS_SCROLLING_DEBOUNCE_INTERVAL } from '../constants'\nimport { getRTLOffsetType } from '../dom-helpers'\nimport Preset, { type IProps } from '../preset'\n\nexport default defineComponent({\n props: {\n id: String,\n height: {\n type: [String, Number],\n required: true\n },\n width: {\n type: [String, Number],\n required: true\n },\n item: {\n required: true\n },\n itemCount: {\n type: Number,\n required: true\n },\n itemData: {\n type: Array,\n required: true\n },\n itemKey: Function,\n itemSize: {\n type: [Number, Function],\n required: true\n },\n queryPrefix: {\n type: String,\n default: ''\n },\n unlimitedSize: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: 'absolute'\n },\n direction: {\n type: String,\n default: 'ltr'\n },\n layout: {\n type: String,\n default: 'vertical'\n },\n initialScrollOffset: {\n type: Number,\n default: 0\n },\n overscanCount: {\n type: Number,\n default: 1\n },\n placeholderCount: {\n type: Number\n },\n useIsScrolling: {\n type: Boolean,\n default: false\n },\n enhanced: {\n type: Boolean,\n default: false\n },\n shouldResetStyleCacheOnItemSizeChange: {\n type: Boolean,\n default: true\n },\n outerElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-scroll-view-core' : 'scroll-view'\n },\n innerElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-view-core' : 'view'\n },\n itemElementType: {\n type: String,\n default: process.env.TARO_PLATFORM === 'web' ? 'taro-view-core' : 'view'\n },\n outerTagName: String,\n innerTagName: String,\n itemTagName: String,\n outerRef: String,\n innerRef: String,\n onScrollNative: Function,\n onItemsRendered: Function,\n },\n data () {\n const preset = new Preset(this.$props as IProps, this.refresh as TFunc)\n const id = this.$props.id || preset.id\n preset.updateWrapper(id)\n\n return {\n itemList: preset.itemList,\n preset,\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.$props.initialScrollOffset === 'number'\n ? this.$props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n resetIsScrollingTimeoutId: null,\n refreshCount: 0\n }\n },\n methods: {\n refresh () {\n this.refreshCount = this.refreshCount + 1\n },\n scrollTo (scrollOffset = 0, enhanced = this.preset.enhanced) {\n scrollOffset = Math.max(0, scrollOffset)\n if (this.scrollOffset === scrollOffset) return\n\n if (enhanced) {\n const isHorizontal = this.preset.isHorizontal\n const option: any = {\n animated: true,\n duration: 300,\n }\n if (isHorizontal) {\n option.left = scrollOffset\n } else {\n option.top = scrollOffset\n }\n return getScrollViewContextNode(`${this.$props.queryPrefix}#${this.preset.id}`).then((node: any) => node.scrollTo(option))\n }\n\n this.scrollDirection = this.scrollOffset < scrollOffset ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = true\n\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n scrollToItem (index: number, align = 'auto', enhanced = this.preset.enhanced) {\n const { itemCount } = this.$props\n const { scrollOffset } = this.$data\n\n index = Math.max(0, Math.min(index, itemCount - 1))\n\n this.scrollTo(\n this.itemList.getOffsetForIndexAndAlignment(\n index,\n align,\n scrollOffset\n ),\n enhanced,\n )\n },\n\n _callOnItemsRendered: memoizeOne(function (overscanStartIndex, overscanStopIndex, startIndex, stopIndex) {\n return this.$props.onItemsRendered({\n overscanStartIndex,\n overscanStopIndex,\n startIndex,\n stopIndex\n })\n }),\n\n _callOnScroll: memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested, detail) {\n this.$emit('scroll', {\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n detail\n })\n }),\n\n _callPropsCallbacks () {\n if (typeof this.$props.onItemsRendered === 'function') {\n if (this.$props.itemCount > 0) {\n const [overscanStartIndex, overscanStopIndex, startIndex, stopIndex] = this._getRangeToRender()\n this._callOnItemsRendered(overscanStartIndex, overscanStopIndex, startIndex, stopIndex)\n }\n }\n\n if (typeof this.$props.onScroll === 'function') {\n this._callOnScroll(\n this.scrollDirection,\n this.scrollOffset,\n this.scrollUpdateWasRequested,\n this.preset.field\n )\n }\n\n if (this.itemList.isUnlimitedMode) {\n setTimeout(() => {\n const [startIndex, stopIndex] = this._getRangeToRender()\n const isHorizontal = this.preset.isHorizontal\n for (let index = startIndex; index <= stopIndex; index++) {\n this._getSizeUploadSync(index, isHorizontal)\n }\n }, 0)\n }\n },\n\n _getSizeUploadSync (index: number, isHorizontal: boolean) {\n return new Promise((resolve) => {\n if (index >= 0 && index < this.$props.itemCount) {\n const times = this.itemList.compareSize(index) ? 0 : 2\n getRectSizeSync(`${this.$props.queryPrefix}#${this.preset.id}-${index}`, 100, times).then(({ width, height }) => {\n const size = isHorizontal ? width : height\n if (typeof size === 'number' && size > 0 && !this.itemList.compareSize(index, size)) {\n this.itemList.setSize(index, size)\n resolve(this.itemList.getSize(index))\n }\n })\n }\n })\n },\n\n _getRangeToRender () {\n return this.itemList.getRangeToRender(\n this.$data.scrollDirection,\n this.$data.scrollOffset,\n this.$data.isScrolling\n )\n },\n\n _onScrollHorizontal (event) {\n const {\n scrollHeight,\n scrollWidth = this.itemList.getOffsetSizeCache(),\n scrollTop,\n scrollLeft,\n } = event.currentTarget\n if (!isNumber(scrollHeight) || !isNumber(scrollWidth)) return\n const clientWidth = this.itemList.wrapperSize\n this.preset.field = {\n scrollHeight,\n scrollWidth,\n scrollTop,\n scrollLeft,\n clientHeight: scrollHeight,\n clientWidth: scrollWidth\n }\n if (this.$props.onScrollNative) {\n this.$props.onScrollNative(event)\n }\n const diffOffset = this.preset.field.scrollLeft - scrollLeft\n if (this.scrollOffset === scrollLeft || this.preset.isShaking(diffOffset)) {\n return\n }\n\n let scrollOffset = scrollLeft\n if (this.preset.isRtl) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft\n break\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n )\n this.preset.field = {\n scrollWidth: scrollOffset,\n }\n this.isScrolling = true\n this.scrollDirection = this.scrollOffset < scrollLeft ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = false\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n _onScrollVertical (event) {\n const {\n scrollHeight = this.itemList.getOffsetSizeCache(),\n scrollWidth,\n scrollTop,\n scrollLeft,\n } = event.currentTarget\n if (!isNumber(scrollHeight) || !isNumber(scrollWidth)) return\n const clientHeight = this.itemList.wrapperSize\n if (this.$props.onScrollNative) {\n this.$props.onScrollNative(event)\n }\n const diffOffset = this.preset.field.scrollTop - scrollTop\n if (this.scrollOffset === scrollTop || this.preset.isShaking(diffOffset)) {\n return\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight))\n this.preset.field = {\n scrollHeight,\n scrollWidth,\n scrollTop: scrollOffset,\n scrollLeft,\n clientHeight,\n clientWidth: scrollWidth,\n diffOffset: this.preset.field.scrollTop - scrollOffset,\n }\n\n this.isScrolling = true\n this.scrollDirection = this.scrollOffset < scrollOffset ? 'forward' : 'backward'\n this.scrollOffset = scrollOffset\n this.scrollUpdateWasRequested = false\n this.$nextTick(this._resetIsScrollingDebounced)\n },\n\n _outerRefSetter (ref) {\n const { outerRef } = this.$props\n this._outerRef = ref\n\n if (typeof outerRef === 'function') {\n outerRef(ref)\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('value')) {\n outerRef.value = ref\n }\n },\n\n _resetIsScrollingDebounced () {\n if (this.resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.resetIsScrollingTimeoutId)\n }\n\n this.resetIsScrollingTimeoutId = requestTimeout(this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL)\n },\n\n _resetIsScrolling () {\n this.resetIsScrollingTimeoutId = null\n this.isScrolling = false\n this.$nextTick(() => {\n this.preset.resetCache()\n })\n },\n\n getRenderItemNode (index: number, type: 'node' | 'placeholder' = 'node') {\n const { item, itemData, itemKey = defaultItemKey, useIsScrolling } = this.$props\n const { isScrolling } = this.$data\n const key = itemKey(index, itemData)\n\n const style = this.preset.getItemStyle(index)\n if (type === 'placeholder') {\n return render(this.preset.itemElement, {\n key,\n id: `${this.preset.id}-${index}-wrapper`,\n style: this.preset.isBrick ? style : { display: 'none' }\n })\n }\n\n return render(this.preset.itemElement, {\n key: itemKey(index, itemData),\n id: `${this.preset.id}-${index}-wrapper`,\n style\n }, render(item, {\n id: `${this.preset.id}-${index}`,\n data: itemData,\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined\n }))\n },\n\n getRenderColumnNode () {\n const { isScrolling } = this.$data\n const { innerRef, itemCount } = this.$props\n const isHorizontal = this.preset.isHorizontal\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalSize = convertNumber2PX(this.itemList.getOffsetSize())\n const columnProps: any = {\n ref: innerRef,\n key: `${this.preset.id}-inner`,\n id: `${this.preset.id}-inner`,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n width: !isHorizontal ? '100%' : estimatedTotalSize,\n position: 'relative',\n pointerEvents: isScrolling ? 'none' : 'auto',\n }\n }\n\n const [startIndex, stopIndex] = this._getRangeToRender()\n const items = []\n\n if (this.preset.isRelative && !this.preset.isBrick) {\n const pre = convertNumber2PX(this.itemList.getOffsetSizeCache(startIndex))\n items.push(\n render(this.preset.itemElement, {\n key: `${this.preset.id}-pre`,\n id: `${this.preset.id}-pre`,\n style: {\n height: isHorizontal ? '100%' : pre,\n width: !isHorizontal ? '100%' : pre\n }\n })\n )\n }\n\n const placeholderCount = this.preset.placeholderCount\n const restCount = itemCount - stopIndex\n const prevPlaceholder = startIndex < placeholderCount ? startIndex : placeholderCount\n const postPlaceholder = restCount < placeholderCount ? restCount : placeholderCount\n\n for (let itemIndex = 0; itemIndex < stopIndex + postPlaceholder; itemIndex++) {\n if (!this.preset.isBrick) {\n if (itemIndex < startIndex - prevPlaceholder) {\n itemIndex = startIndex - prevPlaceholder\n continue\n }\n }\n\n if (itemIndex < startIndex || itemIndex > stopIndex) {\n items.push(this.getRenderItemNode(itemIndex, 'placeholder'))\n } else {\n items.push(this.getRenderItemNode(itemIndex))\n }\n }\n return render(this.preset.innerElement, columnProps, items)\n },\n getRenderExpandNodes (direction: 'top' | 'bottom' | 'left' | 'right') {\n const isHorizontal = this.preset.isHorizontal\n const isRtl = this.preset.isRtl\n const props: any = {\n id: `${this.preset.id}-${direction}`,\n style: {\n visibility: 'hidden',\n height: isHorizontal ? '100%' : 100,\n width: isHorizontal ? 100 : '100%',\n [isHorizontal ? isRtl ? 'marginRight' : 'marginLeft' : 'marginTop']: -100,\n zIndex: -1,\n }\n }\n return render(this.preset.innerElement, props)\n }\n },\n mounted () {\n const { initialScrollOffset } = this.$props\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n const outerRef = this._outerRef\n if (this.preset.isHorizontal) {\n outerRef.scrollLeft = initialScrollOffset\n } else {\n outerRef.scrollTop = initialScrollOffset\n }\n }\n\n this._callPropsCallbacks()\n this.preset.boundaryDetection()\n },\n updated () {\n this.preset.update(this.$props)\n\n const { scrollOffset, scrollUpdateWasRequested } = this.$data\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n const outerRef = this._outerRef\n\n if (this.preset.isHorizontal) {\n if (this.preset.isRtl) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset\n break\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset\n break\n default: {\n const { clientWidth, scrollWidth } = outerRef\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset\n break\n }\n }\n } else {\n outerRef.scrollLeft = scrollOffset\n }\n } else {\n outerRef.scrollTop = scrollOffset\n }\n }\n\n this._callPropsCallbacks()\n },\n\n beforeDestroy () {\n if (this.resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.resetIsScrollingTimeoutId)\n }\n this.preset.dispose()\n },\n\n render () {\n const {\n direction,\n height,\n layout,\n width,\n enhanced = false\n } = omit(this.$props, [\n 'item', 'itemCount', 'itemData', 'itemKey', 'useIsScrolling',\n 'innerElementType', 'innerTagName', 'itemElementType', 'itemTagName',\n 'outerElementType', 'outerTagName', 'onScrollToLower', 'onScrollToUpper',\n 'upperThreshold', 'lowerThreshold',\n 'position', 'innerRef',\n ])\n const {\n scrollOffset,\n scrollUpdateWasRequested\n } = this.$data\n\n const isHorizontal = this.preset.isHorizontal\n const isRtl = this.preset.isRtl\n const outerElementProps: any = {\n id: this.preset.id,\n ref: this._outerRefSetter,\n layout,\n enhanced,\n style: {\n position: 'relative',\n height: convertNumber2PX(height),\n width: convertNumber2PX(width),\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction\n },\n attrs: {\n scrollY: !this.preset.isHorizontal,\n scrollX: this.preset.isHorizontal\n },\n on: {\n scroll: isHorizontal\n ? this._onScrollHorizontal\n : this._onScrollVertical\n }\n }\n\n if (!enhanced) {\n if (isHorizontal) {\n outerElementProps.scrollLeft = scrollUpdateWasRequested ? scrollOffset : this.preset.field.scrollLeft\n } else {\n outerElementProps.scrollTop = scrollUpdateWasRequested ? scrollOffset : this.preset.field.scrollTop\n }\n }\n\n return render(this.preset.outerElement, outerElementProps, [\n this.getRenderExpandNodes(isHorizontal ? isRtl ? 'right' : 'left' : 'top'),\n this.$slots.top?.(),\n this.getRenderColumnNode(),\n this.$slots.bottom?.(),\n this.getRenderExpandNodes(isHorizontal ? isRtl ? 'left' : 'right' : 'bottom'),\n ])\n }\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAUA,WAAe,eAAe,CAAC;AAC7B,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,UAAU;AACpB,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,UAAU;AACpB,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACb,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,qCAAqC,EAAE;AACrC,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,uBAAuB,GAAG,aAAa;AACvF,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,gBAAgB,GAAG,MAAM;AACzE,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,gBAAgB,GAAG,MAAM;AACzE,SAAA;AACD,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,eAAe,EAAE,QAAQ;AAC1B,KAAA;IACD,IAAI,GAAA;AACF,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,IAAI,CAAC,OAAgB,CAAC,CAAA;QACvE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAA;AACtC,QAAA,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAExB,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM;AACN,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,eAAe,EAAE,SAAS;YAC1B,YAAY,EACV,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,QAAQ;AACjD,kBAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;AACjC,kBAAE,CAAC;AACP,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,yBAAyB,EAAE,IAAI;AAC/B,YAAA,YAAY,EAAE,CAAC;SAChB,CAAA;KACF;AACD,IAAA,OAAO,EAAE;QACP,OAAO,GAAA;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;SAC1C;QACD,QAAQ,CAAE,YAAY,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAA;YACzD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AACxC,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAM;YAE9C,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AAC7C,gBAAA,MAAM,MAAM,GAAQ;AAClB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,GAAG;iBACd,CAAA;gBACD,IAAI,YAAY,EAAE;AAChB,oBAAA,MAAM,CAAC,IAAI,GAAG,YAAY,CAAA;iBAC3B;qBAAM;AACL,oBAAA,MAAM,CAAC,GAAG,GAAG,YAAY,CAAA;iBAC1B;AACD,gBAAA,OAAO,wBAAwB,CAAC,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;aAC3H;AAED,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAA;AAChF,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;AAChC,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAA;AAEpC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;SAChD;AAED,QAAA,YAAY,CAAE,KAAa,EAAE,KAAK,GAAG,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAA;AAC1E,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;AACjC,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;AAEnC,YAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;AAEnD,YAAA,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CACzC,KAAK,EACL,KAAK,EACL,YAAY,CACb,EACD,QAAQ,CACT,CAAA;SACF;QAED,oBAAoB,EAAE,UAAU,CAAC,UAAU,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAA;AACrG,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;gBACjC,kBAAkB;gBAClB,iBAAiB;gBACjB,UAAU;gBACV,SAAS;AACV,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC;QAEF,aAAa,EAAE,UAAU,CAAC,UAAU,eAAe,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,EAAA;AACjG,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnB,eAAe;gBACf,YAAY;gBACZ,wBAAwB;gBACxB,MAAM;AACP,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC;QAEF,mBAAmB,GAAA;YACjB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE;gBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE;AAC7B,oBAAA,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;oBAC/F,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;iBACxF;aACF;YAED,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAC9C,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAA;aACF;AAED,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;gBACjC,UAAU,CAAC,MAAK;oBACd,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;AACxD,oBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AAC7C,oBAAA,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,EAAE;AACxD,wBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;qBAC7C;iBACF,EAAE,CAAC,CAAC,CAAA;aACN;SACF;QAED,kBAAkB,CAAE,KAAa,EAAE,YAAqB,EAAA;AACtD,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,gBAAA,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC/C,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACtD,oBAAA,eAAe,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;wBAC9G,MAAM,IAAI,GAAG,YAAY,GAAG,KAAK,GAAG,MAAM,CAAA;wBAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;4BACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;yBACtC;AACH,qBAAC,CAAC,CAAA;iBACH;AACH,aAAC,CAAC,CAAA;SACH;QAED,iBAAiB,GAAA;YACf,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CACnC,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,EACvB,IAAI,CAAC,KAAK,CAAC,WAAW,CACvB,CAAA;SACF;AAED,QAAA,mBAAmB,CAAE,KAAK,EAAA;YACxB,MAAM,EACJ,YAAY,EACZ,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAChD,SAAS,EACT,UAAU,GACX,GAAG,KAAK,CAAC,aAAa,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,OAAM;AAC7D,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAA;AAC7C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;gBAClB,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,UAAU;AACV,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,WAAW,EAAE,WAAW;aACzB,CAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC9B,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;aAClC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;AAC5D,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBACzE,OAAM;aACP;YAED,IAAI,YAAY,GAAG,UAAU,CAAA;AAC7B,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;;;;gBAKrB,QAAQ,gBAAgB,EAAE;AACxB,oBAAA,KAAK,UAAU;wBACb,YAAY,GAAG,CAAC,UAAU,CAAA;wBAC1B,MAAK;AACP,oBAAA,KAAK,qBAAqB;AACxB,wBAAA,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;wBACrD,MAAK;iBACR;aACF;;AAGD,YAAA,YAAY,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,GAAG,WAAW,CAAC,CAClD,CAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;AAClB,gBAAA,WAAW,EAAE,YAAY;aAC1B,CAAA;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAC9E,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;AAChC,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAA;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;SAChD;AAED,QAAA,iBAAiB,CAAE,KAAK,EAAA;YACtB,MAAM,EACJ,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACjD,WAAW,EACX,SAAS,EACT,UAAU,GACX,GAAG,KAAK,CAAC,aAAa,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,OAAM;AAC7D,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAA;AAC9C,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC9B,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;aAClC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;AAC1D,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBACxE,OAAM;aACP;;AAGD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,CAAA;AAClF,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;gBAClB,YAAY;gBACZ,WAAW;AACX,gBAAA,SAAS,EAAE,YAAY;gBACvB,UAAU;gBACV,YAAY;AACZ,gBAAA,WAAW,EAAE,WAAW;gBACxB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;aACvD,CAAA;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAA;AAChF,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;AAChC,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAA;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;SAChD;AAED,QAAA,eAAe,CAAE,GAAG,EAAA;AAClB,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAA;AAEpB,YAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,QAAQ,CAAC,GAAG,CAAC,CAAA;aACd;AAAM,iBAAA,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AAC/F,gBAAA,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAA;aACrB;SACF;QAED,0BAA0B,GAAA;AACxB,YAAA,IAAI,IAAI,CAAC,yBAAyB,KAAK,IAAI,EAAE;AAC3C,gBAAA,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;aAC9C;YAED,IAAI,CAAC,yBAAyB,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CAAA;SACxG;QAED,iBAAiB,GAAA;AACf,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAA;AACrC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAK;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;AAC1B,aAAC,CAAC,CAAA;SACH;AAED,QAAA,iBAAiB,CAAE,KAAa,EAAE,IAAA,GAA+B,MAAM,EAAA;AACrE,YAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;AAChF,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AAC7C,YAAA,IAAI,IAAI,KAAK,aAAa,EAAE;AAC1B,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACrC,GAAG;oBACH,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAI,CAAA,EAAA,KAAK,CAAU,QAAA,CAAA;AACxC,oBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;AACzD,iBAAA,CAAC,CAAA;aACH;AAED,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACrC,gBAAA,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC7B,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAI,CAAA,EAAA,KAAK,CAAU,QAAA,CAAA;gBACxC,KAAK;aACN,EAAE,MAAM,CAAC,IAAI,EAAE;gBACd,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA;AAChC,gBAAA,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,WAAW,EAAE,cAAc,GAAG,WAAW,GAAG,SAAS;AACtD,aAAA,CAAC,CAAC,CAAA;SACJ;QAED,mBAAmB,GAAA;AACjB,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAClC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;AAC3C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;;;YAG7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;AAC1E,YAAA,MAAM,WAAW,GAAQ;AACvB,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAQ,MAAA,CAAA;AAC9B,gBAAA,EAAE,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAQ,MAAA,CAAA;AAC7B,gBAAA,KAAK,EAAE;oBACL,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,kBAAkB;oBAClD,KAAK,EAAE,CAAC,YAAY,GAAG,MAAM,GAAG,kBAAkB;AAClD,oBAAA,QAAQ,EAAE,UAAU;oBACpB,aAAa,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM;AAC7C,iBAAA;aACF,CAAA;YAED,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxD,MAAM,KAAK,GAAG,EAAE,CAAA;AAEhB,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClD,gBAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC1E,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9B,oBAAA,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAM,IAAA,CAAA;AAC5B,oBAAA,EAAE,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAM,IAAA,CAAA;AAC3B,oBAAA,KAAK,EAAE;wBACL,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,GAAG;wBACnC,KAAK,EAAE,CAAC,YAAY,GAAG,MAAM,GAAG,GAAG;AACpC,qBAAA;AACF,iBAAA,CAAC,CACH,CAAA;aACF;AAED,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;AACrD,YAAA,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AACvC,YAAA,MAAM,eAAe,GAAG,UAAU,GAAG,gBAAgB,GAAG,UAAU,GAAG,gBAAgB,CAAA;AACrF,YAAA,MAAM,eAAe,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,CAAA;AAEnF,YAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,eAAe,EAAE,SAAS,EAAE,EAAE;AAC5E,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACxB,oBAAA,IAAI,SAAS,GAAG,UAAU,GAAG,eAAe,EAAE;AAC5C,wBAAA,SAAS,GAAG,UAAU,GAAG,eAAe,CAAA;wBACxC,SAAQ;qBACT;iBACF;gBAED,IAAI,SAAS,GAAG,UAAU,IAAI,SAAS,GAAG,SAAS,EAAE;AACnD,oBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;iBAC7D;qBAAM;oBACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;iBAC9C;aACF;AACD,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;SAC5D;AACD,QAAA,oBAAoB,CAAE,SAA8C,EAAA;AAClE,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AAC7C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;AAC/B,YAAA,MAAM,KAAK,GAAQ;gBACjB,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA;AACpC,gBAAA,KAAK,EAAE;AACL,oBAAA,UAAU,EAAE,QAAQ;oBACpB,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,GAAG;oBACnC,KAAK,EAAE,YAAY,GAAG,GAAG,GAAG,MAAM;oBAClC,CAAC,YAAY,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,CAAC,GAAG;oBACzE,MAAM,EAAE,CAAC,CAAC;AACX,iBAAA;aACF,CAAA;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;SAC/C;AACF,KAAA;IACD,OAAO,GAAA;AACL,QAAA,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE3C,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AACrE,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;AAC/B,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5B,gBAAA,QAAQ,CAAC,UAAU,GAAG,mBAAmB,CAAA;aAC1C;iBAAM;AACL,gBAAA,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAA;aACzC;SACF;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAA;KAChC;IACD,OAAO,GAAA;QACL,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE7D,IAAI,wBAAwB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AACtD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;AAE/B,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5B,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;;;oBAIrB,QAAQ,gBAAgB,EAAE;AACxB,wBAAA,KAAK,UAAU;AACb,4BAAA,QAAQ,CAAC,UAAU,GAAG,CAAC,YAAY,CAAA;4BACnC,MAAK;AACP,wBAAA,KAAK,oBAAoB;AACvB,4BAAA,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAA;4BAClC,MAAK;wBACP,SAAS;AACP,4BAAA,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAA;4BAC7C,QAAQ,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAA;4BAC9D,MAAK;yBACN;qBACF;iBACF;qBAAM;AACL,oBAAA,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAA;iBACnC;aACF;iBAAM;AACL,gBAAA,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAA;aAClC;SACF;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAA;KAC3B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,yBAAyB,KAAK,IAAI,EAAE;AAC3C,YAAA,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;SAC9C;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;KACtB;IAED,MAAM,GAAA;;AACJ,QAAA,MAAM,EACJ,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,GAAG,KAAK,EACjB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB;AAC5D,YAAA,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa;AACpE,YAAA,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB;AACxE,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,UAAU,EAAE,UAAU;AACvB,SAAA,CAAC,CAAA;QACF,MAAM,EACJ,YAAY,EACZ,wBAAwB,EACzB,GAAG,IAAI,CAAC,KAAK,CAAA;AAEd,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,iBAAiB,GAAQ;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,GAAG,EAAE,IAAI,CAAC,eAAe;YACzB,MAAM;YACN,QAAQ;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;AAChC,gBAAA,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;AAC9B,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,uBAAuB,EAAE,OAAO;AAChC,gBAAA,UAAU,EAAE,WAAW;gBACvB,SAAS;AACV,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;AAClC,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;AAClC,aAAA;AACD,YAAA,EAAE,EAAE;AACF,gBAAA,MAAM,EAAE,YAAY;sBAChB,IAAI,CAAC,mBAAmB;sBACxB,IAAI,CAAC,iBAAiB;AAC3B,aAAA;SACF,CAAA;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,YAAY,EAAE;AAChB,gBAAA,iBAAiB,CAAC,UAAU,GAAG,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAA;aACtG;iBAAM;AACL,gBAAA,iBAAiB,CAAC,SAAS,GAAG,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA;aACpG;SACF;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE;YACzD,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAC1E,YAAA,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,MAAM,EAAC,GAAG,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;YACnB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,MAAM,EAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;YACtB,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC9E,SAAA,CAAC,CAAA;KACH;AACF,CAAA,CAAC;;;;"}
@@ -1,2 +1 @@
1
- declare const IS_SCROLLING_DEBOUNCE_INTERVAL = 200;
2
- export { IS_SCROLLING_DEBOUNCE_INTERVAL };
1
+ export declare const IS_SCROLLING_DEBOUNCE_INTERVAL = 200;
@@ -1,5 +1,5 @@
1
- import { BaseEventOrig, BaseEventOrigFunction, ScrollViewProps, StandardProps } from '@tarojs/components';
2
- import { Component, ComponentType, CSSProperties } from 'react';
1
+ import type { BaseEventOrig, BaseEventOrigFunction, ScrollViewProps, StandardProps } from '@tarojs/components';
2
+ import type { Component, ComponentType, CSSProperties } from 'react';
3
3
  interface VirtualWaterfallProps<T = any> extends Omit<StandardProps, 'children'> {
4
4
  /** 瀑布流占用列数量,默认值依照 width / columnWidth ||= 2 计算 */
5
5
  column?: number;
@@ -95,6 +95,10 @@ interface VirtualWaterfallProps<T = any> extends Omit<StandardProps, 'children'>
95
95
  /** 触底事件 */
96
96
  onScrollToLower?: () => void;
97
97
  style?: CSSProperties;
98
+ /** 这是一个 fix 类型的参数,针对于各端小程序,在层级太深的情况下会生成 Taro 的自定义组件,导致一般的选择器字符会查询不到对应的元素,需要加上类似 #container >>> 的查询前缀
99
+ * @default ''
100
+ */
101
+ queryPrefix?: string;
98
102
  }
99
103
  declare namespace VirtualWaterfallProps {
100
104
  interface IVirtualWaterfallEventDetail extends ScrollViewProps.onScrollDetail {
@@ -215,23 +219,10 @@ declare namespace VirtualWaterfallProps {
215
219
  * @see https://taro-docs.jd.com/docs/virtual-waterfall
216
220
  */
217
221
  declare class VirtualWaterfallComponent extends Component<VirtualWaterfallProps> {
218
- /**
219
- * 滚动到指定的地点。
220
- */
221
222
  /**
222
223
  * 滚动到指定的地点。
223
224
  */
224
225
  scrollTo(scrollOffset: number, enhanced?: boolean): void;
225
- /** 滚动到指定的条目。
226
- * @param index 指定条目的索引。
227
- * @param align 滚动到指定条目时,指定条目的位置。默认值为 auto。
228
- *
229
- * - start:指定条目在可视区域的顶部。
230
- * - end:指定条目在可视区域的底部。
231
- * - center:指定条目在可视区域的中间。
232
- * - auto:尽可能滚动距离最小保证条目在可视区域中,如果已经在可视区域,就不滚动。
233
- * - smart:条目如果已经在可视区域,就不滚动;如果有部分在可视区域,尽可能滚动距离最小保证条目在可视区域中;如果条目完全不在可视区域,那就滚动到条目在可视区域居中显示。
234
- */
235
226
  /** 滚动到指定的条目。
236
227
  * @param index 指定条目的索引。
237
228
  * @param align 滚动到指定条目时,指定条目的位置。默认值为 auto。
@@ -244,6 +235,7 @@ declare class VirtualWaterfallComponent extends Component<VirtualWaterfallProps>
244
235
  */
245
236
  scrollToItem(index: number, align: 'start' | 'end' | 'center' | 'auto' | 'smart', enhanced?: boolean): void;
246
237
  }
247
- type VirtualWaterfall = VirtualWaterfallComponent;
238
+ declare type VirtualWaterfall = VirtualWaterfallComponent;
248
239
  declare const VirtualWaterfall: typeof VirtualWaterfallComponent;
249
- export { VirtualWaterfall as default, VirtualWaterfall, VirtualWaterfallProps };
240
+ export { VirtualWaterfall, VirtualWaterfallProps };
241
+ export default VirtualWaterfall;
@@ -1,4 +1,4 @@
1
- const VirtualWaterfall = (process.env.FRAMEWORK === 'vue' || process.env.FRAMEWORK === 'vue3')
1
+ const VirtualWaterfall = process.env.FRAMEWORK === 'vue3'
2
2
  ? require('./vue').default
3
3
  : require('./react').default;
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/virtual-waterfall/index.ts"],"sourcesContent":["import type { BaseEventOrig, BaseEventOrigFunction, ScrollViewProps, StandardProps } from '@tarojs/components'\nimport type { Component, ComponentType, CSSProperties } from 'react'\n\ninterface VirtualWaterfallProps<T = any> extends Omit<StandardProps, 'children'> {\n /** 瀑布流占用列数量,默认值依照 width / columnWidth ||= 2 计算 */\n column?: number\n /** 瀑布流单列宽度,默认值依照 width / column 计算 */\n columnWidth?: number\n /** 高度 */\n height: string | number\n /** 宽度 */\n width: string | number\n /** 子组件 */\n item: ComponentType<{\n /** 组件 ID */\n id: string\n /** 组件渲染的数据 */\n data: T[]\n /** 组件渲染数据的索引 */\n index: number\n /** 组件是否正在滚动,当 useIsScrolling 值为 true 时返回布尔值,否则返回 undefined */\n isScrolling?: boolean\n }>\n /** 列表的长度 */\n itemCount: number\n /** 渲染数据 */\n itemData: T[]\n /** 单项的大小 */\n itemSize: number | ((index?: number, itemData?: T[]) => number)\n /** 解开高度列表单项大小限制,默认值使用: itemSize。\n *\n * > Note: 通过 itemSize 设置的初始高度与子节点实际高度差异过大会导致隐患,建议将单页大小设置接近于现实高度,在该模式下可以提升用户体验。\n * > - unlimitedSize 模式下如果传入函数,只会调用一次用于设置初始值\n * > - 非 unlimitedSize 模式下如果传入函数,为避免性能问题,每个节点只会调用一次用于设置初始值\n * @default false\n */\n unlimitedSize?: boolean\n /** 布局方式\n * @default \"absolute\"\n */\n position?: 'absolute' | 'relative' | 'brick'\n /** 初始滚动偏移值 */\n initialScrollOffset?: number\n /** 在可视区域之外预渲染的距离,值设置得越高,快速滚动时出现白屏的概率就越小,相应地,每次滚动的性能会变得越差。\n * > 建议至少大于等于 itemSize 的最大值,但不要设置超过虚拟瀑布流高度。\n * @default 50\n */\n overscanDistance?: number\n /** 上下滚动预占位节点\n * @default 0\n */\n placeholderCount?: number\n /** 触顶事件触发时距页面顶部距离\n * @default 50\n */\n upperThreshold?: number\n /** 触底事件触发时距页面底部距离\n * @default 50\n */\n lowerThreshold?: number\n /** 是否注入 isScrolling 属性到 item 组件。这个参数一般用于实现滚动骨架屏(或其它 placeholder) 时比较有用。 */\n useIsScrolling?: boolean\n /** 通过 ScrollViewContext 优化组件滚动性能\n * @default true\n * @note 部分平台不支持,使用时请注意甄别\n */\n enhanced?: boolean\n /** 列表外部容器组件类型。\n * @default ScrollView\n */\n outerElementType?: ComponentType | string\n /** 列表内部容器组件类型。\n * @default View\n */\n innerElementType?: ComponentType | string\n /** 列表子节点容器组件类型。\n * @default View\n */\n itemElementType?: ComponentType | string\n /** 顶部区域 */\n renderTop?: ComponentType<{\n /** 组件 ID */\n id: string\n }>\n /** 底部区域 */\n renderBottom?: ComponentType<{\n /** 组件 ID */\n id: string\n }>\n /** 滚动时调用函数 */\n onScroll?: (event: VirtualWaterfallProps.IVirtualWaterfallEvent<VirtualWaterfallProps.IVirtualWaterfallEventDetail>) => void\n /** 调用平台原生的滚动监听函数。 */\n onScrollNative?: BaseEventOrigFunction<ScrollViewProps.onScrollDetail>\n /** 触顶事件 */\n onScrollToUpper?: () => void\n /** 触底事件 */\n onScrollToLower?: () => void\n style?: CSSProperties\n}\n\ndeclare namespace VirtualWaterfallProps {\n interface IVirtualWaterfallEventDetail extends ScrollViewProps.onScrollDetail {\n scrollLeft: number\n scrollTop: number\n scrollHeight: number\n scrollWidth: number\n clientHeight: number\n clientWidth: number\n diffOffset: number\n }\n\n interface IVirtualWaterfallEvent<T extends ScrollViewProps.onScrollDetail = ScrollViewProps.onScrollDetail> extends BaseEventOrig {\n /** 滚动方向,可能值为 forward 往前, backward 往后。 */\n scrollDirection: 'forward' | 'backward'\n /** 滚动距离 */\n scrollOffset: number\n /** 当滚动是由 scrollTo() 或 scrollToItem() 调用时返回 true,否则返回 false */\n scrollUpdateWasRequested: boolean\n /** 滚动信息 */\n detail: T\n }\n}\n\n/** 虚拟瀑布流\n * @classification viewContainer\n * @supported weapp, swan, alipay, tt, qq, jd, h5\n * @example_react\n * ```tsx\n * import { VirtualWaterfall } from `@tarojs/components-advanced`\n *\n * function buildData (offset = 0) {\n * return Array(100).fill(0).map((_, i) => i + offset);\n * }\n *\n * const Row = React.memo(({ id, index, data }) => {\n * return (\n * <View id={id} className={index % 2 ? 'ListItemOdd' : 'ListItemEven'}>\n * Row {index}\n * </View>\n * );\n * })\n *\n * export default class Index extends Component {\n * state = {\n * data: buildData(0),\n * }\n *\n * render() {\n * const { data } = this.state\n * const dataLen = data.length\n * return (\n * <VirtualWaterfall\n * height={500} // 列表的高度\n * width='100%' // 列表的宽度\n * item={Row} // 列表单项组件,这里只能传入一个组件\n * itemData={data} // 渲染列表的数据\n * itemCount={dataLen} // 渲染列表的长度\n * itemSize={100} // 列表单项的高度\n * />\n * );\n * }\n * }\n * ```\n * @example_vue\n * ```js\n * // app.js 入口文件\n * import Vue from 'vue'\n * import { VirtualWaterfall } from `@tarojs/components-advanced`\n *\n * Vue.use(VirtualWaterfall)\n * ```\n * ```js\n * <! –– row.vue 单项组件 ––>\n * <template>\n * <view\n * :class=\"index % 2 ? 'ListItemOdd' : 'ListItemEven'\"\n * >\n * Row {{ index }} : {{ data[index] }}\n * </view>\n * </template>\n *\n * <script>\n * export default {\n * props: ['index', 'data']\n * }\n * </script>\n * ```\n * ```js\n * <! –– page.vue 页面组件 ––>\n * <template>\n * <virtual-waterfall\n * :height=\"500\"\n * :item-data=\"list\"\n * :item-count=\"list.length\"\n * :item-size=\"100\"\n * :item=\"Row\"\n * width=\"100%\"\n * />\n * </template>\n *\n * <script>\n * import Row from './row.vue'\n * import { markRaw } from 'vue'\n *\n * function buildData (offset = 0) {\n * return Array(100).fill(0).map((_, i) => i + offset)\n * }\n *\n * export default {\n * data() {\n * return {\n * Row: markRaw(Row),\n * list: buildData(0)\n * }\n * },\n * }\n * </script>\n * ```\n * @see https://taro-docs.jd.com/docs/virtual-waterfall\n */\ndeclare class VirtualWaterfallComponent extends Component<VirtualWaterfallProps> {\n /**\n * 滚动到指定的地点。\n */\n public scrollTo(scrollOffset: number, enhanced?: boolean): void\n\n /** 滚动到指定的条目。\n * @param index 指定条目的索引。\n * @param align 滚动到指定条目时,指定条目的位置。默认值为 auto。\n *\n * - start:指定条目在可视区域的顶部。\n * - end:指定条目在可视区域的底部。\n * - center:指定条目在可视区域的中间。\n * - auto:尽可能滚动距离最小保证条目在可视区域中,如果已经在可视区域,就不滚动。\n * - smart:条目如果已经在可视区域,就不滚动;如果有部分在可视区域,尽可能滚动距离最小保证条目在可视区域中;如果条目完全不在可视区域,那就滚动到条目在可视区域居中显示。\n */\n public scrollToItem(index: number, align: 'start' | 'end' | 'center' | 'auto' | 'smart', enhanced?: boolean): void\n}\n\ndeclare type VirtualWaterfall = VirtualWaterfallComponent\nconst VirtualWaterfall: typeof VirtualWaterfallComponent = (process.env.FRAMEWORK === 'vue' || process.env.FRAMEWORK === 'vue3')\n ? require('./vue').default\n : require('./react').default\n\nexport { VirtualWaterfall, VirtualWaterfallProps }\nexport default VirtualWaterfall\n"],"names":[],"mappings":"AAgPA,MAAM,gBAAgB,GAAqC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;AAC7H,MAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO;AAC1B,MAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/virtual-waterfall/index.ts"],"sourcesContent":["import type { BaseEventOrig, BaseEventOrigFunction, ScrollViewProps, StandardProps } from '@tarojs/components'\nimport type { Component, ComponentType, CSSProperties } from 'react'\n\ninterface VirtualWaterfallProps<T = any> extends Omit<StandardProps, 'children'> {\n /** 瀑布流占用列数量,默认值依照 width / columnWidth ||= 2 计算 */\n column?: number\n /** 瀑布流单列宽度,默认值依照 width / column 计算 */\n columnWidth?: number\n /** 高度 */\n height: string | number\n /** 宽度 */\n width: string | number\n /** 子组件 */\n item: ComponentType<{\n /** 组件 ID */\n id: string\n /** 组件渲染的数据 */\n data: T[]\n /** 组件渲染数据的索引 */\n index: number\n /** 组件是否正在滚动,当 useIsScrolling 值为 true 时返回布尔值,否则返回 undefined */\n isScrolling?: boolean\n }>\n /** 列表的长度 */\n itemCount: number\n /** 渲染数据 */\n itemData: T[]\n /** 单项的大小 */\n itemSize: number | ((index?: number, itemData?: T[]) => number)\n /** 解开高度列表单项大小限制,默认值使用: itemSize。\n *\n * > Note: 通过 itemSize 设置的初始高度与子节点实际高度差异过大会导致隐患,建议将单页大小设置接近于现实高度,在该模式下可以提升用户体验。\n * > - unlimitedSize 模式下如果传入函数,只会调用一次用于设置初始值\n * > - 非 unlimitedSize 模式下如果传入函数,为避免性能问题,每个节点只会调用一次用于设置初始值\n * @default false\n */\n unlimitedSize?: boolean\n /** 布局方式\n * @default \"absolute\"\n */\n position?: 'absolute' | 'relative' | 'brick'\n /** 初始滚动偏移值 */\n initialScrollOffset?: number\n /** 在可视区域之外预渲染的距离,值设置得越高,快速滚动时出现白屏的概率就越小,相应地,每次滚动的性能会变得越差。\n * > 建议至少大于等于 itemSize 的最大值,但不要设置超过虚拟瀑布流高度。\n * @default 50\n */\n overscanDistance?: number\n /** 上下滚动预占位节点\n * @default 0\n */\n placeholderCount?: number\n /** 触顶事件触发时距页面顶部距离\n * @default 50\n */\n upperThreshold?: number\n /** 触底事件触发时距页面底部距离\n * @default 50\n */\n lowerThreshold?: number\n /** 是否注入 isScrolling 属性到 item 组件。这个参数一般用于实现滚动骨架屏(或其它 placeholder) 时比较有用。 */\n useIsScrolling?: boolean\n /** 通过 ScrollViewContext 优化组件滚动性能\n * @default true\n * @note 部分平台不支持,使用时请注意甄别\n */\n enhanced?: boolean\n /** 列表外部容器组件类型。\n * @default ScrollView\n */\n outerElementType?: ComponentType | string\n /** 列表内部容器组件类型。\n * @default View\n */\n innerElementType?: ComponentType | string\n /** 列表子节点容器组件类型。\n * @default View\n */\n itemElementType?: ComponentType | string\n /** 顶部区域 */\n renderTop?: ComponentType<{\n /** 组件 ID */\n id: string\n }>\n /** 底部区域 */\n renderBottom?: ComponentType<{\n /** 组件 ID */\n id: string\n }>\n /** 滚动时调用函数 */\n onScroll?: (event: VirtualWaterfallProps.IVirtualWaterfallEvent<VirtualWaterfallProps.IVirtualWaterfallEventDetail>) => void\n /** 调用平台原生的滚动监听函数。 */\n onScrollNative?: BaseEventOrigFunction<ScrollViewProps.onScrollDetail>\n /** 触顶事件 */\n onScrollToUpper?: () => void\n /** 触底事件 */\n onScrollToLower?: () => void\n style?: CSSProperties\n /** 这是一个 fix 类型的参数,针对于各端小程序,在层级太深的情况下会生成 Taro 的自定义组件,导致一般的选择器字符会查询不到对应的元素,需要加上类似 #container >>> 的查询前缀\n * @default ''\n */\n queryPrefix?: string\n}\n\ndeclare namespace VirtualWaterfallProps {\n interface IVirtualWaterfallEventDetail extends ScrollViewProps.onScrollDetail {\n scrollLeft: number\n scrollTop: number\n scrollHeight: number\n scrollWidth: number\n clientHeight: number\n clientWidth: number\n diffOffset: number\n }\n\n interface IVirtualWaterfallEvent<T extends ScrollViewProps.onScrollDetail = ScrollViewProps.onScrollDetail> extends BaseEventOrig {\n /** 滚动方向,可能值为 forward 往前, backward 往后。 */\n scrollDirection: 'forward' | 'backward'\n /** 滚动距离 */\n scrollOffset: number\n /** 当滚动是由 scrollTo() 或 scrollToItem() 调用时返回 true,否则返回 false */\n scrollUpdateWasRequested: boolean\n /** 滚动信息 */\n detail: T\n }\n}\n\n/** 虚拟瀑布流\n * @classification viewContainer\n * @supported weapp, swan, alipay, tt, qq, jd, h5\n * @example_react\n * ```tsx\n * import { VirtualWaterfall } from `@tarojs/components-advanced`\n *\n * function buildData (offset = 0) {\n * return Array(100).fill(0).map((_, i) => i + offset);\n * }\n *\n * const Row = React.memo(({ id, index, data }) => {\n * return (\n * <View id={id} className={index % 2 ? 'ListItemOdd' : 'ListItemEven'}>\n * Row {index}\n * </View>\n * );\n * })\n *\n * export default class Index extends Component {\n * state = {\n * data: buildData(0),\n * }\n *\n * render() {\n * const { data } = this.state\n * const dataLen = data.length\n * return (\n * <VirtualWaterfall\n * height={500} // 列表的高度\n * width='100%' // 列表的宽度\n * item={Row} // 列表单项组件,这里只能传入一个组件\n * itemData={data} // 渲染列表的数据\n * itemCount={dataLen} // 渲染列表的长度\n * itemSize={100} // 列表单项的高度\n * />\n * );\n * }\n * }\n * ```\n * @example_vue\n * ```js\n * // app.js 入口文件\n * import Vue from 'vue'\n * import { VirtualWaterfall } from `@tarojs/components-advanced`\n *\n * Vue.use(VirtualWaterfall)\n * ```\n * ```js\n * <! –– row.vue 单项组件 ––>\n * <template>\n * <view\n * :class=\"index % 2 ? 'ListItemOdd' : 'ListItemEven'\"\n * >\n * Row {{ index }} : {{ data[index] }}\n * </view>\n * </template>\n *\n * <script>\n * export default {\n * props: ['index', 'data']\n * }\n * </script>\n * ```\n * ```js\n * <! –– page.vue 页面组件 ––>\n * <template>\n * <virtual-waterfall\n * :height=\"500\"\n * :item-data=\"list\"\n * :item-count=\"list.length\"\n * :item-size=\"100\"\n * :item=\"Row\"\n * width=\"100%\"\n * />\n * </template>\n *\n * <script>\n * import Row from './row.vue'\n * import { markRaw } from 'vue'\n *\n * function buildData (offset = 0) {\n * return Array(100).fill(0).map((_, i) => i + offset)\n * }\n *\n * export default {\n * data() {\n * return {\n * Row: markRaw(Row),\n * list: buildData(0)\n * }\n * },\n * }\n * </script>\n * ```\n * @see https://taro-docs.jd.com/docs/virtual-waterfall\n */\ndeclare class VirtualWaterfallComponent extends Component<VirtualWaterfallProps> {\n /**\n * 滚动到指定的地点。\n */\n public scrollTo(scrollOffset: number, enhanced?: boolean): void\n\n /** 滚动到指定的条目。\n * @param index 指定条目的索引。\n * @param align 滚动到指定条目时,指定条目的位置。默认值为 auto。\n *\n * - start:指定条目在可视区域的顶部。\n * - end:指定条目在可视区域的底部。\n * - center:指定条目在可视区域的中间。\n * - auto:尽可能滚动距离最小保证条目在可视区域中,如果已经在可视区域,就不滚动。\n * - smart:条目如果已经在可视区域,就不滚动;如果有部分在可视区域,尽可能滚动距离最小保证条目在可视区域中;如果条目完全不在可视区域,那就滚动到条目在可视区域居中显示。\n */\n public scrollToItem(index: number, align: 'start' | 'end' | 'center' | 'auto' | 'smart', enhanced?: boolean): void\n}\n\ndeclare type VirtualWaterfall = VirtualWaterfallComponent\nconst VirtualWaterfall: typeof VirtualWaterfallComponent = process.env.FRAMEWORK === 'vue3'\n ? require('./vue').default\n : require('./react').default\n\nexport { VirtualWaterfall, VirtualWaterfallProps }\nexport default VirtualWaterfall\n"],"names":[],"mappings":"AAoPM,MAAA,gBAAgB,GAAqC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;AACzF,MAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO;AAC1B,MAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
- import { IProps } from "./preset.js";
1
+ import type { IProps } from './preset';
2
2
  type TProps = Pick<IProps, 'column' | 'columnWidth' | 'width' | 'height' | 'itemCount' | 'itemData' | 'itemSize' | 'overscanDistance' | 'unlimitedSize'>;
3
- declare class ListMap {
3
+ export default class ListMap {
4
4
  protected props: TProps;
5
5
  protected refresh?: TFunc;
6
6
  _columns: number;
@@ -32,7 +32,6 @@ declare class ListMap {
32
32
  setSizeByPosition(column?: number, row?: number, itemSize?: number, itemIndex?: number): void;
33
33
  getSize(itemIndex?: number): number;
34
34
  getSizeByPosition(column?: number, row?: number, itemIndex?: number): number;
35
- // 不支持 normal 模式
36
35
  getColumnList(column: number): [number, number][];
37
36
  getColumnLength(columnIndex: number): number;
38
37
  getColumnSize(columnIndex?: number): number;
@@ -47,4 +46,4 @@ declare class ListMap {
47
46
  getOffsetForIndexAndAlignment(index: number, align: string, scrollOffset: number): number;
48
47
  compareSizeByPosition(column?: number, row?: number, size?: number): boolean;
49
48
  }
50
- export { ListMap as default };
49
+ export {};