mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
29 lines
999 B
TypeScript
29 lines
999 B
TypeScript
export function filterOutModifiersFromData(dataList: any[]): { modifiers: string[]; data: any[] } {
|
|
dataList = dataList.slice();
|
|
const modifiers = [];
|
|
let elm;
|
|
while ((elm = dataList[0]) && typeof elm === "string") {
|
|
modifiers.push(dataList.shift());
|
|
}
|
|
return { modifiers, data: dataList };
|
|
}
|
|
|
|
export const config = {
|
|
// whether or not blockdom should normalize DOM whenever a block is created.
|
|
// Normalizing dom mean removing empty text nodes (or containing only spaces)
|
|
shouldNormalizeDom: true,
|
|
|
|
// this is the main event handler. Every event handler registered with blockdom
|
|
// will go through this function, giving it the data registered in the block
|
|
// and the event
|
|
mainEventHandler: (data: any, ev: Event, currentTarget?: EventTarget | null): boolean => {
|
|
if (typeof data === "function") {
|
|
data(ev);
|
|
} else if (Array.isArray(data)) {
|
|
data = filterOutModifiersFromData(data).data;
|
|
data[0](data[1], ev);
|
|
}
|
|
return false;
|
|
},
|
|
};
|