@weapp-vite/web 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +1 -2
  2. package/dist/compiler/wxml/attributes.mjs +12 -4
  3. package/dist/compiler/wxml/attributes.mjs.map +1 -1
  4. package/dist/compiler/wxml/compile.mjs +26 -8
  5. package/dist/compiler/wxml/compile.mjs.map +1 -1
  6. package/dist/compiler/wxml/dependency.mjs +1 -2
  7. package/dist/compiler/wxml/interpolation.mjs +13 -3
  8. package/dist/compiler/wxml/interpolation.mjs.map +1 -1
  9. package/dist/compiler/wxml/nativeTags.mjs +60 -0
  10. package/dist/compiler/wxml/nativeTags.mjs.map +1 -0
  11. package/dist/compiler/wxml/navigation.mjs +1 -2
  12. package/dist/compiler/wxml/parser.mjs +1 -2
  13. package/dist/compiler/wxml/prepare.mjs +1 -2
  14. package/dist/compiler/wxml/renderer.mjs +1 -2
  15. package/dist/compiler/wxml/specialNodes.mjs +1 -2
  16. package/dist/compiler/wxml/types.d.mts +0 -2
  17. package/dist/compiler/wxml/unknownTags.mjs +33 -0
  18. package/dist/compiler/wxml/unknownTags.mjs.map +1 -0
  19. package/dist/compiler/wxs.mjs +1 -2
  20. package/dist/css/wxss.d.mts +2 -19
  21. package/dist/css/wxss.mjs +5 -12
  22. package/dist/css/wxss.mjs.map +1 -1
  23. package/dist/index.d.mts +8 -3
  24. package/dist/index.mjs +8 -5
  25. package/dist/plugin/assets.d.mts +0 -2
  26. package/dist/plugin/assets.mjs +1 -2
  27. package/dist/plugin/constants.mjs +1 -2
  28. package/dist/plugin/dependencyScan.mjs +1 -2
  29. package/dist/plugin/entry.mjs +6 -4
  30. package/dist/plugin/entry.mjs.map +1 -1
  31. package/dist/plugin/files.mjs +1 -2
  32. package/dist/plugin/hostTypes.d.mts +0 -2
  33. package/dist/plugin/index.d.mts +0 -2
  34. package/dist/plugin/index.mjs +5 -5
  35. package/dist/plugin/index.mjs.map +1 -1
  36. package/dist/plugin/layout.mjs +1 -2
  37. package/dist/plugin/navigation.mjs +1 -2
  38. package/dist/plugin/packageResolution.mjs +1 -2
  39. package/dist/plugin/path.mjs +1 -2
  40. package/dist/plugin/register.mjs +1 -2
  41. package/dist/plugin/scan.mjs +1 -2
  42. package/dist/plugin/scanConfig.mjs +1 -2
  43. package/dist/plugin/scanSfc.mjs +1 -2
  44. package/dist/plugin/sfcHmr.mjs +1 -2
  45. package/dist/plugin/state.mjs +1 -2
  46. package/dist/plugin/styleModule.mjs +1 -2
  47. package/dist/plugin/types.d.mts +2 -3
  48. package/dist/plugin/vueSfc.mjs +1 -2
  49. package/dist/runtime/appShell/container.mjs +1 -2
  50. package/dist/runtime/appShell/tabBar/index.mjs +1 -2
  51. package/dist/runtime/appShell/tabBar/style.mjs +1 -2
  52. package/dist/runtime/appStyle.mjs +1 -2
  53. package/dist/runtime/button/helpers.mjs +1 -2
  54. package/dist/runtime/button/index.d.mts +0 -2
  55. package/dist/runtime/button/index.mjs +1 -2
  56. package/dist/runtime/button/style.mjs +1 -2
  57. package/dist/runtime/component/behavior.mjs +1 -2
  58. package/dist/runtime/component/constants.mjs +1 -2
  59. package/dist/runtime/component/dom.mjs +1 -2
  60. package/dist/runtime/component/element.mjs +9 -2
  61. package/dist/runtime/component/element.mjs.map +1 -1
  62. package/dist/runtime/component/events.mjs +4 -4
  63. package/dist/runtime/component/events.mjs.map +1 -1
  64. package/dist/runtime/component/index.d.mts +0 -2
  65. package/dist/runtime/component/index.mjs +1 -2
  66. package/dist/runtime/component/observers.mjs +1 -2
  67. package/dist/runtime/component/publicInstance.mjs +1 -2
  68. package/dist/runtime/component/relations.mjs +1 -2
  69. package/dist/runtime/component/slots.mjs +1 -2
  70. package/dist/runtime/component/state.mjs +1 -2
  71. package/dist/runtime/component/types.d.mts +0 -2
  72. package/dist/runtime/component/utils.mjs +1 -2
  73. package/dist/runtime/component/virtualHost.mjs +1 -2
  74. package/dist/runtime/componentEvents.mjs +1 -2
  75. package/dist/runtime/dataset.mjs +49 -0
  76. package/dist/runtime/dataset.mjs.map +1 -0
  77. package/dist/runtime/datasetBinding.d.mts +13 -0
  78. package/dist/runtime/datasetBinding.mjs +40 -0
  79. package/dist/runtime/datasetBinding.mjs.map +1 -0
  80. package/dist/runtime/eventBinding.d.mts +0 -2
  81. package/dist/runtime/eventBinding.mjs +1 -2
  82. package/dist/runtime/execution.d.mts +0 -2
  83. package/dist/runtime/execution.mjs +1 -2
  84. package/dist/runtime/host/index.d.mts +0 -2
  85. package/dist/runtime/host/index.mjs +1 -2
  86. package/dist/runtime/host/types.d.mts +0 -2
  87. package/dist/runtime/hostGlobals.d.mts +0 -2
  88. package/dist/runtime/hostGlobals.mjs +1 -2
  89. package/dist/runtime/index.d.mts +8 -3
  90. package/dist/runtime/index.mjs +9 -7
  91. package/dist/runtime/index.mjs.map +1 -1
  92. package/dist/runtime/inlineStyle.d.mts +5 -0
  93. package/dist/runtime/inlineStyle.mjs +21 -0
  94. package/dist/runtime/inlineStyle.mjs.map +1 -0
  95. package/dist/runtime/inputHandlerResult.mjs +1 -2
  96. package/dist/runtime/legacyTemplate/dataset.mjs +53 -0
  97. package/dist/runtime/legacyTemplate/dataset.mjs.map +1 -0
  98. package/dist/runtime/legacyTemplate/dom.mjs +20 -5
  99. package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
  100. package/dist/runtime/legacyTemplate/expression.mjs +1 -2
  101. package/dist/runtime/legacyTemplate/index.d.mts +0 -2
  102. package/dist/runtime/legacyTemplate/index.mjs +23 -16
  103. package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
  104. package/dist/runtime/legacyTemplate/types.d.mts +0 -2
  105. package/dist/runtime/nativeComponents/canvas/index.mjs +1 -2
  106. package/dist/runtime/nativeComponents/checkbox.mjs +1 -2
  107. package/dist/runtime/nativeComponents/cover/index.mjs +1 -2
  108. package/dist/runtime/nativeComponents/form.d.mts +0 -2
  109. package/dist/runtime/nativeComponents/form.mjs +1 -2
  110. package/dist/runtime/nativeComponents/formControl.mjs +1 -2
  111. package/dist/runtime/nativeComponents/helpers.mjs +1 -2
  112. package/dist/runtime/nativeComponents/icon/helpers.mjs +1 -2
  113. package/dist/runtime/nativeComponents/icon/index.mjs +1 -2
  114. package/dist/runtime/nativeComponents/icon/style.mjs +1 -2
  115. package/dist/runtime/nativeComponents/image.d.mts +0 -2
  116. package/dist/runtime/nativeComponents/image.mjs +1 -2
  117. package/dist/runtime/nativeComponents/index.d.mts +1 -3
  118. package/dist/runtime/nativeComponents/index.mjs +3 -3
  119. package/dist/runtime/nativeComponents/index.mjs.map +1 -1
  120. package/dist/runtime/nativeComponents/input.d.mts +0 -2
  121. package/dist/runtime/nativeComponents/input.mjs +1 -2
  122. package/dist/runtime/nativeComponents/label.mjs +1 -2
  123. package/dist/runtime/nativeComponents/mediaRegistry.mjs +1 -2
  124. package/dist/runtime/nativeComponents/movable/helpers.mjs +1 -2
  125. package/dist/runtime/nativeComponents/movable/index.mjs +1 -2
  126. package/dist/runtime/nativeComponents/navigator.mjs +1 -2
  127. package/dist/runtime/nativeComponents/picker/editors.mjs +1 -2
  128. package/dist/runtime/nativeComponents/picker/helpers.mjs +1 -2
  129. package/dist/runtime/nativeComponents/picker/index.mjs +1 -2
  130. package/dist/runtime/nativeComponents/picker/style.mjs +1 -2
  131. package/dist/runtime/nativeComponents/pickerView/column.mjs +1 -2
  132. package/dist/runtime/nativeComponents/pickerView/helpers.mjs +1 -2
  133. package/dist/runtime/nativeComponents/pickerView/index.mjs +1 -2
  134. package/dist/runtime/nativeComponents/pickerView/style.mjs +1 -2
  135. package/dist/runtime/nativeComponents/primitives.mjs +1 -2
  136. package/dist/runtime/nativeComponents/progress/helpers.mjs +1 -2
  137. package/dist/runtime/nativeComponents/progress/index.mjs +1 -2
  138. package/dist/runtime/nativeComponents/progress/style.mjs +1 -2
  139. package/dist/runtime/nativeComponents/radio.mjs +1 -2
  140. package/dist/runtime/nativeComponents/richText/index.mjs +1 -2
  141. package/dist/runtime/nativeComponents/scrollView/boundaries.mjs +62 -0
  142. package/dist/runtime/nativeComponents/scrollView/boundaries.mjs.map +1 -0
  143. package/dist/runtime/nativeComponents/{scrollView.d.mts → scrollView/helpers.d.mts} +4 -5
  144. package/dist/runtime/nativeComponents/scrollView/helpers.mjs +14 -0
  145. package/dist/runtime/nativeComponents/scrollView/helpers.mjs.map +1 -0
  146. package/dist/runtime/nativeComponents/scrollView/index.mjs +193 -0
  147. package/dist/runtime/nativeComponents/scrollView/index.mjs.map +1 -0
  148. package/dist/runtime/nativeComponents/scrollView/position.mjs +43 -0
  149. package/dist/runtime/nativeComponents/scrollView/position.mjs.map +1 -0
  150. package/dist/runtime/nativeComponents/slider/helpers.mjs +1 -2
  151. package/dist/runtime/nativeComponents/slider/index.mjs +1 -2
  152. package/dist/runtime/nativeComponents/slider/style.mjs +1 -2
  153. package/dist/runtime/nativeComponents/style.mjs +1 -2
  154. package/dist/runtime/nativeComponents/swiper/helpers.mjs +1 -2
  155. package/dist/runtime/nativeComponents/swiper/index.mjs +1 -2
  156. package/dist/runtime/nativeComponents/swiper/item.mjs +1 -2
  157. package/dist/runtime/nativeComponents/swiper/style.mjs +1 -2
  158. package/dist/runtime/nativeComponents/switch.d.mts +0 -2
  159. package/dist/runtime/nativeComponents/switch.mjs +1 -2
  160. package/dist/runtime/nativeComponents/textarea.d.mts +0 -2
  161. package/dist/runtime/nativeComponents/textarea.mjs +1 -2
  162. package/dist/runtime/nativeComponents/video/helpers.d.mts +0 -2
  163. package/dist/runtime/nativeComponents/video/helpers.mjs +1 -2
  164. package/dist/runtime/nativeComponents/video/index.mjs +1 -2
  165. package/dist/runtime/nativeComponents/video/style.mjs +1 -2
  166. package/dist/runtime/navigationBar/index.d.mts +0 -2
  167. package/dist/runtime/navigationBar/index.mjs +1 -2
  168. package/dist/runtime/navigationBar/style.mjs +1 -2
  169. package/dist/runtime/pageLayout.d.mts +0 -2
  170. package/dist/runtime/pageLayout.mjs +1 -2
  171. package/dist/runtime/polyfill/ad.mjs +1 -2
  172. package/dist/runtime/polyfill/animation.mjs +1 -2
  173. package/dist/runtime/polyfill/appState.mjs +1 -2
  174. package/dist/runtime/polyfill/async.d.mts +0 -2
  175. package/dist/runtime/polyfill/async.mjs +1 -2
  176. package/dist/runtime/polyfill/auth.mjs +1 -2
  177. package/dist/runtime/polyfill/authApi.mjs +1 -2
  178. package/dist/runtime/polyfill/background.mjs +1 -2
  179. package/dist/runtime/polyfill/canvasContext.mjs +1 -2
  180. package/dist/runtime/polyfill/capability.mjs +1 -2
  181. package/dist/runtime/polyfill/cloud.mjs +1 -2
  182. package/dist/runtime/polyfill/device.mjs +1 -2
  183. package/dist/runtime/polyfill/deviceApi.mjs +1 -2
  184. package/dist/runtime/polyfill/deviceAuthSystemApi.d.mts +0 -2
  185. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +1 -2
  186. package/dist/runtime/polyfill/eventBus.mjs +1 -2
  187. package/dist/runtime/polyfill/filePicker.mjs +1 -2
  188. package/dist/runtime/polyfill/fileSystemManager.mjs +1 -2
  189. package/dist/runtime/polyfill/files.mjs +1 -2
  190. package/dist/runtime/polyfill/font.mjs +1 -2
  191. package/dist/runtime/polyfill/index.d.mts +4 -4
  192. package/dist/runtime/polyfill/index.mjs +11 -4
  193. package/dist/runtime/polyfill/index.mjs.map +1 -1
  194. package/dist/runtime/polyfill/interaction.mjs +1 -2
  195. package/dist/runtime/polyfill/interactionApi.mjs +1 -2
  196. package/dist/runtime/polyfill/intersectionObserver.mjs +4 -4
  197. package/dist/runtime/polyfill/intersectionObserver.mjs.map +1 -1
  198. package/dist/runtime/polyfill/lifecycleEvents.d.mts +12 -0
  199. package/dist/runtime/polyfill/lifecycleEvents.mjs +67 -0
  200. package/dist/runtime/polyfill/lifecycleEvents.mjs.map +1 -0
  201. package/dist/runtime/polyfill/locale.mjs +1 -2
  202. package/dist/runtime/polyfill/location.mjs +1 -2
  203. package/dist/runtime/polyfill/locationApi.mjs +1 -2
  204. package/dist/runtime/polyfill/mediaActions.mjs +1 -2
  205. package/dist/runtime/polyfill/mediaApi/file.mjs +1 -2
  206. package/dist/runtime/polyfill/mediaApi/info.mjs +1 -2
  207. package/dist/runtime/polyfill/mediaApi/picker.mjs +1 -2
  208. package/dist/runtime/polyfill/mediaApi/preview.mjs +1 -2
  209. package/dist/runtime/polyfill/mediaApi/process.mjs +1 -2
  210. package/dist/runtime/polyfill/mediaInfo.mjs +1 -2
  211. package/dist/runtime/polyfill/mediaPicker.mjs +1 -2
  212. package/dist/runtime/polyfill/mediaProcess.mjs +1 -2
  213. package/dist/runtime/polyfill/menuApi.mjs +5 -3
  214. package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
  215. package/dist/runtime/polyfill/navigationBarRuntime.mjs +1 -2
  216. package/dist/runtime/polyfill/network/request.mjs +1 -2
  217. package/dist/runtime/polyfill/network/requestBridge.mjs +1 -2
  218. package/dist/runtime/polyfill/network/status.mjs +1 -2
  219. package/dist/runtime/polyfill/platformApi.mjs +1 -2
  220. package/dist/runtime/polyfill/platformRuntime.mjs +1 -2
  221. package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs +1 -2
  222. package/dist/runtime/polyfill/routeRuntime/dom.mjs +1 -2
  223. package/dist/runtime/polyfill/routeRuntime/events.d.mts +0 -2
  224. package/dist/runtime/polyfill/routeRuntime/events.mjs +1 -2
  225. package/dist/runtime/polyfill/routeRuntime/history.d.mts +0 -2
  226. package/dist/runtime/polyfill/routeRuntime/history.mjs +1 -2
  227. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +1 -2
  228. package/dist/runtime/polyfill/routeRuntime/options.d.mts +0 -2
  229. package/dist/runtime/polyfill/routeRuntime/options.mjs +1 -2
  230. package/dist/runtime/polyfill/routeRuntime/result.mjs +1 -2
  231. package/dist/runtime/polyfill/routeRuntime/scroll.mjs +37 -6
  232. package/dist/runtime/polyfill/routeRuntime/scroll.mjs.map +1 -1
  233. package/dist/runtime/polyfill/routeRuntime/stack.mjs +1 -2
  234. package/dist/runtime/polyfill/routeRuntime/url.mjs +1 -2
  235. package/dist/runtime/polyfill/routeRuntime.d.mts +2 -2
  236. package/dist/runtime/polyfill/routeRuntime.mjs +14 -5
  237. package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
  238. package/dist/runtime/polyfill/runtimeCapabilityApi.mjs +1 -2
  239. package/dist/runtime/polyfill/runtimeDataApi.d.mts +0 -2
  240. package/dist/runtime/polyfill/runtimeDataApi.mjs +1 -2
  241. package/dist/runtime/polyfill/runtimeInfra.mjs +1 -2
  242. package/dist/runtime/polyfill/runtimeOps.mjs +1 -2
  243. package/dist/runtime/polyfill/selectorQuery.mjs +3 -3
  244. package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
  245. package/dist/runtime/polyfill/storage.mjs +1 -2
  246. package/dist/runtime/polyfill/storageAsync.mjs +1 -2
  247. package/dist/runtime/polyfill/subscribe.mjs +1 -2
  248. package/dist/runtime/polyfill/system.mjs +1 -2
  249. package/dist/runtime/polyfill/systemApi.mjs +1 -2
  250. package/dist/runtime/polyfill/types/base.d.mts +0 -2
  251. package/dist/runtime/polyfill/types/common.d.mts +0 -2
  252. package/dist/runtime/polyfill/types/lifecycle.d.mts +12 -0
  253. package/dist/runtime/polyfill/types/locationRuntime.d.mts +0 -2
  254. package/dist/runtime/polyfill/types/mediaAuth.d.mts +0 -2
  255. package/dist/runtime/polyfill/types/platformRuntime.d.mts +0 -2
  256. package/dist/runtime/polyfill/types/systemAuth.d.mts +0 -2
  257. package/dist/runtime/polyfill/types/tabBarRuntime.d.mts +0 -2
  258. package/dist/runtime/polyfill/ui.mjs +1 -2
  259. package/dist/runtime/polyfill/uiFeedback.mjs +19 -5
  260. package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -1
  261. package/dist/runtime/polyfill/uiMediaApi.d.mts +8 -2
  262. package/dist/runtime/polyfill/uiMediaApi.mjs +20 -5
  263. package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
  264. package/dist/runtime/polyfill/videoContext.mjs +1 -2
  265. package/dist/runtime/polyfill/vkSession.mjs +1 -2
  266. package/dist/runtime/polyfill/windowResize.mjs +1 -2
  267. package/dist/runtime/polyfill/worker.mjs +1 -2
  268. package/dist/runtime/polyfill.d.mts +4 -2
  269. package/dist/runtime/renderContext.d.mts +0 -2
  270. package/dist/runtime/renderContext.mjs +5 -4
  271. package/dist/runtime/renderContext.mjs.map +1 -1
  272. package/dist/runtime/rpx.d.mts +0 -2
  273. package/dist/runtime/rpx.mjs +6 -6
  274. package/dist/runtime/rpx.mjs.map +1 -1
  275. package/dist/runtime/seo/index.d.mts +0 -2
  276. package/dist/runtime/seo/index.mjs +1 -2
  277. package/dist/runtime/style.d.mts +0 -2
  278. package/dist/runtime/style.mjs +1 -2
  279. package/dist/runtime/template.d.mts +0 -2
  280. package/dist/runtime/utils/object.mjs +1 -2
  281. package/dist/runtime/viewport/index.d.mts +0 -2
  282. package/dist/runtime/viewport/index.mjs +1 -2
  283. package/dist/runtime/viewport/style.mjs +2 -2
  284. package/dist/runtime/viewport/style.mjs.map +1 -1
  285. package/dist/runtime/viewport/types.d.mts +0 -2
  286. package/dist/runtime/warning.d.mts +0 -2
  287. package/dist/runtime/warning.mjs +1 -2
  288. package/dist/runtime/wevu.d.mts +0 -2
  289. package/dist/runtime/wevu.mjs +1 -2
  290. package/dist/shared/nativeComponents.mjs +10 -3
  291. package/dist/shared/nativeComponents.mjs.map +1 -1
  292. package/dist/shared/slugify.mjs +1 -2
  293. package/dist/shared/styleUnits/options.d.mts +24 -0
  294. package/dist/shared/styleUnits/options.mjs +13 -0
  295. package/dist/shared/styleUnits/options.mjs.map +1 -0
  296. package/dist/shared/styleUnits/value.mjs +63 -0
  297. package/dist/shared/styleUnits/value.mjs.map +1 -0
  298. package/dist/shared/tabBar.d.mts +0 -2
  299. package/dist/shared/tabBar.mjs +1 -2
  300. package/dist/shared/wxml.mjs +1 -2
  301. package/package.json +15 -13
  302. package/dist/runtime/nativeComponents/scrollView.mjs +0 -88
  303. package/dist/runtime/nativeComponents/scrollView.mjs.map +0 -1
