piral-blazor
Advanced tools
Comparing version 1.6.0-beta.7142 to 1.6.0-beta.7144
@@ -1,2 +0,2 @@ | ||
import { addGlobalEventListeners, attachEvents, removeGlobalEventListeners } from './events'; | ||
import { attachLocalEvents } from './events'; | ||
import { activate, deactivate, createBootLoader, reactivate, callNotifyLocationChanged, setLanguage, createElement, destroyElement, updateElement, setLogLevel, processEvent, } from './interop'; | ||
@@ -32,10 +32,8 @@ import bootConfig from '../infra.codegen'; | ||
const bootLoader = createBootLoader(bootConfig.url, bootConfig.satellites); | ||
const boot = (opts) => bootLoader(opts).then(async (res) => { | ||
const [_, capabilities] = res; | ||
if (capabilities.includes('logging')) { | ||
if (typeof logLevel === 'number') { | ||
await setLogLevel(logLevel); | ||
} | ||
const boot = (opts) => bootLoader(opts).then(async ({ config, first }) => { | ||
const [_, capabilities] = config; | ||
if (typeof logLevel === 'number' && capabilities.includes('logging')) { | ||
await setLogLevel(logLevel); | ||
} | ||
if (capabilities.includes('events')) { | ||
if (first && capabilities.includes('events')) { | ||
const eventDispatcher = document.body.dispatchEvent; | ||
@@ -67,3 +65,3 @@ // listen to all events for forwarding them | ||
window.dispatchEvent(new CustomEvent('loaded-blazor-core')); | ||
return res; | ||
return config; | ||
}); | ||
@@ -89,6 +87,5 @@ let loader = !lazy && boot(opts); | ||
el.setAttribute('data-blazor-pilet-root', 'true'); | ||
addGlobalEventListeners(el); | ||
locals.state = 'fresh'; | ||
locals.next = noop; | ||
locals.dispose = attachEvents(el, (ev) => { | ||
locals.dispose = attachLocalEvents(el, (ev) => { | ||
ev.stopPropagation(); | ||
@@ -101,6 +98,2 @@ const { target, props } = ev.detail; | ||
replace ? nav.replace(to, state) : nav.push(to, state); | ||
}, (ev) => { | ||
ev.stopPropagation(); | ||
const { type, args } = ev.detail; | ||
piral.emit(type, args); | ||
}); | ||
@@ -170,3 +163,2 @@ function mountClassic(config) { | ||
unmount(el, locals) { | ||
removeGlobalEventListeners(el); | ||
el.removeAttribute('data-blazor-pilet-root'); | ||
@@ -173,0 +165,0 @@ locals.dispose(); |
export declare function emitRenderEvent(source: HTMLElement, name: string, params: any, sourceRef: any, fallbackComponent: string | null): void; | ||
export declare function emitPiralEvent(type: string, args: any): void; | ||
export declare function emitNavigateEvent(source: HTMLElement, to: string, replace?: boolean, state?: any): void; | ||
export declare function attachEvents(host: HTMLElement, render: (ev: CustomEvent) => void, navigate: (ev: CustomEvent) => void, forward: (ev: CustomEvent) => void): () => void; | ||
export declare function addGlobalEventListeners(el: HTMLElement): void; | ||
export declare function removeGlobalEventListeners(el: HTMLElement): void; | ||
export declare function attachLocalEvents(host: HTMLElement, render: (ev: CustomEvent) => void, navigate: (ev: CustomEvent) => void): () => void; |
@@ -32,3 +32,3 @@ import { createElement } from 'react'; | ||
navigate: 'navigate-blazor', | ||
piral: 'piral-blazor', | ||
forward: 'forward-event', | ||
}; | ||
@@ -107,3 +107,3 @@ function isRooted(target) { | ||
export function emitPiralEvent(type, args) { | ||
document.body.dispatchEvent(new CustomEvent(eventNames.piral, { | ||
document.body.dispatchEvent(new CustomEvent(eventNames.forward, { | ||
bubbles: false, | ||
@@ -126,24 +126,14 @@ detail: { | ||
} | ||
export function attachEvents(host, render, navigate, forward) { | ||
eventParents.push(host); | ||
export function attachLocalEvents(host, render, navigate) { | ||
host.addEventListener(eventNames.render, render, false); | ||
host.addEventListener(eventNames.navigate, navigate, false); | ||
if (eventParents.length === 1) { | ||
document.body.addEventListener(eventNames.piral, forward, false); | ||
} | ||
// install proxy handlers | ||
globalEventNames.forEach((eventName) => host.addEventListener(eventName, dispatchToRoot)); | ||
return () => { | ||
eventParents.splice(eventParents.indexOf(host), 1); | ||
host.removeEventListener(eventNames.render, render, false); | ||
host.removeEventListener(eventNames.navigate, navigate, false); | ||
if (eventParents.length === 0) { | ||
document.body.removeEventListener(eventNames.piral, forward, false); | ||
} | ||
// uninstall proxy handlers | ||
globalEventNames.forEach((eventName) => host.removeEventListener(eventName, dispatchToRoot)); | ||
}; | ||
} | ||
export function addGlobalEventListeners(el) { | ||
globalEventNames.forEach((eventName) => el.addEventListener(eventName, dispatchToRoot)); | ||
} | ||
export function removeGlobalEventListeners(el) { | ||
globalEventNames.forEach((eventName) => el.removeEventListener(eventName, dispatchToRoot)); | ||
} | ||
//# sourceMappingURL=events.js.map |
@@ -32,2 +32,5 @@ import type { BlazorLogLevel, BlazorRootConfig, WebAssemblyStartOptions } from './types'; | ||
export declare function initialize(scriptUrl: string, publicPath: string, opts?: WebAssemblyStartOptions): Promise<BlazorRootConfig>; | ||
export declare function createBootLoader(scriptUrl: string, extraScriptUrls: Array<string>): (opts?: WebAssemblyStartOptions) => Promise<BlazorRootConfig>; | ||
export declare function createBootLoader(scriptUrl: string, extraScriptUrls: Array<string>): (opts?: WebAssemblyStartOptions) => Promise<{ | ||
config: BlazorRootConfig; | ||
first: boolean; | ||
}>; |
@@ -208,4 +208,5 @@ import { emitRenderEvent, emitNavigateEvent, emitPiralEvent } from './events'; | ||
const publicPath = computePath(); | ||
return (opts) => { | ||
if (typeof window.$blazorLoader === 'undefined') { | ||
return async (opts) => { | ||
const first = typeof window.$blazorLoader === 'undefined'; | ||
if (first) { | ||
window.dispatchEvent(new CustomEvent('loading-blazor-core')); | ||
@@ -215,5 +216,9 @@ // we load all satellite scripts before we initialize blazor | ||
} | ||
return window.$blazorLoader; | ||
const config = await window.$blazorLoader; | ||
return { | ||
config, | ||
first, | ||
}; | ||
}; | ||
} | ||
//# sourceMappingURL=interop.js.map |
@@ -35,10 +35,8 @@ "use strict"; | ||
const bootLoader = (0, interop_1.createBootLoader)(infra_codegen_1.default.url, infra_codegen_1.default.satellites); | ||
const boot = (opts) => bootLoader(opts).then(async (res) => { | ||
const [_, capabilities] = res; | ||
if (capabilities.includes('logging')) { | ||
if (typeof logLevel === 'number') { | ||
await (0, interop_1.setLogLevel)(logLevel); | ||
} | ||
const boot = (opts) => bootLoader(opts).then(async ({ config, first }) => { | ||
const [_, capabilities] = config; | ||
if (typeof logLevel === 'number' && capabilities.includes('logging')) { | ||
await (0, interop_1.setLogLevel)(logLevel); | ||
} | ||
if (capabilities.includes('events')) { | ||
if (first && capabilities.includes('events')) { | ||
const eventDispatcher = document.body.dispatchEvent; | ||
@@ -70,3 +68,3 @@ // listen to all events for forwarding them | ||
window.dispatchEvent(new CustomEvent('loaded-blazor-core')); | ||
return res; | ||
return config; | ||
}); | ||
@@ -92,6 +90,5 @@ let loader = !lazy && boot(opts); | ||
el.setAttribute('data-blazor-pilet-root', 'true'); | ||
(0, events_1.addGlobalEventListeners)(el); | ||
locals.state = 'fresh'; | ||
locals.next = noop; | ||
locals.dispose = (0, events_1.attachEvents)(el, (ev) => { | ||
locals.dispose = (0, events_1.attachLocalEvents)(el, (ev) => { | ||
ev.stopPropagation(); | ||
@@ -104,6 +101,2 @@ const { target, props } = ev.detail; | ||
replace ? nav.replace(to, state) : nav.push(to, state); | ||
}, (ev) => { | ||
ev.stopPropagation(); | ||
const { type, args } = ev.detail; | ||
piral.emit(type, args); | ||
}); | ||
@@ -173,3 +166,2 @@ function mountClassic(config) { | ||
unmount(el, locals) { | ||
(0, events_1.removeGlobalEventListeners)(el); | ||
el.removeAttribute('data-blazor-pilet-root'); | ||
@@ -176,0 +168,0 @@ locals.dispose(); |
export declare function emitRenderEvent(source: HTMLElement, name: string, params: any, sourceRef: any, fallbackComponent: string | null): void; | ||
export declare function emitPiralEvent(type: string, args: any): void; | ||
export declare function emitNavigateEvent(source: HTMLElement, to: string, replace?: boolean, state?: any): void; | ||
export declare function attachEvents(host: HTMLElement, render: (ev: CustomEvent) => void, navigate: (ev: CustomEvent) => void, forward: (ev: CustomEvent) => void): () => void; | ||
export declare function addGlobalEventListeners(el: HTMLElement): void; | ||
export declare function removeGlobalEventListeners(el: HTMLElement): void; | ||
export declare function attachLocalEvents(host: HTMLElement, render: (ev: CustomEvent) => void, navigate: (ev: CustomEvent) => void): () => void; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.removeGlobalEventListeners = exports.addGlobalEventListeners = exports.attachEvents = exports.emitNavigateEvent = exports.emitPiralEvent = exports.emitRenderEvent = void 0; | ||
exports.attachLocalEvents = exports.emitNavigateEvent = exports.emitPiralEvent = exports.emitRenderEvent = void 0; | ||
const react_1 = require("react"); | ||
@@ -35,3 +35,3 @@ const navigation_1 = require("./navigation"); | ||
navigate: 'navigate-blazor', | ||
piral: 'piral-blazor', | ||
forward: 'forward-event', | ||
}; | ||
@@ -111,3 +111,3 @@ function isRooted(target) { | ||
function emitPiralEvent(type, args) { | ||
document.body.dispatchEvent(new CustomEvent(eventNames.piral, { | ||
document.body.dispatchEvent(new CustomEvent(eventNames.forward, { | ||
bubbles: false, | ||
@@ -132,27 +132,15 @@ detail: { | ||
exports.emitNavigateEvent = emitNavigateEvent; | ||
function attachEvents(host, render, navigate, forward) { | ||
eventParents.push(host); | ||
function attachLocalEvents(host, render, navigate) { | ||
host.addEventListener(eventNames.render, render, false); | ||
host.addEventListener(eventNames.navigate, navigate, false); | ||
if (eventParents.length === 1) { | ||
document.body.addEventListener(eventNames.piral, forward, false); | ||
} | ||
// install proxy handlers | ||
globalEventNames.forEach((eventName) => host.addEventListener(eventName, dispatchToRoot)); | ||
return () => { | ||
eventParents.splice(eventParents.indexOf(host), 1); | ||
host.removeEventListener(eventNames.render, render, false); | ||
host.removeEventListener(eventNames.navigate, navigate, false); | ||
if (eventParents.length === 0) { | ||
document.body.removeEventListener(eventNames.piral, forward, false); | ||
} | ||
// uninstall proxy handlers | ||
globalEventNames.forEach((eventName) => host.removeEventListener(eventName, dispatchToRoot)); | ||
}; | ||
} | ||
exports.attachEvents = attachEvents; | ||
function addGlobalEventListeners(el) { | ||
globalEventNames.forEach((eventName) => el.addEventListener(eventName, dispatchToRoot)); | ||
} | ||
exports.addGlobalEventListeners = addGlobalEventListeners; | ||
function removeGlobalEventListeners(el) { | ||
globalEventNames.forEach((eventName) => el.removeEventListener(eventName, dispatchToRoot)); | ||
} | ||
exports.removeGlobalEventListeners = removeGlobalEventListeners; | ||
exports.attachLocalEvents = attachLocalEvents; | ||
//# sourceMappingURL=events.js.map |
@@ -32,2 +32,5 @@ import type { BlazorLogLevel, BlazorRootConfig, WebAssemblyStartOptions } from './types'; | ||
export declare function initialize(scriptUrl: string, publicPath: string, opts?: WebAssemblyStartOptions): Promise<BlazorRootConfig>; | ||
export declare function createBootLoader(scriptUrl: string, extraScriptUrls: Array<string>): (opts?: WebAssemblyStartOptions) => Promise<BlazorRootConfig>; | ||
export declare function createBootLoader(scriptUrl: string, extraScriptUrls: Array<string>): (opts?: WebAssemblyStartOptions) => Promise<{ | ||
config: BlazorRootConfig; | ||
first: boolean; | ||
}>; |
@@ -228,4 +228,5 @@ "use strict"; | ||
const publicPath = computePath(); | ||
return (opts) => { | ||
if (typeof window.$blazorLoader === 'undefined') { | ||
return async (opts) => { | ||
const first = typeof window.$blazorLoader === 'undefined'; | ||
if (first) { | ||
window.dispatchEvent(new CustomEvent('loading-blazor-core')); | ||
@@ -235,3 +236,7 @@ // we load all satellite scripts before we initialize blazor | ||
} | ||
return window.$blazorLoader; | ||
const config = await window.$blazorLoader; | ||
return { | ||
config, | ||
first, | ||
}; | ||
}; | ||
@@ -238,0 +243,0 @@ } |
{ | ||
"name": "piral-blazor", | ||
"version": "1.6.0-beta.7142", | ||
"version": "1.6.0-beta.7144", | ||
"description": "Plugin for integrating Blazor components in Piral.", | ||
@@ -70,5 +70,5 @@ "keywords": [ | ||
"devDependencies": { | ||
"piral-core": "1.6.0-beta.7142" | ||
"piral-core": "1.6.0-beta.7144" | ||
}, | ||
"gitHead": "525efcc3dee8b4c649872008987efe9443c713bb" | ||
"gitHead": "c9046054bf0fda74a52e433d8ec72a3bbc5cbde8" | ||
} |
import type { BaseComponentProps, Disposable, ForeignComponent } from 'piral-core'; | ||
import { addGlobalEventListeners, attachEvents, removeGlobalEventListeners } from './events'; | ||
import { attachLocalEvents } from './events'; | ||
import { | ||
@@ -81,12 +81,10 @@ activate, | ||
const boot = (opts?: WebAssemblyStartOptions) => | ||
bootLoader(opts).then(async (res) => { | ||
const [_, capabilities] = res; | ||
bootLoader(opts).then(async ({ config, first }) => { | ||
const [_, capabilities] = config; | ||
if (capabilities.includes('logging')) { | ||
if (typeof logLevel === 'number') { | ||
await setLogLevel(logLevel); | ||
} | ||
if (typeof logLevel === 'number' && capabilities.includes('logging')) { | ||
await setLogLevel(logLevel); | ||
} | ||
if (capabilities.includes('events')) { | ||
if (first && capabilities.includes('events')) { | ||
const eventDispatcher = document.body.dispatchEvent; | ||
@@ -123,3 +121,3 @@ | ||
window.dispatchEvent(new CustomEvent('loaded-blazor-core')); | ||
return res; | ||
return config; | ||
}); | ||
@@ -151,7 +149,5 @@ let loader = !lazy && boot(opts); | ||
addGlobalEventListeners(el); | ||
locals.state = 'fresh'; | ||
locals.next = noop; | ||
locals.dispose = attachEvents( | ||
locals.dispose = attachLocalEvents( | ||
el, | ||
@@ -168,7 +164,2 @@ (ev) => { | ||
}, | ||
(ev) => { | ||
ev.stopPropagation(); | ||
const { type, args } = ev.detail; | ||
piral.emit(type, args); | ||
}, | ||
); | ||
@@ -250,3 +241,2 @@ | ||
unmount(el, locals: BlazorLocals) { | ||
removeGlobalEventListeners(el); | ||
el.removeAttribute('data-blazor-pilet-root'); | ||
@@ -253,0 +243,0 @@ locals.dispose(); |
@@ -36,3 +36,3 @@ import type { ExtensionRegistration } from 'piral-core'; | ||
navigate: 'navigate-blazor', | ||
piral: 'piral-blazor', | ||
forward: 'forward-event', | ||
}; | ||
@@ -127,3 +127,3 @@ | ||
document.body.dispatchEvent( | ||
new CustomEvent(eventNames.piral, { | ||
new CustomEvent(eventNames.forward, { | ||
bubbles: false, | ||
@@ -151,33 +151,18 @@ detail: { | ||
export function attachEvents( | ||
export function attachLocalEvents( | ||
host: HTMLElement, | ||
render: (ev: CustomEvent) => void, | ||
navigate: (ev: CustomEvent) => void, | ||
forward: (ev: CustomEvent) => void, | ||
) { | ||
eventParents.push(host); | ||
host.addEventListener(eventNames.render, render, false); | ||
host.addEventListener(eventNames.navigate, navigate, false); | ||
// install proxy handlers | ||
globalEventNames.forEach((eventName) => host.addEventListener(eventName, dispatchToRoot)); | ||
if (eventParents.length === 1) { | ||
document.body.addEventListener(eventNames.piral, forward, false); | ||
} | ||
return () => { | ||
eventParents.splice(eventParents.indexOf(host), 1); | ||
host.removeEventListener(eventNames.render, render, false); | ||
host.removeEventListener(eventNames.navigate, navigate, false); | ||
if (eventParents.length === 0) { | ||
document.body.removeEventListener(eventNames.piral, forward, false); | ||
} | ||
// uninstall proxy handlers | ||
globalEventNames.forEach((eventName) => host.removeEventListener(eventName, dispatchToRoot)); | ||
}; | ||
} | ||
export function addGlobalEventListeners(el: HTMLElement) { | ||
globalEventNames.forEach((eventName) => el.addEventListener(eventName, dispatchToRoot)); | ||
} | ||
export function removeGlobalEventListeners(el: HTMLElement) { | ||
globalEventNames.forEach((eventName) => el.removeEventListener(eventName, dispatchToRoot)); | ||
} |
@@ -278,4 +278,6 @@ import { PiletApi } from 'piral-core'; | ||
return (opts?: WebAssemblyStartOptions) => { | ||
if (typeof window.$blazorLoader === 'undefined') { | ||
return async (opts?: WebAssemblyStartOptions) => { | ||
const first = typeof window.$blazorLoader === 'undefined'; | ||
if (first) { | ||
window.dispatchEvent(new CustomEvent('loading-blazor-core')); | ||
@@ -289,4 +291,8 @@ | ||
return window.$blazorLoader; | ||
const config = await window.$blazorLoader; | ||
return { | ||
config, | ||
first, | ||
}; | ||
}; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
195890
3124