Files
owl/tests/qweb/__snapshots__/qweb.test.ts.snap
T

3369 lines
93 KiB
Plaintext
Raw Normal View History

2019-02-03 19:48:08 +01:00
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`attributes class and t-attf-class with ternary operation 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'hello ' + (scope['value']?'world':'');
let c2 = [], p2 = {key:2,attrs:{class: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes dynamic attribute falsy variable 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['value'];
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes dynamic attribute with a dash 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['id'];
let c2 = [], p2 = {key:2,attrs:{\\"data-action-id\\": _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes dynamic attributes 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'bar';
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes dynamic class attribute 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = utils.toObj(scope['c']);
let c2 = [], p2 = {key:2,class:_1};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
exports[`attributes dynamic empty class attribute 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = utils.toObj(scope['c']);
let c2 = [], p2 = {key:2,class:_1};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
exports[`attributes dynamic formatted attributes with a dash 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = \`Some text \${scope['id']}\`;
let c2 = [], p2 = {key:2,attrs:{\\"aria-label\\": _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes fixed variable 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['value'];
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes format expression 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = (scope['value']+37);
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes format expression, other format 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = (scope['value']+37);
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes format literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = \`bar\`;
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes format multiple 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = \`a \${scope['value1']} is \${scope['value2']} of \${scope['value3']} ]\`;
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes format value 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = \`b\${scope['value']}r\`;
let c2 = [], p2 = {key:2,attrs:{foo: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
2019-03-21 10:47:08 +01:00
exports[`attributes from object variables set previously 1`] = `
"function anonymous(context, extra
2019-03-21 10:47:08 +01:00
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.o = {a:'b'};
let _2 = utils.toObj(scope.o.a);
let c3 = [], p3 = {key:3,class:_2};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c1.push(vn3);
return vn1;
2019-03-21 10:47:08 +01:00
}"
`;
exports[`attributes from variables set previously 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.abc = 'def';
let _2 = utils.toObj(scope.abc);
let c3 = [], p3 = {key:3,class:_2};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c1.push(vn3);
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes object 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['value'];
let c2 = [], p2 = {key:2,attrs:{}};
2019-02-03 19:48:08 +01:00
if (_1 instanceof Array) {
p2.attrs[_1[0]] = _1[1];
} else {
for (let key in _1) {
p2.attrs[key] = _1[key];
}
}
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes static attributes 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'a';
let _2 = 'b';
let _3 = 'c';
let c4 = [], p4 = {key:4,attrs:{foo: _1,bar: _2,baz: _3}};
2019-12-12 22:27:52 +01:00
let vn4 = h('div', p4, c4);
return vn4;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes static attributes on void elements 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = '/test.jpg';
let _2 = 'Test';
let c3 = [], p3 = {key:3,attrs:{src: _1,alt: _2}};
2019-12-12 22:27:52 +01:00
let vn3 = h('img', p3, c3);
return vn3;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes static attributes with dashes 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'Close';
let c2 = [], p2 = {key:2,attrs:{\\"aria-label\\": _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes t-att-class and class should combine together 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _2 = {'hello':true};
Object.assign(_2, utils.toObj(scope['value']))
let c3 = [], p3 = {key:3,class:_2};
2019-12-12 22:27:52 +01:00
let vn3 = h('div', p3, c3);
return vn3;
}"
`;
exports[`attributes t-att-class with object 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _2 = {'static':true};
Object.assign(_2, utils.toObj({a:scope['b'],c:scope['d'],e:scope['f']}))
let c3 = [], p3 = {key:3,class:_2};
2019-12-12 22:27:52 +01:00
let vn3 = h('div', p3, c3);
return vn3;
}"
`;
exports[`attributes t-attf-class should combine with class 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'hello ' + \`world\`;
let c2 = [], p2 = {key:2,attrs:{class: _1}};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`attributes tuple literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = ['foo','bar'];
let c2 = [], p2 = {key:2,attrs:{}};
2019-02-03 19:48:08 +01:00
if (_1 instanceof Array) {
p2.attrs[_1[0]] = _1[1];
} else {
for (let key in _1) {
p2.attrs[key] = _1[key];
}
}
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes tuple variable 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['value'];
let c2 = [], p2 = {key:2,attrs:{}};
2019-02-03 19:48:08 +01:00
if (_1 instanceof Array) {
p2.attrs[_1[0]] = _1[1];
} else {
for (let key in _1) {
p2.attrs[key] = _1[key];
}
}
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
return vn2;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`attributes various escapes 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = '<foo';
let _2 = scope['bar'];
let _3 = \`<\${scope['baz']}>\`;
let _4 = scope['qux'];
let c5 = [], p5 = {key:5,attrs:{foo: _1,bar: _2,baz: _3}};
if (_4 instanceof Array) {
p5.attrs[_4[0]] = _4[1];
} else {
for (let key in _4) {
p5.attrs[key] = _4[key];
}
}
2019-12-12 22:27:52 +01:00
let vn5 = h('div', p5, c5);
return vn5;
}"
`;
exports[`debugging t-debug 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
debugger;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (true) {
debugger;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`hey\`});
}
return vn1;
}"
`;
exports[`debugging t-log 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.foo = 42;
console.log(scope.foo+3)
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`foreach does not pollute the rendering context 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = [1];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
2019-12-12 22:27:52 +01:00
let _6 = scope['item'];
if (_6 != null) {
c1.push({text: _6});
2019-02-03 19:48:08 +01:00
}
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`foreach iterate on items (on a element node) 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = [1,2];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
const nodeKey6 = scope['item'];
let c7 = [], p7 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn7 = h('span', p7, c7);
c1.push(vn7);
2019-12-12 22:27:52 +01:00
let _8 = scope['item'];
if (_8 != null) {
c7.push({text: _8});
2019-02-03 19:48:08 +01:00
}
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`foreach iterate on items 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = [3,2,1];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
c1.push({text: \` [\`});
2019-12-12 22:27:52 +01:00
let _6 = scope['item_index'];
if (_6 != null) {
c1.push({text: _6});
2019-02-03 19:48:08 +01:00
}
c1.push({text: \`: \`});
2019-12-12 22:27:52 +01:00
let _7 = scope['item'];
if (_7 != null) {
c1.push({text: _7});
2019-02-03 19:48:08 +01:00
}
c1.push({text: \` \`});
2019-12-12 22:27:52 +01:00
let _8 = scope['item_value'];
if (_8 != null) {
c1.push({text: _8});
}
c1.push({text: \`] \`});
2019-02-03 19:48:08 +01:00
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`foreach iterate, dict param 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['value'];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
2019-02-03 19:48:08 +01:00
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
c1.push({text: \` [\`});
2019-12-12 22:27:52 +01:00
let _6 = scope['item_index'];
if (_6 != null) {
c1.push({text: _6});
2019-02-03 19:48:08 +01:00
}
c1.push({text: \`: \`});
2019-12-12 22:27:52 +01:00
let _7 = scope['item'];
if (_7 != null) {
c1.push({text: _7});
2019-02-03 19:48:08 +01:00
}
c1.push({text: \` \`});
2019-12-12 22:27:52 +01:00
let _8 = scope['item_value'];
if (_8 != null) {
c1.push({text: _8});
}
c1.push({text: \`] \`});
2019-02-03 19:48:08 +01:00
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`foreach iterate, position 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = Array(5);
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.elem_first = i1 === 0
scope.elem_last = i1 === _length3 - 1
scope.elem_index = i1
scope.elem = _3[i1]
scope.elem_value = _4[i1]
c1.push({text: \` -\`});
if (scope['elem_first']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \` first\`});
}
if (scope['elem_last']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \` last\`});
}
c1.push({text: \` (\`});
2019-12-12 22:27:52 +01:00
let _6 = scope['elem_index'];
if (_6 != null) {
c1.push({text: _6});
2019-02-03 19:48:08 +01:00
}
c1.push({text: \`) \`});
2019-02-03 19:48:08 +01:00
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`foreach t-foreach in t-forach 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['numbers'];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.number_first = i1 === 0
scope.number_last = i1 === _length3 - 1
scope.number_index = i1
scope.number = _3[i1]
scope.number_value = _4[i1]
2019-12-12 22:27:52 +01:00
let _6 = scope['letters'];
if (!_6) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _7 = _8 = _6;
if (!(_6 instanceof Array)) {
_7 = Object.keys(_6);
_8 = Object.values(_6);
}
2019-12-12 22:27:52 +01:00
let _length7 = _7.length;
let _origScope9 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i2 = 0; i2 < _length7; i2++) {
scope.letter_first = i2 === 0
scope.letter_last = i2 === _length7 - 1
scope.letter_index = i2
scope.letter = _7[i2]
scope.letter_value = _8[i2]
c1.push({text: \` [\`});
2019-12-12 22:27:52 +01:00
let _10 = scope['number'];
if (_10 != null) {
c1.push({text: _10});
}
2019-12-12 22:27:52 +01:00
let _11 = scope['letter'];
if (_11 != null) {
c1.push({text: _11});
}
c1.push({text: \`] \`});
}
scope = _origScope9;
}
scope = _origScope5;
return vn1;
}"
`;
exports[`foreach warn if no key in some case 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = [1,2];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
let c6 = [], p6 = {key:6};
2019-12-12 22:27:52 +01:00
let vn6 = h('span', p6, c6);
c1.push(vn6);
2019-12-12 22:27:52 +01:00
let _7 = scope['item'];
if (_7 != null) {
c6.push({text: _7});
}
}
scope = _origScope5;
return vn1;
}"
`;
exports[`loading templates can initialize qweb with a string 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"hey\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
c1.push({text: \`jupiler\`});
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`loading templates can load a few templates from a xml string 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"main\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('ul', p1, c1);
2019-12-13 16:02:03 +01:00
this.subTemplates['items'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`misc global 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = [4,5,6];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.value_first = i1 === 0
scope.value_last = i1 === _length3 - 1
scope.value_index = i1
scope.value = _3[i1]
scope.value_value = _4[i1]
let c6 = [], p6 = {key:6};
2019-12-12 22:27:52 +01:00
let vn6 = h('span', p6, c6);
c1.push(vn6);
2019-12-12 22:27:52 +01:00
let _7 = scope['value'];
if (_7 != null) {
c6.push({text: _7});
2019-02-03 19:48:08 +01:00
}
{
2019-12-12 22:27:52 +01:00
let _origScope10 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
{
2019-12-12 22:27:52 +01:00
let _origScope13 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.foo = 'aaa';
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-uses-foo'].call(this, scope, Object.assign({}, extra, {parentNode: c__0, parent: utils.getComponent(context)}));
scope = _origScope13;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-uses-foo'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c__0, parent: utils.getComponent(context)}));
scope.foo = 'bbb';
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-uses-foo'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c__0, parent: utils.getComponent(context)}));
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-asc'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope10;
2019-02-03 19:48:08 +01:00
}
}
scope = _origScope5;
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-asc-toto'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`properly support svg add proper namespace to g tags 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
let vn1 = h('g', p1, c1);
let _2 = '50';
let _3 = '50';
let _4 = '4';
let _5 = 'green';
let _6 = '1';
let _7 = 'yellow';
let c8 = [], p8 = {key:8,attrs:{cx: _2,cy: _3,r: _4,stroke: _5,\\"stroke-width\\": _6,fill: _7}};
2019-12-12 22:27:52 +01:00
let vn8 = h('circle', p8, c8);
c1.push(vn8);
c1.push({text: \` \`});
utils.addNameSpace(vn1);
return vn1;
}"
`;
2019-09-24 21:38:51 +02:00
exports[`properly support svg add proper namespace to svg 1`] = `
"function anonymous(context, extra
2019-09-24 21:38:51 +02:00
) {
// Template name: \\"test\\"
2019-09-24 21:38:51 +02:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = '100px';
let _2 = '90px';
2019-09-24 21:38:51 +02:00
let c3 = [], p3 = {key:3,attrs:{width: _1,height: _2}};
2019-12-12 22:27:52 +01:00
let vn3 = h('svg', p3, c3);
let _4 = '50';
let _5 = '50';
let _6 = '4';
let _7 = 'green';
let _8 = '1';
let _9 = 'yellow';
2019-09-24 21:38:51 +02:00
let c10 = [], p10 = {key:10,attrs:{cx: _4,cy: _5,r: _6,stroke: _7,\\"stroke-width\\": _8,fill: _9}};
2019-12-12 22:27:52 +01:00
let vn10 = h('circle', p10, c10);
2019-09-24 21:38:51 +02:00
c3.push(vn10);
c3.push({text: \` \`});
utils.addNameSpace(vn3);
return vn3;
}"
`;
exports[`special cases for some boolean html attributes/properties input type= checkbox, with t-att-checked 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = 'checkbox';
let _2 = scope['flag'];
let c3 = [], p3 = {key:3,attrs:{type: _1,checked: _2},props:{checked: _2}};
2019-12-12 22:27:52 +01:00
let vn3 = h('input', p3, c3);
return vn3;
}"
`;
exports[`special cases for some boolean html attributes/properties various boolean html attributes 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = 'checkbox';
let _3 = 'checked';
let c4 = [], p4 = {key:4,attrs:{type: _2,checked: _3},props:{checked: _3}};
2019-12-12 22:27:52 +01:00
let vn4 = h('input', p4, c4);
c1.push(vn4);
2019-12-12 22:27:52 +01:00
let _5 = 'checked';
let c6 = [], p6 = {key:6,attrs:{checked: _5}};
2019-12-12 22:27:52 +01:00
let vn6 = h('input', p6, c6);
c1.push(vn6);
2019-12-12 22:27:52 +01:00
let _7 = 'checked';
let c8 = [], p8 = {key:8,attrs:{checked: _7}};
2019-12-12 22:27:52 +01:00
let vn8 = h('div', p8, c8);
c1.push(vn8);
2019-12-12 22:27:52 +01:00
let _9 = 'selected';
let c10 = [], p10 = {key:10,attrs:{selected: _9}};
2019-12-12 22:27:52 +01:00
let vn10 = h('div', p10, c10);
c1.push(vn10);
2019-12-12 22:27:52 +01:00
let _11 = 'selected';
let _12 = '1';
let c13 = [], p13 = {key:13,attrs:{selected: _11,other: _12},props:{selected: _11}};
2019-12-12 22:27:52 +01:00
let vn13 = h('option', p13, c13);
c1.push(vn13);
2019-12-12 22:27:52 +01:00
let _14 = 'readonly';
let c15 = [], p15 = {key:15,attrs:{readonly: _14},props:{readonly: _14}};
2019-12-12 22:27:52 +01:00
let vn15 = h('input', p15, c15);
c1.push(vn15);
2019-12-12 22:27:52 +01:00
let _16 = 'disabled';
let c17 = [], p17 = {key:17,attrs:{disabled: _16},props:{disabled: _16}};
2019-12-12 22:27:52 +01:00
let vn17 = h('button', p17, c17);
c1.push(vn17);
return vn1;
}"
`;
exports[`static templates div with a class attribute 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let _2 = {'abc':true};
let c3 = [], p3 = {key:3,class:_2};
2019-12-12 22:27:52 +01:00
let vn3 = h('div', p3, c3);
c3.push({text: \`word\`});
return vn3;
}"
`;
exports[`static templates div with a empty class attribute 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
c2.push({text: \`word\`});
return vn2;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`static templates div with a span child node 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
2019-02-03 19:48:08 +01:00
c1.push(vn2);
c2.push({text: \`word\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`static templates div with a text node 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-02-03 19:48:08 +01:00
c1.push({text: \`word\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`static templates empty div 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
2019-10-15 13:41:18 +02:00
exports[`static templates properly handle comments 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-10-15 13:41:18 +02:00
c1.push({text: \`hello \`});
c1.push(h('!', \` comment\`));
c1.push({text: \`owl\`});
return vn1;
}"
`;
exports[`static templates simple dynamic value 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
let _1 = scope['text'];
if (_1 != null) {
let vn2 = {text: _1};
2019-09-11 11:28:41 +02:00
result = vn2
}
2019-09-11 11:28:41 +02:00
return result;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`static templates simple string 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
let vn1 = {text: \`hello vdom\`};
2019-09-11 11:28:41 +02:00
result = vn1;
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`static templates simple string, with some dynamic value 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
let vn1 = {text: \`hello \`};
2019-09-11 11:28:41 +02:00
result = vn1;
2019-12-12 22:27:52 +01:00
let _2 = scope['text'];
if (_2 != null) {
vn1.text += _2;
}
2019-09-11 11:28:41 +02:00
return result;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-call (template calling basic caller 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-12-13 16:02:03 +01:00
this.subTemplates['_basic-callee'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
}"
`;
exports[`t-call (template calling basic caller 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"_basic-callee\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`ok\`});
}"
`;
exports[`t-call (template calling basic caller, no parent node 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"caller\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
result = []
2019-12-13 16:02:03 +01:00
this.subTemplates['_basic-callee'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: result, parent: utils.getComponent(context)}));
result = result[0]
2019-09-11 11:28:41 +02:00
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling basic caller, no parent node 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"_basic-callee\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
c1.push(vn2);
c2.push({text: \`ok\`});
}"
`;
exports[`t-call (template calling call with several sub nodes on same line 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"main\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('span', p4, c4);
c__0.push(vn4);
c4.push({text: \`hey\`});
c__0.push({text: \` \`});
let c5 = [], p5 = {key:5};
2019-12-12 22:27:52 +01:00
let vn5 = h('span', p5, c5);
c__0.push(vn5);
c5.push({text: \`yay\`});
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['SubTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope3;
}
return vn1;
}"
`;
exports[`t-call (template calling call with several sub nodes on same line 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"SubTemplate\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
c1.push(vn2);
c2.push(...scope[utils.zero]);
}"
`;
2019-11-28 16:11:08 +01:00
exports[`t-call (template calling cascading t-call t-raw='0' 1`] = `
"function anonymous(context, extra
2019-11-28 16:11:08 +01:00
) {
// Template name: \\"main\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-11-28 16:11:08 +01:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope10 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
let c11 = [], p11 = {key:11};
2019-12-12 22:27:52 +01:00
let vn11 = h('span', p11, c11);
c__0.push(vn11);
c11.push({text: \`hey\`});
c__0.push({text: \` \`});
let c12 = [], p12 = {key:12};
2019-12-12 22:27:52 +01:00
let vn12 = h('span', p12, c12);
c__0.push(vn12);
c12.push({text: \`yay\`});
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['SubTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope10;
}
2019-11-28 16:11:08 +01:00
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-call (template calling inherit context 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.foo = 1;
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-uses-foo'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling recursive template, part 1 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"recursive\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`hey\`});
if (false) {
2019-12-13 16:02:03 +01:00
this.subTemplates['recursive'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
}
return vn1;
}"
`;
exports[`t-call (template calling recursive template, part 1 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"recursive\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('div', p3, c3);
c1.push(vn3);
2019-11-27 15:07:10 +01:00
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('span', p4, c4);
c3.push(vn4);
c4.push({text: \`hey\`});
if (false) {
2019-12-13 16:02:03 +01:00
this.subTemplates['recursive'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c3, parent: utils.getComponent(context)}));
}
}"
`;
exports[`t-call (template calling recursive template, part 2 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope10 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.node = scope['root'];
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['nodeTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope10;
}
return vn1;
}"
`;
exports[`t-call (template calling recursive template, part 2 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"nodeTemplate\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
c1.push(vn2);
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('p', p3, c3);
c2.push(vn3);
2019-12-12 22:27:52 +01:00
let _4 = scope['node'].val;
if (_4 != null) {
c3.push({text: _4});
}
2019-12-12 22:27:52 +01:00
let _5 = scope['node'].children||[];
if (!_5) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _6 = _7 = _5;
if (!(_5 instanceof Array)) {
_6 = Object.keys(_5);
_7 = Object.values(_5);
}
2019-12-12 22:27:52 +01:00
let _length6 = _6.length;
let _origScope8 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length6; i1++) {
scope.subtree_first = i1 === 0
scope.subtree_last = i1 === _length6 - 1
scope.subtree_index = i1
scope.subtree = _6[i1]
scope.subtree_value = _7[i1]
{
2019-12-12 22:27:52 +01:00
let _origScope9 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.node = scope['subtree'];
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['nodeTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c2, parent: utils.getComponent(context)}));
scope = _origScope9;
}
}
scope = _origScope8;
}"
`;
exports[`t-call (template calling recursive template, part 3 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope10 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.node = scope['root'];
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['nodeTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope10;
}
return vn1;
}"
`;
exports[`t-call (template calling recursive template, part 3 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"nodeTemplate\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
c1.push(vn2);
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('p', p3, c3);
c2.push(vn3);
2019-12-12 22:27:52 +01:00
let _4 = scope['node'].val;
if (_4 != null) {
c3.push({text: _4});
}
2019-12-12 22:27:52 +01:00
let _5 = scope['node'].children||[];
if (!_5) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _6 = _7 = _5;
if (!(_5 instanceof Array)) {
_6 = Object.keys(_5);
_7 = Object.values(_5);
}
2019-12-12 22:27:52 +01:00
let _length6 = _6.length;
let _origScope8 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length6; i1++) {
scope.subtree_first = i1 === 0
scope.subtree_last = i1 === _length6 - 1
scope.subtree_index = i1
scope.subtree = _6[i1]
scope.subtree_value = _7[i1]
{
2019-12-12 22:27:52 +01:00
let _origScope9 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.node = scope['subtree'];
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['nodeTemplate'].call(this, scope, Object.assign({}, extra, {parentNode: c2, parent: utils.getComponent(context)}));
scope = _origScope9;
}
}
scope = _origScope8;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-call (template calling scoped parameters 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope2 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.foo = 42;
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['_basic-callee'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope2;
}
2019-12-12 22:27:52 +01:00
if (scope.foo != null) {
c1.push({text: scope.foo});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling t-call with t-if 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"caller\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['flag']) {
2019-12-13 16:02:03 +01:00
this.subTemplates['sub'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
}
return vn1;
}"
`;
exports[`t-call (template calling t-call with t-if 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"sub\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = extra.parentNode;
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`ok\`});
}"
`;
exports[`t-call (template calling t-call with t-set inside and outside 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"main\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['list'];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.v_first = i1 === 0
scope.v_last = i1 === _length3 - 1
scope.v_index = i1
scope.v = _3[i1]
scope.v_value = _4[i1]
scope.val = scope['v'].val;
{
2019-12-12 22:27:52 +01:00
let _origScope8 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.val3 = scope.val*3;
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['sub'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope8;
}
}
scope = _origScope5;
return vn1;
}"
`;
exports[`t-call (template calling t-call with t-set inside and outside. 2 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"wrapper\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('p', p1, c1);
scope.w = 'fromwrapper';
2019-12-13 16:02:03 +01:00
this.subTemplates['main'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
}"
`;
2019-12-11 13:58:55 +01:00
exports[`t-call (template calling t-call, conditional and t-set in t-call body 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-12-11 13:58:55 +01:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-12-11 13:58:55 +01:00
scope.v1 = 'elif';
if (scope.v1==='if') {
2019-12-13 16:02:03 +01:00
this.subTemplates['callee1'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
2019-12-11 13:58:55 +01:00
}
else if (scope.v1==='elif') {
{
2019-12-12 22:27:52 +01:00
let _origScope5 = scope;
2019-12-11 13:58:55 +01:00
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.v = 'success';
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['callee2'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
2019-12-11 13:58:55 +01:00
scope = _origScope5;
}
}
return vn1;
}"
`;
exports[`t-call (template calling t-call, global templates 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"abcd\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-12-13 16:02:03 +01:00
this.subTemplates['john'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-call (template calling with unused body 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
c__0.push({text: \`WHEEE\`});
scope[utils.zero] = c__0;
}
result = []
2019-12-13 16:02:03 +01:00
this.subTemplates['_basic-callee'].call(this, scope, Object.assign({}, extra, {parentNode: result, parent: utils.getComponent(context)}));
result = result[0]
scope = _origScope3;
}
2019-09-11 11:28:41 +02:00
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling with unused setbody 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.qux = 3;
scope[utils.zero] = c__0;
}
result = []
2019-12-13 16:02:03 +01:00
this.subTemplates['_basic-callee'].call(this, scope, Object.assign({}, extra, {parentNode: result, parent: utils.getComponent(context)}));
result = result[0]
scope = _origScope3;
}
2019-09-11 11:28:41 +02:00
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling with used body 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
c__0.push({text: \`ok\`});
scope[utils.zero] = c__0;
}
result = []
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-printsbody'].call(this, scope, Object.assign({}, extra, {parentNode: result, parent: utils.getComponent(context)}));
result = result[0]
scope = _origScope3;
}
2019-09-11 11:28:41 +02:00
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-call (template calling with used set body 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"caller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
scope.foo = 'ok';
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['_callee-uses-foo'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope3;
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
2019-12-12 22:27:52 +01:00
exports[`t-esc div with falsy values 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
let h = this.h;
let c1 = [], p1 = {key:1};
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
let vn2 = h('p', p2, c2);
c1.push(vn2);
let _3 = scope['v1'];
if (_3 != null) {
c2.push({text: _3});
}
let c4 = [], p4 = {key:4};
let vn4 = h('p', p4, c4);
c1.push(vn4);
let _5 = scope['v2'];
if (_5 != null) {
c4.push({text: _5});
}
let c6 = [], p6 = {key:6};
let vn6 = h('p', p6, c6);
c1.push(vn6);
let _7 = scope['v3'];
if (_7 != null) {
c6.push({text: _7});
}
let c8 = [], p8 = {key:8};
let vn8 = h('p', p8, c8);
c1.push(vn8);
let _9 = scope['v4'];
if (_9 != null) {
c8.push({text: _9});
}
let c10 = [], p10 = {key:10};
let vn10 = h('p', p10, c10);
c1.push(vn10);
let _11 = scope['v5'];
if (_11 != null) {
c10.push({text: _11});
}
return vn1;
}"
`;
exports[`t-esc escaping 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = scope['var'];
if (_2 != null) {
c1.push({text: _2});
}
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-esc escaping on a node 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = 'ok';
if (_2 != null) {
c1.push({text: _2});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-esc escaping on a node with a body 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = 'ok';
if (_2 != null) {
c1.push({text: _2});
2019-02-03 19:48:08 +01:00
} else {
c1.push({text: \`nope\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-esc escaping on a node with a body, as a default 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = scope['var'];
if (_2 != null) {
c1.push({text: _2});
2019-02-03 19:48:08 +01:00
} else {
c1.push({text: \`nope\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-esc literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = 'ok';
if (_2 != null) {
c1.push({text: _2});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-esc t-esc is escaped 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = new utils.VDomArray();
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('p', p3, c3);
c2.push(vn3);
c3.push({text: \`escaped\`});
scope.var = c2
2019-12-12 22:27:52 +01:00
if (scope.var != null) {
let _origScope4 = scope;
scope = Object.assign(Object.create(context), scope);
scope.var = scope.var instanceof utils.VDomArray ? utils.vDomToString(scope.var) : scope.var;
c1.push({text: scope.var});
scope = _origScope4;
}
return vn1;
}"
`;
2019-12-13 14:50:49 +01:00
exports[`t-esc t-esc work with spread operator 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
let h = this.h;
let c1 = [], p1 = {key:1};
let vn1 = h('span', p1, c1);
let _2 = [...scope['state'].list];
if (_2 != null) {
c1.push({text: _2});
}
return vn1;
}"
`;
exports[`t-esc t-esc=0 is escaped 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"testCaller\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
{
2019-12-12 22:27:52 +01:00
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
{
let c__0 = [];
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('p', p4, c4);
c__0.push(vn4);
c4.push({text: \`escaped\`});
scope[utils.zero] = c__0;
}
2019-12-13 16:02:03 +01:00
this.subTemplates['test'].call(this, scope, Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
scope = _origScope3;
}
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-esc variable 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = scope['var'];
if (_2 != null) {
c1.push({text: _2});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value condition elif 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['color']=='black') {
2019-02-03 19:48:08 +01:00
c1.push({text: \`black pearl\`});
}
else if (scope['color']=='yellow') {
2019-02-03 19:48:08 +01:00
c1.push({text: \`yellow submarine\`});
}
else if (scope['color']=='red') {
2019-02-03 19:48:08 +01:00
c1.push({text: \`red is dead\`});
}
else {
c1.push({text: \`beer\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value condition else 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
2019-02-03 19:48:08 +01:00
c1.push(vn2);
c2.push({text: \`begin\`});
if (scope['condition']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \`ok\`});
}
else {
c1.push({text: \`ok-else\`});
}
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
2019-02-03 19:48:08 +01:00
c1.push(vn3);
c3.push({text: \`end\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value condition false else 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
2019-02-03 19:48:08 +01:00
c1.push(vn2);
c2.push({text: \`begin\`});
if (scope['condition']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \`fail\`});
}
else {
c1.push({text: \`fail-else\`});
}
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
2019-02-03 19:48:08 +01:00
c1.push(vn3);
c3.push({text: \`end\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value condition missing 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
if (scope['condition']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \`fail\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value false condition 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['condition']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \`ok\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-if boolean value true condition 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['condition']) {
2019-02-03 19:48:08 +01:00
c1.push({text: \`ok\`});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
2019-03-13 14:20:48 +01:00
exports[`t-if can use some boolean operators in expressions 1`] = `
"function anonymous(context, extra
2019-03-13 14:20:48 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['cond1']&&scope['cond2']) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`and\`});
}
if (scope['cond1']&&scope['cond3']) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`nope\`});
}
if (scope['cond1']||scope['cond3']) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`or\`});
}
if (scope['cond3']||scope['cond4']) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`nope\`});
}
if (scope['m']>3) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`mgt\`});
}
if (scope['n']>3) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`ngt\`});
}
if (scope['m']<3) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`mlt\`});
}
if (scope['n']<3) {
2019-03-13 14:20:48 +01:00
c1.push({text: \`nlt\`});
}
return vn1;
2019-03-13 14:20:48 +01:00
}"
`;
exports[`t-if t-esc with t-elif 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (false) {
c1.push({text: \`abc\`});
}
else {
2019-12-12 22:27:52 +01:00
let _2 = 'x';
if (_2 != null) {
c1.push({text: _2});
}
}
return vn1;
}"
`;
exports[`t-if t-esc with t-if 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (true) {
2019-12-12 22:27:52 +01:00
let _2 = 'x';
if (_2 != null) {
c1.push({text: _2});
}
}
return vn1;
}"
`;
exports[`t-if t-set, then t-elif, part 3 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.y = false;
scope.x = scope.y;
if (scope.x) {
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`AAA\`});
}
else if (!scope.x) {
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c1.push(vn3);
c3.push({text: \`BBB\`});
}
return vn1;
}"
`;
exports[`t-if t-set, then t-if 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.title = 'test';
if (scope.title) {
2019-12-12 22:27:52 +01:00
if (scope.title != null) {
c1.push({text: scope.title});
}
}
return vn1;
}"
`;
exports[`t-if t-set, then t-if, part 2 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.y = true;
scope.x = scope.y;
if (scope.x) {
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`COUCOU\`});
}
return vn1;
}"
`;
2019-04-16 14:35:27 +02:00
exports[`t-key can use t-key directive on a node 1`] = `
"function anonymous(context, extra
2019-04-16 14:35:27 +02:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
const nodeKey1 = scope['beer'].id;
let c2 = [], p2 = {key:nodeKey1};
2019-12-12 22:27:52 +01:00
let vn2 = h('div', p2, c2);
let _3 = scope['beer'].name;
if (_3 != null) {
c2.push({text: _3});
2019-04-16 14:35:27 +02:00
}
return vn2;
2019-04-16 14:35:27 +02:00
}"
`;
exports[`t-key t-key directive in a list 1`] = `
"function anonymous(context, extra
2019-04-16 14:35:27 +02:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('ul', p1, c1);
let _2 = scope['beers'];
2019-04-16 14:35:27 +02:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.beer_first = i1 === 0
scope.beer_last = i1 === _length3 - 1
scope.beer_index = i1
scope.beer = _3[i1]
scope.beer_value = _4[i1]
const nodeKey6 = scope['beer'].id;
let c7 = [], p7 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn7 = h('li', p7, c7);
c1.push(vn7);
2019-12-12 22:27:52 +01:00
let _8 = scope['beer'].name;
if (_8 != null) {
c7.push({text: _8});
2019-04-16 14:35:27 +02:00
}
}
scope = _origScope5;
return vn1;
2019-04-16 14:35:27 +02:00
}"
`;
exports[`t-key t-key directive in a list 2`] = `"<ul><li>Chimay Rouge</li></ul>"`;
2019-02-03 19:48:08 +01:00
exports[`t-on can bind event handler 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 11:21:49 +01:00
extra.handlers['click__2__'] = extra.handlers['click__2__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['add'](e);};
2019-12-12 12:18:08 +01:00
p1.on['click'] = extra.handlers['click__2__'];
2019-02-03 19:48:08 +01:00
c1.push({text: \`Click\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-on can bind handlers with arguments 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
let args2 = [5];
2019-12-12 11:21:49 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['add'](...args2, e);};
2019-02-03 19:48:08 +01:00
c1.push({text: \`Click\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-on can bind handlers with empty object (with non empty inner string) 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
let args2 = [{}];
2019-12-12 11:21:49 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['doSomething'](...args2, e);};
c1.push({text: \`Click\`});
return vn1;
}"
`;
exports[`t-on can bind handlers with empty object 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
let args2 = [{}];
2019-12-12 11:21:49 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['doSomething'](...args2, e);};
c1.push({text: \`Click\`});
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-on can bind handlers with loop variable as argument 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('ul', p1, c1);
let _2 = ['someval'];
2019-02-03 19:48:08 +01:00
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.action_first = i1 === 0
scope.action_last = i1 === _length3 - 1
scope.action_index = i1
scope.action = _3[i1]
scope.action_value = _4[i1]
const nodeKey6 = scope['action_index'];
let c7 = [], p7 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn7 = h('li', p7, c7);
c1.push(vn7);
let c8 = [], p8 = {key:nodeKey6,on:{}};
2019-12-12 22:27:52 +01:00
let vn8 = h('a', p8, c8);
c7.push(vn8);
2019-12-12 12:18:08 +01:00
let args9 = [scope['action']];
2019-12-12 11:21:49 +01:00
p8.on['click'] = function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['activate'](...args9, e);};
c8.push({text: \`link\`});
2019-02-03 19:48:08 +01:00
}
scope = _origScope5;
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-on can bind handlers with object arguments 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
let args2 = [{val:5}];
2019-12-12 11:21:49 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['add'](...args2, e);};
c1.push({text: \`Click\`});
return vn1;
}"
`;
2019-03-12 16:45:27 +01:00
exports[`t-on can bind two event handlers 1`] = `
"function anonymous(context, extra
2019-03-12 16:45:27 +01:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 11:21:49 +01:00
extra.handlers['click__2__'] = extra.handlers['click__2__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['handleClick'](e);};
2019-12-12 12:18:08 +01:00
p1.on['click'] = extra.handlers['click__2__'];
2019-12-12 11:21:49 +01:00
extra.handlers['dblclick__3__'] = extra.handlers['dblclick__3__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['handleDblClick'](e);};
2019-12-12 12:18:08 +01:00
p1.on['dblclick'] = extra.handlers['dblclick__3__'];
2019-03-12 16:45:27 +01:00
c1.push({text: \`Click\`});
return vn1;
2019-03-12 16:45:27 +01:00
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-on handler is bound to proper owner 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 11:21:49 +01:00
extra.handlers['click__2__'] = extra.handlers['click__2__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['add'](e);};
2019-12-12 12:18:08 +01:00
p1.on['click'] = extra.handlers['click__2__'];
2019-02-03 19:48:08 +01:00
c1.push({text: \`Click\`});
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-on t-on combined with t-esc 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['onClick'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
2019-12-12 22:27:52 +01:00
let _4 = scope['text'];
if (_4 != null) {
2019-12-12 12:18:08 +01:00
c2.push({text: _4});
}
return vn1;
}"
`;
exports[`t-on t-on combined with t-raw 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['onClick'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
2019-12-12 22:27:52 +01:00
let _4 = scope['html'];
if (_4 != null) {
2019-12-12 12:18:08 +01:00
c2.push(...utils.htmlToVDOM(_4));
}
return vn1;
}"
`;
2019-10-25 10:58:18 +02:00
exports[`t-on t-on with empty handler (only modifiers) 1`] = `
"function anonymous(context, extra
2019-10-25 10:58:18 +02:00
) {
// Template name: \\"test\\"
2019-12-12 12:18:08 +01:00
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-10-25 10:58:18 +02:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-10-25 10:58:18 +02:00
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
2019-10-25 10:58:18 +02:00
c1.push(vn2);
p2.on['click'] = function (e) {if (!context.__owl__.isMounted){return}e.preventDefault();};
2019-10-25 10:58:18 +02:00
c2.push({text: \`Button\`});
return vn1;
}"
`;
exports[`t-on t-on with inline statement (function call) 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}scope['state'].incrementCounter(2)};
c1.push({text: \`Click\`});
return vn1;
}"
`;
exports[`t-on t-on with inline statement 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 12:18:08 +01:00
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
2019-12-12 12:18:08 +01:00
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}scope['state'].counter++};
c1.push({text: \`Click\`});
return vn1;
}"
`;
exports[`t-on t-on with inline statement, part 2 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}scope['state'].flag=!scope['state'].flag};
c1.push({text: \`Toggle\`});
return vn1;
}"
`;
exports[`t-on t-on with inline statement, part 3 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1,on:{}};
2019-12-12 22:27:52 +01:00
let vn1 = h('button', p1, c1);
p1.on['click'] = function (e) {if (!context.__owl__.isMounted){return}scope['state'].n=scope['someFunction'](3)};
c1.push({text: \`Toggle\`});
return vn1;
}"
`;
2019-05-23 11:26:03 +02:00
exports[`t-on t-on with prevent and self modifiers (order matters) 1`] = `
"function anonymous(context, extra
2019-05-23 11:26:03 +02:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-05-23 11:26:03 +02:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-05-23 11:26:03 +02:00
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
2019-05-23 11:26:03 +02:00
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}e.preventDefault();if (e.target !== this.elm) {return}utils.getComponent(context)['onClick'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('span', p4, c4);
2019-12-12 12:18:08 +01:00
c2.push(vn4);
c4.push({text: \`Button\`});
return vn1;
2019-05-23 11:26:03 +02:00
}"
`;
exports[`t-on t-on with prevent and/or stop modifiers 1`] = `
"function anonymous(context, extra
2019-05-23 11:26:03 +02:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-05-23 11:26:03 +02:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-05-23 11:26:03 +02:00
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
2019-05-23 11:26:03 +02:00
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}e.preventDefault();utils.getComponent(context)['onClickPrevented'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
2019-05-23 11:26:03 +02:00
c2.push({text: \`Button 1\`});
let c4 = [], p4 = {key:4,on:{}};
2019-12-12 22:27:52 +01:00
let vn4 = h('button', p4, c4);
2019-05-23 11:26:03 +02:00
c1.push(vn4);
2019-12-12 11:21:49 +01:00
extra.handlers['click__5__'] = extra.handlers['click__5__'] || function (e) {if (!context.__owl__.isMounted){return}e.stopPropagation();utils.getComponent(context)['onClickStopped'](e);};
2019-12-12 12:18:08 +01:00
p4.on['click'] = extra.handlers['click__5__'];
c4.push({text: \`Button 2\`});
let c6 = [], p6 = {key:6,on:{}};
2019-12-12 22:27:52 +01:00
let vn6 = h('button', p6, c6);
2019-12-12 12:18:08 +01:00
c1.push(vn6);
2019-12-12 11:21:49 +01:00
extra.handlers['click__7__'] = extra.handlers['click__7__'] || function (e) {if (!context.__owl__.isMounted){return}e.preventDefault();e.stopPropagation();utils.getComponent(context)['onClickPreventedAndStopped'](e);};
2019-12-12 12:18:08 +01:00
p6.on['click'] = extra.handlers['click__7__'];
c6.push({text: \`Button 3\`});
return vn1;
2019-05-23 11:26:03 +02:00
}"
`;
exports[`t-on t-on with prevent modifier in t-foreach 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['projects'];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.project_first = i1 === 0
scope.project_last = i1 === _length3 - 1
scope.project_index = i1
scope.project = _3[i1]
scope.project_value = _4[i1]
const nodeKey6 = scope['project'];
2019-12-12 22:27:52 +01:00
let _7 = '#';
let c8 = [], p8 = {key:nodeKey6,attrs:{href: _7},on:{}};
2019-12-12 22:27:52 +01:00
let vn8 = h('a', p8, c8);
c1.push(vn8);
2019-12-12 12:18:08 +01:00
let args9 = [scope['project'].id];
2019-12-12 11:21:49 +01:00
p8.on['click'] = function (e) {if (!context.__owl__.isMounted){return}e.preventDefault();utils.getComponent(context)['onEdit'](...args9, e);};
c8.push({text: \` Edit \`});
2019-12-12 22:27:52 +01:00
let _10 = scope['project'].name;
if (_10 != null) {
c8.push({text: _10});
}
}
scope = _origScope5;
return vn1;
}"
`;
2019-05-23 11:26:03 +02:00
exports[`t-on t-on with self and prevent modifiers (order matters) 1`] = `
"function anonymous(context, extra
2019-05-23 11:26:03 +02:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-05-23 11:26:03 +02:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-05-23 11:26:03 +02:00
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
2019-05-23 11:26:03 +02:00
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}if (e.target !== this.elm) {return}e.preventDefault();utils.getComponent(context)['onClick'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('span', p4, c4);
2019-12-12 12:18:08 +01:00
c2.push(vn4);
c4.push({text: \`Button\`});
return vn1;
2019-05-23 11:26:03 +02:00
}"
`;
exports[`t-on t-on with self modifier 1`] = `
"function anonymous(context, extra
2019-05-23 11:26:03 +02:00
) {
// Template name: \\"test\\"
2019-12-12 11:21:49 +01:00
let utils = this.constructor.utils;
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-05-23 11:26:03 +02:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-05-23 11:26:03 +02:00
let c2 = [], p2 = {key:2,on:{}};
2019-12-12 22:27:52 +01:00
let vn2 = h('button', p2, c2);
2019-05-23 11:26:03 +02:00
c1.push(vn2);
2019-12-12 11:21:49 +01:00
extra.handlers['click__3__'] = extra.handlers['click__3__'] || function (e) {if (!context.__owl__.isMounted){return}utils.getComponent(context)['onClick'](e);};
2019-12-12 12:18:08 +01:00
p2.on['click'] = extra.handlers['click__3__'];
let c4 = [], p4 = {key:4};
2019-12-12 22:27:52 +01:00
let vn4 = h('span', p4, c4);
2019-12-12 12:18:08 +01:00
c2.push(vn4);
c4.push({text: \`Button\`});
let c5 = [], p5 = {key:5,on:{}};
2019-12-12 22:27:52 +01:00
let vn5 = h('button', p5, c5);
2019-12-12 12:18:08 +01:00
c1.push(vn5);
2019-12-12 11:21:49 +01:00
extra.handlers['click__6__'] = extra.handlers['click__6__'] || function (e) {if (!context.__owl__.isMounted){return}if (e.target !== this.elm) {return}utils.getComponent(context)['onClickSelf'](e);};
2019-12-12 12:18:08 +01:00
p5.on['click'] = extra.handlers['click__6__'];
let c7 = [], p7 = {key:7};
2019-12-12 22:27:52 +01:00
let vn7 = h('span', p7, c7);
2019-12-12 12:18:08 +01:00
c5.push(vn7);
c7.push({text: \`Button\`});
return vn1;
2019-05-23 11:26:03 +02:00
}"
`;
2019-12-12 11:21:49 +01:00
exports[`t-on t-on with t-call 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"main\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
2019-12-12 11:21:49 +01:00
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-12-12 11:21:49 +01:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-12-13 16:02:03 +01:00
this.subTemplates['sub'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
2019-12-12 11:21:49 +01:00
return vn1;
}"
`;
exports[`t-on t-on, with arguments and t-call 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"main\\"
2019-12-13 16:02:03 +01:00
let utils = this.constructor.utils;
2019-12-12 11:21:49 +01:00
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-12-12 11:21:49 +01:00
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
2019-12-13 16:02:03 +01:00
this.subTemplates['sub'].call(this, Object.assign(Object.create(context), scope), Object.assign({}, extra, {parentNode: c1, parent: utils.getComponent(context)}));
2019-12-12 11:21:49 +01:00
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-raw literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = 'ok';
if (_2 != null) {
c1.push(...utils.htmlToVDOM(_2));
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-raw not escaping 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['var'];
if (_2 != null) {
c1.push(...utils.htmlToVDOM(_2));
}
return vn1;
}"
`;
exports[`t-raw t-raw and another sibling node 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`hello\`});
2019-12-12 22:27:52 +01:00
let _3 = scope['var'];
if (_3 != null) {
c1.push(...utils.htmlToVDOM(_3));
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-raw variable 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-07-14 22:18:00 +02:00
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('span', p1, c1);
let _2 = scope['var'];
if (_2 != null) {
c1.push(...utils.htmlToVDOM(_2));
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
2019-04-09 10:31:32 +02:00
exports[`t-ref can get a dynamic ref on a node 1`] = `
"function anonymous(context, extra
2019-04-09 10:31:32 +02:00
) {
// Template name: \\"test\\"
2019-09-26 21:56:01 +02:00
context.__owl__.refs = context.__owl__.refs || {};
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
2019-04-09 10:31:32 +02:00
c1.push(vn2);
const ref3 = \`myspan\${scope['id']}\`;
2019-04-09 10:31:32 +02:00
p2.hook = {
create: (_, n) => {
2019-09-26 21:56:01 +02:00
context.__owl__.refs[ref3] = n.elm;
},
2019-10-10 17:08:16 +02:00
destroy: () => {
delete context.__owl__.refs[ref3];
},
};
return vn1;
2019-04-09 10:31:32 +02:00
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-ref can get a ref on a node 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
2019-09-26 21:56:01 +02:00
context.__owl__.refs = context.__owl__.refs || {};
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
2019-02-03 19:48:08 +01:00
c1.push(vn2);
const ref3 = \`myspan\`;
2019-02-03 19:48:08 +01:00
p2.hook = {
create: (_, n) => {
2019-09-26 21:56:01 +02:00
context.__owl__.refs[ref3] = n.elm;
},
2019-10-10 17:08:16 +02:00
destroy: () => {
delete context.__owl__.refs[ref3];
},
};
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-ref refs in a loop 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-09-26 21:56:01 +02:00
context.__owl__.refs = context.__owl__.refs || {};
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = scope['items'];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.item_first = i1 === 0
scope.item_last = i1 === _length3 - 1
scope.item_index = i1
scope.item = _3[i1]
scope.item_value = _4[i1]
const nodeKey6 = scope['item'];
let c7 = [], p7 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn7 = h('div', p7, c7);
c1.push(vn7);
const ref8 = (scope['item']);
p7.hook = {
create: (_, n) => {
context.__owl__.refs[ref8] = n.elm;
},
2019-10-10 17:08:16 +02:00
destroy: () => {
delete context.__owl__.refs[ref8];
2019-10-10 17:08:16 +02:00
},
};
2019-12-12 22:27:52 +01:00
let _9 = scope['item'];
if (_9 != null) {
c7.push({text: _9});
}
}
scope = _origScope5;
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-set evaluate value expression 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.value = 1+2;
2019-12-12 22:27:52 +01:00
if (scope.value != null) {
c1.push({text: scope.value});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set evaluate value expression, part 2 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.value = scope['somevariable']+2;
2019-12-12 22:27:52 +01:00
if (scope.value != null) {
c1.push({text: scope.value});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set set from attribute literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.value = 'ok';
2019-12-12 22:27:52 +01:00
if (scope.value != null) {
c1.push({text: scope.value});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set set from attribute lookup 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.stuff = scope['value'];
2019-12-12 22:27:52 +01:00
if (scope.stuff != null) {
c1.push({text: scope.stuff});
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set set from body literal 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-09-11 11:28:41 +02:00
let result;
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = new utils.VDomArray();
c1.push({text: \`ok\`});
scope.value = c1
2019-12-12 22:27:52 +01:00
if (scope.value != null) {
let _origScope2 = scope;
scope = Object.assign(Object.create(context), scope);
scope.value = scope.value instanceof utils.VDomArray ? utils.vDomToString(scope.value) : scope.value;
2019-12-12 22:27:52 +01:00
let vn3 = {text: scope.value};
result = vn3
scope = _origScope2;
}
2019-09-11 11:28:41 +02:00
return result;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set set from body lookup 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = new utils.VDomArray();
let _3 = scope['value'];
if (_3 != null) {
c2.push({text: _3});
}
scope.stuff = c2
2019-12-12 22:27:52 +01:00
if (scope.stuff != null) {
let _origScope4 = scope;
scope = Object.assign(Object.create(context), scope);
scope.stuff = scope.stuff instanceof utils.VDomArray ? utils.vDomToString(scope.stuff) : scope.stuff;
c1.push({text: scope.stuff});
scope = _origScope4;
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set set from empty body 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope.stuff != null) {
c1.push({text: scope.stuff});
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`t-set t-set and t-if 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v = scope['value'];
if (scope.v==='ok') {
c1.push({text: \`grimbergen\`});
}
return vn1;
}"
`;
exports[`t-set t-set body is evaluated immediately 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v1 = 'before';
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c2.push(vn3);
2019-12-12 22:27:52 +01:00
if (scope.v1 != null) {
c3.push({text: scope.v1});
}
scope.v2 = c2
scope.v1 = 'after';
2019-12-12 22:27:52 +01:00
if (scope.v2 != null) {
const vnodeArray = scope.v2 instanceof utils.VDomArray ? scope.v2 : utils.htmlToVDOM(scope.v2);
c1.push(...vnodeArray);
}
return vn1;
}"
`;
exports[`t-set t-set evaluates an expression only once 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v = scope['value']+' artois';
2019-12-12 22:27:52 +01:00
if (scope.v != null) {
c1.push({text: scope.v});
}
2019-12-12 22:27:52 +01:00
if (scope.v != null) {
c1.push({text: scope.v});
}
return vn1;
}"
`;
exports[`t-set t-set should reuse variable if possible 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v = 1;
2019-12-12 22:27:52 +01:00
let _2 = scope['list'];
if (!_2) { throw new Error('QWeb error: Invalid loop expression')}
2019-12-12 22:27:52 +01:00
let _3 = _4 = _2;
if (!(_2 instanceof Array)) {
_3 = Object.keys(_2);
_4 = Object.values(_2);
}
2019-12-12 22:27:52 +01:00
let _length3 = _3.length;
let _origScope5 = scope;
scope = Object.assign(Object.create(context), scope);
for (let i1 = 0; i1 < _length3; i1++) {
scope.elem_first = i1 === 0
scope.elem_last = i1 === _length3 - 1
scope.elem_index = i1
scope.elem = _3[i1]
scope.elem_value = _4[i1]
const nodeKey6 = scope['elem_index'];
let c7 = [], p7 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn7 = h('div', p7, c7);
c1.push(vn7);
let c8 = [], p8 = {key:nodeKey6};
2019-12-12 22:27:52 +01:00
let vn8 = h('span', p8, c8);
c7.push(vn8);
c8.push({text: \`v\`});
2019-12-12 22:27:52 +01:00
if (scope.v != null) {
c8.push({text: scope.v});
}
scope.v = scope['elem'];
}
scope = _origScope5;
return vn1;
}"
`;
exports[`t-set t-set with content and sub t-esc 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
let h = this.h;
let c1 = [], p1 = {key:1};
let vn1 = h('div', p1, c1);
let c2 = new utils.VDomArray();
let _3 = scope['beep'];
if (_3 != null) {
c2.push({text: _3});
}
c2.push({text: \` boop\`});
scope.setvar = c2
if (scope.setvar != null) {
let _origScope4 = scope;
scope = Object.assign(Object.create(context), scope);
scope.setvar = scope.setvar instanceof utils.VDomArray ? utils.vDomToString(scope.setvar) : scope.setvar;
c1.push({text: scope.setvar});
scope = _origScope4;
}
return vn1;
}"
`;
exports[`t-set t-set with t-value (falsy) and body 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v3 = false;
scope.v1 = 'before';
scope.v2 = scope.v3;
if (!(scope.v2)) {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c2.push(vn3);
2019-12-12 22:27:52 +01:00
if (scope.v1 != null) {
c3.push({text: scope.v1});
}
scope.v2 = c2
}
scope.v1 = 'after';
scope.v3 = true;
2019-12-12 22:27:52 +01:00
if (scope.v2 != null) {
const vnodeArray = scope.v2 instanceof utils.VDomArray ? scope.v2 : utils.htmlToVDOM(scope.v2);
c1.push(...vnodeArray);
}
return vn1;
}"
`;
exports[`t-set t-set with t-value (truthy) and body 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.v3 = 'Truthy';
scope.v1 = 'before';
scope.v2 = scope.v3;
if (!(scope.v2)) {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c2.push(vn3);
2019-12-12 22:27:52 +01:00
if (scope.v1 != null) {
c3.push({text: scope.v1});
}
scope.v2 = c2
}
scope.v1 = 'after';
scope.v3 = false;
2019-12-12 22:27:52 +01:00
if (scope.v2 != null) {
const vnodeArray = scope.v2 instanceof utils.VDomArray ? scope.v2 : utils.htmlToVDOM(scope.v2);
c1.push(...vnodeArray);
}
return vn1;
}"
`;
exports[`t-set t-set, t-if, and mix of expression/body lookup, 1 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['flag']) {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
c2.push({text: \`1\`});
scope.ourvar = c2
}
else {
scope.ourvar = 0;
}
2019-12-12 22:27:52 +01:00
if (scope.ourvar != null) {
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
scope.ourvar = scope.ourvar instanceof utils.VDomArray ? utils.vDomToString(scope.ourvar) : scope.ourvar;
c1.push({text: scope.ourvar});
scope = _origScope3;
}
return vn1;
}"
`;
exports[`t-set t-set, t-if, and mix of expression/body lookup, 1 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['flag']) {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
c2.push({text: \`1\`});
scope.ourvar = c2
}
else {
scope.ourvar = 0;
}
2019-12-12 22:27:52 +01:00
if (scope.ourvar != null) {
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
scope.ourvar = scope.ourvar instanceof utils.VDomArray ? utils.vDomToString(scope.ourvar) : scope.ourvar;
c1.push({text: scope.ourvar});
scope = _origScope3;
}
return vn1;
}"
`;
exports[`t-set t-set, t-if, and mix of expression/body lookup, 2 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['flag']) {
scope.ourvar = 1;
}
else {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
c2.push({text: \`0\`});
scope.ourvar = c2
}
2019-12-12 22:27:52 +01:00
if (scope.ourvar != null) {
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
scope.ourvar = scope.ourvar instanceof utils.VDomArray ? utils.vDomToString(scope.ourvar) : scope.ourvar;
c1.push({text: scope.ourvar});
scope = _origScope3;
}
return vn1;
}"
`;
exports[`t-set t-set, t-if, and mix of expression/body lookup, 2 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
if (scope['flag']) {
scope.ourvar = 1;
}
else {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
c2.push({text: \`0\`});
scope.ourvar = c2
}
2019-12-12 22:27:52 +01:00
if (scope.ourvar != null) {
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
scope.ourvar = scope.ourvar instanceof utils.VDomArray ? utils.vDomToString(scope.ourvar) : scope.ourvar;
c1.push({text: scope.ourvar});
scope = _origScope3;
}
return vn1;
}"
`;
2019-02-03 19:48:08 +01:00
exports[`t-set value priority 1`] = `
"function anonymous(context, extra
2019-02-03 19:48:08 +01:00
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
let scope = Object.create(context);
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
scope.value = 1;
if (!(scope.value)) {
2019-12-12 22:27:52 +01:00
let c2 = new utils.VDomArray();
c2.push({text: \`2\`});
scope.value = c2
}
2019-12-12 22:27:52 +01:00
if (scope.value != null) {
let _origScope3 = scope;
scope = Object.assign(Object.create(context), scope);
scope.value = scope.value instanceof utils.VDomArray ? utils.vDomToString(scope.value) : scope.value;
c1.push({text: scope.value});
scope = _origScope3;
2019-02-03 19:48:08 +01:00
}
return vn1;
2019-02-03 19:48:08 +01:00
}"
`;
exports[`translation support can translate node content 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
c1.push({text: \`mot\`});
return vn1;
}"
`;
exports[`translation support does not translate node content if disabled 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`mot\`});
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('span', p3, c3);
c1.push(vn3);
c3.push({text: \`word\`});
return vn1;
}"
`;
exports[`translation support some attributes are translated 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let _2 = 'mot';
let c3 = [], p3 = {key:3,attrs:{label: _2}};
2019-12-12 22:27:52 +01:00
let vn3 = h('p', p3, c3);
c1.push(vn3);
c3.push({text: \`mot\`});
2019-12-12 22:27:52 +01:00
let _4 = 'mot';
let c5 = [], p5 = {key:5,attrs:{title: _4}};
2019-12-12 22:27:52 +01:00
let vn5 = h('p', p5, c5);
c1.push(vn5);
c5.push({text: \`mot\`});
2019-12-12 22:27:52 +01:00
let _6 = 'mot';
let c7 = [], p7 = {key:7,attrs:{placeholder: _6}};
2019-12-12 22:27:52 +01:00
let vn7 = h('p', p7, c7);
c1.push(vn7);
c7.push({text: \`mot\`});
2019-12-12 22:27:52 +01:00
let _8 = 'mot';
let c9 = [], p9 = {key:9,attrs:{alt: _8}};
2019-12-12 22:27:52 +01:00
let vn9 = h('p', p9, c9);
c1.push(vn9);
c9.push({text: \`mot\`});
2019-12-12 22:27:52 +01:00
let _10 = 'word';
let c11 = [], p11 = {key:11,attrs:{something: _10}};
2019-12-12 22:27:52 +01:00
let vn11 = h('p', p11, c11);
c1.push(vn11);
c11.push({text: \`mot\`});
return vn1;
}"
`;
exports[`whitespace handling consecutives whitespaces are condensed into a single space 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
c1.push({text: \` abc \`});
return vn1;
}"
`;
exports[`whitespace handling nothing is done in pre tags 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('pre', p1, c1);
c1.push({text: \` \`});
return vn1;
}"
`;
exports[`whitespace handling nothing is done in pre tags 2`] = `
"function anonymous(context, extra
) {
// Template name: \\"test2\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-11-27 15:07:10 +01:00
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('pre', p2, c2);
2019-11-27 15:07:10 +01:00
c2.push({text: \`
some text
\`});
2019-11-27 15:07:10 +01:00
return vn2;
}"
`;
exports[`whitespace handling nothing is done in pre tags 3`] = `
"function anonymous(context, extra
) {
// Template name: \\"test3\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
2019-11-27 15:07:10 +01:00
let c3 = [], p3 = {key:3};
2019-12-12 22:27:52 +01:00
let vn3 = h('pre', p3, c3);
2019-11-27 15:07:10 +01:00
c3.push({text: \`
\`});
2019-11-27 15:07:10 +01:00
return vn3;
}"
`;
exports[`whitespace handling white space only text nodes are condensed into a single space 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
c1.push({text: \` \`});
return vn1;
}"
`;
exports[`whitespace handling whitespace only text nodes with newlines are removed 1`] = `
"function anonymous(context, extra
) {
// Template name: \\"test\\"
2019-12-12 22:27:52 +01:00
let h = this.h;
let c1 = [], p1 = {key:1};
2019-12-12 22:27:52 +01:00
let vn1 = h('div', p1, c1);
let c2 = [], p2 = {key:2};
2019-12-12 22:27:52 +01:00
let vn2 = h('span', p2, c2);
c1.push(vn2);
c2.push({text: \`abc\`});
return vn1;
}"
`;