@energy8platform/platform-core 0.25.3 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/game-spec.d.ts +3 -0
- package/dist/index.cjs.js +1785 -212
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +83 -12
- package/dist/index.esm.js +1785 -212
- package/dist/index.esm.js.map +1 -1
- package/dist/loading.cjs.js +237 -90
- package/dist/loading.cjs.js.map +1 -1
- package/dist/loading.d.ts +52 -2
- package/dist/loading.esm.js +235 -90
- package/dist/loading.esm.js.map +1 -1
- package/dist/shell.cjs.js +1552 -122
- package/dist/shell.cjs.js.map +1 -1
- package/dist/shell.d.ts +49 -14
- package/dist/shell.esm.js +1551 -123
- package/dist/shell.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/game-spec/types.ts +3 -0
- package/src/loading/CSSPreloader.ts +21 -115
- package/src/loading/index.ts +6 -0
- package/src/loading/variants/energy8.ts +105 -0
- package/src/loading/variants/index.ts +19 -0
- package/src/loading/variants/types.ts +36 -0
- package/src/loading/variants/voidmoon.ts +134 -0
- package/src/shell/GameShell.ts +118 -74
- package/src/shell/components/BuyBonus.ts +157 -14
- package/src/shell/components/GameInfo.ts +104 -5
- package/src/shell/components/Settings.ts +9 -10
- package/src/shell/components/pickers.ts +66 -10
- package/src/shell/components/primitives.ts +4 -3
- package/src/shell/i18n.ts +23 -0
- package/src/shell/index.ts +2 -1
- package/src/shell/keyboard.ts +229 -0
- package/src/shell/locales.ts +864 -0
- package/src/shell/shell.css.ts +20 -3
- package/src/shell/types.ts +8 -0
- package/src/shell/version.ts +1 -1
- package/src/types.ts +8 -0
package/dist/loading.esm.js
CHANGED
|
@@ -34,7 +34,7 @@ const GRADIENT_DEFS = `
|
|
|
34
34
|
<stop stop-color="#316FB0"/><stop stop-color="#1FCDE6" offset=".5"/><stop stop-color="#29FEE7" offset="1"/>
|
|
35
35
|
</linearGradient>`;
|
|
36
36
|
/** Max width of the loader bar in SVG units */
|
|
37
|
-
const LOADER_BAR_MAX_WIDTH = 174;
|
|
37
|
+
const LOADER_BAR_MAX_WIDTH$1 = 174;
|
|
38
38
|
/**
|
|
39
39
|
* Build the Energy8 SVG logo with a loader bar, using unique IDs.
|
|
40
40
|
*
|
|
@@ -67,61 +67,27 @@ ${defs}
|
|
|
67
67
|
</svg>`;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
const RECT_ID = 'ge-pl-loader-rect';
|
|
72
|
-
const TEXT_ID = 'ge-pl-loader-text';
|
|
73
|
-
const
|
|
74
|
-
const LOGO_SVG = buildLogoSVG({
|
|
70
|
+
/** Element ids the lifecycle handle binds to (also asserted by tests). */
|
|
71
|
+
const RECT_ID$1 = 'ge-pl-loader-rect';
|
|
72
|
+
const TEXT_ID$1 = 'ge-pl-loader-text';
|
|
73
|
+
const LOGO_SVG$1 = buildLogoSVG({
|
|
75
74
|
idPrefix: 'pl',
|
|
76
75
|
svgClass: 'ge-logo-svg',
|
|
77
76
|
clipRectClass: 'ge-clip-rect',
|
|
78
|
-
clipRectId: RECT_ID,
|
|
77
|
+
clipRectId: RECT_ID$1,
|
|
79
78
|
textClass: 'ge-preloader-svg-text',
|
|
80
|
-
textId: TEXT_ID,
|
|
79
|
+
textId: TEXT_ID$1,
|
|
81
80
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return
|
|
86
|
-
return Math.max(0, Math.min(1, p));
|
|
87
|
-
}
|
|
88
|
-
function createCSSPreloader(container, config) {
|
|
89
|
-
if (document.getElementById(PRELOADER_ID))
|
|
90
|
-
return;
|
|
91
|
-
const bgColor = typeof config?.backgroundColor === 'string'
|
|
92
|
-
? config.backgroundColor
|
|
93
|
-
: typeof config?.backgroundColor === 'number'
|
|
94
|
-
? `#${config.backgroundColor.toString(16).padStart(6, '0')}`
|
|
95
|
-
: '#0a0a1a';
|
|
96
|
-
const bgGradient = config?.backgroundGradient ?? `linear-gradient(135deg, ${bgColor} 0%, #1a1a3e 100%)`;
|
|
97
|
-
const customHTML = config?.cssPreloaderHTML ?? '';
|
|
98
|
-
const overlay = document.createElement('div');
|
|
99
|
-
overlay.id = PRELOADER_ID;
|
|
100
|
-
overlay.innerHTML = customHTML || `
|
|
81
|
+
/** The default Energy8-branded preloader: animated wordmark + shimmering loader bar. */
|
|
82
|
+
const energy8Variant = {
|
|
83
|
+
buildContentHTML() {
|
|
84
|
+
return `
|
|
101
85
|
<div class="ge-preloader-content">
|
|
102
|
-
${LOGO_SVG}
|
|
86
|
+
${LOGO_SVG$1}
|
|
103
87
|
</div>
|
|
104
88
|
`;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
#${PRELOADER_ID} {
|
|
108
|
-
position: absolute;
|
|
109
|
-
top: 0; left: 0;
|
|
110
|
-
width: 100%; height: 100%;
|
|
111
|
-
background: ${bgGradient};
|
|
112
|
-
display: flex;
|
|
113
|
-
align-items: center;
|
|
114
|
-
justify-content: center;
|
|
115
|
-
z-index: 10000;
|
|
116
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
117
|
-
transition: opacity 0.4s ease-out;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
#${PRELOADER_ID}.ge-preloader-hidden {
|
|
121
|
-
opacity: 0;
|
|
122
|
-
pointer-events: none;
|
|
123
|
-
}
|
|
124
|
-
|
|
89
|
+
},
|
|
90
|
+
css: `
|
|
125
91
|
.ge-preloader-content {
|
|
126
92
|
display: flex;
|
|
127
93
|
flex-direction: column;
|
|
@@ -172,6 +138,219 @@ function createCSSPreloader(container, config) {
|
|
|
172
138
|
0%, 100% { opacity: 0.5; }
|
|
173
139
|
50% { opacity: 1; }
|
|
174
140
|
}
|
|
141
|
+
`,
|
|
142
|
+
mount(overlay) {
|
|
143
|
+
const rectEl = overlay.querySelector(`#${RECT_ID$1}`);
|
|
144
|
+
const textEl = overlay.querySelector(`#${TEXT_ID$1}`);
|
|
145
|
+
// Custom HTML mode (or missing logo) — no progress target; lifecycle inert.
|
|
146
|
+
if (!rectEl || !textEl)
|
|
147
|
+
return null;
|
|
148
|
+
let driven = false;
|
|
149
|
+
return {
|
|
150
|
+
setProgress(p, showPercentage) {
|
|
151
|
+
if (!driven) {
|
|
152
|
+
rectEl.classList.add('driven');
|
|
153
|
+
driven = true;
|
|
154
|
+
}
|
|
155
|
+
rectEl.setAttribute('width', String(p * LOADER_BAR_MAX_WIDTH$1));
|
|
156
|
+
if (showPercentage) {
|
|
157
|
+
textEl.textContent = `${Math.round(p * 100)}%`;
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
showTapText(text) {
|
|
161
|
+
textEl.textContent = text;
|
|
162
|
+
textEl.classList.add('ge-svg-pulse');
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/** Element ids the lifecycle handle binds to. */
|
|
169
|
+
const RECT_ID = 'ge-vm-loader-rect';
|
|
170
|
+
const TEXT_ID = 'ge-vm-loader-text';
|
|
171
|
+
/** Max width (SVG units) of the voidmoon loader bar fill. Spans the first 'o' → end of the crescent. */
|
|
172
|
+
const LOADER_BAR_MAX_WIDTH = 751;
|
|
173
|
+
/**
|
|
174
|
+
* "voidmoon" wordmark — the official logo, embedded verbatim as SVG outlines:
|
|
175
|
+
* thin white letters with the final "o" of "moon" rendered as a purple crescent
|
|
176
|
+
* (#9D63FE). The glyphs live in a flipped group (`translate(0,941) scale(1,-1)`)
|
|
177
|
+
* exactly as exported; the loader bar + status text are added beneath it in the
|
|
178
|
+
* outer (un-flipped) viewBox space.
|
|
179
|
+
*/
|
|
180
|
+
const LOGO_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="301 339 1075 335" class="ge-vm-logo-svg" style="overflow:visible" role="img">
|
|
181
|
+
<title>voidmoon</title>
|
|
182
|
+
<g transform="translate(0,941) scale(1,-1)">
|
|
183
|
+
<g fill="#ffffff" fill-rule="evenodd">
|
|
184
|
+
<path d="M627 562 c-4 -2 -7 -6 -7 -12 0 -13 14 -18 23 -10 3 3 3 5 4 9 0 7 -2 11 -7 13 -5 2 -9 2 -13 0z"/>
|
|
185
|
+
<path d="M780 531 l0 -31 -6 5 c-14 14 -35 17 -56 10 -24 -8 -40 -28 -42 -53 0 -11 1 -19 6 -30 8 -16 22 -27 40 -32 8 -2 23 -2 31 0 18 4 34 17 42 33 2 5 4 11 5 14 1 3 1 24 1 61 l0 55 -10 0 -11 0 0 -32z m-24 -38 c20 -10 28 -31 20 -50 -3 -6 -13 -16 -19 -19 -21 -10 -45 -2 -56 18 -2 4 -2 7 -3 14 -1 14 4 24 15 33 8 6 15 8 27 8 9 -1 10 -1 16 -4z"/>
|
|
186
|
+
<path d="M520 518 c-26 -6 -45 -25 -50 -51 -1 -9 -1 -11 0 -19 3 -12 7 -21 15 -30 8 -8 16 -13 28 -17 6 -2 9 -2 19 -2 10 0 13 0 20 2 21 8 36 24 41 46 1 8 1 13 0 22 -5 23 -21 40 -44 47 -6 2 -23 3 -29 2z m29 -25 c9 -4 16 -11 20 -19 2 -5 3 -6 3 -15 0 -10 -1 -11 -3 -16 -8 -15 -23 -24 -40 -23 -9 1 -15 3 -22 8 -22 15 -21 48 2 63 7 4 14 6 24 6 8 -1 10 -1 16 -4z"/>
|
|
187
|
+
<path d="M869 518 c-21 -4 -35 -18 -40 -38 -1 -6 -1 -14 -1 -43 l1 -35 10 0 11 0 0 37 c0 33 1 38 2 41 3 7 7 11 13 14 5 2 8 3 13 3 11 0 20 -5 25 -16 l3 -5 0 -37 1 -37 10 0 10 0 0 37 c0 35 1 37 3 42 5 10 14 16 26 16 11 0 21 -7 25 -17 2 -5 2 -7 2 -41 0 -19 0 -36 1 -37 0 -1 3 -1 11 -1 l10 1 0 35 c0 23 0 38 -1 42 -2 9 -8 21 -14 27 -20 17 -51 17 -68 -1 l-5 -5 -5 5 c-9 9 -19 13 -31 14 -5 0 -10 0 -12 -1z"/>
|
|
188
|
+
<path d="M1077 517 c-9 -1 -20 -7 -27 -12 -7 -6 -14 -16 -18 -25 -4 -11 -5 -25 -3 -35 5 -21 21 -37 42 -44 38 -12 78 14 81 53 1 15 -4 31 -14 43 -14 17 -38 25 -61 20z m25 -22 c19 -5 31 -24 28 -42 -4 -26 -34 -41 -59 -29 -20 10 -27 32 -17 52 8 16 29 25 48 19z"/>
|
|
189
|
+
<path d="M1282 516 c-18 -5 -34 -21 -38 -39 -1 -4 -1 -18 -1 -40 l1 -35 10 -1 10 0 0 32 c0 20 0 35 1 38 2 11 8 18 18 23 7 3 18 3 26 0 6 -3 12 -9 15 -16 2 -4 3 -6 3 -40 l1 -36 10 0 11 0 0 33 c0 38 0 43 -6 54 -7 14 -19 24 -34 28 -7 1 -20 1 -27 -1z"/>
|
|
190
|
+
<path d="M329 515 c0 -1 2 -5 4 -9 2 -5 13 -28 24 -53 12 -24 21 -45 22 -46 2 -4 10 -7 15 -7 4 0 11 3 13 6 3 2 50 105 50 108 0 1 -3 1 -11 1 l-11 0 -7 -14 c-3 -8 -12 -28 -20 -45 -7 -17 -13 -31 -14 -31 -1 -1 -3 5 -17 35 -19 43 -23 53 -24 54 -1 1 -5 1 -13 1 -6 0 -11 0 -11 0z"/>
|
|
191
|
+
<path d="M623 514 c0 -1 0 -26 0 -57 l1 -55 10 0 10 0 0 56 0 57 -10 0 c-7 0 -10 0 -11 -1z"/>
|
|
192
|
+
</g>
|
|
193
|
+
<g fill="#9D63FE" fill-rule="evenodd">
|
|
194
|
+
<path d="M1150 515 c-3 0 -6 -1 -6 -1 0 -1 2 -2 5 -2 10 -4 26 -17 31 -27 11 -21 8 -44 -7 -62 -5 -7 -17 -16 -24 -18 -3 -1 -5 -2 -4 -2 0 -2 16 -3 24 -3 35 3 59 40 49 74 -2 8 -7 18 -13 24 -5 6 -15 13 -23 16 -8 3 -24 4 -32 1z"/>
|
|
195
|
+
</g>
|
|
196
|
+
</g>
|
|
197
|
+
|
|
198
|
+
<rect x="469" y="600" width="751" height="9" rx="4.5" fill="rgba(255,255,255,0.12)"/>
|
|
199
|
+
<clipPath id="vm-loader-clip">
|
|
200
|
+
<rect id="${RECT_ID}" x="469" y="600" width="0" height="9" rx="4.5" class="ge-vm-clip-rect"/>
|
|
201
|
+
</clipPath>
|
|
202
|
+
<rect x="469" y="600" width="751" height="9" rx="4.5" fill="#9D63FE" clip-path="url(#vm-loader-clip)"/>
|
|
203
|
+
|
|
204
|
+
<text id="${TEXT_ID}" x="844.5" y="650" text-anchor="middle" class="ge-vm-text">Loading...</text>
|
|
205
|
+
</svg>`;
|
|
206
|
+
const voidmoonVariant = {
|
|
207
|
+
buildContentHTML() {
|
|
208
|
+
return `
|
|
209
|
+
<div class="ge-vm-content">
|
|
210
|
+
${LOGO_SVG}
|
|
211
|
+
</div>
|
|
212
|
+
`;
|
|
213
|
+
},
|
|
214
|
+
css: `
|
|
215
|
+
.ge-vm-content {
|
|
216
|
+
display: flex;
|
|
217
|
+
flex-direction: column;
|
|
218
|
+
align-items: center;
|
|
219
|
+
width: 82%;
|
|
220
|
+
max-width: 680px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.ge-vm-logo-svg {
|
|
224
|
+
width: 100%;
|
|
225
|
+
height: auto;
|
|
226
|
+
filter: drop-shadow(0 0 26px rgba(157, 99, 254, 0.3));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Shimmer the loader bar while waiting */
|
|
230
|
+
.ge-vm-clip-rect {
|
|
231
|
+
animation: ge-vm-fill 2s ease-in-out infinite;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
@keyframes ge-vm-fill {
|
|
235
|
+
0% { width: 0; }
|
|
236
|
+
50% { width: 751; }
|
|
237
|
+
100% { width: 0; }
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Stop shimmer once JS-driven progress takes over. */
|
|
241
|
+
.ge-vm-clip-rect.driven {
|
|
242
|
+
animation: none;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.ge-vm-text {
|
|
246
|
+
fill: rgba(255, 255, 255, 0.6);
|
|
247
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
248
|
+
font-size: 20px;
|
|
249
|
+
font-weight: 600;
|
|
250
|
+
letter-spacing: 3px;
|
|
251
|
+
animation: ge-vm-pulse 1.5s ease-in-out infinite;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
@keyframes ge-vm-pulse {
|
|
255
|
+
0%, 100% { opacity: 0.4; }
|
|
256
|
+
50% { opacity: 1; }
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* Tap-to-start CTA pulse. Compound selector outweighs the ambient
|
|
260
|
+
.ge-vm-text rule, swapping the animation cleanly. */
|
|
261
|
+
.ge-vm-text.ge-vm-tap-pulse {
|
|
262
|
+
animation: ge-vm-tap 1.2s ease-in-out infinite;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
@keyframes ge-vm-tap {
|
|
266
|
+
0%, 100% { opacity: 0.5; }
|
|
267
|
+
50% { opacity: 1; }
|
|
268
|
+
}
|
|
269
|
+
`,
|
|
270
|
+
mount(overlay) {
|
|
271
|
+
const rectEl = overlay.querySelector(`#${RECT_ID}`);
|
|
272
|
+
const textEl = overlay.querySelector(`#${TEXT_ID}`);
|
|
273
|
+
if (!rectEl || !textEl)
|
|
274
|
+
return null;
|
|
275
|
+
let driven = false;
|
|
276
|
+
return {
|
|
277
|
+
setProgress(p, showPercentage) {
|
|
278
|
+
if (!driven) {
|
|
279
|
+
rectEl.classList.add('driven');
|
|
280
|
+
driven = true;
|
|
281
|
+
}
|
|
282
|
+
rectEl.setAttribute('width', String(p * LOADER_BAR_MAX_WIDTH));
|
|
283
|
+
if (showPercentage) {
|
|
284
|
+
textEl.textContent = `${Math.round(p * 100)}%`;
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
showTapText(text) {
|
|
288
|
+
textEl.textContent = text;
|
|
289
|
+
textEl.classList.add('ge-vm-tap-pulse');
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Registry of selectable preloader variants. Add a new variant by writing a
|
|
297
|
+
* file in this folder and adding one entry here — `PreloaderVariantName` and
|
|
298
|
+
* `LoadingScreenConfig.preloaderVariant` widen automatically.
|
|
299
|
+
*/
|
|
300
|
+
const VARIANTS = {
|
|
301
|
+
energy8: energy8Variant,
|
|
302
|
+
voidmoon: voidmoonVariant,
|
|
303
|
+
};
|
|
304
|
+
/** Default variant used when `preloaderVariant` is omitted or unknown. */
|
|
305
|
+
const DEFAULT_VARIANT_NAME = 'energy8';
|
|
306
|
+
|
|
307
|
+
const PRELOADER_ID = '__ge-css-preloader__';
|
|
308
|
+
const REMOVE_FADE_TIMEOUT_MS = 600;
|
|
309
|
+
let state = null;
|
|
310
|
+
function clampProgress(p) {
|
|
311
|
+
if (!Number.isFinite(p))
|
|
312
|
+
return 0;
|
|
313
|
+
return Math.max(0, Math.min(1, p));
|
|
314
|
+
}
|
|
315
|
+
function createCSSPreloader(container, config) {
|
|
316
|
+
if (document.getElementById(PRELOADER_ID))
|
|
317
|
+
return;
|
|
318
|
+
const bgColor = typeof config?.backgroundColor === 'string'
|
|
319
|
+
? config.backgroundColor
|
|
320
|
+
: typeof config?.backgroundColor === 'number'
|
|
321
|
+
? `#${config.backgroundColor.toString(16).padStart(6, '0')}`
|
|
322
|
+
: '#0a0a1a';
|
|
323
|
+
const bgGradient = config?.backgroundGradient ?? `linear-gradient(135deg, ${bgColor} 0%, #1a1a3e 100%)`;
|
|
324
|
+
const customHTML = config?.cssPreloaderHTML ?? '';
|
|
325
|
+
// Pick the visual identity. Unknown names fall back to the default so a bad
|
|
326
|
+
// config value degrades to a working preloader rather than a blank overlay.
|
|
327
|
+
const variant = VARIANTS[config?.preloaderVariant ?? DEFAULT_VARIANT_NAME] ??
|
|
328
|
+
VARIANTS[DEFAULT_VARIANT_NAME];
|
|
329
|
+
const overlay = document.createElement('div');
|
|
330
|
+
overlay.id = PRELOADER_ID;
|
|
331
|
+
overlay.innerHTML = customHTML || variant.buildContentHTML(config);
|
|
332
|
+
const styleEl = document.createElement('style');
|
|
333
|
+
// Shared overlay infrastructure (positioning / background / fade) plus the
|
|
334
|
+
// variant's own content styling and animations.
|
|
335
|
+
styleEl.textContent = `
|
|
336
|
+
#${PRELOADER_ID} {
|
|
337
|
+
position: absolute;
|
|
338
|
+
top: 0; left: 0;
|
|
339
|
+
width: 100%; height: 100%;
|
|
340
|
+
background: ${bgGradient};
|
|
341
|
+
display: flex;
|
|
342
|
+
align-items: center;
|
|
343
|
+
justify-content: center;
|
|
344
|
+
z-index: 10000;
|
|
345
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
346
|
+
transition: opacity 0.4s ease-out;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
#${PRELOADER_ID}.ge-preloader-hidden {
|
|
350
|
+
opacity: 0;
|
|
351
|
+
pointer-events: none;
|
|
352
|
+
}
|
|
353
|
+
${variant.css}
|
|
175
354
|
`;
|
|
176
355
|
// The absolute overlay needs a positioned ancestor. Only override a STATIC container, and
|
|
177
356
|
// remember the prior inline value so removeCSSPreloader can restore it (an inline `relative`
|
|
@@ -180,41 +359,18 @@ function createCSSPreloader(container, config) {
|
|
|
180
359
|
container.style.position = container.style.position || 'relative';
|
|
181
360
|
container.appendChild(styleEl);
|
|
182
361
|
container.appendChild(overlay);
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// Custom HTML mode — no logo SVG, lifecycle API becomes mostly inert.
|
|
187
|
-
// We still record state so removeCSSPreloader works.
|
|
188
|
-
state = {
|
|
189
|
-
container,
|
|
190
|
-
prevPosition,
|
|
191
|
-
overlay,
|
|
192
|
-
styleEl,
|
|
193
|
-
rectEl: null,
|
|
194
|
-
textEl: null,
|
|
195
|
-
showPercentage: false,
|
|
196
|
-
tapToStart: config?.tapToStart !== false,
|
|
197
|
-
tapToStartText: config?.tapToStartText ?? 'TAP TO START',
|
|
198
|
-
driven: false,
|
|
199
|
-
tapState: 'idle',
|
|
200
|
-
tapPromise: null,
|
|
201
|
-
tapResolve: null,
|
|
202
|
-
tapHandler: null,
|
|
203
|
-
removed: false,
|
|
204
|
-
};
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
362
|
+
// Custom HTML bypasses the variant's content, so there is no progress target
|
|
363
|
+
// to bind to and the handle stays null (lifecycle API becomes inert).
|
|
364
|
+
const handle = customHTML ? null : variant.mount(overlay, config);
|
|
207
365
|
state = {
|
|
208
366
|
container,
|
|
209
367
|
prevPosition,
|
|
210
368
|
overlay,
|
|
211
369
|
styleEl,
|
|
212
|
-
|
|
213
|
-
textEl,
|
|
370
|
+
handle,
|
|
214
371
|
showPercentage: config?.showPercentage === true,
|
|
215
372
|
tapToStart: config?.tapToStart !== false,
|
|
216
373
|
tapToStartText: config?.tapToStartText ?? 'TAP TO START',
|
|
217
|
-
driven: false,
|
|
218
374
|
tapState: 'idle',
|
|
219
375
|
tapPromise: null,
|
|
220
376
|
tapResolve: null,
|
|
@@ -227,17 +383,9 @@ function setCSSPreloaderProgress(progress) {
|
|
|
227
383
|
return;
|
|
228
384
|
if (state.tapState === 'waiting' || state.tapState === 'resolved')
|
|
229
385
|
return;
|
|
230
|
-
if (!state.
|
|
386
|
+
if (!state.handle)
|
|
231
387
|
return;
|
|
232
|
-
|
|
233
|
-
if (!state.driven) {
|
|
234
|
-
state.rectEl.classList.add('driven');
|
|
235
|
-
state.driven = true;
|
|
236
|
-
}
|
|
237
|
-
state.rectEl.setAttribute('width', String(p * LOADER_BAR_MAX_WIDTH));
|
|
238
|
-
if (state.showPercentage && state.textEl) {
|
|
239
|
-
state.textEl.textContent = `${Math.round(p * 100)}%`;
|
|
240
|
-
}
|
|
388
|
+
state.handle.setProgress(clampProgress(progress), state.showPercentage);
|
|
241
389
|
}
|
|
242
390
|
function waitCSSPreloaderTap() {
|
|
243
391
|
if (!state) {
|
|
@@ -249,10 +397,7 @@ function waitCSSPreloaderTap() {
|
|
|
249
397
|
return Promise.resolve();
|
|
250
398
|
if (state.tapPromise)
|
|
251
399
|
return state.tapPromise;
|
|
252
|
-
|
|
253
|
-
state.textEl.textContent = state.tapToStartText;
|
|
254
|
-
state.textEl.classList.add('ge-svg-pulse');
|
|
255
|
-
}
|
|
400
|
+
state.handle?.showTapText(state.tapToStartText);
|
|
256
401
|
state.overlay.style.cursor = 'pointer';
|
|
257
402
|
state.tapState = 'waiting';
|
|
258
403
|
state.tapPromise = new Promise((resolve) => {
|
|
@@ -306,5 +451,5 @@ function removeCSSPreloader(_container) {
|
|
|
306
451
|
});
|
|
307
452
|
}
|
|
308
453
|
|
|
309
|
-
export { LOADER_BAR_MAX_WIDTH, buildLogoSVG, createCSSPreloader, removeCSSPreloader, setCSSPreloaderProgress, waitCSSPreloaderTap };
|
|
454
|
+
export { DEFAULT_VARIANT_NAME, LOADER_BAR_MAX_WIDTH$1 as LOADER_BAR_MAX_WIDTH, VARIANTS, buildLogoSVG, createCSSPreloader, removeCSSPreloader, setCSSPreloaderProgress, waitCSSPreloaderTap };
|
|
310
455
|
//# sourceMappingURL=loading.esm.js.map
|
package/dist/loading.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading.esm.js","sources":["../src/loading/logo.ts","../src/loading/CSSPreloader.ts"],"sourcesContent":[null,null],"names":[],"mappings":"AAAA;;;;;;;AAOG;AAEH;AACA,MAAM,cAAc,GAAG;;;;;+XAKwW;AAE/X;AACA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;sBAkBA;AAEtB;AACO,
|
|
1
|
+
{"version":3,"file":"loading.esm.js","sources":["../src/loading/logo.ts","../src/loading/variants/energy8.ts","../src/loading/variants/voidmoon.ts","../src/loading/variants/index.ts","../src/loading/CSSPreloader.ts"],"sourcesContent":[null,null,null,null,null],"names":["LOADER_BAR_MAX_WIDTH","RECT_ID","TEXT_ID","LOGO_SVG"],"mappings":"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"}
|