From 4da5543c27957075ae3817ef788f112375c3b0a1 Mon Sep 17 00:00:00 2001 From: djmaze Date: Sat, 19 Sep 2020 13:36:05 +0200 Subject: [PATCH] Remove more IE9 stuff from Knockoutjs --- .../build/output/knockout-latest.debug.js | 49 ++-- .../knockout/build/output/knockout-latest.js | 221 +++++++++--------- .../editDetection/arrayToDomNodeChildren.js | 6 +- vendors/knockout/src/virtualElements.js | 12 +- 4 files changed, 133 insertions(+), 155 deletions(-) diff --git a/vendors/knockout/build/output/knockout-latest.debug.js b/vendors/knockout/build/output/knockout-latest.debug.js index 67edb4803..9f525872e 100644 --- a/vendors/knockout/build/output/knockout-latest.debug.js +++ b/vendors/knockout/build/output/knockout-latest.debug.js @@ -88,6 +88,17 @@ ko.utils = (function () { var canSetPrototype = ({ __proto__: [] } instanceof Array); + // For details on the pattern for changing node classes + // see: https://github.com/knockout/knockout/issues/1597 + function toggleDomNodeCssClass(node, classNames, shouldHaveClass) { + if (classNames) { + var addOrRemoveFn = shouldHaveClass ? 'add' : 'remove'; + classNames.split(/\s+/).forEach(function(className) { + node.classList[addOrRemoveFn](className); + }); + } + } + return { arrayForEach: function (array, action, actionOwner) { arrayCall('forEach', array, action, actionOwner); @@ -318,6 +329,8 @@ ko.utils = (function () { return ko.isObservable(value) ? value.peek() : value; }, + toggleDomNodeCssClass: toggleDomNodeCssClass, + setTextContent: function(element, textContent) { var value = ko.utils.unwrapObservable(textContent); if ((value === null) || (value === undefined)) @@ -353,6 +366,7 @@ ko.exportSymbol('utils.objectMap', ko.utils.objectMap); ko.exportSymbol('utils.peekObservable', ko.utils.peekObservable); ko.exportSymbol('utils.registerEventHandler', ko.utils.registerEventHandler); ko.exportSymbol('utils.stringifyJson', ko.utils.stringifyJson); +ko.exportSymbol('utils.toggleDomNodeCssClass', ko.utils.toggleDomNodeCssClass); ko.exportSymbol('utils.triggerEvent', ko.utils.triggerEvent); ko.exportSymbol('utils.unwrapObservable', ko.utils.unwrapObservable); ko.exportSymbol('utils.objectForEach', ko.utils.objectForEach); @@ -2451,11 +2465,7 @@ ko.exportSymbol('jsonExpressionRewriting.insertPropertyAccessorsIntoJson', ko.ex insertBeforeNode = containerNode.firstChild; } - if (!insertBeforeNode) { - containerNode.append(nodeToPrepend); - } else if (nodeToPrepend !== insertBeforeNode) { // IE will sometimes crash if you try to insert a node before itself - containerNode.insertBefore(nodeToPrepend, insertBeforeNode); - } + containerNode.insertBefore(nodeToPrepend, insertBeforeNode); }, insertAfter: function(containerNode, nodeToInsert, insertAfterNode) { @@ -2469,11 +2479,7 @@ ko.exportSymbol('jsonExpressionRewriting.insertPropertyAccessorsIntoJson', ko.ex containerNode = containerNode.parentNode; } - if (!insertBeforeNode) { - containerNode.append(nodeToInsert); - } else if (nodeToInsert !== insertBeforeNode) { // IE will sometimes crash if you try to insert a node before itself - containerNode.insertBefore(nodeToInsert, insertBeforeNode); - } + containerNode.insertBefore(nodeToInsert, insertBeforeNode); } }, @@ -3920,23 +3926,12 @@ ko.bindingHandlers['checkedValue'] = { })(); var classesWrittenByBindingKey = '__ko__cssValue'; -// For details on the pattern for changing node classes -// see: https://github.com/knockout/knockout/issues/1597 -function toggleDomNodeCssClass(node, classNames, shouldHaveClass) { - if (classNames) { - var addOrRemoveFn = shouldHaveClass ? 'add' : 'remove'; - classNames.split(/\s+/).forEach(function(className) { - node.classList[addOrRemoveFn](className); - }); - } -} - ko.bindingHandlers['class'] = { 'update': function (element, valueAccessor) { var value = ko.utils.stringTrim(ko.utils.unwrapObservable(valueAccessor())); - toggleDomNodeCssClass(element, element[classesWrittenByBindingKey], false); + ko.utils.toggleDomNodeCssClass(element, element[classesWrittenByBindingKey], false); element[classesWrittenByBindingKey] = value; - toggleDomNodeCssClass(element, value, true); + ko.utils.toggleDomNodeCssClass(element, value, true); } }; @@ -3946,7 +3941,7 @@ ko.bindingHandlers['css'] = { if (value !== null && typeof value == "object") { ko.utils.objectForEach(value, function(className, shouldHaveClass) { shouldHaveClass = ko.utils.unwrapObservable(shouldHaveClass); - toggleDomNodeCssClass(element, className, shouldHaveClass); + ko.utils.toggleDomNodeCssClass(element, className, shouldHaveClass); }); } else { ko.bindingHandlers['class']['update'](element, valueAccessor); @@ -5627,11 +5622,7 @@ ko.exportSymbol('utils.compareArrays', ko.utils.compareArrays); // Since most browsers remove the focus from an element when it's moved to another location, // save the focused element and try to restore it later. - try { - activeElement = domNode.ownerDocument.activeElement; - } catch(e) { - // IE9 throws if you access activeElement during page load (see issue #703) - } + activeElement = domNode.ownerDocument.activeElement; // Try to reduce overall moved nodes by first moving the ones that were marked as moved by the edit script if (itemsToMoveFirstIndexes.length) { diff --git a/vendors/knockout/build/output/knockout-latest.js b/vendors/knockout/build/output/knockout-latest.js index 56c6badbe..b7b5fe73a 100644 --- a/vendors/knockout/build/output/knockout-latest.js +++ b/vendors/knockout/build/output/knockout-latest.js @@ -4,115 +4,114 @@ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ -(function() {(function(p){var D=this||(0,eval)("this"),E=D.document,H=D.jQuery;H||"undefined"===typeof jQuery||(H=jQuery);(function(p){"function"===typeof define&&define.amd?define(["exports","require"],p):"object"===typeof exports&&"object"===typeof module?p(module.exports||exports):p(D.ko={})})(function(H,Q){function J(a,c){return null===a||typeof a in T?a===c:!1}function U(b,c){var d;return function(){d||(d=a.a.setTimeout(function(){d=p;b()},c))}}function V(b,c){var d;return function(){clearTimeout(d);d=a.a.setTimeout(b, -c)}}function W(a,c){c&&"change"!==c?"beforeChange"===c?this.hc(a):this.bb(a,c):this.ic(a)}function X(a,c){null!==c&&c.s&&c.s()}function Y(a,c){var d=this.$c,e=d[r];e.pa||(this.Jb&&this.ib[c]?(d.mc(c,a,this.ib[c]),this.ib[c]=null,--this.Jb):e.F[c]||d.mc(c,a,e.G?{$:a}:d.Mc(a)),a.Ca&&a.Rc())}function L(a,c,d){if(c){var e=d?"add":"remove";c.split(/\s+/).forEach(function(c){a.classList[e](c)})}}var a="undefined"!==typeof H?H:{};a.b=function(b,c){for(var d=b.split("."),e=a,f=0;f -a.length?!1:a.substring(0,b.length)===b},ed:function(a,b){return b.contains(1!==a.nodeType?a.parentNode:a)},Lb:function(b){return a.a.ed(b,b.ownerDocument.documentElement)},Uc:function(b){return!!a.a.Fb(b,a.a.Lb)},fa:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},rc:function(b){return a.onError?function(){try{return b.apply(this,arguments)}catch(c){throw a.onError&&a.onError(c),c;}}:b},setTimeout:function(b,c){return setTimeout(a.a.rc(b),c)},wc:function(b){setTimeout(function(){a.onError&& -a.onError(b);throw b;},0)},H:function(b,c,d){d=a.a.rc(d);if(!a.options.useOnlyNativeEvents&&jQuery)jQuery(b).on(c,d);else b.addEventListener(c,d,!1)},zb:function(a,b){if(!a||!a.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},f:function(b){return a.U(b)?b():b},Vb:function(b){return a.U(b)?b.w():b},xb:function(b,c){var d=a.a.f(c);if(null===d||d===p)d="";var e=a.g.firstChild(b);!e||3!=e.nodeType||a.g.nextSibling(e)?a.g.sa(b,[b.ownerDocument.createTextNode(d)]): -e.data=d},ya:function(a){return Array.from(a)}}}();a.b("utils",a.a);a.b("utils.arrayForEach",a.a.K);a.b("utils.arrayFirst",a.a.Fb);a.b("utils.arrayFilter",a.a.fb);a.b("utils.arrayIndexOf",a.a.O);a.b("utils.arrayPushAll",a.a.Gb);a.b("utils.arrayRemoveItem",a.a.Ia);a.b("utils.cloneNodes",a.a.La);a.b("utils.extend",a.a.extend);a.b("utils.objectMap",a.a.za);a.b("utils.peekObservable",a.a.Vb);a.b("utils.registerEventHandler",a.a.H);a.b("utils.stringifyJson",a.a.Fd);a.b("utils.triggerEvent",a.a.zb);a.b("utils.unwrapObservable", -a.a.f);a.b("utils.objectForEach",a.a.N);a.b("utils.setTextContent",a.a.xb);a.b("unwrap",a.a.f);a.a.h=new function(){var a=0,c="__ko__"+Date.now(),d;d=function(a,b){var d=a[c];!d&&b&&(d=a[c]={});return d};return{get:function(a,b){var c=d(a,!1);return c&&c[b]},set:function(a,b,c){(a=d(a,c!==p))&&(a[b]=c)},Nb:function(a,b,c){a=d(a,!0);return a[b]||(a[b]=c)},clear:function(a){return a[c]?(delete a[c],!0):!1},ea:function(){return a++ +c}}};a.b("utils.domData",a.a.h);a.b("utils.domData.clear",a.a.h.clear); -a.a.M=new function(){function b(b,c){var d=a.a.h.get(b,e);d===p&&c&&(d=[],a.a.h.set(b,e,d));return d}function c(c){var e=b(c,!1);if(e)for(var e=e.slice(0),h=0;h",""],d=[3,"","
"],e=[1,""],f={thead:c,tbody:c,tfoot:c,tr:[2,"","
"],td:d,th:d,option:e,optgroup:e};a.a.Ua=function(c,d){var e=d;e||(e=E);var h=e.parentWindow||e.defaultView||D,m=a.a.$b(c).toLowerCase(),e=e.createElement("div"),n;n=(m=m.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&& -f[m[1]]||b;m=n[0];n="ignored
"+n[1]+c+n[2]+"
";for("function"==typeof h.innerShiv?e.append(h.innerShiv(n)):e.innerHTML=n;m--;)e=e.lastChild;return a.a.ya(e.lastChild.childNodes)};a.a.vd=function(b,c){var d=a.a.Ua(b,c);return d.length&&d[0].parentElement||a.a.Rb(d)};a.a.Zb=function(b,c){a.a.Mb(b);c=a.a.f(c);if(null!==c&&c!==p){"string"!=typeof c&&(c=c.toString());for(var d=a.a.Ua(c,b.ownerDocument),e=0;eb){if(5E3<=++c){g=e;a.a.wc(Error("'Too much recursion' after processing "+c+" task groups."));break}b=e}try{h()}catch(f){a.a.wc(f)}}}function c(){b();g=e=d.length=0}var d=[],e=0,f=1,g=0;return{scheduler:function(a){var b=E.createElement("div");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle("foo")}}(c), -vb:function(b){e||a.la.scheduler(c);d[e++]=b;return f++},cancel:function(a){a=a-(f-e);a>=g&&ad[0]?m+d[0]:d[0]),m);for(var m=1===n?m:Math.min(c+(d[1]|| -0),m),n=c+n-2,g=Math.max(m,n),R=[],S=[],p=2;c=q){c.push(k&&w.length?{key:k,value:w.join("")}:{unknown:k||w.join("")});k=q=0;w=[];continue}}else if(58===t){if(!q&&!k&&1===w.length){k=w.pop();continue}}else if(47===t&&1a.length?!1:a.substring(0,b.length)===b},fd:function(a,b){return b.contains(1!==a.nodeType?a.parentNode:a)}, +Mb:function(b){return a.a.fd(b,b.ownerDocument.documentElement)},Vc:function(b){return!!a.a.Gb(b,a.a.Mb)},fa:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},sc:function(b){return a.onError?function(){try{return b.apply(this,arguments)}catch(c){throw a.onError&&a.onError(c),c;}}:b},setTimeout:function(b,c){return setTimeout(a.a.sc(b),c)},xc:function(b){setTimeout(function(){a.onError&&a.onError(b);throw b;},0)},H:function(b,c,d){d=a.a.sc(d);if(!a.options.useOnlyNativeEvents&&jQuery)jQuery(b).on(c, +d);else b.addEventListener(c,d,!1)},Ab:function(a,b){if(!a||!a.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},f:function(b){return a.U(b)?b():b},Wb:function(b){return a.U(b)?b.w():b},zb:function(a,b,c){if(b){var d=c?"add":"remove";b.split(/\s+/).forEach(function(b){a.classList[d](b)})}},xb:function(b,c){var d=a.a.f(c);if(null===d||d===p)d="";var e=a.g.firstChild(b);!e||3!=e.nodeType||a.g.nextSibling(e)?a.g.sa(b,[b.ownerDocument.createTextNode(d)]): +e.data=d},ya:function(a){return Array.from(a)}}}();a.b("utils",a.a);a.b("utils.arrayForEach",a.a.K);a.b("utils.arrayFirst",a.a.Gb);a.b("utils.arrayFilter",a.a.fb);a.b("utils.arrayIndexOf",a.a.O);a.b("utils.arrayPushAll",a.a.Hb);a.b("utils.arrayRemoveItem",a.a.Ia);a.b("utils.cloneNodes",a.a.La);a.b("utils.extend",a.a.extend);a.b("utils.objectMap",a.a.za);a.b("utils.peekObservable",a.a.Wb);a.b("utils.registerEventHandler",a.a.H);a.b("utils.stringifyJson",a.a.Gd);a.b("utils.toggleDomNodeCssClass",a.a.zb); +a.b("utils.triggerEvent",a.a.Ab);a.b("utils.unwrapObservable",a.a.f);a.b("utils.objectForEach",a.a.N);a.b("utils.setTextContent",a.a.xb);a.b("unwrap",a.a.f);a.a.h=new function(){var a=0,c="__ko__"+Date.now(),d;d=function(a,b){var d=a[c];!d&&b&&(d=a[c]={});return d};return{get:function(a,b){var c=d(a,!1);return c&&c[b]},set:function(a,b,c){(a=d(a,c!==p))&&(a[b]=c)},Ob:function(a,b,c){a=d(a,!0);return a[b]||(a[b]=c)},clear:function(a){return a[c]?(delete a[c],!0):!1},ea:function(){return a++ +c}}}; +a.b("utils.domData",a.a.h);a.b("utils.domData.clear",a.a.h.clear);a.a.M=new function(){function b(b,c){var d=a.a.h.get(b,e);d===p&&c&&(d=[],a.a.h.set(b,e,d));return d}function c(c){var e=b(c,!1);if(e)for(var e=e.slice(0),h=0;h",""],d=[3,"","
"],e=[1,""],f={thead:c,tbody:c,tfoot:c,tr:[2,"","
"],td:d,th:d,option:e,optgroup:e};a.a.Ua=function(c,d){var e=d;e||(e=E);var h= +e.parentWindow||e.defaultView||D,m=a.a.ac(c).toLowerCase(),e=e.createElement("div"),n;n=(m=m.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&f[m[1]]||b;m=n[0];n="ignored
"+n[1]+c+n[2]+"
";for("function"==typeof h.innerShiv?e.append(h.innerShiv(n)):e.innerHTML=n;m--;)e=e.lastChild;return a.a.ya(e.lastChild.childNodes)};a.a.wd=function(b,c){var d=a.a.Ua(b,c);return d.length&&d[0].parentElement||a.a.Sb(d)};a.a.$b=function(b,c){a.a.Nb(b);c=a.a.f(c);if(null!==c&&c!==p){"string"!=typeof c&& +(c=c.toString());for(var d=a.a.Ua(c,b.ownerDocument),e=0;eb){if(5E3<=++c){g=e;a.a.xc(Error("'Too much recursion' after processing "+c+" task groups."));break}b=e}try{h()}catch(f){a.a.xc(f)}}}function c(){b();g=e=d.length=0}var d=[],e=0,f=1,g=0;return{scheduler:function(a){var b= +E.createElement("div");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle("foo")}}(c),vb:function(b){e||a.la.scheduler(c);d[e++]=b;return f++},cancel:function(a){a=a-(f-e);a>=g&&ad[0]?m+d[0]:d[0]),m);for(var m=1===n?m:Math.min(c+(d[1]||0),m),n=c+n-2,g=Math.max(m,n),P=[],Q=[],p=2;c=q){c.push(k&&w.length?{key:k,value:w.join("")}:{unknown:k||w.join("")});k=q=0;w=[];continue}}else if(58===t){if(!q&&!k&&1===w.length){k=w.pop();continue}}else if(47=== +t&&1arguments.length){if(b=E.body,!b)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!b||1!==b.nodeType&& -8!==b.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");h(w(a,c),b)};a.ad=function(b){if(b&&(1===b.nodeType||8===b.nodeType))return a.zd(b)};a.uc=function(b){return(b=a.ad(b))?b.$data:p};a.b("bindingHandlers",a.c);a.b("bindingEvent",a.i);a.b("bindingEvent.subscribe",a.i.subscribe);a.b("bindingEvent.startPossiblyAsyncContentBinding",a.i.yb);a.b("applyBindings",a.nc);a.b("applyBindingsToDescendants",a.Ha);a.b("applyBindingAccessorsToNode", -a.eb);a.b("applyBindingsToNode",a.Vc);a.b("dataFor",a.uc)})();(function(b){function c(c,e){var h=Object.prototype.hasOwnProperty.call(f,c)?f[c]:b,m;h?h.subscribe(e):(h=f[c]=new a.R,h.subscribe(e),d(c,function(b,d){var e=!(!d||!d.synchronous);g[c]={definition:b,od:e};delete f[c];m||e?h.notifySubscribers(b):a.la.vb(function(){h.notifySubscribers(b)})}),m=!0)}function d(a,b){e("getConfig",[a],function(c){c?e("loadComponent",[a,c],function(a){b(a,c)}):b(null,null)})}function e(c,d,h,f){f||(f=a.l.loaders.slice(0)); -var n=f.shift();if(n){var g=n[c];if(g){var q=!1;if(g.apply(n,d.concat(function(a){q?h(null):null!==a?h(a):e(c,d,h,f)}))!==b&&(q=!0,!n.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else e(c,d,h,f)}else h(null)}var f={},g={};a.l={get:function(d,e){var h=Object.prototype.hasOwnProperty.call(g,d)?g[d]:b;h?h.od?a.u.C(function(){e(h.definition)}):a.la.vb(function(){e(h.definition)}):c(d,e)},sc:function(a){delete g[a]}, -gc:e};a.l.loaders=[];a.b("components",a.l);a.b("components.get",a.l.get);a.b("components.clearCachedDefinition",a.l.sc)})();(function(){function b(b,c,d,e){function g(){0===--u&&e(k)}var k={},u=2,t=d.template;d=d.viewModel;t?f(c,t,function(c){a.l.gc("loadTemplate",[b,c],function(a){k.template=a;g()})}):g();d?f(c,d,function(c){a.l.gc("loadViewModel",[b,c],function(a){k[l]=a;g()})}):g()}function c(a,b,d){if("function"===typeof b)d(function(a){return new b(a)});else if("function"===typeof b[l])d(b[l]); -else if("instance"in b){var e=b.instance;d(function(){return e})}else"viewModel"in b?c(a,b.viewModel,d):a("Unknown viewModel value: "+b)}function d(b){if("template"==a.a.fa(b)&&e(b.content))return a.a.La(b.content.childNodes);throw"Template Source Element not a