@everymatrix/lottery-hakuna-ticket-history 0.0.1 → 0.0.3

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.
@@ -1,18 +1,9 @@
1
1
  import { h } from "@stencil/core";
2
2
  export class LotteryInfiniteScroll {
3
3
  constructor() {
4
- /** Y-coordinate of the touch start event. */
4
+ // Touch event vars
5
5
  this.startY = 0;
6
- /** Indicates if a touch event is currently active for pull-to-refresh. */
7
6
  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
7
  // --- Pull to Refresh Logic (Touch handling) ---
17
8
  this.handleTouchStart = (e) => {
18
9
  // Only allow pull-down when scrollbar is at the top
@@ -57,28 +48,16 @@ export class LotteryInfiniteScroll {
57
48
  this.isLoading = false;
58
49
  this.isRefreshing = false;
59
50
  this.threshold = '0px 0px 200px 0px';
60
- this.estimatedItemHeight = 200;
61
51
  this.containerHeight = '100%';
62
- this.enableVirtualScroll = false;
63
52
  this.renderItem = undefined;
64
53
  this.renderSkeleton = undefined;
65
54
  this.skeletonCount = 6;
66
55
  this.pullTriggerDistance = 60;
67
56
  this.minItemWidth = 340;
68
57
  this.gridGap = 10;
69
- this.visibleStartIndex = 0;
70
- this.visibleEndIndex = 10;
71
58
  this.pullDistance = 0;
72
- this.columns = 1;
73
59
  }
74
60
  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
61
  this.initObserver();
83
62
  }
84
63
  componentDidUpdate() {
@@ -88,49 +67,12 @@ export class LotteryInfiniteScroll {
88
67
  }
89
68
  disconnectedCallback() {
90
69
  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
70
  }
128
71
  handleRefreshingChange(newValue) {
129
72
  if (!newValue) {
130
73
  this.pullDistance = 0;
131
74
  }
132
75
  }
133
- // --- Observer Logic ---
134
76
  disconnectObserver() {
135
77
  if (this.observer) {
136
78
  this.observer.disconnect();
@@ -142,105 +84,41 @@ export class LotteryInfiniteScroll {
142
84
  if (!this.hasMore || this.isLoading || !this.sentinel)
143
85
  return;
144
86
  const options = {
145
- root: this.scrollContainer === this.el.shadowRoot.querySelector('.lottery-infinite-scroll__container')
146
- ? this.scrollContainer
147
- : null,
87
+ root: this.scrollContainer,
148
88
  rootMargin: this.threshold,
149
89
  threshold: 0.1
150
90
  };
151
91
  this.observer = new IntersectionObserver((entries) => {
152
- // When scrolled to bottom and not currently loading
153
92
  if (entries[0].isIntersecting && this.hasMore && !this.isLoading) {
154
93
  this.loadMore.emit();
155
94
  }
156
95
  }, options);
157
96
  this.observer.observe(this.sentinel);
158
97
  }
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
98
  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
99
+ const { items, minItemWidth, gridGap } = this;
191
100
  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
101
+ const listToRender = showSkeleton ? new Array(this.skeletonCount).fill(null) : items;
213
102
  const contentTransform = {
214
103
  transform: `translateY(${this.pullDistance}px)`,
215
104
  transition: this.isTouching ? 'none' : 'transform 0.3s ease-out'
216
105
  };
217
- // Grid Layout Style
218
106
  const listStyle = {
219
107
  display: 'grid',
220
- // Responsive column width
221
108
  gridTemplateColumns: `repeat(auto-fill, minmax(${minItemWidth}px, 1fr))`,
222
109
  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
110
  boxSizing: 'border-box'
227
111
  };
228
- return (h("div", { key: '366232c373082c1a825da935fd02039c3cef5653', class: "lottery-infinite-scroll__container", style: {
112
+ return (h("div", { key: 'eab20294c6af2caafbf03ddefb58947398b5c6e1', class: "lottery-infinite-scroll__container", style: {
229
113
  height: this.containerHeight,
230
114
  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"))))));
115
+ position: 'relative'
116
+ }, ref: (el) => (this.scrollContainer = el), onTouchStart: this.handleTouchStart, onTouchMove: this.handleTouchMove, onTouchEnd: this.handleTouchEnd }, h("div", { key: 'd2bf17db3948ef45cf9d77c663d7a6b6075e8125', 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: '48e8997513bf547a0aa8eac7d036ce29f294fff0', class: "scroll-content-wrapper", style: contentTransform }, h("div", { key: '31c4de5010e1357239ccef2c9c009f7e2cfb5287', class: "list-content", style: listStyle }, listToRender.map((item, index) => (h("div", { key: index, class: "list-item-wrapper" }, showSkeleton ? this.renderSkeleton(index) : this.renderItem(item, index))))), h("div", { key: '6b0235f48d4c909c2edd400c3eb1d7efd030458e', class: "lottery-infinite-scroll__sentinel", ref: (el) => (this.sentinel = el), style: {
117
+ height: '20px',
118
+ display: 'flex',
119
+ justifyContent: 'center',
120
+ visibility: (this.hasMore || (this.isLoading && !showSkeleton)) ? 'visible' : 'hidden'
121
+ } }, this.isLoading ? h("slot", { name: "loading-more" }, "Loading...") : null), !this.hasMore && !this.isLoading && items.length > 0 && (h("div", { key: '24406925b5f96f2e9be9d06a2d87166e94d2bdad', class: "end-message", style: { textAlign: 'center', padding: '10px' } }, h("slot", { key: '189fe2d6f00551cac97267f2047fd76402b862bb', name: "end-message" }, "No more data"))))));
244
122
  }
245
123
  static get is() { return "lottery-infinite-scroll"; }
246
124
  static get encapsulation() { return "shadow"; }
@@ -268,7 +146,7 @@ export class LotteryInfiniteScroll {
268
146
  "optional": false,
269
147
  "docs": {
270
148
  "tags": [],
271
- "text": "An array of items to be displayed in the infinite scroll list."
149
+ "text": "The list of items to be displayed in the infinite scroll."
272
150
  },
273
151
  "defaultValue": "[]"
274
152
  },
@@ -284,7 +162,7 @@ export class LotteryInfiniteScroll {
284
162
  "optional": false,
285
163
  "docs": {
286
164
  "tags": [],
287
- "text": "Indicates if there are more items to load. When false, no more `loadMore` events will be emitted."
165
+ "text": "Indicates whether there is more data to load."
288
166
  },
289
167
  "attribute": "has-more",
290
168
  "reflect": false,
@@ -302,7 +180,7 @@ export class LotteryInfiniteScroll {
302
180
  "optional": false,
303
181
  "docs": {
304
182
  "tags": [],
305
- "text": "Indicates if new items are currently being loaded. Used to prevent multiple `loadMore` calls."
183
+ "text": "Indicates if data is currently being loaded."
306
184
  },
307
185
  "attribute": "is-loading",
308
186
  "reflect": false,
@@ -320,7 +198,7 @@ export class LotteryInfiniteScroll {
320
198
  "optional": false,
321
199
  "docs": {
322
200
  "tags": [],
323
- "text": "Indicates if the component is currently in a refreshing state (e.g., during pull-to-refresh)."
201
+ "text": "Indicates if the content is currently being refreshed (pull-to-refresh)."
324
202
  },
325
203
  "attribute": "is-refreshing",
326
204
  "reflect": false,
@@ -338,30 +216,12 @@ export class LotteryInfiniteScroll {
338
216
  "optional": false,
339
217
  "docs": {
340
218
  "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."
219
+ "text": "The IntersectionObserver's rootMargin.\nDefines the distance from the bottom of the scroll container to trigger the `loadMore` event.\nE.g., '0px 0px 200px 0px' triggers when 200px from the bottom."
342
220
  },
343
221
  "attribute": "threshold",
344
222
  "reflect": false,
345
223
  "defaultValue": "'0px 0px 200px 0px'"
346
224
  },
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
225
  "containerHeight": {
366
226
  "type": "string",
367
227
  "mutable": false,
@@ -374,30 +234,12 @@ export class LotteryInfiniteScroll {
374
234
  "optional": false,
375
235
  "docs": {
376
236
  "tags": [],
377
- "text": "Container height. If `enableVirtualScroll` is true,\nit is recommended to explicitly set the container height in CSS\nor pass this value."
237
+ "text": "The height of the scrollable container."
378
238
  },
379
239
  "attribute": "container-height",
380
240
  "reflect": false,
381
241
  "defaultValue": "'100%'"
382
242
  },
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
243
  "renderItem": {
402
244
  "type": "unknown",
403
245
  "mutable": false,
@@ -409,8 +251,17 @@ export class LotteryInfiniteScroll {
409
251
  "required": false,
410
252
  "optional": false,
411
253
  "docs": {
412
- "tags": [],
413
- "text": "Render function"
254
+ "tags": [{
255
+ "name": "param",
256
+ "text": "item - The data item to render."
257
+ }, {
258
+ "name": "param",
259
+ "text": "index - The index of the item."
260
+ }, {
261
+ "name": "returns",
262
+ "text": "The VNode for the item."
263
+ }],
264
+ "text": "A function that renders a single item in the list."
414
265
  }
415
266
  },
416
267
  "renderSkeleton": {
@@ -424,8 +275,14 @@ export class LotteryInfiniteScroll {
424
275
  "required": false,
425
276
  "optional": false,
426
277
  "docs": {
427
- "tags": [],
428
- "text": "Render function for skeleton item"
278
+ "tags": [{
279
+ "name": "param",
280
+ "text": "index - The index of the skeleton item."
281
+ }, {
282
+ "name": "returns",
283
+ "text": "The VNode for the skeleton item."
284
+ }],
285
+ "text": "A function that renders a skeleton item for initial loading or when no data is available."
429
286
  }
430
287
  },
431
288
  "skeletonCount": {
@@ -439,8 +296,11 @@ export class LotteryInfiniteScroll {
439
296
  "required": false,
440
297
  "optional": false,
441
298
  "docs": {
442
- "tags": [],
443
- "text": "Number of skeleton items to show during initial load"
299
+ "tags": [{
300
+ "name": "default",
301
+ "text": "6"
302
+ }],
303
+ "text": "The number of skeleton items to display during initial loading."
444
304
  },
445
305
  "attribute": "skeleton-count",
446
306
  "reflect": false,
@@ -457,8 +317,11 @@ export class LotteryInfiniteScroll {
457
317
  "required": false,
458
318
  "optional": false,
459
319
  "docs": {
460
- "tags": [],
461
- "text": "Pull-to-refresh trigger distance"
320
+ "tags": [{
321
+ "name": "default",
322
+ "text": "60"
323
+ }],
324
+ "text": "The distance (in pixels) the user needs to pull down to trigger a refresh."
462
325
  },
463
326
  "attribute": "pull-trigger-distance",
464
327
  "reflect": false,
@@ -475,8 +338,11 @@ export class LotteryInfiniteScroll {
475
338
  "required": false,
476
339
  "optional": false,
477
340
  "docs": {
478
- "tags": [],
479
- "text": "Grid layout configuration: minimum column width\nUsed with CSS Grid to achieve responsiveness: repeat(auto-fill, minmax(minItemWidth, 1fr))"
341
+ "tags": [{
342
+ "name": "default",
343
+ "text": "340"
344
+ }],
345
+ "text": "For Grid layout: The minimum width (in pixels) for each item.\nUsed with CSS Grid's `auto-fill` to determine column count."
480
346
  },
481
347
  "attribute": "min-item-width",
482
348
  "reflect": false,
@@ -493,8 +359,11 @@ export class LotteryInfiniteScroll {
493
359
  "required": false,
494
360
  "optional": false,
495
361
  "docs": {
496
- "tags": [],
497
- "text": "Grid spacing (px)"
362
+ "tags": [{
363
+ "name": "default",
364
+ "text": "10"
365
+ }],
366
+ "text": "For Grid layout: The gap (in pixels) between grid items."
498
367
  },
499
368
  "attribute": "grid-gap",
500
369
  "reflect": false,
@@ -504,10 +373,7 @@ export class LotteryInfiniteScroll {
504
373
  }
505
374
  static get states() {
506
375
  return {
507
- "visibleStartIndex": {},
508
- "visibleEndIndex": {},
509
- "pullDistance": {},
510
- "columns": {}
376
+ "pullDistance": {}
511
377
  };
512
378
  }
513
379
  static get events() {
@@ -519,7 +385,7 @@ export class LotteryInfiniteScroll {
519
385
  "composed": true,
520
386
  "docs": {
521
387
  "tags": [],
522
- "text": "Emitted when the user scrolls near the end of the list, indicating that more items should be loaded."
388
+ "text": "Emitted when the user scrolls near the bottom of the list,\nindicating that more data should be loaded."
523
389
  },
524
390
  "complexType": {
525
391
  "original": "void",
@@ -534,7 +400,7 @@ export class LotteryInfiniteScroll {
534
400
  "composed": true,
535
401
  "docs": {
536
402
  "tags": [],
537
- "text": "Emitted when the pull-to-refresh action is triggered by the user."
403
+ "text": "Emitted when the user performs a pull-to-refresh action."
538
404
  },
539
405
  "complexType": {
540
406
  "original": "void",
@@ -546,9 +412,6 @@ export class LotteryInfiniteScroll {
546
412
  static get elementRef() { return "el"; }
547
413
  static get watchers() {
548
414
  return [{
549
- "propName": "items",
550
- "methodName": "handleItemsChange"
551
- }, {
552
415
  "propName": "isRefreshing",
553
416
  "methodName": "handleRefreshingChange"
554
417
  }];
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as LotteryHakunaTicketHistory } from './lottery-hakuna-ticket-history-cdab50d9.js';
1
+ export { L as LotteryHakunaTicketHistory } from './lottery-hakuna-ticket-history-4cb107bf.js';
2
2
  import './index-50addd47.js';
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-0f993ce5.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["lottery-button_8",[[1,"lottery-hakuna-ticket-history",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"endpoint":[513],"gameId":[513,"game-id"],"playerId":[514,"player-id"],"sessionId":[513,"session-id"],"scrollThreshold":[1,"scroll-threshold"],"scrollItemHeight":[2,"scroll-item-height"],"scrollContainerHeight":[2,"scroll-container-height"],"ticketHistoryTitle":[1,"ticket-history-title"],"ticketHistoryItemImageSrc":[1,"ticket-history-item-image-src"],"ticketHistoryItemName":[1,"ticket-history-item-name"],"ticketHistoryItemCurrency":[1,"ticket-history-item-currency"],"listLoadingText":[1,"list-loading-text"],"listRefreshingText":[1,"list-refreshing-text"],"listEndText":[1,"list-end-text"],"limit":[2],"minItemWidth":[2,"min-item-width"],"showSkeleton":[4,"show-skeleton"],"visibleTickets":[32],"hasMore":[32],"isLoading":[32],"isRefreshing":[32],"errorMessage":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-hakuna-ticket-history-item",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"historyItemName":[1,"history-item-name"],"historyItemImageSrc":[1,"history-item-image-src"],"ticketId":[8,"ticket-id"],"totalAmount":[1,"total-amount"],"date":[1],"time":[1],"selectedNumbers":[1,"selected-numbers"],"showSkeleton":[4,"show-skeleton"],"selectedNumbersCount":[2,"selected-numbers-count"]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-infinite-scroll",{"items":[16],"hasMore":[4,"has-more"],"isLoading":[4,"is-loading"],"isRefreshing":[4,"is-refreshing"],"threshold":[1],"estimatedItemHeight":[2,"estimated-item-height"],"containerHeight":[1,"container-height"],"enableVirtualScroll":[4,"enable-virtual-scroll"],"renderItem":[16],"renderSkeleton":[16],"skeletonCount":[2,"skeleton-count"],"pullTriggerDistance":[2,"pull-trigger-distance"],"minItemWidth":[2,"min-item-width"],"gridGap":[2,"grid-gap"],"visibleStartIndex":[32],"visibleEndIndex":[32],"pullDistance":[32],"columns":[32]},null,{"items":["handleItemsChange"],"isRefreshing":["handleRefreshingChange"]}],[1,"lottery-selection-group",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"splitToken":[513,"split-token"],"selectionGroupId":[513,"selection-group-id"],"selectionGroupLabel":[513,"selection-group-label"],"type":[513],"selectedBulletTexts":[513,"selected-bullet-texts"],"maxSelectedCount":[514,"max-selected-count"],"maxDisplayBulletsCount":[514,"max-display-bullets-count"],"bulletTexts":[513,"bullet-texts"],"maxIntegerBulletText":[514,"max-integer-bullet-text"],"minIntegerBulletText":[514,"min-integer-bullet-text"],"bulletTextType":[513,"bullet-text-type"],"hasBorder":[516,"has-border"],"hasBackground":[516,"has-background"],"dialogTitle":[513,"dialog-title"],"dialogInputPlaceholder":[513,"dialog-input-placeholder"],"dialogConfig":[32],"inputInfo":[32]},[[0,"lotteryBulletClick","lotteryBulletClickHandler"]],{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}],[1,"lottery-button",{"variant":[513],"size":[513],"color":[513],"disabled":[516],"loading":[516],"text":[513],"mbSource":[513,"mb-source"],"language":[513],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"ripples":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-selection",{"value":[520],"text":[513],"idx":[514],"type":[513],"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"hasBorder":[516,"has-border"],"hasBackground":[516,"has-background"],"deleteIconSvg":[513,"delete-icon-svg"],"deleteIconWidth":[513,"delete-icon-width"],"deleteIconHeight":[513,"delete-icon-height"]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-tipping-dialog",{"mbSource":[1,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"visible":[516],"dialogTitle":[1,"dialog-title"],"width":[1],"closable":[4],"mask":[4],"maskClosable":[4,"mask-closable"],"animationDuration":[2,"animation-duration"],"fullscreen":[4],"showFooter":[4,"show-footer"],"showCancelBtn":[4,"show-cancel-btn"],"language":[513],"translationUrl":[520,"translation-url"],"dialogClass":[1,"dialog-class"],"dialogStyle":[16]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
8
+ return bootstrapLazy([["lottery-button_8",[[1,"lottery-hakuna-ticket-history",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"endpoint":[513],"gameId":[513,"game-id"],"playerId":[514,"player-id"],"sessionId":[513,"session-id"],"scrollThreshold":[1,"scroll-threshold"],"scrollContainerHeight":[2,"scroll-container-height"],"ticketHistoryTitle":[1,"ticket-history-title"],"ticketHistoryItemImageSrc":[1,"ticket-history-item-image-src"],"ticketHistoryItemName":[1,"ticket-history-item-name"],"ticketHistoryItemCurrency":[1,"ticket-history-item-currency"],"listLoadingText":[1,"list-loading-text"],"listRefreshingText":[1,"list-refreshing-text"],"listEndText":[1,"list-end-text"],"limit":[2],"minItemWidth":[2,"min-item-width"],"showSkeleton":[4,"show-skeleton"],"visibleTickets":[32],"hasMore":[32],"isLoading":[32],"isRefreshing":[32],"errorMessage":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-hakuna-ticket-history-item",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"historyItemName":[1,"history-item-name"],"historyItemImageSrc":[1,"history-item-image-src"],"ticketId":[8,"ticket-id"],"totalAmount":[1,"total-amount"],"date":[1],"time":[1],"selectedNumbers":[1,"selected-numbers"],"showSkeleton":[4,"show-skeleton"],"selectedNumbersCount":[2,"selected-numbers-count"]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-infinite-scroll",{"items":[16],"hasMore":[4,"has-more"],"isLoading":[4,"is-loading"],"isRefreshing":[4,"is-refreshing"],"threshold":[1],"containerHeight":[1,"container-height"],"renderItem":[16],"renderSkeleton":[16],"skeletonCount":[2,"skeleton-count"],"pullTriggerDistance":[2,"pull-trigger-distance"],"minItemWidth":[2,"min-item-width"],"gridGap":[2,"grid-gap"],"pullDistance":[32]},null,{"isRefreshing":["handleRefreshingChange"]}],[1,"lottery-selection-group",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[513],"translationUrl":[513,"translation-url"],"splitToken":[513,"split-token"],"selectionGroupId":[513,"selection-group-id"],"selectionGroupLabel":[513,"selection-group-label"],"type":[513],"selectedBulletTexts":[513,"selected-bullet-texts"],"maxSelectedCount":[514,"max-selected-count"],"maxDisplayBulletsCount":[514,"max-display-bullets-count"],"bulletTexts":[513,"bullet-texts"],"maxIntegerBulletText":[514,"max-integer-bullet-text"],"minIntegerBulletText":[514,"min-integer-bullet-text"],"bulletTextType":[513,"bullet-text-type"],"hasBorder":[516,"has-border"],"hasBackground":[516,"has-background"],"dialogTitle":[513,"dialog-title"],"dialogInputPlaceholder":[513,"dialog-input-placeholder"],"dialogConfig":[32],"inputInfo":[32]},[[0,"lotteryBulletClick","lotteryBulletClickHandler"]],{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}],[1,"lottery-button",{"variant":[513],"size":[513],"color":[513],"disabled":[516],"loading":[516],"text":[513],"mbSource":[513,"mb-source"],"language":[513],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"ripples":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-selection",{"value":[520],"text":[513],"idx":[514],"type":[513],"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"hasBorder":[516,"has-border"],"hasBackground":[516,"has-background"],"deleteIconSvg":[513,"delete-icon-svg"],"deleteIconWidth":[513,"delete-icon-width"],"deleteIconHeight":[513,"delete-icon-height"]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}],[1,"lottery-tipping-dialog",{"mbSource":[1,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"visible":[516],"dialogTitle":[1,"dialog-title"],"width":[1],"closable":[4],"mask":[4],"maskClosable":[4,"mask-closable"],"animationDuration":[2,"animation-duration"],"fullscreen":[4],"showFooter":[4,"show-footer"],"showCancelBtn":[4,"show-cancel-btn"],"language":[513],"translationUrl":[520,"translation-url"],"dialogClass":[1,"dialog-class"],"dialogStyle":[16]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };