@lynx-js/web-elements 0.8.11 → 0.10.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 (297) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/compat/LinearContainer/LinearContainer.d.ts +8 -0
  3. package/dist/compat/LinearContainer/LinearContainer.js +109 -0
  4. package/dist/element-reactive/bindSwitchToEventListener.d.ts +1 -0
  5. package/dist/element-reactive/bindSwitchToEventListener.js +23 -0
  6. package/dist/element-reactive/bindToAttribute.d.ts +2 -0
  7. package/dist/element-reactive/bindToAttribute.js +27 -0
  8. package/dist/element-reactive/bindToStyle.d.ts +2 -0
  9. package/dist/element-reactive/bindToStyle.js +21 -0
  10. package/dist/element-reactive/boostedQueueMicrotask.d.ts +1 -0
  11. package/dist/element-reactive/boostedQueueMicrotask.js +20 -0
  12. package/dist/element-reactive/component.d.ts +43 -0
  13. package/dist/element-reactive/component.js +217 -0
  14. package/dist/element-reactive/genDomGetter.d.ts +9 -0
  15. package/dist/element-reactive/genDomGetter.js +18 -0
  16. package/dist/element-reactive/generateRegister.d.ts +6 -0
  17. package/dist/element-reactive/generateRegister.js +29 -0
  18. package/dist/element-reactive/html.d.ts +6 -0
  19. package/dist/element-reactive/html.js +8 -0
  20. package/dist/element-reactive/index.d.ts +30 -0
  21. package/dist/element-reactive/index.js +28 -0
  22. package/dist/element-reactive/registerAttributeHandler.d.ts +12 -0
  23. package/dist/element-reactive/registerAttributeHandler.js +11 -0
  24. package/dist/element-reactive/registerEventStatusChangedHandler.d.ts +11 -0
  25. package/dist/element-reactive/registerEventStatusChangedHandler.js +7 -0
  26. package/dist/element-reactive/registerStyleChangeHandler.d.ts +2 -0
  27. package/dist/element-reactive/registerStyleChangeHandler.js +8 -0
  28. package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.js +1 -1
  29. package/dist/elements/LynxWrapper/index.d.ts +14 -0
  30. package/dist/elements/LynxWrapper/index.js +18 -0
  31. package/dist/{ScrollView → elements/ScrollView}/FadeEdgeLengthAttribute.d.ts +3 -1
  32. package/dist/elements/ScrollView/FadeEdgeLengthAttribute.js +42 -0
  33. package/dist/{ScrollView → elements/ScrollView}/ScrollAttributes.d.ts +3 -1
  34. package/dist/elements/ScrollView/ScrollAttributes.js +81 -0
  35. package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.d.ts +1 -1
  36. package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.js +1 -1
  37. package/dist/{ScrollView → elements/ScrollView}/ScrollView.js +2 -2
  38. package/dist/elements/ScrollView/ScrollViewEvents.d.ts +15 -0
  39. package/dist/elements/ScrollView/ScrollViewEvents.js +167 -0
  40. package/dist/elements/ScrollView/index.d.ts +32 -0
  41. package/dist/elements/ScrollView/index.js +36 -0
  42. package/dist/{XAudioTT → elements/XAudioTT}/XAudioAttribute.d.ts +4 -1
  43. package/dist/elements/XAudioTT/XAudioAttribute.js +90 -0
  44. package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.d.ts +1 -1
  45. package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.js +1 -1
  46. package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.js +2 -2
  47. package/dist/elements/XAudioTT/index.d.ts +21 -0
  48. package/dist/elements/XAudioTT/index.js +25 -0
  49. package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.d.ts +1 -1
  50. package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.js +1 -1
  51. package/dist/{XCanvas → elements/XCanvas}/XCanvas.js +1 -1
  52. package/dist/elements/XCanvas/index.d.ts +14 -0
  53. package/dist/elements/XCanvas/index.js +18 -0
  54. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.js +1 -1
  55. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.js +1 -1
  56. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNgEvents.d.ts +3 -1
  57. package/dist/elements/XFoldViewNg/XFoldviewNgEvents.js +65 -0
  58. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.js +1 -1
  59. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.js +1 -1
  60. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.d.ts +1 -1
  61. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.js +0 -1
  62. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.js +1 -1
  63. package/dist/elements/XFoldViewNg/index.d.ts +23 -0
  64. package/dist/elements/XFoldViewNg/index.js +27 -0
  65. package/dist/{XImage → elements/XImage}/DropShadow.d.ts +2 -1
  66. package/dist/elements/XImage/DropShadow.js +30 -0
  67. package/dist/{XImage → elements/XImage}/FilterImage.js +2 -2
  68. package/dist/{XImage → elements/XImage}/ImageEvents.d.ts +3 -1
  69. package/dist/elements/XImage/ImageEvents.js +67 -0
  70. package/dist/elements/XImage/ImageSrc.d.ts +12 -0
  71. package/dist/elements/XImage/ImageSrc.js +78 -0
  72. package/dist/{XImage → elements/XImage}/XImage.js +2 -2
  73. package/dist/elements/XImage/index.d.ts +18 -0
  74. package/dist/elements/XImage/index.js +22 -0
  75. package/dist/elements/XInput/InputBaseAttributes.d.ts +14 -0
  76. package/dist/elements/XInput/InputBaseAttributes.js +98 -0
  77. package/dist/elements/XInput/Placeholder.d.ts +11 -0
  78. package/dist/elements/XInput/Placeholder.js +60 -0
  79. package/dist/{XInput → elements/XInput}/XInput.js +2 -2
  80. package/dist/elements/XInput/XInputAttribute.d.ts +12 -0
  81. package/dist/elements/XInput/XInputAttribute.js +57 -0
  82. package/dist/elements/XInput/XInputEvents.d.ts +9 -0
  83. package/dist/{XInput → elements/XInput}/XInputEvents.js +36 -39
  84. package/dist/elements/XInput/index.d.ts +34 -0
  85. package/dist/elements/XInput/index.js +38 -0
  86. package/dist/{XList → elements/XList}/ListItem.js +1 -1
  87. package/dist/{XList → elements/XList}/ListItemAttributes.d.ts +2 -1
  88. package/dist/elements/XList/ListItemAttributes.js +31 -0
  89. package/dist/{XList → elements/XList}/XList.js +2 -2
  90. package/dist/{XList → elements/XList}/XListAttributes.d.ts +3 -1
  91. package/dist/{XList → elements/XList}/XListAttributes.js +14 -14
  92. package/dist/elements/XList/XListEvents.d.ts +14 -0
  93. package/dist/{XList → elements/XList}/XListEvents.js +78 -80
  94. package/dist/{XList → elements/XList}/XListWaterfall.d.ts +3 -1
  95. package/dist/{XList → elements/XList}/XListWaterfall.js +67 -69
  96. package/dist/elements/XList/index.d.ts +32 -0
  97. package/dist/elements/XList/index.js +36 -0
  98. package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayAttributes.d.ts +3 -1
  99. package/dist/elements/XOverlayNg/XOverlayAttributes.js +83 -0
  100. package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.js +2 -2
  101. package/dist/elements/XOverlayNg/index.d.ts +14 -0
  102. package/dist/elements/XOverlayNg/index.js +18 -0
  103. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.js +1 -1
  104. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.js +1 -1
  105. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.d.ts +1 -1
  106. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.js +2 -2
  107. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.d.ts +3 -1
  108. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.js +36 -39
  109. package/dist/elements/XRefreshView/index.d.ts +26 -0
  110. package/dist/elements/XRefreshView/index.js +30 -0
  111. package/dist/{XSvg → elements/XSvg}/XSvg.d.ts +4 -1
  112. package/dist/elements/XSvg/XSvg.js +96 -0
  113. package/dist/elements/XSvg/index.d.ts +13 -0
  114. package/dist/elements/XSvg/index.js +17 -0
  115. package/dist/{XSwiper → elements/XSwiper}/SwiperItem.js +1 -1
  116. package/dist/{XSwiper → elements/XSwiper}/XSwiper.js +2 -2
  117. package/dist/{XSwiper → elements/XSwiper}/XSwiperAutoScroll.d.ts +3 -1
  118. package/dist/elements/XSwiper/XSwiperAutoScroll.js +74 -0
  119. package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.d.ts +3 -1
  120. package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.js +24 -26
  121. package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.d.ts +3 -1
  122. package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.js +21 -22
  123. package/dist/elements/XSwiper/XSwiperIndicator.d.ts +14 -0
  124. package/dist/elements/XSwiper/XSwiperIndicator.js +117 -0
  125. package/dist/elements/XSwiper/index.d.ts +29 -0
  126. package/dist/elements/XSwiper/index.js +33 -0
  127. package/dist/{XText → elements/XText}/InlineImage.d.ts +2 -1
  128. package/dist/{XText → elements/XText}/InlineImage.js +12 -13
  129. package/dist/{XText → elements/XText}/InlineText.js +1 -1
  130. package/dist/{XText → elements/XText}/InlineTruncation.js +1 -1
  131. package/dist/{XText → elements/XText}/RawText.d.ts +1 -0
  132. package/dist/{XText → elements/XText}/RawText.js +12 -13
  133. package/dist/{XText → elements/XText}/XText.js +2 -2
  134. package/dist/{XText → elements/XText}/XTextTruncation.d.ts +3 -1
  135. package/dist/{XText → elements/XText}/XTextTruncation.js +31 -33
  136. package/dist/elements/XText/index.d.ts +21 -0
  137. package/dist/elements/XText/index.js +25 -0
  138. package/dist/elements/XTextarea/Placeholder.d.ts +12 -0
  139. package/dist/elements/XTextarea/Placeholder.js +60 -0
  140. package/dist/elements/XTextarea/TextareaBaseAttributes.d.ts +11 -0
  141. package/dist/elements/XTextarea/TextareaBaseAttributes.js +70 -0
  142. package/dist/{XTextarea → elements/XTextarea}/XTextarea.js +2 -2
  143. package/dist/elements/XTextarea/XTextareaAttributes.d.ts +11 -0
  144. package/dist/elements/XTextarea/XTextareaAttributes.js +79 -0
  145. package/dist/elements/XTextarea/XTextareaEvents.d.ts +9 -0
  146. package/dist/{XTextarea → elements/XTextarea}/XTextareaEvents.js +36 -39
  147. package/dist/elements/XTextarea/index.d.ts +35 -0
  148. package/dist/elements/XTextarea/index.js +39 -0
  149. package/dist/{XView → elements/XView}/BlurRadius.d.ts +2 -1
  150. package/dist/elements/XView/BlurRadius.js +37 -0
  151. package/dist/{XView → elements/XView}/XBlurView.js +1 -1
  152. package/dist/{XView → elements/XView}/XView.js +1 -1
  153. package/dist/elements/XView/index.d.ts +8 -0
  154. package/dist/elements/XView/index.js +12 -0
  155. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.js +1 -1
  156. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.js +2 -2
  157. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.d.ts +3 -1
  158. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.js +17 -19
  159. package/dist/elements/XViewpagerNg/index.d.ts +20 -0
  160. package/dist/elements/XViewpagerNg/index.js +24 -0
  161. package/dist/{common → elements/common}/CommonEventsAndMethods.d.ts +1 -0
  162. package/dist/{common → elements/common}/CommonEventsAndMethods.js +6 -2
  163. package/dist/elements/htmlTemplates.d.ts +20 -0
  164. package/dist/elements/htmlTemplates.js +332 -0
  165. package/dist/elements/index.d.ts +12 -0
  166. package/dist/elements/index.js +16 -0
  167. package/elements.css +18 -0
  168. package/index.css +2 -15
  169. package/package.json +84 -42
  170. package/src/compat/LinearContainer/linear-compat.css +124 -0
  171. package/src/{XInput → elements/XInput}/x-input.css +1 -1
  172. package/src/{common-css → elements/common-css}/linear.css +9 -4
  173. package/dist/LynxWrapper/index.d.ts +0 -1
  174. package/dist/LynxWrapper/index.js +0 -2
  175. package/dist/ScrollView/FadeEdgeLengthAttribute.js +0 -43
  176. package/dist/ScrollView/ScrollAttributes.js +0 -83
  177. package/dist/ScrollView/ScrollViewEvents.d.ts +0 -9
  178. package/dist/ScrollView/ScrollViewEvents.js +0 -167
  179. package/dist/ScrollView/index.d.ts +0 -1
  180. package/dist/ScrollView/index.js +0 -2
  181. package/dist/XAudioTT/XAudioAttribute.js +0 -93
  182. package/dist/XAudioTT/index.d.ts +0 -1
  183. package/dist/XAudioTT/index.js +0 -2
  184. package/dist/XCanvas/index.d.ts +0 -1
  185. package/dist/XCanvas/index.js +0 -2
  186. package/dist/XFoldViewNg/XFoldviewNgEvents.js +0 -67
  187. package/dist/XFoldViewNg/index.d.ts +0 -5
  188. package/dist/XFoldViewNg/index.js +0 -6
  189. package/dist/XImage/DropShadow.js +0 -30
  190. package/dist/XImage/ImageEvents.js +0 -69
  191. package/dist/XImage/ImageSrc.d.ts +0 -7
  192. package/dist/XImage/ImageSrc.js +0 -79
  193. package/dist/XImage/index.d.ts +0 -2
  194. package/dist/XImage/index.js +0 -3
  195. package/dist/XInput/InputBaseAttributes.d.ts +0 -9
  196. package/dist/XInput/InputBaseAttributes.js +0 -100
  197. package/dist/XInput/Placeholder.d.ts +0 -6
  198. package/dist/XInput/Placeholder.js +0 -60
  199. package/dist/XInput/XInputAttribute.d.ts +0 -9
  200. package/dist/XInput/XInputAttribute.js +0 -58
  201. package/dist/XInput/XInputEvents.d.ts +0 -6
  202. package/dist/XInput/index.d.ts +0 -1
  203. package/dist/XInput/index.js +0 -2
  204. package/dist/XList/ListItemAttributes.js +0 -32
  205. package/dist/XList/XListEvents.d.ts +0 -7
  206. package/dist/XList/index.d.ts +0 -2
  207. package/dist/XList/index.js +0 -3
  208. package/dist/XOverlayNg/XOverlayAttributes.js +0 -85
  209. package/dist/XOverlayNg/index.d.ts +0 -1
  210. package/dist/XOverlayNg/index.js +0 -2
  211. package/dist/XRefreshView/index.d.ts +0 -3
  212. package/dist/XRefreshView/index.js +0 -4
  213. package/dist/XSvg/XSvg.js +0 -99
  214. package/dist/XSvg/index.d.ts +0 -1
  215. package/dist/XSvg/index.js +0 -2
  216. package/dist/XSwiper/XSwiperAutoScroll.js +0 -76
  217. package/dist/XSwiper/XSwiperIndicator.d.ts +0 -9
  218. package/dist/XSwiper/XSwiperIndicator.js +0 -117
  219. package/dist/XSwiper/index.d.ts +0 -2
  220. package/dist/XSwiper/index.js +0 -3
  221. package/dist/XText/index.d.ts +0 -5
  222. package/dist/XText/index.js +0 -6
  223. package/dist/XTextarea/Placeholder.d.ts +0 -7
  224. package/dist/XTextarea/Placeholder.js +0 -60
  225. package/dist/XTextarea/TextareaBaseAttributes.d.ts +0 -6
  226. package/dist/XTextarea/TextareaBaseAttributes.js +0 -70
  227. package/dist/XTextarea/XTextareaAttributes.d.ts +0 -6
  228. package/dist/XTextarea/XTextareaAttributes.js +0 -81
  229. package/dist/XTextarea/XTextareaEvents.d.ts +0 -6
  230. package/dist/XTextarea/index.d.ts +0 -1
  231. package/dist/XTextarea/index.js +0 -2
  232. package/dist/XView/BlurRadius.js +0 -38
  233. package/dist/XView/index.d.ts +0 -2
  234. package/dist/XView/index.js +0 -3
  235. package/dist/XViewpagerNg/index.d.ts +0 -2
  236. package/dist/XViewpagerNg/index.js +0 -3
  237. package/dist/index.d.ts +0 -4
  238. package/dist/index.js +0 -8
  239. /package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.d.ts +0 -0
  240. /package/dist/{ScrollView → elements/ScrollView}/ScrollView.d.ts +0 -0
  241. /package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.d.ts +0 -0
  242. /package/dist/{XAudioTT → elements/XAudioTT}/utils.d.ts +0 -0
  243. /package/dist/{XAudioTT → elements/XAudioTT}/utils.js +0 -0
  244. /package/dist/{XCanvas → elements/XCanvas}/XCanvas.d.ts +0 -0
  245. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.d.ts +0 -0
  246. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.d.ts +0 -0
  247. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.d.ts +0 -0
  248. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.d.ts +0 -0
  249. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.d.ts +0 -0
  250. /package/dist/{XImage → elements/XImage}/FilterImage.d.ts +0 -0
  251. /package/dist/{XImage → elements/XImage}/XImage.d.ts +0 -0
  252. /package/dist/{XInput → elements/XInput}/XInput.d.ts +0 -0
  253. /package/dist/{XList → elements/XList}/ListItem.d.ts +0 -0
  254. /package/dist/{XList → elements/XList}/XList.d.ts +0 -0
  255. /package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.d.ts +0 -0
  256. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.d.ts +0 -0
  257. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.d.ts +0 -0
  258. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.js +0 -0
  259. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.d.ts +0 -0
  260. /package/dist/{XSwiper → elements/XSwiper}/SwiperItem.d.ts +0 -0
  261. /package/dist/{XSwiper → elements/XSwiper}/XSwiper.d.ts +0 -0
  262. /package/dist/{XText → elements/XText}/InlineText.d.ts +0 -0
  263. /package/dist/{XText → elements/XText}/InlineTruncation.d.ts +0 -0
  264. /package/dist/{XText → elements/XText}/XText.d.ts +0 -0
  265. /package/dist/{XTextarea → elements/XTextarea}/XTextarea.d.ts +0 -0
  266. /package/dist/{XView → elements/XView}/XBlurView.d.ts +0 -0
  267. /package/dist/{XView → elements/XView}/XView.d.ts +0 -0
  268. /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.d.ts +0 -0
  269. /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.d.ts +0 -0
  270. /package/dist/{all.d.ts → elements/all.d.ts} +0 -0
  271. /package/dist/{all.js → elements/all.js} +0 -0
  272. /package/dist/{common → elements/common}/bindToIntersectionObserver.d.ts +0 -0
  273. /package/dist/{common → elements/common}/bindToIntersectionObserver.js +0 -0
  274. /package/dist/{common → elements/common}/commonEventInitConfiguration.d.ts +0 -0
  275. /package/dist/{common → elements/common}/commonEventInitConfiguration.js +0 -0
  276. /package/dist/{common → elements/common}/constants.d.ts +0 -0
  277. /package/dist/{common → elements/common}/constants.js +0 -0
  278. /package/dist/{common → elements/common}/getCombinedParentElement.d.ts +0 -0
  279. /package/dist/{common → elements/common}/getCombinedParentElement.js +0 -0
  280. /package/dist/{common → elements/common}/renameEvent.d.ts +0 -0
  281. /package/dist/{common → elements/common}/renameEvent.js +0 -0
  282. /package/dist/{common → elements/common}/throttle.d.ts +0 -0
  283. /package/dist/{common → elements/common}/throttle.js +0 -0
  284. /package/src/{LynxWrapper → elements/LynxWrapper}/lynx-wrapper.css +0 -0
  285. /package/src/{ScrollView → elements/ScrollView}/scroll-view.css +0 -0
  286. /package/src/{XAudioTT → elements/XAudioTT}/x-audio-tt.css +0 -0
  287. /package/src/{XCanvas → elements/XCanvas}/x-canvas.css +0 -0
  288. /package/src/{XFoldViewNg → elements/XFoldViewNg}/x-foldview-ng.css +0 -0
  289. /package/src/{XImage → elements/XImage}/x-image.css +0 -0
  290. /package/src/{XList → elements/XList}/x-list.css +0 -0
  291. /package/src/{XOverlayNg → elements/XOverlayNg}/x-overlay-ng.css +0 -0
  292. /package/src/{XRefreshView → elements/XRefreshView}/x-refresh-view.css +0 -0
  293. /package/src/{XSvg → elements/XSvg}/x-svg.css +0 -0
  294. /package/src/{XSwiper → elements/XSwiper}/x-swiper.css +0 -0
  295. /package/src/{XText → elements/XText}/x-text.css +0 -0
  296. /package/src/{XTextarea → elements/XTextarea}/x-textarea.css +0 -0
  297. /package/src/{XViewpagerNg → elements/XViewpagerNg}/x-viewpager-ng.css +0 -0
