[FIX] compiler: multiple modifiers on t-custom

Since [1] it's possible to have a custom directive, this directive only
supported one modifier. This commit, add the support to have multiple
modifiers on a t-custom directive.

[1] : https://github.com/odoo/owl/commit/7e687234bf40bdcf5e6598401d8604d66b14ad32
This commit is contained in:
Jorge Pinna Puissant
2024-11-25 15:27:27 +01:00
committed by Géry Debongnie
parent e6768501cd
commit 7fc552e2f8
4 changed files with 11 additions and 9 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
export type customDirectives = Record<
string,
(node: Element, value: string, modifier?: string) => void
(node: Element, value: string, modifier: string[]) => void
>;
+2 -2
View File
@@ -299,10 +299,10 @@ function parseTCustom(node: Element, ctx: ParsingContext): AST | null {
throw new OwlError(`Custom directive "${directiveName}" is not defined`);
}
const value = node.getAttribute(attr)!;
const modifier = attr.split(".").length > 1 ? attr.split(".")[1] : undefined;
const modifiers = attr.split(".").slice(1);
node.removeAttribute(attr);
try {
customDirective(node, value, modifier);
customDirective(node, value, modifiers);
} catch (error) {
throw new OwlError(
`Custom directive "${directiveName}" throw the following error: ${error}`