@odoo/owl 2.8.2 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile_templates.mjs +4 -1
- package/dist/compiler.js +2478 -0
- package/dist/owl-devtools.zip +0 -0
- package/dist/owl.cjs.js +75 -35
- package/dist/owl.es.js +75 -35
- package/dist/owl.iife.js +75 -35
- package/dist/owl.iife.min.js +1 -1
- package/dist/types/owl.d.ts +1 -1
- package/dist/types/runtime/scheduler.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +11 -1
package/dist/owl-devtools.zip
CHANGED
|
Binary file
|
package/dist/owl.cjs.js
CHANGED
|
@@ -88,10 +88,16 @@ function toggler(key, child) {
|
|
|
88
88
|
class OwlError extends Error {
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
let elemSetAttribute;
|
|
92
|
+
let removeAttribute;
|
|
93
|
+
let tokenListAdd;
|
|
94
|
+
let tokenListRemove;
|
|
95
|
+
if (typeof Element !== "undefined") {
|
|
96
|
+
({ setAttribute: elemSetAttribute, removeAttribute } = Element.prototype);
|
|
97
|
+
const tokenList = DOMTokenList.prototype;
|
|
98
|
+
tokenListAdd = tokenList.add;
|
|
99
|
+
tokenListRemove = tokenList.remove;
|
|
100
|
+
}
|
|
95
101
|
const isArray = Array.isArray;
|
|
96
102
|
const { split, trim } = String.prototype;
|
|
97
103
|
const wordRegexp = /\s+/;
|
|
@@ -470,10 +476,15 @@ function setupSyntheticEvent(evName, eventKey, capture = false) {
|
|
|
470
476
|
}
|
|
471
477
|
|
|
472
478
|
const getDescriptor$3 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
479
|
+
let nodeInsertBefore$3;
|
|
480
|
+
let nodeSetTextContent$1;
|
|
481
|
+
let nodeRemoveChild$3;
|
|
482
|
+
if (typeof Node !== "undefined") {
|
|
483
|
+
const nodeProto = Node.prototype;
|
|
484
|
+
nodeInsertBefore$3 = nodeProto.insertBefore;
|
|
485
|
+
nodeSetTextContent$1 = getDescriptor$3(nodeProto, "textContent").set;
|
|
486
|
+
nodeRemoveChild$3 = nodeProto.removeChild;
|
|
487
|
+
}
|
|
477
488
|
// -----------------------------------------------------------------------------
|
|
478
489
|
// Multi NODE
|
|
479
490
|
// -----------------------------------------------------------------------------
|
|
@@ -609,11 +620,15 @@ function multi(children) {
|
|
|
609
620
|
}
|
|
610
621
|
|
|
611
622
|
const getDescriptor$2 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
const
|
|
623
|
+
let nodeInsertBefore$2;
|
|
624
|
+
let characterDataSetData$1;
|
|
625
|
+
let nodeRemoveChild$2;
|
|
626
|
+
if (typeof Node !== "undefined") {
|
|
627
|
+
const nodeProto = Node.prototype;
|
|
628
|
+
nodeInsertBefore$2 = nodeProto.insertBefore;
|
|
629
|
+
nodeRemoveChild$2 = nodeProto.removeChild;
|
|
630
|
+
characterDataSetData$1 = getDescriptor$2(CharacterData.prototype, "data").set;
|
|
631
|
+
}
|
|
617
632
|
class VSimpleNode {
|
|
618
633
|
constructor(text) {
|
|
619
634
|
this.text = text;
|
|
@@ -679,12 +694,18 @@ function toText(value) {
|
|
|
679
694
|
}
|
|
680
695
|
|
|
681
696
|
const getDescriptor$1 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
697
|
+
let nodeProto;
|
|
698
|
+
let elementProto;
|
|
699
|
+
let characterDataSetData;
|
|
700
|
+
let nodeGetFirstChild;
|
|
701
|
+
let nodeGetNextSibling;
|
|
702
|
+
if (typeof Node !== "undefined") {
|
|
703
|
+
nodeProto = Node.prototype;
|
|
704
|
+
elementProto = Element.prototype;
|
|
705
|
+
characterDataSetData = getDescriptor$1(CharacterData.prototype, "data").set;
|
|
706
|
+
nodeGetFirstChild = getDescriptor$1(nodeProto, "firstChild").get;
|
|
707
|
+
nodeGetNextSibling = getDescriptor$1(nodeProto, "nextSibling").get;
|
|
708
|
+
}
|
|
688
709
|
const NO_OP$1 = () => { };
|
|
689
710
|
function makePropSetter(name) {
|
|
690
711
|
return function setProp(value) {
|
|
@@ -1073,8 +1094,8 @@ function createBlockClass(template, ctx) {
|
|
|
1073
1094
|
const isDynamic = refN > 0;
|
|
1074
1095
|
// these values are defined here to make them faster to lookup in the class
|
|
1075
1096
|
// block scope
|
|
1076
|
-
const nodeCloneNode = nodeProto
|
|
1077
|
-
const nodeInsertBefore = nodeProto
|
|
1097
|
+
const nodeCloneNode = nodeProto.cloneNode;
|
|
1098
|
+
const nodeInsertBefore = nodeProto.insertBefore;
|
|
1078
1099
|
const elementRemove = elementProto.remove;
|
|
1079
1100
|
class Block {
|
|
1080
1101
|
constructor(data) {
|
|
@@ -1203,11 +1224,17 @@ function makeRefSetter(index, refs) {
|
|
|
1203
1224
|
}
|
|
1204
1225
|
|
|
1205
1226
|
const getDescriptor = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1227
|
+
let nodeInsertBefore$1;
|
|
1228
|
+
let nodeAppendChild;
|
|
1229
|
+
let nodeRemoveChild$1;
|
|
1230
|
+
let nodeSetTextContent;
|
|
1231
|
+
if (typeof Node !== "undefined") {
|
|
1232
|
+
const nodeProto = Node.prototype;
|
|
1233
|
+
nodeInsertBefore$1 = nodeProto.insertBefore;
|
|
1234
|
+
nodeAppendChild = nodeProto.appendChild;
|
|
1235
|
+
nodeRemoveChild$1 = nodeProto.removeChild;
|
|
1236
|
+
nodeSetTextContent = getDescriptor(nodeProto, "textContent").set;
|
|
1237
|
+
}
|
|
1211
1238
|
// -----------------------------------------------------------------------------
|
|
1212
1239
|
// List Node
|
|
1213
1240
|
// -----------------------------------------------------------------------------
|
|
@@ -1419,9 +1446,13 @@ function createMapping(ch1, startIdx1, endIdx2) {
|
|
|
1419
1446
|
return mapping;
|
|
1420
1447
|
}
|
|
1421
1448
|
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1449
|
+
let nodeInsertBefore;
|
|
1450
|
+
let nodeRemoveChild;
|
|
1451
|
+
if (typeof Node !== "undefined") {
|
|
1452
|
+
const nodeProto = Node.prototype;
|
|
1453
|
+
nodeInsertBefore = nodeProto.insertBefore;
|
|
1454
|
+
nodeRemoveChild = nodeProto.removeChild;
|
|
1455
|
+
}
|
|
1425
1456
|
class VHtml {
|
|
1426
1457
|
constructor(html) {
|
|
1427
1458
|
this.content = [];
|
|
@@ -3705,7 +3736,10 @@ function interpolate(s) {
|
|
|
3705
3736
|
const whitespaceRE = /\s+/g;
|
|
3706
3737
|
// using a non-html document so that <inner/outer>HTML serializes as XML instead
|
|
3707
3738
|
// of HTML (as we will parse it as xml later)
|
|
3708
|
-
|
|
3739
|
+
let xmlDoc;
|
|
3740
|
+
if (typeof document !== "undefined") {
|
|
3741
|
+
xmlDoc = document.implementation.createDocument(null, null, null);
|
|
3742
|
+
}
|
|
3709
3743
|
const MODS = new Set(["stop", "capture", "prevent", "self", "synthetic"]);
|
|
3710
3744
|
let nextDataIds = {};
|
|
3711
3745
|
function generateId(prefix = "") {
|
|
@@ -5824,11 +5858,15 @@ function compile(template, options = {
|
|
|
5824
5858
|
}
|
|
5825
5859
|
|
|
5826
5860
|
// do not modify manually. This file is generated by the release script.
|
|
5827
|
-
const version = "2.8.
|
|
5861
|
+
const version = "2.8.3";
|
|
5828
5862
|
|
|
5829
5863
|
// -----------------------------------------------------------------------------
|
|
5830
5864
|
// Scheduler
|
|
5831
5865
|
// -----------------------------------------------------------------------------
|
|
5866
|
+
let requestAnimationFrame;
|
|
5867
|
+
if (typeof window !== "undefined") {
|
|
5868
|
+
requestAnimationFrame = window.requestAnimationFrame.bind(window);
|
|
5869
|
+
}
|
|
5832
5870
|
class Scheduler {
|
|
5833
5871
|
constructor() {
|
|
5834
5872
|
this.tasks = new Set();
|
|
@@ -5916,11 +5954,13 @@ class Scheduler {
|
|
|
5916
5954
|
}
|
|
5917
5955
|
// capture the value of requestAnimationFrame as soon as possible, to avoid
|
|
5918
5956
|
// interactions with other code, such as test frameworks that override them
|
|
5919
|
-
Scheduler.requestAnimationFrame =
|
|
5957
|
+
Scheduler.requestAnimationFrame = requestAnimationFrame;
|
|
5920
5958
|
|
|
5921
5959
|
let hasBeenLogged = false;
|
|
5922
5960
|
const apps = new Set();
|
|
5923
|
-
|
|
5961
|
+
if (typeof window !== "undefined") {
|
|
5962
|
+
window.__OWL_DEVTOOLS__ || (window.__OWL_DEVTOOLS__ = { apps, Fiber, RootFiber, toRaw, reactive });
|
|
5963
|
+
}
|
|
5924
5964
|
class App extends TemplateSet {
|
|
5925
5965
|
constructor(Root, config = {}) {
|
|
5926
5966
|
super(config);
|
|
@@ -6331,6 +6371,6 @@ exports.whenReady = whenReady;
|
|
|
6331
6371
|
exports.xml = xml;
|
|
6332
6372
|
|
|
6333
6373
|
|
|
6334
|
-
__info__.date = '2026-
|
|
6335
|
-
__info__.hash = '
|
|
6374
|
+
__info__.date = '2026-03-30T13:05:32.099Z';
|
|
6375
|
+
__info__.hash = 'efae3e4';
|
|
6336
6376
|
__info__.url = 'https://github.com/odoo/owl';
|
package/dist/owl.es.js
CHANGED
|
@@ -84,10 +84,16 @@ function toggler(key, child) {
|
|
|
84
84
|
class OwlError extends Error {
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
let elemSetAttribute;
|
|
88
|
+
let removeAttribute;
|
|
89
|
+
let tokenListAdd;
|
|
90
|
+
let tokenListRemove;
|
|
91
|
+
if (typeof Element !== "undefined") {
|
|
92
|
+
({ setAttribute: elemSetAttribute, removeAttribute } = Element.prototype);
|
|
93
|
+
const tokenList = DOMTokenList.prototype;
|
|
94
|
+
tokenListAdd = tokenList.add;
|
|
95
|
+
tokenListRemove = tokenList.remove;
|
|
96
|
+
}
|
|
91
97
|
const isArray = Array.isArray;
|
|
92
98
|
const { split, trim } = String.prototype;
|
|
93
99
|
const wordRegexp = /\s+/;
|
|
@@ -466,10 +472,15 @@ function setupSyntheticEvent(evName, eventKey, capture = false) {
|
|
|
466
472
|
}
|
|
467
473
|
|
|
468
474
|
const getDescriptor$3 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
475
|
+
let nodeInsertBefore$3;
|
|
476
|
+
let nodeSetTextContent$1;
|
|
477
|
+
let nodeRemoveChild$3;
|
|
478
|
+
if (typeof Node !== "undefined") {
|
|
479
|
+
const nodeProto = Node.prototype;
|
|
480
|
+
nodeInsertBefore$3 = nodeProto.insertBefore;
|
|
481
|
+
nodeSetTextContent$1 = getDescriptor$3(nodeProto, "textContent").set;
|
|
482
|
+
nodeRemoveChild$3 = nodeProto.removeChild;
|
|
483
|
+
}
|
|
473
484
|
// -----------------------------------------------------------------------------
|
|
474
485
|
// Multi NODE
|
|
475
486
|
// -----------------------------------------------------------------------------
|
|
@@ -605,11 +616,15 @@ function multi(children) {
|
|
|
605
616
|
}
|
|
606
617
|
|
|
607
618
|
const getDescriptor$2 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
const
|
|
619
|
+
let nodeInsertBefore$2;
|
|
620
|
+
let characterDataSetData$1;
|
|
621
|
+
let nodeRemoveChild$2;
|
|
622
|
+
if (typeof Node !== "undefined") {
|
|
623
|
+
const nodeProto = Node.prototype;
|
|
624
|
+
nodeInsertBefore$2 = nodeProto.insertBefore;
|
|
625
|
+
nodeRemoveChild$2 = nodeProto.removeChild;
|
|
626
|
+
characterDataSetData$1 = getDescriptor$2(CharacterData.prototype, "data").set;
|
|
627
|
+
}
|
|
613
628
|
class VSimpleNode {
|
|
614
629
|
constructor(text) {
|
|
615
630
|
this.text = text;
|
|
@@ -675,12 +690,18 @@ function toText(value) {
|
|
|
675
690
|
}
|
|
676
691
|
|
|
677
692
|
const getDescriptor$1 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
693
|
+
let nodeProto;
|
|
694
|
+
let elementProto;
|
|
695
|
+
let characterDataSetData;
|
|
696
|
+
let nodeGetFirstChild;
|
|
697
|
+
let nodeGetNextSibling;
|
|
698
|
+
if (typeof Node !== "undefined") {
|
|
699
|
+
nodeProto = Node.prototype;
|
|
700
|
+
elementProto = Element.prototype;
|
|
701
|
+
characterDataSetData = getDescriptor$1(CharacterData.prototype, "data").set;
|
|
702
|
+
nodeGetFirstChild = getDescriptor$1(nodeProto, "firstChild").get;
|
|
703
|
+
nodeGetNextSibling = getDescriptor$1(nodeProto, "nextSibling").get;
|
|
704
|
+
}
|
|
684
705
|
const NO_OP$1 = () => { };
|
|
685
706
|
function makePropSetter(name) {
|
|
686
707
|
return function setProp(value) {
|
|
@@ -1069,8 +1090,8 @@ function createBlockClass(template, ctx) {
|
|
|
1069
1090
|
const isDynamic = refN > 0;
|
|
1070
1091
|
// these values are defined here to make them faster to lookup in the class
|
|
1071
1092
|
// block scope
|
|
1072
|
-
const nodeCloneNode = nodeProto
|
|
1073
|
-
const nodeInsertBefore = nodeProto
|
|
1093
|
+
const nodeCloneNode = nodeProto.cloneNode;
|
|
1094
|
+
const nodeInsertBefore = nodeProto.insertBefore;
|
|
1074
1095
|
const elementRemove = elementProto.remove;
|
|
1075
1096
|
class Block {
|
|
1076
1097
|
constructor(data) {
|
|
@@ -1199,11 +1220,17 @@ function makeRefSetter(index, refs) {
|
|
|
1199
1220
|
}
|
|
1200
1221
|
|
|
1201
1222
|
const getDescriptor = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1223
|
+
let nodeInsertBefore$1;
|
|
1224
|
+
let nodeAppendChild;
|
|
1225
|
+
let nodeRemoveChild$1;
|
|
1226
|
+
let nodeSetTextContent;
|
|
1227
|
+
if (typeof Node !== "undefined") {
|
|
1228
|
+
const nodeProto = Node.prototype;
|
|
1229
|
+
nodeInsertBefore$1 = nodeProto.insertBefore;
|
|
1230
|
+
nodeAppendChild = nodeProto.appendChild;
|
|
1231
|
+
nodeRemoveChild$1 = nodeProto.removeChild;
|
|
1232
|
+
nodeSetTextContent = getDescriptor(nodeProto, "textContent").set;
|
|
1233
|
+
}
|
|
1207
1234
|
// -----------------------------------------------------------------------------
|
|
1208
1235
|
// List Node
|
|
1209
1236
|
// -----------------------------------------------------------------------------
|
|
@@ -1415,9 +1442,13 @@ function createMapping(ch1, startIdx1, endIdx2) {
|
|
|
1415
1442
|
return mapping;
|
|
1416
1443
|
}
|
|
1417
1444
|
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1445
|
+
let nodeInsertBefore;
|
|
1446
|
+
let nodeRemoveChild;
|
|
1447
|
+
if (typeof Node !== "undefined") {
|
|
1448
|
+
const nodeProto = Node.prototype;
|
|
1449
|
+
nodeInsertBefore = nodeProto.insertBefore;
|
|
1450
|
+
nodeRemoveChild = nodeProto.removeChild;
|
|
1451
|
+
}
|
|
1421
1452
|
class VHtml {
|
|
1422
1453
|
constructor(html) {
|
|
1423
1454
|
this.content = [];
|
|
@@ -3701,7 +3732,10 @@ function interpolate(s) {
|
|
|
3701
3732
|
const whitespaceRE = /\s+/g;
|
|
3702
3733
|
// using a non-html document so that <inner/outer>HTML serializes as XML instead
|
|
3703
3734
|
// of HTML (as we will parse it as xml later)
|
|
3704
|
-
|
|
3735
|
+
let xmlDoc;
|
|
3736
|
+
if (typeof document !== "undefined") {
|
|
3737
|
+
xmlDoc = document.implementation.createDocument(null, null, null);
|
|
3738
|
+
}
|
|
3705
3739
|
const MODS = new Set(["stop", "capture", "prevent", "self", "synthetic"]);
|
|
3706
3740
|
let nextDataIds = {};
|
|
3707
3741
|
function generateId(prefix = "") {
|
|
@@ -5820,11 +5854,15 @@ function compile(template, options = {
|
|
|
5820
5854
|
}
|
|
5821
5855
|
|
|
5822
5856
|
// do not modify manually. This file is generated by the release script.
|
|
5823
|
-
const version = "2.8.
|
|
5857
|
+
const version = "2.8.3";
|
|
5824
5858
|
|
|
5825
5859
|
// -----------------------------------------------------------------------------
|
|
5826
5860
|
// Scheduler
|
|
5827
5861
|
// -----------------------------------------------------------------------------
|
|
5862
|
+
let requestAnimationFrame;
|
|
5863
|
+
if (typeof window !== "undefined") {
|
|
5864
|
+
requestAnimationFrame = window.requestAnimationFrame.bind(window);
|
|
5865
|
+
}
|
|
5828
5866
|
class Scheduler {
|
|
5829
5867
|
constructor() {
|
|
5830
5868
|
this.tasks = new Set();
|
|
@@ -5912,11 +5950,13 @@ class Scheduler {
|
|
|
5912
5950
|
}
|
|
5913
5951
|
// capture the value of requestAnimationFrame as soon as possible, to avoid
|
|
5914
5952
|
// interactions with other code, such as test frameworks that override them
|
|
5915
|
-
Scheduler.requestAnimationFrame =
|
|
5953
|
+
Scheduler.requestAnimationFrame = requestAnimationFrame;
|
|
5916
5954
|
|
|
5917
5955
|
let hasBeenLogged = false;
|
|
5918
5956
|
const apps = new Set();
|
|
5919
|
-
|
|
5957
|
+
if (typeof window !== "undefined") {
|
|
5958
|
+
window.__OWL_DEVTOOLS__ || (window.__OWL_DEVTOOLS__ = { apps, Fiber, RootFiber, toRaw, reactive });
|
|
5959
|
+
}
|
|
5920
5960
|
class App extends TemplateSet {
|
|
5921
5961
|
constructor(Root, config = {}) {
|
|
5922
5962
|
super(config);
|
|
@@ -6291,6 +6331,6 @@ TemplateSet.prototype._compileTemplate = function _compileTemplate(name, templat
|
|
|
6291
6331
|
export { App, Component, EventBus, OwlError, __info__, batched, blockDom, htmlEscape, loadFile, markRaw, markup, mount, onError, onMounted, onPatched, onRendered, onWillDestroy, onWillPatch, onWillRender, onWillStart, onWillUnmount, onWillUpdateProps, reactive, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, validate, validateType, whenReady, xml };
|
|
6292
6332
|
|
|
6293
6333
|
|
|
6294
|
-
__info__.date = '2026-
|
|
6295
|
-
__info__.hash = '
|
|
6334
|
+
__info__.date = '2026-03-30T13:05:32.099Z';
|
|
6335
|
+
__info__.hash = 'efae3e4';
|
|
6296
6336
|
__info__.url = 'https://github.com/odoo/owl';
|
package/dist/owl.iife.js
CHANGED
|
@@ -87,10 +87,16 @@
|
|
|
87
87
|
class OwlError extends Error {
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
let elemSetAttribute;
|
|
91
|
+
let removeAttribute;
|
|
92
|
+
let tokenListAdd;
|
|
93
|
+
let tokenListRemove;
|
|
94
|
+
if (typeof Element !== "undefined") {
|
|
95
|
+
({ setAttribute: elemSetAttribute, removeAttribute } = Element.prototype);
|
|
96
|
+
const tokenList = DOMTokenList.prototype;
|
|
97
|
+
tokenListAdd = tokenList.add;
|
|
98
|
+
tokenListRemove = tokenList.remove;
|
|
99
|
+
}
|
|
94
100
|
const isArray = Array.isArray;
|
|
95
101
|
const { split, trim } = String.prototype;
|
|
96
102
|
const wordRegexp = /\s+/;
|
|
@@ -469,10 +475,15 @@
|
|
|
469
475
|
}
|
|
470
476
|
|
|
471
477
|
const getDescriptor$3 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
478
|
+
let nodeInsertBefore$3;
|
|
479
|
+
let nodeSetTextContent$1;
|
|
480
|
+
let nodeRemoveChild$3;
|
|
481
|
+
if (typeof Node !== "undefined") {
|
|
482
|
+
const nodeProto = Node.prototype;
|
|
483
|
+
nodeInsertBefore$3 = nodeProto.insertBefore;
|
|
484
|
+
nodeSetTextContent$1 = getDescriptor$3(nodeProto, "textContent").set;
|
|
485
|
+
nodeRemoveChild$3 = nodeProto.removeChild;
|
|
486
|
+
}
|
|
476
487
|
// -----------------------------------------------------------------------------
|
|
477
488
|
// Multi NODE
|
|
478
489
|
// -----------------------------------------------------------------------------
|
|
@@ -608,11 +619,15 @@
|
|
|
608
619
|
}
|
|
609
620
|
|
|
610
621
|
const getDescriptor$2 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
622
|
+
let nodeInsertBefore$2;
|
|
623
|
+
let characterDataSetData$1;
|
|
624
|
+
let nodeRemoveChild$2;
|
|
625
|
+
if (typeof Node !== "undefined") {
|
|
626
|
+
const nodeProto = Node.prototype;
|
|
627
|
+
nodeInsertBefore$2 = nodeProto.insertBefore;
|
|
628
|
+
nodeRemoveChild$2 = nodeProto.removeChild;
|
|
629
|
+
characterDataSetData$1 = getDescriptor$2(CharacterData.prototype, "data").set;
|
|
630
|
+
}
|
|
616
631
|
class VSimpleNode {
|
|
617
632
|
constructor(text) {
|
|
618
633
|
this.text = text;
|
|
@@ -678,12 +693,18 @@
|
|
|
678
693
|
}
|
|
679
694
|
|
|
680
695
|
const getDescriptor$1 = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
696
|
+
let nodeProto;
|
|
697
|
+
let elementProto;
|
|
698
|
+
let characterDataSetData;
|
|
699
|
+
let nodeGetFirstChild;
|
|
700
|
+
let nodeGetNextSibling;
|
|
701
|
+
if (typeof Node !== "undefined") {
|
|
702
|
+
nodeProto = Node.prototype;
|
|
703
|
+
elementProto = Element.prototype;
|
|
704
|
+
characterDataSetData = getDescriptor$1(CharacterData.prototype, "data").set;
|
|
705
|
+
nodeGetFirstChild = getDescriptor$1(nodeProto, "firstChild").get;
|
|
706
|
+
nodeGetNextSibling = getDescriptor$1(nodeProto, "nextSibling").get;
|
|
707
|
+
}
|
|
687
708
|
const NO_OP$1 = () => { };
|
|
688
709
|
function makePropSetter(name) {
|
|
689
710
|
return function setProp(value) {
|
|
@@ -1072,8 +1093,8 @@
|
|
|
1072
1093
|
const isDynamic = refN > 0;
|
|
1073
1094
|
// these values are defined here to make them faster to lookup in the class
|
|
1074
1095
|
// block scope
|
|
1075
|
-
const nodeCloneNode = nodeProto
|
|
1076
|
-
const nodeInsertBefore = nodeProto
|
|
1096
|
+
const nodeCloneNode = nodeProto.cloneNode;
|
|
1097
|
+
const nodeInsertBefore = nodeProto.insertBefore;
|
|
1077
1098
|
const elementRemove = elementProto.remove;
|
|
1078
1099
|
class Block {
|
|
1079
1100
|
constructor(data) {
|
|
@@ -1202,11 +1223,17 @@
|
|
|
1202
1223
|
}
|
|
1203
1224
|
|
|
1204
1225
|
const getDescriptor = (o, p) => Object.getOwnPropertyDescriptor(o, p);
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1226
|
+
let nodeInsertBefore$1;
|
|
1227
|
+
let nodeAppendChild;
|
|
1228
|
+
let nodeRemoveChild$1;
|
|
1229
|
+
let nodeSetTextContent;
|
|
1230
|
+
if (typeof Node !== "undefined") {
|
|
1231
|
+
const nodeProto = Node.prototype;
|
|
1232
|
+
nodeInsertBefore$1 = nodeProto.insertBefore;
|
|
1233
|
+
nodeAppendChild = nodeProto.appendChild;
|
|
1234
|
+
nodeRemoveChild$1 = nodeProto.removeChild;
|
|
1235
|
+
nodeSetTextContent = getDescriptor(nodeProto, "textContent").set;
|
|
1236
|
+
}
|
|
1210
1237
|
// -----------------------------------------------------------------------------
|
|
1211
1238
|
// List Node
|
|
1212
1239
|
// -----------------------------------------------------------------------------
|
|
@@ -1418,9 +1445,13 @@
|
|
|
1418
1445
|
return mapping;
|
|
1419
1446
|
}
|
|
1420
1447
|
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1448
|
+
let nodeInsertBefore;
|
|
1449
|
+
let nodeRemoveChild;
|
|
1450
|
+
if (typeof Node !== "undefined") {
|
|
1451
|
+
const nodeProto = Node.prototype;
|
|
1452
|
+
nodeInsertBefore = nodeProto.insertBefore;
|
|
1453
|
+
nodeRemoveChild = nodeProto.removeChild;
|
|
1454
|
+
}
|
|
1424
1455
|
class VHtml {
|
|
1425
1456
|
constructor(html) {
|
|
1426
1457
|
this.content = [];
|
|
@@ -3704,7 +3735,10 @@
|
|
|
3704
3735
|
const whitespaceRE = /\s+/g;
|
|
3705
3736
|
// using a non-html document so that <inner/outer>HTML serializes as XML instead
|
|
3706
3737
|
// of HTML (as we will parse it as xml later)
|
|
3707
|
-
|
|
3738
|
+
let xmlDoc;
|
|
3739
|
+
if (typeof document !== "undefined") {
|
|
3740
|
+
xmlDoc = document.implementation.createDocument(null, null, null);
|
|
3741
|
+
}
|
|
3708
3742
|
const MODS = new Set(["stop", "capture", "prevent", "self", "synthetic"]);
|
|
3709
3743
|
let nextDataIds = {};
|
|
3710
3744
|
function generateId(prefix = "") {
|
|
@@ -5823,11 +5857,15 @@
|
|
|
5823
5857
|
}
|
|
5824
5858
|
|
|
5825
5859
|
// do not modify manually. This file is generated by the release script.
|
|
5826
|
-
const version = "2.8.
|
|
5860
|
+
const version = "2.8.3";
|
|
5827
5861
|
|
|
5828
5862
|
// -----------------------------------------------------------------------------
|
|
5829
5863
|
// Scheduler
|
|
5830
5864
|
// -----------------------------------------------------------------------------
|
|
5865
|
+
let requestAnimationFrame;
|
|
5866
|
+
if (typeof window !== "undefined") {
|
|
5867
|
+
requestAnimationFrame = window.requestAnimationFrame.bind(window);
|
|
5868
|
+
}
|
|
5831
5869
|
class Scheduler {
|
|
5832
5870
|
constructor() {
|
|
5833
5871
|
this.tasks = new Set();
|
|
@@ -5915,11 +5953,13 @@
|
|
|
5915
5953
|
}
|
|
5916
5954
|
// capture the value of requestAnimationFrame as soon as possible, to avoid
|
|
5917
5955
|
// interactions with other code, such as test frameworks that override them
|
|
5918
|
-
Scheduler.requestAnimationFrame =
|
|
5956
|
+
Scheduler.requestAnimationFrame = requestAnimationFrame;
|
|
5919
5957
|
|
|
5920
5958
|
let hasBeenLogged = false;
|
|
5921
5959
|
const apps = new Set();
|
|
5922
|
-
|
|
5960
|
+
if (typeof window !== "undefined") {
|
|
5961
|
+
window.__OWL_DEVTOOLS__ || (window.__OWL_DEVTOOLS__ = { apps, Fiber, RootFiber, toRaw, reactive });
|
|
5962
|
+
}
|
|
5923
5963
|
class App extends TemplateSet {
|
|
5924
5964
|
constructor(Root, config = {}) {
|
|
5925
5965
|
super(config);
|
|
@@ -6332,8 +6372,8 @@
|
|
|
6332
6372
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6333
6373
|
|
|
6334
6374
|
|
|
6335
|
-
__info__.date = '2026-
|
|
6336
|
-
__info__.hash = '
|
|
6375
|
+
__info__.date = '2026-03-30T13:05:32.099Z';
|
|
6376
|
+
__info__.hash = 'efae3e4';
|
|
6337
6377
|
__info__.url = 'https://github.com/odoo/owl';
|
|
6338
6378
|
|
|
6339
6379
|
|