@@ -0,0 +1,28 @@
1
+ // Copyright 2023 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ /**
5
+ * @module element-reactive
6
+ *
7
+ * This module provides the core reactive framework for building Web Components in Lynx.
8
+ *
9
+ * Core features:
10
+ * - `Component` decorator: Defines a custom element with reactive capabilities.
11
+ * - Attribute & Style Binding: Automatically updates component state when attributes or styles change.
12
+ * - Event Handling: Provides mechanisms to bind and handle events efficiently.
13
+ * - Lifecycle Management: Extensions to standard Web Component lifecycle callbacks.
14
+ * - Plugin System: Allows extending component behavior.
15
+ *
16
+ * Use this module to create highly performant and reactive custom elements that integrate seamlessly with the Lynx platform.
17
+ */
18
+ export { bindSwitchToEventListener } from './bindSwitchToEventListener.js';
19
+ export { bindToAttribute } from './bindToAttribute.js';
20
+ export { bindToStyle } from './bindToStyle.js';
21
+ export { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
22
+ export { genDomGetter } from './genDomGetter.js';
23
+ export { Component } from './component.js';
24
+ export { html } from './html.js';
25
+ export { registerAttributeHandler } from './registerAttributeHandler.js';
26
+ export { registerStyleChangeHandler } from './registerStyleChangeHandler.js';
27
+ export { registerEventEnableStatusChangeHandler } from './registerEventStatusChangedHandler.js';
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export type AttributeChangeHandler = (newValue: string | null, oldValue: string | null, attributeName: string) => void;
7
+ /**
8
+ * @param attributeName
9
+ * @param noDomMeasure If there are any measurement operation, the handler will be invoked after connected
10
+ * @returns
11
+ */
12
+ export declare const registerAttributeHandler: (key: string, args_0: boolean) => <T>(this: T, target: AttributeChangeHandler | undefined, context: ClassMemberDecoratorContext | ClassFieldDecoratorContext<T>) => any;
@@ -0,0 +1,11 @@
1
+ import { generateRegister } from './generateRegister.js';
2
+ /**
3
+ * @param attributeName
4
+ * @param noDomMeasure If there are any measurement operation, the handler will be invoked after connected
5
+ * @returns
6
+ */
7
+ export const registerAttributeHandler = generateRegister('attributeChangedHandler', (handler, [noDomMeasure]) => ({
8
+ handler,
9
+ noDomMeasure,
10
+ }));
11
+ //# sourceMappingURL=registerAttributeHandler.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export type EventStatusChangeHandler = (enable: boolean, eventName: string) => void;
7
+ /**
8
+ * @param eventName
9
+ * @returns
10
+ */
11
+ export declare const registerEventEnableStatusChangeHandler: (key: string) => <T>(this: T, target: EventStatusChangeHandler | undefined, context: ClassMemberDecoratorContext | ClassFieldDecoratorContext<T>) => any;
@@ -0,0 +1,7 @@
1
+ import { generateRegister } from './generateRegister.js';
2
+ /**
3
+ * @param eventName
4
+ * @returns
5
+ */
6
+ export const registerEventEnableStatusChangeHandler = generateRegister('eventStatusChangedHandler', (handler) => handler);
7
+ //# sourceMappingURL=registerEventStatusChangedHandler.js.map
@@ -0,0 +1,2 @@
1
+ export type StyleChangeHandler = (newValue: string | null, styleHyphenName: string) => void;
2
+ export declare const registerStyleChangeHandler: (key: string) => <T>(this: T, target: StyleChangeHandler | undefined, context: ClassMemberDecoratorContext | ClassFieldDecoratorContext<T>) => any;
@@ -0,0 +1,8 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { generateRegister } from './generateRegister.js';
7
+ export const registerStyleChangeHandler = generateRegister('cssPropertyChangedHandler', (handler) => handler);
8
+ //# sourceMappingURL=registerStyleChangeHandler.js.map
@@ -4,7 +4,7 @@ import { __esDecorate, __runInitializers } from "tslib";
4
4
  // Licensed under the Apache License Version 2.0 that can be found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Component } from '@lynx-js/web-elements-reactive';
7
+ import { Component } from '../../element-reactive/index.js';
8
8
  let LynxWrapper = (() => {
9
9
  let _classDecorators = [Component('lynx-wrapper', [])];
10
10
  let _classDescriptor;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module elements/LynxWrapper
3
+ *
4
+ * `lynx-wrapper` is a helper element used to wrap content in specific scenarios.
5
+ * It is a simple container with no specific behavioral logic.
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <lynx-wrapper>
10
+ * <div>Content</div>
11
+ * </lynx-wrapper>
12
+ * ```
13
+ */
14
+ export { LynxWrapper } from './LynxWrapper.js';
@@ -0,0 +1,18 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ /**
5
+ * @module elements/LynxWrapper
6
+ *
7
+ * `lynx-wrapper` is a helper element used to wrap content in specific scenarios.
8
+ * It is a simple container with no specific behavioral logic.
9
+ *
10
+ * @example
11
+ * ```html
12
+ * <lynx-wrapper>
13
+ * <div>Content</div>
14
+ * </lynx-wrapper>
15
+ * ```
16
+ */
17
+ export { LynxWrapper } from './LynxWrapper.js';
18
+ //# sourceMappingURL=index.js.map
@@ -1,10 +1,12 @@
1
- import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
2
  import type { ScrollView } from './ScrollView.js';
3
3
  export declare class FadeEdgeLengthAttribute implements InstanceType<AttributeReactiveClass<typeof ScrollView>> {
4
4
  #private;
5
5
  static observedAttributes: string[];
6
6
  static observedCSSProperties: string[];
7
7
  constructor(dom: ScrollView);
8
+ _handleFadingEdgeLength: (this: void, newVal: string | null) => void;
9
+ _backgroundColorToVariable(backGroundColor: string | null): void;
8
10
  connectedCallback?(): void;
9
11
  dispose(): void;
10
12
  }
@@ -0,0 +1,42 @@
1
+ /*
2
+ // Copyright 2024 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { __esDecorate, __runInitializers } from "tslib";
7
+ import { bindToStyle, genDomGetter, registerAttributeHandler, registerStyleChangeHandler, } from '../../element-reactive/index.js';
8
+ let FadeEdgeLengthAttribute = (() => {
9
+ let _instanceExtraInitializers = [];
10
+ let __handleFadingEdgeLength_decorators;
11
+ let __handleFadingEdgeLength_initializers = [];
12
+ let __handleFadingEdgeLength_extraInitializers = [];
13
+ let __backgroundColorToVariable_decorators;
14
+ return class FadeEdgeLengthAttribute {
15
+ static {
16
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
17
+ __handleFadingEdgeLength_decorators = [registerAttributeHandler('fading-edge-length', true)];
18
+ __backgroundColorToVariable_decorators = [registerStyleChangeHandler('background'), registerStyleChangeHandler('background-color')];
19
+ __esDecorate(this, null, __backgroundColorToVariable_decorators, { kind: "method", name: "_backgroundColorToVariable", static: false, private: false, access: { has: obj => "_backgroundColorToVariable" in obj, get: obj => obj._backgroundColorToVariable }, metadata: _metadata }, null, _instanceExtraInitializers);
20
+ __esDecorate(null, null, __handleFadingEdgeLength_decorators, { kind: "field", name: "_handleFadingEdgeLength", static: false, private: false, access: { has: obj => "_handleFadingEdgeLength" in obj, get: obj => obj._handleFadingEdgeLength, set: (obj, value) => { obj._handleFadingEdgeLength = value; } }, metadata: _metadata }, __handleFadingEdgeLength_initializers, __handleFadingEdgeLength_extraInitializers);
21
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
22
+ }
23
+ #dom = __runInitializers(this, _instanceExtraInitializers);
24
+ #getTopFadeMask = genDomGetter(() => this.#dom.shadowRoot, '#top-fade-mask');
25
+ #getBotFadeMask = genDomGetter(() => this.#dom.shadowRoot, '#bot-fade-mask');
26
+ static observedAttributes = ['fading-edge-length'];
27
+ static observedCSSProperties = ['background', 'background-color'];
28
+ constructor(dom) {
29
+ __runInitializers(this, __handleFadingEdgeLength_extraInitializers);
30
+ this.#dom = dom;
31
+ }
32
+ _handleFadingEdgeLength = __runInitializers(this, __handleFadingEdgeLength_initializers, bindToStyle(() => this.#dom, '--scroll-view-fading-edge-length', (v) => `${parseFloat(v)}px`));
33
+ _backgroundColorToVariable(backGroundColor) {
34
+ this.#getTopFadeMask().style.setProperty('--scroll-view-bg-color', backGroundColor);
35
+ this.#getBotFadeMask().style.setProperty('--scroll-view-bg-color', backGroundColor);
36
+ }
37
+ connectedCallback() { }
38
+ dispose() { }
39
+ };
40
+ })();
41
+ export { FadeEdgeLengthAttribute };
42
+ //# sourceMappingURL=FadeEdgeLengthAttribute.js.map
@@ -1,8 +1,10 @@
1
- import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
2
  import type { ScrollView } from './ScrollView.js';
3
3
  export declare class ScrollAttributes implements InstanceType<AttributeReactiveClass<typeof ScrollView>> {
4
4
  #private;
5
5
  static observedAttributes: string[];
6
6
  constructor(dom: ScrollView);
7
+ _handleInitialScrollOffset(newVal: string | null, _: string | null, attributeName: string): void;
8
+ _handleInitialScrollIndex(newVal: string | null): void;
7
9
  dispose(): void;
8
10
  }
@@ -0,0 +1,81 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ /*
3
+ // Copyright 2024 The Lynx Authors. All rights reserved.
4
+ // Licensed under the Apache License Version 2.0 that can be found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { registerAttributeHandler, } from '../../element-reactive/index.js';
8
+ let ScrollAttributes = (() => {
9
+ let _instanceExtraInitializers = [];
10
+ let __handleInitialScrollOffset_decorators;
11
+ let __handleInitialScrollIndex_decorators;
12
+ return class ScrollAttributes {
13
+ static {
14
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
15
+ __handleInitialScrollOffset_decorators = [registerAttributeHandler('scroll-top', false), registerAttributeHandler('scroll-left', false), registerAttributeHandler('initial-scroll-offset', false)];
16
+ __handleInitialScrollIndex_decorators = [registerAttributeHandler('scroll-to-index', false), registerAttributeHandler('initial-scroll-to-index', false)];
17
+ __esDecorate(this, null, __handleInitialScrollOffset_decorators, { kind: "method", name: "_handleInitialScrollOffset", static: false, private: false, access: { has: obj => "_handleInitialScrollOffset" in obj, get: obj => obj._handleInitialScrollOffset }, metadata: _metadata }, null, _instanceExtraInitializers);
18
+ __esDecorate(this, null, __handleInitialScrollIndex_decorators, { kind: "method", name: "_handleInitialScrollIndex", static: false, private: false, access: { has: obj => "_handleInitialScrollIndex" in obj, get: obj => obj._handleInitialScrollIndex }, metadata: _metadata }, null, _instanceExtraInitializers);
19
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
20
+ }
21
+ #dom = __runInitializers(this, _instanceExtraInitializers);
22
+ static observedAttributes = [
23
+ 'scroll-top',
24
+ 'scroll-left',
25
+ 'initial-scroll-offset',
26
+ 'scroll-to-index',
27
+ 'initial-scroll-to-index',
28
+ ];
29
+ constructor(dom) {
30
+ this.#dom = dom;
31
+ }
32
+ _handleInitialScrollOffset(newVal, _, attributeName) {
33
+ if (newVal) {
34
+ const scrollValue = parseFloat(newVal);
35
+ const scrollOrientation = this.#dom.getAttribute('scroll-orientation');
36
+ const scrollY = this.#dom.getAttribute('scroll-y');
37
+ const scrollX = this.#dom.getAttribute('scroll-x');
38
+ const topScrollDistance = (attributeName === 'scroll-top'
39
+ || attributeName === 'initial-scroll-offset')
40
+ && (scrollY === ''
41
+ || scrollY === 'true'
42
+ || scrollOrientation === 'vertical'
43
+ || scrollOrientation === 'both');
44
+ const leftScrollDistance = (attributeName === 'scroll-left'
45
+ || attributeName === 'initial-scroll-offset')
46
+ && (scrollX === ''
47
+ || scrollX === 'true'
48
+ || scrollOrientation === 'vertical'
49
+ || scrollOrientation === 'both');
50
+ requestAnimationFrame(() => {
51
+ if (topScrollDistance) {
52
+ this.#dom.scrollTo(0, scrollValue);
53
+ }
54
+ if (leftScrollDistance) {
55
+ this.#dom.scrollLeft = scrollValue;
56
+ }
57
+ });
58
+ }
59
+ }
60
+ _handleInitialScrollIndex(newVal) {
61
+ if (newVal) {
62
+ const scrollValue = parseFloat(newVal);
63
+ const childrenElement = this.#dom.children.item(scrollValue);
64
+ if (childrenElement && childrenElement instanceof HTMLElement) {
65
+ const scrollX = this.#dom.getAttribute('scroll-x') !== null;
66
+ requestAnimationFrame(() => {
67
+ if (scrollX) {
68
+ this.#dom.scrollLeft = childrenElement.offsetLeft;
69
+ }
70
+ else {
71
+ this.#dom.scrollTop = childrenElement.offsetTop;
72
+ }
73
+ });
74
+ }
75
+ }
76
+ }
77
+ dispose() { }
78
+ };
79
+ })();
80
+ export { ScrollAttributes };
81
+ //# sourceMappingURL=ScrollAttributes.js.map
@@ -1,4 +1,4 @@
1
- import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
2
  import type { ScrollView } from './ScrollView.js';
3
3
  export declare class ScrollIntoView implements InstanceType<AttributeReactiveClass<typeof ScrollView>> {
4
4
  #private;
@@ -3,7 +3,7 @@
3
3
  // Licensed under the Apache License Version 2.0 that can be found in the
4
4
  // LICENSE file in the root directory of this source tree.
5
5
  */
6
- import {} from '@lynx-js/web-elements-reactive';
6
+ import {} from '../../element-reactive/index.js';
7
7
  export class ScrollIntoView {
8
8
  static eventName = '__scrollIntoView';
9
9
  static observedAttributes = [];
@@ -9,9 +9,9 @@ import { FadeEdgeLengthAttribute } from './FadeEdgeLengthAttribute.js';
9
9
  import { ScrollAttributes } from './ScrollAttributes.js';
10
10
  import { ScrollViewEvents } from './ScrollViewEvents.js';
11
11
  import { ScrollIntoView } from './ScrollIntoView.js';
12
- import { Component } from '@lynx-js/web-elements-reactive';
12
+ import { Component } from '../../element-reactive/index.js';
13
13
  import { scrollContainerDom } from '../common/constants.js';
14
- import { templateScrollView } from '@lynx-js/web-elements-template';
14
+ import { templateScrollView } from '../htmlTemplates.js';
15
15
  let ScrollView = (() => {
16
16
  let _classDecorators = [Component('scroll-view', [
17
17
  CommonEventsAndMethods,
@@ -0,0 +1,15 @@
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
+ import type { ScrollView } from './ScrollView.js';
3
+ export declare class ScrollViewEvents implements InstanceType<AttributeReactiveClass<typeof ScrollView>> {
4
+ #private;
5
+ constructor(dom: ScrollView);
6
+ static observedAttributes: string[];
7
+ _handleScrollUpperThresholdEventEnabled: (enabled: boolean) => void;
8
+ _handleScrollLowerThresholdEventEnabled: (enabled: boolean) => void;
9
+ _updateUpperThreshold: (this: void, newVal: string | null) => void;
10
+ _updateLowerThreshold: (this: void, newVal: string | null) => void;
11
+ _handleScrollEventEnabled: (enabled: boolean) => void;
12
+ _handleScrollEndEventEnabled: (enabled: boolean) => void;
13
+ connectedCallback?(): void;
14
+ dispose(): void;
15
+ }
@@ -0,0 +1,167 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ /*
3
+ // Copyright 2024 The Lynx Authors. All rights reserved.
4
+ // Licensed under the Apache License Version 2.0 that can be found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { bindToStyle, genDomGetter, registerAttributeHandler, } from '../../element-reactive/index.js';
8
+ import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
9
+ import { bindToIntersectionObserver } from '../common/bindToIntersectionObserver.js';
10
+ import { useScrollEnd } from '../common/constants.js';
11
+ import { registerEventEnableStatusChangeHandler } from '../../element-reactive/index.js';
12
+ let ScrollViewEvents = (() => {
13
+ let __handleScrollUpperThresholdEventEnabled_decorators;
14
+ let __handleScrollUpperThresholdEventEnabled_initializers = [];
15
+ let __handleScrollUpperThresholdEventEnabled_extraInitializers = [];
16
+ let __handleScrollLowerThresholdEventEnabled_decorators;
17
+ let __handleScrollLowerThresholdEventEnabled_initializers = [];
18
+ let __handleScrollLowerThresholdEventEnabled_extraInitializers = [];
19
+ let __updateUpperThreshold_decorators;
20
+ let __updateUpperThreshold_initializers = [];
21
+ let __updateUpperThreshold_extraInitializers = [];
22
+ let __updateLowerThreshold_decorators;
23
+ let __updateLowerThreshold_initializers = [];
24
+ let __updateLowerThreshold_extraInitializers = [];
25
+ let __handleScrollEventEnabled_decorators;
26
+ let __handleScrollEventEnabled_initializers = [];
27
+ let __handleScrollEventEnabled_extraInitializers = [];
28
+ let __handleScrollEndEventEnabled_decorators;
29
+ let __handleScrollEndEventEnabled_initializers = [];
30
+ let __handleScrollEndEventEnabled_extraInitializers = [];
31
+ return class ScrollViewEvents {
32
+ static {
33
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
34
+ __handleScrollUpperThresholdEventEnabled_decorators = [registerEventEnableStatusChangeHandler('scrolltoupper')];
35
+ __handleScrollLowerThresholdEventEnabled_decorators = [registerEventEnableStatusChangeHandler('scrolltolower')];
36
+ __updateUpperThreshold_decorators = [registerAttributeHandler('upper-threshold', true)];
37
+ __updateLowerThreshold_decorators = [registerAttributeHandler('lower-threshold', true)];
38
+ __handleScrollEventEnabled_decorators = [registerEventEnableStatusChangeHandler('lynxscroll')];
39
+ __handleScrollEndEventEnabled_decorators = [registerEventEnableStatusChangeHandler('lynxscrollend')];
40
+ __esDecorate(null, null, __handleScrollUpperThresholdEventEnabled_decorators, { kind: "field", name: "_handleScrollUpperThresholdEventEnabled", static: false, private: false, access: { has: obj => "_handleScrollUpperThresholdEventEnabled" in obj, get: obj => obj._handleScrollUpperThresholdEventEnabled, set: (obj, value) => { obj._handleScrollUpperThresholdEventEnabled = value; } }, metadata: _metadata }, __handleScrollUpperThresholdEventEnabled_initializers, __handleScrollUpperThresholdEventEnabled_extraInitializers);
41
+ __esDecorate(null, null, __handleScrollLowerThresholdEventEnabled_decorators, { kind: "field", name: "_handleScrollLowerThresholdEventEnabled", static: false, private: false, access: { has: obj => "_handleScrollLowerThresholdEventEnabled" in obj, get: obj => obj._handleScrollLowerThresholdEventEnabled, set: (obj, value) => { obj._handleScrollLowerThresholdEventEnabled = value; } }, metadata: _metadata }, __handleScrollLowerThresholdEventEnabled_initializers, __handleScrollLowerThresholdEventEnabled_extraInitializers);
42
+ __esDecorate(null, null, __updateUpperThreshold_decorators, { kind: "field", name: "_updateUpperThreshold", static: false, private: false, access: { has: obj => "_updateUpperThreshold" in obj, get: obj => obj._updateUpperThreshold, set: (obj, value) => { obj._updateUpperThreshold = value; } }, metadata: _metadata }, __updateUpperThreshold_initializers, __updateUpperThreshold_extraInitializers);
43
+ __esDecorate(null, null, __updateLowerThreshold_decorators, { kind: "field", name: "_updateLowerThreshold", static: false, private: false, access: { has: obj => "_updateLowerThreshold" in obj, get: obj => obj._updateLowerThreshold, set: (obj, value) => { obj._updateLowerThreshold = value; } }, metadata: _metadata }, __updateLowerThreshold_initializers, __updateLowerThreshold_extraInitializers);
44
+ __esDecorate(null, null, __handleScrollEventEnabled_decorators, { kind: "field", name: "_handleScrollEventEnabled", static: false, private: false, access: { has: obj => "_handleScrollEventEnabled" in obj, get: obj => obj._handleScrollEventEnabled, set: (obj, value) => { obj._handleScrollEventEnabled = value; } }, metadata: _metadata }, __handleScrollEventEnabled_initializers, __handleScrollEventEnabled_extraInitializers);
45
+ __esDecorate(null, null, __handleScrollEndEventEnabled_decorators, { kind: "field", name: "_handleScrollEndEventEnabled", static: false, private: false, access: { has: obj => "_handleScrollEndEventEnabled" in obj, get: obj => obj._handleScrollEndEventEnabled, set: (obj, value) => { obj._handleScrollEndEventEnabled = value; } }, metadata: _metadata }, __handleScrollEndEventEnabled_initializers, __handleScrollEndEventEnabled_extraInitializers);
46
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
47
+ }
48
+ #dom;
49
+ #debounceScrollForMockingScrollEnd;
50
+ #prevX = 0;
51
+ #prevY = 0;
52
+ constructor(dom) {
53
+ __runInitializers(this, __handleScrollEndEventEnabled_extraInitializers);
54
+ this.#dom = dom;
55
+ }
56
+ #getScrollContainer = () => this.#dom;
57
+ #getUpperThresholdObserverDom = genDomGetter(() => this.#dom.shadowRoot, '#upper-threshold-observer');
58
+ #getLowerThresholdObserverDom = genDomGetter(() => this.#dom.shadowRoot, '#lower-threshold-observer');
59
+ #handleObserver = (entries) => {
60
+ const { isIntersecting, target } = entries[0];
61
+ const id = target.id;
62
+ if (isIntersecting) {
63
+ if (id === 'upper-threshold-observer') {
64
+ this.#dom.dispatchEvent(new CustomEvent('scrolltoupper', {
65
+ ...commonComponentEventSetting,
66
+ detail: this.#getScrollDetail(),
67
+ }));
68
+ }
69
+ else if (id === 'lower-threshold-observer') {
70
+ this.#dom.dispatchEvent(new CustomEvent('scrolltolower', {
71
+ ...commonComponentEventSetting,
72
+ detail: this.#getScrollDetail(),
73
+ }));
74
+ }
75
+ }
76
+ };
77
+ static observedAttributes = [
78
+ 'upper-threshold',
79
+ 'lower-threshold',
80
+ ];
81
+ _handleScrollUpperThresholdEventEnabled = __runInitializers(this, __handleScrollUpperThresholdEventEnabled_initializers, (enabled) => {
82
+ enabled
83
+ ? this.#dom.setAttribute('x-enable-scrolltoupper-event', '')
84
+ : this.#dom.removeAttribute('x-enable-scrolltoupper-event'); // css needs this;
85
+ this.#updateUpperIntersectionObserver(enabled);
86
+ });
87
+ #updateUpperIntersectionObserver = (__runInitializers(this, __handleScrollUpperThresholdEventEnabled_extraInitializers), bindToIntersectionObserver(this.#getScrollContainer, this.#getUpperThresholdObserverDom, this.#handleObserver));
88
+ _handleScrollLowerThresholdEventEnabled = __runInitializers(this, __handleScrollLowerThresholdEventEnabled_initializers, (enabled) => {
89
+ enabled
90
+ ? this.#dom.setAttribute('x-enable-scrolltolower-event', '')
91
+ : this.#dom.removeAttribute('x-enable-scrolltolower-event'); // css needs this;
92
+ this.#updateLowerIntersectionObserver(enabled);
93
+ });
94
+ #updateLowerIntersectionObserver = (__runInitializers(this, __handleScrollLowerThresholdEventEnabled_extraInitializers), bindToIntersectionObserver(this.#getScrollContainer, this.#getLowerThresholdObserverDom, this.#handleObserver));
95
+ _updateUpperThreshold = __runInitializers(this, __updateUpperThreshold_initializers, bindToStyle(this.#getUpperThresholdObserverDom, 'flex-basis', (v) => `${parseInt(v)}px`));
96
+ _updateLowerThreshold = (__runInitializers(this, __updateUpperThreshold_extraInitializers), __runInitializers(this, __updateLowerThreshold_initializers, bindToStyle(this.#getLowerThresholdObserverDom, 'flex-basis', (v) => `${parseInt(v)}px`)));
97
+ #getScrollDetail() {
98
+ let { scrollTop, scrollLeft, scrollHeight, scrollWidth } = this
99
+ .#getScrollContainer();
100
+ if (scrollTop === 0) {
101
+ scrollTop -= this.#dom.scrollHeight / 2 - this.#dom.scrollTop;
102
+ }
103
+ if (scrollLeft === 0) {
104
+ scrollLeft -= this.#dom.scrollWidth / 2 - this.#dom.scrollLeft;
105
+ }
106
+ const detail = {
107
+ scrollTop,
108
+ scrollLeft,
109
+ scrollHeight,
110
+ scrollWidth,
111
+ isDragging: false,
112
+ deltaX: scrollLeft - this.#prevX,
113
+ deltaY: scrollTop - this.#prevY,
114
+ };
115
+ this.#prevX = scrollLeft;
116
+ this.#prevY = scrollTop;
117
+ return detail;
118
+ }
119
+ #handleScroll = (__runInitializers(this, __updateLowerThreshold_extraInitializers), () => {
120
+ if (this.#scrollEndEventEnabled && !useScrollEnd) {
121
+ // debounce
122
+ clearTimeout(this.#debounceScrollForMockingScrollEnd);
123
+ this.#debounceScrollForMockingScrollEnd = setTimeout(() => {
124
+ this.#handleScrollEnd();
125
+ }, 100);
126
+ }
127
+ this.#dom.dispatchEvent(new CustomEvent('lynxscroll', {
128
+ ...commonComponentEventSetting,
129
+ detail: this.#getScrollDetail(),
130
+ }));
131
+ });
132
+ #handleScrollEnd = () => {
133
+ this.#dom.dispatchEvent(new CustomEvent('lynxscrollend', {
134
+ ...commonComponentEventSetting,
135
+ detail: this.#getScrollDetail(),
136
+ }));
137
+ };
138
+ #scrollEventEnabled = false;
139
+ _handleScrollEventEnabled = __runInitializers(this, __handleScrollEventEnabled_initializers, (enabled) => {
140
+ this.#scrollEventEnabled = enabled;
141
+ this.#handleScrollEventsSwitches();
142
+ });
143
+ #scrollEndEventEnabled = (__runInitializers(this, __handleScrollEventEnabled_extraInitializers), false);
144
+ _handleScrollEndEventEnabled = __runInitializers(this, __handleScrollEndEventEnabled_initializers, (enabled) => {
145
+ this.#scrollEndEventEnabled = enabled;
146
+ this.#handleScrollEventsSwitches();
147
+ });
148
+ #handleScrollEventsSwitches() {
149
+ if (this.#scrollEventEnabled || this.#scrollEndEventEnabled) {
150
+ this.#getScrollContainer().addEventListener('scroll', this.#handleScroll);
151
+ this.#getScrollContainer().addEventListener('scrollend', this.#handleScrollEnd);
152
+ this.#dom.addEventListener('scroll', this.#handleScroll);
153
+ this.#dom.addEventListener('scrollend', this.#handleScrollEnd);
154
+ this.#prevX = 0;
155
+ this.#prevY = 0;
156
+ }
157
+ else {
158
+ this.#dom.removeEventListener('scroll', this.#handleScroll);
159
+ this.#dom.removeEventListener('scrollend', this.#handleScrollEnd);
160
+ }
161
+ }
162
+ connectedCallback() { }
163
+ dispose() { }
164
+ };
165
+ })();
166
+ export { ScrollViewEvents };
167
+ //# sourceMappingURL=ScrollViewEvents.js.map
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module elements/ScrollView
3
+ *
4
+ * `scroll-view` provides a scrollable container.
5
+ *
6
+ * Attributes:
7
+ * - `scroll-top`: Sets the vertical scroll position.
8
+ * - `scroll-left`: Sets the horizontal scroll position.
9
+ * - `initial-scroll-offset`: Sets the initial scroll position (in px).
10
+ * - `scroll-to-index`: Scrolls to the child element at the specified index.
11
+ * - `initial-scroll-to-index`: Scrolls to the child element at the specified index on init.
12
+ * - `fading-edge-length`: Sets the length of the fading edge effect.
13
+ * - `scroll-orientation`: 'vertical' | 'horizontal' | 'both'.
14
+ * - `scroll-y`: 'true' | 'false' to enable vertical scrolling.
15
+ * - `scroll-x`: 'true' | 'false' to enable horizontal scrolling.
16
+ * - `enable-scroll`: 'true' | 'false', creates a scrolling container.
17
+ *
18
+ * Events:
19
+ * - `scrolltoupper`: Reached top threshold.
20
+ * - `scrolltolower`: Reached bottom threshold.
21
+ * - `scroll`: Fired on scroll. Detail: `{ scrollTop, scrollLeft, scrollHeight, scrollWidth, deltaX, deltaY }`.
22
+ *
23
+ * CSS:
24
+ * - Forces `display: flex` and linear layout behavior.
25
+ * - Hides scrollbars by default (unless enabled via attribute).
26
+ * - Uses `scroll-timeline` for scroll-linked animations.
27
+ *
28
+ * Methods:
29
+ * - `scrollTo(options)`: Scrolls to a specific position or child.
30
+ * - `autoScroll(options)`: Starts or stops auto-scrolling.
31
+ */
32
+ export { ScrollView } from './ScrollView.js';
@@ -0,0 +1,36 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ /**
5
+ * @module elements/ScrollView
6
+ *
7
+ * `scroll-view` provides a scrollable container.
8
+ *
9
+ * Attributes:
10
+ * - `scroll-top`: Sets the vertical scroll position.
11
+ * - `scroll-left`: Sets the horizontal scroll position.
12
+ * - `initial-scroll-offset`: Sets the initial scroll position (in px).
13
+ * - `scroll-to-index`: Scrolls to the child element at the specified index.
14
+ * - `initial-scroll-to-index`: Scrolls to the child element at the specified index on init.
15
+ * - `fading-edge-length`: Sets the length of the fading edge effect.
16
+ * - `scroll-orientation`: 'vertical' | 'horizontal' | 'both'.
17
+ * - `scroll-y`: 'true' | 'false' to enable vertical scrolling.
18
+ * - `scroll-x`: 'true' | 'false' to enable horizontal scrolling.
19
+ * - `enable-scroll`: 'true' | 'false', creates a scrolling container.
20
+ *
21
+ * Events:
22
+ * - `scrolltoupper`: Reached top threshold.
23
+ * - `scrolltolower`: Reached bottom threshold.
24
+ * - `scroll`: Fired on scroll. Detail: `{ scrollTop, scrollLeft, scrollHeight, scrollWidth, deltaX, deltaY }`.
25
+ *
26
+ * CSS:
27
+ * - Forces `display: flex` and linear layout behavior.
28
+ * - Hides scrollbars by default (unless enabled via attribute).
29
+ * - Uses `scroll-timeline` for scroll-linked animations.
30
+ *
31
+ * Methods:
32
+ * - `scrollTo(options)`: Scrolls to a specific position or child.
33
+ * - `autoScroll(options)`: Starts or stops auto-scrolling.
34
+ */
35
+ export { ScrollView } from './ScrollView.js';
36
+ //# sourceMappingURL=index.js.map
@@ -1,7 +1,10 @@
1
- import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
2
  import type { XAudioTT } from './XAudioTT.js';
3
3
  export declare class XAudioAttribute implements InstanceType<AttributeReactiveClass<typeof HTMLElement>> {
4
4
  #private;
5
5
  static observedAttributes: string[];
6
+ _handleSrc(newValue: string | null): void;
7
+ _handleLoop: (this: void, newVal: string | null) => void;
8
+ _handlePauseOnHide(newValue: string | null): void;
6
9
  constructor(dom: XAudioTT);
7
10
  }