@everymatrix/lottery-hakuna-ticket-history 0.0.1
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/dist/cjs/app-globals-3a1e7e63.js +5 -0
- package/dist/cjs/index-dc95b9af.js +1336 -0
- package/dist/cjs/index.cjs.js +10 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/lottery-button_8.cjs.entry.js +1427 -0
- package/dist/cjs/lottery-hakuna-ticket-history-84d9a41b.js +2697 -0
- package/dist/cjs/lottery-hakuna-ticket-history.cjs.js +25 -0
- package/dist/collection/collection-manifest.json +50 -0
- package/dist/collection/components/lottery-hakuna-ticket-history/index.js +1 -0
- package/dist/collection/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.css +74 -0
- package/dist/collection/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.js +589 -0
- package/dist/collection/components/lottery-infinite-scroll/lottery-infinite-scroll.css +69 -0
- package/dist/collection/components/lottery-infinite-scroll/lottery-infinite-scroll.js +556 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/models/index.js +21 -0
- package/dist/collection/utils/api.js +149 -0
- package/dist/collection/utils/locale.utils.js +42 -0
- package/dist/collection/utils/utils.js +3 -0
- package/dist/esm/app-globals-0f993ce5.js +3 -0
- package/dist/esm/index-50addd47.js +1307 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/lottery-button_8.entry.js +1417 -0
- package/dist/esm/lottery-hakuna-ticket-history-cdab50d9.js +2691 -0
- package/dist/esm/lottery-hakuna-ticket-history.js +20 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/lottery-hakuna-ticket-history/app-globals-0f993ce5.js +1 -0
- package/dist/lottery-hakuna-ticket-history/index-50addd47.js +2 -0
- package/dist/lottery-hakuna-ticket-history/index.esm.js +1 -0
- package/dist/lottery-hakuna-ticket-history/lottery-button_8.entry.js +1 -0
- package/dist/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history-cdab50d9.js +1 -0
- package/dist/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.esm.js +1 -0
- package/dist/stencil.config.dev.js +19 -0
- package/dist/stencil.config.js +19 -0
- package/dist/storybook/main.js +43 -0
- package/dist/storybook/preview.js +9 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/libs/common/src/storybook/storybook-utils.d.ts +39 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/packages/stencil/lottery-hakuna-ticket-history/stencil.config.d.ts +2 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/packages/stencil/lottery-hakuna-ticket-history/stencil.config.dev.d.ts +2 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/packages/stencil/lottery-hakuna-ticket-history/storybook/main.d.ts +3 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/packages/stencil/lottery-hakuna-ticket-history/storybook/preview.d.ts +70 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/index.d.ts +4 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/lazy-load-chunk-plugin.d.ts +12 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/stencil-clean-deps-plugin.d.ts +5 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
- package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/vite-clean-deps-plugin.d.ts +4 -0
- package/dist/types/components/lottery-hakuna-ticket-history/index.d.ts +1 -0
- package/dist/types/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.d.ts +131 -0
- package/dist/types/components/lottery-infinite-scroll/lottery-infinite-scroll.d.ts +106 -0
- package/dist/types/components.d.ts +362 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/models/index.d.ts +199 -0
- package/dist/types/stencil-public-runtime.d.ts +1674 -0
- package/dist/types/utils/api.d.ts +8 -0
- package/dist/types/utils/locale.utils.d.ts +3 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/loader/package.json +11 -0
- package/package.json +27 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
export class LotteryInfiniteScroll {
|
|
3
|
+
constructor() {
|
|
4
|
+
/** Y-coordinate of the touch start event. */
|
|
5
|
+
this.startY = 0;
|
|
6
|
+
/** Indicates if a touch event is currently active for pull-to-refresh. */
|
|
7
|
+
this.isTouching = false;
|
|
8
|
+
// --- Virtual Scroll Core Logic ---
|
|
9
|
+
this.onScroll = () => {
|
|
10
|
+
if (this.enableVirtualScroll) {
|
|
11
|
+
if (this.rafId)
|
|
12
|
+
cancelAnimationFrame(this.rafId);
|
|
13
|
+
this.rafId = requestAnimationFrame(() => this.calculateVisibleRange());
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
// --- Pull to Refresh Logic (Touch handling) ---
|
|
17
|
+
this.handleTouchStart = (e) => {
|
|
18
|
+
// Only allow pull-down when scrollbar is at the top
|
|
19
|
+
if (this.scrollContainer.scrollTop <= 0) {
|
|
20
|
+
this.startY = e.touches[0].clientY;
|
|
21
|
+
this.isTouching = true;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
this.handleTouchMove = (e) => {
|
|
25
|
+
if (!this.isTouching || this.isRefreshing)
|
|
26
|
+
return;
|
|
27
|
+
const currentY = e.touches[0].clientY;
|
|
28
|
+
const distance = currentY - this.startY;
|
|
29
|
+
// Only process pull-down and when scrollbar is at the top
|
|
30
|
+
if (distance > 0 && this.scrollContainer.scrollTop <= 0) {
|
|
31
|
+
// Prevent default scroll behavior (prevents entire page from being dragged)
|
|
32
|
+
if (e.cancelable)
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
// Add damping effect (harder to pull further)
|
|
35
|
+
this.pullDistance = Math.pow(distance, 0.8);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// If user pushes up, or already scrolled, reset
|
|
39
|
+
this.isTouching = false;
|
|
40
|
+
this.pullDistance = 0;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
this.handleTouchEnd = () => {
|
|
44
|
+
this.isTouching = false;
|
|
45
|
+
if (this.pullDistance >= this.pullTriggerDistance) {
|
|
46
|
+
// Trigger refresh
|
|
47
|
+
this.pullDistance = this.pullTriggerDistance; // Stay in loading area
|
|
48
|
+
this.refresh.emit();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Not reached threshold, bounce back
|
|
52
|
+
this.pullDistance = 0;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
this.items = [];
|
|
56
|
+
this.hasMore = false;
|
|
57
|
+
this.isLoading = false;
|
|
58
|
+
this.isRefreshing = false;
|
|
59
|
+
this.threshold = '0px 0px 200px 0px';
|
|
60
|
+
this.estimatedItemHeight = 200;
|
|
61
|
+
this.containerHeight = '100%';
|
|
62
|
+
this.enableVirtualScroll = false;
|
|
63
|
+
this.renderItem = undefined;
|
|
64
|
+
this.renderSkeleton = undefined;
|
|
65
|
+
this.skeletonCount = 6;
|
|
66
|
+
this.pullTriggerDistance = 60;
|
|
67
|
+
this.minItemWidth = 340;
|
|
68
|
+
this.gridGap = 10;
|
|
69
|
+
this.visibleStartIndex = 0;
|
|
70
|
+
this.visibleEndIndex = 10;
|
|
71
|
+
this.pullDistance = 0;
|
|
72
|
+
this.columns = 1;
|
|
73
|
+
}
|
|
74
|
+
componentDidLoad() {
|
|
75
|
+
if (this.enableVirtualScroll) {
|
|
76
|
+
// Listen for container size changes, recalculate columns
|
|
77
|
+
this.initResizeObserver();
|
|
78
|
+
// Initial calculation
|
|
79
|
+
this.calculateMetrics();
|
|
80
|
+
}
|
|
81
|
+
// Initialize observer on component load
|
|
82
|
+
this.initObserver();
|
|
83
|
+
}
|
|
84
|
+
componentDidUpdate() {
|
|
85
|
+
if (this.hasMore && !this.isLoading) {
|
|
86
|
+
this.initObserver();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
disconnectedCallback() {
|
|
90
|
+
this.disconnectObserver();
|
|
91
|
+
if (this.resizeObserver)
|
|
92
|
+
this.resizeObserver.disconnect();
|
|
93
|
+
if (this.rafId)
|
|
94
|
+
cancelAnimationFrame(this.rafId);
|
|
95
|
+
}
|
|
96
|
+
initResizeObserver() {
|
|
97
|
+
if (!window.ResizeObserver || !this.scrollContainer)
|
|
98
|
+
return;
|
|
99
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
100
|
+
for (let entry of entries) {
|
|
101
|
+
// When width changes, recalculate the number of columns
|
|
102
|
+
const width = entry.contentRect.width;
|
|
103
|
+
this.recalcColumns(width);
|
|
104
|
+
this.calculateVisibleRange();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
this.resizeObserver.observe(this.scrollContainer);
|
|
108
|
+
}
|
|
109
|
+
recalcColumns(containerWidth) {
|
|
110
|
+
if (!this.enableVirtualScroll)
|
|
111
|
+
return;
|
|
112
|
+
// Calculation logic must be consistent with CSS grid-template-columns: repeat(auto-fill, ...)
|
|
113
|
+
// Considering the gap
|
|
114
|
+
const effectiveWidth = containerWidth + this.gridGap;
|
|
115
|
+
const itemOccupancy = this.minItemWidth + this.gridGap;
|
|
116
|
+
// At least 1 column
|
|
117
|
+
const newColumns = Math.max(1, Math.floor(effectiveWidth / itemOccupancy));
|
|
118
|
+
if (this.columns !== newColumns) {
|
|
119
|
+
this.columns = newColumns;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// --- Watchers ---
|
|
123
|
+
handleItemsChange() {
|
|
124
|
+
if (this.enableVirtualScroll) {
|
|
125
|
+
this.calculateVisibleRange();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
handleRefreshingChange(newValue) {
|
|
129
|
+
if (!newValue) {
|
|
130
|
+
this.pullDistance = 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// --- Observer Logic ---
|
|
134
|
+
disconnectObserver() {
|
|
135
|
+
if (this.observer) {
|
|
136
|
+
this.observer.disconnect();
|
|
137
|
+
this.observer = null;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
initObserver() {
|
|
141
|
+
this.disconnectObserver();
|
|
142
|
+
if (!this.hasMore || this.isLoading || !this.sentinel)
|
|
143
|
+
return;
|
|
144
|
+
const options = {
|
|
145
|
+
root: this.scrollContainer === this.el.shadowRoot.querySelector('.lottery-infinite-scroll__container')
|
|
146
|
+
? this.scrollContainer
|
|
147
|
+
: null,
|
|
148
|
+
rootMargin: this.threshold,
|
|
149
|
+
threshold: 0.1
|
|
150
|
+
};
|
|
151
|
+
this.observer = new IntersectionObserver((entries) => {
|
|
152
|
+
// When scrolled to bottom and not currently loading
|
|
153
|
+
if (entries[0].isIntersecting && this.hasMore && !this.isLoading) {
|
|
154
|
+
this.loadMore.emit();
|
|
155
|
+
}
|
|
156
|
+
}, options);
|
|
157
|
+
this.observer.observe(this.sentinel);
|
|
158
|
+
}
|
|
159
|
+
calculateMetrics() {
|
|
160
|
+
if (!this.scrollContainer)
|
|
161
|
+
return;
|
|
162
|
+
this.recalcColumns(this.scrollContainer.clientWidth);
|
|
163
|
+
this.calculateVisibleRange();
|
|
164
|
+
}
|
|
165
|
+
calculateVisibleRange() {
|
|
166
|
+
if (!this.scrollContainer || !this.enableVirtualScroll)
|
|
167
|
+
return;
|
|
168
|
+
const scrollTop = this.scrollContainer.scrollTop;
|
|
169
|
+
const viewportHeight = this.scrollContainer.clientHeight;
|
|
170
|
+
// 1. Calculate the current "Row" index
|
|
171
|
+
// We assume each row has a height of estimatedItemHeight (although it may differ in reality, this is sufficient for visible window calculation)
|
|
172
|
+
const startRow = Math.floor(scrollTop / this.estimatedItemHeight);
|
|
173
|
+
// 2. Buffer row count
|
|
174
|
+
const bufferRows = 3;
|
|
175
|
+
// 3. Calculate visible rows
|
|
176
|
+
const visibleRows = Math.ceil(viewportHeight / this.estimatedItemHeight);
|
|
177
|
+
// 4. Calculate start and end rows for rendering
|
|
178
|
+
const renderStartRow = Math.max(0, startRow - bufferRows);
|
|
179
|
+
const renderEndRow = startRow + visibleRows + bufferRows;
|
|
180
|
+
// 5. Convert to Item indices (Row * Columns)
|
|
181
|
+
const startIndex = renderStartRow * this.columns;
|
|
182
|
+
const endIndex = Math.min(this.items.length, renderEndRow * this.columns);
|
|
183
|
+
if (this.visibleStartIndex !== startIndex || this.visibleEndIndex !== endIndex) {
|
|
184
|
+
this.visibleStartIndex = startIndex;
|
|
185
|
+
this.visibleEndIndex = endIndex;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
render() {
|
|
189
|
+
const { items, visibleStartIndex, visibleEndIndex, estimatedItemHeight, columns, gridGap, minItemWidth } = this;
|
|
190
|
+
// Check if we should show skeleton: items are empty, loading is true, and renderSkeleton is provided
|
|
191
|
+
const showSkeleton = items.length === 0 && !!this.renderSkeleton && this.isLoading;
|
|
192
|
+
// Virtual Scroll Calculations for Spacer
|
|
193
|
+
let paddingTop = 0;
|
|
194
|
+
let paddingBottom = 0;
|
|
195
|
+
let visibleItems = [];
|
|
196
|
+
if (this.enableVirtualScroll && !showSkeleton) {
|
|
197
|
+
const totalRows = Math.ceil(items.length / columns);
|
|
198
|
+
const startRow = Math.floor(visibleStartIndex / columns);
|
|
199
|
+
// Note: Here we calculate how many rows are actually rendered based on the number of slices, for calculating bottom padding.
|
|
200
|
+
const renderedCount = visibleEndIndex - visibleStartIndex;
|
|
201
|
+
const renderedRows = Math.ceil(renderedCount / columns);
|
|
202
|
+
// Top Spacer: Number of rows hidden at the top * Estimated height
|
|
203
|
+
paddingTop = startRow * estimatedItemHeight;
|
|
204
|
+
// Bottom Spacer: Total rows - (Top rows + Rendered rows) * Estimated height
|
|
205
|
+
// Ensure the total scroll height is roughly correct
|
|
206
|
+
paddingBottom = Math.max(0, (totalRows - startRow - renderedRows) * estimatedItemHeight);
|
|
207
|
+
visibleItems = items.slice(visibleStartIndex, visibleEndIndex);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
visibleItems = showSkeleton ? new Array(this.skeletonCount).fill(null) : items;
|
|
211
|
+
}
|
|
212
|
+
// Styles
|
|
213
|
+
const contentTransform = {
|
|
214
|
+
transform: `translateY(${this.pullDistance}px)`,
|
|
215
|
+
transition: this.isTouching ? 'none' : 'transform 0.3s ease-out'
|
|
216
|
+
};
|
|
217
|
+
// Grid Layout Style
|
|
218
|
+
const listStyle = {
|
|
219
|
+
display: 'grid',
|
|
220
|
+
// Responsive column width
|
|
221
|
+
gridTemplateColumns: `repeat(auto-fill, minmax(${minItemWidth}px, 1fr))`,
|
|
222
|
+
gap: `${gridGap}px`,
|
|
223
|
+
// Even with Flex/Grid, we don't need absolute positioning, use margin/padding for spacing
|
|
224
|
+
paddingTop: `${paddingTop}px`,
|
|
225
|
+
paddingBottom: `${paddingBottom}px`,
|
|
226
|
+
boxSizing: 'border-box'
|
|
227
|
+
};
|
|
228
|
+
return (h("div", { key: '366232c373082c1a825da935fd02039c3cef5653', class: "lottery-infinite-scroll__container", style: {
|
|
229
|
+
height: this.containerHeight,
|
|
230
|
+
overflowY: 'auto',
|
|
231
|
+
position: 'relative',
|
|
232
|
+
contain: 'strict' // Performance optimization
|
|
233
|
+
}, ref: (el) => (this.scrollContainer = el), onScroll: this.onScroll, onTouchStart: this.handleTouchStart, onTouchMove: this.handleTouchMove, onTouchEnd: this.handleTouchEnd }, h("div", { key: '1dbe68c185299f989101ad2489319ebab82c44da', class: "ptr-indicator", style: Object.assign(Object.assign({}, contentTransform), { position: 'absolute', top: '0', left: '0', width: '100%', height: `${this.pullTriggerDistance}px`, display: 'flex', alignItems: 'center', justifyContent: 'center', marginTop: `-${this.pullTriggerDistance}px`, pointerEvents: 'none' }) }, this.isRefreshing ? (h("slot", { name: "refresh-loading" }, "Refreshing...")) : (h("slot", { name: "pull-hint" }, this.pullDistance > this.pullTriggerDistance ? 'Release' : 'Pull'))), h("div", { key: 'd058018d407dd0e003571e0c1259f837deb093be', class: "scroll-content-wrapper", style: contentTransform }, h("div", { key: '1041eb5548bc79c2a507477013e3e34f35e25c22', class: "list-content", style: listStyle }, visibleItems.map((item, i) => {
|
|
234
|
+
/* Pass the real index to renderItem */
|
|
235
|
+
const realIndex = this.enableVirtualScroll && !showSkeleton ? visibleStartIndex + i : i;
|
|
236
|
+
return (h("div", { key: realIndex, class: "list-item-wrapper" }, showSkeleton
|
|
237
|
+
? this.renderSkeleton
|
|
238
|
+
? this.renderSkeleton(realIndex)
|
|
239
|
+
: null
|
|
240
|
+
: this.renderItem
|
|
241
|
+
? this.renderItem(item, realIndex)
|
|
242
|
+
: null));
|
|
243
|
+
})), (this.hasMore || (this.isLoading && !showSkeleton)) && (h("div", { key: '0af2a85096fc16e9071ec0363a4eb58753324247', class: "lottery-infinite-scroll__sentinel", ref: (el) => (this.sentinel = el), style: { height: '20px', display: 'flex', justifyContent: 'center' } }, this.isLoading ? h("slot", { name: "loading-more" }, "Loading...") : null)), !this.hasMore && !this.isLoading && items.length > 0 && (h("div", { key: 'e6e814a96727e2442137412c25ec09908b2f9015', class: "end-message", style: { textAlign: 'center', padding: '10px' } }, h("slot", { key: '02831150b863992dabd59ab01f7bbb23066877bf', name: "end-message" }, "No more data"))))));
|
|
244
|
+
}
|
|
245
|
+
static get is() { return "lottery-infinite-scroll"; }
|
|
246
|
+
static get encapsulation() { return "shadow"; }
|
|
247
|
+
static get originalStyleUrls() {
|
|
248
|
+
return {
|
|
249
|
+
"$": ["lottery-infinite-scroll.scss"]
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
static get styleUrls() {
|
|
253
|
+
return {
|
|
254
|
+
"$": ["lottery-infinite-scroll.css"]
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
static get properties() {
|
|
258
|
+
return {
|
|
259
|
+
"items": {
|
|
260
|
+
"type": "unknown",
|
|
261
|
+
"mutable": false,
|
|
262
|
+
"complexType": {
|
|
263
|
+
"original": "any[]",
|
|
264
|
+
"resolved": "any[]",
|
|
265
|
+
"references": {}
|
|
266
|
+
},
|
|
267
|
+
"required": false,
|
|
268
|
+
"optional": false,
|
|
269
|
+
"docs": {
|
|
270
|
+
"tags": [],
|
|
271
|
+
"text": "An array of items to be displayed in the infinite scroll list."
|
|
272
|
+
},
|
|
273
|
+
"defaultValue": "[]"
|
|
274
|
+
},
|
|
275
|
+
"hasMore": {
|
|
276
|
+
"type": "boolean",
|
|
277
|
+
"mutable": false,
|
|
278
|
+
"complexType": {
|
|
279
|
+
"original": "boolean",
|
|
280
|
+
"resolved": "boolean",
|
|
281
|
+
"references": {}
|
|
282
|
+
},
|
|
283
|
+
"required": false,
|
|
284
|
+
"optional": false,
|
|
285
|
+
"docs": {
|
|
286
|
+
"tags": [],
|
|
287
|
+
"text": "Indicates if there are more items to load. When false, no more `loadMore` events will be emitted."
|
|
288
|
+
},
|
|
289
|
+
"attribute": "has-more",
|
|
290
|
+
"reflect": false,
|
|
291
|
+
"defaultValue": "false"
|
|
292
|
+
},
|
|
293
|
+
"isLoading": {
|
|
294
|
+
"type": "boolean",
|
|
295
|
+
"mutable": false,
|
|
296
|
+
"complexType": {
|
|
297
|
+
"original": "boolean",
|
|
298
|
+
"resolved": "boolean",
|
|
299
|
+
"references": {}
|
|
300
|
+
},
|
|
301
|
+
"required": false,
|
|
302
|
+
"optional": false,
|
|
303
|
+
"docs": {
|
|
304
|
+
"tags": [],
|
|
305
|
+
"text": "Indicates if new items are currently being loaded. Used to prevent multiple `loadMore` calls."
|
|
306
|
+
},
|
|
307
|
+
"attribute": "is-loading",
|
|
308
|
+
"reflect": false,
|
|
309
|
+
"defaultValue": "false"
|
|
310
|
+
},
|
|
311
|
+
"isRefreshing": {
|
|
312
|
+
"type": "boolean",
|
|
313
|
+
"mutable": false,
|
|
314
|
+
"complexType": {
|
|
315
|
+
"original": "boolean",
|
|
316
|
+
"resolved": "boolean",
|
|
317
|
+
"references": {}
|
|
318
|
+
},
|
|
319
|
+
"required": false,
|
|
320
|
+
"optional": false,
|
|
321
|
+
"docs": {
|
|
322
|
+
"tags": [],
|
|
323
|
+
"text": "Indicates if the component is currently in a refreshing state (e.g., during pull-to-refresh)."
|
|
324
|
+
},
|
|
325
|
+
"attribute": "is-refreshing",
|
|
326
|
+
"reflect": false,
|
|
327
|
+
"defaultValue": "false"
|
|
328
|
+
},
|
|
329
|
+
"threshold": {
|
|
330
|
+
"type": "string",
|
|
331
|
+
"mutable": false,
|
|
332
|
+
"complexType": {
|
|
333
|
+
"original": "string",
|
|
334
|
+
"resolved": "string",
|
|
335
|
+
"references": {}
|
|
336
|
+
},
|
|
337
|
+
"required": false,
|
|
338
|
+
"optional": false,
|
|
339
|
+
"docs": {
|
|
340
|
+
"tags": [],
|
|
341
|
+
"text": "Defines the intersection root margin for the IntersectionObserver.\nThis allows for pre-loading content before the sentinel becomes visible.\nE.g., '0px 0px 200px 0px' means the bottom margin is 200px."
|
|
342
|
+
},
|
|
343
|
+
"attribute": "threshold",
|
|
344
|
+
"reflect": false,
|
|
345
|
+
"defaultValue": "'0px 0px 200px 0px'"
|
|
346
|
+
},
|
|
347
|
+
"estimatedItemHeight": {
|
|
348
|
+
"type": "number",
|
|
349
|
+
"mutable": false,
|
|
350
|
+
"complexType": {
|
|
351
|
+
"original": "number",
|
|
352
|
+
"resolved": "number",
|
|
353
|
+
"references": {}
|
|
354
|
+
},
|
|
355
|
+
"required": false,
|
|
356
|
+
"optional": false,
|
|
357
|
+
"docs": {
|
|
358
|
+
"tags": [],
|
|
359
|
+
"text": "Estimated height of each item.\nUsed in virtual scrolling to calculate the total scrollbar length.\nEven if actual heights vary, an average value is sufficient;\nCSS handles layout fluidly without overlap."
|
|
360
|
+
},
|
|
361
|
+
"attribute": "estimated-item-height",
|
|
362
|
+
"reflect": false,
|
|
363
|
+
"defaultValue": "200"
|
|
364
|
+
},
|
|
365
|
+
"containerHeight": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"mutable": false,
|
|
368
|
+
"complexType": {
|
|
369
|
+
"original": "string",
|
|
370
|
+
"resolved": "string",
|
|
371
|
+
"references": {}
|
|
372
|
+
},
|
|
373
|
+
"required": false,
|
|
374
|
+
"optional": false,
|
|
375
|
+
"docs": {
|
|
376
|
+
"tags": [],
|
|
377
|
+
"text": "Container height. If `enableVirtualScroll` is true,\nit is recommended to explicitly set the container height in CSS\nor pass this value."
|
|
378
|
+
},
|
|
379
|
+
"attribute": "container-height",
|
|
380
|
+
"reflect": false,
|
|
381
|
+
"defaultValue": "'100%'"
|
|
382
|
+
},
|
|
383
|
+
"enableVirtualScroll": {
|
|
384
|
+
"type": "boolean",
|
|
385
|
+
"mutable": false,
|
|
386
|
+
"complexType": {
|
|
387
|
+
"original": "boolean",
|
|
388
|
+
"resolved": "boolean",
|
|
389
|
+
"references": {}
|
|
390
|
+
},
|
|
391
|
+
"required": false,
|
|
392
|
+
"optional": false,
|
|
393
|
+
"docs": {
|
|
394
|
+
"tags": [],
|
|
395
|
+
"text": "Enables or disables virtual scrolling for performance optimization with large lists."
|
|
396
|
+
},
|
|
397
|
+
"attribute": "enable-virtual-scroll",
|
|
398
|
+
"reflect": false,
|
|
399
|
+
"defaultValue": "false"
|
|
400
|
+
},
|
|
401
|
+
"renderItem": {
|
|
402
|
+
"type": "unknown",
|
|
403
|
+
"mutable": false,
|
|
404
|
+
"complexType": {
|
|
405
|
+
"original": "(item: any, index: number) => any",
|
|
406
|
+
"resolved": "(item: any, index: number) => any",
|
|
407
|
+
"references": {}
|
|
408
|
+
},
|
|
409
|
+
"required": false,
|
|
410
|
+
"optional": false,
|
|
411
|
+
"docs": {
|
|
412
|
+
"tags": [],
|
|
413
|
+
"text": "Render function"
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
"renderSkeleton": {
|
|
417
|
+
"type": "unknown",
|
|
418
|
+
"mutable": false,
|
|
419
|
+
"complexType": {
|
|
420
|
+
"original": "(index: number) => any",
|
|
421
|
+
"resolved": "(index: number) => any",
|
|
422
|
+
"references": {}
|
|
423
|
+
},
|
|
424
|
+
"required": false,
|
|
425
|
+
"optional": false,
|
|
426
|
+
"docs": {
|
|
427
|
+
"tags": [],
|
|
428
|
+
"text": "Render function for skeleton item"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"skeletonCount": {
|
|
432
|
+
"type": "number",
|
|
433
|
+
"mutable": false,
|
|
434
|
+
"complexType": {
|
|
435
|
+
"original": "number",
|
|
436
|
+
"resolved": "number",
|
|
437
|
+
"references": {}
|
|
438
|
+
},
|
|
439
|
+
"required": false,
|
|
440
|
+
"optional": false,
|
|
441
|
+
"docs": {
|
|
442
|
+
"tags": [],
|
|
443
|
+
"text": "Number of skeleton items to show during initial load"
|
|
444
|
+
},
|
|
445
|
+
"attribute": "skeleton-count",
|
|
446
|
+
"reflect": false,
|
|
447
|
+
"defaultValue": "6"
|
|
448
|
+
},
|
|
449
|
+
"pullTriggerDistance": {
|
|
450
|
+
"type": "number",
|
|
451
|
+
"mutable": false,
|
|
452
|
+
"complexType": {
|
|
453
|
+
"original": "number",
|
|
454
|
+
"resolved": "number",
|
|
455
|
+
"references": {}
|
|
456
|
+
},
|
|
457
|
+
"required": false,
|
|
458
|
+
"optional": false,
|
|
459
|
+
"docs": {
|
|
460
|
+
"tags": [],
|
|
461
|
+
"text": "Pull-to-refresh trigger distance"
|
|
462
|
+
},
|
|
463
|
+
"attribute": "pull-trigger-distance",
|
|
464
|
+
"reflect": false,
|
|
465
|
+
"defaultValue": "60"
|
|
466
|
+
},
|
|
467
|
+
"minItemWidth": {
|
|
468
|
+
"type": "number",
|
|
469
|
+
"mutable": false,
|
|
470
|
+
"complexType": {
|
|
471
|
+
"original": "number",
|
|
472
|
+
"resolved": "number",
|
|
473
|
+
"references": {}
|
|
474
|
+
},
|
|
475
|
+
"required": false,
|
|
476
|
+
"optional": false,
|
|
477
|
+
"docs": {
|
|
478
|
+
"tags": [],
|
|
479
|
+
"text": "Grid layout configuration: minimum column width\nUsed with CSS Grid to achieve responsiveness: repeat(auto-fill, minmax(minItemWidth, 1fr))"
|
|
480
|
+
},
|
|
481
|
+
"attribute": "min-item-width",
|
|
482
|
+
"reflect": false,
|
|
483
|
+
"defaultValue": "340"
|
|
484
|
+
},
|
|
485
|
+
"gridGap": {
|
|
486
|
+
"type": "number",
|
|
487
|
+
"mutable": false,
|
|
488
|
+
"complexType": {
|
|
489
|
+
"original": "number",
|
|
490
|
+
"resolved": "number",
|
|
491
|
+
"references": {}
|
|
492
|
+
},
|
|
493
|
+
"required": false,
|
|
494
|
+
"optional": false,
|
|
495
|
+
"docs": {
|
|
496
|
+
"tags": [],
|
|
497
|
+
"text": "Grid spacing (px)"
|
|
498
|
+
},
|
|
499
|
+
"attribute": "grid-gap",
|
|
500
|
+
"reflect": false,
|
|
501
|
+
"defaultValue": "10"
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
static get states() {
|
|
506
|
+
return {
|
|
507
|
+
"visibleStartIndex": {},
|
|
508
|
+
"visibleEndIndex": {},
|
|
509
|
+
"pullDistance": {},
|
|
510
|
+
"columns": {}
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
static get events() {
|
|
514
|
+
return [{
|
|
515
|
+
"method": "loadMore",
|
|
516
|
+
"name": "loadMore",
|
|
517
|
+
"bubbles": true,
|
|
518
|
+
"cancelable": true,
|
|
519
|
+
"composed": true,
|
|
520
|
+
"docs": {
|
|
521
|
+
"tags": [],
|
|
522
|
+
"text": "Emitted when the user scrolls near the end of the list, indicating that more items should be loaded."
|
|
523
|
+
},
|
|
524
|
+
"complexType": {
|
|
525
|
+
"original": "void",
|
|
526
|
+
"resolved": "void",
|
|
527
|
+
"references": {}
|
|
528
|
+
}
|
|
529
|
+
}, {
|
|
530
|
+
"method": "refresh",
|
|
531
|
+
"name": "refresh",
|
|
532
|
+
"bubbles": true,
|
|
533
|
+
"cancelable": true,
|
|
534
|
+
"composed": true,
|
|
535
|
+
"docs": {
|
|
536
|
+
"tags": [],
|
|
537
|
+
"text": "Emitted when the pull-to-refresh action is triggered by the user."
|
|
538
|
+
},
|
|
539
|
+
"complexType": {
|
|
540
|
+
"original": "void",
|
|
541
|
+
"resolved": "void",
|
|
542
|
+
"references": {}
|
|
543
|
+
}
|
|
544
|
+
}];
|
|
545
|
+
}
|
|
546
|
+
static get elementRef() { return "el"; }
|
|
547
|
+
static get watchers() {
|
|
548
|
+
return [{
|
|
549
|
+
"propName": "items",
|
|
550
|
+
"methodName": "handleItemsChange"
|
|
551
|
+
}, {
|
|
552
|
+
"propName": "isRefreshing",
|
|
553
|
+
"methodName": "handleRefreshingChange"
|
|
554
|
+
}];
|
|
555
|
+
}
|
|
556
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/lottery-hakuna-ticket-history';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export var GameType;
|
|
2
|
+
(function (GameType) {
|
|
3
|
+
GameType["Lottery"] = "Lottery";
|
|
4
|
+
GameType["PoolGame"] = "PoolGame";
|
|
5
|
+
})(GameType || (GameType = {}));
|
|
6
|
+
export var GameBettingObject;
|
|
7
|
+
(function (GameBettingObject) {
|
|
8
|
+
GameBettingObject["Tipping"] = "HomeDrawAway";
|
|
9
|
+
GameBettingObject["Oddsbomben"] = "CorrectScore";
|
|
10
|
+
})(GameBettingObject || (GameBettingObject = {}));
|
|
11
|
+
export var TicketStatus;
|
|
12
|
+
(function (TicketStatus) {
|
|
13
|
+
TicketStatus["Settled"] = "Settled";
|
|
14
|
+
TicketStatus["Purchased"] = "Purchased";
|
|
15
|
+
TicketStatus["Canceled"] = "Canceled";
|
|
16
|
+
})(TicketStatus || (TicketStatus = {}));
|
|
17
|
+
export var DrawResult;
|
|
18
|
+
(function (DrawResult) {
|
|
19
|
+
DrawResult["WON"] = "Won";
|
|
20
|
+
DrawResult["LOST"] = "Lost";
|
|
21
|
+
})(DrawResult || (DrawResult = {}));
|