@lynx-js/web-elements 0.2.4
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 +323 -0
- package/LICENSE.txt +202 -0
- package/Notice.txt +1 -0
- package/README.md +47 -0
- package/dist/LynxWrapper/LynxWrapper.d.ts +2 -0
- package/dist/LynxWrapper/LynxWrapper.js +27 -0
- package/dist/LynxWrapper/index.d.ts +1 -0
- package/dist/LynxWrapper/index.js +2 -0
- package/dist/ScrollView/FadeEdgeLengthAttribute.d.ts +10 -0
- package/dist/ScrollView/FadeEdgeLengthAttribute.js +43 -0
- package/dist/ScrollView/ScrollAttributes.d.ts +8 -0
- package/dist/ScrollView/ScrollAttributes.js +83 -0
- package/dist/ScrollView/ScrollIntoView.d.ts +9 -0
- package/dist/ScrollView/ScrollIntoView.js +71 -0
- package/dist/ScrollView/ScrollView.d.ts +31 -0
- package/dist/ScrollView/ScrollView.js +185 -0
- package/dist/ScrollView/ScrollViewEvents.d.ts +9 -0
- package/dist/ScrollView/ScrollViewEvents.js +146 -0
- package/dist/ScrollView/index.d.ts +1 -0
- package/dist/ScrollView/index.js +2 -0
- package/dist/XAudioTT/XAudioAttribute.d.ts +7 -0
- package/dist/XAudioTT/XAudioAttribute.js +93 -0
- package/dist/XAudioTT/XAudioEvents.d.ts +8 -0
- package/dist/XAudioTT/XAudioEvents.js +116 -0
- package/dist/XAudioTT/XAudioTT.d.ts +46 -0
- package/dist/XAudioTT/XAudioTT.js +183 -0
- package/dist/XAudioTT/index.d.ts +1 -0
- package/dist/XAudioTT/index.js +2 -0
- package/dist/XAudioTT/utils.d.ts +19 -0
- package/dist/XAudioTT/utils.js +66 -0
- package/dist/XCanvas/CanvasAttributes.d.ts +12 -0
- package/dist/XCanvas/CanvasAttributes.js +78 -0
- package/dist/XCanvas/XCanvas.d.ts +5 -0
- package/dist/XCanvas/XCanvas.js +32 -0
- package/dist/XCanvas/index.d.ts +1 -0
- package/dist/XCanvas/index.js +2 -0
- package/dist/XFoldViewNg/XFoldviewHeaderNg.d.ts +2 -0
- package/dist/XFoldViewNg/XFoldviewHeaderNg.js +32 -0
- package/dist/XFoldViewNg/XFoldviewHeaderNgFeatures.d.ts +9 -0
- package/dist/XFoldViewNg/XFoldviewHeaderNgFeatures.js +32 -0
- package/dist/XFoldViewNg/XFoldviewNg.d.ts +11 -0
- package/dist/XFoldViewNg/XFoldviewNg.js +52 -0
- package/dist/XFoldViewNg/XFoldviewNgEvents.d.ts +7 -0
- package/dist/XFoldViewNg/XFoldviewNgEvents.js +55 -0
- package/dist/XFoldViewNg/XFoldviewSlotDragNg.d.ts +2 -0
- package/dist/XFoldViewNg/XFoldviewSlotDragNg.js +30 -0
- package/dist/XFoldViewNg/XFoldviewSlotNg.d.ts +2 -0
- package/dist/XFoldViewNg/XFoldviewSlotNg.js +32 -0
- package/dist/XFoldViewNg/XFoldviewSlotNgTouchEventsHandler.d.ts +7 -0
- package/dist/XFoldViewNg/XFoldviewSlotNgTouchEventsHandler.js +105 -0
- package/dist/XFoldViewNg/XFoldviewToolbarNg.d.ts +2 -0
- package/dist/XFoldViewNg/XFoldviewToolbarNg.js +30 -0
- package/dist/XFoldViewNg/index.d.ts +5 -0
- package/dist/XFoldViewNg/index.js +6 -0
- package/dist/XImage/DropShadow.d.ts +6 -0
- package/dist/XImage/DropShadow.js +30 -0
- package/dist/XImage/FilterImage.d.ts +2 -0
- package/dist/XImage/FilterImage.js +31 -0
- package/dist/XImage/ImageEvents.d.ts +6 -0
- package/dist/XImage/ImageEvents.js +68 -0
- package/dist/XImage/ImageSrc.d.ts +7 -0
- package/dist/XImage/ImageSrc.js +61 -0
- package/dist/XImage/XImage.d.ts +2 -0
- package/dist/XImage/XImage.js +30 -0
- package/dist/XImage/index.d.ts +2 -0
- package/dist/XImage/index.js +3 -0
- package/dist/XInput/InputBaseAttributes.d.ts +9 -0
- package/dist/XInput/InputBaseAttributes.js +99 -0
- package/dist/XInput/Placeholder.d.ts +6 -0
- package/dist/XInput/Placeholder.js +60 -0
- package/dist/XInput/XInput.d.ts +28 -0
- package/dist/XInput/XInput.js +129 -0
- package/dist/XInput/XInputAttribute.d.ts +9 -0
- package/dist/XInput/XInputAttribute.js +52 -0
- package/dist/XInput/XInputEvents.d.ts +6 -0
- package/dist/XInput/XInputEvents.js +111 -0
- package/dist/XInput/index.d.ts +1 -0
- package/dist/XInput/index.js +2 -0
- package/dist/XList/ListItem.d.ts +2 -0
- package/dist/XList/ListItem.js +28 -0
- package/dist/XList/XList.d.ts +52 -0
- package/dist/XList/XList.js +257 -0
- package/dist/XList/XListAttributes.d.ts +8 -0
- package/dist/XList/XListAttributes.js +50 -0
- package/dist/XList/XListEvents.d.ts +7 -0
- package/dist/XList/XListEvents.js +356 -0
- package/dist/XList/index.d.ts +2 -0
- package/dist/XList/index.js +3 -0
- package/dist/XOverlayNg/XOverlayAttributes.d.ts +8 -0
- package/dist/XOverlayNg/XOverlayAttributes.js +80 -0
- package/dist/XOverlayNg/XOverlayNg.d.ts +2 -0
- package/dist/XOverlayNg/XOverlayNg.js +45 -0
- package/dist/XOverlayNg/index.d.ts +1 -0
- package/dist/XOverlayNg/index.js +2 -0
- package/dist/XRefreshView/XRefreshFooter.d.ts +3 -0
- package/dist/XRefreshView/XRefreshFooter.js +35 -0
- package/dist/XRefreshView/XRefreshHeader.d.ts +3 -0
- package/dist/XRefreshView/XRefreshHeader.js +35 -0
- package/dist/XRefreshView/XRefreshSubElementIntersectionObserver.d.ts +16 -0
- package/dist/XRefreshView/XRefreshSubElementIntersectionObserver.js +52 -0
- package/dist/XRefreshView/XRefreshView.d.ts +13 -0
- package/dist/XRefreshView/XRefreshView.js +125 -0
- package/dist/XRefreshView/XRefreshViewEventsEmitter.d.ts +8 -0
- package/dist/XRefreshView/XRefreshViewEventsEmitter.js +246 -0
- package/dist/XRefreshView/index.d.ts +3 -0
- package/dist/XRefreshView/index.js +4 -0
- package/dist/XSvg/XSvg.d.ts +8 -0
- package/dist/XSvg/XSvg.js +80 -0
- package/dist/XSvg/index.d.ts +1 -0
- package/dist/XSvg/index.js +2 -0
- package/dist/XSwiper/SwiperItem.d.ts +2 -0
- package/dist/XSwiper/SwiperItem.js +28 -0
- package/dist/XSwiper/XSwiper.d.ts +14 -0
- package/dist/XSwiper/XSwiper.js +231 -0
- package/dist/XSwiper/XSwiperAutoScroll.d.ts +8 -0
- package/dist/XSwiper/XSwiperAutoScroll.js +63 -0
- package/dist/XSwiper/XSwiperCircular.d.ts +8 -0
- package/dist/XSwiper/XSwiperCircular.js +191 -0
- package/dist/XSwiper/XSwiperEvents.d.ts +8 -0
- package/dist/XSwiper/XSwiperEvents.js +144 -0
- package/dist/XSwiper/XSwiperIndicator.d.ts +9 -0
- package/dist/XSwiper/XSwiperIndicator.js +118 -0
- package/dist/XSwiper/index.d.ts +2 -0
- package/dist/XSwiper/index.js +3 -0
- package/dist/XText/InlineImage.d.ts +11 -0
- package/dist/XText/InlineImage.js +56 -0
- package/dist/XText/InlineText.d.ts +5 -0
- package/dist/XText/InlineText.js +30 -0
- package/dist/XText/InlineTruncation.d.ts +5 -0
- package/dist/XText/InlineTruncation.js +42 -0
- package/dist/XText/RawText.d.ts +7 -0
- package/dist/XText/RawText.js +54 -0
- package/dist/XText/XText.d.ts +5 -0
- package/dist/XText/XText.js +49 -0
- package/dist/XText/XTextTruncation.d.ts +11 -0
- package/dist/XText/XTextTruncation.js +604 -0
- package/dist/XText/index.d.ts +5 -0
- package/dist/XText/index.js +6 -0
- package/dist/XTextarea/Placeholder.d.ts +7 -0
- package/dist/XTextarea/Placeholder.js +59 -0
- package/dist/XTextarea/TextareaBaseAttributes.d.ts +6 -0
- package/dist/XTextarea/TextareaBaseAttributes.js +70 -0
- package/dist/XTextarea/XTextarea.d.ts +21 -0
- package/dist/XTextarea/XTextarea.js +101 -0
- package/dist/XTextarea/XTextareaAttributes.d.ts +6 -0
- package/dist/XTextarea/XTextareaAttributes.js +81 -0
- package/dist/XTextarea/XTextareaEvents.d.ts +6 -0
- package/dist/XTextarea/XTextareaEvents.js +111 -0
- package/dist/XTextarea/index.d.ts +1 -0
- package/dist/XTextarea/index.js +2 -0
- package/dist/XView/BlurRadius.d.ts +7 -0
- package/dist/XView/BlurRadius.js +38 -0
- package/dist/XView/XBlurView.d.ts +2 -0
- package/dist/XView/XBlurView.js +29 -0
- package/dist/XView/XView.d.ts +4 -0
- package/dist/XView/XView.js +45 -0
- package/dist/XView/index.d.ts +2 -0
- package/dist/XView/index.js +3 -0
- package/dist/XViewpagerNg/XViewpagerItemNg.d.ts +2 -0
- package/dist/XViewpagerNg/XViewpagerItemNg.js +30 -0
- package/dist/XViewpagerNg/XViewpagerNg.d.ts +10 -0
- package/dist/XViewpagerNg/XViewpagerNg.js +98 -0
- package/dist/XViewpagerNg/XViewpagerNgEvents.d.ts +9 -0
- package/dist/XViewpagerNg/XViewpagerNgEvents.js +118 -0
- package/dist/XViewpagerNg/index.d.ts +2 -0
- package/dist/XViewpagerNg/index.js +3 -0
- package/dist/all.d.ts +16 -0
- package/dist/all.js +17 -0
- package/dist/common/Exposure.d.ts +28 -0
- package/dist/common/Exposure.js +193 -0
- package/dist/common/bindToIntersectionObserver.d.ts +1 -0
- package/dist/common/bindToIntersectionObserver.js +23 -0
- package/dist/common/commonEventInitConfiguration.d.ts +5 -0
- package/dist/common/commonEventInitConfiguration.js +9 -0
- package/dist/common/constants.d.ts +4 -0
- package/dist/common/constants.js +14 -0
- package/dist/common/convertLengthToPx.d.ts +1 -0
- package/dist/common/convertLengthToPx.js +25 -0
- package/dist/common/renameEvent.d.ts +1 -0
- package/dist/common/renameEvent.js +6 -0
- package/dist/common/throttle.d.ts +4 -0
- package/dist/common/throttle.js +40 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/lazy.d.ts +1 -0
- package/dist/lazy.js +106 -0
- package/index.css +19 -0
- package/package.json +110 -0
- package/src/LynxWrapper/lynx-wrapper.css +12 -0
- package/src/ScrollView/scroll-view.css +121 -0
- package/src/XAudioTT/x-audio-tt.css +3 -0
- package/src/XCanvas/x-canvas.css +16 -0
- package/src/XFoldViewNg/x-foldview-ng.css +80 -0
- package/src/XImage/x-image.css +82 -0
- package/src/XInput/x-input.css +48 -0
- package/src/XList/x-list.css +147 -0
- package/src/XOverlayNg/x-overlay-ng.css +56 -0
- package/src/XRefreshView/x-refresh-view.css +61 -0
- package/src/XSvg/x-svg.css +10 -0
- package/src/XSwiper/x-swiper.css +319 -0
- package/src/XText/x-text.css +272 -0
- package/src/XTextarea/x-textarea.css +49 -0
- package/src/XViewpagerNg/x-viewpager-ng.css +68 -0
- package/src/common-css/linear.css +386 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export class XRefreshIntersectionObserverEvent extends Event {
|
|
2
|
+
startShowing;
|
|
3
|
+
fullyShowing;
|
|
4
|
+
static EventName = 'x-refresh-view-intersecting';
|
|
5
|
+
constructor(startShowing, fullyShowing) {
|
|
6
|
+
super(XRefreshIntersectionObserverEvent.EventName, {
|
|
7
|
+
composed: false,
|
|
8
|
+
cancelable: true,
|
|
9
|
+
bubbles: true,
|
|
10
|
+
});
|
|
11
|
+
this.startShowing = startShowing;
|
|
12
|
+
this.fullyShowing = fullyShowing;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class XRefreshSubElementIntersectionObserver {
|
|
16
|
+
#dom;
|
|
17
|
+
static observedAttributes = [];
|
|
18
|
+
#intersectionObserver;
|
|
19
|
+
constructor(dom) {
|
|
20
|
+
this.#dom = dom;
|
|
21
|
+
}
|
|
22
|
+
connectedCallback() {
|
|
23
|
+
if (IntersectionObserver && !this.#intersectionObserver) {
|
|
24
|
+
const parent = this.#dom.parentElement;
|
|
25
|
+
if (parent) {
|
|
26
|
+
this.#intersectionObserver = new IntersectionObserver((intersectionEntries) => {
|
|
27
|
+
let isStartShowing = false;
|
|
28
|
+
let isFullyShowing = false;
|
|
29
|
+
intersectionEntries.forEach((e) => {
|
|
30
|
+
isStartShowing = e.intersectionRatio > 0;
|
|
31
|
+
isFullyShowing = e.intersectionRatio > 0.9;
|
|
32
|
+
});
|
|
33
|
+
this.#dom.dispatchEvent(new XRefreshIntersectionObserverEvent(isStartShowing, isFullyShowing));
|
|
34
|
+
if (isFullyShowing) {
|
|
35
|
+
this.#dom.setAttribute('x-magnet-enable', '');
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
root: parent,
|
|
39
|
+
threshold: [0.1, 0.9], // set to 0.9 to get better user-experience
|
|
40
|
+
});
|
|
41
|
+
this.#intersectionObserver.observe(this.#dom);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
dispose() {
|
|
46
|
+
if (this.#intersectionObserver) {
|
|
47
|
+
this.#intersectionObserver.disconnect();
|
|
48
|
+
this.#intersectionObserver = undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=XRefreshSubElementIntersectionObserver.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { scrollContainerDom } from '../common/constants.js';
|
|
2
|
+
export declare class XRefreshView extends HTMLElement {
|
|
3
|
+
#private;
|
|
4
|
+
static readonly notToFilterFalseAttributes: Set<string>;
|
|
5
|
+
_nextRefreshIsManual: boolean;
|
|
6
|
+
finishRefresh(): void;
|
|
7
|
+
finishLoadMore(): void;
|
|
8
|
+
autoStartRefresh(): void;
|
|
9
|
+
get scrollTop(): number;
|
|
10
|
+
set scrollTop(val: number);
|
|
11
|
+
get scrollHeight(): number;
|
|
12
|
+
get [scrollContainerDom](): this;
|
|
13
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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 { Component, genDomGetter, html } from '@lynx-js/web-elements-reactive';
|
|
8
|
+
import { XRefreshViewEventsEmitter } from './XRefreshViewEventsEmitter.js';
|
|
9
|
+
import { LynxExposure } from '../common/Exposure.js';
|
|
10
|
+
import { scrollContainerDom } from '../common/constants.js';
|
|
11
|
+
let XRefreshView = (() => {
|
|
12
|
+
let _classDecorators = [Component('x-refresh-view', [LynxExposure, XRefreshViewEventsEmitter], html `
|
|
13
|
+
<style>
|
|
14
|
+
.bounce-container {
|
|
15
|
+
overflow: scroll;
|
|
16
|
+
overscroll-behavior: contain;
|
|
17
|
+
scroll-snap-type: y mandatory;
|
|
18
|
+
scroll-behavior: smooth;
|
|
19
|
+
scrollbar-width: none;
|
|
20
|
+
}
|
|
21
|
+
.overflow-placeholder {
|
|
22
|
+
min-height: 30%;
|
|
23
|
+
min-width: 100%;
|
|
24
|
+
flex-shrink: 0;
|
|
25
|
+
scroll-snap-align: none;
|
|
26
|
+
}
|
|
27
|
+
.not-shrink {
|
|
28
|
+
height: 100%;
|
|
29
|
+
width: 100%;
|
|
30
|
+
min-height: 100%;
|
|
31
|
+
min-width: 100%;
|
|
32
|
+
flex-shrink: 0;
|
|
33
|
+
}
|
|
34
|
+
.vertical {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
}
|
|
38
|
+
#content {
|
|
39
|
+
scroll-snap-align: center;
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
42
|
+
<div id="container" part="container" class="bounce-container not-shrink vertical">
|
|
43
|
+
<div
|
|
44
|
+
id="placeholder-top"
|
|
45
|
+
class="overflow-placeholder bounce-item"
|
|
46
|
+
part="placeholder-top"
|
|
47
|
+
></div>
|
|
48
|
+
<slot name="header"></slot>
|
|
49
|
+
<div id="content" part="content" class="not-shrink vertical">
|
|
50
|
+
<slot part="slot"></slot>
|
|
51
|
+
</div>
|
|
52
|
+
<slot name="footer"></slot>
|
|
53
|
+
<div
|
|
54
|
+
id="placeholder-bot"
|
|
55
|
+
class="overflow-placeholder bounce-item"
|
|
56
|
+
part="placeholder-bot"
|
|
57
|
+
></div>
|
|
58
|
+
</div>
|
|
59
|
+
`)];
|
|
60
|
+
let _classDescriptor;
|
|
61
|
+
let _classExtraInitializers = [];
|
|
62
|
+
let _classThis;
|
|
63
|
+
let _classSuper = HTMLElement;
|
|
64
|
+
var XRefreshView = class extends _classSuper {
|
|
65
|
+
static { _classThis = this; }
|
|
66
|
+
static {
|
|
67
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
68
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
69
|
+
XRefreshView = _classThis = _classDescriptor.value;
|
|
70
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
71
|
+
}
|
|
72
|
+
static notToFilterFalseAttributes = new Set([
|
|
73
|
+
'enable-refresh',
|
|
74
|
+
'enable-loadmore',
|
|
75
|
+
'enable-auto-loadmore',
|
|
76
|
+
]);
|
|
77
|
+
_nextRefreshIsManual = true;
|
|
78
|
+
finishRefresh() {
|
|
79
|
+
this.querySelector('x-refresh-view > x-refresh-header:first-of-type')?.removeAttribute('x-magnet-enable');
|
|
80
|
+
}
|
|
81
|
+
finishLoadMore() {
|
|
82
|
+
this.querySelector('x-refresh-view > x-refresh-footer:first-of-type')?.removeAttribute('x-magnet-enable');
|
|
83
|
+
}
|
|
84
|
+
autoStartRefresh() {
|
|
85
|
+
const content = this.shadowRoot.querySelector('#container');
|
|
86
|
+
this.querySelector('x-refresh-view > x-refresh-header:first-of-type')?.setAttribute('x-magnet-enable', '');
|
|
87
|
+
this._nextRefreshIsManual = false;
|
|
88
|
+
content.scroll({
|
|
89
|
+
top: 0,
|
|
90
|
+
behavior: 'smooth',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
#getOverScrollContainer = genDomGetter(() => this.shadowRoot, '#container');
|
|
94
|
+
#getContentContainer = genDomGetter(() => this.shadowRoot, '#content');
|
|
95
|
+
get scrollTop() {
|
|
96
|
+
const outer = this.#getOverScrollContainer();
|
|
97
|
+
const inner = this.#getContentContainer();
|
|
98
|
+
return inner.scrollTop + inner.offsetTop - outer.scrollTop;
|
|
99
|
+
}
|
|
100
|
+
set scrollTop(val) {
|
|
101
|
+
console.log(val);
|
|
102
|
+
const outer = this.#getOverScrollContainer();
|
|
103
|
+
const inner = this.#getContentContainer();
|
|
104
|
+
if (val > 0) {
|
|
105
|
+
inner.scrollTop = val;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
outer.scrollTop = inner.offsetTop + val;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
get scrollHeight() {
|
|
112
|
+
const inner = this.#getContentContainer();
|
|
113
|
+
return inner.scrollHeight;
|
|
114
|
+
}
|
|
115
|
+
get [scrollContainerDom]() {
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
static {
|
|
119
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
return XRefreshView = _classThis;
|
|
123
|
+
})();
|
|
124
|
+
export { XRefreshView };
|
|
125
|
+
//# sourceMappingURL=XRefreshView.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
|
|
2
|
+
import { XRefreshView } from './XRefreshView.js';
|
|
3
|
+
export declare class XRefreshViewEventsEmitter implements InstanceType<AttributeReactiveClass<typeof XRefreshView>> {
|
|
4
|
+
#private;
|
|
5
|
+
static observedAttributes: string[];
|
|
6
|
+
constructor(dom: XRefreshView);
|
|
7
|
+
dispose(): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers, __setFunctionName } 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, genDomGetter, } from '@lynx-js/web-elements-reactive';
|
|
8
|
+
import { XRefreshIntersectionObserverEvent } from './XRefreshSubElementIntersectionObserver.js';
|
|
9
|
+
import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
|
|
10
|
+
let XRefreshViewEventsEmitter = (() => {
|
|
11
|
+
let _instanceExtraInitializers = [];
|
|
12
|
+
let _private_handleXEnableHeaderOffsetEvent_decorators;
|
|
13
|
+
let _private_handleXEnableHeaderOffsetEvent_descriptor;
|
|
14
|
+
let _private_handleXEnableHeaderShowEvent_decorators;
|
|
15
|
+
let _private_handleXEnableHeaderShowEvent_descriptor;
|
|
16
|
+
let _private_handleXEnableFooterOffsetEvent_decorators;
|
|
17
|
+
let _private_handleXEnableFooterOffsetEvent_descriptor;
|
|
18
|
+
let _private_handleXEnableStartRefreshEvent_decorators;
|
|
19
|
+
let _private_handleXEnableStartRefreshEvent_descriptor;
|
|
20
|
+
let _private_handleXEnableHeaderReleasedEvent_decorators;
|
|
21
|
+
let _private_handleXEnableHeaderReleasedEvent_descriptor;
|
|
22
|
+
let _private_handleXEnableStartLoadMoreEvent_decorators;
|
|
23
|
+
let _private_handleXEnableStartLoadMoreEvent_descriptor;
|
|
24
|
+
let _private_handleXEnableFooterReleasedEvent_decorators;
|
|
25
|
+
let _private_handleXEnableFooterReleasedEvent_descriptor;
|
|
26
|
+
return class XRefreshViewEventsEmitter {
|
|
27
|
+
static {
|
|
28
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
29
|
+
_private_handleXEnableHeaderOffsetEvent_decorators = [registerAttributeHandler('x-enable-headeroffset-event', true)];
|
|
30
|
+
_private_handleXEnableHeaderShowEvent_decorators = [registerAttributeHandler('x-enable-headershow-event', true)];
|
|
31
|
+
_private_handleXEnableFooterOffsetEvent_decorators = [registerAttributeHandler('x-enable-footeroffset-event', true)];
|
|
32
|
+
_private_handleXEnableStartRefreshEvent_decorators = [registerAttributeHandler('x-enable-startrefresh-event', true)];
|
|
33
|
+
_private_handleXEnableHeaderReleasedEvent_decorators = [registerAttributeHandler('x-enable-headerreleased-event', true)];
|
|
34
|
+
_private_handleXEnableStartLoadMoreEvent_decorators = [registerAttributeHandler('x-enable-startloadmore-event', true)];
|
|
35
|
+
_private_handleXEnableFooterReleasedEvent_decorators = [registerAttributeHandler('x-enable-footerreleased-event', true)];
|
|
36
|
+
__esDecorate(this, _private_handleXEnableHeaderOffsetEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
37
|
+
this.#enableHeaderOffsetEvent = newVal !== null;
|
|
38
|
+
this.#handleComplexEventEnableAttributes();
|
|
39
|
+
}, "#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);
|
|
40
|
+
__esDecorate(this, _private_handleXEnableHeaderShowEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
41
|
+
this.#enableHeaderShowEvent = newVal !== null;
|
|
42
|
+
this.#handleComplexEventEnableAttributes();
|
|
43
|
+
}, "#handleXEnableHeaderShowEvent") }, _private_handleXEnableHeaderShowEvent_decorators, { kind: "method", name: "#handleXEnableHeaderShowEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderShowEvent in obj, get: obj => obj.#handleXEnableHeaderShowEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
44
|
+
__esDecorate(this, _private_handleXEnableFooterOffsetEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
45
|
+
this.#enableFooterOffsetEvent = newVal !== null;
|
|
46
|
+
this.#handleComplexEventEnableAttributes();
|
|
47
|
+
}, "#handleXEnableFooterOffsetEvent") }, _private_handleXEnableFooterOffsetEvent_decorators, { kind: "method", name: "#handleXEnableFooterOffsetEvent", static: false, private: true, access: { has: obj => #handleXEnableFooterOffsetEvent in obj, get: obj => obj.#handleXEnableFooterOffsetEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
48
|
+
__esDecorate(this, _private_handleXEnableStartRefreshEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
49
|
+
this.#enableStartRefreshEvent = newVal !== null;
|
|
50
|
+
this.#handleSimpleEventEnableAttributes();
|
|
51
|
+
}, "#handleXEnableStartRefreshEvent") }, _private_handleXEnableStartRefreshEvent_decorators, { kind: "method", name: "#handleXEnableStartRefreshEvent", static: false, private: true, access: { has: obj => #handleXEnableStartRefreshEvent in obj, get: obj => obj.#handleXEnableStartRefreshEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
52
|
+
__esDecorate(this, _private_handleXEnableHeaderReleasedEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
53
|
+
this.#enableHeaderReleasedEvent = newVal !== null;
|
|
54
|
+
this.#handleSimpleEventEnableAttributes();
|
|
55
|
+
}, "#handleXEnableHeaderReleasedEvent") }, _private_handleXEnableHeaderReleasedEvent_decorators, { kind: "method", name: "#handleXEnableHeaderReleasedEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderReleasedEvent in obj, get: obj => obj.#handleXEnableHeaderReleasedEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
56
|
+
__esDecorate(this, _private_handleXEnableStartLoadMoreEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
57
|
+
this.#enableStartLoadMoreEvent = newVal !== null;
|
|
58
|
+
this.#handleSimpleEventEnableAttributes();
|
|
59
|
+
}, "#handleXEnableStartLoadMoreEvent") }, _private_handleXEnableStartLoadMoreEvent_decorators, { kind: "method", name: "#handleXEnableStartLoadMoreEvent", static: false, private: true, access: { has: obj => #handleXEnableStartLoadMoreEvent in obj, get: obj => obj.#handleXEnableStartLoadMoreEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
60
|
+
__esDecorate(this, _private_handleXEnableFooterReleasedEvent_descriptor = { value: __setFunctionName(function (newVal) {
|
|
61
|
+
this.#enableFooterReleasedEvent = newVal !== null;
|
|
62
|
+
this.#handleSimpleEventEnableAttributes();
|
|
63
|
+
}, "#handleXEnableFooterReleasedEvent") }, _private_handleXEnableFooterReleasedEvent_decorators, { kind: "method", name: "#handleXEnableFooterReleasedEvent", static: false, private: true, access: { has: obj => #handleXEnableFooterReleasedEvent in obj, get: obj => obj.#handleXEnableFooterReleasedEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
64
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
65
|
+
}
|
|
66
|
+
#dom = __runInitializers(this, _instanceExtraInitializers);
|
|
67
|
+
#enableStartRefreshEvent = false;
|
|
68
|
+
#enableHeaderReleasedEvent = false;
|
|
69
|
+
#enableHeaderOffsetEvent = false;
|
|
70
|
+
#enableHeaderShowEvent = false;
|
|
71
|
+
#enableStartLoadMoreEvent = false;
|
|
72
|
+
#enableFooterReleasedEvent = false;
|
|
73
|
+
#enableFooterOffsetEvent = false;
|
|
74
|
+
static observedAttributes = [
|
|
75
|
+
'x-enable-startrefresh-event',
|
|
76
|
+
'x-enable-headerreleased-event',
|
|
77
|
+
'x-enable-headeroffset-event',
|
|
78
|
+
'x-enable-headershow-event',
|
|
79
|
+
'x-enable-startloadmore-event',
|
|
80
|
+
'x-enable-footerreleased-event',
|
|
81
|
+
'x-enable-footeroffset-event',
|
|
82
|
+
];
|
|
83
|
+
#getXRefreshHeader = genDomGetter(() => this.#dom, 'x-refresh-view > x-refresh-header:first-of-type');
|
|
84
|
+
#getXRefreshFooter = genDomGetter(() => this.#dom, 'x-refresh-view > x-refresh-footer:first-of-type');
|
|
85
|
+
constructor(dom) {
|
|
86
|
+
this.#dom = dom;
|
|
87
|
+
this.#dom.addEventListener(XRefreshIntersectionObserverEvent.EventName, this.#handleSubElementObserverEvent);
|
|
88
|
+
}
|
|
89
|
+
// complex events switches
|
|
90
|
+
get #handleXEnableHeaderOffsetEvent() { return _private_handleXEnableHeaderOffsetEvent_descriptor.value; }
|
|
91
|
+
get #handleXEnableHeaderShowEvent() { return _private_handleXEnableHeaderShowEvent_descriptor.value; }
|
|
92
|
+
get #handleXEnableFooterOffsetEvent() { return _private_handleXEnableFooterOffsetEvent_descriptor.value; }
|
|
93
|
+
#handleComplexEventEnableAttributes() {
|
|
94
|
+
if (this.#enableHeaderOffsetEvent
|
|
95
|
+
|| this.#enableHeaderShowEvent
|
|
96
|
+
|| this.#enableFooterOffsetEvent) {
|
|
97
|
+
this.#enableComplexRefreshViewEvents();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.#disableComplexRefreshViewEvents();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// simple events switches
|
|
104
|
+
get #handleXEnableStartRefreshEvent() { return _private_handleXEnableStartRefreshEvent_descriptor.value; }
|
|
105
|
+
get #handleXEnableHeaderReleasedEvent() { return _private_handleXEnableHeaderReleasedEvent_descriptor.value; }
|
|
106
|
+
get #handleXEnableStartLoadMoreEvent() { return _private_handleXEnableStartLoadMoreEvent_descriptor.value; }
|
|
107
|
+
get #handleXEnableFooterReleasedEvent() { return _private_handleXEnableFooterReleasedEvent_descriptor.value; }
|
|
108
|
+
#handleSimpleEventEnableAttributes() {
|
|
109
|
+
if (this.#enableHeaderReleasedEvent
|
|
110
|
+
|| this.#enableFooterReleasedEvent
|
|
111
|
+
|| this.#enableStartLoadMoreEvent
|
|
112
|
+
|| this.#enableStartRefreshEvent) {
|
|
113
|
+
this.#enableSimpleRefreshViewEvents();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.#disableSimpleRefreshViewEvents();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* handle header/footer showing events
|
|
121
|
+
*/
|
|
122
|
+
#headerShowing = false;
|
|
123
|
+
#headerFullyShown = false;
|
|
124
|
+
#footerShowing = false;
|
|
125
|
+
#footerFullyShown = false;
|
|
126
|
+
#handleSubElementObserverEvent = (e) => {
|
|
127
|
+
e.stopPropagation();
|
|
128
|
+
if (e.target.tagName === 'X-REFRESH-HEADER') {
|
|
129
|
+
this.#headerShowing = e.startShowing;
|
|
130
|
+
this.#headerFullyShown = e.fullyShowing;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.#footerShowing = e.startShowing;
|
|
134
|
+
this.#footerFullyShown = e.fullyShowing;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Event without dragging info;
|
|
139
|
+
*/
|
|
140
|
+
#simpleRefreshViewEventsEnabled = false;
|
|
141
|
+
#enableSimpleRefreshViewEvents() {
|
|
142
|
+
if (this.#simpleRefreshViewEventsEnabled)
|
|
143
|
+
return;
|
|
144
|
+
this.#dom.addEventListener('touchend', this.#handleTouchEndForEvent);
|
|
145
|
+
this.#simpleRefreshViewEventsEnabled = true;
|
|
146
|
+
}
|
|
147
|
+
#handleTouchEndForEvent = () => {
|
|
148
|
+
if (this.#headerFullyShown) {
|
|
149
|
+
this.#dom.dispatchEvent(new CustomEvent('headerreleased', commonComponentEventSetting));
|
|
150
|
+
this.#dom.dispatchEvent(new CustomEvent('startrefresh', {
|
|
151
|
+
...commonComponentEventSetting,
|
|
152
|
+
detail: { isManual: this.#dom._nextRefreshIsManual },
|
|
153
|
+
}));
|
|
154
|
+
this.#dom._nextRefreshIsManual = true;
|
|
155
|
+
}
|
|
156
|
+
else if ((this.#dom.getAttribute('enable-auto-loadmore') === 'true'
|
|
157
|
+
&& this.#footerShowing)
|
|
158
|
+
|| this.#footerFullyShown) {
|
|
159
|
+
this.#dom.dispatchEvent(new CustomEvent('footerreleased', commonComponentEventSetting));
|
|
160
|
+
this.#dom.dispatchEvent(new CustomEvent('startloadmore', commonComponentEventSetting));
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
#disableSimpleRefreshViewEvents() {
|
|
164
|
+
if (this.#simpleRefreshViewEventsEnabled) {
|
|
165
|
+
this.#dom.removeEventListener('touchend', this.#handleTouchEndForEvent);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Event with dragging info
|
|
170
|
+
*/
|
|
171
|
+
#dragging = false;
|
|
172
|
+
#complexRefreshViewEventEnabled = false;
|
|
173
|
+
#enableComplexRefreshViewEvents() {
|
|
174
|
+
if (this.#complexRefreshViewEventEnabled)
|
|
175
|
+
return;
|
|
176
|
+
this.#dom.addEventListener('touchstart', this.#handleTouchStartForDraggingStatus);
|
|
177
|
+
this.#dom.addEventListener('touchend', this.#handleTouchEndForDraggingStatus);
|
|
178
|
+
this.#dom.addEventListener('touchcancel', this.#handleTouchEndForDraggingStatus);
|
|
179
|
+
this.#dom
|
|
180
|
+
.shadowRoot.querySelector('#container')
|
|
181
|
+
.addEventListener('scroll', this.#handleScroll);
|
|
182
|
+
}
|
|
183
|
+
#handleTouchEndForDraggingStatus = () => {
|
|
184
|
+
this.#dragging = false;
|
|
185
|
+
};
|
|
186
|
+
#handleTouchStartForDraggingStatus = () => {
|
|
187
|
+
this.#dragging = true;
|
|
188
|
+
};
|
|
189
|
+
#handleScroll = () => {
|
|
190
|
+
if (this.#headerShowing
|
|
191
|
+
&& (this.#enableHeaderShowEvent || this.#enableHeaderOffsetEvent)) {
|
|
192
|
+
const header = this.#getXRefreshHeader();
|
|
193
|
+
if (header) {
|
|
194
|
+
const height = parseFloat(getComputedStyle(header).height);
|
|
195
|
+
const scrollTop = this.#dom.shadowRoot.querySelector('#container').scrollTop;
|
|
196
|
+
this.#dom.dispatchEvent(new CustomEvent('headershow', {
|
|
197
|
+
...commonComponentEventSetting,
|
|
198
|
+
detail: {
|
|
199
|
+
isDragging: this.#dragging,
|
|
200
|
+
offsetPercent: 1 - scrollTop / height,
|
|
201
|
+
},
|
|
202
|
+
}));
|
|
203
|
+
this.#dom.dispatchEvent(new CustomEvent('headeroffset', {
|
|
204
|
+
...commonComponentEventSetting,
|
|
205
|
+
detail: {
|
|
206
|
+
isDragging: this.#dragging,
|
|
207
|
+
offsetPercent: 1 - scrollTop / height,
|
|
208
|
+
},
|
|
209
|
+
}));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else if (this.#footerShowing && this.#enableFooterOffsetEvent) {
|
|
213
|
+
const footer = this.#getXRefreshFooter();
|
|
214
|
+
if (footer) {
|
|
215
|
+
const contentDom = this.#dom.shadowRoot.querySelector('#container');
|
|
216
|
+
const scrollTop = contentDom.scrollTop;
|
|
217
|
+
const scrollHeight = contentDom.scrollHeight;
|
|
218
|
+
const height = parseFloat(getComputedStyle(footer).height);
|
|
219
|
+
this.#dom.dispatchEvent(new CustomEvent('footeroffset', {
|
|
220
|
+
...commonComponentEventSetting,
|
|
221
|
+
detail: {
|
|
222
|
+
isDragging: this.#dragging,
|
|
223
|
+
offsetPercent: 1 - scrollTop / height,
|
|
224
|
+
},
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
#disableComplexRefreshViewEvents() {
|
|
230
|
+
if (this.#complexRefreshViewEventEnabled) {
|
|
231
|
+
this.#dom.removeEventListener('touchstart', this.#handleTouchStartForDraggingStatus);
|
|
232
|
+
this.#dom.removeEventListener('touchend', this.#handleTouchEndForDraggingStatus);
|
|
233
|
+
this.#dom.removeEventListener('touchcancel', this.#handleTouchEndForDraggingStatus);
|
|
234
|
+
this.#dom
|
|
235
|
+
.shadowRoot.querySelector('#container')
|
|
236
|
+
.removeEventListener('scroll', this.#handleScroll);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
dispose() {
|
|
240
|
+
this.#disableSimpleRefreshViewEvents();
|
|
241
|
+
this.#disableComplexRefreshViewEvents();
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
})();
|
|
245
|
+
export { XRefreshViewEventsEmitter };
|
|
246
|
+
//# sourceMappingURL=XRefreshViewEventsEmitter.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
|
|
2
|
+
export declare class XSvgFeatures implements InstanceType<AttributeReactiveClass<typeof XSvg>> {
|
|
3
|
+
#private;
|
|
4
|
+
static observedAttributes: string[];
|
|
5
|
+
constructor(dom: HTMLElement);
|
|
6
|
+
}
|
|
7
|
+
export declare class XSvg extends HTMLElement {
|
|
8
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
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 { Component, bindToStyle, registerAttributeHandler, } from '@lynx-js/web-elements-reactive';
|
|
8
|
+
import { LynxExposure } from '../common/Exposure.js';
|
|
9
|
+
import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
|
|
10
|
+
let XSvgFeatures = (() => {
|
|
11
|
+
let _private_handleSrc_decorators;
|
|
12
|
+
let _private_handleSrc_initializers = [];
|
|
13
|
+
let _private_handleSrc_extraInitializers = [];
|
|
14
|
+
let _private_handleContent_decorators;
|
|
15
|
+
let _private_handleContent_initializers = [];
|
|
16
|
+
let _private_handleContent_extraInitializers = [];
|
|
17
|
+
return class XSvgFeatures {
|
|
18
|
+
static {
|
|
19
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
20
|
+
_private_handleSrc_decorators = [registerAttributeHandler('src', true)];
|
|
21
|
+
_private_handleContent_decorators = [registerAttributeHandler('content', true)];
|
|
22
|
+
__esDecorate(null, null, _private_handleSrc_decorators, { kind: "field", name: "#handleSrc", static: false, private: true, access: { has: obj => #handleSrc in obj, get: obj => obj.#handleSrc, set: (obj, value) => { obj.#handleSrc = value; } }, metadata: _metadata }, _private_handleSrc_initializers, _private_handleSrc_extraInitializers);
|
|
23
|
+
__esDecorate(null, null, _private_handleContent_decorators, { kind: "field", name: "#handleContent", static: false, private: true, access: { has: obj => #handleContent in obj, get: obj => obj.#handleContent, set: (obj, value) => { obj.#handleContent = value; } }, metadata: _metadata }, _private_handleContent_initializers, _private_handleContent_extraInitializers);
|
|
24
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
25
|
+
}
|
|
26
|
+
static observedAttributes = ['src', 'content'];
|
|
27
|
+
#dom;
|
|
28
|
+
#loadEventInvoker = new Image();
|
|
29
|
+
#handleSrc = __runInitializers(this, _private_handleSrc_initializers, bindToStyle(() => this.#dom, 'background-image', (src) => {
|
|
30
|
+
this.#loadEventInvoker.src = src;
|
|
31
|
+
return `url(${src})`;
|
|
32
|
+
}));
|
|
33
|
+
#handleContent = (__runInitializers(this, _private_handleSrc_extraInitializers), __runInitializers(this, _private_handleContent_initializers, bindToStyle(() => this.#dom, 'background-image', (content) => {
|
|
34
|
+
if (!content)
|
|
35
|
+
return '';
|
|
36
|
+
// https://stackoverflow.com/questions/23223718/failed-to-execute-btoa-on-window-the-string-to-be-encoded-contains-characte
|
|
37
|
+
const src = 'data:image/svg+xml;base64,'
|
|
38
|
+
+ btoa(unescape(encodeURIComponent(content)));
|
|
39
|
+
this.#loadEventInvoker.src = src;
|
|
40
|
+
return `url("${src}")`;
|
|
41
|
+
})));
|
|
42
|
+
#fireLoadEvent = (__runInitializers(this, _private_handleContent_extraInitializers), () => {
|
|
43
|
+
if (this.#dom.getAttribute('x-enable-load-event') === null)
|
|
44
|
+
return;
|
|
45
|
+
const { width, height } = this.#loadEventInvoker;
|
|
46
|
+
this.#dom.dispatchEvent(new CustomEvent('load', {
|
|
47
|
+
...commonComponentEventSetting,
|
|
48
|
+
detail: {
|
|
49
|
+
width,
|
|
50
|
+
height,
|
|
51
|
+
},
|
|
52
|
+
}));
|
|
53
|
+
});
|
|
54
|
+
constructor(dom) {
|
|
55
|
+
this.#dom = dom;
|
|
56
|
+
this.#loadEventInvoker.addEventListener('load', this.#fireLoadEvent);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
})();
|
|
60
|
+
export { XSvgFeatures };
|
|
61
|
+
let XSvg = (() => {
|
|
62
|
+
let _classDecorators = [Component('x-svg', [LynxExposure, XSvgFeatures])];
|
|
63
|
+
let _classDescriptor;
|
|
64
|
+
let _classExtraInitializers = [];
|
|
65
|
+
let _classThis;
|
|
66
|
+
let _classSuper = HTMLElement;
|
|
67
|
+
var XSvg = class extends _classSuper {
|
|
68
|
+
static { _classThis = this; }
|
|
69
|
+
static {
|
|
70
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
71
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
72
|
+
XSvg = _classThis = _classDescriptor.value;
|
|
73
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
74
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
return XSvg = _classThis;
|
|
78
|
+
})();
|
|
79
|
+
export { XSvg };
|
|
80
|
+
//# sourceMappingURL=XSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { XSvg } from './XSvg.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { Component } from '@lynx-js/web-elements-reactive';
|
|
8
|
+
import { LynxExposure } from '../common/Exposure.js';
|
|
9
|
+
let SwiperItem = (() => {
|
|
10
|
+
let _classDecorators = [Component('x-swiper-item', [LynxExposure])];
|
|
11
|
+
let _classDescriptor;
|
|
12
|
+
let _classExtraInitializers = [];
|
|
13
|
+
let _classThis;
|
|
14
|
+
let _classSuper = HTMLElement;
|
|
15
|
+
var SwiperItem = class extends _classSuper {
|
|
16
|
+
static { _classThis = this; }
|
|
17
|
+
static {
|
|
18
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
19
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
20
|
+
SwiperItem = _classThis = _classDescriptor.value;
|
|
21
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
22
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return SwiperItem = _classThis;
|
|
26
|
+
})();
|
|
27
|
+
export { SwiperItem };
|
|
28
|
+
//# sourceMappingURL=SwiperItem.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { scrollContainerDom } from '../common/constants.js';
|
|
2
|
+
export declare class XSwiper extends HTMLElement {
|
|
3
|
+
#private;
|
|
4
|
+
static notToFilterFalseAttributes: Set<string>;
|
|
5
|
+
get current(): number;
|
|
6
|
+
set current(newval: number);
|
|
7
|
+
get snapDistance(): number;
|
|
8
|
+
get isVertical(): boolean;
|
|
9
|
+
get circularPlay(): boolean;
|
|
10
|
+
scrollToNext(): void;
|
|
11
|
+
scrollToPrevious(): void;
|
|
12
|
+
connectedCallback(): void;
|
|
13
|
+
get [scrollContainerDom](): this;
|
|
14
|
+
}
|