piral-blazor 0.15.0-beta.4790 → 0.15.0-beta.4798
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/esm/dependencies.js +26 -8
- package/esm/dependencies.js.map +1 -1
- package/esm/interop.js +23 -1
- package/esm/interop.js.map +1 -1
- package/esm/types.d.ts +5 -0
- package/lib/dependencies.js +26 -8
- package/lib/dependencies.js.map +1 -1
- package/lib/interop.js +23 -1
- package/lib/interop.js.map +1 -1
- package/lib/types.d.ts +5 -0
- package/package.json +3 -3
- package/src/dependencies.ts +29 -8
- package/src/interop.ts +28 -2
- package/src/types.ts +5 -0
package/esm/dependencies.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { __awaiter } from "tslib";
|
|
2
3
|
import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
|
|
4
|
+
const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
|
|
3
5
|
export function createDependencyLoader(convert, lazy = true) {
|
|
4
6
|
const definedBlazorReferences = [];
|
|
5
7
|
let dependency;
|
|
@@ -10,17 +12,29 @@ export function createDependencyLoader(convert, lazy = true) {
|
|
|
10
12
|
defineBlazorReferences(references) {
|
|
11
13
|
const load = () => __awaiter(this, void 0, void 0, function* () {
|
|
12
14
|
for (const dllUrl of references) {
|
|
15
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
13
16
|
if (dllUrl.endsWith('.dll')) {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (pdbUrl) {
|
|
18
|
-
yield loadResourceWithSymbol(dllUrl, pdbUrl);
|
|
17
|
+
const entry = loadedDependencies.find(m => m.name === dllName);
|
|
18
|
+
if (entry) {
|
|
19
|
+
entry.count++;
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
|
-
|
|
22
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
23
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
24
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
25
|
+
if (pdbUrl) {
|
|
26
|
+
yield loadResourceWithSymbol(dllUrl, pdbUrl);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
yield loadResource(dllUrl);
|
|
30
|
+
}
|
|
31
|
+
loadedDependencies.push({
|
|
32
|
+
name: dllName,
|
|
33
|
+
url: dllUrl,
|
|
34
|
+
count: 1,
|
|
35
|
+
});
|
|
22
36
|
}
|
|
23
|
-
definedBlazorReferences.push(
|
|
37
|
+
definedBlazorReferences.push(dllName);
|
|
24
38
|
}
|
|
25
39
|
}
|
|
26
40
|
});
|
|
@@ -31,7 +45,11 @@ export function createDependencyLoader(convert, lazy = true) {
|
|
|
31
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
46
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
33
47
|
for (const reference of references) {
|
|
34
|
-
|
|
48
|
+
const entry = loadedDependencies.find(m => m.name === reference);
|
|
49
|
+
if (--entry.count === 0) {
|
|
50
|
+
loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
|
|
51
|
+
yield unloadResource(entry.url);
|
|
52
|
+
}
|
|
35
53
|
}
|
|
36
54
|
});
|
|
37
55
|
},
|
package/esm/dependencies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjF,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,mBAAmB,oCAA1B,MAAM,CAAC,mBAAmB,GAAK,EAAE,EAAC,CAAC;AAE/D,MAAM,UAAU,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAE/D,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;yBACf;6BAAM;4BACL,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;4BAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;4BAErD,IAAI,MAAM,EAAE;gCACV,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;6BAC9C;iCAAM;gCACL,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;6BAC5B;4BAED,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;yBACJ;wBAED,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEjE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;wBACvB,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
|
package/esm/interop.js
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
import { emitRenderEvent, emitNavigateEvent } from './events';
|
|
2
2
|
const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
|
|
3
3
|
const coreLib = 'Piral.Blazor.Core';
|
|
4
|
+
function createBase() {
|
|
5
|
+
// Nothing found, we need to guess
|
|
6
|
+
const el = document.createElement('base');
|
|
7
|
+
let baseUrl = el.href;
|
|
8
|
+
// The main app is served by a script - but we don't know which one
|
|
9
|
+
// hence we just iterate over all the local ones and use the script
|
|
10
|
+
// that is served from the "shortest" route - should work almost
|
|
11
|
+
// always and if not - one can always explicitely set a <base> node
|
|
12
|
+
for (let i = document.scripts.length; i--;) {
|
|
13
|
+
const s = document.scripts[i];
|
|
14
|
+
const src = s.getAttribute('src');
|
|
15
|
+
if (src && src.startsWith('/')) {
|
|
16
|
+
const segEnd = src.lastIndexOf('/');
|
|
17
|
+
const newUrl = src.substring(0, segEnd + 1);
|
|
18
|
+
if (baseUrl.split('/').length > newUrl.split('/').length) {
|
|
19
|
+
baseUrl = newUrl;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
el.href = baseUrl;
|
|
24
|
+
return document.head.appendChild(el);
|
|
25
|
+
}
|
|
4
26
|
function createBlazorStarter(publicPath) {
|
|
5
27
|
const root = document.body.appendChild(document.createElement('div'));
|
|
6
28
|
root.style.display = 'none';
|
|
7
29
|
root.id = 'blazor-root';
|
|
8
30
|
if (publicPath) {
|
|
9
|
-
const baseElement = document.head.querySelector('base') ||
|
|
31
|
+
const baseElement = document.head.querySelector('base') || createBase();
|
|
10
32
|
const originalBase = baseElement.href;
|
|
11
33
|
baseElement.href = publicPath;
|
|
12
34
|
return () => {
|
package/esm/interop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAC9D,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,SAAS,
|
|
1
|
+
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
CHANGED
package/lib/dependencies.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.createDependencyLoader = void 0;
|
|
4
5
|
const tslib_1 = require("tslib");
|
|
5
6
|
const interop_1 = require("./interop");
|
|
7
|
+
const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
|
|
6
8
|
function createDependencyLoader(convert, lazy = true) {
|
|
7
9
|
const definedBlazorReferences = [];
|
|
8
10
|
let dependency;
|
|
@@ -13,17 +15,29 @@ function createDependencyLoader(convert, lazy = true) {
|
|
|
13
15
|
defineBlazorReferences(references) {
|
|
14
16
|
const load = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
17
|
for (const dllUrl of references) {
|
|
18
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
16
19
|
if (dllUrl.endsWith('.dll')) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (pdbUrl) {
|
|
21
|
-
yield (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl);
|
|
20
|
+
const entry = loadedDependencies.find(m => m.name === dllName);
|
|
21
|
+
if (entry) {
|
|
22
|
+
entry.count++;
|
|
22
23
|
}
|
|
23
24
|
else {
|
|
24
|
-
|
|
25
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
26
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
27
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
28
|
+
if (pdbUrl) {
|
|
29
|
+
yield (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
yield (0, interop_1.loadResource)(dllUrl);
|
|
33
|
+
}
|
|
34
|
+
loadedDependencies.push({
|
|
35
|
+
name: dllName,
|
|
36
|
+
url: dllUrl,
|
|
37
|
+
count: 1,
|
|
38
|
+
});
|
|
25
39
|
}
|
|
26
|
-
definedBlazorReferences.push(
|
|
40
|
+
definedBlazorReferences.push(dllName);
|
|
27
41
|
}
|
|
28
42
|
}
|
|
29
43
|
});
|
|
@@ -34,7 +48,11 @@ function createDependencyLoader(convert, lazy = true) {
|
|
|
34
48
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
49
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
36
50
|
for (const reference of references) {
|
|
37
|
-
|
|
51
|
+
const entry = loadedDependencies.find(m => m.name === reference);
|
|
52
|
+
if (--entry.count === 0) {
|
|
53
|
+
loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
|
|
54
|
+
yield (0, interop_1.unloadResource)(entry.url);
|
|
55
|
+
}
|
|
38
56
|
}
|
|
39
57
|
});
|
|
40
58
|
},
|
package/lib/dependencies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;;;;AAAA,uCAAiF;AAGjF,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,mBAAmB,oCAA1B,MAAM,CAAC,mBAAmB,GAAK,EAAE,EAAC,CAAC;AAE/D,SAAgB,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAE/D,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;yBACf;6BAAM;4BACL,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;4BAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;4BAErD,IAAI,MAAM,EAAE;gCACV,MAAM,IAAA,gCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;6BAC9C;iCAAM;gCACL,MAAM,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;6BAC5B;4BAED,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;yBACJ;wBAED,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEjE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;wBACvB,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC;AAxDD,wDAwDC"}
|
package/lib/interop.js
CHANGED
|
@@ -4,12 +4,34 @@ exports.createBootLoader = exports.initialize = exports.unloadResource = exports
|
|
|
4
4
|
const events_1 = require("./events");
|
|
5
5
|
const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
|
|
6
6
|
const coreLib = 'Piral.Blazor.Core';
|
|
7
|
+
function createBase() {
|
|
8
|
+
// Nothing found, we need to guess
|
|
9
|
+
const el = document.createElement('base');
|
|
10
|
+
let baseUrl = el.href;
|
|
11
|
+
// The main app is served by a script - but we don't know which one
|
|
12
|
+
// hence we just iterate over all the local ones and use the script
|
|
13
|
+
// that is served from the "shortest" route - should work almost
|
|
14
|
+
// always and if not - one can always explicitely set a <base> node
|
|
15
|
+
for (let i = document.scripts.length; i--;) {
|
|
16
|
+
const s = document.scripts[i];
|
|
17
|
+
const src = s.getAttribute('src');
|
|
18
|
+
if (src && src.startsWith('/')) {
|
|
19
|
+
const segEnd = src.lastIndexOf('/');
|
|
20
|
+
const newUrl = src.substring(0, segEnd + 1);
|
|
21
|
+
if (baseUrl.split('/').length > newUrl.split('/').length) {
|
|
22
|
+
baseUrl = newUrl;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
el.href = baseUrl;
|
|
27
|
+
return document.head.appendChild(el);
|
|
28
|
+
}
|
|
7
29
|
function createBlazorStarter(publicPath) {
|
|
8
30
|
const root = document.body.appendChild(document.createElement('div'));
|
|
9
31
|
root.style.display = 'none';
|
|
10
32
|
root.id = 'blazor-root';
|
|
11
33
|
if (publicPath) {
|
|
12
|
-
const baseElement = document.head.querySelector('base') ||
|
|
34
|
+
const baseElement = document.head.querySelector('base') || createBase();
|
|
13
35
|
const originalBase = baseElement.href;
|
|
14
36
|
baseElement.href = publicPath;
|
|
15
37
|
return () => {
|
package/lib/interop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":";;;AAAA,qCAA8D;AAE9D,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAC9D,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,SAAS,
|
|
1
|
+
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":";;;AAAA,qCAA8D;AAE9D,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAC9D,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,SAAS,UAAU;IACjB,kCAAkC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IAEtB,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,mEAAmE;IACnE,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAI;QAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YAE5C,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;gBACxD,OAAO,GAAG,MAAM,CAAC;aAClB;SACF;KACF;IAED,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC;IAClB,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC;IAExB,IAAI,UAAU,EAAE;QACd,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACxE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;QACtC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;QAE9B,OAAO,GAAG,EAAE;YACV,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAE7D,6GAA6G;YAC7G,UAAU,CAAC,UAAU,GAAG,CAAC,KAAa,EAAE,IAA0D,EAAE,EAAE;gBACpG,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;iBACvB;qBAAM;oBACL,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;iBAC7E;YACH,CAAC,CAAC;YAEF,UAAU,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;YAE3C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACH;IAED,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,WAAW;IAClB,IAAI;QACF,MAAM,IAAI,KAAK,EAAE,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uEAAuE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;SAC1G;KACF;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,QAAQ,CAAC,UAAkB,EAAE,KAAU;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAFD,4BAEC;AAED,SAAgB,UAAU,CAAC,UAAkB,EAAE,WAAmB,EAAE,KAAU;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACvG,2EAA2E;QAC3E,yEAAyE;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AALD,gCAKC;AAED,SAAgB,UAAU,CAAC,UAAkB,EAAE,WAAmB;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACzF,CAAC;AAFD,gCAEC;AAED,SAAgB,yBAAyB,CAAC,GAAW,EAAE,OAAgB;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAFD,8DAEC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACpF,CAAC;AAFD,oCAEC;AAED,SAAgB,sBAAsB,CAAC,MAAc,EAAE,MAAc;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,sCAAsC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1G,CAAC;AAFD,wDAEC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;AACtF,CAAC;AAFD,wCAEC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE,UAAkB;IAC9D,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE1C,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC3B,eAAe,EAAf,wBAAe;gBACf,iBAAiB,EAAjB,0BAAiB;aAClB,CAAC,CAAC;YAEH,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAnBD,gCAmBC;AAED,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,UAAyB;IAC3E,MAAM,UAAU,GAAG,WAAW,EAAE,CAAC;IAEjC,OAAO,GAAG,EAAE;QACV,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,WAAW,EAAE;YAC/C,4DAA4D;YAC5D,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACpF,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAClC,CAAC;SACH;QAED,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAbD,4CAaC"}
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-blazor",
|
|
3
|
-
"version": "0.15.0-beta.
|
|
3
|
+
"version": "0.15.0-beta.4798",
|
|
4
4
|
"description": "Plugin for integrating Blazor components in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"piral-core": "0.15.0-beta.
|
|
70
|
+
"piral-core": "0.15.0-beta.4798"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"blazor": "*"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "ee715b27a48b4ec7bb69a761344f1eb2eb731494"
|
|
76
76
|
}
|
package/src/dependencies.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
|
|
2
2
|
import type { createConverter } from './converter';
|
|
3
3
|
|
|
4
|
+
const loadedDependencies = (window.$blazorDependencies ??= []);
|
|
5
|
+
|
|
4
6
|
export function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy = true) {
|
|
5
7
|
const definedBlazorReferences: Array<string> = [];
|
|
6
8
|
let dependency: () => Promise<any>;
|
|
@@ -12,18 +14,32 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
|
|
|
12
14
|
defineBlazorReferences(references: Array<string>) {
|
|
13
15
|
const load = async () => {
|
|
14
16
|
for (const dllUrl of references) {
|
|
17
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
18
|
+
|
|
15
19
|
if (dllUrl.endsWith('.dll')) {
|
|
16
|
-
const
|
|
17
|
-
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
18
|
-
const pdbUrl = references.find((m) => m === pdbName);
|
|
20
|
+
const entry = loadedDependencies.find(m => m.name === dllName);
|
|
19
21
|
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
+
if (entry) {
|
|
23
|
+
entry.count++;
|
|
22
24
|
} else {
|
|
23
|
-
|
|
25
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
26
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
27
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
28
|
+
|
|
29
|
+
if (pdbUrl) {
|
|
30
|
+
await loadResourceWithSymbol(dllUrl, pdbUrl);
|
|
31
|
+
} else {
|
|
32
|
+
await loadResource(dllUrl);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
loadedDependencies.push({
|
|
36
|
+
name: dllName,
|
|
37
|
+
url: dllUrl,
|
|
38
|
+
count: 1,
|
|
39
|
+
});
|
|
24
40
|
}
|
|
25
41
|
|
|
26
|
-
definedBlazorReferences.push(
|
|
42
|
+
definedBlazorReferences.push(dllName);
|
|
27
43
|
}
|
|
28
44
|
}
|
|
29
45
|
};
|
|
@@ -34,7 +50,12 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
|
|
|
34
50
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
35
51
|
|
|
36
52
|
for (const reference of references) {
|
|
37
|
-
|
|
53
|
+
const entry = loadedDependencies.find(m => m.name === reference);
|
|
54
|
+
|
|
55
|
+
if (--entry.count === 0) {
|
|
56
|
+
loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
|
|
57
|
+
await unloadResource(entry.url);
|
|
58
|
+
}
|
|
38
59
|
}
|
|
39
60
|
},
|
|
40
61
|
};
|
package/src/interop.ts
CHANGED
|
@@ -3,6 +3,33 @@ import { emitRenderEvent, emitNavigateEvent } from './events';
|
|
|
3
3
|
const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
|
|
4
4
|
const coreLib = 'Piral.Blazor.Core';
|
|
5
5
|
|
|
6
|
+
function createBase() {
|
|
7
|
+
// Nothing found, we need to guess
|
|
8
|
+
const el = document.createElement('base');
|
|
9
|
+
let baseUrl = el.href;
|
|
10
|
+
|
|
11
|
+
// The main app is served by a script - but we don't know which one
|
|
12
|
+
// hence we just iterate over all the local ones and use the script
|
|
13
|
+
// that is served from the "shortest" route - should work almost
|
|
14
|
+
// always and if not - one can always explicitely set a <base> node
|
|
15
|
+
for (let i = document.scripts.length; i--; ) {
|
|
16
|
+
const s = document.scripts[i];
|
|
17
|
+
const src = s.getAttribute('src');
|
|
18
|
+
|
|
19
|
+
if (src && src.startsWith('/')) {
|
|
20
|
+
const segEnd = src.lastIndexOf('/');
|
|
21
|
+
const newUrl = src.substring(0, segEnd + 1);
|
|
22
|
+
|
|
23
|
+
if (baseUrl.split('/').length > newUrl.split('/').length) {
|
|
24
|
+
baseUrl = newUrl;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
el.href = baseUrl;
|
|
30
|
+
return document.head.appendChild(el);
|
|
31
|
+
}
|
|
32
|
+
|
|
6
33
|
function createBlazorStarter(publicPath: string): () => Promise<HTMLDivElement> {
|
|
7
34
|
const root = document.body.appendChild(document.createElement('div'));
|
|
8
35
|
|
|
@@ -10,8 +37,7 @@ function createBlazorStarter(publicPath: string): () => Promise<HTMLDivElement>
|
|
|
10
37
|
root.id = 'blazor-root';
|
|
11
38
|
|
|
12
39
|
if (publicPath) {
|
|
13
|
-
const baseElement =
|
|
14
|
-
document.head.querySelector('base') || document.head.appendChild(document.createElement('base'));
|
|
40
|
+
const baseElement = document.head.querySelector('base') || createBase();
|
|
15
41
|
const originalBase = baseElement.href;
|
|
16
42
|
baseElement.href = publicPath;
|
|
17
43
|
|