mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
22a79cdedd
in order to separate compiler/ and runtime/ code
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
export { config } from "./config";
|
|
|
|
export { toggler } from "./toggler";
|
|
export { createBlock } from "./block_compiler";
|
|
export { list } from "./list";
|
|
export { multi } from "./multi";
|
|
export { text, comment } from "./text";
|
|
export { html } from "./html";
|
|
export { createCatcher } from "./event_catcher";
|
|
|
|
export interface VNode<T = any> {
|
|
mount(parent: HTMLElement, afterNode: Node | null): void;
|
|
moveBefore(other: T | null, afterNode: Node | null): void;
|
|
patch(other: T, withBeforeRemove: boolean): void;
|
|
beforeRemove(): void;
|
|
remove(): void;
|
|
firstNode(): Node | undefined;
|
|
|
|
el?: undefined | HTMLElement | Text;
|
|
parentEl?: undefined | HTMLElement;
|
|
isOnlyChild?: boolean | undefined;
|
|
key?: any;
|
|
}
|
|
|
|
export type BDom = VNode<any>;
|
|
|
|
export function mount(vnode: VNode, fixture: HTMLElement, afterNode: Node | null = null) {
|
|
vnode.mount(fixture, afterNode);
|
|
}
|
|
|
|
export function patch(vnode1: VNode, vnode2: VNode, withBeforeRemove: boolean = false) {
|
|
vnode1.patch(vnode2, withBeforeRemove);
|
|
}
|
|
|
|
export function remove(vnode: VNode, withBeforeRemove: boolean = false) {
|
|
if (withBeforeRemove) {
|
|
vnode.beforeRemove();
|
|
}
|
|
vnode.remove();
|
|
}
|
|
|
|
export function withKey(vnode: VNode, key: any) {
|
|
vnode.key = key;
|
|
return vnode;
|
|
}
|