piral-blazor 0.15.2-beta.4923 → 0.15.2-beta.4938
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/convert.d.ts +1 -1
- package/esm/converter.d.ts +3 -3
- package/esm/converter.js +4 -3
- package/esm/converter.js.map +1 -1
- package/esm/create.js +4 -2
- package/esm/create.js.map +1 -1
- package/esm/dependencies.d.ts +4 -2
- package/esm/dependencies.js +54 -25
- package/esm/dependencies.js.map +1 -1
- package/esm/interop.d.ts +22 -9
- package/esm/interop.js +21 -4
- package/esm/interop.js.map +1 -1
- package/esm/types.d.ts +6 -2
- package/lib/converter.d.ts +3 -3
- package/lib/converter.js +4 -3
- package/lib/converter.js.map +1 -1
- package/lib/create.js +4 -2
- package/lib/create.js.map +1 -1
- package/lib/dependencies.d.ts +4 -2
- package/lib/dependencies.js +53 -24
- package/lib/dependencies.js.map +1 -1
- package/lib/interop.d.ts +22 -9
- package/lib/interop.js +25 -5
- package/lib/interop.js.map +1 -1
- package/lib/types.d.ts +6 -2
- package/package.json +3 -3
- package/src/converter.ts +10 -8
- package/src/create.ts +4 -2
- package/src/dependencies.ts +65 -30
- package/src/interop.ts +47 -17
- package/src/types.ts +8 -2
package/convert.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ export interface BlazorConverter {
|
|
|
12
12
|
}
|
|
13
13
|
export declare function defineBlazorOptions(options: BlazorOptions): void;
|
|
14
14
|
export declare const fromBlazor: BlazorConverter;
|
|
15
|
-
export declare const defineBlazorReferences: (references: string[]) => void;
|
|
15
|
+
export declare const defineBlazorReferences: (references: string[], meta?: PiletMetadata) => void;
|
|
16
16
|
export declare const releaseBlazorReferences: () => Promise<void>;
|
package/esm/converter.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseComponentProps, ForeignComponent } from 'piral-core';
|
|
2
|
-
import { BlazorOptions } from './types';
|
|
2
|
+
import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
|
|
3
3
|
export declare function createConverter(lazy: boolean): {
|
|
4
|
-
<TProps extends BaseComponentProps>(moduleName: string, dependency:
|
|
5
|
-
loader: Promise<
|
|
4
|
+
<TProps extends BaseComponentProps>(moduleName: string, dependency: BlazorDependencyLoader, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
|
|
5
|
+
loader: Promise<BlazorRootConfig>;
|
|
6
6
|
};
|
package/esm/converter.js
CHANGED
|
@@ -58,16 +58,17 @@ export function createConverter(lazy) {
|
|
|
58
58
|
locals.update = noop;
|
|
59
59
|
locals.dispose = attachEvents(el, (ev) => data.piral.renderHtmlExtension(ev.detail.target, ev.detail.props), (ev) => ev.detail.replace ? nav.replace(ev.detail.to, ev.detail.store) : nav.push(ev.detail.to, ev.detail.state));
|
|
60
60
|
(loader || (loader = boot()))
|
|
61
|
-
.then((
|
|
61
|
+
.then((config) => dependency(config)
|
|
62
62
|
.then(() => activate(moduleName, props))
|
|
63
63
|
.then((refId) => {
|
|
64
|
+
const [root] = config;
|
|
64
65
|
if (locals.state === 'fresh') {
|
|
65
66
|
locals.id = refId;
|
|
66
67
|
locals.node = root.querySelector(`#${locals.id} > div`);
|
|
67
68
|
project(locals.node, el, options);
|
|
68
69
|
locals.state = 'mounted';
|
|
69
70
|
locals.referenceId = refId;
|
|
70
|
-
locals.update(
|
|
71
|
+
locals.update(config);
|
|
71
72
|
locals.update = noop;
|
|
72
73
|
}
|
|
73
74
|
}))
|
|
@@ -83,7 +84,7 @@ export function createConverter(lazy) {
|
|
|
83
84
|
removeGlobalEventListeners(el);
|
|
84
85
|
el.removeAttribute('data-blazor-pilet-root');
|
|
85
86
|
locals.dispose();
|
|
86
|
-
enqueueChange(locals, (root) => {
|
|
87
|
+
enqueueChange(locals, ([root]) => {
|
|
87
88
|
root.querySelector(`#${locals.id}`).appendChild(locals.node);
|
|
88
89
|
deactivate(moduleName, locals.referenceId);
|
|
89
90
|
});
|
package/esm/converter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE1G,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEtB,MAAM,UAAU,GAAG;IACjB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IAC3F,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE;CACtD,CAAC;AAEF,SAAS,kBAAkB,CAAC,SAAkB,EAAE,MAAc;IAC5D,MAAM,oBAAoB,GAAG,CAAC,EAAW,EAAE,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAElH,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC3F,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAED,SAAS,OAAO,CAAC,SAAkB,EAAE,WAAoB,EAAE,OAAsB;IAC/E,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC,UAAU,CAAC,UAAU,EAAE;QACvD,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACzD;IAED,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAExC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;KAC3B;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAe,SAAS,CAAC;IAErC,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
|
package/esm/create.js
CHANGED
|
@@ -8,11 +8,13 @@ export function createBlazorApi(config = {}) {
|
|
|
8
8
|
return (context) => {
|
|
9
9
|
const convert = createConverter(lazy);
|
|
10
10
|
context.converters.blazor = ({ moduleName, args, dependency, options }) => convert(moduleName, dependency, args, options);
|
|
11
|
-
return () => {
|
|
11
|
+
return (_, meta) => {
|
|
12
12
|
const loader = createDependencyLoader(convert, lazy);
|
|
13
13
|
let options;
|
|
14
14
|
return {
|
|
15
|
-
defineBlazorReferences
|
|
15
|
+
defineBlazorReferences(references) {
|
|
16
|
+
return loader.defineBlazorReferences(references, meta);
|
|
17
|
+
},
|
|
16
18
|
defineBlazorOptions(blazorOptions) {
|
|
17
19
|
options = blazorOptions;
|
|
18
20
|
},
|
package/esm/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAcxD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAcxD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,CAAC,UAAU;oBAC/B,OAAO,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/esm/dependencies.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { PiletMetadata } from 'piral-core';
|
|
1
2
|
import type { createConverter } from './converter';
|
|
3
|
+
import type { BlazorDependencyLoader } from './types';
|
|
2
4
|
export declare function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy?: boolean): {
|
|
3
|
-
getDependency():
|
|
4
|
-
defineBlazorReferences(references: Array<string>): void;
|
|
5
|
+
getDependency(): BlazorDependencyLoader;
|
|
6
|
+
defineBlazorReferences(references: Array<string>, meta?: Partial<PiletMetadata>): void;
|
|
5
7
|
releaseBlazorReferences(): Promise<void>;
|
|
6
8
|
};
|
package/esm/dependencies.js
CHANGED
|
@@ -1,47 +1,72 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import { __awaiter } from "tslib";
|
|
3
|
-
import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
|
|
3
|
+
import { loadBlazorPilet, loadResource, loadResourceWithSymbol, unloadBlazorPilet, unloadResource } from './interop';
|
|
4
4
|
const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
|
|
5
5
|
export function createDependencyLoader(convert, lazy = true) {
|
|
6
6
|
const definedBlazorReferences = [];
|
|
7
|
+
const loadedBlazorPilets = [];
|
|
7
8
|
let dependency;
|
|
8
9
|
return {
|
|
9
10
|
getDependency() {
|
|
10
11
|
return dependency;
|
|
11
12
|
},
|
|
12
|
-
defineBlazorReferences(references) {
|
|
13
|
-
const load = () => __awaiter(this, void 0, void 0, function* () {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
13
|
+
defineBlazorReferences(references, meta = {}) {
|
|
14
|
+
const load = ([_, capabilities]) => __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
if (capabilities.includes('load')) {
|
|
16
|
+
// new loading mechanism
|
|
17
|
+
const dependencies = references.filter((m) => m.endsWith('.dll'));
|
|
18
|
+
const dllUrl = dependencies.pop();
|
|
19
|
+
const piletName = dllUrl.substring(0, dllUrl.length - 4);
|
|
20
|
+
const piletPdb = `${piletName}.pdb`;
|
|
21
|
+
const pdbUrl = references.find((m) => m === piletPdb);
|
|
22
|
+
const id = Math.random().toString(26).substring(2);
|
|
23
|
+
yield loadBlazorPilet(id, {
|
|
24
|
+
name: meta.name || '(unknown)',
|
|
25
|
+
version: meta.version || '0.0.0',
|
|
26
|
+
config: JSON.stringify(meta.config || {}),
|
|
27
|
+
baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
|
|
28
|
+
dependencies,
|
|
29
|
+
dllUrl,
|
|
30
|
+
pdbUrl,
|
|
31
|
+
});
|
|
32
|
+
loadedBlazorPilets.push(id);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// old loading mechanism
|
|
36
|
+
for (const dllUrl of references) {
|
|
37
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
38
|
+
if (dllUrl.endsWith('.dll')) {
|
|
39
|
+
const entry = loadedDependencies.find((m) => m.name === dllName);
|
|
40
|
+
if (entry) {
|
|
41
|
+
entry.count++;
|
|
42
|
+
yield entry.promise;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
46
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
47
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
48
|
+
const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
|
|
49
|
+
loadedDependencies.push({
|
|
50
|
+
name: dllName,
|
|
51
|
+
url: dllUrl,
|
|
52
|
+
count: 1,
|
|
53
|
+
promise,
|
|
54
|
+
});
|
|
55
|
+
yield promise;
|
|
56
|
+
}
|
|
57
|
+
definedBlazorReferences.push(dllName);
|
|
34
58
|
}
|
|
35
|
-
definedBlazorReferences.push(dllName);
|
|
36
59
|
}
|
|
37
60
|
}
|
|
38
61
|
});
|
|
39
62
|
let result = !lazy && convert.loader.then(load);
|
|
40
|
-
dependency = () => result || (result = load());
|
|
63
|
+
dependency = (config) => result || (result = load(config));
|
|
41
64
|
},
|
|
42
65
|
releaseBlazorReferences() {
|
|
43
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
67
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
68
|
+
const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
|
|
69
|
+
// old way of loading
|
|
45
70
|
for (const reference of references) {
|
|
46
71
|
const entry = loadedDependencies.find((m) => m.name === reference);
|
|
47
72
|
if (--entry.count === 0) {
|
|
@@ -49,6 +74,10 @@ export function createDependencyLoader(convert, lazy = true) {
|
|
|
49
74
|
yield unloadResource(entry.url);
|
|
50
75
|
}
|
|
51
76
|
}
|
|
77
|
+
// new way of loading
|
|
78
|
+
for (const id of ids) {
|
|
79
|
+
yield unloadBlazorPilet(id);
|
|
80
|
+
}
|
|
52
81
|
});
|
|
53
82
|
},
|
|
54
83
|
};
|
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":"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"}
|
package/esm/interop.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
1
|
+
import type { BlazorRootConfig } from './types';
|
|
2
|
+
export declare function activate(moduleName: string, props: any): Promise<string>;
|
|
3
|
+
export declare function reactivate(moduleName: string, referenceId: string, props: any): Promise<void>;
|
|
4
|
+
export declare function deactivate(moduleName: string, referenceId: string): Promise<void>;
|
|
5
|
+
export declare function callNotifyLocationChanged(url: string, replace: boolean): Promise<void>;
|
|
6
|
+
export declare function getCapabilities(): Promise<Array<string>>;
|
|
7
|
+
export declare function loadResource(url: string): Promise<void>;
|
|
8
|
+
export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void>;
|
|
9
|
+
export declare function unloadResource(url: string): Promise<void>;
|
|
10
|
+
export interface PiletData {
|
|
11
|
+
dllUrl: string;
|
|
12
|
+
pdbUrl?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
config: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
dependencies: Array<string>;
|
|
18
|
+
}
|
|
19
|
+
export declare function loadBlazorPilet(id: string, data: PiletData): any;
|
|
20
|
+
export declare function unloadBlazorPilet(id: string): any;
|
|
21
|
+
export declare function initialize(scriptUrl: string, publicPath: string): Promise<BlazorRootConfig>;
|
|
22
|
+
export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<BlazorRootConfig>;
|
package/esm/interop.js
CHANGED
|
@@ -43,13 +43,17 @@ function createBlazorStarter(publicPath) {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
navManager.getBaseURI = () => originalBase;
|
|
46
|
-
return window.Blazor.start()
|
|
46
|
+
return window.Blazor.start()
|
|
47
|
+
.then(getCapabilities)
|
|
48
|
+
.then((capabilities) => {
|
|
47
49
|
baseElement.href = originalBase;
|
|
48
|
-
return root;
|
|
50
|
+
return [root, capabilities];
|
|
49
51
|
});
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
|
-
return () => window.Blazor.start()
|
|
54
|
+
return () => window.Blazor.start()
|
|
55
|
+
.then(getCapabilities)
|
|
56
|
+
.then((capabilities) => [root, capabilities]);
|
|
53
57
|
}
|
|
54
58
|
function computePath() {
|
|
55
59
|
try {
|
|
@@ -87,6 +91,13 @@ export function deactivate(moduleName, referenceId) {
|
|
|
87
91
|
export function callNotifyLocationChanged(url, replace) {
|
|
88
92
|
return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
|
|
89
93
|
}
|
|
94
|
+
export function getCapabilities() {
|
|
95
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
|
|
96
|
+
// Apparently an older version of Piral.Blazor, which does not support this
|
|
97
|
+
// discard this error silently (in the future we may print warnings here)
|
|
98
|
+
return [];
|
|
99
|
+
});
|
|
100
|
+
}
|
|
90
101
|
export function loadResource(url) {
|
|
91
102
|
return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
|
|
92
103
|
}
|
|
@@ -96,6 +107,12 @@ export function loadResourceWithSymbol(dllUrl, pdbUrl) {
|
|
|
96
107
|
export function unloadResource(url) {
|
|
97
108
|
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
|
|
98
109
|
}
|
|
110
|
+
export function loadBlazorPilet(id, data) {
|
|
111
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
|
|
112
|
+
}
|
|
113
|
+
export function unloadBlazorPilet(id) {
|
|
114
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
|
|
115
|
+
}
|
|
99
116
|
export function initialize(scriptUrl, publicPath) {
|
|
100
117
|
return new Promise((resolve, reject) => {
|
|
101
118
|
const startBlazor = createBlazorStarter(publicPath);
|
|
@@ -118,7 +135,7 @@ export function createBootLoader(scriptUrl, satellites) {
|
|
|
118
135
|
return () => {
|
|
119
136
|
if (typeof window.$blazorLoader === 'undefined') {
|
|
120
137
|
// we load all satellite scripts before we initialize blazor
|
|
121
|
-
window.$blazorLoader = Promise.all(satellites.map(
|
|
138
|
+
window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
|
|
122
139
|
}
|
|
123
140
|
return window.$blazorLoader;
|
|
124
141
|
};
|
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;
|
|
1
|
+
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { ForeignComponent } from 'piral-core';
|
|
2
|
+
export declare type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
|
|
3
|
+
export interface BlazorDependencyLoader {
|
|
4
|
+
(config: BlazorRootConfig): Promise<void>;
|
|
5
|
+
}
|
|
2
6
|
declare global {
|
|
3
7
|
interface Window {
|
|
4
8
|
Blazor: any;
|
|
5
9
|
DotNet: any;
|
|
6
|
-
$blazorLoader: Promise<
|
|
10
|
+
$blazorLoader: Promise<BlazorRootConfig>;
|
|
7
11
|
$blazorDependencies: Array<{
|
|
8
12
|
name: string;
|
|
9
13
|
url: string;
|
|
@@ -41,7 +45,7 @@ export interface BlazorComponent {
|
|
|
41
45
|
* An optional dependency that needs to load before
|
|
42
46
|
* the component can be properly displayed.
|
|
43
47
|
*/
|
|
44
|
-
dependency?:
|
|
48
|
+
dependency?: BlazorDependencyLoader;
|
|
45
49
|
/**
|
|
46
50
|
* The type of the Blazor component.
|
|
47
51
|
*/
|
package/lib/converter.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseComponentProps, ForeignComponent } from 'piral-core';
|
|
2
|
-
import { BlazorOptions } from './types';
|
|
2
|
+
import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
|
|
3
3
|
export declare function createConverter(lazy: boolean): {
|
|
4
|
-
<TProps extends BaseComponentProps>(moduleName: string, dependency:
|
|
5
|
-
loader: Promise<
|
|
4
|
+
<TProps extends BaseComponentProps>(moduleName: string, dependency: BlazorDependencyLoader, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
|
|
5
|
+
loader: Promise<BlazorRootConfig>;
|
|
6
6
|
};
|
package/lib/converter.js
CHANGED
|
@@ -61,16 +61,17 @@ function createConverter(lazy) {
|
|
|
61
61
|
locals.update = noop;
|
|
62
62
|
locals.dispose = (0, events_1.attachEvents)(el, (ev) => data.piral.renderHtmlExtension(ev.detail.target, ev.detail.props), (ev) => ev.detail.replace ? nav.replace(ev.detail.to, ev.detail.store) : nav.push(ev.detail.to, ev.detail.state));
|
|
63
63
|
(loader || (loader = boot()))
|
|
64
|
-
.then((
|
|
64
|
+
.then((config) => dependency(config)
|
|
65
65
|
.then(() => (0, interop_1.activate)(moduleName, props))
|
|
66
66
|
.then((refId) => {
|
|
67
|
+
const [root] = config;
|
|
67
68
|
if (locals.state === 'fresh') {
|
|
68
69
|
locals.id = refId;
|
|
69
70
|
locals.node = root.querySelector(`#${locals.id} > div`);
|
|
70
71
|
project(locals.node, el, options);
|
|
71
72
|
locals.state = 'mounted';
|
|
72
73
|
locals.referenceId = refId;
|
|
73
|
-
locals.update(
|
|
74
|
+
locals.update(config);
|
|
74
75
|
locals.update = noop;
|
|
75
76
|
}
|
|
76
77
|
}))
|
|
@@ -86,7 +87,7 @@ function createConverter(lazy) {
|
|
|
86
87
|
(0, events_1.removeGlobalEventListeners)(el);
|
|
87
88
|
el.removeAttribute('data-blazor-pilet-root');
|
|
88
89
|
locals.dispose();
|
|
89
|
-
enqueueChange(locals, (root) => {
|
|
90
|
+
enqueueChange(locals, ([root]) => {
|
|
90
91
|
root.querySelector(`#${locals.id}`).appendChild(locals.node);
|
|
91
92
|
(0, interop_1.deactivate)(moduleName, locals.referenceId);
|
|
92
93
|
});
|
package/lib/converter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AACA,qCAA6F;AAC7F,uCAA0G;AAE1G,oDAA0C;AAE1C,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEtB,MAAM,UAAU,GAAG;IACjB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IAC3F,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE;CACtD,CAAC;AAEF,SAAS,kBAAkB,CAAC,SAAkB,EAAE,MAAc;IAC5D,MAAM,oBAAoB,GAAG,CAAC,EAAW,EAAE,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAElH,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC3F,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAED,SAAS,OAAO,CAAC,SAAkB,EAAE,WAAoB,EAAE,OAAsB;IAC/E,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC,uBAAU,CAAC,UAAU,EAAE;QACvD,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACzD;IAED,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAExC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;KAC3B;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,SAAgB,eAAe,CAAC,IAAa;IAC3C,MAAM,IAAI,GAAG,IAAA,0BAAgB,EAAC,uBAAU,CAAC,GAAG,EAAE,uBAAU,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAe,SAAS,CAAC;IAErC,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
|
package/lib/create.js
CHANGED
|
@@ -11,11 +11,13 @@ function createBlazorApi(config = {}) {
|
|
|
11
11
|
return (context) => {
|
|
12
12
|
const convert = (0, converter_1.createConverter)(lazy);
|
|
13
13
|
context.converters.blazor = ({ moduleName, args, dependency, options }) => convert(moduleName, dependency, args, options);
|
|
14
|
-
return () => {
|
|
14
|
+
return (_, meta) => {
|
|
15
15
|
const loader = (0, dependencies_1.createDependencyLoader)(convert, lazy);
|
|
16
16
|
let options;
|
|
17
17
|
return {
|
|
18
|
-
defineBlazorReferences
|
|
18
|
+
defineBlazorReferences(references) {
|
|
19
|
+
return loader.defineBlazorReferences(references, meta);
|
|
20
|
+
},
|
|
19
21
|
defineBlazorOptions(blazorOptions) {
|
|
20
22
|
options = blazorOptions;
|
|
21
23
|
},
|
package/lib/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,iDAAwD;AAcxD;;GAEG;AACH,SAAgB,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,iDAAwD;AAcxD;;GAEG;AACH,SAAgB,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,IAAA,qCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,CAAC,UAAU;oBAC/B,OAAO,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAhCD,0CAgCC"}
|
package/lib/dependencies.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { PiletMetadata } from 'piral-core';
|
|
1
2
|
import type { createConverter } from './converter';
|
|
3
|
+
import type { BlazorDependencyLoader } from './types';
|
|
2
4
|
export declare function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy?: boolean): {
|
|
3
|
-
getDependency():
|
|
4
|
-
defineBlazorReferences(references: Array<string>): void;
|
|
5
|
+
getDependency(): BlazorDependencyLoader;
|
|
6
|
+
defineBlazorReferences(references: Array<string>, meta?: Partial<PiletMetadata>): void;
|
|
5
7
|
releaseBlazorReferences(): Promise<void>;
|
|
6
8
|
};
|
package/lib/dependencies.js
CHANGED
|
@@ -7,44 +7,69 @@ const interop_1 = require("./interop");
|
|
|
7
7
|
const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
|
|
8
8
|
function createDependencyLoader(convert, lazy = true) {
|
|
9
9
|
const definedBlazorReferences = [];
|
|
10
|
+
const loadedBlazorPilets = [];
|
|
10
11
|
let dependency;
|
|
11
12
|
return {
|
|
12
13
|
getDependency() {
|
|
13
14
|
return dependency;
|
|
14
15
|
},
|
|
15
|
-
defineBlazorReferences(references) {
|
|
16
|
-
const load = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
defineBlazorReferences(references, meta = {}) {
|
|
17
|
+
const load = ([_, capabilities]) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
if (capabilities.includes('load')) {
|
|
19
|
+
// new loading mechanism
|
|
20
|
+
const dependencies = references.filter((m) => m.endsWith('.dll'));
|
|
21
|
+
const dllUrl = dependencies.pop();
|
|
22
|
+
const piletName = dllUrl.substring(0, dllUrl.length - 4);
|
|
23
|
+
const piletPdb = `${piletName}.pdb`;
|
|
24
|
+
const pdbUrl = references.find((m) => m === piletPdb);
|
|
25
|
+
const id = Math.random().toString(26).substring(2);
|
|
26
|
+
yield (0, interop_1.loadBlazorPilet)(id, {
|
|
27
|
+
name: meta.name || '(unknown)',
|
|
28
|
+
version: meta.version || '0.0.0',
|
|
29
|
+
config: JSON.stringify(meta.config || {}),
|
|
30
|
+
baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
|
|
31
|
+
dependencies,
|
|
32
|
+
dllUrl,
|
|
33
|
+
pdbUrl,
|
|
34
|
+
});
|
|
35
|
+
loadedBlazorPilets.push(id);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// old loading mechanism
|
|
39
|
+
for (const dllUrl of references) {
|
|
40
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
41
|
+
if (dllUrl.endsWith('.dll')) {
|
|
42
|
+
const entry = loadedDependencies.find((m) => m.name === dllName);
|
|
43
|
+
if (entry) {
|
|
44
|
+
entry.count++;
|
|
45
|
+
yield entry.promise;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
49
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
50
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
51
|
+
const promise = pdbUrl ? (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl) : (0, interop_1.loadResource)(dllUrl);
|
|
52
|
+
loadedDependencies.push({
|
|
53
|
+
name: dllName,
|
|
54
|
+
url: dllUrl,
|
|
55
|
+
count: 1,
|
|
56
|
+
promise,
|
|
57
|
+
});
|
|
58
|
+
yield promise;
|
|
59
|
+
}
|
|
60
|
+
definedBlazorReferences.push(dllName);
|
|
37
61
|
}
|
|
38
|
-
definedBlazorReferences.push(dllName);
|
|
39
62
|
}
|
|
40
63
|
}
|
|
41
64
|
});
|
|
42
65
|
let result = !lazy && convert.loader.then(load);
|
|
43
|
-
dependency = () => result || (result = load());
|
|
66
|
+
dependency = (config) => result || (result = load(config));
|
|
44
67
|
},
|
|
45
68
|
releaseBlazorReferences() {
|
|
46
69
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
70
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
71
|
+
const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
|
|
72
|
+
// old way of loading
|
|
48
73
|
for (const reference of references) {
|
|
49
74
|
const entry = loadedDependencies.find((m) => m.name === reference);
|
|
50
75
|
if (--entry.count === 0) {
|
|
@@ -52,6 +77,10 @@ function createDependencyLoader(convert, lazy = true) {
|
|
|
52
77
|
yield (0, interop_1.unloadResource)(entry.url);
|
|
53
78
|
}
|
|
54
79
|
}
|
|
80
|
+
// new way of loading
|
|
81
|
+
for (const id of ids) {
|
|
82
|
+
yield (0, interop_1.unloadBlazorPilet)(id);
|
|
83
|
+
}
|
|
55
84
|
});
|
|
56
85
|
},
|
|
57
86
|
};
|
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":"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"}
|
package/lib/interop.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
1
|
+
import type { BlazorRootConfig } from './types';
|
|
2
|
+
export declare function activate(moduleName: string, props: any): Promise<string>;
|
|
3
|
+
export declare function reactivate(moduleName: string, referenceId: string, props: any): Promise<void>;
|
|
4
|
+
export declare function deactivate(moduleName: string, referenceId: string): Promise<void>;
|
|
5
|
+
export declare function callNotifyLocationChanged(url: string, replace: boolean): Promise<void>;
|
|
6
|
+
export declare function getCapabilities(): Promise<Array<string>>;
|
|
7
|
+
export declare function loadResource(url: string): Promise<void>;
|
|
8
|
+
export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void>;
|
|
9
|
+
export declare function unloadResource(url: string): Promise<void>;
|
|
10
|
+
export interface PiletData {
|
|
11
|
+
dllUrl: string;
|
|
12
|
+
pdbUrl?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
config: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
dependencies: Array<string>;
|
|
18
|
+
}
|
|
19
|
+
export declare function loadBlazorPilet(id: string, data: PiletData): any;
|
|
20
|
+
export declare function unloadBlazorPilet(id: string): any;
|
|
21
|
+
export declare function initialize(scriptUrl: string, publicPath: string): Promise<BlazorRootConfig>;
|
|
22
|
+
export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<BlazorRootConfig>;
|
package/lib/interop.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createBootLoader = exports.initialize = exports.unloadResource = exports.loadResourceWithSymbol = exports.loadResource = exports.callNotifyLocationChanged = exports.deactivate = exports.reactivate = exports.activate = void 0;
|
|
3
|
+
exports.createBootLoader = exports.initialize = exports.unloadBlazorPilet = exports.loadBlazorPilet = exports.unloadResource = exports.loadResourceWithSymbol = exports.loadResource = exports.getCapabilities = exports.callNotifyLocationChanged = exports.deactivate = exports.reactivate = exports.activate = void 0;
|
|
4
4
|
const events_1 = require("./events");
|
|
5
5
|
const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
|
|
6
6
|
const coreLib = 'Piral.Blazor.Core';
|
|
@@ -46,13 +46,17 @@ function createBlazorStarter(publicPath) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
navManager.getBaseURI = () => originalBase;
|
|
49
|
-
return window.Blazor.start()
|
|
49
|
+
return window.Blazor.start()
|
|
50
|
+
.then(getCapabilities)
|
|
51
|
+
.then((capabilities) => {
|
|
50
52
|
baseElement.href = originalBase;
|
|
51
|
-
return root;
|
|
53
|
+
return [root, capabilities];
|
|
52
54
|
});
|
|
53
55
|
};
|
|
54
56
|
}
|
|
55
|
-
return () => window.Blazor.start()
|
|
57
|
+
return () => window.Blazor.start()
|
|
58
|
+
.then(getCapabilities)
|
|
59
|
+
.then((capabilities) => [root, capabilities]);
|
|
56
60
|
}
|
|
57
61
|
function computePath() {
|
|
58
62
|
try {
|
|
@@ -94,6 +98,14 @@ function callNotifyLocationChanged(url, replace) {
|
|
|
94
98
|
return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
|
|
95
99
|
}
|
|
96
100
|
exports.callNotifyLocationChanged = callNotifyLocationChanged;
|
|
101
|
+
function getCapabilities() {
|
|
102
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
|
|
103
|
+
// Apparently an older version of Piral.Blazor, which does not support this
|
|
104
|
+
// discard this error silently (in the future we may print warnings here)
|
|
105
|
+
return [];
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
exports.getCapabilities = getCapabilities;
|
|
97
109
|
function loadResource(url) {
|
|
98
110
|
return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
|
|
99
111
|
}
|
|
@@ -106,6 +118,14 @@ function unloadResource(url) {
|
|
|
106
118
|
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
|
|
107
119
|
}
|
|
108
120
|
exports.unloadResource = unloadResource;
|
|
121
|
+
function loadBlazorPilet(id, data) {
|
|
122
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
|
|
123
|
+
}
|
|
124
|
+
exports.loadBlazorPilet = loadBlazorPilet;
|
|
125
|
+
function unloadBlazorPilet(id) {
|
|
126
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
|
|
127
|
+
}
|
|
128
|
+
exports.unloadBlazorPilet = unloadBlazorPilet;
|
|
109
129
|
function initialize(scriptUrl, publicPath) {
|
|
110
130
|
return new Promise((resolve, reject) => {
|
|
111
131
|
const startBlazor = createBlazorStarter(publicPath);
|
|
@@ -129,7 +149,7 @@ function createBootLoader(scriptUrl, satellites) {
|
|
|
129
149
|
return () => {
|
|
130
150
|
if (typeof window.$blazorLoader === 'undefined') {
|
|
131
151
|
// we load all satellite scripts before we initialize blazor
|
|
132
|
-
window.$blazorLoader = Promise.all(satellites.map(
|
|
152
|
+
window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
|
|
133
153
|
}
|
|
134
154
|
return window.$blazorLoader;
|
|
135
155
|
};
|
package/lib/interop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":";;;AAAA,qCAA8D;
|
|
1
|
+
{"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { ForeignComponent } from 'piral-core';
|
|
2
|
+
export declare type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
|
|
3
|
+
export interface BlazorDependencyLoader {
|
|
4
|
+
(config: BlazorRootConfig): Promise<void>;
|
|
5
|
+
}
|
|
2
6
|
declare global {
|
|
3
7
|
interface Window {
|
|
4
8
|
Blazor: any;
|
|
5
9
|
DotNet: any;
|
|
6
|
-
$blazorLoader: Promise<
|
|
10
|
+
$blazorLoader: Promise<BlazorRootConfig>;
|
|
7
11
|
$blazorDependencies: Array<{
|
|
8
12
|
name: string;
|
|
9
13
|
url: string;
|
|
@@ -41,7 +45,7 @@ export interface BlazorComponent {
|
|
|
41
45
|
* An optional dependency that needs to load before
|
|
42
46
|
* the component can be properly displayed.
|
|
43
47
|
*/
|
|
44
|
-
dependency?:
|
|
48
|
+
dependency?: BlazorDependencyLoader;
|
|
45
49
|
/**
|
|
46
50
|
* The type of the Blazor component.
|
|
47
51
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-blazor",
|
|
3
|
-
"version": "0.15.2-beta.
|
|
3
|
+
"version": "0.15.2-beta.4938",
|
|
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.2-beta.
|
|
70
|
+
"piral-core": "0.15.2-beta.4938"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"blazor": "*"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "f0447352d4b8883b6476b5d1a260d4ec9cf2660d"
|
|
76
76
|
}
|
package/src/converter.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseComponentProps, Disposable, ForeignComponent } from 'piral-core';
|
|
2
2
|
import { addGlobalEventListeners, attachEvents, removeGlobalEventListeners } from './events';
|
|
3
3
|
import { activate, deactivate, createBootLoader, reactivate, callNotifyLocationChanged } from './interop';
|
|
4
|
-
import { BlazorOptions } from './types';
|
|
4
|
+
import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
|
|
5
5
|
import bootConfig from '../infra.codegen';
|
|
6
6
|
|
|
7
7
|
const noop = () => {};
|
|
@@ -44,7 +44,7 @@ interface BlazorLocals {
|
|
|
44
44
|
referenceId: string;
|
|
45
45
|
node: HTMLElement;
|
|
46
46
|
dispose(): void;
|
|
47
|
-
update(
|
|
47
|
+
update(config: BlazorRootConfig): void;
|
|
48
48
|
state: 'fresh' | 'mounted' | 'removed';
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -53,7 +53,7 @@ export function createConverter(lazy: boolean) {
|
|
|
53
53
|
let loader = !lazy && boot();
|
|
54
54
|
let listener: Disposable = undefined;
|
|
55
55
|
|
|
56
|
-
const enqueueChange = (locals: BlazorLocals, update: (root:
|
|
56
|
+
const enqueueChange = (locals: BlazorLocals, update: (root: BlazorRootConfig) => void) => {
|
|
57
57
|
if (locals.state === 'mounted') {
|
|
58
58
|
loader.then(update);
|
|
59
59
|
} else {
|
|
@@ -63,7 +63,7 @@ export function createConverter(lazy: boolean) {
|
|
|
63
63
|
|
|
64
64
|
const convert = <TProps extends BaseComponentProps>(
|
|
65
65
|
moduleName: string,
|
|
66
|
-
dependency:
|
|
66
|
+
dependency: BlazorDependencyLoader,
|
|
67
67
|
args: Record<string, any>,
|
|
68
68
|
options?: BlazorOptions,
|
|
69
69
|
): ForeignComponent<TProps> => ({
|
|
@@ -94,17 +94,19 @@ export function createConverter(lazy: boolean) {
|
|
|
94
94
|
);
|
|
95
95
|
|
|
96
96
|
(loader || (loader = boot()))
|
|
97
|
-
.then((
|
|
98
|
-
dependency()
|
|
97
|
+
.then((config) =>
|
|
98
|
+
dependency(config)
|
|
99
99
|
.then(() => activate(moduleName, props))
|
|
100
100
|
.then((refId) => {
|
|
101
|
+
const [root] = config;
|
|
102
|
+
|
|
101
103
|
if (locals.state === 'fresh') {
|
|
102
104
|
locals.id = refId;
|
|
103
105
|
locals.node = root.querySelector(`#${locals.id} > div`);
|
|
104
106
|
project(locals.node, el, options);
|
|
105
107
|
locals.state = 'mounted';
|
|
106
108
|
locals.referenceId = refId;
|
|
107
|
-
locals.update(
|
|
109
|
+
locals.update(config);
|
|
108
110
|
locals.update = noop;
|
|
109
111
|
}
|
|
110
112
|
}),
|
|
@@ -122,7 +124,7 @@ export function createConverter(lazy: boolean) {
|
|
|
122
124
|
el.removeAttribute('data-blazor-pilet-root');
|
|
123
125
|
locals.dispose();
|
|
124
126
|
|
|
125
|
-
enqueueChange(locals, (root) => {
|
|
127
|
+
enqueueChange(locals, ([root]) => {
|
|
126
128
|
root.querySelector(`#${locals.id}`).appendChild(locals.node);
|
|
127
129
|
deactivate(moduleName, locals.referenceId);
|
|
128
130
|
});
|
package/src/create.ts
CHANGED
|
@@ -25,12 +25,14 @@ export function createBlazorApi(config: BlazorConfig = {}): PiralPlugin<PiletBla
|
|
|
25
25
|
context.converters.blazor = ({ moduleName, args, dependency, options }) =>
|
|
26
26
|
convert(moduleName, dependency, args, options);
|
|
27
27
|
|
|
28
|
-
return () => {
|
|
28
|
+
return (_, meta) => {
|
|
29
29
|
const loader = createDependencyLoader(convert, lazy);
|
|
30
30
|
let options: BlazorOptions;
|
|
31
31
|
|
|
32
32
|
return {
|
|
33
|
-
defineBlazorReferences
|
|
33
|
+
defineBlazorReferences(references) {
|
|
34
|
+
return loader.defineBlazorReferences(references, meta);
|
|
35
|
+
},
|
|
34
36
|
defineBlazorOptions(blazorOptions: BlazorOptions) {
|
|
35
37
|
options = blazorOptions;
|
|
36
38
|
},
|
package/src/dependencies.ts
CHANGED
|
@@ -1,53 +1,83 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PiletMetadata } from 'piral-core';
|
|
2
|
+
import { loadBlazorPilet, loadResource, loadResourceWithSymbol, unloadBlazorPilet, unloadResource } from './interop';
|
|
2
3
|
import type { createConverter } from './converter';
|
|
4
|
+
import type { BlazorDependencyLoader, BlazorRootConfig } from './types';
|
|
3
5
|
|
|
4
6
|
const loadedDependencies = (window.$blazorDependencies ??= []);
|
|
5
7
|
|
|
6
8
|
export function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy = true) {
|
|
7
9
|
const definedBlazorReferences: Array<string> = [];
|
|
8
|
-
|
|
10
|
+
const loadedBlazorPilets: Array<string> = [];
|
|
11
|
+
let dependency: BlazorDependencyLoader;
|
|
9
12
|
|
|
10
13
|
return {
|
|
11
14
|
getDependency() {
|
|
12
15
|
return dependency;
|
|
13
16
|
},
|
|
14
|
-
defineBlazorReferences(references: Array<string>) {
|
|
15
|
-
const load = async () => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
defineBlazorReferences(references: Array<string>, meta: Partial<PiletMetadata> = {}) {
|
|
18
|
+
const load = async ([_, capabilities]: BlazorRootConfig) => {
|
|
19
|
+
if (capabilities.includes('load')) {
|
|
20
|
+
// new loading mechanism
|
|
21
|
+
|
|
22
|
+
const dependencies = references.filter((m) => m.endsWith('.dll'));
|
|
23
|
+
const dllUrl = dependencies.pop();
|
|
24
|
+
const piletName = dllUrl.substring(0, dllUrl.length - 4);
|
|
25
|
+
const piletPdb = `${piletName}.pdb`;
|
|
26
|
+
const pdbUrl = references.find((m) => m === piletPdb);
|
|
27
|
+
const id = Math.random().toString(26).substring(2);
|
|
28
|
+
|
|
29
|
+
await loadBlazorPilet(id, {
|
|
30
|
+
name: meta.name || '(unknown)',
|
|
31
|
+
version: meta.version || '0.0.0',
|
|
32
|
+
config: JSON.stringify(meta.config || {}),
|
|
33
|
+
baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
|
|
34
|
+
dependencies,
|
|
35
|
+
dllUrl,
|
|
36
|
+
pdbUrl,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
loadedBlazorPilets.push(id);
|
|
40
|
+
} else {
|
|
41
|
+
// old loading mechanism
|
|
42
|
+
|
|
43
|
+
for (const dllUrl of references) {
|
|
44
|
+
const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
|
|
45
|
+
|
|
46
|
+
if (dllUrl.endsWith('.dll')) {
|
|
47
|
+
const entry = loadedDependencies.find((m) => m.name === dllName);
|
|
40
48
|
|
|
41
|
-
|
|
49
|
+
if (entry) {
|
|
50
|
+
entry.count++;
|
|
51
|
+
await entry.promise;
|
|
52
|
+
} else {
|
|
53
|
+
const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
|
|
54
|
+
const pdbName = `${urlWithoutExtension}.pdb`;
|
|
55
|
+
const pdbUrl = references.find((m) => m === pdbName);
|
|
56
|
+
const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
|
|
57
|
+
|
|
58
|
+
loadedDependencies.push({
|
|
59
|
+
name: dllName,
|
|
60
|
+
url: dllUrl,
|
|
61
|
+
count: 1,
|
|
62
|
+
promise,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
await promise;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
definedBlazorReferences.push(dllName);
|
|
69
|
+
}
|
|
42
70
|
}
|
|
43
71
|
}
|
|
44
72
|
};
|
|
45
73
|
let result = !lazy && convert.loader.then(load);
|
|
46
|
-
dependency = () => result || (result = load());
|
|
74
|
+
dependency = (config) => result || (result = load(config));
|
|
47
75
|
},
|
|
48
76
|
async releaseBlazorReferences() {
|
|
49
77
|
const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
|
|
78
|
+
const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
|
|
50
79
|
|
|
80
|
+
// old way of loading
|
|
51
81
|
for (const reference of references) {
|
|
52
82
|
const entry = loadedDependencies.find((m) => m.name === reference);
|
|
53
83
|
|
|
@@ -56,6 +86,11 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
|
|
|
56
86
|
await unloadResource(entry.url);
|
|
57
87
|
}
|
|
58
88
|
}
|
|
89
|
+
|
|
90
|
+
// new way of loading
|
|
91
|
+
for (const id of ids) {
|
|
92
|
+
await unloadBlazorPilet(id);
|
|
93
|
+
}
|
|
59
94
|
},
|
|
60
95
|
};
|
|
61
96
|
}
|
package/src/interop.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { emitRenderEvent, emitNavigateEvent } from './events';
|
|
2
|
+
import type { BlazorRootConfig } from './types';
|
|
2
3
|
|
|
3
4
|
const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
|
|
4
5
|
const coreLib = 'Piral.Blazor.Core';
|
|
@@ -30,7 +31,7 @@ function createBase() {
|
|
|
30
31
|
return document.head.appendChild(el);
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
function createBlazorStarter(publicPath: string): () => Promise<
|
|
34
|
+
function createBlazorStarter(publicPath: string): () => Promise<BlazorRootConfig> {
|
|
34
35
|
const root = document.body.appendChild(document.createElement('div'));
|
|
35
36
|
|
|
36
37
|
root.style.display = 'none';
|
|
@@ -55,14 +56,19 @@ function createBlazorStarter(publicPath: string): () => Promise<HTMLDivElement>
|
|
|
55
56
|
|
|
56
57
|
navManager.getBaseURI = () => originalBase;
|
|
57
58
|
|
|
58
|
-
return window.Blazor.start()
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
return window.Blazor.start()
|
|
60
|
+
.then(getCapabilities)
|
|
61
|
+
.then((capabilities) => {
|
|
62
|
+
baseElement.href = originalBase;
|
|
63
|
+
return [root, capabilities];
|
|
64
|
+
});
|
|
62
65
|
};
|
|
63
66
|
}
|
|
64
67
|
|
|
65
|
-
return () =>
|
|
68
|
+
return () =>
|
|
69
|
+
window.Blazor.start()
|
|
70
|
+
.then(getCapabilities)
|
|
71
|
+
.then((capabilities) => [root, capabilities]);
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
function computePath() {
|
|
@@ -88,39 +94,65 @@ function addScript(url: string) {
|
|
|
88
94
|
});
|
|
89
95
|
}
|
|
90
96
|
|
|
91
|
-
export function activate(moduleName: string, props: any) {
|
|
97
|
+
export function activate(moduleName: string, props: any): Promise<string> {
|
|
92
98
|
return window.DotNet.invokeMethodAsync(coreLib, 'Activate', moduleName, props);
|
|
93
99
|
}
|
|
94
100
|
|
|
95
|
-
export function reactivate(moduleName: string, referenceId: string, props: any) {
|
|
101
|
+
export function reactivate(moduleName: string, referenceId: string, props: any): Promise<void> {
|
|
96
102
|
return window.DotNet.invokeMethodAsync(coreLib, 'Reactivate', moduleName, referenceId, props).catch(() => {
|
|
97
103
|
// Apparently an older version of Piral.Blazor, which does not support this
|
|
98
104
|
// discard this error silently (in the future we may print warnings here)
|
|
99
105
|
});
|
|
100
106
|
}
|
|
101
107
|
|
|
102
|
-
export function deactivate(moduleName: string, referenceId: string) {
|
|
108
|
+
export function deactivate(moduleName: string, referenceId: string): Promise<void> {
|
|
103
109
|
return window.DotNet.invokeMethodAsync(coreLib, 'Deactivate', moduleName, referenceId);
|
|
104
110
|
}
|
|
105
111
|
|
|
106
|
-
export function callNotifyLocationChanged(url: string, replace: boolean) {
|
|
112
|
+
export function callNotifyLocationChanged(url: string, replace: boolean): Promise<void> {
|
|
107
113
|
return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
|
|
108
114
|
}
|
|
109
115
|
|
|
110
|
-
export function
|
|
116
|
+
export function getCapabilities(): Promise<Array<string>> {
|
|
117
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
|
|
118
|
+
// Apparently an older version of Piral.Blazor, which does not support this
|
|
119
|
+
// discard this error silently (in the future we may print warnings here)
|
|
120
|
+
return [];
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function loadResource(url: string): Promise<void> {
|
|
111
125
|
return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
|
|
112
126
|
}
|
|
113
127
|
|
|
114
|
-
export function loadResourceWithSymbol(dllUrl: string, pdbUrl: string) {
|
|
128
|
+
export function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void> {
|
|
115
129
|
return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsWithSymbolsFromLibrary', dllUrl, pdbUrl);
|
|
116
130
|
}
|
|
117
131
|
|
|
118
|
-
export function unloadResource(url: string) {
|
|
132
|
+
export function unloadResource(url: string): Promise<void> {
|
|
119
133
|
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
|
|
120
134
|
}
|
|
121
135
|
|
|
136
|
+
export interface PiletData {
|
|
137
|
+
dllUrl: string;
|
|
138
|
+
pdbUrl?: string;
|
|
139
|
+
name: string;
|
|
140
|
+
version: string;
|
|
141
|
+
config: string;
|
|
142
|
+
baseUrl: string;
|
|
143
|
+
dependencies: Array<string>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function loadBlazorPilet(id: string, data: PiletData) {
|
|
147
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function unloadBlazorPilet(id: string) {
|
|
151
|
+
return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
|
|
152
|
+
}
|
|
153
|
+
|
|
122
154
|
export function initialize(scriptUrl: string, publicPath: string) {
|
|
123
|
-
return new Promise<
|
|
155
|
+
return new Promise<BlazorRootConfig>((resolve, reject) => {
|
|
124
156
|
const startBlazor = createBlazorStarter(publicPath);
|
|
125
157
|
const script = document.createElement('script');
|
|
126
158
|
script.src = scriptUrl;
|
|
@@ -146,9 +178,7 @@ export function createBootLoader(scriptUrl: string, satellites: Array<string>) {
|
|
|
146
178
|
return () => {
|
|
147
179
|
if (typeof window.$blazorLoader === 'undefined') {
|
|
148
180
|
// we load all satellite scripts before we initialize blazor
|
|
149
|
-
window.$blazorLoader = Promise.all(satellites.map(
|
|
150
|
-
initialize(scriptUrl, publicPath),
|
|
151
|
-
);
|
|
181
|
+
window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
|
|
152
182
|
}
|
|
153
183
|
|
|
154
184
|
return window.$blazorLoader;
|
package/src/types.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import type { ForeignComponent } from 'piral-core';
|
|
2
2
|
|
|
3
|
+
export type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
|
|
4
|
+
|
|
5
|
+
export interface BlazorDependencyLoader {
|
|
6
|
+
(config: BlazorRootConfig): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
|
|
3
9
|
declare global {
|
|
4
10
|
interface Window {
|
|
5
11
|
Blazor: any;
|
|
6
12
|
DotNet: any;
|
|
7
|
-
$blazorLoader: Promise<
|
|
13
|
+
$blazorLoader: Promise<BlazorRootConfig>;
|
|
8
14
|
$blazorDependencies: Array<{
|
|
9
15
|
name: string;
|
|
10
16
|
url: string;
|
|
@@ -45,7 +51,7 @@ export interface BlazorComponent {
|
|
|
45
51
|
* An optional dependency that needs to load before
|
|
46
52
|
* the component can be properly displayed.
|
|
47
53
|
*/
|
|
48
|
-
dependency?:
|
|
54
|
+
dependency?: BlazorDependencyLoader;
|
|
49
55
|
/**
|
|
50
56
|
* The type of the Blazor component.
|
|
51
57
|
*/
|