piral-blazor 1.0.0-pre.2217 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +55 -12
  3. package/convert.d.ts +13 -10
  4. package/convert.js +17 -12
  5. package/esm/converter.d.ts +10 -6
  6. package/esm/converter.js +164 -48
  7. package/esm/converter.js.map +1 -1
  8. package/esm/create.d.ts +21 -1
  9. package/esm/create.js +29 -15
  10. package/esm/create.js.map +1 -1
  11. package/esm/dependencies.d.ts +6 -3
  12. package/esm/dependencies.js +104 -14
  13. package/esm/dependencies.js.map +1 -1
  14. package/esm/events.d.ts +6 -0
  15. package/esm/events.js +145 -0
  16. package/esm/events.js.map +1 -0
  17. package/esm/interop.d.ts +29 -0
  18. package/esm/interop.js +205 -0
  19. package/esm/interop.js.map +1 -0
  20. package/esm/navigation.d.ts +2 -0
  21. package/esm/navigation.js +30 -0
  22. package/esm/navigation.js.map +1 -0
  23. package/esm/types.d.ts +97 -4
  24. package/infra.codegen +53 -68
  25. package/lib/converter.d.ts +10 -6
  26. package/lib/converter.js +164 -48
  27. package/lib/converter.js.map +1 -1
  28. package/lib/create.d.ts +21 -1
  29. package/lib/create.js +31 -17
  30. package/lib/create.js.map +1 -1
  31. package/lib/dependencies.d.ts +6 -3
  32. package/lib/dependencies.js +104 -14
  33. package/lib/dependencies.js.map +1 -1
  34. package/lib/events.d.ts +6 -0
  35. package/lib/events.js +154 -0
  36. package/lib/events.js.map +1 -0
  37. package/lib/index.js +1 -1
  38. package/lib/interop.d.ts +29 -0
  39. package/lib/interop.js +226 -0
  40. package/lib/interop.js.map +1 -0
  41. package/lib/navigation.d.ts +2 -0
  42. package/lib/navigation.js +35 -0
  43. package/lib/navigation.js.map +1 -0
  44. package/lib/types.d.ts +97 -4
  45. package/package.json +26 -13
  46. package/src/converter.ts +237 -57
  47. package/src/create.ts +53 -9
  48. package/src/dependencies.ts +122 -14
  49. package/src/events.ts +174 -0
  50. package/src/interop.ts +273 -0
  51. package/src/navigation.ts +36 -0
  52. package/src/types.ts +115 -4
  53. package/convert.ts +0 -17
  54. package/esm/internal/Environment.d.ts +0 -3
  55. package/esm/internal/Environment.js +0 -6
  56. package/esm/internal/Environment.js.map +0 -1
  57. package/esm/internal/Platform/BootConfig.d.ts +0 -20
  58. package/esm/internal/Platform/BootConfig.js +0 -10
  59. package/esm/internal/Platform/BootConfig.js.map +0 -1
  60. package/esm/internal/Platform/Mono/MonoDebugger.d.ts +0 -3
  61. package/esm/internal/Platform/Mono/MonoDebugger.js +0 -43
  62. package/esm/internal/Platform/Mono/MonoDebugger.js.map +0 -1
  63. package/esm/internal/Platform/Mono/MonoPlatform.d.ts +0 -2
  64. package/esm/internal/Platform/Mono/MonoPlatform.js +0 -403
  65. package/esm/internal/Platform/Mono/MonoPlatform.js.map +0 -1
  66. package/esm/internal/Platform/Mono/TimezoneDataFile.d.ts +0 -1
  67. package/esm/internal/Platform/Mono/TimezoneDataFile.js +0 -51
  68. package/esm/internal/Platform/Mono/TimezoneDataFile.js.map +0 -1
  69. package/esm/internal/Platform/Platform.d.ts +0 -31
  70. package/esm/internal/Platform/Platform.js +0 -2
  71. package/esm/internal/Platform/Platform.js.map +0 -1
  72. package/esm/internal/Platform/Url.d.ts +0 -2
  73. package/esm/internal/Platform/Url.js +0 -11
  74. package/esm/internal/Platform/Url.js.map +0 -1
  75. package/esm/internal/Platform/WebAssemblyConfigLoader.d.ts +0 -4
  76. package/esm/internal/Platform/WebAssemblyConfigLoader.js +0 -64
  77. package/esm/internal/Platform/WebAssemblyConfigLoader.js.map +0 -1
  78. package/esm/internal/Platform/WebAssemblyResourceLoader.d.ts +0 -24
  79. package/esm/internal/Platform/WebAssemblyResourceLoader.js +0 -223
  80. package/esm/internal/Platform/WebAssemblyResourceLoader.js.map +0 -1
  81. package/esm/internal/Platform/WebAssemblyStartOptions.d.ts +0 -13
  82. package/esm/internal/Platform/WebAssemblyStartOptions.js +0 -2
  83. package/esm/internal/Platform/WebAssemblyStartOptions.js.map +0 -1
  84. package/esm/internal/Rendering/BrowserRenderer.d.ts +0 -38
  85. package/esm/internal/Rendering/BrowserRenderer.js +0 -458
  86. package/esm/internal/Rendering/BrowserRenderer.js.map +0 -1
  87. package/esm/internal/Rendering/ElementReferenceCapture.d.ts +0 -1
  88. package/esm/internal/Rendering/ElementReferenceCapture.js +0 -24
  89. package/esm/internal/Rendering/ElementReferenceCapture.js.map +0 -1
  90. package/esm/internal/Rendering/EventDelegator.d.ts +0 -20
  91. package/esm/internal/Rendering/EventDelegator.js +0 -236
  92. package/esm/internal/Rendering/EventDelegator.js.map +0 -1
  93. package/esm/internal/Rendering/EventFieldInfo.d.ts +0 -6
  94. package/esm/internal/Rendering/EventFieldInfo.js +0 -32
  95. package/esm/internal/Rendering/EventFieldInfo.js.map +0 -1
  96. package/esm/internal/Rendering/EventForDotNet.d.ts +0 -10
  97. package/esm/internal/Rendering/EventForDotNet.js +0 -194
  98. package/esm/internal/Rendering/EventForDotNet.js.map +0 -1
  99. package/esm/internal/Rendering/LogicalElements.d.ts +0 -19
  100. package/esm/internal/Rendering/LogicalElements.js +0 -250
  101. package/esm/internal/Rendering/LogicalElements.js.map +0 -1
  102. package/esm/internal/Rendering/RenderBatch/BinaryDecoder.d.ts +0 -5
  103. package/esm/internal/Rendering/RenderBatch/BinaryDecoder.js +0 -34
  104. package/esm/internal/Rendering/RenderBatch/BinaryDecoder.js.map +0 -1
  105. package/esm/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.d.ts +0 -18
  106. package/esm/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.js +0 -190
  107. package/esm/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.js.map +0 -1
  108. package/esm/internal/Rendering/RenderBatch/RenderBatch.d.ts +0 -87
  109. package/esm/internal/Rendering/RenderBatch/RenderBatch.js +0 -26
  110. package/esm/internal/Rendering/RenderBatch/RenderBatch.js.map +0 -1
  111. package/esm/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.d.ts +0 -52
  112. package/esm/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.js +0 -103
  113. package/esm/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.js.map +0 -1
  114. package/esm/internal/Rendering/RenderBatch/Utf8Decoder.d.ts +0 -1
  115. package/esm/internal/Rendering/RenderBatch/Utf8Decoder.js +0 -63
  116. package/esm/internal/Rendering/RenderBatch/Utf8Decoder.js.map +0 -1
  117. package/esm/internal/Rendering/Renderer.d.ts +0 -8
  118. package/esm/internal/Rendering/Renderer.js +0 -69
  119. package/esm/internal/Rendering/Renderer.js.map +0 -1
  120. package/esm/internal/Rendering/RendererEventDispatcher.d.ts +0 -4
  121. package/esm/internal/Rendering/RendererEventDispatcher.js +0 -11
  122. package/esm/internal/Rendering/RendererEventDispatcher.js.map +0 -1
  123. package/esm/internal/Services/NavigationManager.d.ts +0 -16
  124. package/esm/internal/Services/NavigationManager.js +0 -138
  125. package/esm/internal/Services/NavigationManager.js.map +0 -1
  126. package/esm/internal/globals.d.ts +0 -1
  127. package/esm/internal/globals.js +0 -5
  128. package/esm/internal/globals.js.map +0 -1
  129. package/esm/internal/index.d.ts +0 -15
  130. package/esm/internal/index.js +0 -152
  131. package/esm/internal/index.js.map +0 -1
  132. package/lib/internal/Environment.d.ts +0 -3
  133. package/lib/internal/Environment.js +0 -9
  134. package/lib/internal/Environment.js.map +0 -1
  135. package/lib/internal/Platform/BootConfig.d.ts +0 -20
  136. package/lib/internal/Platform/BootConfig.js +0 -13
  137. package/lib/internal/Platform/BootConfig.js.map +0 -1
  138. package/lib/internal/Platform/Mono/MonoDebugger.d.ts +0 -3
  139. package/lib/internal/Platform/Mono/MonoDebugger.js +0 -48
  140. package/lib/internal/Platform/Mono/MonoDebugger.js.map +0 -1
  141. package/lib/internal/Platform/Mono/MonoPlatform.d.ts +0 -2
  142. package/lib/internal/Platform/Mono/MonoPlatform.js +0 -406
  143. package/lib/internal/Platform/Mono/MonoPlatform.js.map +0 -1
  144. package/lib/internal/Platform/Mono/TimezoneDataFile.d.ts +0 -1
  145. package/lib/internal/Platform/Mono/TimezoneDataFile.js +0 -55
  146. package/lib/internal/Platform/Mono/TimezoneDataFile.js.map +0 -1
  147. package/lib/internal/Platform/Platform.d.ts +0 -31
  148. package/lib/internal/Platform/Platform.js +0 -3
  149. package/lib/internal/Platform/Platform.js.map +0 -1
  150. package/lib/internal/Platform/Url.d.ts +0 -2
  151. package/lib/internal/Platform/Url.js +0 -16
  152. package/lib/internal/Platform/Url.js.map +0 -1
  153. package/lib/internal/Platform/WebAssemblyConfigLoader.d.ts +0 -4
  154. package/lib/internal/Platform/WebAssemblyConfigLoader.js +0 -67
  155. package/lib/internal/Platform/WebAssemblyConfigLoader.js.map +0 -1
  156. package/lib/internal/Platform/WebAssemblyResourceLoader.d.ts +0 -24
  157. package/lib/internal/Platform/WebAssemblyResourceLoader.js +0 -226
  158. package/lib/internal/Platform/WebAssemblyResourceLoader.js.map +0 -1
  159. package/lib/internal/Platform/WebAssemblyStartOptions.d.ts +0 -13
  160. package/lib/internal/Platform/WebAssemblyStartOptions.js +0 -3
  161. package/lib/internal/Platform/WebAssemblyStartOptions.js.map +0 -1
  162. package/lib/internal/Rendering/BrowserRenderer.d.ts +0 -38
  163. package/lib/internal/Rendering/BrowserRenderer.js +0 -461
  164. package/lib/internal/Rendering/BrowserRenderer.js.map +0 -1
  165. package/lib/internal/Rendering/ElementReferenceCapture.d.ts +0 -1
  166. package/lib/internal/Rendering/ElementReferenceCapture.js +0 -28
  167. package/lib/internal/Rendering/ElementReferenceCapture.js.map +0 -1
  168. package/lib/internal/Rendering/EventDelegator.d.ts +0 -20
  169. package/lib/internal/Rendering/EventDelegator.js +0 -239
  170. package/lib/internal/Rendering/EventDelegator.js.map +0 -1
  171. package/lib/internal/Rendering/EventFieldInfo.d.ts +0 -6
  172. package/lib/internal/Rendering/EventFieldInfo.js +0 -35
  173. package/lib/internal/Rendering/EventFieldInfo.js.map +0 -1
  174. package/lib/internal/Rendering/EventForDotNet.d.ts +0 -10
  175. package/lib/internal/Rendering/EventForDotNet.js +0 -197
  176. package/lib/internal/Rendering/EventForDotNet.js.map +0 -1
  177. package/lib/internal/Rendering/LogicalElements.d.ts +0 -19
  178. package/lib/internal/Rendering/LogicalElements.js +0 -265
  179. package/lib/internal/Rendering/LogicalElements.js.map +0 -1
  180. package/lib/internal/Rendering/RenderBatch/BinaryDecoder.d.ts +0 -5
  181. package/lib/internal/Rendering/RenderBatch/BinaryDecoder.js +0 -42
  182. package/lib/internal/Rendering/RenderBatch/BinaryDecoder.js.map +0 -1
  183. package/lib/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.d.ts +0 -18
  184. package/lib/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.js +0 -193
  185. package/lib/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.js.map +0 -1
  186. package/lib/internal/Rendering/RenderBatch/RenderBatch.d.ts +0 -87
  187. package/lib/internal/Rendering/RenderBatch/RenderBatch.js +0 -29
  188. package/lib/internal/Rendering/RenderBatch/RenderBatch.js.map +0 -1
  189. package/lib/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.d.ts +0 -52
  190. package/lib/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.js +0 -106
  191. package/lib/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.js.map +0 -1
  192. package/lib/internal/Rendering/RenderBatch/Utf8Decoder.d.ts +0 -1
  193. package/lib/internal/Rendering/RenderBatch/Utf8Decoder.js +0 -66
  194. package/lib/internal/Rendering/RenderBatch/Utf8Decoder.js.map +0 -1
  195. package/lib/internal/Rendering/Renderer.d.ts +0 -8
  196. package/lib/internal/Rendering/Renderer.js +0 -76
  197. package/lib/internal/Rendering/Renderer.js.map +0 -1
  198. package/lib/internal/Rendering/RendererEventDispatcher.d.ts +0 -4
  199. package/lib/internal/Rendering/RendererEventDispatcher.js +0 -16
  200. package/lib/internal/Rendering/RendererEventDispatcher.js.map +0 -1
  201. package/lib/internal/Services/NavigationManager.d.ts +0 -16
  202. package/lib/internal/Services/NavigationManager.js +0 -144
  203. package/lib/internal/Services/NavigationManager.js.map +0 -1
  204. package/lib/internal/globals.d.ts +0 -1
  205. package/lib/internal/globals.js +0 -7
  206. package/lib/internal/globals.js.map +0 -1
  207. package/lib/internal/index.d.ts +0 -15
  208. package/lib/internal/index.js +0 -161
  209. package/lib/internal/index.js.map +0 -1
  210. package/src/internal/Environment.ts +0 -11
  211. package/src/internal/Platform/BootConfig.ts +0 -21
  212. package/src/internal/Platform/Mono/MonoDebugger.ts +0 -48
  213. package/src/internal/Platform/Mono/MonoPlatform.ts +0 -494
  214. package/src/internal/Platform/Mono/MonoTypes.d.ts +0 -27
  215. package/src/internal/Platform/Mono/TimezoneDataFile.ts +0 -46
  216. package/src/internal/Platform/Platform.ts +0 -40
  217. package/src/internal/Platform/Url.ts +0 -11
  218. package/src/internal/Platform/WebAssemblyConfigLoader.ts +0 -34
  219. package/src/internal/Platform/WebAssemblyResourceLoader.ts +0 -234
  220. package/src/internal/Platform/WebAssemblyStartOptions.ts +0 -22
  221. package/src/internal/Rendering/BrowserRenderer.ts +0 -616
  222. package/src/internal/Rendering/ElementReferenceCapture.ts +0 -27
  223. package/src/internal/Rendering/EventDelegator.ts +0 -293
  224. package/src/internal/Rendering/EventFieldInfo.ts +0 -31
  225. package/src/internal/Rendering/EventForDotNet.ts +0 -370
  226. package/src/internal/Rendering/LogicalElements.ts +0 -289
  227. package/src/internal/Rendering/RenderBatch/BinaryDecoder.ts +0 -43
  228. package/src/internal/Rendering/RenderBatch/OutOfProcessRenderBatch.ts +0 -244
  229. package/src/internal/Rendering/RenderBatch/RenderBatch.ts +0 -100
  230. package/src/internal/Rendering/RenderBatch/SharedMemoryRenderBatch.ts +0 -137
  231. package/src/internal/Rendering/RenderBatch/Utf8Decoder.ts +0 -66
  232. package/src/internal/Rendering/Renderer.ts +0 -98
  233. package/src/internal/Rendering/RendererEventDispatcher.ts +0 -20
  234. package/src/internal/Services/NavigationManager.ts +0 -157
  235. package/src/internal/globals.ts +0 -5
  236. package/src/internal/index.ts +0 -170
