@lynx-js/web-elements 0.9.0 → 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.
- package/CHANGELOG.md +29 -0
- package/dist/compat/LinearContainer/LinearContainer.d.ts +8 -0
- package/dist/compat/LinearContainer/LinearContainer.js +109 -0
- package/dist/element-reactive/bindSwitchToEventListener.d.ts +1 -0
- package/dist/element-reactive/bindSwitchToEventListener.js +23 -0
- package/dist/element-reactive/bindToAttribute.d.ts +2 -0
- package/dist/element-reactive/bindToAttribute.js +27 -0
- package/dist/element-reactive/bindToStyle.d.ts +2 -0
- package/dist/element-reactive/bindToStyle.js +21 -0
- package/dist/element-reactive/boostedQueueMicrotask.d.ts +1 -0
- package/dist/element-reactive/boostedQueueMicrotask.js +20 -0
- package/dist/element-reactive/component.d.ts +43 -0
- package/dist/element-reactive/component.js +217 -0
- package/dist/element-reactive/genDomGetter.d.ts +9 -0
- package/dist/element-reactive/genDomGetter.js +18 -0
- package/dist/element-reactive/generateRegister.d.ts +6 -0
- package/dist/element-reactive/generateRegister.js +29 -0
- package/dist/element-reactive/html.d.ts +6 -0
- package/dist/element-reactive/html.js +8 -0
- package/dist/element-reactive/index.d.ts +30 -0
- package/dist/element-reactive/index.js +28 -0
- package/dist/element-reactive/registerAttributeHandler.d.ts +12 -0
- package/dist/element-reactive/registerAttributeHandler.js +11 -0
- package/dist/element-reactive/registerEventStatusChangedHandler.d.ts +11 -0
- package/dist/element-reactive/registerEventStatusChangedHandler.js +7 -0
- package/dist/element-reactive/registerStyleChangeHandler.d.ts +2 -0
- package/dist/element-reactive/registerStyleChangeHandler.js +8 -0
- package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.js +1 -1
- package/dist/elements/LynxWrapper/index.d.ts +14 -0
- package/dist/elements/LynxWrapper/index.js +18 -0
- package/dist/{ScrollView → elements/ScrollView}/FadeEdgeLengthAttribute.d.ts +3 -1
- package/dist/elements/ScrollView/FadeEdgeLengthAttribute.js +42 -0
- package/dist/{ScrollView → elements/ScrollView}/ScrollAttributes.d.ts +3 -1
- package/dist/elements/ScrollView/ScrollAttributes.js +81 -0
- package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.d.ts +1 -1
- package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.js +1 -1
- package/dist/{ScrollView → elements/ScrollView}/ScrollView.js +2 -2
- package/dist/elements/ScrollView/ScrollViewEvents.d.ts +15 -0
- package/dist/elements/ScrollView/ScrollViewEvents.js +167 -0
- package/dist/elements/ScrollView/index.d.ts +32 -0
- package/dist/elements/ScrollView/index.js +36 -0
- package/dist/{XAudioTT → elements/XAudioTT}/XAudioAttribute.d.ts +4 -1
- package/dist/elements/XAudioTT/XAudioAttribute.js +90 -0
- package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.d.ts +1 -1
- package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.js +1 -1
- package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.js +2 -2
- package/dist/elements/XAudioTT/index.d.ts +21 -0
- package/dist/elements/XAudioTT/index.js +25 -0
- package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.d.ts +1 -1
- package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.js +1 -1
- package/dist/{XCanvas → elements/XCanvas}/XCanvas.js +1 -1
- package/dist/elements/XCanvas/index.d.ts +14 -0
- package/dist/elements/XCanvas/index.js +18 -0
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.js +1 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.js +1 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNgEvents.d.ts +3 -1
- package/dist/elements/XFoldViewNg/XFoldviewNgEvents.js +65 -0
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.js +1 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.js +1 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.d.ts +1 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.js +0 -1
- package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.js +1 -1
- package/dist/elements/XFoldViewNg/index.d.ts +23 -0
- package/dist/elements/XFoldViewNg/index.js +27 -0
- package/dist/{XImage → elements/XImage}/DropShadow.d.ts +2 -1
- package/dist/elements/XImage/DropShadow.js +30 -0
- package/dist/{XImage → elements/XImage}/FilterImage.js +2 -2
- package/dist/{XImage → elements/XImage}/ImageEvents.d.ts +3 -1
- package/dist/elements/XImage/ImageEvents.js +67 -0
- package/dist/elements/XImage/ImageSrc.d.ts +12 -0
- package/dist/elements/XImage/ImageSrc.js +78 -0
- package/dist/{XImage → elements/XImage}/XImage.js +2 -2
- package/dist/elements/XImage/index.d.ts +18 -0
- package/dist/elements/XImage/index.js +22 -0
- package/dist/elements/XInput/InputBaseAttributes.d.ts +14 -0
- package/dist/elements/XInput/InputBaseAttributes.js +98 -0
- package/dist/elements/XInput/Placeholder.d.ts +11 -0
- package/dist/elements/XInput/Placeholder.js +60 -0
- package/dist/{XInput → elements/XInput}/XInput.js +2 -2
- package/dist/elements/XInput/XInputAttribute.d.ts +12 -0
- package/dist/elements/XInput/XInputAttribute.js +57 -0
- package/dist/elements/XInput/XInputEvents.d.ts +9 -0
- package/dist/{XInput → elements/XInput}/XInputEvents.js +36 -39
- package/dist/elements/XInput/index.d.ts +34 -0
- package/dist/elements/XInput/index.js +38 -0
- package/dist/{XList → elements/XList}/ListItem.js +1 -1
- package/dist/{XList → elements/XList}/ListItemAttributes.d.ts +2 -1
- package/dist/elements/XList/ListItemAttributes.js +31 -0
- package/dist/{XList → elements/XList}/XList.js +2 -2
- package/dist/{XList → elements/XList}/XListAttributes.d.ts +3 -1
- package/dist/{XList → elements/XList}/XListAttributes.js +14 -14
- package/dist/elements/XList/XListEvents.d.ts +14 -0
- package/dist/{XList → elements/XList}/XListEvents.js +78 -80
- package/dist/{XList → elements/XList}/XListWaterfall.d.ts +3 -1
- package/dist/{XList → elements/XList}/XListWaterfall.js +67 -69
- package/dist/elements/XList/index.d.ts +32 -0
- package/dist/elements/XList/index.js +36 -0
- package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayAttributes.d.ts +3 -1
- package/dist/elements/XOverlayNg/XOverlayAttributes.js +83 -0
- package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.js +2 -2
- package/dist/elements/XOverlayNg/index.d.ts +14 -0
- package/dist/elements/XOverlayNg/index.js +18 -0
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.js +1 -1
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.js +1 -1
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.d.ts +1 -1
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.js +2 -2
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.d.ts +3 -1
- package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.js +36 -39
- package/dist/elements/XRefreshView/index.d.ts +26 -0
- package/dist/elements/XRefreshView/index.js +30 -0
- package/dist/{XSvg → elements/XSvg}/XSvg.d.ts +4 -1
- package/dist/elements/XSvg/XSvg.js +96 -0
- package/dist/elements/XSvg/index.d.ts +13 -0
- package/dist/elements/XSvg/index.js +17 -0
- package/dist/{XSwiper → elements/XSwiper}/SwiperItem.js +1 -1
- package/dist/{XSwiper → elements/XSwiper}/XSwiper.js +2 -2
- package/dist/{XSwiper → elements/XSwiper}/XSwiperAutoScroll.d.ts +3 -1
- package/dist/elements/XSwiper/XSwiperAutoScroll.js +74 -0
- package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.d.ts +3 -1
- package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.js +24 -26
- package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.d.ts +3 -1
- package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.js +21 -22
- package/dist/elements/XSwiper/XSwiperIndicator.d.ts +14 -0
- package/dist/elements/XSwiper/XSwiperIndicator.js +117 -0
- package/dist/elements/XSwiper/index.d.ts +29 -0
- package/dist/elements/XSwiper/index.js +33 -0
- package/dist/{XText → elements/XText}/InlineImage.d.ts +2 -1
- package/dist/{XText → elements/XText}/InlineImage.js +12 -13
- package/dist/{XText → elements/XText}/InlineText.js +1 -1
- package/dist/{XText → elements/XText}/InlineTruncation.js +1 -1
- package/dist/{XText → elements/XText}/RawText.d.ts +1 -0
- package/dist/{XText → elements/XText}/RawText.js +12 -13
- package/dist/{XText → elements/XText}/XText.js +2 -2
- package/dist/{XText → elements/XText}/XTextTruncation.d.ts +3 -1
- package/dist/{XText → elements/XText}/XTextTruncation.js +31 -33
- package/dist/elements/XText/index.d.ts +21 -0
- package/dist/elements/XText/index.js +25 -0
- package/dist/elements/XTextarea/Placeholder.d.ts +12 -0
- package/dist/elements/XTextarea/Placeholder.js +60 -0
- package/dist/elements/XTextarea/TextareaBaseAttributes.d.ts +11 -0
- package/dist/elements/XTextarea/TextareaBaseAttributes.js +70 -0
- package/dist/{XTextarea → elements/XTextarea}/XTextarea.js +2 -2
- package/dist/elements/XTextarea/XTextareaAttributes.d.ts +11 -0
- package/dist/elements/XTextarea/XTextareaAttributes.js +79 -0
- package/dist/elements/XTextarea/XTextareaEvents.d.ts +9 -0
- package/dist/{XTextarea → elements/XTextarea}/XTextareaEvents.js +36 -39
- package/dist/elements/XTextarea/index.d.ts +35 -0
- package/dist/elements/XTextarea/index.js +39 -0
- package/dist/{XView → elements/XView}/BlurRadius.d.ts +2 -1
- package/dist/elements/XView/BlurRadius.js +37 -0
- package/dist/{XView → elements/XView}/XBlurView.js +1 -1
- package/dist/{XView → elements/XView}/XView.js +1 -1
- package/dist/elements/XView/index.d.ts +8 -0
- package/dist/elements/XView/index.js +12 -0
- package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.js +1 -1
- package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.js +2 -2
- package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.d.ts +3 -1
- package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.js +17 -19
- package/dist/elements/XViewpagerNg/index.d.ts +20 -0
- package/dist/elements/XViewpagerNg/index.js +24 -0
- package/dist/{common → elements/common}/CommonEventsAndMethods.d.ts +1 -0
- package/dist/{common → elements/common}/CommonEventsAndMethods.js +6 -2
- package/dist/elements/htmlTemplates.d.ts +20 -0
- package/dist/elements/htmlTemplates.js +332 -0
- package/dist/elements/index.d.ts +12 -0
- package/dist/elements/index.js +16 -0
- package/elements.css +18 -0
- package/index.css +2 -15
- package/package.json +84 -42
- package/src/compat/LinearContainer/linear-compat.css +124 -0
- package/src/{common-css → elements/common-css}/linear.css +1 -1
- package/dist/LynxWrapper/index.d.ts +0 -1
- package/dist/LynxWrapper/index.js +0 -2
- package/dist/ScrollView/FadeEdgeLengthAttribute.js +0 -43
- package/dist/ScrollView/ScrollAttributes.js +0 -83
- package/dist/ScrollView/ScrollViewEvents.d.ts +0 -9
- package/dist/ScrollView/ScrollViewEvents.js +0 -167
- package/dist/ScrollView/index.d.ts +0 -1
- package/dist/ScrollView/index.js +0 -2
- package/dist/XAudioTT/XAudioAttribute.js +0 -93
- package/dist/XAudioTT/index.d.ts +0 -1
- package/dist/XAudioTT/index.js +0 -2
- package/dist/XCanvas/index.d.ts +0 -1
- package/dist/XCanvas/index.js +0 -2
- package/dist/XFoldViewNg/XFoldviewNgEvents.js +0 -67
- package/dist/XFoldViewNg/index.d.ts +0 -5
- package/dist/XFoldViewNg/index.js +0 -6
- package/dist/XImage/DropShadow.js +0 -30
- package/dist/XImage/ImageEvents.js +0 -69
- package/dist/XImage/ImageSrc.d.ts +0 -7
- package/dist/XImage/ImageSrc.js +0 -79
- package/dist/XImage/index.d.ts +0 -2
- package/dist/XImage/index.js +0 -3
- package/dist/XInput/InputBaseAttributes.d.ts +0 -9
- package/dist/XInput/InputBaseAttributes.js +0 -100
- package/dist/XInput/Placeholder.d.ts +0 -6
- package/dist/XInput/Placeholder.js +0 -60
- package/dist/XInput/XInputAttribute.d.ts +0 -9
- package/dist/XInput/XInputAttribute.js +0 -58
- package/dist/XInput/XInputEvents.d.ts +0 -6
- package/dist/XInput/index.d.ts +0 -1
- package/dist/XInput/index.js +0 -2
- package/dist/XList/ListItemAttributes.js +0 -32
- package/dist/XList/XListEvents.d.ts +0 -7
- package/dist/XList/index.d.ts +0 -2
- package/dist/XList/index.js +0 -3
- package/dist/XOverlayNg/XOverlayAttributes.js +0 -85
- package/dist/XOverlayNg/index.d.ts +0 -1
- package/dist/XOverlayNg/index.js +0 -2
- package/dist/XRefreshView/index.d.ts +0 -3
- package/dist/XRefreshView/index.js +0 -4
- package/dist/XSvg/XSvg.js +0 -99
- package/dist/XSvg/index.d.ts +0 -1
- package/dist/XSvg/index.js +0 -2
- package/dist/XSwiper/XSwiperAutoScroll.js +0 -76
- package/dist/XSwiper/XSwiperIndicator.d.ts +0 -9
- package/dist/XSwiper/XSwiperIndicator.js +0 -117
- package/dist/XSwiper/index.d.ts +0 -2
- package/dist/XSwiper/index.js +0 -3
- package/dist/XText/index.d.ts +0 -5
- package/dist/XText/index.js +0 -6
- package/dist/XTextarea/Placeholder.d.ts +0 -7
- package/dist/XTextarea/Placeholder.js +0 -60
- package/dist/XTextarea/TextareaBaseAttributes.d.ts +0 -6
- package/dist/XTextarea/TextareaBaseAttributes.js +0 -70
- package/dist/XTextarea/XTextareaAttributes.d.ts +0 -6
- package/dist/XTextarea/XTextareaAttributes.js +0 -81
- package/dist/XTextarea/XTextareaEvents.d.ts +0 -6
- package/dist/XTextarea/index.d.ts +0 -1
- package/dist/XTextarea/index.js +0 -2
- package/dist/XView/BlurRadius.js +0 -38
- package/dist/XView/index.d.ts +0 -2
- package/dist/XView/index.js +0 -3
- package/dist/XViewpagerNg/index.d.ts +0 -2
- package/dist/XViewpagerNg/index.js +0 -3
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -8
- /package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.d.ts +0 -0
- /package/dist/{ScrollView → elements/ScrollView}/ScrollView.d.ts +0 -0
- /package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.d.ts +0 -0
- /package/dist/{XAudioTT → elements/XAudioTT}/utils.d.ts +0 -0
- /package/dist/{XAudioTT → elements/XAudioTT}/utils.js +0 -0
- /package/dist/{XCanvas → elements/XCanvas}/XCanvas.d.ts +0 -0
- /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.d.ts +0 -0
- /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.d.ts +0 -0
- /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.d.ts +0 -0
- /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.d.ts +0 -0
- /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.d.ts +0 -0
- /package/dist/{XImage → elements/XImage}/FilterImage.d.ts +0 -0
- /package/dist/{XImage → elements/XImage}/XImage.d.ts +0 -0
- /package/dist/{XInput → elements/XInput}/XInput.d.ts +0 -0
- /package/dist/{XList → elements/XList}/ListItem.d.ts +0 -0
- /package/dist/{XList → elements/XList}/XList.d.ts +0 -0
- /package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.d.ts +0 -0
- /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.d.ts +0 -0
- /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.d.ts +0 -0
- /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.js +0 -0
- /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.d.ts +0 -0
- /package/dist/{XSwiper → elements/XSwiper}/SwiperItem.d.ts +0 -0
- /package/dist/{XSwiper → elements/XSwiper}/XSwiper.d.ts +0 -0
- /package/dist/{XText → elements/XText}/InlineText.d.ts +0 -0
- /package/dist/{XText → elements/XText}/InlineTruncation.d.ts +0 -0
- /package/dist/{XText → elements/XText}/XText.d.ts +0 -0
- /package/dist/{XTextarea → elements/XTextarea}/XTextarea.d.ts +0 -0
- /package/dist/{XView → elements/XView}/XBlurView.d.ts +0 -0
- /package/dist/{XView → elements/XView}/XView.d.ts +0 -0
- /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.d.ts +0 -0
- /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.d.ts +0 -0
- /package/dist/{all.d.ts → elements/all.d.ts} +0 -0
- /package/dist/{all.js → elements/all.js} +0 -0
- /package/dist/{common → elements/common}/bindToIntersectionObserver.d.ts +0 -0
- /package/dist/{common → elements/common}/bindToIntersectionObserver.js +0 -0
- /package/dist/{common → elements/common}/commonEventInitConfiguration.d.ts +0 -0
- /package/dist/{common → elements/common}/commonEventInitConfiguration.js +0 -0
- /package/dist/{common → elements/common}/constants.d.ts +0 -0
- /package/dist/{common → elements/common}/constants.js +0 -0
- /package/dist/{common → elements/common}/getCombinedParentElement.d.ts +0 -0
- /package/dist/{common → elements/common}/getCombinedParentElement.js +0 -0
- /package/dist/{common → elements/common}/renameEvent.d.ts +0 -0
- /package/dist/{common → elements/common}/renameEvent.js +0 -0
- /package/dist/{common → elements/common}/throttle.d.ts +0 -0
- /package/dist/{common → elements/common}/throttle.js +0 -0
- /package/src/{LynxWrapper → elements/LynxWrapper}/lynx-wrapper.css +0 -0
- /package/src/{ScrollView → elements/ScrollView}/scroll-view.css +0 -0
- /package/src/{XAudioTT → elements/XAudioTT}/x-audio-tt.css +0 -0
- /package/src/{XCanvas → elements/XCanvas}/x-canvas.css +0 -0
- /package/src/{XFoldViewNg → elements/XFoldViewNg}/x-foldview-ng.css +0 -0
- /package/src/{XImage → elements/XImage}/x-image.css +0 -0
- /package/src/{XInput → elements/XInput}/x-input.css +0 -0
- /package/src/{XList → elements/XList}/x-list.css +0 -0
- /package/src/{XOverlayNg → elements/XOverlayNg}/x-overlay-ng.css +0 -0
- /package/src/{XRefreshView → elements/XRefreshView}/x-refresh-view.css +0 -0
- /package/src/{XSvg → elements/XSvg}/x-svg.css +0 -0
- /package/src/{XSwiper → elements/XSwiper}/x-swiper.css +0 -0
- /package/src/{XText → elements/XText}/x-text.css +0 -0
- /package/src/{XTextarea → elements/XTextarea}/x-textarea.css +0 -0
- /package/src/{XViewpagerNg → elements/XViewpagerNg}/x-viewpager-ng.css +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
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, bindToStyle, } from '../../element-reactive/index.js';
|
|
8
|
+
let ListItemAttributes = (() => {
|
|
9
|
+
let __handlerEstimatedMainAxisSizePx_decorators;
|
|
10
|
+
let __handlerEstimatedMainAxisSizePx_initializers = [];
|
|
11
|
+
let __handlerEstimatedMainAxisSizePx_extraInitializers = [];
|
|
12
|
+
return class ListItemAttributes {
|
|
13
|
+
static {
|
|
14
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
15
|
+
__handlerEstimatedMainAxisSizePx_decorators = [registerAttributeHandler('estimated-main-axis-size-px', true)];
|
|
16
|
+
__esDecorate(null, null, __handlerEstimatedMainAxisSizePx_decorators, { kind: "field", name: "_handlerEstimatedMainAxisSizePx", static: false, private: false, access: { has: obj => "_handlerEstimatedMainAxisSizePx" in obj, get: obj => obj._handlerEstimatedMainAxisSizePx, set: (obj, value) => { obj._handlerEstimatedMainAxisSizePx = value; } }, metadata: _metadata }, __handlerEstimatedMainAxisSizePx_initializers, __handlerEstimatedMainAxisSizePx_extraInitializers);
|
|
17
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
18
|
+
}
|
|
19
|
+
static observedAttributes = [
|
|
20
|
+
'estimated-main-axis-size-px',
|
|
21
|
+
];
|
|
22
|
+
#dom;
|
|
23
|
+
_handlerEstimatedMainAxisSizePx = __runInitializers(this, __handlerEstimatedMainAxisSizePx_initializers, bindToStyle(() => this.#dom, '--estimated-main-axis-size-px', (v) => `${parseFloat(v)}px`));
|
|
24
|
+
constructor(dom) {
|
|
25
|
+
__runInitializers(this, __handlerEstimatedMainAxisSizePx_extraInitializers);
|
|
26
|
+
this.#dom = dom;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
})();
|
|
30
|
+
export { ListItemAttributes };
|
|
31
|
+
//# sourceMappingURL=ListItemAttributes.js.map
|
|
@@ -4,13 +4,13 @@ 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, genDomGetter } from '
|
|
7
|
+
import { Component, genDomGetter } from '../../element-reactive/index.js';
|
|
8
8
|
import { XListAttributes } from './XListAttributes.js';
|
|
9
9
|
import { XListEvents } from './XListEvents.js';
|
|
10
10
|
import { XListWaterfall } from './XListWaterfall.js';
|
|
11
11
|
import { CommonEventsAndMethods } from '../common/CommonEventsAndMethods.js';
|
|
12
12
|
import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
|
|
13
|
-
import { templateXList } from '
|
|
13
|
+
import { templateXList } from '../htmlTemplates.js';
|
|
14
14
|
let XList = (() => {
|
|
15
15
|
let _classDecorators = [Component('x-list', [CommonEventsAndMethods, XListAttributes, XListEvents, XListWaterfall], templateXList)];
|
|
16
16
|
let _classDescriptor;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { type AttributeReactiveClass } from '
|
|
1
|
+
import { type AttributeReactiveClass } from '../../element-reactive/index.js';
|
|
2
2
|
import type { XList } from './XList.js';
|
|
3
3
|
export declare class XListAttributes implements InstanceType<AttributeReactiveClass<typeof HTMLElement>> {
|
|
4
4
|
#private;
|
|
5
5
|
static observedAttributes: string[];
|
|
6
|
+
_handlerStickyOffset: (this: void, newVal: string | null) => void;
|
|
7
|
+
_handlerCount: (this: void, newVal: string | null) => void;
|
|
6
8
|
constructor(dom: XList);
|
|
7
9
|
connectedCallback(): void;
|
|
8
10
|
}
|
|
@@ -4,21 +4,21 @@ 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 { bindToStyle, boostedQueueMicrotask, registerAttributeHandler, } from '
|
|
7
|
+
import { bindToStyle, boostedQueueMicrotask, registerAttributeHandler, } from '../../element-reactive/index.js';
|
|
8
8
|
let XListAttributes = (() => {
|
|
9
|
-
let
|
|
10
|
-
let
|
|
11
|
-
let
|
|
12
|
-
let
|
|
13
|
-
let
|
|
14
|
-
let
|
|
9
|
+
let __handlerStickyOffset_decorators;
|
|
10
|
+
let __handlerStickyOffset_initializers = [];
|
|
11
|
+
let __handlerStickyOffset_extraInitializers = [];
|
|
12
|
+
let __handlerCount_decorators;
|
|
13
|
+
let __handlerCount_initializers = [];
|
|
14
|
+
let __handlerCount_extraInitializers = [];
|
|
15
15
|
return class XListAttributes {
|
|
16
16
|
static {
|
|
17
17
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
__esDecorate(null, null,
|
|
21
|
-
__esDecorate(null, null,
|
|
18
|
+
__handlerStickyOffset_decorators = [registerAttributeHandler('sticky-offset', true)];
|
|
19
|
+
__handlerCount_decorators = [registerAttributeHandler('span-count', true), registerAttributeHandler('column-count', true)];
|
|
20
|
+
__esDecorate(null, null, __handlerStickyOffset_decorators, { kind: "field", name: "_handlerStickyOffset", static: false, private: false, access: { has: obj => "_handlerStickyOffset" in obj, get: obj => obj._handlerStickyOffset, set: (obj, value) => { obj._handlerStickyOffset = value; } }, metadata: _metadata }, __handlerStickyOffset_initializers, __handlerStickyOffset_extraInitializers);
|
|
21
|
+
__esDecorate(null, null, __handlerCount_decorators, { kind: "field", name: "_handlerCount", static: false, private: false, access: { has: obj => "_handlerCount" in obj, get: obj => obj._handlerCount, set: (obj, value) => { obj._handlerCount = value; } }, metadata: _metadata }, __handlerCount_initializers, __handlerCount_extraInitializers);
|
|
22
22
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
23
23
|
}
|
|
24
24
|
static observedAttributes = [
|
|
@@ -28,10 +28,10 @@ let XListAttributes = (() => {
|
|
|
28
28
|
'column-count',
|
|
29
29
|
];
|
|
30
30
|
#dom;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
_handlerStickyOffset = __runInitializers(this, __handlerStickyOffset_initializers, bindToStyle(() => this.#dom, '--list-item-sticky-offset', (v) => `${parseFloat(v)}px`));
|
|
32
|
+
_handlerCount = (__runInitializers(this, __handlerStickyOffset_extraInitializers), __runInitializers(this, __handlerCount_initializers, bindToStyle(() => this.#dom, '--list-item-span-count', (v) => `${parseFloat(v)}`)));
|
|
33
33
|
constructor(dom) {
|
|
34
|
-
__runInitializers(this,
|
|
34
|
+
__runInitializers(this, __handlerCount_extraInitializers);
|
|
35
35
|
this.#dom = dom;
|
|
36
36
|
}
|
|
37
37
|
connectedCallback() {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type AttributeReactiveClass } from '../../element-reactive/index.js';
|
|
2
|
+
import type { XList } from './XList.js';
|
|
3
|
+
export declare class XListEvents implements InstanceType<AttributeReactiveClass<typeof HTMLElement>> {
|
|
4
|
+
#private;
|
|
5
|
+
static observedAttributes: string[];
|
|
6
|
+
_updateEventSwitches: (enableScrollToUpper: boolean) => void;
|
|
7
|
+
_handleUpperThresholdItemCountChange(newValue: string | null, oldValue: string | null): void;
|
|
8
|
+
_updateScrollToLowerEventSwitches: (enableScrollToLower: boolean) => void;
|
|
9
|
+
_handleLowerThresholdItemCountChange(newValue: string | null, oldValue: string | null): void;
|
|
10
|
+
_handleScrollEventsSwitches: (enabled: boolean, name: string) => void;
|
|
11
|
+
_handleScrollToUpperEdgeEventEnable: (enabled: boolean) => void;
|
|
12
|
+
_handleScrollToLowerEdgeEventEnable: (enabled: boolean) => void;
|
|
13
|
+
constructor(dom: XList);
|
|
14
|
+
}
|
|
@@ -1,84 +1,51 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
/*
|
|
3
3
|
// Copyright 2024 The Lynx Authors. All rights reserved.
|
|
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 { genDomGetter, registerAttributeHandler, } from '
|
|
7
|
+
import { genDomGetter, registerAttributeHandler, } from '../../element-reactive/index.js';
|
|
8
8
|
import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
|
|
9
9
|
import { throttle } from '../common/throttle.js';
|
|
10
10
|
import { bindToIntersectionObserver } from '../common/bindToIntersectionObserver.js';
|
|
11
11
|
import { useScrollEnd } from '../common/constants.js';
|
|
12
|
-
import { registerEventEnableStatusChangeHandler } from '
|
|
12
|
+
import { registerEventEnableStatusChangeHandler } from '../../element-reactive/index.js';
|
|
13
13
|
let XListEvents = (() => {
|
|
14
14
|
let _instanceExtraInitializers = [];
|
|
15
|
-
let
|
|
16
|
-
let
|
|
17
|
-
let
|
|
18
|
-
let
|
|
19
|
-
let
|
|
20
|
-
let
|
|
21
|
-
let
|
|
22
|
-
let
|
|
23
|
-
let
|
|
24
|
-
let
|
|
25
|
-
let
|
|
26
|
-
let
|
|
27
|
-
let
|
|
28
|
-
let
|
|
29
|
-
let
|
|
30
|
-
let
|
|
31
|
-
let
|
|
32
|
-
let _private_handleScrollToLowerEdgeEventEnable_initializers = [];
|
|
33
|
-
let _private_handleScrollToLowerEdgeEventEnable_extraInitializers = [];
|
|
15
|
+
let __updateEventSwitches_decorators;
|
|
16
|
+
let __updateEventSwitches_initializers = [];
|
|
17
|
+
let __updateEventSwitches_extraInitializers = [];
|
|
18
|
+
let __handleUpperThresholdItemCountChange_decorators;
|
|
19
|
+
let __updateScrollToLowerEventSwitches_decorators;
|
|
20
|
+
let __updateScrollToLowerEventSwitches_initializers = [];
|
|
21
|
+
let __updateScrollToLowerEventSwitches_extraInitializers = [];
|
|
22
|
+
let __handleLowerThresholdItemCountChange_decorators;
|
|
23
|
+
let __handleScrollEventsSwitches_decorators;
|
|
24
|
+
let __handleScrollEventsSwitches_initializers = [];
|
|
25
|
+
let __handleScrollEventsSwitches_extraInitializers = [];
|
|
26
|
+
let __handleScrollToUpperEdgeEventEnable_decorators;
|
|
27
|
+
let __handleScrollToUpperEdgeEventEnable_initializers = [];
|
|
28
|
+
let __handleScrollToUpperEdgeEventEnable_extraInitializers = [];
|
|
29
|
+
let __handleScrollToLowerEdgeEventEnable_decorators;
|
|
30
|
+
let __handleScrollToLowerEdgeEventEnable_initializers = [];
|
|
31
|
+
let __handleScrollToLowerEdgeEventEnable_extraInitializers = [];
|
|
34
32
|
return class XListEvents {
|
|
35
33
|
static {
|
|
36
34
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
__esDecorate(this,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
oldObserverDom && this.#upperObserver?.unobserve(oldObserverDom);
|
|
52
|
-
const itemCount = newValue !== null
|
|
53
|
-
? parseFloat(newValue)
|
|
54
|
-
: 0;
|
|
55
|
-
const observerDom = itemCount === 0
|
|
56
|
-
? this.#getUpperThresholdObserverDom()
|
|
57
|
-
: this.#dom.children[itemCount - 1];
|
|
58
|
-
observerDom && this.#upperObserver?.observe(observerDom);
|
|
59
|
-
}, "#handleUpperThresholdItemCountChange") }, _private_handleUpperThresholdItemCountChange_decorators, { kind: "method", name: "#handleUpperThresholdItemCountChange", static: false, private: true, access: { has: obj => #handleUpperThresholdItemCountChange in obj, get: obj => obj.#handleUpperThresholdItemCountChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
60
|
-
__esDecorate(this, _private_handleLowerThresholdItemCountChange_descriptor = { value: __setFunctionName(function (newValue, oldValue) {
|
|
61
|
-
const oldItemCount = oldValue !== null
|
|
62
|
-
? parseFloat(oldValue)
|
|
63
|
-
: 0;
|
|
64
|
-
const oldObserverDom = oldItemCount === 0
|
|
65
|
-
? this.#getLowerThresholdObserverDom()
|
|
66
|
-
: this.#dom.children[this.#dom.children.length - oldItemCount];
|
|
67
|
-
oldObserverDom && this.#lowerObserver?.unobserve(oldObserverDom);
|
|
68
|
-
const itemCount = newValue !== null
|
|
69
|
-
? parseFloat(newValue)
|
|
70
|
-
: 0;
|
|
71
|
-
const observerDom = itemCount === 0
|
|
72
|
-
? this.#getLowerThresholdObserverDom()
|
|
73
|
-
: this.#dom.children[this.#dom.children.length
|
|
74
|
-
- itemCount];
|
|
75
|
-
observerDom && this.#lowerObserver?.observe(observerDom);
|
|
76
|
-
}, "#handleLowerThresholdItemCountChange") }, _private_handleLowerThresholdItemCountChange_decorators, { kind: "method", name: "#handleLowerThresholdItemCountChange", static: false, private: true, access: { has: obj => #handleLowerThresholdItemCountChange in obj, get: obj => obj.#handleLowerThresholdItemCountChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
77
|
-
__esDecorate(null, null, _private_updateEventSwitches_decorators, { kind: "field", name: "#updateEventSwitches", static: false, private: true, access: { has: obj => #updateEventSwitches in obj, get: obj => obj.#updateEventSwitches, set: (obj, value) => { obj.#updateEventSwitches = value; } }, metadata: _metadata }, _private_updateEventSwitches_initializers, _private_updateEventSwitches_extraInitializers);
|
|
78
|
-
__esDecorate(null, null, _private_updateScrollToLowerEventSwitches_decorators, { kind: "field", name: "#updateScrollToLowerEventSwitches", static: false, private: true, access: { has: obj => #updateScrollToLowerEventSwitches in obj, get: obj => obj.#updateScrollToLowerEventSwitches, set: (obj, value) => { obj.#updateScrollToLowerEventSwitches = value; } }, metadata: _metadata }, _private_updateScrollToLowerEventSwitches_initializers, _private_updateScrollToLowerEventSwitches_extraInitializers);
|
|
79
|
-
__esDecorate(null, null, _private_handleScrollEventsSwitches_decorators, { kind: "field", name: "#handleScrollEventsSwitches", static: false, private: true, access: { has: obj => #handleScrollEventsSwitches in obj, get: obj => obj.#handleScrollEventsSwitches, set: (obj, value) => { obj.#handleScrollEventsSwitches = value; } }, metadata: _metadata }, _private_handleScrollEventsSwitches_initializers, _private_handleScrollEventsSwitches_extraInitializers);
|
|
80
|
-
__esDecorate(null, null, _private_handleScrollToUpperEdgeEventEnable_decorators, { kind: "field", name: "#handleScrollToUpperEdgeEventEnable", static: false, private: true, access: { has: obj => #handleScrollToUpperEdgeEventEnable in obj, get: obj => obj.#handleScrollToUpperEdgeEventEnable, set: (obj, value) => { obj.#handleScrollToUpperEdgeEventEnable = value; } }, metadata: _metadata }, _private_handleScrollToUpperEdgeEventEnable_initializers, _private_handleScrollToUpperEdgeEventEnable_extraInitializers);
|
|
81
|
-
__esDecorate(null, null, _private_handleScrollToLowerEdgeEventEnable_decorators, { kind: "field", name: "#handleScrollToLowerEdgeEventEnable", static: false, private: true, access: { has: obj => #handleScrollToLowerEdgeEventEnable in obj, get: obj => obj.#handleScrollToLowerEdgeEventEnable, set: (obj, value) => { obj.#handleScrollToLowerEdgeEventEnable = value; } }, metadata: _metadata }, _private_handleScrollToLowerEdgeEventEnable_initializers, _private_handleScrollToLowerEdgeEventEnable_extraInitializers);
|
|
35
|
+
__updateEventSwitches_decorators = [registerEventEnableStatusChangeHandler('scrolltoupper')];
|
|
36
|
+
__handleUpperThresholdItemCountChange_decorators = [registerAttributeHandler('upper-threshold-item-count', true)];
|
|
37
|
+
__updateScrollToLowerEventSwitches_decorators = [registerEventEnableStatusChangeHandler('scrolltolower')];
|
|
38
|
+
__handleLowerThresholdItemCountChange_decorators = [registerAttributeHandler('lower-threshold-item-count', true)];
|
|
39
|
+
__handleScrollEventsSwitches_decorators = [registerEventEnableStatusChangeHandler('lynxscroll'), registerEventEnableStatusChangeHandler('lynxscrollend'), registerEventEnableStatusChangeHandler('snap')];
|
|
40
|
+
__handleScrollToUpperEdgeEventEnable_decorators = [registerEventEnableStatusChangeHandler('scrolltoupperedge')];
|
|
41
|
+
__handleScrollToLowerEdgeEventEnable_decorators = [registerEventEnableStatusChangeHandler('scrolltoloweredge')];
|
|
42
|
+
__esDecorate(this, null, __handleUpperThresholdItemCountChange_decorators, { kind: "method", name: "_handleUpperThresholdItemCountChange", static: false, private: false, access: { has: obj => "_handleUpperThresholdItemCountChange" in obj, get: obj => obj._handleUpperThresholdItemCountChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
43
|
+
__esDecorate(this, null, __handleLowerThresholdItemCountChange_decorators, { kind: "method", name: "_handleLowerThresholdItemCountChange", static: false, private: false, access: { has: obj => "_handleLowerThresholdItemCountChange" in obj, get: obj => obj._handleLowerThresholdItemCountChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
44
|
+
__esDecorate(null, null, __updateEventSwitches_decorators, { kind: "field", name: "_updateEventSwitches", static: false, private: false, access: { has: obj => "_updateEventSwitches" in obj, get: obj => obj._updateEventSwitches, set: (obj, value) => { obj._updateEventSwitches = value; } }, metadata: _metadata }, __updateEventSwitches_initializers, __updateEventSwitches_extraInitializers);
|
|
45
|
+
__esDecorate(null, null, __updateScrollToLowerEventSwitches_decorators, { kind: "field", name: "_updateScrollToLowerEventSwitches", static: false, private: false, access: { has: obj => "_updateScrollToLowerEventSwitches" in obj, get: obj => obj._updateScrollToLowerEventSwitches, set: (obj, value) => { obj._updateScrollToLowerEventSwitches = value; } }, metadata: _metadata }, __updateScrollToLowerEventSwitches_initializers, __updateScrollToLowerEventSwitches_extraInitializers);
|
|
46
|
+
__esDecorate(null, null, __handleScrollEventsSwitches_decorators, { kind: "field", name: "_handleScrollEventsSwitches", static: false, private: false, access: { has: obj => "_handleScrollEventsSwitches" in obj, get: obj => obj._handleScrollEventsSwitches, set: (obj, value) => { obj._handleScrollEventsSwitches = value; } }, metadata: _metadata }, __handleScrollEventsSwitches_initializers, __handleScrollEventsSwitches_extraInitializers);
|
|
47
|
+
__esDecorate(null, null, __handleScrollToUpperEdgeEventEnable_decorators, { kind: "field", name: "_handleScrollToUpperEdgeEventEnable", static: false, private: false, access: { has: obj => "_handleScrollToUpperEdgeEventEnable" in obj, get: obj => obj._handleScrollToUpperEdgeEventEnable, set: (obj, value) => { obj._handleScrollToUpperEdgeEventEnable = value; } }, metadata: _metadata }, __handleScrollToUpperEdgeEventEnable_initializers, __handleScrollToUpperEdgeEventEnable_extraInitializers);
|
|
48
|
+
__esDecorate(null, null, __handleScrollToLowerEdgeEventEnable_decorators, { kind: "field", name: "_handleScrollToLowerEdgeEventEnable", static: false, private: false, access: { has: obj => "_handleScrollToLowerEdgeEventEnable" in obj, get: obj => obj._handleScrollToLowerEdgeEventEnable, set: (obj, value) => { obj._handleScrollToLowerEdgeEventEnable = value; } }, metadata: _metadata }, __handleScrollToLowerEdgeEventEnable_initializers, __handleScrollToLowerEdgeEventEnable_extraInitializers);
|
|
82
49
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
83
50
|
}
|
|
84
51
|
static observedAttributes = [
|
|
@@ -128,7 +95,7 @@ let XListEvents = (() => {
|
|
|
128
95
|
}));
|
|
129
96
|
}
|
|
130
97
|
};
|
|
131
|
-
|
|
98
|
+
_updateEventSwitches = __runInitializers(this, __updateEventSwitches_initializers, (enableScrollToUpper) => {
|
|
132
99
|
enableScrollToUpper
|
|
133
100
|
? this.#dom.setAttribute('x-enable-scrolltoupper-event', '')
|
|
134
101
|
: this.#dom.removeAttribute('x-enable-scrolltoupper-event'); // css needs this;
|
|
@@ -166,8 +133,23 @@ let XListEvents = (() => {
|
|
|
166
133
|
});
|
|
167
134
|
}
|
|
168
135
|
});
|
|
169
|
-
|
|
170
|
-
|
|
136
|
+
_handleUpperThresholdItemCountChange(newValue, oldValue) {
|
|
137
|
+
const oldItemCount = oldValue !== null
|
|
138
|
+
? parseFloat(oldValue)
|
|
139
|
+
: 0;
|
|
140
|
+
const oldObserverDom = oldItemCount === 0
|
|
141
|
+
? this.#getUpperThresholdObserverDom()
|
|
142
|
+
: this.#dom.children[oldItemCount - 1];
|
|
143
|
+
oldObserverDom && this.#upperObserver?.unobserve(oldObserverDom);
|
|
144
|
+
const itemCount = newValue !== null
|
|
145
|
+
? parseFloat(newValue)
|
|
146
|
+
: 0;
|
|
147
|
+
const observerDom = itemCount === 0
|
|
148
|
+
? this.#getUpperThresholdObserverDom()
|
|
149
|
+
: this.#dom.children[itemCount - 1];
|
|
150
|
+
observerDom && this.#upperObserver?.observe(observerDom);
|
|
151
|
+
}
|
|
152
|
+
#handleLowerObserver = (__runInitializers(this, __updateEventSwitches_extraInitializers), (entries) => {
|
|
171
153
|
const { isIntersecting } = entries[0];
|
|
172
154
|
if (isIntersecting) {
|
|
173
155
|
this.#dom.dispatchEvent(new CustomEvent('scrolltolower', {
|
|
@@ -183,7 +165,7 @@ let XListEvents = (() => {
|
|
|
183
165
|
scrolltolower: false,
|
|
184
166
|
scrolltoupper: false,
|
|
185
167
|
};
|
|
186
|
-
|
|
168
|
+
_updateScrollToLowerEventSwitches = __runInitializers(this, __updateScrollToLowerEventSwitches_initializers, (enableScrollToLower) => {
|
|
187
169
|
this.#eventSwitches.scrolltolower = enableScrollToLower;
|
|
188
170
|
enableScrollToLower
|
|
189
171
|
? this.#dom.setAttribute('x-enable-scrolltolower-event', '')
|
|
@@ -221,8 +203,24 @@ let XListEvents = (() => {
|
|
|
221
203
|
});
|
|
222
204
|
}
|
|
223
205
|
});
|
|
224
|
-
|
|
225
|
-
|
|
206
|
+
_handleLowerThresholdItemCountChange(newValue, oldValue) {
|
|
207
|
+
const oldItemCount = oldValue !== null
|
|
208
|
+
? parseFloat(oldValue)
|
|
209
|
+
: 0;
|
|
210
|
+
const oldObserverDom = oldItemCount === 0
|
|
211
|
+
? this.#getLowerThresholdObserverDom()
|
|
212
|
+
: this.#dom.children[this.#dom.children.length - oldItemCount];
|
|
213
|
+
oldObserverDom && this.#lowerObserver?.unobserve(oldObserverDom);
|
|
214
|
+
const itemCount = newValue !== null
|
|
215
|
+
? parseFloat(newValue)
|
|
216
|
+
: 0;
|
|
217
|
+
const observerDom = itemCount === 0
|
|
218
|
+
? this.#getLowerThresholdObserverDom()
|
|
219
|
+
: this.#dom.children[this.#dom.children.length
|
|
220
|
+
- itemCount];
|
|
221
|
+
observerDom && this.#lowerObserver?.observe(observerDom);
|
|
222
|
+
}
|
|
223
|
+
#handleChildrenObserver = (__runInitializers(this, __updateScrollToLowerEventSwitches_extraInitializers), (mutationList) => {
|
|
226
224
|
const mutation = mutationList?.[0];
|
|
227
225
|
// reset upper and lower observers
|
|
228
226
|
if (mutation?.type === 'childList') {
|
|
@@ -283,7 +281,7 @@ let XListEvents = (() => {
|
|
|
283
281
|
detail: this.#getScrollDetail(),
|
|
284
282
|
}));
|
|
285
283
|
};
|
|
286
|
-
|
|
284
|
+
_handleScrollEventsSwitches = __runInitializers(this, __handleScrollEventsSwitches_initializers, (enabled, name) => {
|
|
287
285
|
this.#eventSwitches[name] =
|
|
288
286
|
enabled;
|
|
289
287
|
const { lynxscroll, lynxscrollend, snap } = this.#eventSwitches;
|
|
@@ -293,7 +291,7 @@ let XListEvents = (() => {
|
|
|
293
291
|
// cancel the previous listener first
|
|
294
292
|
this.#throttledScroll
|
|
295
293
|
&& listContainer.removeEventListener('scroll', this.#throttledScroll);
|
|
296
|
-
if (
|
|
294
|
+
if (lynxscroll !== null || this.#enableScrollEnd) {
|
|
297
295
|
const wait = scrollEventThrottle !== null
|
|
298
296
|
? parseFloat(scrollEventThrottle)
|
|
299
297
|
: 0;
|
|
@@ -313,7 +311,7 @@ let XListEvents = (() => {
|
|
|
313
311
|
listContainer.removeEventListener('scrollend', this.#handleScrollEnd);
|
|
314
312
|
}
|
|
315
313
|
});
|
|
316
|
-
#handleObserver = (__runInitializers(this,
|
|
314
|
+
#handleObserver = (__runInitializers(this, __handleScrollEventsSwitches_extraInitializers), (entries) => {
|
|
317
315
|
const { isIntersecting, target } = entries[0];
|
|
318
316
|
const id = target.id;
|
|
319
317
|
if (isIntersecting) {
|
|
@@ -331,20 +329,20 @@ let XListEvents = (() => {
|
|
|
331
329
|
}
|
|
332
330
|
}
|
|
333
331
|
});
|
|
334
|
-
|
|
332
|
+
_handleScrollToUpperEdgeEventEnable = __runInitializers(this, __handleScrollToUpperEdgeEventEnable_initializers, (enabled) => {
|
|
335
333
|
enabled
|
|
336
334
|
? this.#dom.setAttribute('x-enable-scrolltoupperedge-event', '')
|
|
337
335
|
: this.#dom.removeAttribute('x-enable-scrolltoupperedge-event'); // css needs this;
|
|
338
336
|
this.#updateUpperEdgeIntersectionObserver(enabled);
|
|
339
337
|
});
|
|
340
|
-
#updateUpperEdgeIntersectionObserver = (__runInitializers(this,
|
|
341
|
-
|
|
338
|
+
#updateUpperEdgeIntersectionObserver = (__runInitializers(this, __handleScrollToUpperEdgeEventEnable_extraInitializers), bindToIntersectionObserver(this.#getListContainer, this.#getUpperThresholdObserverDom, this.#handleObserver));
|
|
339
|
+
_handleScrollToLowerEdgeEventEnable = __runInitializers(this, __handleScrollToLowerEdgeEventEnable_initializers, (enabled) => {
|
|
342
340
|
enabled
|
|
343
341
|
? this.#dom.setAttribute('x-enable-scrolltoloweredge-event', '')
|
|
344
342
|
: this.#dom.removeAttribute('x-enable-scrolltoloweredge-event'); // css needs this;
|
|
345
343
|
this.#updateLowerEdgeIntersectionObserver(enabled);
|
|
346
344
|
});
|
|
347
|
-
#updateLowerEdgeIntersectionObserver = (__runInitializers(this,
|
|
345
|
+
#updateLowerEdgeIntersectionObserver = (__runInitializers(this, __handleScrollToLowerEdgeEventEnable_extraInitializers), bindToIntersectionObserver(this.#getListContainer, this.#getLowerThresholdObserverDom, this.#handleObserver));
|
|
348
346
|
#handleScrollEnd = () => {
|
|
349
347
|
const itemSnap = this.#dom.getAttribute('item-snap');
|
|
350
348
|
this.#dom.dispatchEvent(new CustomEvent('lynxscrollend', {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { type AttributeReactiveClass } from '
|
|
1
|
+
import { type AttributeReactiveClass } from '../../element-reactive/index.js';
|
|
2
2
|
import type { XList } from './XList.js';
|
|
3
3
|
export declare class XListWaterfall implements InstanceType<AttributeReactiveClass<typeof HTMLElement>> {
|
|
4
4
|
#private;
|
|
5
5
|
static observedAttributes: string[];
|
|
6
|
+
_handleXEnableHeaderOffsetEvent(enableScrollToLower: boolean): void;
|
|
6
7
|
constructor(dom: XList);
|
|
8
|
+
_handlerListType(newVal: string | null): void;
|
|
7
9
|
}
|
|
@@ -1,82 +1,23 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
/*
|
|
3
3
|
// Copyright 2024 The Lynx Authors. All rights reserved.
|
|
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 { genDomGetter, registerAttributeHandler, registerEventEnableStatusChangeHandler, } from '
|
|
7
|
+
import { genDomGetter, registerAttributeHandler, registerEventEnableStatusChangeHandler, } from '../../element-reactive/index.js';
|
|
8
8
|
const WATERFALL_SLOT = 'waterfall-slot';
|
|
9
9
|
const WATERFALL_STYLE = 'waterfall-style';
|
|
10
10
|
let XListWaterfall = (() => {
|
|
11
11
|
let _instanceExtraInitializers = [];
|
|
12
|
-
let
|
|
13
|
-
let
|
|
14
|
-
let _private_handlerListType_decorators;
|
|
15
|
-
let _private_handlerListType_descriptor;
|
|
12
|
+
let __handleXEnableHeaderOffsetEvent_decorators;
|
|
13
|
+
let __handlerListType_decorators;
|
|
16
14
|
return class XListWaterfall {
|
|
17
15
|
static {
|
|
18
16
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__esDecorate(this,
|
|
22
|
-
|
|
23
|
-
? this.#dom.setAttribute('x-enable-scrolltolower-event', '')
|
|
24
|
-
: this.#dom.removeAttribute('x-enable-scrolltolower-event'); // css needs this;
|
|
25
|
-
if (enableScrollToLower) {
|
|
26
|
-
const lower = this.#getLowerThresholdObserver();
|
|
27
|
-
const scrollOrientation = this.#dom.getAttribute('scroll-orientation')
|
|
28
|
-
|| 'vertical';
|
|
29
|
-
const listContent = this.#getListContainer();
|
|
30
|
-
// under waterfall, and when the list-item does not have a specified height, obtaining the correct scrollable value takes some time.
|
|
31
|
-
setTimeout(() => {
|
|
32
|
-
if (scrollOrientation === 'vertical') {
|
|
33
|
-
lower.style.setProperty('top',
|
|
34
|
-
// Firefox cannot trigger the bottom IntersectionObserver
|
|
35
|
-
`${String(listContent.scrollHeight - 1)}px`, 'important');
|
|
36
|
-
// Firefox needs this
|
|
37
|
-
lower.style.setProperty('bottom', 'unset', 'important');
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
lower.style.setProperty('left',
|
|
41
|
-
// Firefox cannot trigger the bottom IntersectionObserver
|
|
42
|
-
`${String(listContent.scrollWidth - 1)}px`, 'important');
|
|
43
|
-
// Firefox needs this
|
|
44
|
-
lower.style.setProperty('right', 'unset', 'important');
|
|
45
|
-
}
|
|
46
|
-
}, 100);
|
|
47
|
-
}
|
|
48
|
-
}, "#handleXEnableHeaderOffsetEvent") }, _private_handleXEnableHeaderOffsetEvent_decorators, { kind: "method", name: "#handleXEnableHeaderOffsetEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderOffsetEvent in obj, get: obj => obj.#handleXEnableHeaderOffsetEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
49
|
-
__esDecorate(this, _private_handlerListType_descriptor = { value: __setFunctionName(function (newVal) {
|
|
50
|
-
if (newVal === 'waterfall') {
|
|
51
|
-
this.#createWaterfallContainer();
|
|
52
|
-
if (!this.#resizeObserver) {
|
|
53
|
-
this.#resizeObserverInit();
|
|
54
|
-
}
|
|
55
|
-
if (!this.#childrenObserver) {
|
|
56
|
-
this.#childrenObserver = new MutationObserver((mutationList) => {
|
|
57
|
-
const mutation = mutationList?.[0];
|
|
58
|
-
if (mutation?.type === 'childList') {
|
|
59
|
-
this.#resizeObserverInit();
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
this.#childrenObserver.observe(this.#dom, {
|
|
63
|
-
childList: true,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this.#resizeObserver?.disconnect();
|
|
69
|
-
this.#resizeObserver = undefined;
|
|
70
|
-
this.#childrenObserver?.disconnect();
|
|
71
|
-
this.#childrenObserver = undefined;
|
|
72
|
-
for (let i = 0; i < this.#dom.children.length; i++) {
|
|
73
|
-
const listItem = this.#dom.children[i];
|
|
74
|
-
listItem.removeAttribute('slot');
|
|
75
|
-
}
|
|
76
|
-
this.#dom.shadowRoot?.querySelector(`slot[name=${WATERFALL_SLOT}]`)
|
|
77
|
-
?.remove();
|
|
78
|
-
}
|
|
79
|
-
}, "#handlerListType") }, _private_handlerListType_decorators, { kind: "method", name: "#handlerListType", static: false, private: true, access: { has: obj => #handlerListType in obj, get: obj => obj.#handlerListType }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
17
|
+
__handleXEnableHeaderOffsetEvent_decorators = [registerEventEnableStatusChangeHandler('scrolltolower')];
|
|
18
|
+
__handlerListType_decorators = [registerAttributeHandler('list-type', true)];
|
|
19
|
+
__esDecorate(this, null, __handleXEnableHeaderOffsetEvent_decorators, { kind: "method", name: "_handleXEnableHeaderOffsetEvent", static: false, private: false, access: { has: obj => "_handleXEnableHeaderOffsetEvent" in obj, get: obj => obj._handleXEnableHeaderOffsetEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
20
|
+
__esDecorate(this, null, __handlerListType_decorators, { kind: "method", name: "_handlerListType", static: false, private: false, access: { has: obj => "_handlerListType" in obj, get: obj => obj._handlerListType }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
80
21
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
81
22
|
}
|
|
82
23
|
static observedAttributes = ['list-type'];
|
|
@@ -85,7 +26,34 @@ let XListWaterfall = (() => {
|
|
|
85
26
|
#getLowerThresholdObserver = genDomGetter(() => this.#dom.shadowRoot, 'div[part="lower-threshold-observer"]');
|
|
86
27
|
#resizeObserver;
|
|
87
28
|
#childrenObserver;
|
|
88
|
-
|
|
29
|
+
_handleXEnableHeaderOffsetEvent(enableScrollToLower) {
|
|
30
|
+
enableScrollToLower
|
|
31
|
+
? this.#dom.setAttribute('x-enable-scrolltolower-event', '')
|
|
32
|
+
: this.#dom.removeAttribute('x-enable-scrolltolower-event'); // css needs this;
|
|
33
|
+
if (enableScrollToLower) {
|
|
34
|
+
const lower = this.#getLowerThresholdObserver();
|
|
35
|
+
const scrollOrientation = this.#dom.getAttribute('scroll-orientation')
|
|
36
|
+
|| 'vertical';
|
|
37
|
+
const listContent = this.#getListContainer();
|
|
38
|
+
// under waterfall, and when the list-item does not have a specified height, obtaining the correct scrollable value takes some time.
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
if (scrollOrientation === 'vertical') {
|
|
41
|
+
lower.style.setProperty('top',
|
|
42
|
+
// Firefox cannot trigger the bottom IntersectionObserver
|
|
43
|
+
`${String(listContent.scrollHeight - 1)}px`, 'important');
|
|
44
|
+
// Firefox needs this
|
|
45
|
+
lower.style.setProperty('bottom', 'unset', 'important');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
lower.style.setProperty('left',
|
|
49
|
+
// Firefox cannot trigger the bottom IntersectionObserver
|
|
50
|
+
`${String(listContent.scrollWidth - 1)}px`, 'important');
|
|
51
|
+
// Firefox needs this
|
|
52
|
+
lower.style.setProperty('right', 'unset', 'important');
|
|
53
|
+
}
|
|
54
|
+
}, 100);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
89
57
|
#createWaterfallContainer = () => {
|
|
90
58
|
const waterfallSlot = document.createElement('slot');
|
|
91
59
|
waterfallSlot.setAttribute('name', `${WATERFALL_SLOT}`);
|
|
@@ -171,7 +139,37 @@ let XListWaterfall = (() => {
|
|
|
171
139
|
this.#resizeObserver?.observe(element);
|
|
172
140
|
});
|
|
173
141
|
};
|
|
174
|
-
|
|
142
|
+
_handlerListType(newVal) {
|
|
143
|
+
if (newVal === 'waterfall') {
|
|
144
|
+
this.#createWaterfallContainer();
|
|
145
|
+
if (!this.#resizeObserver) {
|
|
146
|
+
this.#resizeObserverInit();
|
|
147
|
+
}
|
|
148
|
+
if (!this.#childrenObserver) {
|
|
149
|
+
this.#childrenObserver = new MutationObserver((mutationList) => {
|
|
150
|
+
const mutation = mutationList?.[0];
|
|
151
|
+
if (mutation?.type === 'childList') {
|
|
152
|
+
this.#resizeObserverInit();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
this.#childrenObserver.observe(this.#dom, {
|
|
156
|
+
childList: true,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
this.#resizeObserver?.disconnect();
|
|
162
|
+
this.#resizeObserver = undefined;
|
|
163
|
+
this.#childrenObserver?.disconnect();
|
|
164
|
+
this.#childrenObserver = undefined;
|
|
165
|
+
for (let i = 0; i < this.#dom.children.length; i++) {
|
|
166
|
+
const listItem = this.#dom.children[i];
|
|
167
|
+
listItem.removeAttribute('slot');
|
|
168
|
+
}
|
|
169
|
+
this.#dom.shadowRoot?.querySelector(`slot[name=${WATERFALL_SLOT}]`)
|
|
170
|
+
?.remove();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
175
173
|
};
|
|
176
174
|
})();
|
|
177
175
|
export { XListWaterfall };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { ListItem } from './ListItem.js';
|
|
2
|
+
/**
|
|
3
|
+
* @module elements/XList
|
|
4
|
+
*
|
|
5
|
+
* `x-list` provides a scalable list container, supporting waterflow layout.
|
|
6
|
+
*
|
|
7
|
+
* Attributes:
|
|
8
|
+
* - `list-type`: 'single' | 'flow' | 'waterfall'.
|
|
9
|
+
* - `span-count` / `column-count`: Columns in waterfall/flow.
|
|
10
|
+
* - `sticky-offset`: Top offset for sticky items.
|
|
11
|
+
* - `scroll-orientation`: 'vertical' | 'horizontal'.
|
|
12
|
+
* - `upper-threshold-item-count`: Items from top to trigger `scrolltoupper`.
|
|
13
|
+
* - `lower-threshold-item-count`: Items from bottom to trigger `scrolltolower`.
|
|
14
|
+
* - `initial-scroll-index`: Initial scroll index.
|
|
15
|
+
*
|
|
16
|
+
* Events:
|
|
17
|
+
* - `scrolltoupper`: Reached top threshold.
|
|
18
|
+
* - `scrolltolower`: Reached bottom threshold.
|
|
19
|
+
* - `scroll`: Fired on scroll.
|
|
20
|
+
* - `scrollend`: Fired when scrolling stops.
|
|
21
|
+
* - `snap`: Fired on scroll snap.
|
|
22
|
+
*
|
|
23
|
+
* Methods:
|
|
24
|
+
* - `scrollToPosition({ position, offset, smooth })`: Scrolls to index.
|
|
25
|
+
* - `autoScroll({ rate, start, autoStop })`: Auto-scrolling.
|
|
26
|
+
*
|
|
27
|
+
* CSS:
|
|
28
|
+
* - `list-type="flow"` uses `display: grid`.
|
|
29
|
+
* - `list-type="waterfall"` uses `display: flex` (column) / `display: row` with absolute positioning for items.
|
|
30
|
+
* - `sticky` items use `position: sticky`.
|
|
31
|
+
*/
|
|
32
|
+
export { XList } from './XList.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
|
+
export { ListItem } from './ListItem.js';
|
|
5
|
+
/**
|
|
6
|
+
* @module elements/XList
|
|
7
|
+
*
|
|
8
|
+
* `x-list` provides a scalable list container, supporting waterflow layout.
|
|
9
|
+
*
|
|
10
|
+
* Attributes:
|
|
11
|
+
* - `list-type`: 'single' | 'flow' | 'waterfall'.
|
|
12
|
+
* - `span-count` / `column-count`: Columns in waterfall/flow.
|
|
13
|
+
* - `sticky-offset`: Top offset for sticky items.
|
|
14
|
+
* - `scroll-orientation`: 'vertical' | 'horizontal'.
|
|
15
|
+
* - `upper-threshold-item-count`: Items from top to trigger `scrolltoupper`.
|
|
16
|
+
* - `lower-threshold-item-count`: Items from bottom to trigger `scrolltolower`.
|
|
17
|
+
* - `initial-scroll-index`: Initial scroll index.
|
|
18
|
+
*
|
|
19
|
+
* Events:
|
|
20
|
+
* - `scrolltoupper`: Reached top threshold.
|
|
21
|
+
* - `scrolltolower`: Reached bottom threshold.
|
|
22
|
+
* - `scroll`: Fired on scroll.
|
|
23
|
+
* - `scrollend`: Fired when scrolling stops.
|
|
24
|
+
* - `snap`: Fired on scroll snap.
|
|
25
|
+
*
|
|
26
|
+
* Methods:
|
|
27
|
+
* - `scrollToPosition({ position, offset, smooth })`: Scrolls to index.
|
|
28
|
+
* - `autoScroll({ rate, start, autoStop })`: Auto-scrolling.
|
|
29
|
+
*
|
|
30
|
+
* CSS:
|
|
31
|
+
* - `list-type="flow"` uses `display: grid`.
|
|
32
|
+
* - `list-type="waterfall"` uses `display: flex` (column) / `display: row` with absolute positioning for items.
|
|
33
|
+
* - `sticky` items use `position: sticky`.
|
|
34
|
+
*/
|
|
35
|
+
export { XList } from './XList.js';
|
|
36
|
+
//# sourceMappingURL=index.js.map
|