@@ -3,7 +3,7 @@ import { isFormActivatable } from "./formControl.mjs";
3
3
  import { resolveContainingShadowRoot } from "./helpers.mjs";
4
4
  import { ensureNativeComponentStyle } from "./style.mjs";
5
5
 
6
- //#region src/runtime/nativeComponents/label.ts
6
+ // src/runtime/nativeComponents/label.ts
7
7
  const BaseElement = globalThis.HTMLElement ?? class {};
8
8
  const FORM_CONTROL_SELECTOR = "weapp-input, weapp-textarea, weapp-checkbox, weapp-radio, weapp-switch";
9
9
  function findElementById(root, id) {
@@ -31,6 +31,5 @@ var WeappLabel = class extends BaseElement {
31
31
  };
32
32
  };
33
33
 
34
- //#endregion
35
34
  export { WeappLabel };
36
35
  //# sourceMappingURL=label.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/mediaRegistry.ts
1
+ // src/runtime/nativeComponents/mediaRegistry.ts
2
2
  const mediaElements = /* @__PURE__ */ new Map();
3
3
  const mediaRegistrations = /* @__PURE__ */ new WeakMap();
4
4
  function normalizeMediaIds(ids) {
@@ -42,6 +42,5 @@ function resolveNativeMediaElement(kind, id) {
42
42
  return elements?.[elements.length - 1];
43
43
  }
44
44
 
45
- //#endregion
46
45
  export { registerNativeMediaElement, resolveNativeMediaElement, unregisterNativeMediaElement };
47
46
  //# sourceMappingURL=mediaRegistry.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/movable/helpers.ts
1
+ // src/runtime/nativeComponents/movable/helpers.ts
2
2
  function resolveMovableDirection(value) {
3
3
  if (value === "horizontal" || value === "vertical" || value === "none") return value;
4
4
  return "all";
@@ -18,6 +18,5 @@ function clampMovablePosition(position, bounds, direction, outOfBounds) {
18
18
  return next;
19
19
  }
20
20
 
21
- //#endregion
22
21
  export { clampMovablePosition, resolveMovableDirection, resolveMovableNumber };
23
22
  //# sourceMappingURL=helpers.mjs.map
@@ -3,7 +3,7 @@ import { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadow
3
3
  import { ensureNativeComponentStyle } from "../style.mjs";
4
4
  import { clampMovablePosition, resolveMovableDirection, resolveMovableNumber } from "./helpers.mjs";
5
5
 
6
- //#region src/runtime/nativeComponents/movable/index.ts
6
+ // src/runtime/nativeComponents/movable/index.ts
7
7
  const BaseElement = globalThis.HTMLElement ?? class {};
8
8
  var WeappMovableArea = class extends BaseElement {
9
9
  connectedCallback() {
@@ -112,6 +112,5 @@ var WeappMovableView = class extends BaseElement {
112
112
  };
113
113
  };
114
114
 
115
- //#endregion
116
115
  export { WeappMovableArea, WeappMovableView };
117
116
  //# sourceMappingURL=index.mjs.map
@@ -5,7 +5,7 @@ import { ensureNativeComponentStyle } from "./style.mjs";
5
5
  import { exitMiniProgram, navigateToMiniProgram } from "../polyfill/runtimeDataApi.mjs";
6
6
  import { navigateBack, navigateTo, reLaunch, redirectTo, switchTab } from "../polyfill/routeRuntime.mjs";
7
7
 
8
- //#region src/runtime/nativeComponents/navigator.ts
8
+ // src/runtime/nativeComponents/navigator.ts
9
9
  const BaseElement = globalThis.HTMLElement ?? class {};
10
10
  const defaultBridge = {
11
11
  navigateTo,
@@ -195,6 +195,5 @@ var WeappNavigator = class extends BaseElement {
195
195
  }
196
196
  };
197
197
 
198
- //#endregion
199
198
  export { WeappNavigator, executeNavigatorRequest, resolveNavigatorExtraData };
200
199
  //# sourceMappingURL=navigator.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { normalizePickerIndex, normalizePickerIndexes, resolvePickerColumns } from "./helpers.mjs";
2
2
 
3
- //#region src/runtime/nativeComponents/picker/editors.ts
3
+ // src/runtime/nativeComponents/picker/editors.ts
4
4
  function currentDateValue(fields) {
5
5
  const date = /* @__PURE__ */ new Date();
6
6
  const year = String(date.getFullYear()).padStart(4, "0");
@@ -69,6 +69,5 @@ function renderPickerEditors(options) {
69
69
  return renderRegionEditors(options);
70
70
  }
71
71
 
72
- //#endregion
73
72
  export { currentDateValue, renderPickerEditors };
74
73
  //# sourceMappingURL=editors.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/picker/helpers.ts
1
+ // src/runtime/nativeComponents/picker/helpers.ts
2
2
  const PICKER_MODES = [
3
3
  "selector",
4
4
  "multiSelector",
@@ -52,6 +52,5 @@ function createPickerChangeDetail(mode, value) {
52
52
  return { value };
53
53
  }
54
54
 
55
- //#endregion
56
55
  export { PICKER_MODES, createPickerChangeDetail, normalizePickerIndex, normalizePickerIndexes, resolvePickerColumns, resolvePickerMode };
57
56
  //# sourceMappingURL=helpers.mjs.map
@@ -6,7 +6,7 @@ import { PICKER_MODES, createPickerChangeDetail, normalizePickerIndex, normalize
6
6
  import { currentDateValue, renderPickerEditors } from "./editors.mjs";
7
7
  import { PICKER_SHADOW_STYLE } from "./style.mjs";
8
8
 
9
- //#region src/runtime/nativeComponents/picker/index.ts
9
+ // src/runtime/nativeComponents/picker/index.ts
10
10
  const BaseElement = globalThis.HTMLElement ?? class {};
11
11
  function parsePickerAttribute(value) {
12
12
  if (value === null || value === "") return value ?? void 0;
@@ -205,6 +205,5 @@ var WeappPicker = class extends BaseElement {
205
205
  };
206
206
  };
207
207
 
208
- //#endregion
209
208
  export { PICKER_MODES, WeappPicker, createPickerChangeDetail, normalizePickerIndex, normalizePickerIndexes, resolvePickerColumns, resolvePickerMode };
210
209
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/picker/style.ts
1
+ // src/runtime/nativeComponents/picker/style.ts
2
2
  const PICKER_SHADOW_STYLE = `
3
3
  :host { position: relative; cursor: pointer; }
4
4
  :host([disabled]) { cursor: not-allowed; opacity: 0.6; }
@@ -66,6 +66,5 @@ const PICKER_SHADOW_STYLE = `
66
66
  .editors input { align-self: center; height: 44px; padding: 0 12px; }
67
67
  `;
68
68
 
69
- //#endregion
70
69
  export { PICKER_SHADOW_STYLE };
71
70
  //# sourceMappingURL=style.mjs.map
@@ -4,7 +4,7 @@ import { ensureNativeComponentStyle } from "../style.mjs";
4
4
  import { PICKER_VIEW_COLUMN_CHANGE_EVENT, PICKER_VIEW_COLUMN_READY_EVENT, PICKER_VIEW_PICK_END_EVENT, PICKER_VIEW_PICK_START_EVENT } from "./helpers.mjs";
5
5
  import { PICKER_VIEW_COLUMN_SHADOW_STYLE } from "./style.mjs";
6
6
 
7
- //#region src/runtime/nativeComponents/pickerView/column.ts
7
+ // src/runtime/nativeComponents/pickerView/column.ts
8
8
  const BaseElement = globalThis.HTMLElement ?? class {};
9
9
  var WeappPickerViewColumn = class extends BaseElement {
10
10
  static observedAttributes = [...getNativeComponentDescriptor("picker-view-column").attributes];
@@ -129,6 +129,5 @@ var WeappPickerViewColumn = class extends BaseElement {
129
129
  };
130
130
  };
131
131
 
132
- //#endregion
133
132
  export { WeappPickerViewColumn };
134
133
  //# sourceMappingURL=column.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/pickerView/helpers.ts
1
+ // src/runtime/nativeComponents/pickerView/helpers.ts
2
2
  const PICKER_VIEW_COLUMN_CHANGE_EVENT = "weapp-picker-view-column-change";
3
3
  const PICKER_VIEW_COLUMN_READY_EVENT = "weapp-picker-view-column-ready";
4
4
  const PICKER_VIEW_PICK_START_EVENT = "weapp-picker-view-pick-start";
@@ -12,6 +12,5 @@ function normalizePickerViewValue(value, columnLengths) {
12
12
  return columnLengths.map((length, column) => normalizeColumnIndex(indexes[column], length));
13
13
  }
14
14
 
15
- //#endregion
16
15
  export { PICKER_VIEW_COLUMN_CHANGE_EVENT, PICKER_VIEW_COLUMN_READY_EVENT, PICKER_VIEW_PICK_END_EVENT, PICKER_VIEW_PICK_START_EVENT, normalizePickerViewValue };
17
16
  //# sourceMappingURL=helpers.mjs.map
@@ -5,7 +5,7 @@ import { PICKER_VIEW_COLUMN_CHANGE_EVENT, PICKER_VIEW_COLUMN_READY_EVENT, PICKER
5
5
  import { PICKER_VIEW_SHADOW_STYLE } from "./style.mjs";
6
6
  import { WeappPickerViewColumn } from "./column.mjs";
7
7
 
8
- //#region src/runtime/nativeComponents/pickerView/index.ts
8
+ // src/runtime/nativeComponents/pickerView/index.ts
9
9
  const BaseElement = globalThis.HTMLElement ?? class {};
10
10
  function parsePickerViewValue(value) {
11
11
  if (!value) return [];
@@ -123,6 +123,5 @@ var WeappPickerView = class extends BaseElement {
123
123
  };
124
124
  };
125
125
 
126
- //#endregion
127
126
  export { PICKER_VIEW_COLUMN_CHANGE_EVENT, PICKER_VIEW_COLUMN_READY_EVENT, PICKER_VIEW_PICK_END_EVENT, PICKER_VIEW_PICK_START_EVENT, WeappPickerView, WeappPickerViewColumn, normalizePickerViewValue };
128
127
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/pickerView/style.ts
1
+ // src/runtime/nativeComponents/pickerView/style.ts
2
2
  const PICKER_VIEW_SHADOW_STYLE = `
3
3
  :host { position: relative; min-width: 0; }
4
4
  .viewport { position: relative; display: flex; width: 100%; height: 100%; overflow: hidden; }
@@ -53,6 +53,5 @@ const PICKER_VIEW_COLUMN_SHADOW_STYLE = `
53
53
  }
54
54
  `;
55
55
 
56
- //#endregion
57
56
  export { PICKER_VIEW_COLUMN_SHADOW_STYLE, PICKER_VIEW_SHADOW_STYLE };
58
57
  //# sourceMappingURL=style.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { resolveContainingShadowRoot } from "./helpers.mjs";
2
2
  import { ensureNativeComponentStyle } from "./style.mjs";
3
3
 
4
- //#region src/runtime/nativeComponents/primitives.ts
4
+ // src/runtime/nativeComponents/primitives.ts
5
5
  const BaseElement = globalThis.HTMLElement ?? class {};
6
6
  var StyledNativeElement = class extends BaseElement {
7
7
  connectedCallback() {
@@ -11,6 +11,5 @@ var StyledNativeElement = class extends BaseElement {
11
11
  var WeappView = class extends StyledNativeElement {};
12
12
  var WeappText = class extends StyledNativeElement {};
13
13
 
14
- //#endregion
15
14
  export { WeappText, WeappView };
16
15
  //# sourceMappingURL=primitives.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/progress/helpers.ts
1
+ // src/runtime/nativeComponents/progress/helpers.ts
2
2
  function finiteNumber(value, fallback) {
3
3
  const numeric = Number(value);
4
4
  return Number.isFinite(numeric) ? numeric : fallback;
@@ -24,6 +24,5 @@ function createProgressActiveEndDetail() {
24
24
  return {};
25
25
  }
26
26
 
27
- //#endregion
28
27
  export { createProgressActiveEndDetail, resolveProgressAnimationDuration, resolveProgressConfig };
29
28
  //# sourceMappingURL=helpers.mjs.map
@@ -4,7 +4,7 @@ import { ensureNativeComponentStyle } from "../style.mjs";
4
4
  import { createProgressActiveEndDetail, resolveProgressAnimationDuration, resolveProgressConfig } from "./helpers.mjs";
5
5
  import { PROGRESS_SHADOW_STYLE } from "./style.mjs";
6
6
 
7
- //#region src/runtime/nativeComponents/progress/index.ts
7
+ // src/runtime/nativeComponents/progress/index.ts
8
8
  const BaseElement = globalThis.HTMLElement ?? class {};
9
9
  var WeappProgress = class extends BaseElement {
10
10
  static observedAttributes = [...getNativeComponentDescriptor("progress").attributes];
@@ -125,6 +125,5 @@ var WeappProgress = class extends BaseElement {
125
125
  }
126
126
  };
127
127
 
128
- //#endregion
129
128
  export { WeappProgress, createProgressActiveEndDetail, resolveProgressAnimationDuration, resolveProgressConfig };
130
129
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/runtime/nativeComponents/progress/style.ts
1
+ // src/runtime/nativeComponents/progress/style.ts
2
2
  const PROGRESS_SHADOW_STYLE = `
3
3
  :host {
4
4
  min-width: 0;
@@ -35,6 +35,5 @@ const PROGRESS_SHADOW_STYLE = `
35
35
  }
36
36
  `;
37
37
 
38
- //#endregion
39
38
  export { PROGRESS_SHADOW_STYLE };
40
39
  //# sourceMappingURL=style.mjs.map
@@ -3,7 +3,7 @@ import { connectFormControl, disconnectFormControl, findClosestComposedElement }
3
3
  import { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadowRoot } from "./helpers.mjs";
4
4
  import { ensureNativeComponentStyle } from "./style.mjs";
5
5
 
6
- //#region src/runtime/nativeComponents/radio.ts
6
+ // src/runtime/nativeComponents/radio.ts
7
7
  const BaseElement = globalThis.HTMLElement ?? class {};
8
8
  function collectRadioGroupValue(radios) {
9
9
  return Array.from(radios).find((radio) => radio.checked && !radio.disabled)?.value ?? "";
@@ -142,6 +142,5 @@ var WeappRadio = class extends BaseElement {
142
142
  }
143
143
  };
144
144
 
145
- //#endregion
146
145
  export { WeappRadio, WeappRadioGroup, collectRadioGroupValue };
147
146
  //# sourceMappingURL=radio.mjs.map
@@ -3,7 +3,7 @@ import { readBooleanAttribute, resolveContainingShadowRoot } from "../helpers.mj
3
3
  import { ensureNativeComponentStyle } from "../style.mjs";
4
4
  import { normalizeRichTextNodes } from "@weapp-core/shared/rich-text";
5
5
 
6
- //#region src/runtime/nativeComponents/richText/index.ts
6
+ // src/runtime/nativeComponents/richText/index.ts
7
7
  const BaseElement = globalThis.HTMLElement ?? class {};
8
8
  function createRichTextDomNode(node) {
9
9
  if (node.type === "text") return document.createTextNode(node.text);
@@ -69,6 +69,5 @@ var WeappRichText = class extends BaseElement {
69
69
  }
70
70
  };
71
71
 
72
- //#endregion
73
72
  export { WeappRichText };
74
73
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,62 @@
1
+ import { readBooleanAttribute } from "../helpers.mjs";
2
+ import { getRuntimeRpxSize } from "../../rpx.mjs";
3
+
4
+ // src/runtime/nativeComponents/scrollView/boundaries.ts
5
+ const DEFAULT_SCROLL_THRESHOLD = 50;
6
+ const THRESHOLD_VALUE_RE = /^([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(px|rpx)?$/i;
7
+ /** 默认 50px;rpx 与运行时的设备视口和 designWidth 使用同一换算。 */
8
+ function resolveScrollThreshold(element, name) {
9
+ const raw = element.getAttribute(name)?.trim();
10
+ if (!raw) return DEFAULT_SCROLL_THRESHOLD;
11
+ const match = raw.match(THRESHOLD_VALUE_RE);
12
+ const numeric = match ? Number(match[1]) : NaN;
13
+ if (!Number.isFinite(numeric) || numeric < 0) return DEFAULT_SCROLL_THRESHOLD;
14
+ return match?.[2]?.toLowerCase() === "rpx" ? numeric * getRuntimeRpxSize() : numeric;
15
+ }
16
+ function createScrollBoundaryTracker() {
17
+ let boundaries = {
18
+ top: false,
19
+ bottom: false,
20
+ left: false,
21
+ right: false
22
+ };
23
+ return {
24
+ reset() {
25
+ boundaries = {
26
+ top: false,
27
+ bottom: false,
28
+ left: false,
29
+ right: false
30
+ };
31
+ },
32
+ /** 按本轮尺寸重新判断上次位置,在业务回调前提交两轴状态。 */
33
+ collect(element, viewport, previous) {
34
+ const scrollY = readBooleanAttribute(element, "scroll-y") && viewport.scrollHeight > viewport.clientHeight;
35
+ const scrollX = readBooleanAttribute(element, "scroll-x") && viewport.scrollWidth > viewport.clientWidth;
36
+ const lowerThreshold = resolveScrollThreshold(element, "lower-threshold");
37
+ const upperThreshold = resolveScrollThreshold(element, "upper-threshold");
38
+ const bottom = viewport.scrollHeight - viewport.clientHeight - lowerThreshold;
39
+ const right = viewport.scrollWidth - viewport.clientWidth - lowerThreshold;
40
+ const current = {
41
+ top: scrollY && viewport.scrollTop <= upperThreshold,
42
+ bottom: scrollY && viewport.scrollTop >= bottom,
43
+ left: scrollX && viewport.scrollLeft <= upperThreshold,
44
+ right: scrollX && viewport.scrollLeft >= right
45
+ };
46
+ const entered = {
47
+ top: current.top && !(boundaries.top && previous.scrollTop <= upperThreshold),
48
+ bottom: current.bottom && !(boundaries.bottom && previous.scrollTop >= bottom),
49
+ left: current.left && !(boundaries.left && previous.scrollLeft <= upperThreshold),
50
+ right: current.right && !(boundaries.right && previous.scrollLeft >= right)
51
+ };
52
+ boundaries = current;
53
+ const events = [];
54
+ if (entered.bottom || entered.right) events.push(["scrolltolower", entered.right ? "right" : "bottom"]);
55
+ if (entered.top || entered.left) events.push(["scrolltoupper", entered.left ? "left" : "top"]);
56
+ return events;
57
+ }
58
+ };
59
+ }
60
+
61
+ export { createScrollBoundaryTracker };
62
+ //# sourceMappingURL=boundaries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundaries.mjs","names":[],"sources":["../../../../src/runtime/nativeComponents/scrollView/boundaries.ts"],"sourcesContent":["import type { ScrollPosition } from './helpers'\nimport { getRuntimeRpxSize } from '../../rpx'\nimport { readBooleanAttribute } from '../helpers'\n\nconst DEFAULT_SCROLL_THRESHOLD = 50\nconst THRESHOLD_VALUE_RE = /^([+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)(px|rpx)?$/i\n\n/** 默认 50px;rpx 与运行时的设备视口和 designWidth 使用同一换算。 */\nfunction resolveScrollThreshold(element: Element, name: string) {\n const raw = element.getAttribute(name)?.trim()\n if (!raw) {\n return DEFAULT_SCROLL_THRESHOLD\n }\n const match = raw.match(THRESHOLD_VALUE_RE)\n const numeric = match ? Number(match[1]) : Number.NaN\n if (!Number.isFinite(numeric) || numeric < 0) {\n return DEFAULT_SCROLL_THRESHOLD\n }\n return match?.[2]?.toLowerCase() === 'rpx' ? numeric * getRuntimeRpxSize() : numeric\n}\n\nexport function createScrollBoundaryTracker() {\n let boundaries = { top: false, bottom: false, left: false, right: false }\n return {\n reset() {\n boundaries = { top: false, bottom: false, left: false, right: false }\n },\n /** 按本轮尺寸重新判断上次位置,在业务回调前提交两轴状态。 */\n collect(element: Element, viewport: HTMLDivElement, previous: ScrollPosition) {\n const scrollY = readBooleanAttribute(element, 'scroll-y') && viewport.scrollHeight > viewport.clientHeight\n const scrollX = readBooleanAttribute(element, 'scroll-x') && viewport.scrollWidth > viewport.clientWidth\n const lowerThreshold = resolveScrollThreshold(element, 'lower-threshold')\n const upperThreshold = resolveScrollThreshold(element, 'upper-threshold')\n const bottom = viewport.scrollHeight - viewport.clientHeight - lowerThreshold\n const right = viewport.scrollWidth - viewport.clientWidth - lowerThreshold\n const current = {\n top: scrollY && viewport.scrollTop <= upperThreshold,\n bottom: scrollY && viewport.scrollTop >= bottom,\n left: scrollX && viewport.scrollLeft <= upperThreshold,\n right: scrollX && viewport.scrollLeft >= right,\n }\n const entered = {\n top: current.top && !(boundaries.top && previous.scrollTop <= upperThreshold),\n bottom: current.bottom && !(boundaries.bottom && previous.scrollTop >= bottom),\n left: current.left && !(boundaries.left && previous.scrollLeft <= upperThreshold),\n right: current.right && !(boundaries.right && previous.scrollLeft >= right),\n }\n boundaries = current\n const events: Array<[string, string]> = []\n if (entered.bottom || entered.right) {\n events.push(['scrolltolower', entered.right ? 'right' : 'bottom'])\n }\n if (entered.top || entered.left) {\n events.push(['scrolltoupper', entered.left ? 'left' : 'top'])\n }\n return events\n },\n }\n}\n"],"mappings":";;;;AAIA,MAAM,2BAA2B;AACjC,MAAM,qBAAqB;;AAG3B,SAAS,uBAAuB,SAAkB,MAAc;CAC9D,MAAM,MAAM,QAAQ,aAAa,IAAI,CAAC,EAAE,KAAK;CAC7C,IAAI,CAAC,KACH,OAAO;CAET,MAAM,QAAQ,IAAI,MAAM,kBAAkB;CAC1C,MAAM,UAAU,QAAQ,OAAO,MAAM,EAAE,IAAI;CAC3C,IAAI,CAAC,OAAO,SAAS,OAAO,KAAK,UAAU,GACzC,OAAO;CAET,OAAO,QAAQ,EAAE,EAAE,YAAY,MAAM,QAAQ,UAAU,kBAAkB,IAAI;AAC/E;AAEA,SAAgB,8BAA8B;CAC5C,IAAI,aAAa;EAAE,KAAK;EAAO,QAAQ;EAAO,MAAM;EAAO,OAAO;CAAM;CACxE,OAAO;EACL,QAAQ;GACN,aAAa;IAAE,KAAK;IAAO,QAAQ;IAAO,MAAM;IAAO,OAAO;GAAM;EACtE;;EAEA,QAAQ,SAAkB,UAA0B,UAA0B;GAC5E,MAAM,UAAU,qBAAqB,SAAS,UAAU,KAAK,SAAS,eAAe,SAAS;GAC9F,MAAM,UAAU,qBAAqB,SAAS,UAAU,KAAK,SAAS,cAAc,SAAS;GAC7F,MAAM,iBAAiB,uBAAuB,SAAS,iBAAiB;GACxE,MAAM,iBAAiB,uBAAuB,SAAS,iBAAiB;GACxE,MAAM,SAAS,SAAS,eAAe,SAAS,eAAe;GAC/D,MAAM,QAAQ,SAAS,cAAc,SAAS,cAAc;GAC5D,MAAM,UAAU;IACd,KAAK,WAAW,SAAS,aAAa;IACtC,QAAQ,WAAW,SAAS,aAAa;IACzC,MAAM,WAAW,SAAS,cAAc;IACxC,OAAO,WAAW,SAAS,cAAc;GAC3C;GACA,MAAM,UAAU;IACd,KAAK,QAAQ,OAAO,EAAE,WAAW,OAAO,SAAS,aAAa;IAC9D,QAAQ,QAAQ,UAAU,EAAE,WAAW,UAAU,SAAS,aAAa;IACvE,MAAM,QAAQ,QAAQ,EAAE,WAAW,QAAQ,SAAS,cAAc;IAClE,OAAO,QAAQ,SAAS,EAAE,WAAW,SAAS,SAAS,cAAc;GACvE;GACA,aAAa;GACb,MAAM,SAAkC,CAAC;GACzC,IAAI,QAAQ,UAAU,QAAQ,OAC5B,OAAO,KAAK,CAAC,iBAAiB,QAAQ,QAAQ,UAAU,QAAQ,CAAC;GAEnE,IAAI,QAAQ,OAAO,QAAQ,MACzB,OAAO,KAAK,CAAC,iBAAiB,QAAQ,OAAO,SAAS,KAAK,CAAC;GAE9D,OAAO;EACT;CACF;AACF"}
@@ -1,8 +1,8 @@
1
- //#region src/runtime/nativeComponents/scrollView.d.ts
2
- export declare function createScrollEventDetail(viewport: Pick<HTMLDivElement, 'scrollHeight' | 'scrollLeft' | 'scrollTop' | 'scrollWidth'>, previous: {
1
+ export interface ScrollPosition {
3
2
  scrollLeft: number;
4
3
  scrollTop: number;
5
- }): {
4
+ }
5
+ export declare function createScrollEventDetail(viewport: Pick<HTMLDivElement, 'scrollHeight' | 'scrollLeft' | 'scrollTop' | 'scrollWidth'>, previous: ScrollPosition): {
6
6
  scrollLeft: number;
7
7
  scrollTop: number;
8
8
  scrollWidth: number;
@@ -10,5 +10,4 @@ export declare function createScrollEventDetail(viewport: Pick<HTMLDivElement, '
10
10
  deltaX: number;
11
11
  deltaY: number;
12
12
  };
13
- //#endregion
14
- //# sourceMappingURL=scrollView.d.mts.map
13
+ //# sourceMappingURL=helpers.d.mts.map
@@ -0,0 +1,14 @@
1
+ // src/runtime/nativeComponents/scrollView/helpers.ts
2
+ function createScrollEventDetail(viewport, previous) {
3
+ return {
4
+ scrollLeft: viewport.scrollLeft,
5
+ scrollTop: viewport.scrollTop,
6
+ scrollWidth: viewport.scrollWidth,
7
+ scrollHeight: viewport.scrollHeight,
8
+ deltaX: viewport.scrollLeft - previous.scrollLeft,
9
+ deltaY: viewport.scrollTop - previous.scrollTop
10
+ };
11
+ }
12
+
13
+ export { createScrollEventDetail };
14
+ //# sourceMappingURL=helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/runtime/nativeComponents/scrollView/helpers.ts"],"sourcesContent":["export interface ScrollPosition {\n scrollLeft: number\n scrollTop: number\n}\n\nexport function createScrollEventDetail(\n viewport: Pick<HTMLDivElement, 'scrollHeight' | 'scrollLeft' | 'scrollTop' | 'scrollWidth'>,\n previous: ScrollPosition,\n) {\n return {\n scrollLeft: viewport.scrollLeft,\n scrollTop: viewport.scrollTop,\n scrollWidth: viewport.scrollWidth,\n scrollHeight: viewport.scrollHeight,\n deltaX: viewport.scrollLeft - previous.scrollLeft,\n deltaY: viewport.scrollTop - previous.scrollTop,\n }\n}\n"],"mappings":";AAKA,SAAgB,wBACd,UACA,UACA;CACA,OAAO;EACL,YAAY,SAAS;EACrB,WAAW,SAAS;EACpB,aAAa,SAAS;EACtB,cAAc,SAAS;EACvB,QAAQ,SAAS,aAAa,SAAS;EACvC,QAAQ,SAAS,YAAY,SAAS;CACxC;AACF"}
@@ -0,0 +1,193 @@
1
+ import { getNativeComponentDescriptor } from "../../../shared/nativeComponents.mjs";
2
+ import { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadowRoot } from "../helpers.mjs";
3
+ import { ensureNativeComponentStyle } from "../style.mjs";
4
+ import { createScrollBoundaryTracker } from "./boundaries.mjs";
5
+ import { createScrollEventDetail } from "./helpers.mjs";
6
+ import { findScrollTarget, scrollToTarget } from "./position.mjs";
7
+
8
+ // src/runtime/nativeComponents/scrollView/index.ts
9
+ const BaseElement = globalThis.HTMLElement ?? class {};
10
+ const SCROLL_END_DELAY = 150;
11
+ const POSITION_ATTRIBUTES = /* @__PURE__ */ new Set([
12
+ "scroll-into-view",
13
+ "scroll-into-view-offset",
14
+ "scroll-into-view-alignment",
15
+ "scroll-top",
16
+ "scroll-left",
17
+ "scroll-x",
18
+ "scroll-y"
19
+ ]);
20
+ const EVENT_OPTIONS = {
21
+ bubbles: false,
22
+ composed: false
23
+ };
24
+ var WeappScrollView = class extends BaseElement {
25
+ static observedAttributes = [...getNativeComponentDescriptor("scroll-view").attributes];
26
+ #viewport;
27
+ #previous = {
28
+ scrollLeft: 0,
29
+ scrollTop: 0
30
+ };
31
+ #boundaries = createScrollBoundaryTracker();
32
+ #scrolling = false;
33
+ #generation = 0;
34
+ #connectionVersion = 0;
35
+ #scrollEndTimer;
36
+ #childrenObserver;
37
+ #resizeObserver;
38
+ #alignedTarget;
39
+ get scrollTop() {
40
+ return this.#viewport?.scrollTop ?? 0;
41
+ }
42
+ set scrollTop(value) {
43
+ if (this.#viewport) this.#viewport.scrollTop = value;
44
+ }
45
+ get scrollLeft() {
46
+ return this.#viewport?.scrollLeft ?? 0;
47
+ }
48
+ set scrollLeft(value) {
49
+ if (this.#viewport) this.#viewport.scrollLeft = value;
50
+ }
51
+ connectedCallback() {
52
+ ensureNativeComponentStyle(resolveContainingShadowRoot(this));
53
+ const initializePosition = !this.#viewport;
54
+ this.#ensureStructure();
55
+ if (!initializePosition) this.#previous = {
56
+ scrollLeft: this.scrollLeft,
57
+ scrollTop: this.scrollTop
58
+ };
59
+ this.#syncAttributes(void 0, initializePosition);
60
+ this.#childrenObserver ??= new MutationObserver(() => this.#scrollIntoView(true));
61
+ this.#childrenObserver.observe(this, {
62
+ childList: true,
63
+ subtree: true,
64
+ attributes: true,
65
+ attributeFilter: ["id"]
66
+ });
67
+ if (typeof ResizeObserver !== "undefined") {
68
+ this.#resizeObserver ??= new ResizeObserver(() => this.#scrollIntoView(true));
69
+ this.#resizeObserver.observe(this.#viewport);
70
+ }
71
+ }
72
+ disconnectedCallback() {
73
+ this.#connectionVersion += 1;
74
+ this.#generation += 1;
75
+ this.#clearScrollEndTimer();
76
+ this.#scrolling = false;
77
+ this.#boundaries.reset();
78
+ this.#childrenObserver?.disconnect();
79
+ this.#resizeObserver?.disconnect();
80
+ this.#alignedTarget = void 0;
81
+ }
82
+ attributeChangedCallback(name, oldValue, newValue) {
83
+ if (oldValue !== newValue) this.#syncAttributes(name);
84
+ }
85
+ #ensureStructure() {
86
+ if (this.#viewport || typeof document === "undefined") return;
87
+ const root = this.shadowRoot ?? this.attachShadow({ mode: "open" });
88
+ const style = document.createElement("style");
89
+ style.textContent = `
90
+ :host { min-width: 0; min-height: 0; }
91
+ .viewport { width: 100%; height: 100%; overscroll-behavior: contain; }
92
+ .viewport.flex {
93
+ display: inherit;
94
+ flex-direction: inherit;
95
+ flex-wrap: inherit;
96
+ justify-content: inherit;
97
+ align-items: inherit;
98
+ align-content: inherit;
99
+ gap: inherit;
100
+ }
101
+ .viewport.flex > slot { display: contents; }
102
+ .viewport.no-scrollbar { scrollbar-width: none; }
103
+ .viewport.no-scrollbar.scroll-x { scrollbar-width: auto; }
104
+ .viewport.no-scrollbar::-webkit-scrollbar:vertical { display: none; width: 0; }
105
+ `;
106
+ const viewport = document.createElement("div");
107
+ viewport.className = "viewport";
108
+ const slot = document.createElement("slot");
109
+ slot.addEventListener("slotchange", () => this.#scrollIntoView(true));
110
+ viewport.append(slot);
111
+ viewport.addEventListener("scroll", (event) => {
112
+ if (event.target === viewport) this.#handleScroll();
113
+ });
114
+ root.append(style, viewport);
115
+ this.#viewport = viewport;
116
+ }
117
+ #handleScroll() {
118
+ const viewport = this.#viewport;
119
+ if (!viewport || !this.isConnected) return;
120
+ const detail = createScrollEventDetail(viewport, this.#previous);
121
+ const connectionVersion = this.#connectionVersion;
122
+ const boundaries = this.#boundaries.collect(this, viewport, this.#previous);
123
+ this.#previous = {
124
+ scrollLeft: detail.scrollLeft,
125
+ scrollTop: detail.scrollTop
126
+ };
127
+ const started = !this.#scrolling;
128
+ this.#scrolling = true;
129
+ this.#clearScrollEndTimer();
130
+ const generation = ++this.#generation;
131
+ this.#scrollEndTimer = setTimeout(() => {
132
+ if (generation !== this.#generation || !this.isConnected) return;
133
+ this.#scrollEndTimer = void 0;
134
+ this.#scrolling = false;
135
+ dispatchMiniProgramEvent(this, "scrollend", {
136
+ ...detail,
137
+ deltaX: 0,
138
+ deltaY: 0
139
+ }, EVENT_OPTIONS);
140
+ }, SCROLL_END_DELAY);
141
+ if (started) dispatchMiniProgramEvent(this, "scrollstart", detail, EVENT_OPTIONS);
142
+ if (!this.isConnected || connectionVersion !== this.#connectionVersion) return;
143
+ dispatchMiniProgramEvent(this, "scroll", detail, EVENT_OPTIONS);
144
+ for (const [name, direction] of boundaries) {
145
+ if (!this.isConnected || connectionVersion !== this.#connectionVersion) break;
146
+ dispatchMiniProgramEvent(this, name, { direction }, EVENT_OPTIONS);
147
+ }
148
+ }
149
+ #clearScrollEndTimer() {
150
+ if (this.#scrollEndTimer !== void 0) {
151
+ clearTimeout(this.#scrollEndTimer);
152
+ this.#scrollEndTimer = void 0;
153
+ }
154
+ }
155
+ #syncAttributes(changedName, initializePosition = false) {
156
+ const viewport = this.#viewport;
157
+ if (!viewport) return;
158
+ if (!changedName || changedName === "scroll-x") {
159
+ const scrollX = readBooleanAttribute(this, "scroll-x");
160
+ viewport.style.overflowX = scrollX ? "auto" : "hidden";
161
+ viewport.classList.toggle("scroll-x", scrollX);
162
+ }
163
+ if (!changedName || changedName === "scroll-y") viewport.style.overflowY = readBooleanAttribute(this, "scroll-y") ? "auto" : "hidden";
164
+ if (!changedName || changedName === "enable-flex") viewport.classList.toggle("flex", readBooleanAttribute(this, "enable-flex"));
165
+ if (!changedName || changedName === "show-scrollbar" || changedName === "enhanced" || changedName === "scroll-y") {
166
+ const hidden = readBooleanAttribute(this, "scroll-y") && readBooleanAttribute(this, "enhanced") && this.hasAttribute("show-scrollbar") && !readBooleanAttribute(this, "show-scrollbar");
167
+ viewport.classList.toggle("no-scrollbar", hidden);
168
+ }
169
+ if (initializePosition || changedName === "scroll-top") {
170
+ const scrollTop = Number(this.getAttribute("scroll-top"));
171
+ if (Number.isFinite(scrollTop)) viewport.scrollTop = scrollTop;
172
+ }
173
+ if (initializePosition || changedName === "scroll-left") {
174
+ const scrollLeft = Number(this.getAttribute("scroll-left"));
175
+ if (Number.isFinite(scrollLeft)) viewport.scrollLeft = scrollLeft;
176
+ }
177
+ if (!changedName || POSITION_ATTRIBUTES.has(changedName)) this.#scrollIntoView();
178
+ }
179
+ #scrollIntoView(onlyNewTarget = false) {
180
+ const viewport = this.#viewport;
181
+ if (!viewport || !this.isConnected) return;
182
+ const target = findScrollTarget(this);
183
+ if (!target) {
184
+ this.#alignedTarget = void 0;
185
+ return;
186
+ }
187
+ if (onlyNewTarget && target === this.#alignedTarget) return;
188
+ this.#alignedTarget = scrollToTarget(this, viewport, target) ? target : void 0;
189
+ }
190
+ };
191
+
192
+ export { WeappScrollView, createScrollEventDetail };
193
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/runtime/nativeComponents/scrollView/index.ts"],"sourcesContent":["import type { ScrollPosition } from './helpers'\nimport { getNativeComponentDescriptor } from '../../../shared/nativeComponents'\nimport { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadowRoot } from '../helpers'\nimport { ensureNativeComponentStyle } from '../style'\nimport { createScrollBoundaryTracker } from './boundaries'\nimport { createScrollEventDetail } from './helpers'\nimport { findScrollTarget, scrollToTarget } from './position'\n\nexport { createScrollEventDetail } from './helpers'\n\nconst BaseElement = (globalThis.HTMLElement ?? class {}) as typeof HTMLElement\nconst SCROLL_END_DELAY = 150\nconst POSITION_ATTRIBUTES = new Set(['scroll-into-view', 'scroll-into-view-offset', 'scroll-into-view-alignment', 'scroll-top', 'scroll-left', 'scroll-x', 'scroll-y'])\nconst EVENT_OPTIONS = { bubbles: false, composed: false }\n\nexport class WeappScrollView extends BaseElement {\n static observedAttributes = [...getNativeComponentDescriptor('scroll-view')!.attributes]\n\n #viewport?: HTMLDivElement\n #previous: ScrollPosition = { scrollLeft: 0, scrollTop: 0 }\n #boundaries = createScrollBoundaryTracker()\n #scrolling = false\n #generation = 0\n #connectionVersion = 0\n #scrollEndTimer: ReturnType<typeof setTimeout> | undefined\n #childrenObserver?: MutationObserver\n #resizeObserver?: ResizeObserver\n #alignedTarget?: Element\n\n get scrollTop() {\n return this.#viewport?.scrollTop ?? 0\n }\n\n set scrollTop(value: number) {\n if (this.#viewport) {\n this.#viewport.scrollTop = value\n }\n }\n\n get scrollLeft() {\n return this.#viewport?.scrollLeft ?? 0\n }\n\n set scrollLeft(value: number) {\n if (this.#viewport) {\n this.#viewport.scrollLeft = value\n }\n }\n\n connectedCallback() {\n ensureNativeComponentStyle(resolveContainingShadowRoot(this))\n const initializePosition = !this.#viewport\n this.#ensureStructure()\n if (!initializePosition) {\n this.#previous = { scrollLeft: this.scrollLeft, scrollTop: this.scrollTop }\n }\n this.#syncAttributes(undefined, initializePosition)\n this.#childrenObserver ??= new MutationObserver(() => this.#scrollIntoView(true))\n this.#childrenObserver.observe(this, { childList: true, subtree: true, attributes: true, attributeFilter: ['id'] })\n if (typeof ResizeObserver !== 'undefined') {\n this.#resizeObserver ??= new ResizeObserver(() => this.#scrollIntoView(true))\n this.#resizeObserver.observe(this.#viewport!)\n }\n }\n\n disconnectedCallback() {\n this.#connectionVersion += 1\n this.#generation += 1\n this.#clearScrollEndTimer()\n this.#scrolling = false\n this.#boundaries.reset()\n this.#childrenObserver?.disconnect()\n this.#resizeObserver?.disconnect()\n this.#alignedTarget = undefined\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (oldValue !== newValue) {\n this.#syncAttributes(name)\n }\n }\n\n #ensureStructure() {\n if (this.#viewport || typeof document === 'undefined') {\n return\n }\n const root = this.shadowRoot ?? this.attachShadow({ mode: 'open' })\n const style = document.createElement('style')\n style.textContent = `\n :host { min-width: 0; min-height: 0; }\n .viewport { width: 100%; height: 100%; overscroll-behavior: contain; }\n .viewport.flex {\n display: inherit;\n flex-direction: inherit;\n flex-wrap: inherit;\n justify-content: inherit;\n align-items: inherit;\n align-content: inherit;\n gap: inherit;\n }\n .viewport.flex > slot { display: contents; }\n .viewport.no-scrollbar { scrollbar-width: none; }\n .viewport.no-scrollbar.scroll-x { scrollbar-width: auto; }\n .viewport.no-scrollbar::-webkit-scrollbar:vertical { display: none; width: 0; }\n `\n const viewport = document.createElement('div')\n viewport.className = 'viewport'\n const slot = document.createElement('slot')\n slot.addEventListener('slotchange', () => this.#scrollIntoView(true))\n viewport.append(slot)\n viewport.addEventListener('scroll', (event) => {\n if (event.target === viewport) {\n this.#handleScroll()\n }\n })\n root.append(style, viewport)\n this.#viewport = viewport\n }\n\n #handleScroll() {\n const viewport = this.#viewport\n if (!viewport || !this.isConnected) {\n return\n }\n const detail = createScrollEventDetail(viewport, this.#previous)\n const connectionVersion = this.#connectionVersion\n const boundaries = this.#boundaries.collect(this, viewport, this.#previous)\n this.#previous = { scrollLeft: detail.scrollLeft, scrollTop: detail.scrollTop }\n const started = !this.#scrolling\n this.#scrolling = true\n this.#clearScrollEndTimer()\n const generation = ++this.#generation\n // 在任何业务回调前登记计时器;重入滚动可直接接管,断连可立即取消。\n this.#scrollEndTimer = setTimeout(() => {\n if (generation !== this.#generation || !this.isConnected) {\n return\n }\n this.#scrollEndTimer = undefined\n this.#scrolling = false\n dispatchMiniProgramEvent(this, 'scrollend', { ...detail, deltaX: 0, deltaY: 0 }, EVENT_OPTIONS)\n }, SCROLL_END_DELAY)\n if (started) {\n dispatchMiniProgramEvent(this, 'scrollstart', detail, EVENT_OPTIONS)\n }\n if (!this.isConnected || connectionVersion !== this.#connectionVersion) {\n return\n }\n dispatchMiniProgramEvent(this, 'scroll', detail, EVENT_OPTIONS)\n for (const [name, direction] of boundaries) {\n if (!this.isConnected || connectionVersion !== this.#connectionVersion) {\n break\n }\n dispatchMiniProgramEvent(this, name, { direction }, EVENT_OPTIONS)\n }\n }\n\n #clearScrollEndTimer() {\n if (this.#scrollEndTimer !== undefined) {\n clearTimeout(this.#scrollEndTimer)\n this.#scrollEndTimer = undefined\n }\n }\n\n #syncAttributes(changedName?: string, initializePosition = false) {\n const viewport = this.#viewport\n if (!viewport) {\n return\n }\n if (!changedName || changedName === 'scroll-x') {\n const scrollX = readBooleanAttribute(this, 'scroll-x')\n viewport.style.overflowX = scrollX ? 'auto' : 'hidden'\n viewport.classList.toggle('scroll-x', scrollX)\n }\n if (!changedName || changedName === 'scroll-y') {\n viewport.style.overflowY = readBooleanAttribute(this, 'scroll-y') ? 'auto' : 'hidden'\n }\n if (!changedName || changedName === 'enable-flex') {\n viewport.classList.toggle('flex', readBooleanAttribute(this, 'enable-flex'))\n }\n if (!changedName || changedName === 'show-scrollbar' || changedName === 'enhanced' || changedName === 'scroll-y') {\n const hidden = readBooleanAttribute(this, 'scroll-y') && readBooleanAttribute(this, 'enhanced')\n && this.hasAttribute('show-scrollbar') && !readBooleanAttribute(this, 'show-scrollbar')\n viewport.classList.toggle('no-scrollbar', hidden)\n }\n if (initializePosition || changedName === 'scroll-top') {\n const scrollTop = Number(this.getAttribute('scroll-top'))\n if (Number.isFinite(scrollTop)) {\n viewport.scrollTop = scrollTop\n }\n }\n if (initializePosition || changedName === 'scroll-left') {\n const scrollLeft = Number(this.getAttribute('scroll-left'))\n if (Number.isFinite(scrollLeft)) {\n viewport.scrollLeft = scrollLeft\n }\n }\n if (!changedName || POSITION_ATTRIBUTES.has(changedName)) {\n this.#scrollIntoView()\n }\n }\n\n #scrollIntoView(onlyNewTarget = false) {\n const viewport = this.#viewport\n if (!viewport || !this.isConnected) {\n return\n }\n const target = findScrollTarget(this)\n if (!target) {\n this.#alignedTarget = undefined\n return\n }\n if (onlyNewTarget && target === this.#alignedTarget) {\n return\n }\n this.#alignedTarget = scrollToTarget(this, viewport, target) ? target : undefined\n }\n}\n"],"mappings":"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"}