@@ -1,21 +1,111 @@
1
- import { addReference } from './internal';
2
- export function createDependencyLoader(convert, lazy) {
3
- if (lazy === void 0) { lazy = true; }
4
- var dependency;
1
+ var _a, _b;
2
+ import { __awaiter } from "tslib";
3
+ import { loadBlazorPilet, loadResource, loadResourceWithSymbol, unloadBlazorPilet, unloadResource } from './interop';
4
+ const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
5
+ const depsWithPrios = ((_b = window.$blazorDependencyPrios) !== null && _b !== void 0 ? _b : (window.$blazorDependencyPrios = []));
6
+ export function createDependencyLoader(convert) {
7
+ const definedBlazorReferences = [];
8
+ const loadedBlazorPilets = [];
9
+ let dependency;
5
10
  return {
6
- getDependency: function () {
11
+ getDependency() {
7
12
  return dependency;
8
13
  },
9
- defineBlazorReferences: function (references) {
10
- var load = function () {
11
- return Promise.all(references.map(function (reference) {
12
- return fetch(reference)
13
- .then(function (res) { return res.blob(); })
14
- .then(addReference);
15
- }));
14
+ defineBlazorReferences(references, meta = {}, satellites = {}, prio = 0) {
15
+ prio = Math.max(prio, 0);
16
+ const depWithPrio = {
17
+ prio,
18
+ load() {
19
+ return Promise.resolve();
20
+ },
16
21
  };
17
- var result = !lazy && convert.loader.then(load);
18
- dependency = function () { return result || (result = load()); };
22
+ let result = false;
23
+ const load = ([_, capabilities]) => __awaiter(this, void 0, void 0, function* () {
24
+ // let others finish first
25
+ yield Promise.all(depsWithPrios.filter((m) => m.prio > prio).map((m) => m.load()));
26
+ window.dispatchEvent(new CustomEvent('loading-blazor-pilet', { detail: meta }));
27
+ if (capabilities.includes('load')) {
28
+ // new loading mechanism
29
+ if (!capabilities.includes('language')) {
30
+ satellites = undefined;
31
+ }
32
+ const dependencies = references.filter((m) => m.endsWith('.dll'));
33
+ const dllUrl = dependencies.pop();
34
+ const piletName = dllUrl.substring(0, dllUrl.length - 4);
35
+ const piletPdb = `${piletName}.pdb`;
36
+ const pdbUrl = references.find((m) => m === piletPdb);
37
+ const id = Math.random().toString(26).substring(2);
38
+ yield loadBlazorPilet(id, {
39
+ name: meta.name || '(unknown)',
40
+ version: meta.version || '0.0.0',
41
+ config: JSON.stringify(meta.config || {}),
42
+ baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
43
+ dependencies,
44
+ satellites,
45
+ dllUrl,
46
+ pdbUrl,
47
+ });
48
+ loadedBlazorPilets.push(id);
49
+ }
50
+ else {
51
+ // old loading mechanism
52
+ for (const dllUrl of references) {
53
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
54
+ if (dllUrl.endsWith('.dll')) {
55
+ const entry = loadedDependencies.find((m) => m.name === dllName);
56
+ if (entry) {
57
+ entry.count++;
58
+ yield entry.promise;
59
+ }
60
+ else {
61
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
62
+ const pdbName = `${urlWithoutExtension}.pdb`;
63
+ const pdbUrl = references.find((m) => m === pdbName);
64
+ const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
65
+ loadedDependencies.push({
66
+ name: dllName,
67
+ url: dllUrl,
68
+ count: 1,
69
+ promise,
70
+ });
71
+ yield promise;
72
+ }
73
+ definedBlazorReferences.push(dllName);
74
+ }
75
+ }
76
+ }
77
+ // inform remaining that this one finished
78
+ window.dispatchEvent(new CustomEvent('loaded-blazor-pilet', { detail: meta }));
79
+ });
80
+ depWithPrio.load = () => {
81
+ if (!result) {
82
+ result = convert.loader.then(load);
83
+ }
84
+ return result;
85
+ };
86
+ result = !convert.lazy && convert.loader.then(load);
87
+ dependency = (config) => result || (result = load(config));
88
+ if (prio) {
89
+ depsWithPrios.push(depWithPrio);
90
+ }
91
+ },
92
+ releaseBlazorReferences() {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
95
+ const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
96
+ // old way of loading
97
+ for (const reference of references) {
98
+ const entry = loadedDependencies.find((m) => m.name === reference);
99
+ if (--entry.count === 0) {
100
+ loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
101
+ yield unloadResource(entry.url);
102
+ }
103
+ }
104
+ // new way of loading
105
+ for (const id of ids) {
106
+ yield unloadBlazorPilet(id);
107
+ }
108
+ });
19
109
  },
20
110
  };
21
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,UAAU,sBAAsB,CAAC,OAA2C,EAAE,IAAW;IAAX,qBAAA,EAAA,WAAW;IAC7F,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,YAAC,UAAU;YAC/B,IAAM,IAAI,GAAG;gBACX,OAAA,OAAO,CAAC,GAAG,CACT,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS;oBACvB,OAAA,KAAK,CAAC,SAAS,CAAC;yBACb,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;yBACzB,IAAI,CAAC,YAAY,CAAC;gBAFrB,CAEqB,CACtB,CACF;YAND,CAMC,CAAC;YACJ,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,cAAM,OAAA,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAA3B,CAA2B,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIrH,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,mBAAmB,oCAA1B,MAAM,CAAC,mBAAmB,GAAK,EAAE,EAAC,CAAC;AAC/D,MAAM,aAAa,GAAG,OAAC,MAAM,CAAC,sBAAsB,oCAA7B,MAAM,CAAC,sBAAsB,GAAK,EAAE,EAAC,CAAC;AAE7D,MAAM,UAAU,sBAAsB,CAAC,OAA2C;IAChF,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAkB,EAAE,CAAC;IAC7C,IAAI,UAAkC,CAAC;IAEvC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB,EAAE,OAA+B,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC;YAC5G,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEzB,MAAM,WAAW,GAAG;gBAClB,IAAI;gBACJ,IAAI;oBACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;aACF,CAAC;YAEF,IAAI,MAAM,GAA0B,KAAK,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAO,CAAC,CAAC,EAAE,YAAY,CAAmB,EAAE,EAAE;gBACzD,0BAA0B;gBAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAEnF,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAEhF,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACjC,wBAAwB;oBAExB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wBACtC,UAAU,GAAG,SAAS,CAAC;qBACxB;oBAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;oBAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACzD,MAAM,QAAQ,GAAG,GAAG,SAAS,MAAM,CAAC;oBACpC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;oBACtD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAEnD,MAAM,eAAe,CAAC,EAAE,EAAE;wBACxB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW;wBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;wBAChC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;wBACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;wBACnG,YAAY;wBACZ,UAAU;wBACV,MAAM;wBACN,MAAM;qBACP,CAAC,CAAC;oBAEH,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;qBAAM;oBACL,wBAAwB;oBAExB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;wBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBAE9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;4BAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;4BAEjE,IAAI,KAAK,EAAE;gCACT,KAAK,CAAC,KAAK,EAAE,CAAC;gCACd,MAAM,KAAK,CAAC,OAAO,CAAC;6BACrB;iCAAM;gCACL,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;gCAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;gCACrD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gCAEvF,kBAAkB,CAAC,IAAI,CAAC;oCACtB,IAAI,EAAE,OAAO;oCACb,GAAG,EAAE,MAAM;oCACX,KAAK,EAAE,CAAC;oCACR,OAAO;iCACR,CAAC,CAAC;gCAEH,MAAM,OAAO,CAAC;6BACf;4BAED,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBACvC;qBACF;iBACF;gBAED,0CAA0C;gBAC1C,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC,CAAA,CAAC;YAEF,WAAW,CAAC,IAAI,GAAG,GAAG,EAAE;gBACtB,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YACF,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,UAAU,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;QACH,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrF,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAEpE,qBAAqB;gBACrB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEnE,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;gBAED,qBAAqB;gBACrB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;oBACpB,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;iBAC7B;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function emitRenderEvent(source: HTMLElement, name: string, params: any, sourceRef: any, fallbackComponent: string | null): void;
2
+ export declare function emitPiralEvent(type: string, args: any): void;
3
+ export declare function emitNavigateEvent(source: HTMLElement, to: string, replace?: boolean, state?: any): void;
4
+ export declare function attachEvents(host: HTMLElement, render: (ev: CustomEvent) => void, navigate: (ev: CustomEvent) => void, forward: (ev: CustomEvent) => void): () => void;
5
+ export declare function addGlobalEventListeners(el: HTMLElement): void;
6
+ export declare function removeGlobalEventListeners(el: HTMLElement): void;
package/esm/events.js ADDED
@@ -0,0 +1,145 @@
1
+ import { isInternalNavigation, performInternalNavigation } from './navigation';
2
+ const blazorRootId = 'blazor-root';
3
+ const eventParents = [];
4
+ const globalEventNames = [
5
+ 'abort',
6
+ 'blur',
7
+ 'change',
8
+ 'error',
9
+ 'focus',
10
+ 'load',
11
+ 'loadend',
12
+ 'loadstart',
13
+ 'mouseenter',
14
+ 'mouseleave',
15
+ 'progress',
16
+ 'reset',
17
+ 'scroll',
18
+ 'submit',
19
+ 'unload',
20
+ 'DOMNodeInsertedIntoDocument',
21
+ 'DOMNodeRemovedFromDocument',
22
+ 'click',
23
+ 'dblclick',
24
+ 'mousedown',
25
+ 'mousemove',
26
+ 'mouseup',
27
+ ];
28
+ const eventNames = {
29
+ render: 'render-blazor-extension',
30
+ navigate: 'navigate-blazor',
31
+ piral: 'piral-blazor',
32
+ };
33
+ function isRooted(target) {
34
+ let parent = target.parentElement;
35
+ while (parent) {
36
+ if (parent.id === blazorRootId) {
37
+ return true;
38
+ }
39
+ parent = parent.parentElement;
40
+ }
41
+ return false;
42
+ }
43
+ function findTarget(target = document.body) {
44
+ if (eventParents.length === 0) {
45
+ return target;
46
+ }
47
+ else if (target === document.body) {
48
+ return eventParents[0];
49
+ }
50
+ else {
51
+ return target;
52
+ }
53
+ }
54
+ function dispatchToRoot(event) {
55
+ var _a;
56
+ isInternalNavigation(event) && performInternalNavigation(event);
57
+ // the mutation event cannot be cloned (at least in Webkit-based browsers)
58
+ if (!(event instanceof MutationEvent) && !event.processed) {
59
+ const eventClone = new event.constructor(event.type, event);
60
+ (_a = document.getElementById(blazorRootId)) === null || _a === void 0 ? void 0 : _a.dispatchEvent(eventClone);
61
+ // make sure to only process every event once; even though multiple boundaries might be active
62
+ event.processed = true;
63
+ }
64
+ }
65
+ export function emitRenderEvent(source, name, params, sourceRef, fallbackComponent) {
66
+ const target = findTarget(source);
67
+ const empty = typeof fallbackComponent === 'string' ? () => { } : undefined;
68
+ const order = typeof sourceRef !== 'undefined'
69
+ ? (elements) => {
70
+ const oldItems = elements.map((el, id) => {
71
+ var _a;
72
+ return ({
73
+ id,
74
+ pilet: el.pilet,
75
+ defaults: (_a = el.defaults) !== null && _a !== void 0 ? _a : {},
76
+ });
77
+ });
78
+ const newItems = sourceRef.invokeMethod('Order', oldItems);
79
+ return newItems.map(({ id }) => elements[id]).filter(Boolean);
80
+ }
81
+ : undefined;
82
+ const eventInit = {
83
+ bubbles: true,
84
+ detail: {
85
+ target,
86
+ props: {
87
+ name,
88
+ params,
89
+ empty,
90
+ order,
91
+ },
92
+ },
93
+ };
94
+ const delayEmit = () => requestAnimationFrame(() => {
95
+ if (!isRooted(target)) {
96
+ target.dispatchEvent(new CustomEvent(eventNames.render, eventInit));
97
+ }
98
+ else {
99
+ delayEmit();
100
+ }
101
+ });
102
+ delayEmit();
103
+ }
104
+ export function emitPiralEvent(type, args) {
105
+ document.body.dispatchEvent(new CustomEvent(eventNames.piral, {
106
+ bubbles: false,
107
+ detail: {
108
+ type,
109
+ args,
110
+ },
111
+ }));
112
+ }
113
+ export function emitNavigateEvent(source, to, replace = false, state) {
114
+ findTarget(source).dispatchEvent(new CustomEvent(eventNames.navigate, {
115
+ bubbles: true,
116
+ detail: {
117
+ to,
118
+ replace,
119
+ state,
120
+ },
121
+ }));
122
+ }
123
+ export function attachEvents(host, render, navigate, forward) {
124
+ eventParents.push(host);
125
+ host.addEventListener(eventNames.render, render, false);
126
+ host.addEventListener(eventNames.navigate, navigate, false);
127
+ if (eventParents.length === 1) {
128
+ document.body.addEventListener(eventNames.piral, forward, false);
129
+ }
130
+ return () => {
131
+ eventParents.splice(eventParents.indexOf(host), 1);
132
+ host.removeEventListener(eventNames.render, render, false);
133
+ host.removeEventListener(eventNames.navigate, navigate, false);
134
+ if (eventParents.length === 0) {
135
+ document.body.removeEventListener(eventNames.piral, forward, false);
136
+ }
137
+ };
138
+ }
139
+ export function addGlobalEventListeners(el) {
140
+ globalEventNames.forEach((eventName) => el.addEventListener(eventName, dispatchToRoot));
141
+ }
142
+ export function removeGlobalEventListeners(el) {
143
+ globalEventNames.forEach((eventName) => el.removeEventListener(eventName, dispatchToRoot));
144
+ }
145
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { BlazorLogLevel, BlazorRootConfig, WebAssemblyStartOptions } from './types';
2
+ export declare function processEvent(type: string, args: any): any;
3
+ export declare function setLogLevel(logLevel: BlazorLogLevel): any;
4
+ export declare function createElement(moduleName: string, props: any): Promise<string>;
5
+ export declare function updateElement(referenceId: string, props: any): Promise<string>;
6
+ export declare function destroyElement(referenceId: string): Promise<string>;
7
+ export declare function activate(moduleName: string, props: any): Promise<string>;
8
+ export declare function reactivate(moduleName: string, referenceId: string, props: any): Promise<void>;
9
+ export declare function deactivate(moduleName: string, referenceId: string): Promise<void>;
10
+ export declare function callNotifyLocationChanged(url: string, replace: boolean, state: any): Promise<void>;
11
+ export declare function setLanguage(language: string): Promise<void>;
12
+ export declare function getCapabilities(): Promise<Array<string>>;
13
+ export declare function loadResource(url: string): Promise<void>;
14
+ export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void>;
15
+ export declare function unloadResource(url: string): Promise<void>;
16
+ export interface PiletData {
17
+ dllUrl: string;
18
+ pdbUrl?: string;
19
+ name: string;
20
+ version: string;
21
+ config: string;
22
+ baseUrl: string;
23
+ satellites?: Record<string, Array<string>>;
24
+ dependencies: Array<string>;
25
+ }
26
+ export declare function loadBlazorPilet(id: string, data: PiletData): any;
27
+ export declare function unloadBlazorPilet(id: string): any;
28
+ export declare function initialize(scriptUrl: string, publicPath: string, opts?: WebAssemblyStartOptions): Promise<BlazorRootConfig>;
29
+ export declare function createBootLoader(scriptUrl: string, extraScriptUrls: Array<string>): (opts?: WebAssemblyStartOptions) => Promise<BlazorRootConfig>;
package/esm/interop.js ADDED
@@ -0,0 +1,205 @@
1
+ import { emitRenderEvent, emitNavigateEvent, emitPiralEvent } from './events';
2
+ const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
3
+ const coreLib = 'Piral.Blazor.Core';
4
+ function isDotNet6OrBelow() {
5
+ return typeof window.Blazor._internal.NavigationLock === 'undefined';
6
+ }
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
+ }
29
+ function prepareForStartup() {
30
+ const originalApplyHotReload = window.Blazor._internal.applyHotReload;
31
+ const queue = [];
32
+ const applyChanges = (api) => {
33
+ const pilet = api.meta;
34
+ if (pilet.config && pilet.config.blazorHotReload) {
35
+ for (const item of queue.splice(0, queue.length)) {
36
+ item();
37
+ }
38
+ window.Blazor._internal.applyHotReload = originalApplyHotReload;
39
+ }
40
+ };
41
+ window.Blazor._internal.applyHotReload = function (...args) {
42
+ queue.push(() => originalApplyHotReload.apply(this, args));
43
+ };
44
+ return getCapabilities().then((capabilities) => ({
45
+ capabilities,
46
+ applyChanges,
47
+ }));
48
+ }
49
+ function createBlazorStarter(publicPath) {
50
+ const root = document.body.appendChild(document.createElement('div'));
51
+ root.style.display = 'none';
52
+ root.id = 'blazor-root';
53
+ if (publicPath) {
54
+ const baseElement = document.head.querySelector('base') || createBase();
55
+ const originalBase = baseElement.href;
56
+ baseElement.href = publicPath;
57
+ return (opts) => {
58
+ const navManager = window.Blazor._internal.navigationManager;
59
+ //Overwrite to get NavigationManager in Blazor working, see https://github.com/smapiot/Piral.Blazor/issues/89
60
+ navManager.navigateTo = (route, opts) => {
61
+ if (opts.forceLoad) {
62
+ location.href = route;
63
+ return;
64
+ }
65
+ if (route.startsWith(location.origin) && '') {
66
+ // normalize "local" absolute URLs
67
+ route = route.substring(location.origin.length);
68
+ }
69
+ else if (/^https?:\/\//.test(route)) {
70
+ // prevent absolute URLs to be a standard navigation
71
+ location.href = route;
72
+ return;
73
+ }
74
+ window.Blazor.emitNavigateEvent(undefined, route, opts.replaceHistoryEntry, opts.historyEntryState);
75
+ };
76
+ navManager.getBaseURI = () => originalBase;
77
+ return window.Blazor.start(opts)
78
+ .then(prepareForStartup)
79
+ .then(({ capabilities, applyChanges }) => {
80
+ baseElement.href = originalBase;
81
+ return [root, capabilities, applyChanges];
82
+ });
83
+ };
84
+ }
85
+ return (opts) => window.Blazor.start(opts)
86
+ .then(prepareForStartup)
87
+ .then(({ capabilities, applyChanges }) => [root, capabilities, applyChanges]);
88
+ }
89
+ function computePath() {
90
+ try {
91
+ throw new Error();
92
+ }
93
+ catch (t) {
94
+ const e = ('' + t.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\/\/[^)\n]+/g);
95
+ if (e) {
96
+ return e[0].replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)\/[^\/]+$/, '$1') + '/';
97
+ }
98
+ }
99
+ return '/';
100
+ }
101
+ function addScript(url) {
102
+ return new Promise((resolve, reject) => {
103
+ const script = document.createElement('script');
104
+ script.src = url;
105
+ script.onerror = () => reject();
106
+ script.onload = () => resolve();
107
+ document.body.appendChild(script);
108
+ });
109
+ }
110
+ export function processEvent(type, args) {
111
+ return window.DotNet.invokeMethodAsync(coreLib, 'ProcessEvent', type, args);
112
+ }
113
+ export function setLogLevel(logLevel) {
114
+ return window.DotNet.invokeMethodAsync(coreLib, 'SetLogLevel', logLevel);
115
+ }
116
+ export function createElement(moduleName, props) {
117
+ return window.DotNet.invokeMethodAsync(coreLib, 'CreateElement', moduleName, props);
118
+ }
119
+ export function updateElement(referenceId, props) {
120
+ return window.DotNet.invokeMethodAsync(coreLib, 'UpdateElement', referenceId, props);
121
+ }
122
+ export function destroyElement(referenceId) {
123
+ return window.DotNet.invokeMethodAsync(coreLib, 'DestroyElement', referenceId);
124
+ }
125
+ export function activate(moduleName, props) {
126
+ return window.DotNet.invokeMethodAsync(coreLib, 'Activate', moduleName, props);
127
+ }
128
+ export function reactivate(moduleName, referenceId, props) {
129
+ return window.DotNet.invokeMethodAsync(coreLib, 'Reactivate', moduleName, referenceId, props).catch(() => {
130
+ // Apparently an older version of Piral.Blazor, which does not support this
131
+ // discard this error silently (in the future we may print warnings here)
132
+ });
133
+ }
134
+ export function deactivate(moduleName, referenceId) {
135
+ return window.DotNet.invokeMethodAsync(coreLib, 'Deactivate', moduleName, referenceId);
136
+ }
137
+ export function callNotifyLocationChanged(url, replace, state) {
138
+ if (isDotNet6OrBelow()) {
139
+ return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
140
+ }
141
+ else {
142
+ if (state !== undefined && typeof state !== 'string') {
143
+ state = JSON.stringify(state);
144
+ }
145
+ return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, state, replace);
146
+ }
147
+ }
148
+ export function setLanguage(language) {
149
+ return window.DotNet.invokeMethodAsync(coreLib, 'SetLanguage', language);
150
+ }
151
+ export function getCapabilities() {
152
+ return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
153
+ // Apparently an older version of Piral.Blazor, which does not support this
154
+ // discard this error silently (in the future we may print warnings here)
155
+ return [];
156
+ });
157
+ }
158
+ export function loadResource(url) {
159
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
160
+ }
161
+ export function loadResourceWithSymbol(dllUrl, pdbUrl) {
162
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsWithSymbolsFromLibrary', dllUrl, pdbUrl);
163
+ }
164
+ export function unloadResource(url) {
165
+ return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
166
+ }
167
+ export function loadBlazorPilet(id, data) {
168
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
169
+ }
170
+ export function unloadBlazorPilet(id) {
171
+ return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
172
+ }
173
+ export function initialize(scriptUrl, publicPath, opts = {}) {
174
+ if (typeof opts.loadBootResource !== 'function') {
175
+ opts.loadBootResource = (type, name, url) => type === 'dotnetjs' ? url : fetch(url, { method: 'GET', cache: 'no-cache' });
176
+ }
177
+ return new Promise((resolve, reject) => {
178
+ const startBlazor = createBlazorStarter(publicPath);
179
+ const script = document.createElement('script');
180
+ script.src = scriptUrl;
181
+ script.setAttribute('autostart', 'false');
182
+ script.onerror = () => reject();
183
+ script.onload = () => {
184
+ Object.assign(window.Blazor, {
185
+ emitRenderEvent,
186
+ emitNavigateEvent,
187
+ emitPiralEvent,
188
+ });
189
+ startBlazor(opts).then(resolve);
190
+ };
191
+ document.body.appendChild(script);
192
+ });
193
+ }
194
+ export function createBootLoader(scriptUrl, extraScriptUrls) {
195
+ const publicPath = computePath();
196
+ return (opts) => {
197
+ if (typeof window.$blazorLoader === 'undefined') {
198
+ window.dispatchEvent(new CustomEvent('loading-blazor-core'));
199
+ // we load all satellite scripts before we initialize blazor
200
+ window.$blazorLoader = Promise.all(extraScriptUrls.map(addScript)).then(() => initialize(scriptUrl, publicPath, opts));
201
+ }
202
+ return window.$blazorLoader;
203
+ };
204
+ }
205
+ //# sourceMappingURL=interop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function isInternalNavigation(event: MouseEvent): boolean;
2
+ export declare function performInternalNavigation(event: MouseEvent): void;
@@ -0,0 +1,30 @@
1
+ function findClosestAncestor(element, tagName) {
2
+ // tslint:disable-next-line:no-null-keyword
3
+ return !element ? null : element.tagName === tagName ? element : findClosestAncestor(element.parentElement, tagName);
4
+ }
5
+ function getAnchorTarget(event) {
6
+ return findClosestAncestor(event.target, 'A');
7
+ }
8
+ function isWithinBaseUriSpace(href) {
9
+ const baseURI = document.baseURI;
10
+ const baseUriUntilLastSlash = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);
11
+ return href.startsWith(baseUriUntilLastSlash);
12
+ }
13
+ function eventHasSpecialKey(event) {
14
+ return event.ctrlKey || event.shiftKey || event.altKey || event.metaKey;
15
+ }
16
+ export function isInternalNavigation(event) {
17
+ const anchorTarget = getAnchorTarget(event);
18
+ return (event.type === 'click' &&
19
+ event.button === 0 &&
20
+ !eventHasSpecialKey(event) &&
21
+ (anchorTarget === null || anchorTarget === void 0 ? void 0 : anchorTarget.hasAttribute('href')) &&
22
+ isWithinBaseUriSpace(anchorTarget.href));
23
+ }
24
+ export function performInternalNavigation(event) {
25
+ const anchorTarget = getAnchorTarget(event);
26
+ event.preventDefault();
27
+ const to = anchorTarget.getAttribute('href');
28
+ window.Blazor.emitNavigateEvent(anchorTarget, to);
29
+ }
30
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,CAAC,OAAuB,EAAE,OAAe;IACnE,2CAA2C;IAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACvH,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAwB,EAAE,GAAG,CAA6B,CAAC;AAC9F,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,kBAAkB,CAAC,KAAK,CAAC;SAC1B,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QAClC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAiB;IACzD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC"}