@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.
Files changed (64) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/index-dc95b9af.js +1336 -0
  3. package/dist/cjs/index.cjs.js +10 -0
  4. package/dist/cjs/loader.cjs.js +15 -0
  5. package/dist/cjs/lottery-button_8.cjs.entry.js +1427 -0
  6. package/dist/cjs/lottery-hakuna-ticket-history-84d9a41b.js +2697 -0
  7. package/dist/cjs/lottery-hakuna-ticket-history.cjs.js +25 -0
  8. package/dist/collection/collection-manifest.json +50 -0
  9. package/dist/collection/components/lottery-hakuna-ticket-history/index.js +1 -0
  10. package/dist/collection/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.css +74 -0
  11. package/dist/collection/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.js +589 -0
  12. package/dist/collection/components/lottery-infinite-scroll/lottery-infinite-scroll.css +69 -0
  13. package/dist/collection/components/lottery-infinite-scroll/lottery-infinite-scroll.js +556 -0
  14. package/dist/collection/index.js +1 -0
  15. package/dist/collection/models/index.js +21 -0
  16. package/dist/collection/utils/api.js +149 -0
  17. package/dist/collection/utils/locale.utils.js +42 -0
  18. package/dist/collection/utils/utils.js +3 -0
  19. package/dist/esm/app-globals-0f993ce5.js +3 -0
  20. package/dist/esm/index-50addd47.js +1307 -0
  21. package/dist/esm/index.js +2 -0
  22. package/dist/esm/loader.js +11 -0
  23. package/dist/esm/lottery-button_8.entry.js +1417 -0
  24. package/dist/esm/lottery-hakuna-ticket-history-cdab50d9.js +2691 -0
  25. package/dist/esm/lottery-hakuna-ticket-history.js +20 -0
  26. package/dist/index.cjs.js +1 -0
  27. package/dist/index.js +1 -0
  28. package/dist/lottery-hakuna-ticket-history/app-globals-0f993ce5.js +1 -0
  29. package/dist/lottery-hakuna-ticket-history/index-50addd47.js +2 -0
  30. package/dist/lottery-hakuna-ticket-history/index.esm.js +1 -0
  31. package/dist/lottery-hakuna-ticket-history/lottery-button_8.entry.js +1 -0
  32. package/dist/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history-cdab50d9.js +1 -0
  33. package/dist/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.esm.js +1 -0
  34. package/dist/stencil.config.dev.js +19 -0
  35. package/dist/stencil.config.js +19 -0
  36. package/dist/storybook/main.js +43 -0
  37. package/dist/storybook/preview.js +9 -0
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/index.d.ts +4 -0
  44. 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
  45. 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
  46. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/lottery-hakuna-ticket-history/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
  47. 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
  48. package/dist/types/components/lottery-hakuna-ticket-history/index.d.ts +1 -0
  49. package/dist/types/components/lottery-hakuna-ticket-history/lottery-hakuna-ticket-history.d.ts +131 -0
  50. package/dist/types/components/lottery-infinite-scroll/lottery-infinite-scroll.d.ts +106 -0
  51. package/dist/types/components.d.ts +362 -0
  52. package/dist/types/index.d.ts +1 -0
  53. package/dist/types/models/index.d.ts +199 -0
  54. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  55. package/dist/types/utils/api.d.ts +8 -0
  56. package/dist/types/utils/locale.utils.d.ts +3 -0
  57. package/dist/types/utils/utils.d.ts +1 -0
  58. package/loader/cdn.js +1 -0
  59. package/loader/index.cjs.js +1 -0
  60. package/loader/index.d.ts +24 -0
  61. package/loader/index.es2017.js +1 -0
  62. package/loader/index.js +2 -0
  63. package/loader/package.json +11 -0
  64. 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 = {}));