diff --git a/inter.js b/inter.js
index a385b28..367ef96 100644
--- a/inter.js
+++ b/inter.js
@@ -1,6 +1,6 @@
/**
* Interjs
- * Version - 2.2.0
+ * Version - 2.2.1
* MIT LICENSED BY - Denis Power
* Repo - https://github.com/interjs/inter
* 2021 - 2024
@@ -71,6 +71,10 @@
consW(prop.startsWith("on") ? event : styleProp);
}
+ function runInvalidStyleValue(name, value) {
+ ParserWarning(`"${value}" is an invalid value for the "${name}" style.`);
+ }
+
function runCanNotDefineReactivePropWarning() {
consW(`Inter failed to define reactivity
in a plain Javascript object, because it is not configurable.`);
@@ -1719,6 +1723,7 @@
if (isDefined(styleValue)) {
container.style[name] = styleValue;
container.template.styles[name] = styleValue;
+ if (!container.style[name]) runInvalidStyleValue(name, styleValue);
}
} else runInvalidStyleWarning(name);
});
@@ -2672,6 +2677,98 @@
return text;
}
+ function runNestedListDiffing(reactor, target, newChildren, oldChildren) {
+ const {
+ mutationInfo: { method, start, deleteCount, itemsLength },
+ } = reactor;
+
+ function addByPush() {
+ let i = itemsLength;
+
+ for (; i > 0; i--) {
+ const child = newChildren[newChildren.length - i];
+
+ target.appendChild(toDOM(child, true, child.index));
+ oldChildren.push(child);
+ }
+ }
+
+ function AddByUnShiftOrSplice(mutationMethod) {
+ function insertBehind(start, itemsLength) {
+ for (let i = itemsLength - 1; i > -1; i--) {
+ const child = target.children[start];
+ const virtualChild = newChildren[i];
+ const newChild = toDOM(virtualChild, true, virtualChild.index);
+
+ if (child) target.insertBefore(newChild, child);
+ else target.appendChild(newChild);
+
+ addedtems.unshift(virtualChild);
+ }
+ }
+
+ const addedtems = new Array();
+
+ if (mutationMethod == "splice" && deleteCount == 0 && itemsLength > 0) {
+ insertBehind(start, itemsLength);
+ oldChildren.splice(start, deleteCount, ...addedtems);
+ } else if (mutationMethod == "splice" && deleteCount > 0) {
+ for (let i = 0; i < deleteCount; i++) {
+ const child = target.children[start];
+
+ if (child) target.removeChild(child);
+ }
+
+ insertBehind(start, itemsLength);
+
+ oldChildren.splice(start, deleteCount, addedtems);
+ } else if (mutationMethod == "unshift") {
+ insertBehind(0, itemsLength);
+
+ oldChildren.unshift(...addedtems);
+ }
+ }
+
+ function deleteBySplice() {
+ let i = start;
+ for (; newChildren.length < target.children.length; i++) {
+ const elToRemove = target.children[start];
+ if (elToRemove) target.removeChild(elToRemove);
+ }
+
+ oldChildren.splice(start, deleteCount);
+ }
+
+ const lastNodeElement = target.children[target.children.length - 1];
+ const firstNodeElement = target.children[0];
+ if (method == "pop" && lastNodeElement) {
+ target.removeChild(lastNodeElement);
+ oldChildren.pop();
+ } else if (method == "shift" && firstNodeElement) {
+ target.removeChild(firstNodeElement);
+ oldChildren.shift();
+ } else if (method == "push") addByPush();
+ else if (method == "unshift") AddByUnShiftOrSplice(method);
+ else if (method == "splice") {
+ if (
+ typeof start == "number" &&
+ typeof deleteCount == "number" &&
+ itemsLength == 0
+ )
+ deleteBySplice();
+ else if (itemsLength > 0) AddByUnShiftOrSplice(method);
+ else if (deleteCount == void 0) {
+ const data = {
+ source: {
+ values: newChildren,
+ },
+ };
+
+ synchronizeRootChildrenLengthAndSourceLength(target, data);
+ }
+ }
+ }
+
function runContainerDiffing(newContainer, oldContainer, diff) {
const {
attrs: newAttrs = {},
@@ -2688,6 +2785,11 @@
target,
} = oldContainer;
+ const { reactor } = newChildren;
+
+ if (reactor != void 0)
+ runNestedListDiffing(reactor, target, newChildren, oldChildren);
+
const rootEL = target.parentNode;
const newText = getValue(newContainer.text);
const oldText = getValue(oldContainer.text);
@@ -2808,10 +2910,8 @@
if (validStyleName(newStyleName)) {
target.style[newStyleName] = newStyleValue;
- if (target.style[newStyleName] !== newStyleValue)
- ParserWarning(
- `"${newStyleValue}" is an invalid value for the "${newStyleName}" style.`
- );
+ if (!target.style[newStyleName])
+ runInvalidStyleValue(newStyleName, newStyleValue);
} else runInvalidStyleWarning(newStyleName);
}
}
@@ -2909,101 +3009,9 @@
if (newChildren.length !== oldChildren.length) {
const { reactor } = newChildren;
- if (reactor != void 0) {
- const {
- mutationInfo: { method, start, deleteCount, itemsLength },
- } = reactor;
-
- function addByPush() {
- let i = itemsLength;
-
- for (; i > 0; i--) {
- const child = newChildren[newChildren.length - i];
-
- target.appendChild(toDOM(child, true, child.index));
- oldChildren.push(child);
- }
- }
-
- function AddByShiftOrSplice(mutationMethod) {
- function insertBehind(start, itemsLength) {
- for (let i = itemsLength - 1; i > -1; i--) {
- const child = target.children[start];
- const virtualChild = newChildren[i];
- const newChild = toDOM(virtualChild, true, virtualChild.index);
-
- if (child) target.insertBefore(newChild, child);
- else target.appendChild(newChild);
-
- addedtems.unshift(virtualChild);
- }
- }
-
- const addedtems = new Array();
-
- if (
- mutationMethod == "splice" &&
- deleteCount == 0 &&
- itemsLength > 0
- ) {
- insertBehind(start, itemsLength);
- oldChildren.splice(start, deleteCount, ...addedtems);
- } else if (mutationMethod == "splice" && deleteCount > 0) {
- for (let i = 0; i < deleteCount; i++) {
- const child = target.children[start];
-
- if (child) target.removeChild(child);
- }
-
- insertBehind(start, itemsLength);
-
- oldChildren.splice(start, deleteCount, addedtems);
- } else if (mutationMethod == "unshift") {
- insertBehind(0, itemsLength);
-
- oldChildren.unshift(...addedtems);
- }
- }
-
- function deleteBySplice() {
- let i = start;
- for (; newChildren.length < target.children.length; i++) {
- const elToRemove = target.children[start];
- if (elToRemove) target.removeChild(elToRemove);
- }
-
- oldChildren.splice(start, deleteCount);
- }
-
- const lastNodeElement = target.children[target.children.length - 1];
- const firstNodeElement = target.children[0];
- if (method == "pop" && lastNodeElement) {
- target.removeChild(lastNodeElement);
- oldChildren.pop();
- } else if (method == "shift" && firstNodeElement) {
- target.removeChild(firstNodeElement);
- oldChildren.shift();
- } else if (method == "push") addByPush();
- else if (method == "unshift") AddByShiftOrSplice(method);
- else if (method == "splice") {
- if (
- typeof start == "number" &&
- typeof deleteCount == "number" &&
- itemsLength == 0
- )
- deleteBySplice();
- else if (itemsLength > 0) AddByShiftOrSplice(method);
- else if (deleteCount == void 0) {
- const data = {
- source: {
- values: newChildren,
- },
- };
-
- synchronizeRootChildrenLengthAndSourceLength(target, data);
- }
- }
- } else if (target && target.parentNode != null) {
+ if (reactor != void 0)
+ runNestedListDiffing(reactor, target, newChildren, oldChildren);
+ else if (target && target.parentNode != null) {
const newElement = toDOM(newChild, true, index);
realParent.replaceChild(newElement, target);
@@ -3073,6 +3081,24 @@
}
}
+ /**
+ *
+ *
Olá
+ *
Olá
+ *
Olá
+ *
+ *
Olá
+ *
+ *
+ *
+ *
Olá
+ *
Olá
+ *
Olá
+ *
+ *
+ *
+ */
+
function toObj(obj) {
if (obj !== void 0) {
try {
@@ -3316,5 +3342,5 @@
window.template = template;
window.toAttrs = toAttrs;
window.Backend = Backend;
- console.log("The global version 2.2.0 of Inter was loaded successfully.");
+ console.log("The global version 2.2.1 of Inter was loaded successfully.");
})();
diff --git a/inter.m.js b/inter.m.js
index 32ba9c0..35d58b6 100644
--- a/inter.m.js
+++ b/inter.m.js
@@ -1,6 +1,6 @@
/**
* Interjs
- * Version - 2.2.0
+ * Version - 2.2.1
* MIT LICENSED BY - Denis Power
* Repo - https://github.com/interjs/inter
* 2021 - 2024
@@ -8,7 +8,7 @@
* Module version
*/
-export const interVersion = "2.2.0";
+export const interVersion = "2.2.1";
function runInvalidTemplateArgumentError(arg) {
syErr(`The argument of the template function must be a plain Javascript object,
@@ -72,6 +72,10 @@ function runIllegalAttrsPropWarning(prop) {
consW(prop.startsWith("on") ? event : styleProp);
}
+function runInvalidStyleValue(name, value) {
+ ParserWarning(`"${value}" is an invalid value for the "${name}" style.`);
+}
+
function runCanNotDefineReactivePropWarning() {
consW(`Inter failed to define reactivity
in a plain Javascript object, because it is not configurable.`);
@@ -1713,6 +1717,7 @@ function createStyles(styles, container) {
if (isDefined(styleValue)) {
container.style[name] = styleValue;
container.template.styles[name] = styleValue;
+ if (!container.style[name]) runInvalidStyleValue(name, styleValue);
}
} else runInvalidStyleWarning(name);
});
@@ -2649,6 +2654,98 @@ function getValue(text) {
return text;
}
+function runNestedListDiffing(reactor, target, newChildren, oldChildren) {
+ const {
+ mutationInfo: { method, start, deleteCount, itemsLength },
+ } = reactor;
+
+ function addByPush() {
+ let i = itemsLength;
+
+ for (; i > 0; i--) {
+ const child = newChildren[newChildren.length - i];
+
+ target.appendChild(toDOM(child, true, child.index));
+ oldChildren.push(child);
+ }
+ }
+
+ function AddByUnShiftOrSplice(mutationMethod) {
+ function insertBehind(start, itemsLength) {
+ for (let i = itemsLength - 1; i > -1; i--) {
+ const child = target.children[start];
+ const virtualChild = newChildren[i];
+ const newChild = toDOM(virtualChild, true, virtualChild.index);
+
+ if (child) target.insertBefore(newChild, child);
+ else target.appendChild(newChild);
+
+ addedtems.unshift(virtualChild);
+ }
+ }
+
+ const addedtems = new Array();
+
+ if (mutationMethod == "splice" && deleteCount == 0 && itemsLength > 0) {
+ insertBehind(start, itemsLength);
+ oldChildren.splice(start, deleteCount, ...addedtems);
+ } else if (mutationMethod == "splice" && deleteCount > 0) {
+ for (let i = 0; i < deleteCount; i++) {
+ const child = target.children[start];
+
+ if (child) target.removeChild(child);
+ }
+
+ insertBehind(start, itemsLength);
+
+ oldChildren.splice(start, deleteCount, addedtems);
+ } else if (mutationMethod == "unshift") {
+ insertBehind(0, itemsLength);
+
+ oldChildren.unshift(...addedtems);
+ }
+ }
+
+ function deleteBySplice() {
+ let i = start;
+ for (; newChildren.length < target.children.length; i++) {
+ const elToRemove = target.children[start];
+ if (elToRemove) target.removeChild(elToRemove);
+ }
+
+ oldChildren.splice(start, deleteCount);
+ }
+
+ const lastNodeElement = target.children[target.children.length - 1];
+ const firstNodeElement = target.children[0];
+ if (method == "pop" && lastNodeElement) {
+ target.removeChild(lastNodeElement);
+ oldChildren.pop();
+ } else if (method == "shift" && firstNodeElement) {
+ target.removeChild(firstNodeElement);
+ oldChildren.shift();
+ } else if (method == "push") addByPush();
+ else if (method == "unshift") AddByUnShiftOrSplice(method);
+ else if (method == "splice") {
+ if (
+ typeof start == "number" &&
+ typeof deleteCount == "number" &&
+ itemsLength == 0
+ )
+ deleteBySplice();
+ else if (itemsLength > 0) AddByUnShiftOrSplice(method);
+ else if (deleteCount == void 0) {
+ const data = {
+ source: {
+ values: newChildren,
+ },
+ };
+
+ synchronizeRootChildrenLengthAndSourceLength(target, data);
+ }
+ }
+}
+
function runContainerDiffing(newContainer, oldContainer, diff) {
const {
attrs: newAttrs = {},
@@ -2665,6 +2762,11 @@ function runContainerDiffing(newContainer, oldContainer, diff) {
target,
} = oldContainer;
+ const { reactor } = newChildren;
+
+ if (reactor != void 0)
+ runNestedListDiffing(reactor, target, newChildren, oldChildren);
+
const rootEL = target.parentNode;
const newText = getValue(newContainer.text);
const oldText = getValue(oldContainer.text);
@@ -2785,10 +2887,8 @@ function runStyleDiffing(target, oldStyles, newStyles) {
if (validStyleName(newStyleName)) {
target.style[newStyleName] = newStyleValue;
- if (target.style[newStyleName] !== newStyleValue)
- ParserWarning(
- `"${newStyleValue}" is an invalid value for the "${newStyleName}" style.`
- );
+ if (!target.style[newStyleName])
+ runInvalidStyleValue(newStyleName, newStyleValue);
} else runInvalidStyleWarning(newStyleName);
}
}
@@ -2886,101 +2986,9 @@ function runChildrenDiffing(__new, __old, realParent) {
if (newChildren.length !== oldChildren.length) {
const { reactor } = newChildren;
- if (reactor != void 0) {
- const {
- mutationInfo: { method, start, deleteCount, itemsLength },
- } = reactor;
-
- function addByPush() {
- let i = itemsLength;
-
- for (; i > 0; i--) {
- const child = newChildren[newChildren.length - i];
-
- target.appendChild(toDOM(child, true, child.index));
- oldChildren.push(child);
- }
- }
-
- function AddByShiftOrSplice(mutationMethod) {
- function insertBehind(start, itemsLength) {
- for (let i = itemsLength - 1; i > -1; i--) {
- const child = target.children[start];
- const virtualChild = newChildren[i];
- const newChild = toDOM(virtualChild, true, virtualChild.index);
-
- if (child) target.insertBefore(newChild, child);
- else target.appendChild(newChild);
-
- addedtems.unshift(virtualChild);
- }
- }
-
- const addedtems = new Array();
-
- if (
- mutationMethod == "splice" &&
- deleteCount == 0 &&
- itemsLength > 0
- ) {
- insertBehind(start, itemsLength);
- oldChildren.splice(start, deleteCount, ...addedtems);
- } else if (mutationMethod == "splice" && deleteCount > 0) {
- for (let i = 0; i < deleteCount; i++) {
- const child = target.children[start];
-
- if (child) target.removeChild(child);
- }
-
- insertBehind(start, itemsLength);
-
- oldChildren.splice(start, deleteCount, addedtems);
- } else if (mutationMethod == "unshift") {
- insertBehind(0, itemsLength);
-
- oldChildren.unshift(...addedtems);
- }
- }
-
- function deleteBySplice() {
- let i = start;
- for (; newChildren.length < target.children.length; i++) {
- const elToRemove = target.children[start];
- if (elToRemove) target.removeChild(elToRemove);
- }
-
- oldChildren.splice(start, deleteCount);
- }
-
- const lastNodeElement = target.children[target.children.length - 1];
- const firstNodeElement = target.children[0];
- if (method == "pop" && lastNodeElement) {
- target.removeChild(lastNodeElement);
- oldChildren.pop();
- } else if (method == "shift" && firstNodeElement) {
- target.removeChild(firstNodeElement);
- oldChildren.shift();
- } else if (method == "push") addByPush();
- else if (method == "unshift") AddByShiftOrSplice(method);
- else if (method == "splice") {
- if (
- typeof start == "number" &&
- typeof deleteCount == "number" &&
- itemsLength == 0
- )
- deleteBySplice();
- else if (itemsLength > 0) AddByShiftOrSplice(method);
- else if (deleteCount == void 0) {
- const data = {
- source: {
- values: newChildren,
- },
- };
-
- synchronizeRootChildrenLengthAndSourceLength(target, data);
- }
- }
- } else if (target && target.parentNode != null) {
+ if (reactor != void 0)
+ runNestedListDiffing(reactor, target, newChildren, oldChildren);
+ else if (target && target.parentNode != null) {
const newElement = toDOM(newChild, true, index);
realParent.replaceChild(newElement, target);
@@ -3047,6 +3055,24 @@ function synchronizeRootChildrenLengthAndSourceLength(root, iterable) {
}
}
+/**
+ *
+ *
Olá
+ *
Olá
+ *
Olá
+ *
+ *
Olá
+ *
+ *
+ *
+ *
Olá
+ *
Olá
+ *
Olá
+ *
+ *
+ *
+ */
+
function toObj(obj) {
if (obj !== void 0) {
try {
diff --git a/inter.min.js b/inter.min.js
index e54b2d7..0954219 100644
--- a/inter.min.js
+++ b/inter.min.js
@@ -1,6 +1,6 @@
/**
* Interjs
- * Version - 2.2.0
+ * Version - 2.2.1
* MIT LICENSED BY - Denis Power
* Repo - https://github.com/interjs/inter
* 2021 - 2024
@@ -8,4 +8,4 @@
*
*/
-!function(){function e(e){W(`The "${e}" event was not created because\n its handler is not a function, in the tempate function.`)}function t(e){W(`"${e}" doesn't seem to be a valid dom event.`)}function n(e){W(`"${e}" doesn't seem to be a valid style name.`)}function o(e){M(`"${z(e)}" is an invalid tag name,\n in the template function.`)}function r(){M('The "events", "attrs" and "styles" options in the template function\n must be plain Javascript objects, and you didn\'t define\n one or more of those options as plain Javascript object.')}function i(e){const t=`You shoud not use "${e}" as an attribute name, it seems to be a dom event,\n use it as property of the "events" object, like:\n\n {\n tag: "button", text: "Some text", events: { ${e}: () => { //Some code here } }\n }\n `;q(e.startsWith("on")?t:'You should not use the style attribute(in attrs object) to create styles for the element,\n use the "styles" object instead, like:\n\n {\n tag: "p", text: "Some text", styles: { color: "green" }\n }\n')}function s(e){q(`"${e}" is a reserved property, do not create a property with this name.`)}function a(e){M(`The value of "setProps" must be a plain Javascript object, and you\n defined "${z(e)}" as its value`)}function c(){H("Inter failed to define the reactivity,\n because the Array of the each option is not configurable.")}function f(e){M(`"${z(e)}" is not a valid value for the "each" option in renderList.\n The values that are accepted in "each" option, are:\n Array.\n Plain js object.\n Number.\n Map.\n Set.`)}function l(){M('The template function is not being returned inside the "do" method in\n renderList(reactive listing), just return the template function.')}function u(){M('The arguments of "okay", "error" and "response" methods must be\n functions.')}function d(e){q(`"${e}" is a reserved reference name, use other name.`)}function h(e){q(`"${e}" was not defined as a conditional property.`)}function p(e){H(`The value of a conditional property must be boolean(true/false),\n and the value of "${e}" property is not boolean.`)}function m(e){W(`The conditional rendering parser found a/an "${A(e)}"\n element which has more than one conditional atribute, it's forbidden.`)}function b(e,t,n){W(`\n \n The conditional rendering parser found\n an element with the "_ifNot" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${e.nodeName.toLowerCase()},\n _ifNot: ${t},\n data: { ${Object.keys(n)} }\n }\n \n `)}function y(e){W(`a/an "${A(e)}" element has the "_elseIf" attribute,\n but it does not come after an element with the "_if" or a valid "_elseIf" attribute.`)}function g(e,t,n){W(`\n The conditional rendering parser found\n an element which has the "_if" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${t.nodeName.toLowerCase()},\n _if: ${e},\n data: { ${Object.keys(n)} }\n }\n \n `)}function v(e){q(` \n The "${e}" property was not defined in the manager object.\n `)}function w(e){return O(e)&&e.element&&e[Symbol.for("template")]}function j(e){return Object.isFrozen(e)||Object.isSealed(e)||!Object.isExtensible(e)}function O(e){return"[object Object]"==Object.prototype.toString.apply(e,void 0)}function A(e){return e.nodeName.toLowerCase()}function x(e){return e instanceof Set}function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function T(e){return e instanceof Map}function S(e){return null!=e}function I(e){return Object.is(e,!0)}function $(e){return Object.is(e,!1)}function k(e){return"function"==typeof e}function P(e){return 0==Object.keys(e).length}function R(e){return e instanceof HTMLElement}function N(e){return e in HTMLElement.prototype}function E(e){return e in document.createElement("p").style}function _(e){return document.createTextNode(e)}function L(e){return"string"==typeof e}function J(e,t,n){return O(e)&&O(t)&&O(n)}function B(e){"string"!=typeof e&&M("The value of the id attribute must be a string.");const t=document.getElementById(e);if(null!=t)return t;H(`There's not an element on the document with id "${e}".`)}function z(e){return void 0===e||"symbol"==typeof e||"bigint"==typeof e||"boolean"==typeof e||"function"==typeof e||"number"==typeof e||"string"==typeof e?typeof e:function(e){const t=S(e)&&Object.prototype.toString.call(e).startsWith("[object");return t?Object.prototype.toString.call(e).replace("[object","").replace("]","").replace(/\s/g,"").toLowerCase():"null"}(e)}function M(e){throw new Error(`Inter syntaxError : ${e}`)}function H(e){throw new Error(`Inter error: ${e}`)}function q(e){console.warn(`Inter warning: ${e}`)}function W(e){console.error(`Inter parser error: ${e}`)}function Y(e){return Array.isArray(e)}function D(e){return 1==e||0==e}function F(e){return e instanceof Array||O(e)||e instanceof Map||e instanceof Set||"number"==typeof e}function U(e){this.source=function(e){const t={values:new Array,type:void 0};if(Y(e))t.values=e,t.type="array";else if(O(e))t.values=Object.entries(e),t.type="object";else if(e instanceof Map)e.forEach(((e,n)=>{t.values.push([n,e])})),t.type="object";else if(e instanceof Set)t.values=Array.from(e),t.type="set";else if("number"==typeof e){for(let n=0;n{const n=e.replace("{","").replace("}","").trim();t.add(n)})),Array.from(t)}function Q(e,t){return new RegExp(`{\\s*${t}\\s*}`).test(e)}U.prototype.each=function(e){let t=-1;for(const n of this.source.values)t++,e(n,t,this.source.type)};const V=new Set(["currentTime","value"]);function Z(e,t,n){const o=e.getElementsByTagName("*");function r(e){function o(e){for(const o in t)if(e.textContent.trim().length>0&&Q(e.textContent,o)){const t={target:e,text:e.textContent};n.add(t);break}}if(1==e.nodeType)for(const t of e.childNodes)t.hasChildNodes()&&1==t.nodeType?r(t):o(t);else 3==e.nodeType&&o(e)}function i(e){const o={target:e,attrs:Object.create(null),refs:t};for(const r of e.attributes)for(const i in t)if(Q(r.value,i)){V.has(r.name)?(n.specialAttrs.add({target:e,attr:{[r.name]:r.value}}),e.removeAttribute(r.name)):o.attrs[r.name]=r.value;break}var r;r=o.attrs,Object.keys(r).length>0&&n.add(o,!0)}const s=function(e){const t=new Set;if(e.hasChildNodes())for(const n of e.childNodes)3==n.nodeType&&n.textContent.trim().length>0&&G(n.textContent)&&t.add(n);return Array.from(t)}(e);if(s.length>0)for(const e of s)r(e);for(const e of o)r(e),i(e);n.updateRefs()}function ee(e){return null==e}function te(e){return e.replace("{...","").replace("}","")}function ne(e,t){return C(e,t)}function oe(e){return/{(:?\.){3}(:?\S+)}/.test(e)}function re(e){return/{(:?[\s\S]+)}/.test(e)}function ie(e,t){const n=new Set(["value","currentTime"]),o=e=>!n.has(e),r=e=>e.startsWith("on")&&N(e),i=new Map;for(const[n,s]of Object.entries(t))!o(n)||r(n)||ee(s)?o(n)||ee(s)?r(n)&&!ee(s)&&ce(e,n,s,t):ae(e,n,s):se(e,n,s),fe(t,n,s,e,i);var s;s=t,Object.defineProperty(s,"setAttrs",{set(e){O(e)||function(e){M(`\n "${z(e)}" is an invalid value for the "setAttrs" property.\n The "setAttrs" property only accepts a plain Javascript object as its\n value.\n `)}(e);for(const[t,n]of Object.entries(e))C(this,t)?this[t]=n:v(t)}}),function(e,t){Object.defineProperty(e,"observe",{value:e=>0===t.size&&(k(e)||M(`The argument of the observe method must be a function,\n and you defined ${z(e)} as its argument.`),t.set("observeCallBack",e),!0)})}(t,i)}function se(e,t,n){ee(n)||n===(()=>e.getAttribute(t))?ee(n)&&e.hasAttribute(t)&&e.removeAttribute(t):e.setAttribute(t,n)}function ae(e,t,n){S(n)?e[t]=n:ee(n)&&(e[t]="")}function ce(e,t,n,o){S(n)&&!k(n)?function(e,t){M(`\n "${z(t)}" is an invalid\n handler for the "${e}" event, you must\n define only a function as the handler of a dom event.\n `)}(t,n):ee(n)?e[t]=void 0:e[t]=e=>n.call(o,e)}function fe(e,t,n,o,r){const i=new Set(["value","currentTime","checked"]),s=()=>!i.has(t),a=()=>t.startsWith("on")&&N(t),c=()=>!s();let f=n;Object.defineProperty(e,t,{set(e){a()?ce(o,t,e,this):s()?se(o,t,e):c()&&ae(o,t,e),f=e;const n=r.get("observeCallBack");r.has("observeCallBack")&&n(t,e)},get:()=>c()?o[t]:a()?(function(e){q(`\n you are trying to get the value of "${e}",\n it's an event, and you can not get the value of an event.\n `)}(t),!1):f})}function le(e){const t=new Array;return e.childNodes.forEach((e=>{(1==e.nodeType||3==e.nodeType&&0==!e.textContent.trim().length)&&t.push(e)})),t}function ue(e){q(`"${e}" is a reserved property, you can not use it as a conditional property.`)}const de={store:new Set,set(e){for(const t of e)S(t)&&this.store.add(t)},getSize(){const e=this.store.size;return this.store.clear(),e}};function he(e){const t=e.getAttribute("_if"),n=e.getAttribute("_elseIf"),o=e.getAttribute("_ifNot"),r=!!e.hasAttribute("_else")||void 0;return de.set([t,n,o,r]),de.getSize()>1}function pe(e){const t=e.hasAttribute("_if"),n=e.hasAttribute("_elseIf"),o=e.hasAttribute("_ifNot"),r=e.hasAttribute("_else");return!(t||n||o||r)}function me(n,o){Object.entries(n).forEach((n=>{const[r,i]=n;N(r)?k(i)?o[r]=i:e(r):t(r)}))}function be(e,t){Object.entries(e).forEach((e=>{let[n,o]=e,r=!1;const s=new Set(["value","currentTime","checked"]);(n.startsWith("on")&&N(n)||"style"==n)&&(i(n),r=!0);const a=e=>{S(e)&&!$(e)&&(s.has(n)?t[n]=e:t.setAttribute(n,e)),t.template.attrs[n]=e};r||(k(o)?(o=o(),a(o)):a(o))}))}function ye(e,t){Object.entries(e).forEach((e=>{const[o,r]=e;if(E(o)){const e=k(r)?r():r;S(e)&&(t.style[o]=e,t.template.styles[o]=e)}else n(o)}))}function ge(e,t,n){if(S(e)&&0==t.length){const t=k(e)?_(e()):_(e);S(t)&&n.appendChild(t)}else S(e)&&t.length>0?(W("The template parser found an element \n with both the text property and the children property,\n and in this case Inter ignores the text property."),we(n,t)):t.length>0&&we(n,t)}function ve(e,t,n){let{tag:i,text:s,attrs:a={},events:c={},styles:f={},children:l=[]}=e;i=k(i)?i():i,s=k(s)?s():s;C(e,"renderIf")&&!t&&W("You can not conditionally render the main\n container in the template function."),L(i)||o(i),J(a,f,c)||r();const u=document.createElement(i);return u.template=Object.assign(e,{target:u,tag:i,text:s}),t&&(u.index=n),be(a,u),me(c,u),ye(f,u),ge(s,l,u),u}function we(e,t){let n=-1;for(const i of t){let{tag:t,text:s,attrs:a={},events:c={},styles:f={},children:l=[],renderIf:u}=i;if(n++,i.index=n,t=k(t)?t():t,s=k(s)?s():s,X(u)&&C(i,"renderIf"))continue;L(t)||o(t),J(a,f,c)||r();const d=document.createElement(t);d.index=n,d.template=Object.assign(i,{target:d,tag:t,text:s}),be(a,d),me(c,d),ye(f,d),ge(s,l,d),e.appendChild(d)}}function je(e,t){O(e)?function(e,t){const n=new Set(["setProps","defineProps","deleteProps"]);function o(t){for(const{name:n,setHandler:o}of t)Object.defineProperty(e,n,{set:o})}function r(n){let o=e[n];e[n]=void 0,Object.defineProperty(e,n,{set(e){o=e,t(),je(e,t)},get:()=>o,configurable:!0})}function i(o){Y(o)||function(e){M(`The value of "deleteProps" must be an Array object, and you\n defined "${z(e)}" as its value`)}(o);for(const t of o)"string"==typeof t&&C(e,t)&&(n.has(t)||delete e[t]);t()}function c(o){O(o)||function(e){M(`The value of "defineProps" must be a plain Javascript object, and you\n defined "${z(e)}" as its value`)}(o);for(const[i,s]of Object.entries(o))i in this||n.has(i)||(e[i]=s,r(i)),t()}function f(o){O(o)||a(o);for(const[r,i]of Object.entries(o))n.has(r)||(e[r]=i),je(i,t)}if(Ae(e))return!0;if(j(e))return q("Inter failed to define reactivity\n in a plain Javascript object, because it is not configurable."),!1;for(const o of Object.keys(e))n.has(o)&&s(o),r(o),je(e[o],t);o([{name:"defineProps",setHandler:c},{name:"setProps",setHandler:f},{name:"deleteProps",setHandler:i}]),Oe(e)}(e,t):Y(e)?function(e,t){if(Ae(e))return!1;const n=["push","unshift","pop","shift","splice","sort","reverse"];for(const o of n)Object.defineProperty(e,o,{value(e,n,...r){"pop"==o?this.mutationInfo={method:"pop",renderingSystem:t}:"shift"==o?this.mutationInfo={method:"shift",renderingSystem:t}:"push"==o?this.mutationInfo={method:"push",itemsLength:arguments.length,renderingSystem:t}:"unshift"==o?this.mutationInfo={method:"unshift",itemsLength:arguments.length,renderingSystem:t}:"splice"==o&&(this.mutationInfo={method:"splice",start:e,deleteCount:n,itemsLength:S(r)?r.length:0,renderingSystem:t});const i=Array.prototype[o].apply(this,arguments);if(t(),this.mutationInfo=void 0,"push"===o||"unshift"===o)for(const e of arguments)je(e,t);else if("splice"===o&&S(r))for(const e of r)je(e,t);return i}});(function(e,t){for(const n of e)je(n,t)})(e,t),Oe(e),function(e){Object.defineProperty(e,"map",{value(e){const t=new Array;t.reactor=this;let n=-1;for(const o of this){n++;const r=e(o,n,this);t.push(r)}return t}})}(e)}(e,t):T(e)?$e(e,t):x(e)&&ke(e,t)}function Oe(e){if(Ae(e))return!1;const t=Symbol.for("reactive");Object.defineProperty(e,t,{get:()=>!0})}function Ae(e){return C(e,Symbol.for("reactive"))}function xe(e){O(e)?function(e,t,n){const o=Object.keys(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):x(e)?function(e,t,n){const o=Array.from(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):function(e,t,n){let o=-1;e.forEach((()=>{o++;arguments[1]==t&&Ce(n,o)}))}(...arguments)}function Ce(e,t){const n=e.children[t];R(n)&&e.removeChild(n)}function Te(e,t){const n=Symbol.for("observe");"function"==typeof e[n]&&e[n](S(t)?t:e)}function Se(e,t){Object.defineProperty(e,"setProps",{set(n){O(n)||a();for(const[o,r]of Object.entries(n))O(e)?this[o]=r:T(e)&&e.set(o,r),je(r,t);O(e)&&t()}})}function Ie(e,t,n){j(e)&&c(),Se(e,t);const o=new Set(["observe"]),r=new Set(["setEach","setProps"]);return Oe(e),new Proxy(e,{set(n,i,s,a){return!o.has(i)&&(Reflect.set(...arguments),function(e){return!r.has(e)}(i)&&(t(),Te(e,a),"number"!=typeof s&&F(s)&&je(s,t)),!0)},get(){return Reflect.get(...arguments)},deleteProperty(o,r,i){if(r in o)return xe(o,r,n),Reflect.deleteProperty(...arguments),t(),Te(e,i),!0;q(`You are trying to delete the "${r}" property in the list\n reactor, but that property does not exist in the list reactor.`)}})}function $e(e,t,n,o){if(Ae(e))return!1;const r=["set","delete","clear"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&xe(this,arguments[0],o);const e=Map.prototype[i].apply(this,arguments);if(n&&Te(this),t(),"set"==i){je(arguments[1],t)}return e}});!function(e,t){e.forEach((e=>{je(e,t)}))}(e,t),Oe(e),n&&Se(e,t)}function ke(e,t,n,o){if(Ae(e))return!1;const r=["add","clear","delete"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&xe(this,arguments[0],o);const e=Set.prototype[i].apply(this,arguments);return t(),n&&Te(this),"add"===i&&je(arguments[0],t),e}});!function(e,t){e.forEach((e=>{je(e,t)}))}(e,t),Oe(e)}function Pe(e){return"function"==typeof e&&(e=e()),e}function Re(e,t){Object.assign(e,t)}function Ne(e,t){return e.length>t.length?e:t}function Ee(e,t,n){function o(t){e.hasAttribute(t)?e.removeAttribute(t):c.has(t)&&("checked"===t?e.checked=!1:e[t]="")}const r=Object.keys(t),s=Object.keys(n),a=Ne(r,s),c=new Set(["value","currentTime","checked"]);for(let f=0;a.length>f;f++){const a=r[f],l=s[f],u=Pe(t[a]),d=Pe(n[l]);a in n?!S(d)||$(d)?o(l):S(d)&&!$(d)&&(l.startsWith("on")&&N(l)||"style"==l?i(l):l===a&&d===u||(c.has(l)?e[l]=d:e.setAttribute(l,d))):o(a),t[a]=d}}function _e(e,t,o){const r=Object.keys(t),i=Object.keys(o),s=Ne(r,i);for(let a=0;s.length>a;a++){const s=r[a],c=i[a],f=Pe(t[s]),l=Pe(o[c]);if(s in o&&S(l))S(l)&&l!==f&&(E(c)?(e.style[c]=l,e.style[c]!==l&&W(`"${l}" is an invalid value for the "${c}" style.`)):n(c));else{const t=e.style[s],n=e.getAttribute("style");S(t)&&0!==t.trim().length&&(e.style[s]=null),n&&0==n.trim().length&&e.removeAttribute("style")}t[s]=l}}function Le(n,o,r){const i=Object.keys(o),s=Object.keys(r),a=Ne(i,s);for(let o=0;a.length>o;o++){const a=i[o],c=s[o];a in r&&S(r[a])||(n[a]=void 0),k(r[c])||!N(c)?S(r[c])&&(N(c)?n[c]=r[c]:t(c)):(n[a]=void 0,e(c))}}function Je(e,t,n){for(let o=0;ot){e.insertBefore(n,r);break}}}function Be(e,t,n){const o=Array.from(e),r=Array.from(t);for(let f=0;fA?Je(n,A,e):n.appendChild(e)}if(n&&(x=n.children[n.children.length-1]),h.length!==g.length){const{reactor:k}=h;if(null!=k){const{mutationInfo:{method:P,start:R,deleteCount:N,itemsLength:E}}=k;function s(){let e=E;for(;e>0;e--){const t=h[h.length-e];O.appendChild(ve(t,!0,t.index)),g.push(t)}}function a(e){function t(e,t){for(let o=t-1;o>-1;o--){const t=O.children[e],r=h[o],i=ve(r,!0,r.index);t?O.insertBefore(i,t):O.appendChild(i),n.unshift(r)}}const n=new Array;if("splice"==e&&0==N&&E>0)t(R,E),g.splice(R,N,...n);else if("splice"==e&&N>0){for(let e=0;e0)a(P);else if(null==N){ze(O,{source:{values:h}})}}else if(O&&null!=O.parentNode){const J=ve(l,!0,A);n.replaceChild(J,O),Object.assign(u,l),u.target=J;continue}}if(I===$)X(y)&&C(l,"renderIf")?O&&null!=O.parentNode&&n.removeChild(O):X(y)||(O&&null==O.parentNode?i():O||i()),h.length==g.length&&0!==h.length&&(d=!0,Be(h,g,O)),S!==T&&O&&!d&&(O.textContent=T,u.text=T),u.tag=I,O&&(Ee(O,w,m),_e(O,j,b),Le(O,v,p));else{const B=ve(l,!0,A);Object.assign(u,l),O&&null!=O.parentNode&&(n.replaceChild(B,O),u.target=B)}}}function ze(e,t){if(e.children.length>t.source.values.length){let n=e.children.length-t.source.values.length;for(;n--;){const t=e.children.length-1,n=e.children[t];e.removeChild(n)}}}function Me(e,t,n,o,r){e.open(t,n,!0,o,r)}function He(e,t,n){Object.entries(t).forEach((([t,o])=>{n.has(t)?"onprogress"!==t?e[t]=()=>{o()}:e.onprogress=t=>{const n={abort:()=>e.abort(),progress:100*t.loaded/t.total};o(n)}:function(e){q(`There's not any event named "${e}" in Ajax request.`)}(t)}))}function qe(e,t){const n={};return e.replace(/(:?[\S]+):/g,(e=>{var o,r;e=e.replace(":",""),t.getResponseHeader(e)&&((o=n)[r=e]=void 0,Object.defineProperty(o,r,{get:()=>t.getResponseHeader(r)}))})),Object.freeze(n)}function We(){void 0===new.target&&H("Backend is a constructor, call it with the new keyword.")}We.prototype={get[Symbol.toStringTag](){return"Ajax"},request(e){O(e)||M(`The argument of [Backend instance].request method\n must be a plain javascript object, and you defined "${z(e)}"\n as its argument.`);const{type:t,path:n,events:o={},timeout:r,withCredentials:i,body:s=null,headers:a={},security:c}=e,f=new Set(["connect","trace"]);S(t)&&"string"==typeof t||M('You must define the type(method) of request, in Ajax with the "type" option and\n it must be a string.'),S(n)&&"string"==typeof n||M('You must define the path where the request will be sent, with the "path" option and \n it must be a string.'),f.has(n.toLowerCase())&&function(e){H(`"${e}" is an unsupported request type in Ajax.`)}(t);const l=new Map;let d=!1;function h(){const e=new XMLHttpRequest,f=t.toUpperCase(),u=new Set(["onprogress","ontimeout","onabort"]),h={get status(){return e.status},get statusText(){return e.statusText},get headers(){return qe(e.getAllResponseHeaders(),e)},get data(){return function(e){if(void 0!==e)try{return JSON.parse(e)}catch(t){return e}}(e.responseText)},get[Symbol.toStringTag](){return"AjaxResponse"},isObj:()=>function(e){try{return O(JSON.parse(e))}catch(e){return!1}}(e.responseText)};O(c)&&Object.keys(c).length>=2&&(c.username&&c.password?(Me(e,f,n,c.username,c.password),d=!0):q('Invalid "security" object, security object must have the username and passoword \n properties.')),d||(Me(e,f,n),d=!0),O(a)||function(e){M(`the "headers" property must be an object, and\n you defined it as : ${z(e)}.`)}(a),O(o)||function(e){M(`the "events" property must be an object, and\n you defined it as : ${z(e)}.`)}(o),P(a)||function(e,t){Object.entries(e).forEach((([e,n])=>{t.setRequestHeader(e,n)}))}(a,e),P(o)||He(e,o,u),e.onreadystatechange=function(){4==this.readyState&&(this.status>=200&&this.status<300?l.has("okay")&&l.get("okay")(h):l.has("error")&&l.get("error")(h))},D(i)&&(e.withCredentials=i),"number"!=typeof r&&(e.timeout=r),e.send(function(e){return S(e)?e instanceof FormData||"string"==typeof e?e:JSON.stringify(e):null}(s))}const p={okay(e){k(e)||u(),l.set("okay",e),h()},error(e){k(e)||u(),l.set("error",e),h()},response(e,t){const n=arguments.length;n<2&&function(e){M(`The response method must have two arguments and you only\n defined ${e} argument.`)}(n),k(e)||k(t)||u(),l.set("okay",e),l.set("error",t),h()}};return p}},Object.freeze(We.prototype),window.Ref=function(e){if(null!=new.target)M("Do not call the Ref function with the new keyword.");else{if(O(e)){const{in:n,data:o}=e;"string"!=typeof n&&M("The value of the 'in' property on the Ref function must be a string."),O(o)||M("The value of the 'data' property on the Ref function must be a plain Javascript object. ");const r=new Set(["setRefs","observe"]);for(const c in o)r.has(c)?(d(c),delete o[c]):k(o[c])&&(o[c]=o[c].call(o));const i=Object.assign({},o),s={attrs:new Set,texts:new Set,specialAttrs:new Set,observed:new Map,refs:i,hadIteratedOverSpecialAttrs:!1,add(e,t){t?this.attrs.add(e):this.texts.add(e)},updateSpecialAttrs(){for(const e of this.specialAttrs){const{target:t}=e;let[n,o]=Object.entries(e.attr)[0];const i=K(o);for(const e of i)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!G(o))break}t[n]=o}},updateAttrRef(){for(const e of this.attrs){const{target:t,attrs:n}=e;for(let[e,o]of Object.entries(n)){const n=K(o);for(const e of n)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!G(o))break}t.getAttribute(e)!==o&&t.setAttribute(e,o)}}},updateTextRef(){if(this.texts.size>0)for(const e of this.texts){let{target:t,text:n}=e;const o=K(n);for(const e of o)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(n=n.replace(t,this.refs[e]),!G(n))break}t.textContent!==n&&(t.textContent=n)}},updateRefs(){this.texts.size>0&&this.updateTextRef(),this.attrs.size>0&&this.updateAttrRef(),this.specialAttrs.size>0&&this.updateSpecialAttrs()}};function t(e,t,n){if(1==s.observed.size&&!r.has(e)){s.observed.get("callBack")(e,t,n)}}Z(B(n),i,s);const a=new Proxy(i,{set(e,o,r,a){if(o in e&&e[o]==r)return!1;const c=e[o];if(k(r)&&(r=r.call(a)),Reflect.set(...arguments),t(o,r,c),o in a)return s.updateRefs(),!0;Z(B(n),i,s)},get:(...e)=>Reflect.get(...e)});return Object.defineProperties(a,{setRefs:{set(e){if(O(e)){let o=!1;for(const[n,s]of Object.entries(e)){if(r.has(n)){d(n);continue}if(C(this,n)||(o=!0),C(this,n)&&this[n]==s)continue;const e=i[n];k(s)?i[n]=s.call(this):i[n]=s,t(n,s,e)}o&&Z(B(n),i,s)}else M(`"${z(e)}" is not a valid value for the "setRefs" property.\n The value of the setRefs property must be a plain Javascript object.`)},enumerable:!1},observe:{value:e=>(k(e)||M("The argument of [Reference reactor].observe() must be a function."),0===s.observed.size&&(s.observed.set("callBack",e),!0)),enumerable:!1,writable:!1}}),a}M("The argument of the Ref function must be a plain Javascript object.")}},window.renderIf=function(e){if(O(e)||M("The argument of renderIf must be a plain Javascript object."),void 0===new.target){const{in:t,data:n}=e,o=new Set(["setConds","observe"]),r=B(t),i=new Array;"string"!=typeof t&&M('The value of the "in" property in the renderIf function\n must be a string.'),O(n)||M('The value of the "data" property in the renderIf function \n must be a plain Javascript object.');for(let[e,t]of Object.entries(n))o.has(e)?ue(e):(t=k(t)?t.call(n):t,D(t)||p(e),n[e]=t);!function e(t){let o=-1;const r={target:void 0,if:void 0,else:void 0,ifNot:void 0,elseIfs:new Set,index:void 0,lastRendered:{target:void 0,prop:void 0},conditionalProps:new Set,rootElement:t,set setOptions(e){for(const[t,n]of Object.entries(e))this[t]=n,"if"==t&&S(n)&&this.conditionalProps.add(n)},canCache(){return null!=this.if},addElseIf(e){const{elseIf:t}=e;this.conditionalProps.has(t)?function(e){H(`\n Two elements with the "_elseIf" attribute can not have the same conditional property.\n Property: "${e}"\n `)}(t):(this.elseIfs.add(e),this.conditionalProps.add(t))},deleteData(){this.setOptions={target:void 0,if:void 0,else:void 0,ifNot:void 0,index:void 0},this.elseIfs.clear(),this.conditionalProps.clear()},getOptions(){const e=Object.assign({},this);return e.elseIfs=Array.from(this.elseIfs),e.conditionalProps=Array.from(this.conditionalProps),this.deleteData(),e}},s=()=>{const e=r.elseIfs.size,t=r.getOptions();e?i.unshift(t):i.push(t)},a=le(t),c=a.length;for(const t of a){o++,t.index=o;const i=c-1==o;if(3!=t.nodeType)if(pe(t)||t.parentNode.removeChild(t),t.children.length>0&&e(t),he(t))m(t);else if(pe(t)&&r.canCache())s();else{if(t.hasAttribute("_ifNot")){const e=t.getAttribute("_ifNot");if(C(n,e)){t.removeAttribute("_ifNot"),r.canCache()&&s(),r.setOptions={ifNot:e,target:t,index:o},s();continue}b(t,e,n)}else if(t.hasAttribute("_else"))r.if?(r.else=t,t.removeAttribute("_else"),s()):W('The parser found an element with the "_else" attribute,\n but there is not an element with the "_if" or a valid "_elseIf" attribute before it.');else if(t.hasAttribute("_elseIf")){const e=t.getAttribute("_elseIf");t.removeAttribute("_elseIf"),r.if?C(n,e)?r.addElseIf({target:t,index:o,elseIf:e}):W(`The conditional rendering parser found an element which has the "_elseIf"\n conditional property whose the value is: "${e}",\n but you did not define any conditional property with that name.\n \n `):y(t)}else if(t.hasAttribute("_if")){r.canCache()&&s();const e=t.getAttribute("_if");if(t.removeAttribute("_if"),!C(n,e)){g(e,t,n);continue}r.setOptions={if:e,target:t,index:o}}i&&r.canCache()&&s()}else r.canCache()&&s()}}(r);const s=function(e,t){function n(e,t){if(!($(f[t])||e.length<2))for(const n of e){I(f[n])&&n!==t&&(f[n]=!1)}}function o(e,t){function n(){return null!=t.lastRendered.target.parentNode}let o=!1;for(const{target:r,elseIf:s}of e){const e=t.lastRendered;if(e.target&&I(f[e.prop])){o=!0;break}e.target&&$(f[e.prop])&&n()&&(t.rootElement.removeChild(e.target),t.lastRendered={prop:void 0,target:void 0}),I(f[s])&&(i(t.rootElement,r),t.lastRendered={prop:s,target:r},o=!0,e.target&&!S(e.prop)&&n()&&t.rootElement.removeChild(e.target))}return o}function r(t,r){for(const s of e){const{target:e,if:a,elseIfs:c,else:f,ifNot:l,rootElement:u}=s,d=s.conditionalProps,h=new Set(d).has(r);if(S(r)&&h&&n(d,r),l)$(t[l])&&null==e.parentNode?u.textContent.trim().length>0?i(u,e):u.appendChild(e):e.parentNode==u&&I(t[l])&&u.removeChild(e);else if($(t[a]))if(e.parentNode!=u||f){if(f||c.length>0){const t=o(c,s);null!=e.parentNode&&u.removeChild(e),t&&f&&null!=f.parentNode?f.parentNode.removeChild(f):!t&&f&&null==f.parentNode&&(i(u,f),s.lastRendered={target:f,prop:void 0})}}else u.removeChild(e),o(c,s);else if(I(t[a])&&null==e.parentNode){f&&null!=f.parentNode?(u.removeChild(f),i(u,e)):i(u,e);const{target:t}=s.lastRendered;R(t)&&null!=t.parentNode&&!t.isSameNode(e)&&t.parentNode.removeChild(t),s.lastRendered={target:e,prop:a}}}}function i(e,t){const n=le(e),o=n[n.length-1];if(t&&null==t.parentNode)if(o&&o.index>t.index){for(const o of n)if(o.index>t.index){e.insertBefore(t,o);break}}else e.appendChild(t)}function s(e,t){if(1==c.size){c.get("callBack")(e,t)}}const a=new Set(["setConds","observe"]),c=new Map,f=Object.assign({},t);r(f);const l=new Proxy(f,{set:(e,n,o)=>(!(n in e)||e[n]!=o)&&(n in t||a.has(n)?D(o)||a.has(n)?(Reflect.set(e,n,o),a.has(n)||(r(f,n),s(n,o)),!0):(p(n),!1):(h(n),!1)),deleteProperty:()=>!1});return Object.defineProperties(l,{observe:{value:e=>(k(e)||M("The argument of [renderIf reactor].observe()\n must be a function."),0==c.size&&(c.set("callBack",e),!0)),enumerable:!1,writable:!1},setConds:{set(e){O(e)||M(`The value of [renderIf reactor].setConds must be\n a plain Javascript object, and you defined ${z(e)}\n as its value.`);for(let[n,o]of Object.entries(e))a.has(n)?ue(n):(o=k(o)?o.call(t):o,D(o)||p(n),C(this,n)?this[n]!=o&&(f[n]=o,s(n,o)):h(n));r(f)},enumerable:!1}}),l}(i,n);return s}H("renderIf is not a constructor, do not call it with\n the new keyword.")},window.renderList=function(e){function t(e,t,n){return Y(e)?(function(e){if(Ae(e))return!1;function t(e,t){if(S(t)&&"number"!=typeof t&&M("The second argument of [LIST REACTOR].addItems must be a number."),Y(e)||M("The first argument of [LIST REACTOR ].addItems must be an Array."),!S(t)||t>this.length-1)for(const t of e)this.push(t);else if(0==t||t<0)for(let t=e.length-1;t>-1;t--)this.unshift(e[t]);else for(let n=e.length-1;n>-1;n--)this.splice(t,0,e[n])}const n=[{name:"addItems",handler:t}];for(const{name:t,handler:o}of n)h(e,t,{value:o})}(e),function(e,t){j(e)&&c();const n=new Set(["addItems","setEach"]);return new Proxy(e,{set(o,r,i,s){return n.has(r)?(Reflect.set(...arguments),!0):(Reflect.set(...arguments),Te(e,s),t(),"number"!=typeof i&&F(i)&&je(i,t),!0)},get:(e,t)=>e[t]})}(e,t)):O(e)?Ie(e,t,n):x(e)?(ke(e,t,!0,n),e):T(e)?($e(e,t,!0,n),e):void 0}void 0!==new.target&&M('renderList is not a constructor, do not call\n it with the "new" keyword.'),O(e)||M("The options(the argument of renderList) must be a plain Javascript object.");let{in:n,each:o,do:r}=e;const i=B(n);(function(e){return"string"==typeof e})(n)||M("The 'in' option in renderList must be a string."),F(o)||f(o),k(r)||M("The value of the 'do' option in renderList must be only a function.");let s,a=!0;function u(e){F(e)||f(e);const t=Symbol.for("observe");if(e[t]=o[t],o=e,Ae(e)||d(),p(),Te(o),"number"!=typeof o){new U(o).each(((e,t,n)=>{"object"==n?je(e[1],p):"array"!=n&&"set"!=n||je(e,p)}))}}function d(){if(Ae(o))return!1;Object.defineProperties(o,{setEach:{set:u},observe:{value(e){const t=Symbol.for("observe");return"function"!=typeof this[t]&&(k(e)?(Object.defineProperty(this,t,{value:e,configurable:!1}),!0):void M("The argument of the observe method must be a function."))}}}),s=t(o,p,i),Y(o)&&function(e,t,n,o,r){function i(e,i,s){const a=o.call(r,e,i,r),c=ve(a.element),f=t.children[s];w(a)||l(),c&&S(s)?t.insertBefore(c,f):t.appendChild(c),je(e,n)}const s=[{name:"unshift",handler:function(){const t=Array.prototype.unshift.apply(e,arguments);if(arguments.length>1){let e=arguments.length-1;for(;e>-1;e--)i(arguments[e],0,0)}else 1==arguments.length&&i(...arguments,0,0);return n(),Te(e),t}},{name:"shift",handler:function(){const o=Array.prototype.shift.apply(e,void 0),r=t.children[0];return r&&(t.removeChild(r),n(),Te(e)),o}},{name:"push",handler:function(){const t=Array.prototype.push.apply(e,arguments);if(1==arguments.length)i(...arguments,e.length-1);else if(arguments.length>1)for(const t of arguments)i(t,e.length-1);return n(),Te(e),t}},{name:"pop",handler:function(){const o=Array.prototype.pop.apply(e,arguments),r=t.children,i=r[r.length-1];return i&&(t.removeChild(i),n(),Te(e)),o}},{name:"splice",handler:function(o,r,...s){const a=Array.prototype.splice.apply(e,arguments);function c(){const e=r;for(let n=0;n-1;e--)i(s[e],e,o)}return r>0&&s.length>0&&(c(),f()),0==s.length?c():0==r&&s.length>0&&f(),n(),Te(e),a}}];if(j(e))return!1;if(Ae(e))return!1;for(const{name:t,handler:n}of s)Object.defineProperty(e,t,{value:n})}(o,i,p,r,s),Oe(o)}function h(e,t,n){Object.defineProperty(e,t,n)}function p(){const e=new U(o);ze(i,e),e.each(((e,t,n)=>{let o;if(a&&je("object"!==n?e:e[1],p),o="array"===n?r.call(s,e,t,s):"object"===n?r.call(s,e[0],e[1],s):"number"===n?r(e):r.call(s,e,s),w(o)){const e=i.children[t];R(e)?e.template?function(e,t,n){const o={children:!0,continue:!0};(function(e,t,n){const{attrs:o={},events:r={},styles:i={},children:s}=e,{attrs:a={},events:c={},styles:f={},children:l,target:u}=t,d=u.parentNode,h=Pe(e.text),p=Pe(t.text),m=Pe(e.tag),b=Pe(t.tag);if(m!==b){const o=ve(e);d.replaceChild(o,u),n.children=!1,Re(t,e),t.target=o}else if(y=s,g=l,Y(y)&&!Y(g)||!Y(y)&&Y(g)){const o=ve(e);d.replaceChild(o,u),n.children=!1,Re(t,e),t.target=o}else if(function(e,t){return Y(e)&&Y(t)}(s,l)&&s.length!==l.length){const o=ve(e);d.replaceChild(o,u),n.children=!1,Re(t,e),t.target=o}else S(s)||S(l)||h!==p&&(u.textContent=h,Re(t,e));var y,g;Ee(u,a,o),Le(u,c,r),_e(u,f,i)})(e,t,o),o.children&&e.children&&e.children.length>0&&Be(e.children,t.children,n)}(o.element,e.template,e):(q("Avoid manipulating what Inter manipulates."),i.replaceChild(ve(o.element),e)):i.appendChild(ve(o.element))}else l()}))}return"number"!=typeof o&&d(),p(),a=!1,s},window.template=function(e){if(O(e)){return{[Symbol.for("template")]:!0,element:e}}M(`The argument of the template function must be a plain Javascript object,\n but you defined "${z(e)}" as its argument.\n \n `)},window.toAttrs=function(e){if(void 0!==new.target)M('the "toAttrs" function is not a constructor, do not call it with the\n new keyword.');else{if(O(e)){const{in:t,data:n}=e;return function(e,t){const n=e.getElementsByTagName("*");for(const e of n)if(1==e.attributes.length){const{name:n}=e.attributes[0];if(re(n)&&oe(n)){const o=te(n);e.removeAttribute(n),ne(t,o)?ie(e,t[o]):W(`\n The attribute manager parser found an attribute manager\n named "${o}", but you did not define it in the "data" object.\n `)}}}(B(t),n),n}M(`"${z(e)}" is an invalid argument for\n "toAttrs" function, the argument must be a plain Javascript object.`)}},window.Backend=We,console.log("The global version 2.2.0 of Inter was loaded successfully.")}();
\ No newline at end of file
+!function(){function e(e){Y(`The "${e}" event was not created because\n its handler is not a function, in the tempate function.`)}function t(e){Y(`"${e}" doesn't seem to be a valid dom event.`)}function n(e){Y(`"${e}" doesn't seem to be a valid style name.`)}function o(e){H(`"${M(e)}" is an invalid tag name,\n in the template function.`)}function r(){H('The "events", "attrs" and "styles" options in the template function\n must be plain Javascript objects, and you didn\'t define\n one or more of those options as plain Javascript object.')}function i(e){const t=`You shoud not use "${e}" as an attribute name, it seems to be a dom event,\n use it as property of the "events" object, like:\n\n {\n tag: "button", text: "Some text", events: { ${e}: () => { //Some code here } }\n }\n `;W(e.startsWith("on")?t:'You should not use the style attribute(in attrs object) to create styles for the element,\n use the "styles" object instead, like:\n\n {\n tag: "p", text: "Some text", styles: { color: "green" }\n }\n')}function s(e,t){Y(`"${t}" is an invalid value for the "${e}" style.`)}function a(e){W(`"${e}" is a reserved property, do not create a property with this name.`)}function c(e){H(`The value of "setProps" must be a plain Javascript object, and you\n defined "${M(e)}" as its value`)}function f(){q("Inter failed to define the reactivity,\n because the Array of the each option is not configurable.")}function l(e){H(`"${M(e)}" is not a valid value for the "each" option in renderList.\n The values that are accepted in "each" option, are:\n Array.\n Plain js object.\n Number.\n Map.\n Set.`)}function u(){H('The template function is not being returned inside the "do" method in\n renderList(reactive listing), just return the template function.')}function d(){H('The arguments of "okay", "error" and "response" methods must be\n functions.')}function h(e){W(`"${e}" is a reserved reference name, use other name.`)}function p(e){W(`"${e}" was not defined as a conditional property.`)}function m(e){q(`The value of a conditional property must be boolean(true/false),\n and the value of "${e}" property is not boolean.`)}function b(e){Y(`The conditional rendering parser found a/an "${x(e)}"\n element which has more than one conditional atribute, it's forbidden.`)}function y(e,t,n){Y(`\n \n The conditional rendering parser found\n an element with the "_ifNot" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${e.nodeName.toLowerCase()},\n _ifNot: ${t},\n data: { ${Object.keys(n)} }\n }\n \n `)}function g(e){Y(`a/an "${x(e)}" element has the "_elseIf" attribute,\n but it does not come after an element with the "_if" or a valid "_elseIf" attribute.`)}function v(e,t,n){Y(`\n The conditional rendering parser found\n an element which has the "_if" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${t.nodeName.toLowerCase()},\n _if: ${e},\n data: { ${Object.keys(n)} }\n }\n \n `)}function w(e){W(` \n The "${e}" property was not defined in the manager object.\n `)}function j(e){return A(e)&&e.element&&e[Symbol.for("template")]}function O(e){return Object.isFrozen(e)||Object.isSealed(e)||!Object.isExtensible(e)}function A(e){return"[object Object]"==Object.prototype.toString.apply(e,void 0)}function x(e){return e.nodeName.toLowerCase()}function C(e){return e instanceof Set}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function S(e){return e instanceof Map}function I(e){return null!=e}function $(e){return Object.is(e,!0)}function k(e){return Object.is(e,!1)}function P(e){return"function"==typeof e}function R(e){return 0==Object.keys(e).length}function N(e){return e instanceof HTMLElement}function E(e){return e in HTMLElement.prototype}function _(e){return e in document.createElement("p").style}function L(e){return document.createTextNode(e)}function J(e){return"string"==typeof e}function B(e,t,n){return A(e)&&A(t)&&A(n)}function z(e){"string"!=typeof e&&H("The value of the id attribute must be a string.");const t=document.getElementById(e);if(null!=t)return t;q(`There's not an element on the document with id "${e}".`)}function M(e){return void 0===e||"symbol"==typeof e||"bigint"==typeof e||"boolean"==typeof e||"function"==typeof e||"number"==typeof e||"string"==typeof e?typeof e:function(e){const t=I(e)&&Object.prototype.toString.call(e).startsWith("[object");return t?Object.prototype.toString.call(e).replace("[object","").replace("]","").replace(/\s/g,"").toLowerCase():"null"}(e)}function H(e){throw new Error(`Inter syntaxError : ${e}`)}function q(e){throw new Error(`Inter error: ${e}`)}function W(e){console.warn(`Inter warning: ${e}`)}function Y(e){console.error(`Inter parser error: ${e}`)}function D(e){return Array.isArray(e)}function F(e){return 1==e||0==e}function U(e){return e instanceof Array||A(e)||e instanceof Map||e instanceof Set||"number"==typeof e}function X(e){this.source=function(e){const t={values:new Array,type:void 0};if(D(e))t.values=e,t.type="array";else if(A(e))t.values=Object.entries(e),t.type="object";else if(e instanceof Map)e.forEach(((e,n)=>{t.values.push([n,e])})),t.type="object";else if(e instanceof Set)t.values=Array.from(e),t.type="set";else if("number"==typeof e){for(let n=0;n{const n=e.replace("{","").replace("}","").trim();t.add(n)})),Array.from(t)}function V(e,t){return new RegExp(`{\\s*${t}\\s*}`).test(e)}X.prototype.each=function(e){let t=-1;for(const n of this.source.values)t++,e(n,t,this.source.type)};const Z=new Set(["currentTime","value"]);function ee(e,t,n){const o=e.getElementsByTagName("*");function r(e){function o(e){for(const o in t)if(e.textContent.trim().length>0&&V(e.textContent,o)){const t={target:e,text:e.textContent};n.add(t);break}}if(1==e.nodeType)for(const t of e.childNodes)t.hasChildNodes()&&1==t.nodeType?r(t):o(t);else 3==e.nodeType&&o(e)}function i(e){const o={target:e,attrs:Object.create(null),refs:t};for(const r of e.attributes)for(const i in t)if(V(r.value,i)){Z.has(r.name)?(n.specialAttrs.add({target:e,attr:{[r.name]:r.value}}),e.removeAttribute(r.name)):o.attrs[r.name]=r.value;break}var r;r=o.attrs,Object.keys(r).length>0&&n.add(o,!0)}const s=function(e){const t=new Set;if(e.hasChildNodes())for(const n of e.childNodes)3==n.nodeType&&n.textContent.trim().length>0&&K(n.textContent)&&t.add(n);return Array.from(t)}(e);if(s.length>0)for(const e of s)r(e);for(const e of o)r(e),i(e);n.updateRefs()}function te(e){return null==e}function ne(e){return e.replace("{...","").replace("}","")}function oe(e,t){return T(e,t)}function re(e){return/{(:?\.){3}(:?\S+)}/.test(e)}function ie(e){return/{(:?[\s\S]+)}/.test(e)}function se(e,t){const n=new Set(["value","currentTime"]),o=e=>!n.has(e),r=e=>e.startsWith("on")&&E(e),i=new Map;for(const[n,s]of Object.entries(t))!o(n)||r(n)||te(s)?o(n)||te(s)?r(n)&&!te(s)&&fe(e,n,s,t):ce(e,n,s):ae(e,n,s),le(t,n,s,e,i);var s;s=t,Object.defineProperty(s,"setAttrs",{set(e){A(e)||function(e){H(`\n "${M(e)}" is an invalid value for the "setAttrs" property.\n The "setAttrs" property only accepts a plain Javascript object as its\n value.\n `)}(e);for(const[t,n]of Object.entries(e))T(this,t)?this[t]=n:w(t)}}),function(e,t){Object.defineProperty(e,"observe",{value:e=>0===t.size&&(P(e)||H(`The argument of the observe method must be a function,\n and you defined ${M(e)} as its argument.`),t.set("observeCallBack",e),!0)})}(t,i)}function ae(e,t,n){te(n)||n===(()=>e.getAttribute(t))?te(n)&&e.hasAttribute(t)&&e.removeAttribute(t):e.setAttribute(t,n)}function ce(e,t,n){I(n)?e[t]=n:te(n)&&(e[t]="")}function fe(e,t,n,o){I(n)&&!P(n)?function(e,t){H(`\n "${M(t)}" is an invalid\n handler for the "${e}" event, you must\n define only a function as the handler of a dom event.\n `)}(t,n):te(n)?e[t]=void 0:e[t]=e=>n.call(o,e)}function le(e,t,n,o,r){const i=new Set(["value","currentTime","checked"]),s=()=>!i.has(t),a=()=>t.startsWith("on")&&E(t),c=()=>!s();let f=n;Object.defineProperty(e,t,{set(e){a()?fe(o,t,e,this):s()?ae(o,t,e):c()&&ce(o,t,e),f=e;const n=r.get("observeCallBack");r.has("observeCallBack")&&n(t,e)},get:()=>c()?o[t]:a()?(function(e){W(`\n you are trying to get the value of "${e}",\n it's an event, and you can not get the value of an event.\n `)}(t),!1):f})}function ue(e){const t=new Array;return e.childNodes.forEach((e=>{(1==e.nodeType||3==e.nodeType&&0==!e.textContent.trim().length)&&t.push(e)})),t}function de(e){W(`"${e}" is a reserved property, you can not use it as a conditional property.`)}const he={store:new Set,set(e){for(const t of e)I(t)&&this.store.add(t)},getSize(){const e=this.store.size;return this.store.clear(),e}};function pe(e){const t=e.getAttribute("_if"),n=e.getAttribute("_elseIf"),o=e.getAttribute("_ifNot"),r=!!e.hasAttribute("_else")||void 0;return he.set([t,n,o,r]),he.getSize()>1}function me(e){const t=e.hasAttribute("_if"),n=e.hasAttribute("_elseIf"),o=e.hasAttribute("_ifNot"),r=e.hasAttribute("_else");return!(t||n||o||r)}function be(n,o){Object.entries(n).forEach((n=>{const[r,i]=n;E(r)?P(i)?o[r]=i:e(r):t(r)}))}function ye(e,t){Object.entries(e).forEach((e=>{let[n,o]=e,r=!1;const s=new Set(["value","currentTime","checked"]);(n.startsWith("on")&&E(n)||"style"==n)&&(i(n),r=!0);const a=e=>{I(e)&&!k(e)&&(s.has(n)?t[n]=e:t.setAttribute(n,e)),t.template.attrs[n]=e};r||(P(o)?(o=o(),a(o)):a(o))}))}function ge(e,t){Object.entries(e).forEach((e=>{const[o,r]=e;if(_(o)){const e=P(r)?r():r;I(e)&&(t.style[o]=e,t.template.styles[o]=e,t.style[o]||s(o,e))}else n(o)}))}function ve(e,t,n){if(I(e)&&0==t.length){const t=P(e)?L(e()):L(e);I(t)&&n.appendChild(t)}else I(e)&&t.length>0?(Y("The template parser found an element \n with both the text property and the children property,\n and in this case Inter ignores the text property."),je(n,t)):t.length>0&&je(n,t)}function we(e,t,n){let{tag:i,text:s,attrs:a={},events:c={},styles:f={},children:l=[]}=e;i=P(i)?i():i,s=P(s)?s():s;T(e,"renderIf")&&!t&&Y("You can not conditionally render the main\n container in the template function."),J(i)||o(i),B(a,f,c)||r();const u=document.createElement(i);return u.template=Object.assign(e,{target:u,tag:i,text:s}),t&&(u.index=n),ye(a,u),be(c,u),ge(f,u),ve(s,l,u),u}function je(e,t){let n=-1;for(const i of t){let{tag:t,text:s,attrs:a={},events:c={},styles:f={},children:l=[],renderIf:u}=i;if(n++,i.index=n,t=P(t)?t():t,s=P(s)?s():s,G(u)&&T(i,"renderIf"))continue;J(t)||o(t),B(a,f,c)||r();const d=document.createElement(t);d.index=n,d.template=Object.assign(i,{target:d,tag:t,text:s}),ye(a,d),be(c,d),ge(f,d),ve(s,l,d),e.appendChild(d)}}function Oe(e,t){A(e)?function(e,t){const n=new Set(["setProps","defineProps","deleteProps"]);function o(t){for(const{name:n,setHandler:o}of t)Object.defineProperty(e,n,{set:o})}function r(n){let o=e[n];e[n]=void 0,Object.defineProperty(e,n,{set(e){o=e,t(),Oe(e,t)},get:()=>o,configurable:!0})}function i(o){D(o)||function(e){H(`The value of "deleteProps" must be an Array object, and you\n defined "${M(e)}" as its value`)}(o);for(const t of o)"string"==typeof t&&T(e,t)&&(n.has(t)||delete e[t]);t()}function s(o){A(o)||function(e){H(`The value of "defineProps" must be a plain Javascript object, and you\n defined "${M(e)}" as its value`)}(o);for(const[i,s]of Object.entries(o))i in this||n.has(i)||(e[i]=s,r(i)),t()}function f(o){A(o)||c(o);for(const[r,i]of Object.entries(o))n.has(r)||(e[r]=i),Oe(i,t)}if(xe(e))return!0;if(O(e))return W("Inter failed to define reactivity\n in a plain Javascript object, because it is not configurable."),!1;for(const o of Object.keys(e))n.has(o)&&a(o),r(o),Oe(e[o],t);o([{name:"defineProps",setHandler:s},{name:"setProps",setHandler:f},{name:"deleteProps",setHandler:i}]),Ae(e)}(e,t):D(e)?function(e,t){if(xe(e))return!1;const n=["push","unshift","pop","shift","splice","sort","reverse"];for(const o of n)Object.defineProperty(e,o,{value(e,n,...r){"pop"==o?this.mutationInfo={method:"pop",renderingSystem:t}:"shift"==o?this.mutationInfo={method:"shift",renderingSystem:t}:"push"==o?this.mutationInfo={method:"push",itemsLength:arguments.length,renderingSystem:t}:"unshift"==o?this.mutationInfo={method:"unshift",itemsLength:arguments.length,renderingSystem:t}:"splice"==o&&(this.mutationInfo={method:"splice",start:e,deleteCount:n,itemsLength:I(r)?r.length:0,renderingSystem:t});const i=Array.prototype[o].apply(this,arguments);if(t(),this.mutationInfo=void 0,"push"===o||"unshift"===o)for(const e of arguments)Oe(e,t);else if("splice"===o&&I(r))for(const e of r)Oe(e,t);return i}});(function(e,t){for(const n of e)Oe(n,t)})(e,t),Ae(e),function(e){Object.defineProperty(e,"map",{value(e){const t=new Array;t.reactor=this;let n=-1;for(const o of this){n++;const r=e(o,n,this);t.push(r)}return t}})}(e)}(e,t):S(e)?ke(e,t):C(e)&&Pe(e,t)}function Ae(e){if(xe(e))return!1;const t=Symbol.for("reactive");Object.defineProperty(e,t,{get:()=>!0})}function xe(e){return T(e,Symbol.for("reactive"))}function Ce(e){A(e)?function(e,t,n){const o=Object.keys(e);o.some(((e,o)=>{e==t&&Te(n,o)}))}(...arguments):C(e)?function(e,t,n){const o=Array.from(e);o.some(((e,o)=>{e==t&&Te(n,o)}))}(...arguments):function(e,t,n){let o=-1;e.forEach((()=>{o++;arguments[1]==t&&Te(n,o)}))}(...arguments)}function Te(e,t){const n=e.children[t];N(n)&&e.removeChild(n)}function Se(e,t){const n=Symbol.for("observe");"function"==typeof e[n]&&e[n](I(t)?t:e)}function Ie(e,t){Object.defineProperty(e,"setProps",{set(n){A(n)||c();for(const[o,r]of Object.entries(n))A(e)?this[o]=r:S(e)&&e.set(o,r),Oe(r,t);A(e)&&t()}})}function $e(e,t,n){O(e)&&f(),Ie(e,t);const o=new Set(["observe"]),r=new Set(["setEach","setProps"]);return Ae(e),new Proxy(e,{set(n,i,s,a){return!o.has(i)&&(Reflect.set(...arguments),function(e){return!r.has(e)}(i)&&(t(),Se(e,a),"number"!=typeof s&&U(s)&&Oe(s,t)),!0)},get(){return Reflect.get(...arguments)},deleteProperty(o,r,i){if(r in o)return Ce(o,r,n),Reflect.deleteProperty(...arguments),t(),Se(e,i),!0;W(`You are trying to delete the "${r}" property in the list\n reactor, but that property does not exist in the list reactor.`)}})}function ke(e,t,n,o){if(xe(e))return!1;const r=["set","delete","clear"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&Ce(this,arguments[0],o);const e=Map.prototype[i].apply(this,arguments);if(n&&Se(this),t(),"set"==i){Oe(arguments[1],t)}return e}});!function(e,t){e.forEach((e=>{Oe(e,t)}))}(e,t),Ae(e),n&&Ie(e,t)}function Pe(e,t,n,o){if(xe(e))return!1;const r=["add","clear","delete"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&Ce(this,arguments[0],o);const e=Set.prototype[i].apply(this,arguments);return t(),n&&Se(this),"add"===i&&Oe(arguments[0],t),e}});!function(e,t){e.forEach((e=>{Oe(e,t)}))}(e,t),Ae(e)}function Re(e){return"function"==typeof e&&(e=e()),e}function Ne(e,t,n,o){const{mutationInfo:{method:r,start:i,deleteCount:s,itemsLength:a}}=e;function c(e){function r(e,o){for(let r=o-1;r>-1;r--){const o=t.children[e],i=n[r],s=we(i,!0,i.index);o?t.insertBefore(s,o):t.appendChild(s),c.unshift(i)}}const c=new Array;if("splice"==e&&0==s&&a>0)r(i,a),o.splice(i,s,...c);else if("splice"==e&&s>0){for(let e=0;e0;e--){const r=n[n.length-e];t.appendChild(we(r,!0,r.index)),o.push(r)}}();else if("unshift"==r)c(r);else if("splice"==r)if("number"==typeof i&&"number"==typeof s&&0==a)!function(){let e=i;for(;n.length0)c(r);else if(null==s){He(t,{source:{values:n}})}}function Ee(e,t){Object.assign(e,t)}function _e(e,t){return e.length>t.length?e:t}function Le(e,t,n){function o(t){e.hasAttribute(t)?e.removeAttribute(t):c.has(t)&&("checked"===t?e.checked=!1:e[t]="")}const r=Object.keys(t),s=Object.keys(n),a=_e(r,s),c=new Set(["value","currentTime","checked"]);for(let f=0;a.length>f;f++){const a=r[f],l=s[f],u=Re(t[a]),d=Re(n[l]);a in n?!I(d)||k(d)?o(l):I(d)&&!k(d)&&(l.startsWith("on")&&E(l)||"style"==l?i(l):l===a&&d===u||(c.has(l)?e[l]=d:e.setAttribute(l,d))):o(a),t[a]=d}}function Je(e,t,o){const r=Object.keys(t),i=Object.keys(o),a=_e(r,i);for(let c=0;a.length>c;c++){const a=r[c],f=i[c],l=Re(t[a]),u=Re(o[f]);if(a in o&&I(u))I(u)&&u!==l&&(_(f)?(e.style[f]=u,e.style[f]||s(f,u)):n(f));else{const t=e.style[a],n=e.getAttribute("style");I(t)&&0!==t.trim().length&&(e.style[a]=null),n&&0==n.trim().length&&e.removeAttribute("style")}t[a]=u}}function Be(n,o,r){const i=Object.keys(o),s=Object.keys(r),a=_e(i,s);for(let o=0;a.length>o;o++){const a=i[o],c=s[o];a in r&&I(r[a])||(n[a]=void 0),P(r[c])||!E(c)?I(r[c])&&(E(c)?n[c]=r[c]:t(c)):(n[a]=void 0,e(c))}}function ze(e,t,n){for(let o=0;ot){e.insertBefore(n,r);break}}}function Me(e,t,n){const o=Array.from(e),r=Array.from(t);for(let s=0;sw?ze(n,w,e):n.appendChild(e)}if(n&&(j=n.children[n.children.length-1]),l.length!==m.length){const{reactor:S}=l;if(null!=S)Ne(S,v,l,m);else if(v&&null!=v.parentNode){const I=we(a,!0,w);n.replaceChild(I,v),Object.assign(c,a),c.target=I;continue}}if(x===C)G(p)&&T(a,"renderIf")?v&&null!=v.parentNode&&n.removeChild(v):G(p)||(v&&null==v.parentNode?i():v||i()),l.length==m.length&&0!==l.length&&(f=!0,Me(l,m,v)),A!==O&&v&&!f&&(v.textContent=O,c.text=O),c.tag=x,v&&(Le(v,y,d),Je(v,g,h),Be(v,b,u));else{const $=we(a,!0,w);Object.assign(c,a),v&&null!=v.parentNode&&(n.replaceChild($,v),c.target=$)}}}function He(e,t){if(e.children.length>t.source.values.length){let n=e.children.length-t.source.values.length;for(;n--;){const t=e.children.length-1,n=e.children[t];e.removeChild(n)}}}function qe(e,t,n,o,r){e.open(t,n,!0,o,r)}function We(e,t,n){Object.entries(t).forEach((([t,o])=>{n.has(t)?"onprogress"!==t?e[t]=()=>{o()}:e.onprogress=t=>{const n={abort:()=>e.abort(),progress:100*t.loaded/t.total};o(n)}:function(e){W(`There's not any event named "${e}" in Ajax request.`)}(t)}))}function Ye(e,t){const n={};return e.replace(/(:?[\S]+):/g,(e=>{var o,r;e=e.replace(":",""),t.getResponseHeader(e)&&((o=n)[r=e]=void 0,Object.defineProperty(o,r,{get:()=>t.getResponseHeader(r)}))})),Object.freeze(n)}function De(){void 0===new.target&&q("Backend is a constructor, call it with the new keyword.")}De.prototype={get[Symbol.toStringTag](){return"Ajax"},request(e){A(e)||H(`The argument of [Backend instance].request method\n must be a plain javascript object, and you defined "${M(e)}"\n as its argument.`);const{type:t,path:n,events:o={},timeout:r,withCredentials:i,body:s=null,headers:a={},security:c}=e,f=new Set(["connect","trace"]);I(t)&&"string"==typeof t||H('You must define the type(method) of request, in Ajax with the "type" option and\n it must be a string.'),I(n)&&"string"==typeof n||H('You must define the path where the request will be sent, with the "path" option and \n it must be a string.'),f.has(n.toLowerCase())&&function(e){q(`"${e}" is an unsupported request type in Ajax.`)}(t);const l=new Map;let u=!1;function h(){const e=new XMLHttpRequest,f=t.toUpperCase(),d=new Set(["onprogress","ontimeout","onabort"]),h={get status(){return e.status},get statusText(){return e.statusText},get headers(){return Ye(e.getAllResponseHeaders(),e)},get data(){return function(e){if(void 0!==e)try{return JSON.parse(e)}catch(t){return e}}(e.responseText)},get[Symbol.toStringTag](){return"AjaxResponse"},isObj:()=>function(e){try{return A(JSON.parse(e))}catch(e){return!1}}(e.responseText)};A(c)&&Object.keys(c).length>=2&&(c.username&&c.password?(qe(e,f,n,c.username,c.password),u=!0):W('Invalid "security" object, security object must have the username and passoword \n properties.')),u||(qe(e,f,n),u=!0),A(a)||function(e){H(`the "headers" property must be an object, and\n you defined it as : ${M(e)}.`)}(a),A(o)||function(e){H(`the "events" property must be an object, and\n you defined it as : ${M(e)}.`)}(o),R(a)||function(e,t){Object.entries(e).forEach((([e,n])=>{t.setRequestHeader(e,n)}))}(a,e),R(o)||We(e,o,d),e.onreadystatechange=function(){4==this.readyState&&(this.status>=200&&this.status<300?l.has("okay")&&l.get("okay")(h):l.has("error")&&l.get("error")(h))},F(i)&&(e.withCredentials=i),"number"!=typeof r&&(e.timeout=r),e.send(function(e){return I(e)?e instanceof FormData||"string"==typeof e?e:JSON.stringify(e):null}(s))}const p={okay(e){P(e)||d(),l.set("okay",e),h()},error(e){P(e)||d(),l.set("error",e),h()},response(e,t){const n=arguments.length;n<2&&function(e){H(`The response method must have two arguments and you only\n defined ${e} argument.`)}(n),P(e)||P(t)||d(),l.set("okay",e),l.set("error",t),h()}};return p}},Object.freeze(De.prototype),window.Ref=function(e){if(null!=new.target)H("Do not call the Ref function with the new keyword.");else{if(A(e)){const{in:n,data:o}=e;"string"!=typeof n&&H("The value of the 'in' property on the Ref function must be a string."),A(o)||H("The value of the 'data' property on the Ref function must be a plain Javascript object. ");const r=new Set(["setRefs","observe"]);for(const c in o)r.has(c)?(h(c),delete o[c]):P(o[c])&&(o[c]=o[c].call(o));const i=Object.assign({},o),s={attrs:new Set,texts:new Set,specialAttrs:new Set,observed:new Map,refs:i,hadIteratedOverSpecialAttrs:!1,add(e,t){t?this.attrs.add(e):this.texts.add(e)},updateSpecialAttrs(){for(const e of this.specialAttrs){const{target:t}=e;let[n,o]=Object.entries(e.attr)[0];const i=Q(o);for(const e of i)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!K(o))break}t[n]=o}},updateAttrRef(){for(const e of this.attrs){const{target:t,attrs:n}=e;for(let[e,o]of Object.entries(n)){const n=Q(o);for(const e of n)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!K(o))break}t.getAttribute(e)!==o&&t.setAttribute(e,o)}}},updateTextRef(){if(this.texts.size>0)for(const e of this.texts){let{target:t,text:n}=e;const o=Q(n);for(const e of o)if(!r.has(e)&&e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(n=n.replace(t,this.refs[e]),!K(n))break}t.textContent!==n&&(t.textContent=n)}},updateRefs(){this.texts.size>0&&this.updateTextRef(),this.attrs.size>0&&this.updateAttrRef(),this.specialAttrs.size>0&&this.updateSpecialAttrs()}};function t(e,t,n){if(1==s.observed.size&&!r.has(e)){s.observed.get("callBack")(e,t,n)}}ee(z(n),i,s);const a=new Proxy(i,{set(e,o,r,a){if(o in e&&e[o]==r)return!1;const c=e[o];if(P(r)&&(r=r.call(a)),Reflect.set(...arguments),t(o,r,c),o in a)return s.updateRefs(),!0;ee(z(n),i,s)},get:(...e)=>Reflect.get(...e)});return Object.defineProperties(a,{setRefs:{set(e){if(A(e)){let o=!1;for(const[n,s]of Object.entries(e)){if(r.has(n)){h(n);continue}if(T(this,n)||(o=!0),T(this,n)&&this[n]==s)continue;const e=i[n];P(s)?i[n]=s.call(this):i[n]=s,t(n,s,e)}o&&ee(z(n),i,s)}else H(`"${M(e)}" is not a valid value for the "setRefs" property.\n The value of the setRefs property must be a plain Javascript object.`)},enumerable:!1},observe:{value:e=>(P(e)||H("The argument of [Reference reactor].observe() must be a function."),0===s.observed.size&&(s.observed.set("callBack",e),!0)),enumerable:!1,writable:!1}}),a}H("The argument of the Ref function must be a plain Javascript object.")}},window.renderIf=function(e){if(A(e)||H("The argument of renderIf must be a plain Javascript object."),void 0===new.target){const{in:t,data:n}=e,o=new Set(["setConds","observe"]),r=z(t),i=new Array;"string"!=typeof t&&H('The value of the "in" property in the renderIf function\n must be a string.'),A(n)||H('The value of the "data" property in the renderIf function \n must be a plain Javascript object.');for(let[e,t]of Object.entries(n))o.has(e)?de(e):(t=P(t)?t.call(n):t,F(t)||m(e),n[e]=t);!function e(t){let o=-1;const r={target:void 0,if:void 0,else:void 0,ifNot:void 0,elseIfs:new Set,index:void 0,lastRendered:{target:void 0,prop:void 0},conditionalProps:new Set,rootElement:t,set setOptions(e){for(const[t,n]of Object.entries(e))this[t]=n,"if"==t&&I(n)&&this.conditionalProps.add(n)},canCache(){return null!=this.if},addElseIf(e){const{elseIf:t}=e;this.conditionalProps.has(t)?function(e){q(`\n Two elements with the "_elseIf" attribute can not have the same conditional property.\n Property: "${e}"\n `)}(t):(this.elseIfs.add(e),this.conditionalProps.add(t))},deleteData(){this.setOptions={target:void 0,if:void 0,else:void 0,ifNot:void 0,index:void 0},this.elseIfs.clear(),this.conditionalProps.clear()},getOptions(){const e=Object.assign({},this);return e.elseIfs=Array.from(this.elseIfs),e.conditionalProps=Array.from(this.conditionalProps),this.deleteData(),e}},s=()=>{const e=r.elseIfs.size,t=r.getOptions();e?i.unshift(t):i.push(t)},a=ue(t),c=a.length;for(const t of a){o++,t.index=o;const i=c-1==o;if(3!=t.nodeType)if(me(t)||t.parentNode.removeChild(t),t.children.length>0&&e(t),pe(t))b(t);else if(me(t)&&r.canCache())s();else{if(t.hasAttribute("_ifNot")){const e=t.getAttribute("_ifNot");if(T(n,e)){t.removeAttribute("_ifNot"),r.canCache()&&s(),r.setOptions={ifNot:e,target:t,index:o},s();continue}y(t,e,n)}else if(t.hasAttribute("_else"))r.if?(r.else=t,t.removeAttribute("_else"),s()):Y('The parser found an element with the "_else" attribute,\n but there is not an element with the "_if" or a valid "_elseIf" attribute before it.');else if(t.hasAttribute("_elseIf")){const e=t.getAttribute("_elseIf");t.removeAttribute("_elseIf"),r.if?T(n,e)?r.addElseIf({target:t,index:o,elseIf:e}):Y(`The conditional rendering parser found an element which has the "_elseIf"\n conditional property whose the value is: "${e}",\n but you did not define any conditional property with that name.\n \n `):g(t)}else if(t.hasAttribute("_if")){r.canCache()&&s();const e=t.getAttribute("_if");if(t.removeAttribute("_if"),!T(n,e)){v(e,t,n);continue}r.setOptions={if:e,target:t,index:o}}i&&r.canCache()&&s()}else r.canCache()&&s()}}(r);const s=function(e,t){function n(e,t){if(!(k(f[t])||e.length<2))for(const n of e){$(f[n])&&n!==t&&(f[n]=!1)}}function o(e,t){function n(){return null!=t.lastRendered.target.parentNode}let o=!1;for(const{target:r,elseIf:s}of e){const e=t.lastRendered;if(e.target&&$(f[e.prop])){o=!0;break}e.target&&k(f[e.prop])&&n()&&(t.rootElement.removeChild(e.target),t.lastRendered={prop:void 0,target:void 0}),$(f[s])&&(i(t.rootElement,r),t.lastRendered={prop:s,target:r},o=!0,e.target&&!I(e.prop)&&n()&&t.rootElement.removeChild(e.target))}return o}function r(t,r){for(const s of e){const{target:e,if:a,elseIfs:c,else:f,ifNot:l,rootElement:u}=s,d=s.conditionalProps,h=new Set(d).has(r);if(I(r)&&h&&n(d,r),l)k(t[l])&&null==e.parentNode?u.textContent.trim().length>0?i(u,e):u.appendChild(e):e.parentNode==u&&$(t[l])&&u.removeChild(e);else if(k(t[a]))if(e.parentNode!=u||f){if(f||c.length>0){const t=o(c,s);null!=e.parentNode&&u.removeChild(e),t&&f&&null!=f.parentNode?f.parentNode.removeChild(f):!t&&f&&null==f.parentNode&&(i(u,f),s.lastRendered={target:f,prop:void 0})}}else u.removeChild(e),o(c,s);else if($(t[a])&&null==e.parentNode){f&&null!=f.parentNode?(u.removeChild(f),i(u,e)):i(u,e);const{target:t}=s.lastRendered;N(t)&&null!=t.parentNode&&!t.isSameNode(e)&&t.parentNode.removeChild(t),s.lastRendered={target:e,prop:a}}}}function i(e,t){const n=ue(e),o=n[n.length-1];if(t&&null==t.parentNode)if(o&&o.index>t.index){for(const o of n)if(o.index>t.index){e.insertBefore(t,o);break}}else e.appendChild(t)}function s(e,t){if(1==c.size){c.get("callBack")(e,t)}}const a=new Set(["setConds","observe"]),c=new Map,f=Object.assign({},t);r(f);const l=new Proxy(f,{set:(e,n,o)=>(!(n in e)||e[n]!=o)&&(n in t||a.has(n)?F(o)||a.has(n)?(Reflect.set(e,n,o),a.has(n)||(r(f,n),s(n,o)),!0):(m(n),!1):(p(n),!1)),deleteProperty:()=>!1});return Object.defineProperties(l,{observe:{value:e=>(P(e)||H("The argument of [renderIf reactor].observe()\n must be a function."),0==c.size&&(c.set("callBack",e),!0)),enumerable:!1,writable:!1},setConds:{set(e){A(e)||H(`The value of [renderIf reactor].setConds must be\n a plain Javascript object, and you defined ${M(e)}\n as its value.`);for(let[n,o]of Object.entries(e))a.has(n)?de(n):(o=P(o)?o.call(t):o,F(o)||m(n),T(this,n)?this[n]!=o&&(f[n]=o,s(n,o)):p(n));r(f)},enumerable:!1}}),l}(i,n);return s}q("renderIf is not a constructor, do not call it with\n the new keyword.")},window.renderList=function(e){function t(e,t,n){return D(e)?(function(e){if(xe(e))return!1;function t(e,t){if(I(t)&&"number"!=typeof t&&H("The second argument of [LIST REACTOR].addItems must be a number."),D(e)||H("The first argument of [LIST REACTOR ].addItems must be an Array."),!I(t)||t>this.length-1)for(const t of e)this.push(t);else if(0==t||t<0)for(let t=e.length-1;t>-1;t--)this.unshift(e[t]);else for(let n=e.length-1;n>-1;n--)this.splice(t,0,e[n])}const n=[{name:"addItems",handler:t}];for(const{name:t,handler:o}of n)h(e,t,{value:o})}(e),function(e,t){O(e)&&f();const n=new Set(["addItems","setEach"]);return new Proxy(e,{set(o,r,i,s){return n.has(r)?(Reflect.set(...arguments),!0):(Reflect.set(...arguments),Se(e,s),t(),"number"!=typeof i&&U(i)&&Oe(i,t),!0)},get:(e,t)=>e[t]})}(e,t)):A(e)?$e(e,t,n):C(e)?(Pe(e,t,!0,n),e):S(e)?(ke(e,t,!0,n),e):void 0}void 0!==new.target&&H('renderList is not a constructor, do not call\n it with the "new" keyword.'),A(e)||H("The options(the argument of renderList) must be a plain Javascript object.");let{in:n,each:o,do:r}=e;const i=z(n);(function(e){return"string"==typeof e})(n)||H("The 'in' option in renderList must be a string."),U(o)||l(o),P(r)||H("The value of the 'do' option in renderList must be only a function.");let s,a=!0;function c(e){U(e)||l(e);const t=Symbol.for("observe");if(e[t]=o[t],o=e,xe(e)||d(),p(),Se(o),"number"!=typeof o){new X(o).each(((e,t,n)=>{"object"==n?Oe(e[1],p):"array"!=n&&"set"!=n||Oe(e,p)}))}}function d(){if(xe(o))return!1;Object.defineProperties(o,{setEach:{set:c},observe:{value(e){const t=Symbol.for("observe");return"function"!=typeof this[t]&&(P(e)?(Object.defineProperty(this,t,{value:e,configurable:!1}),!0):void H("The argument of the observe method must be a function."))}}}),s=t(o,p,i),D(o)&&function(e,t,n,o,r){function i(e,i,s){const a=o.call(r,e,i,r),c=we(a.element),f=t.children[s];j(a)||u(),c&&I(s)?t.insertBefore(c,f):t.appendChild(c),Oe(e,n)}const s=[{name:"unshift",handler:function(){const t=Array.prototype.unshift.apply(e,arguments);if(arguments.length>1){let e=arguments.length-1;for(;e>-1;e--)i(arguments[e],0,0)}else 1==arguments.length&&i(...arguments,0,0);return n(),Se(e),t}},{name:"shift",handler:function(){const o=Array.prototype.shift.apply(e,void 0),r=t.children[0];return r&&(t.removeChild(r),n(),Se(e)),o}},{name:"push",handler:function(){const t=Array.prototype.push.apply(e,arguments);if(1==arguments.length)i(...arguments,e.length-1);else if(arguments.length>1)for(const t of arguments)i(t,e.length-1);return n(),Se(e),t}},{name:"pop",handler:function(){const o=Array.prototype.pop.apply(e,arguments),r=t.children,i=r[r.length-1];return i&&(t.removeChild(i),n(),Se(e)),o}},{name:"splice",handler:function(o,r,...s){const a=Array.prototype.splice.apply(e,arguments);function c(){const e=r;for(let n=0;n-1;e--)i(s[e],e,o)}return r>0&&s.length>0&&(c(),f()),0==s.length?c():0==r&&s.length>0&&f(),n(),Se(e),a}}];if(O(e))return!1;if(xe(e))return!1;for(const{name:t,handler:n}of s)Object.defineProperty(e,t,{value:n})}(o,i,p,r,s),Ae(o)}function h(e,t,n){Object.defineProperty(e,t,n)}function p(){const e=new X(o);He(i,e),e.each(((e,t,n)=>{let o;if(a&&Oe("object"!==n?e:e[1],p),o="array"===n?r.call(s,e,t,s):"object"===n?r.call(s,e[0],e[1],s):"number"===n?r(e):r.call(s,e,s),j(o)){const e=i.children[t];N(e)?e.template?function(e,t,n){const o={children:!0,continue:!0};(function(e,t,n){const{attrs:o={},events:r={},styles:i={},children:s}=e,{attrs:a={},events:c={},styles:f={},children:l,target:u}=t,{reactor:d}=s;null!=d&&Ne(d,u,s,l);const h=u.parentNode,p=Re(e.text),m=Re(t.text),b=Re(e.tag),y=Re(t.tag);if(b!==y){const o=we(e);h.replaceChild(o,u),n.children=!1,Ee(t,e),t.target=o}else if(g=s,v=l,D(g)&&!D(v)||!D(g)&&D(v)){const o=we(e);h.replaceChild(o,u),n.children=!1,Ee(t,e),t.target=o}else if(function(e,t){return D(e)&&D(t)}(s,l)&&s.length!==l.length){const o=we(e);h.replaceChild(o,u),n.children=!1,Ee(t,e),t.target=o}else I(s)||I(l)||p!==m&&(u.textContent=p,Ee(t,e));var g,v;Le(u,a,o),Be(u,c,r),Je(u,f,i)})(e,t,o),o.children&&e.children&&e.children.length>0&&Me(e.children,t.children,n)}(o.element,e.template,e):(W("Avoid manipulating what Inter manipulates."),i.replaceChild(we(o.element),e)):i.appendChild(we(o.element))}else u()}))}return"number"!=typeof o&&d(),p(),a=!1,s},window.template=function(e){if(A(e)){return{[Symbol.for("template")]:!0,element:e}}H(`The argument of the template function must be a plain Javascript object,\n but you defined "${M(e)}" as its argument.\n \n `)},window.toAttrs=function(e){if(void 0!==new.target)H('the "toAttrs" function is not a constructor, do not call it with the\n new keyword.');else{if(A(e)){const{in:t,data:n}=e;return function(e,t){const n=e.getElementsByTagName("*");for(const e of n)if(1==e.attributes.length){const{name:n}=e.attributes[0];if(ie(n)&&re(n)){const o=ne(n);e.removeAttribute(n),oe(t,o)?se(e,t[o]):Y(`\n The attribute manager parser found an attribute manager\n named "${o}", but you did not define it in the "data" object.\n `)}}}(z(t),n),n}H(`"${M(e)}" is an invalid argument for\n "toAttrs" function, the argument must be a plain Javascript object.`)}},window.Backend=De,console.log("The global version 2.2.1 of Inter was loaded successfully.")}();
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index c0938b0..9e0ee14 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1 +1 @@
-{"name":"inter","version":"2.2.0","lockfileVersion":1,"requires":true,"dependencies":{"@eslint/eslintrc":{"version":"1.4.1","resolved":"https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz","integrity":"sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==","dev":true,"requires":{"ajv":"^6.12.4","debug":"^4.3.2","espree":"^9.4.0","globals":"^13.19.0","ignore":"^5.2.0","import-fresh":"^3.2.1","js-yaml":"^4.1.0","minimatch":"^3.1.2","strip-json-comments":"^3.1.1"}},"@humanwhocodes/config-array":{"version":"0.11.8","resolved":"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz","integrity":"sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==","dev":true,"requires":{"@humanwhocodes/object-schema":"^1.2.1","debug":"^4.1.1","minimatch":"^3.0.5"}},"@humanwhocodes/module-importer":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz","integrity":"sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==","dev":true},"@humanwhocodes/object-schema":{"version":"1.2.1","resolved":"https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz","integrity":"sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==","dev":true},"@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","dev":true,"requires":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"}},"@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","dev":true},"@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","dev":true,"requires":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"}},"acorn":{"version":"8.8.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz","integrity":"sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==","dev":true},"acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","dev":true},"ajv":{"version":"6.12.6","resolved":"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz","integrity":"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==","dev":true,"requires":{"fast-deep-equal":"^3.1.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi-regex":{"version":"5.0.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","integrity":"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==","dev":true},"ansi-styles":{"version":"4.3.0","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","integrity":"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==","dev":true,"requires":{"color-convert":"^2.0.1"}},"argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","dev":true},"balanced-match":{"version":"1.0.2","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","integrity":"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==","dev":true},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","dev":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"callsites":{"version":"3.1.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz","integrity":"sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==","dev":true},"chalk":{"version":"4.1.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz","integrity":"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==","dev":true},"cross-spawn":{"version":"7.0.3","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","integrity":"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==","dev":true,"requires":{"path-key":"^3.1.0","shebang-command":"^2.0.0","which":"^2.0.1"}},"debug":{"version":"4.3.4","resolved":"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz","integrity":"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==","dev":true,"requires":{"ms":"2.1.2"}},"deep-is":{"version":"0.1.4","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz","integrity":"sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==","dev":true},"doctrine":{"version":"3.0.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz","integrity":"sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==","dev":true,"requires":{"esutils":"^2.0.2"}},"escape-string-regexp":{"version":"4.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz","integrity":"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==","dev":true},"eslint":{"version":"8.32.0","resolved":"https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz","integrity":"sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==","dev":true,"requires":{"@eslint/eslintrc":"^1.4.1","@humanwhocodes/config-array":"^0.11.8","@humanwhocodes/module-importer":"^1.0.1","@nodelib/fs.walk":"^1.2.8","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.1","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.3.0","espree":"^9.4.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","find-up":"^5.0.0","glob-parent":"^6.0.2","globals":"^13.19.0","grapheme-splitter":"^1.0.4","ignore":"^5.2.0","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","is-path-inside":"^3.0.3","js-sdsl":"^4.1.4","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.1.2","natural-compare":"^1.4.0","optionator":"^0.9.1","regexpp":"^3.2.0","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0"}},"eslint-scope":{"version":"7.1.1","resolved":"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz","integrity":"sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==","dev":true,"requires":{"esrecurse":"^4.3.0","estraverse":"^5.2.0"}},"eslint-utils":{"version":"3.0.0","resolved":"https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz","integrity":"sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==","dev":true,"requires":{"eslint-visitor-keys":"^2.0.0"},"dependencies":{"eslint-visitor-keys":{"version":"2.1.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz","integrity":"sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==","dev":true}}},"eslint-visitor-keys":{"version":"3.3.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz","integrity":"sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==","dev":true},"espree":{"version":"9.4.1","resolved":"https://registry.npmjs.org/espree/-/espree-9.4.1.tgz","integrity":"sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==","dev":true,"requires":{"acorn":"^8.8.0","acorn-jsx":"^5.3.2","eslint-visitor-keys":"^3.3.0"}},"esquery":{"version":"1.4.0","resolved":"https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz","integrity":"sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==","dev":true,"requires":{"estraverse":"^5.1.0"}},"esrecurse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz","integrity":"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==","dev":true,"requires":{"estraverse":"^5.2.0"}},"estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","dev":true},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","dev":true},"fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","dev":true},"fast-json-stable-stringify":{"version":"2.1.0","resolved":"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz","integrity":"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==","dev":true},"fastq":{"version":"1.15.0","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz","integrity":"sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==","dev":true,"requires":{"reusify":"^1.0.4"}},"file-entry-cache":{"version":"6.0.1","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz","integrity":"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==","dev":true,"requires":{"flat-cache":"^3.0.4"}},"find-up":{"version":"5.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz","integrity":"sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==","dev":true,"requires":{"locate-path":"^6.0.0","path-exists":"^4.0.0"}},"flat-cache":{"version":"3.0.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz","integrity":"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==","dev":true,"requires":{"flatted":"^3.1.0","rimraf":"^3.0.2"}},"flatted":{"version":"3.2.7","resolved":"https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz","integrity":"sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==","dev":true},"glob":{"version":"7.2.3","resolved":"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz","integrity":"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==","dev":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.1.1","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-parent":{"version":"6.0.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz","integrity":"sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==","dev":true,"requires":{"is-glob":"^4.0.3"}},"globals":{"version":"13.19.0","resolved":"https://registry.npmjs.org/globals/-/globals-13.19.0.tgz","integrity":"sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==","dev":true,"requires":{"type-fest":"^0.20.2"}},"grapheme-splitter":{"version":"1.0.4","resolved":"https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz","integrity":"sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==","dev":true},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"ignore":{"version":"5.2.4","resolved":"https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz","integrity":"sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==","dev":true},"import-fresh":{"version":"3.3.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz","integrity":"sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==","dev":true},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==","dev":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","dev":true},"is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","dev":true},"is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","dev":true,"requires":{"is-extglob":"^2.1.1"}},"is-path-inside":{"version":"3.0.3","resolved":"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz","integrity":"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==","dev":true},"isexe":{"version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==","dev":true},"js-sdsl":{"version":"4.3.0","resolved":"https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz","integrity":"sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==","dev":true},"js-yaml":{"version":"4.1.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz","integrity":"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==","dev":true,"requires":{"argparse":"^2.0.1"}},"json-schema-traverse":{"version":"0.4.1","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz","integrity":"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==","dev":true},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==","dev":true},"levn":{"version":"0.4.1","resolved":"https://registry.npmjs.org/levn/-/levn-0.4.1.tgz","integrity":"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==","dev":true,"requires":{"prelude-ls":"^1.2.1","type-check":"~0.4.0"}},"locate-path":{"version":"6.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz","integrity":"sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==","dev":true,"requires":{"p-locate":"^5.0.0"}},"lodash.merge":{"version":"4.6.2","resolved":"https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz","integrity":"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==","dev":true},"minimatch":{"version":"3.1.2","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz","integrity":"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==","dev":true,"requires":{"brace-expansion":"^1.1.7"}},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==","dev":true},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==","dev":true},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==","dev":true,"requires":{"wrappy":"1"}},"optionator":{"version":"0.9.1","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz","integrity":"sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==","dev":true,"requires":{"deep-is":"^0.1.3","fast-levenshtein":"^2.0.6","levn":"^0.4.1","prelude-ls":"^1.2.1","type-check":"^0.4.0","word-wrap":"^1.2.3"}},"p-limit":{"version":"3.1.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz","integrity":"sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==","dev":true,"requires":{"yocto-queue":"^0.1.0"}},"p-locate":{"version":"5.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz","integrity":"sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==","dev":true,"requires":{"p-limit":"^3.0.2"}},"parent-module":{"version":"1.0.1","resolved":"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz","integrity":"sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==","dev":true,"requires":{"callsites":"^3.0.0"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==","dev":true},"path-key":{"version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==","dev":true},"prelude-ls":{"version":"1.2.1","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz","integrity":"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==","dev":true},"prettier":{"version":"2.8.3","resolved":"https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz","integrity":"sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==","dev":true},"punycode":{"version":"2.3.0","resolved":"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz","integrity":"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==","dev":true},"queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","dev":true},"regexpp":{"version":"3.2.0","resolved":"https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz","integrity":"sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==","dev":true},"resolve-from":{"version":"4.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz","integrity":"sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==","dev":true},"reusify":{"version":"1.0.4","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz","integrity":"sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==","dev":true},"rimraf":{"version":"3.0.2","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz","integrity":"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==","dev":true,"requires":{"glob":"^7.1.3"}},"run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","dev":true,"requires":{"queue-microtask":"^1.2.2"}},"shebang-command":{"version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==","dev":true,"requires":{"shebang-regex":"^3.0.0"}},"shebang-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==","dev":true},"strip-ansi":{"version":"6.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","integrity":"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==","dev":true,"requires":{"ansi-regex":"^5.0.1"}},"strip-json-comments":{"version":"3.1.1","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz","integrity":"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==","dev":true},"supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","dev":true,"requires":{"has-flag":"^4.0.0"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==","dev":true},"type-check":{"version":"0.4.0","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz","integrity":"sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==","dev":true,"requires":{"prelude-ls":"^1.2.1"}},"type-fest":{"version":"0.20.2","resolved":"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz","integrity":"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==","dev":true},"uri-js":{"version":"4.4.1","resolved":"https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz","integrity":"sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==","dev":true,"requires":{"punycode":"^2.1.0"}},"which":{"version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==","dev":true,"requires":{"isexe":"^2.0.0"}},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==","dev":true},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==","dev":true},"yocto-queue":{"version":"0.1.0","resolved":"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz","integrity":"sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==","dev":true}}}
\ No newline at end of file
+{"name":"inter","version":"2.2.1","lockfileVersion":1,"requires":true,"dependencies":{"@eslint/eslintrc":{"version":"1.4.1","resolved":"https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz","integrity":"sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==","dev":true,"requires":{"ajv":"^6.12.4","debug":"^4.3.2","espree":"^9.4.0","globals":"^13.19.0","ignore":"^5.2.0","import-fresh":"^3.2.1","js-yaml":"^4.1.0","minimatch":"^3.1.2","strip-json-comments":"^3.1.1"}},"@humanwhocodes/config-array":{"version":"0.11.8","resolved":"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz","integrity":"sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==","dev":true,"requires":{"@humanwhocodes/object-schema":"^1.2.1","debug":"^4.1.1","minimatch":"^3.0.5"}},"@humanwhocodes/module-importer":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz","integrity":"sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==","dev":true},"@humanwhocodes/object-schema":{"version":"1.2.1","resolved":"https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz","integrity":"sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==","dev":true},"@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","dev":true,"requires":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"}},"@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","dev":true},"@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","dev":true,"requires":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"}},"acorn":{"version":"8.8.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz","integrity":"sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==","dev":true},"acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","dev":true},"ajv":{"version":"6.12.6","resolved":"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz","integrity":"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==","dev":true,"requires":{"fast-deep-equal":"^3.1.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi-regex":{"version":"5.0.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","integrity":"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==","dev":true},"ansi-styles":{"version":"4.3.0","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","integrity":"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==","dev":true,"requires":{"color-convert":"^2.0.1"}},"argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","dev":true},"balanced-match":{"version":"1.0.2","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","integrity":"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==","dev":true},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","dev":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"callsites":{"version":"3.1.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz","integrity":"sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==","dev":true},"chalk":{"version":"4.1.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz","integrity":"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==","dev":true},"cross-spawn":{"version":"7.0.3","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","integrity":"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==","dev":true,"requires":{"path-key":"^3.1.0","shebang-command":"^2.0.0","which":"^2.0.1"}},"debug":{"version":"4.3.4","resolved":"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz","integrity":"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==","dev":true,"requires":{"ms":"2.1.2"}},"deep-is":{"version":"0.1.4","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz","integrity":"sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==","dev":true},"doctrine":{"version":"3.0.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz","integrity":"sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==","dev":true,"requires":{"esutils":"^2.0.2"}},"escape-string-regexp":{"version":"4.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz","integrity":"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==","dev":true},"eslint":{"version":"8.32.0","resolved":"https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz","integrity":"sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==","dev":true,"requires":{"@eslint/eslintrc":"^1.4.1","@humanwhocodes/config-array":"^0.11.8","@humanwhocodes/module-importer":"^1.0.1","@nodelib/fs.walk":"^1.2.8","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.1","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.3.0","espree":"^9.4.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","find-up":"^5.0.0","glob-parent":"^6.0.2","globals":"^13.19.0","grapheme-splitter":"^1.0.4","ignore":"^5.2.0","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","is-path-inside":"^3.0.3","js-sdsl":"^4.1.4","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.1.2","natural-compare":"^1.4.0","optionator":"^0.9.1","regexpp":"^3.2.0","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0"}},"eslint-scope":{"version":"7.1.1","resolved":"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz","integrity":"sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==","dev":true,"requires":{"esrecurse":"^4.3.0","estraverse":"^5.2.0"}},"eslint-utils":{"version":"3.0.0","resolved":"https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz","integrity":"sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==","dev":true,"requires":{"eslint-visitor-keys":"^2.0.0"},"dependencies":{"eslint-visitor-keys":{"version":"2.1.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz","integrity":"sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==","dev":true}}},"eslint-visitor-keys":{"version":"3.3.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz","integrity":"sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==","dev":true},"espree":{"version":"9.4.1","resolved":"https://registry.npmjs.org/espree/-/espree-9.4.1.tgz","integrity":"sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==","dev":true,"requires":{"acorn":"^8.8.0","acorn-jsx":"^5.3.2","eslint-visitor-keys":"^3.3.0"}},"esquery":{"version":"1.4.0","resolved":"https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz","integrity":"sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==","dev":true,"requires":{"estraverse":"^5.1.0"}},"esrecurse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz","integrity":"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==","dev":true,"requires":{"estraverse":"^5.2.0"}},"estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","dev":true},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","dev":true},"fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","dev":true},"fast-json-stable-stringify":{"version":"2.1.0","resolved":"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz","integrity":"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==","dev":true},"fastq":{"version":"1.15.0","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz","integrity":"sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==","dev":true,"requires":{"reusify":"^1.0.4"}},"file-entry-cache":{"version":"6.0.1","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz","integrity":"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==","dev":true,"requires":{"flat-cache":"^3.0.4"}},"find-up":{"version":"5.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz","integrity":"sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==","dev":true,"requires":{"locate-path":"^6.0.0","path-exists":"^4.0.0"}},"flat-cache":{"version":"3.0.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz","integrity":"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==","dev":true,"requires":{"flatted":"^3.1.0","rimraf":"^3.0.2"}},"flatted":{"version":"3.2.7","resolved":"https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz","integrity":"sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==","dev":true},"glob":{"version":"7.2.3","resolved":"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz","integrity":"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==","dev":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.1.1","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-parent":{"version":"6.0.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz","integrity":"sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==","dev":true,"requires":{"is-glob":"^4.0.3"}},"globals":{"version":"13.19.0","resolved":"https://registry.npmjs.org/globals/-/globals-13.19.0.tgz","integrity":"sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==","dev":true,"requires":{"type-fest":"^0.20.2"}},"grapheme-splitter":{"version":"1.0.4","resolved":"https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz","integrity":"sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==","dev":true},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"ignore":{"version":"5.2.4","resolved":"https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz","integrity":"sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==","dev":true},"import-fresh":{"version":"3.3.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz","integrity":"sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==","dev":true},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==","dev":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","dev":true},"is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","dev":true},"is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","dev":true,"requires":{"is-extglob":"^2.1.1"}},"is-path-inside":{"version":"3.0.3","resolved":"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz","integrity":"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==","dev":true},"isexe":{"version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==","dev":true},"js-sdsl":{"version":"4.3.0","resolved":"https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz","integrity":"sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==","dev":true},"js-yaml":{"version":"4.1.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz","integrity":"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==","dev":true,"requires":{"argparse":"^2.0.1"}},"json-schema-traverse":{"version":"0.4.1","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz","integrity":"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==","dev":true},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==","dev":true},"levn":{"version":"0.4.1","resolved":"https://registry.npmjs.org/levn/-/levn-0.4.1.tgz","integrity":"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==","dev":true,"requires":{"prelude-ls":"^1.2.1","type-check":"~0.4.0"}},"locate-path":{"version":"6.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz","integrity":"sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==","dev":true,"requires":{"p-locate":"^5.0.0"}},"lodash.merge":{"version":"4.6.2","resolved":"https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz","integrity":"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==","dev":true},"minimatch":{"version":"3.1.2","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz","integrity":"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==","dev":true,"requires":{"brace-expansion":"^1.1.7"}},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==","dev":true},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==","dev":true},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==","dev":true,"requires":{"wrappy":"1"}},"optionator":{"version":"0.9.1","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz","integrity":"sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==","dev":true,"requires":{"deep-is":"^0.1.3","fast-levenshtein":"^2.0.6","levn":"^0.4.1","prelude-ls":"^1.2.1","type-check":"^0.4.0","word-wrap":"^1.2.3"}},"p-limit":{"version":"3.1.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz","integrity":"sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==","dev":true,"requires":{"yocto-queue":"^0.1.0"}},"p-locate":{"version":"5.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz","integrity":"sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==","dev":true,"requires":{"p-limit":"^3.0.2"}},"parent-module":{"version":"1.0.1","resolved":"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz","integrity":"sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==","dev":true,"requires":{"callsites":"^3.0.0"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==","dev":true},"path-key":{"version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==","dev":true},"prelude-ls":{"version":"1.2.1","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz","integrity":"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==","dev":true},"prettier":{"version":"2.8.3","resolved":"https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz","integrity":"sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==","dev":true},"punycode":{"version":"2.3.0","resolved":"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz","integrity":"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==","dev":true},"queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","dev":true},"regexpp":{"version":"3.2.0","resolved":"https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz","integrity":"sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==","dev":true},"resolve-from":{"version":"4.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz","integrity":"sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==","dev":true},"reusify":{"version":"1.0.4","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz","integrity":"sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==","dev":true},"rimraf":{"version":"3.0.2","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz","integrity":"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==","dev":true,"requires":{"glob":"^7.1.3"}},"run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","dev":true,"requires":{"queue-microtask":"^1.2.2"}},"shebang-command":{"version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==","dev":true,"requires":{"shebang-regex":"^3.0.0"}},"shebang-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==","dev":true},"strip-ansi":{"version":"6.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","integrity":"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==","dev":true,"requires":{"ansi-regex":"^5.0.1"}},"strip-json-comments":{"version":"3.1.1","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz","integrity":"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==","dev":true},"supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","dev":true,"requires":{"has-flag":"^4.0.0"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==","dev":true},"type-check":{"version":"0.4.0","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz","integrity":"sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==","dev":true,"requires":{"prelude-ls":"^1.2.1"}},"type-fest":{"version":"0.20.2","resolved":"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz","integrity":"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==","dev":true},"uri-js":{"version":"4.4.1","resolved":"https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz","integrity":"sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==","dev":true,"requires":{"punycode":"^2.1.0"}},"which":{"version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==","dev":true,"requires":{"isexe":"^2.0.0"}},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==","dev":true},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==","dev":true},"yocto-queue":{"version":"0.1.0","resolved":"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz","integrity":"sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==","dev":true}}}
\ No newline at end of file
diff --git a/package.json b/package.json
index 20b1f74..cae114b 100644
--- a/package.json
+++ b/package.json
@@ -1 +1 @@
-{"name":"inter","version":"2.2.0","description":"The javascript framework to build highly interactive front-end web applications.","author":"Denis Power","license":"MIT","jsdelivr":"inter.min.js","repository":{"type":"git","url":"git+https://github.com/interjs/inter.git"},"homepage":"https://interjs.github.io","bugs":{"url":"https://github.com/interjs/inter/issues"},"main":"inter.js","keywords":["interjs","inter"],"devDependencies":{"eslint":"^8.32.0","prettier":"^2.8.3"}}
\ No newline at end of file
+{"name":"inter","version":"2.2.1","description":"The javascript framework to build highly interactive front-end web applications.","author":"Denis Power","license":"MIT","jsdelivr":"inter.min.js","repository":{"type":"git","url":"git+https://github.com/interjs/inter.git"},"homepage":"https://interjs.github.io","bugs":{"url":"https://github.com/interjs/inter/issues"},"main":"inter.js","keywords":["interjs","inter"],"devDependencies":{"eslint":"^8.32.0","prettier":"^2.8.3"}}
\ No newline at end of file