@emkodev/emroute 1.8.0 → 1.8.2-beta.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/core/server/emroute.server.ts +50 -20
- package/dist/core/server/emroute.server.js +37 -19
- package/dist/core/server/emroute.server.js.map +1 -1
- package/dist/emroute.js +177 -32
- package/dist/emroute.js.map +7 -7
- package/dist/runtime/abstract.runtime.js +7 -3
- package/dist/runtime/abstract.runtime.js.map +1 -1
- package/dist/runtime/fetch.runtime.js +7 -1
- package/dist/runtime/fetch.runtime.js.map +1 -1
- package/dist/server/build.util.d.ts +1 -1
- package/dist/server/build.util.js +10 -28
- package/dist/server/build.util.js.map +1 -1
- package/dist/src/overlay/mod.d.ts +1 -1
- package/dist/src/overlay/overlay.service.js +136 -6
- package/dist/src/overlay/overlay.service.js.map +1 -1
- package/dist/src/overlay/overlay.type.d.ts +28 -4
- package/dist/src/renderer/spa/emroute.app.js +10 -2
- package/dist/src/renderer/spa/emroute.app.js.map +1 -1
- package/package.json +2 -2
- package/runtime/abstract.runtime.ts +11 -5
- package/runtime/fetch.runtime.ts +6 -1
- package/server/build.util.ts +10 -30
- package/src/overlay/mod.ts +1 -1
- package/src/overlay/overlay.service.ts +158 -8
- package/src/overlay/overlay.type.ts +27 -2
- package/src/renderer/spa/emroute.app.ts +8 -2
|
@@ -88,14 +88,17 @@ export class Emroute {
|
|
|
88
88
|
|
|
89
89
|
// ── Widgets ───────────────────────────────────────────────────────
|
|
90
90
|
|
|
91
|
-
let widgets: WidgetRegistry | undefined
|
|
91
|
+
let widgets: WidgetRegistry | undefined;
|
|
92
92
|
|
|
93
93
|
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
94
94
|
if (widgetsResponse.status !== 404) {
|
|
95
95
|
const entries: WidgetManifestEntry[] = await widgetsResponse.json();
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
widgets = await Emroute.importWidgets(entries, runtime);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (config.widgets) {
|
|
100
|
+
if (!widgets) widgets = new WidgetRegistry();
|
|
101
|
+
for (const w of config.widgets) widgets.add(w);
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
// ── Renderers ─────────────────────────────────────────────────────
|
|
@@ -118,11 +121,7 @@ export class Emroute {
|
|
|
118
121
|
|
|
119
122
|
const title = config.title ?? 'emroute';
|
|
120
123
|
const shellBase = (spa === 'root' || spa === 'only') ? appBase : htmlBase;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if ((await runtime.query('/main.css')).status !== 404) {
|
|
124
|
-
shell = shell.replace('</head>', ' <link rel="stylesheet" href="/main.css">\n</head>');
|
|
125
|
-
}
|
|
124
|
+
const shell = await Emroute.resolveShell(runtime, title, shellBase, spa);
|
|
126
125
|
|
|
127
126
|
return new Emroute(
|
|
128
127
|
ssrHtmlRenderer,
|
|
@@ -211,15 +210,18 @@ export class Emroute {
|
|
|
211
210
|
});
|
|
212
211
|
}
|
|
213
212
|
|
|
214
|
-
// Unhandled SSR paths in 'only' mode —
|
|
213
|
+
// Unhandled SSR paths in 'only' mode — redirect to /app/
|
|
215
214
|
if (
|
|
216
215
|
pathname.startsWith(htmlPrefix) || pathname === this.htmlBase ||
|
|
217
216
|
pathname.startsWith(mdPrefix) || pathname === this.mdBase
|
|
218
217
|
) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
218
|
+
const routePath = pathname.startsWith(htmlPrefix) ? pathname.slice(this.htmlBase.length)
|
|
219
|
+
: pathname.startsWith(mdPrefix) ? pathname.slice(this.mdBase.length)
|
|
220
|
+
: '/';
|
|
221
|
+
return Response.redirect(
|
|
222
|
+
new URL(this.appBase + routePath + (url.search || ''), url.origin),
|
|
223
|
+
302,
|
|
224
|
+
);
|
|
223
225
|
}
|
|
224
226
|
|
|
225
227
|
// Static files
|
|
@@ -277,18 +279,45 @@ export class Emroute {
|
|
|
277
279
|
return registry;
|
|
278
280
|
}
|
|
279
281
|
|
|
280
|
-
private static buildHtmlShell(
|
|
281
|
-
|
|
282
|
+
private static async buildHtmlShell(
|
|
283
|
+
runtime: Runtime,
|
|
284
|
+
title: string,
|
|
285
|
+
basePath: string,
|
|
286
|
+
spa: SpaMode,
|
|
287
|
+
): Promise<string> {
|
|
288
|
+
const baseTag = basePath ? `\n <base href="${escapeHtml(basePath)}/">` : '';
|
|
289
|
+
|
|
290
|
+
let cssTag = '';
|
|
291
|
+
if ((await runtime.query('/main.css')).status !== 404) {
|
|
292
|
+
cssTag = '\n <link rel="stylesheet" href="/main.css">';
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
const needsJs = spa !== 'none';
|
|
296
|
+
|
|
297
|
+
let importMapHtml = '';
|
|
298
|
+
if (needsJs) {
|
|
299
|
+
const mapResponse = await runtime.query('/importmap.json');
|
|
300
|
+
if (mapResponse.status !== 404) {
|
|
301
|
+
const importMap = await mapResponse.text();
|
|
302
|
+
importMapHtml = `\n <script type="importmap">\n${importMap}\n </script>`;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
let scriptHtml = '';
|
|
307
|
+
if (needsJs && (await runtime.query('/app.js')).status !== 404) {
|
|
308
|
+
scriptHtml = '\n <script type="module" src="/app.js"></script>';
|
|
309
|
+
}
|
|
310
|
+
|
|
282
311
|
return `<!DOCTYPE html>
|
|
283
312
|
<html>
|
|
284
313
|
<head>${baseTag}
|
|
285
314
|
<meta charset="utf-8">
|
|
286
315
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
287
316
|
<title>${escapeHtml(title)}</title>
|
|
288
|
-
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style
|
|
317
|
+
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style>${cssTag}
|
|
289
318
|
</head>
|
|
290
319
|
<body>
|
|
291
|
-
<router-slot></router-slot
|
|
320
|
+
<router-slot></router-slot>${importMapHtml}${scriptHtml}
|
|
292
321
|
</body>
|
|
293
322
|
</html>`;
|
|
294
323
|
}
|
|
@@ -315,10 +344,11 @@ export class Emroute {
|
|
|
315
344
|
private static async resolveShell(
|
|
316
345
|
runtime: Runtime,
|
|
317
346
|
title: string,
|
|
318
|
-
|
|
347
|
+
basePath: string,
|
|
348
|
+
spa: SpaMode,
|
|
319
349
|
): Promise<string> {
|
|
320
350
|
const response = await runtime.query('/index.html');
|
|
321
351
|
if (response.status !== 404) return await response.text();
|
|
322
|
-
return Emroute.buildHtmlShell(title,
|
|
352
|
+
return Emroute.buildHtmlShell(runtime, title, basePath, spa);
|
|
323
353
|
}
|
|
324
354
|
}
|
|
@@ -54,13 +54,17 @@ export class Emroute {
|
|
|
54
54
|
...(config.moduleLoaders ? { moduleLoaders: config.moduleLoaders } : {}),
|
|
55
55
|
});
|
|
56
56
|
// ── Widgets ───────────────────────────────────────────────────────
|
|
57
|
-
let widgets
|
|
57
|
+
let widgets;
|
|
58
58
|
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
59
59
|
if (widgetsResponse.status !== 404) {
|
|
60
60
|
const entries = await widgetsResponse.json();
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
widgets = await Emroute.importWidgets(entries, runtime);
|
|
62
|
+
}
|
|
63
|
+
if (config.widgets) {
|
|
64
|
+
if (!widgets)
|
|
65
|
+
widgets = new WidgetRegistry();
|
|
66
|
+
for (const w of config.widgets)
|
|
67
|
+
widgets.add(w);
|
|
64
68
|
}
|
|
65
69
|
// ── Renderers ─────────────────────────────────────────────────────
|
|
66
70
|
let ssrHtmlRenderer = null;
|
|
@@ -77,10 +81,7 @@ export class Emroute {
|
|
|
77
81
|
// ── HTML shell ────────────────────────────────────────────────────
|
|
78
82
|
const title = config.title ?? 'emroute';
|
|
79
83
|
const shellBase = (spa === 'root' || spa === 'only') ? appBase : htmlBase;
|
|
80
|
-
|
|
81
|
-
if ((await runtime.query('/main.css')).status !== 404) {
|
|
82
|
-
shell = shell.replace('</head>', ' <link rel="stylesheet" href="/main.css">\n</head>');
|
|
83
|
-
}
|
|
84
|
+
const shell = await Emroute.resolveShell(runtime, title, shellBase, spa);
|
|
84
85
|
return new Emroute(ssrHtmlRenderer, ssrMdRenderer, shell, runtime, htmlBase, mdBase, appBase, spa, title);
|
|
85
86
|
}
|
|
86
87
|
// ── handleRequest ─────────────────────────────────────────────────
|
|
@@ -149,13 +150,13 @@ export class Emroute {
|
|
|
149
150
|
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
150
151
|
});
|
|
151
152
|
}
|
|
152
|
-
// Unhandled SSR paths in 'only' mode —
|
|
153
|
+
// Unhandled SSR paths in 'only' mode — redirect to /app/
|
|
153
154
|
if (pathname.startsWith(htmlPrefix) || pathname === this.htmlBase ||
|
|
154
155
|
pathname.startsWith(mdPrefix) || pathname === this.mdBase) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
const routePath = pathname.startsWith(htmlPrefix) ? pathname.slice(this.htmlBase.length)
|
|
157
|
+
: pathname.startsWith(mdPrefix) ? pathname.slice(this.mdBase.length)
|
|
158
|
+
: '/';
|
|
159
|
+
return Response.redirect(new URL(this.appBase + routePath + (url.search || ''), url.origin), 302);
|
|
159
160
|
}
|
|
160
161
|
// Static files
|
|
161
162
|
const lastSegment = pathname.split('/').pop() ?? '';
|
|
@@ -203,18 +204,35 @@ export class Emroute {
|
|
|
203
204
|
}
|
|
204
205
|
return registry;
|
|
205
206
|
}
|
|
206
|
-
static buildHtmlShell(title,
|
|
207
|
-
const baseTag =
|
|
207
|
+
static async buildHtmlShell(runtime, title, basePath, spa) {
|
|
208
|
+
const baseTag = basePath ? `\n <base href="${escapeHtml(basePath)}/">` : '';
|
|
209
|
+
let cssTag = '';
|
|
210
|
+
if ((await runtime.query('/main.css')).status !== 404) {
|
|
211
|
+
cssTag = '\n <link rel="stylesheet" href="/main.css">';
|
|
212
|
+
}
|
|
213
|
+
const needsJs = spa !== 'none';
|
|
214
|
+
let importMapHtml = '';
|
|
215
|
+
if (needsJs) {
|
|
216
|
+
const mapResponse = await runtime.query('/importmap.json');
|
|
217
|
+
if (mapResponse.status !== 404) {
|
|
218
|
+
const importMap = await mapResponse.text();
|
|
219
|
+
importMapHtml = `\n <script type="importmap">\n${importMap}\n </script>`;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
let scriptHtml = '';
|
|
223
|
+
if (needsJs && (await runtime.query('/app.js')).status !== 404) {
|
|
224
|
+
scriptHtml = '\n <script type="module" src="/app.js"></script>';
|
|
225
|
+
}
|
|
208
226
|
return `<!DOCTYPE html>
|
|
209
227
|
<html>
|
|
210
228
|
<head>${baseTag}
|
|
211
229
|
<meta charset="utf-8">
|
|
212
230
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
213
231
|
<title>${escapeHtml(title)}</title>
|
|
214
|
-
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style
|
|
232
|
+
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style>${cssTag}
|
|
215
233
|
</head>
|
|
216
234
|
<body>
|
|
217
|
-
<router-slot></router-slot
|
|
235
|
+
<router-slot></router-slot>${importMapHtml}${scriptHtml}
|
|
218
236
|
</body>
|
|
219
237
|
</html>`;
|
|
220
238
|
}
|
|
@@ -229,11 +247,11 @@ export class Emroute {
|
|
|
229
247
|
}
|
|
230
248
|
return html;
|
|
231
249
|
}
|
|
232
|
-
static async resolveShell(runtime, title,
|
|
250
|
+
static async resolveShell(runtime, title, basePath, spa) {
|
|
233
251
|
const response = await runtime.query('/index.html');
|
|
234
252
|
if (response.status !== 404)
|
|
235
253
|
return await response.text();
|
|
236
|
-
return Emroute.buildHtmlShell(title,
|
|
254
|
+
return Emroute.buildHtmlShell(runtime, title, basePath, spa);
|
|
237
255
|
}
|
|
238
256
|
}
|
|
239
257
|
//# sourceMappingURL=emroute.server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emroute.server.js","sourceRoot":"","sources":["../../../core/server/emroute.server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emroute.server.js","sourceRoot":"","sources":["../../../core/server/emroute.server.ts"],"names":[],"mappings":"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"}
|
package/dist/emroute.js
CHANGED
|
@@ -1430,13 +1430,17 @@ class Emroute {
|
|
|
1430
1430
|
...config.extendContext ? { contextProvider: config.extendContext } : {},
|
|
1431
1431
|
...config.moduleLoaders ? { moduleLoaders: config.moduleLoaders } : {}
|
|
1432
1432
|
});
|
|
1433
|
-
let widgets
|
|
1433
|
+
let widgets;
|
|
1434
1434
|
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
1435
1435
|
if (widgetsResponse.status !== 404) {
|
|
1436
1436
|
const entries = await widgetsResponse.json();
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1437
|
+
widgets = await Emroute.importWidgets(entries, runtime);
|
|
1438
|
+
}
|
|
1439
|
+
if (config.widgets) {
|
|
1440
|
+
if (!widgets)
|
|
1441
|
+
widgets = new WidgetRegistry;
|
|
1442
|
+
for (const w of config.widgets)
|
|
1443
|
+
widgets.add(w);
|
|
1440
1444
|
}
|
|
1441
1445
|
let ssrHtmlRenderer = null;
|
|
1442
1446
|
let ssrMdRenderer = null;
|
|
@@ -1451,11 +1455,7 @@ class Emroute {
|
|
|
1451
1455
|
}
|
|
1452
1456
|
const title = config.title ?? "emroute";
|
|
1453
1457
|
const shellBase = spa === "root" || spa === "only" ? appBase : htmlBase;
|
|
1454
|
-
|
|
1455
|
-
if ((await runtime.query("/main.css")).status !== 404) {
|
|
1456
|
-
shell = shell.replace("</head>", ` <link rel="stylesheet" href="/main.css">
|
|
1457
|
-
</head>`);
|
|
1458
|
-
}
|
|
1458
|
+
const shell = await Emroute.resolveShell(runtime, title, shellBase, spa);
|
|
1459
1459
|
return new Emroute(ssrHtmlRenderer, ssrMdRenderer, shell, runtime, htmlBase, mdBase, appBase, spa, title);
|
|
1460
1460
|
}
|
|
1461
1461
|
async handleRequest(req) {
|
|
@@ -1517,10 +1517,8 @@ class Emroute {
|
|
|
1517
1517
|
});
|
|
1518
1518
|
}
|
|
1519
1519
|
if (pathname.startsWith(htmlPrefix) || pathname === this.htmlBase || pathname.startsWith(mdPrefix) || pathname === this.mdBase) {
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
headers: { "Content-Type": "text/html; charset=utf-8" }
|
|
1523
|
-
});
|
|
1520
|
+
const routePath = pathname.startsWith(htmlPrefix) ? pathname.slice(this.htmlBase.length) : pathname.startsWith(mdPrefix) ? pathname.slice(this.mdBase.length) : "/";
|
|
1521
|
+
return Response.redirect(new URL(this.appBase + routePath + (url.search || ""), url.origin), 302);
|
|
1524
1522
|
}
|
|
1525
1523
|
const lastSegment = pathname.split("/").pop() ?? "";
|
|
1526
1524
|
if (lastSegment.includes(".")) {
|
|
@@ -1562,19 +1560,41 @@ class Emroute {
|
|
|
1562
1560
|
}
|
|
1563
1561
|
return registry;
|
|
1564
1562
|
}
|
|
1565
|
-
static buildHtmlShell(title,
|
|
1566
|
-
const baseTag =
|
|
1567
|
-
<base href="${escapeHtml(
|
|
1563
|
+
static async buildHtmlShell(runtime, title, basePath, spa) {
|
|
1564
|
+
const baseTag = basePath ? `
|
|
1565
|
+
<base href="${escapeHtml(basePath)}/">` : "";
|
|
1566
|
+
let cssTag = "";
|
|
1567
|
+
if ((await runtime.query("/main.css")).status !== 404) {
|
|
1568
|
+
cssTag = `
|
|
1569
|
+
<link rel="stylesheet" href="/main.css">`;
|
|
1570
|
+
}
|
|
1571
|
+
const needsJs = spa !== "none";
|
|
1572
|
+
let importMapHtml = "";
|
|
1573
|
+
if (needsJs) {
|
|
1574
|
+
const mapResponse = await runtime.query("/importmap.json");
|
|
1575
|
+
if (mapResponse.status !== 404) {
|
|
1576
|
+
const importMap = await mapResponse.text();
|
|
1577
|
+
importMapHtml = `
|
|
1578
|
+
<script type="importmap">
|
|
1579
|
+
${importMap}
|
|
1580
|
+
</script>`;
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1583
|
+
let scriptHtml = "";
|
|
1584
|
+
if (needsJs && (await runtime.query("/app.js")).status !== 404) {
|
|
1585
|
+
scriptHtml = `
|
|
1586
|
+
<script type="module" src="/app.js"></script>`;
|
|
1587
|
+
}
|
|
1568
1588
|
return `<!DOCTYPE html>
|
|
1569
1589
|
<html>
|
|
1570
1590
|
<head>${baseTag}
|
|
1571
1591
|
<meta charset="utf-8">
|
|
1572
1592
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
1573
1593
|
<title>${escapeHtml(title)}</title>
|
|
1574
|
-
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style
|
|
1594
|
+
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style>${cssTag}
|
|
1575
1595
|
</head>
|
|
1576
1596
|
<body>
|
|
1577
|
-
<router-slot></router-slot
|
|
1597
|
+
<router-slot></router-slot>${importMapHtml}${scriptHtml}
|
|
1578
1598
|
</body>
|
|
1579
1599
|
</html>`;
|
|
1580
1600
|
}
|
|
@@ -1589,11 +1609,11 @@ class Emroute {
|
|
|
1589
1609
|
}
|
|
1590
1610
|
return html;
|
|
1591
1611
|
}
|
|
1592
|
-
static async resolveShell(runtime, title,
|
|
1612
|
+
static async resolveShell(runtime, title, basePath, spa) {
|
|
1593
1613
|
const response = await runtime.query("/index.html");
|
|
1594
1614
|
if (response.status !== 404)
|
|
1595
1615
|
return await response.text();
|
|
1596
|
-
return Emroute.buildHtmlShell(title,
|
|
1616
|
+
return Emroute.buildHtmlShell(runtime, title, basePath, spa);
|
|
1597
1617
|
}
|
|
1598
1618
|
}
|
|
1599
1619
|
|
|
@@ -2153,11 +2173,15 @@ export const __files = { ${entries} };
|
|
|
2153
2173
|
};
|
|
2154
2174
|
const files = {};
|
|
2155
2175
|
let hasFiles = false;
|
|
2156
|
-
|
|
2176
|
+
const companionResults = await Promise.all(COMPANION_EXTENSIONS.map(async (ext) => {
|
|
2157
2177
|
const companionFile = `${name}.widget.${ext}`;
|
|
2158
2178
|
const companionPath = `${trailingDir}${name}/${companionFile}`;
|
|
2159
|
-
|
|
2160
|
-
|
|
2179
|
+
const exists = (await this.query(companionPath)).status !== 404;
|
|
2180
|
+
return { ext, exists, path: `${prefix}${name}/${companionFile}` };
|
|
2181
|
+
}));
|
|
2182
|
+
for (const { ext, exists, path } of companionResults) {
|
|
2183
|
+
if (exists) {
|
|
2184
|
+
files[ext] = path;
|
|
2161
2185
|
hasFiles = true;
|
|
2162
2186
|
}
|
|
2163
2187
|
}
|
|
@@ -2232,7 +2256,12 @@ class FetchRuntime extends Runtime {
|
|
|
2232
2256
|
const response = await fetch(url);
|
|
2233
2257
|
const js = await response.text();
|
|
2234
2258
|
const blob = new Blob([js], { type: "application/javascript" });
|
|
2235
|
-
|
|
2259
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
2260
|
+
try {
|
|
2261
|
+
return await import(__rewriteRelativeImportExtension(objectUrl));
|
|
2262
|
+
} finally {
|
|
2263
|
+
URL.revokeObjectURL(objectUrl);
|
|
2264
|
+
}
|
|
2236
2265
|
}
|
|
2237
2266
|
toUrl(resource) {
|
|
2238
2267
|
if (typeof resource === "string")
|
|
@@ -2250,9 +2279,15 @@ class EmrouteApp {
|
|
|
2250
2279
|
slot = null;
|
|
2251
2280
|
abortController = null;
|
|
2252
2281
|
constructor(server, options) {
|
|
2253
|
-
const bp = options?.basePath ?? DEFAULT_BASE_PATH;
|
|
2254
2282
|
this.server = server;
|
|
2255
|
-
|
|
2283
|
+
if (options?.basePath) {
|
|
2284
|
+
this.appBase = options.basePath.app;
|
|
2285
|
+
} else if (typeof document !== "undefined") {
|
|
2286
|
+
const base = document.querySelector("base")?.getAttribute("href");
|
|
2287
|
+
this.appBase = base ? base.replace(/\/$/, "") : DEFAULT_BASE_PATH.app;
|
|
2288
|
+
} else {
|
|
2289
|
+
this.appBase = DEFAULT_BASE_PATH.app;
|
|
2290
|
+
}
|
|
2256
2291
|
}
|
|
2257
2292
|
async initialize(slotSelector = "router-slot") {
|
|
2258
2293
|
this.slot = document.querySelector(slotSelector);
|
|
@@ -2640,6 +2675,62 @@ function animateDismiss(el, onDone) {
|
|
|
2640
2675
|
el.addEventListener("transitionend", finish, { once: true });
|
|
2641
2676
|
setTimeout(finish, ANIMATION_SAFETY_TIMEOUT);
|
|
2642
2677
|
}
|
|
2678
|
+
function fillTemplate(el, options, onConfirm, onReject) {
|
|
2679
|
+
const msgEl = el.querySelector("[data-toast-message]");
|
|
2680
|
+
if (msgEl && options.message) {
|
|
2681
|
+
msgEl.textContent = options.message;
|
|
2682
|
+
}
|
|
2683
|
+
if (options.type) {
|
|
2684
|
+
el.setAttribute("data-toast-type", options.type);
|
|
2685
|
+
}
|
|
2686
|
+
const confirmBtn = el.querySelector("[data-toast-confirm]");
|
|
2687
|
+
if (confirmBtn) {
|
|
2688
|
+
if (options.confirm) {
|
|
2689
|
+
confirmBtn.textContent = options.confirm;
|
|
2690
|
+
confirmBtn.hidden = false;
|
|
2691
|
+
if (onConfirm)
|
|
2692
|
+
confirmBtn.addEventListener("click", onConfirm, { once: true });
|
|
2693
|
+
} else {
|
|
2694
|
+
confirmBtn.hidden = true;
|
|
2695
|
+
}
|
|
2696
|
+
}
|
|
2697
|
+
const rejectBtn = el.querySelector("[data-toast-reject]");
|
|
2698
|
+
if (rejectBtn) {
|
|
2699
|
+
if (options.reject) {
|
|
2700
|
+
rejectBtn.textContent = options.reject;
|
|
2701
|
+
rejectBtn.hidden = false;
|
|
2702
|
+
if (onReject)
|
|
2703
|
+
rejectBtn.addEventListener("click", onReject, { once: true });
|
|
2704
|
+
} else {
|
|
2705
|
+
rejectBtn.hidden = true;
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
function buildFallback(el, options, onConfirm, onReject) {
|
|
2710
|
+
if (options.type) {
|
|
2711
|
+
el.setAttribute("data-toast-type", options.type);
|
|
2712
|
+
}
|
|
2713
|
+
const span = document.createElement("span");
|
|
2714
|
+
span.setAttribute("data-toast-message", "");
|
|
2715
|
+
span.textContent = options.message ?? "";
|
|
2716
|
+
el.appendChild(span);
|
|
2717
|
+
if (options.confirm) {
|
|
2718
|
+
const btn = document.createElement("button");
|
|
2719
|
+
btn.setAttribute("data-toast-confirm", "");
|
|
2720
|
+
btn.textContent = options.confirm;
|
|
2721
|
+
if (onConfirm)
|
|
2722
|
+
btn.addEventListener("click", onConfirm, { once: true });
|
|
2723
|
+
el.appendChild(btn);
|
|
2724
|
+
}
|
|
2725
|
+
if (options.reject) {
|
|
2726
|
+
const btn = document.createElement("button");
|
|
2727
|
+
btn.setAttribute("data-toast-reject", "");
|
|
2728
|
+
btn.textContent = options.reject;
|
|
2729
|
+
if (onReject)
|
|
2730
|
+
btn.addEventListener("click", onReject, { once: true });
|
|
2731
|
+
el.appendChild(btn);
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2643
2734
|
function createOverlayService() {
|
|
2644
2735
|
let styleInjected = false;
|
|
2645
2736
|
let dialog = null;
|
|
@@ -2744,23 +2835,77 @@ function createOverlayService() {
|
|
|
2744
2835
|
clearDeadToasts(container);
|
|
2745
2836
|
const el = document.createElement("div");
|
|
2746
2837
|
el.setAttribute("data-overlay-toast", "");
|
|
2747
|
-
const
|
|
2838
|
+
const isConfirmation = !!(options.confirm || options.reject);
|
|
2839
|
+
const timeout = isConfirmation ? 0 : options.timeout ?? 0;
|
|
2748
2840
|
if (timeout === 0) {
|
|
2749
2841
|
el.setAttribute("data-toast-manual", "");
|
|
2750
2842
|
} else {
|
|
2751
2843
|
el.style.setProperty("--overlay-toast-duration", `${timeout}ms`);
|
|
2752
2844
|
}
|
|
2753
|
-
|
|
2845
|
+
let confirmResolve;
|
|
2846
|
+
let confirmPromise;
|
|
2847
|
+
if (isConfirmation) {
|
|
2848
|
+
const resolvers = Promise.withResolvers();
|
|
2849
|
+
confirmResolve = resolvers.resolve;
|
|
2850
|
+
confirmPromise = resolvers.promise;
|
|
2851
|
+
}
|
|
2852
|
+
const onConfirm = confirmResolve ? () => {
|
|
2853
|
+
confirmResolve(true);
|
|
2854
|
+
dismiss();
|
|
2855
|
+
} : undefined;
|
|
2856
|
+
const onReject = confirmResolve ? () => {
|
|
2857
|
+
confirmResolve(false);
|
|
2858
|
+
dismiss();
|
|
2859
|
+
} : undefined;
|
|
2860
|
+
if (options.render) {
|
|
2861
|
+
options.render(el);
|
|
2862
|
+
} else {
|
|
2863
|
+
const template = document.querySelector("#overlay-toast");
|
|
2864
|
+
if (template) {
|
|
2865
|
+
const clone = template.content.cloneNode(true);
|
|
2866
|
+
el.appendChild(clone);
|
|
2867
|
+
fillTemplate(el, options, onConfirm, onReject);
|
|
2868
|
+
} else {
|
|
2869
|
+
buildFallback(el, options, onConfirm, onReject);
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2754
2872
|
container.appendChild(el);
|
|
2873
|
+
const id = performance.now();
|
|
2755
2874
|
let dismissed = false;
|
|
2756
|
-
|
|
2875
|
+
function dismiss() {
|
|
2757
2876
|
if (dismissed)
|
|
2758
2877
|
return;
|
|
2759
2878
|
dismissed = true;
|
|
2760
2879
|
el.setAttribute("data-dismissing", "");
|
|
2761
|
-
}
|
|
2762
|
-
|
|
2880
|
+
}
|
|
2881
|
+
function update(opts) {
|
|
2882
|
+
if (opts.message !== undefined) {
|
|
2883
|
+
const msgEl = el.querySelector("[data-toast-message]");
|
|
2884
|
+
if (msgEl)
|
|
2885
|
+
msgEl.textContent = opts.message;
|
|
2886
|
+
}
|
|
2887
|
+
if (opts.type !== undefined) {
|
|
2888
|
+
el.setAttribute("data-toast-type", opts.type);
|
|
2889
|
+
}
|
|
2890
|
+
if (opts.timeout !== undefined) {
|
|
2891
|
+
el.style.setProperty("--overlay-toast-duration", `${opts.timeout}ms`);
|
|
2892
|
+
if (opts.timeout === 0) {
|
|
2893
|
+
el.setAttribute("data-toast-manual", "");
|
|
2894
|
+
} else {
|
|
2895
|
+
el.removeAttribute("data-toast-manual");
|
|
2896
|
+
}
|
|
2897
|
+
}
|
|
2898
|
+
}
|
|
2899
|
+
const handle = { id, dismiss, update };
|
|
2900
|
+
if (confirmPromise) {
|
|
2901
|
+
handle.then = confirmPromise.then.bind(confirmPromise);
|
|
2902
|
+
}
|
|
2903
|
+
return handle;
|
|
2763
2904
|
}
|
|
2905
|
+
toast.success = (message, timeout) => toast({ message, type: "success", timeout: timeout ?? 5000 });
|
|
2906
|
+
toast.error = (message, timeout) => toast({ message, type: "error", timeout: timeout ?? 5000 });
|
|
2907
|
+
toast.warning = (message, timeout) => toast({ message, type: "warning", timeout: timeout ?? 5000 });
|
|
2908
|
+
toast.info = (message, timeout) => toast({ message, type: "info", timeout: timeout ?? 5000 });
|
|
2764
2909
|
function popover(options) {
|
|
2765
2910
|
const el = ensurePopover();
|
|
2766
2911
|
cleanupPopoverAnchorObserver();
|
|
@@ -2966,5 +3111,5 @@ export {
|
|
|
2966
3111
|
BreadcrumbWidget
|
|
2967
3112
|
};
|
|
2968
3113
|
|
|
2969
|
-
//# debugId=
|
|
3114
|
+
//# debugId=AF103AF6F8C1794764756E2164756E21
|
|
2970
3115
|
//# sourceMappingURL=emroute.js.map
|