muu

DEPRECATED lightweight JS framework
git clone https://git.ce9e.org/muu.git

commit
7189f6cce6c93506f99d2cf330f079a5070af181
parent
089f6d8fee26b37c7c295863e915759e78c18979
Author
Tobias Bengfort <tobias.bengfort@gmx.net>
Date
2015-08-31 07:23
build

Diffstat

M dist/muu-core.js 10 +++++-----
M dist/muu-core.min.js 18 +++++++++---------
M dist/muu.js 55 +++++++++++++++++++++++++++++--------------------------
M dist/muu.min.js 38 +++++++++++++++++++-------------------

4 files changed, 62 insertions, 59 deletions


diff --git a/dist/muu-core.js b/dist/muu-core.js

@@ -397,13 +397,13 @@
  397   397              * @param {string} value
  398   398              */
  399   399             $.setRadio = function(options, value) {
  400    -1                 for (var i = 0; i < options.length; i++) {
  401    -1                     if (options[i].value === value) {
  402    -1                         options[i].checked = true;
   -1   400                 _.forEach(options, function(option) {
   -1   401                     if (option.value === value) {
   -1   402                         option.checked = true;
  403   403                     } else {
  404    -1                         options[i].checked = false;
   -1   404                         option.checked = false;
  405   405                     }
  406    -1                 }
   -1   406                 });
  407   407             };
  408   408 
  409   409             return $;

diff --git a/dist/muu-core.min.js b/dist/muu-core.min.js

@@ -1,11 +1,11 @@
    1     1 (function(q,p,m){(function(l){"function"===typeof define&&define.amd?define("muu",["lodash"],l):q.muu=l(q._)})(function(l){var n={};n["muu-js-helpers"]={instance:l};var t=function(d,k){for(var g=[],a=0;a<d.length;a++)g.push(k(d[a]));return g};l=function(d,k,g){n[d]={deps:k,factory:g}};var r=function(d){if(!n[d])return m;n[d].instance||(n[d].instance=n[d].factory.apply(m,t(n[d].deps,r)));return n[d].instance};l("muu-directive",["muu-dom-helpers","muu-js-helpers","muu-update-dom"],function(d,k,g){return function(a,
    2    -1 c,b){var h=this;a.innerHTML="";var e=function(f){var e=f.currentTarget,b="data-on"+f.type;e.hasAttribute(b)&&(e=e.getAttribute(b),f=d.createEvent("muu-"+e,m,m,f),a.dispatchEvent(f))};this.update=function(f){var s=p.createElement("div");s.innerHTML=b.renderer(c,f);g(a,s);k.forEach(["keydown","keyup","click","change","search"],function(a){k.forEach(h.querySelectorAll("[data-on"+a+"]"),function(f){f.addEventListener(a,e,!1)})});var u=d.createEvent("muu-parent-update");f=this.querySelectorAll("muu.muu-initialised");
    3    -1 k.forEach(f,function(a){a.dispatchEvent(u)});b.linkAll(h)};this.querySelectorAll=function(f){var e=a.querySelectorAll(f),b=a.querySelectorAll(".muu-isolate"),b=k.union(k.map(b,function(a){return a.querySelectorAll(f)}));return k.difference(e,b)};this.querySelector=function(a){a=h.querySelectorAll(a);if(0<a.length)return a[0]};this.getModel=function(a,e){if(a===m){var b={};k.forEach(h.querySelectorAll("[name]"),function(a){b[a.name]=h.getModel(a.name)});return b}var c=h.querySelector("[name="+a+"]");
    4    -1 return c===m?e:"number"===c.getAttribute("type")?parseFloat(c.value,10):"checkbox"===c.getAttribute("type")?c.checked:"radio"===c.getAttribute("type")?(c=h.querySelectorAll("[name="+a+"]"),d.getRadio(c)||e):c.value};this.setModel=function(a,e){var b=h.querySelector("[name="+a+"]");"checkbox"===b.getAttribute("type")?b.checked=e:"radio"===b.getAttribute("type")?(b=h.querySelectorAll("[name="+a+"]"),d.setRadio(b,e)):b.value=e}}});l("muu-dom-helpers",["muu-js-helpers"],function(d){var k={"&":"&amp;",
    5    -1 "<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},g={DELAY:1E3,escapeHtml:function(a){return String(a).replace(/[&<>"'\/]/g,function(a){return k[a]})},createEvent:function(a,c,b,d){if("function"===typeof CustomEvent)return new CustomEvent(a,{detail:d,bubbles:c,cancelable:b});var e=p.createEvent("CustomEvent");e.initCustomEvent(a,c,b,d);return e},on:function(a,c,b){a.addEventListener(c,b,!1);return function(){a.removeEventListener(c,b,!1)}},ready:function(a){a=d.once(a);if("complete"===
    6    -1 p.readyState)return a(),function(){};var c=g.on(p,"DOMContentLoaded",a),b=g.on(q,"load",a);return function(){c();b()}},isDescendant:function(a,c){return!!a&&(a===c||g.isDescendant(a.parentNode,c))},destroy:function(a,c){var b;if(q.MutationObserver){var h=new MutationObserver(function(){g.isDescendant(a,p)||(c(),b())});h.observe(p,{childList:!0,subtree:!0});b=d.once(function(){h.disconnect();h=m})}else{var e=setInterval(function(){g.isDescendant(a,p)||(c(),b())},g.DELAY);b=function(){clearInterval(e)}}return b},
    7    -1 getRadio:function(a){for(var c=0;c<a.length;c++)if(a[c].checked)return a[c].value},setRadio:function(a,c){for(var b=0;b<a.length;b++)a[b].checked=a[b].value===c?!0:!1}};return g});l("muu",["muu-registry","muu-dom-helpers","muu-location"],function(d,k,g){var a={};a.Registry=d;a.$=k;a.$location=g;return a});l("muu-registry",["muu-template","muu-directive","muu-js-helpers","muu-dom-helpers"],function(d,k,g,a){return function(c){var b=this,h={};this.config=c||{};this.renderer=b.config.renderer||d;this.registerDirective=
    8    -1 function(a,c,d){h[a]={template:c,link:d};return b};this.registerModule=function(a){a(b);return b};this.link=function(e,c){c===m&&(c=e.getAttribute("type"));if(!h.hasOwnProperty(c))throw Error("Unknown directive type: "+c);var d=h[c].link,g=new k(e,h[c].template,b),d=d(g,e);e.classList.add("muu-isolate");e.classList.add("muu-initialised");b.config.debug&&(e.directive=g);d!==m&&a.destroy(e,d);return g};this.linkAll=function(a){a=g.filter(a.querySelectorAll("muu"),function(a){return!a.classList.contains("muu-initialised")});
    9    -1 return g.map(a,function(a){return b.link(a)})}}});l("muu-update-dom",["muu-js-helpers"],function(d){var k=function(a,c){var b=d.map(a.attributes,function(a){return a.name}),g=d.map(c.attributes,function(a){return a.name});d.forEach(b,function(b){c.hasAttribute(b)||"__IE8__"===b.substr(0,7)||a.removeAttribute(b)});d.forEach(g,function(b){a.getAttribute(b)!==c.getAttribute(b)&&a.setAttribute(b,c.getAttribute(b))})},g=function(a,c){for(var b=a.childNodes.length,h=c.childNodes.length,e=h;e<b;e++)a.removeChild(a.childNodes[h]);
   10    -1 for(e=b;e<h;e++)a.appendChild(c.childNodes[b]);for(e=0;e<b&&e<h;e++){var f=a.childNodes[e],l=c.childNodes[e];if(f.nodeType===l.nodeType&&f.nodeName===l.nodeName&&f.type===l.type){if(1===f.nodeType){var m=d.filter(f.classList,function(a){return 0===a.lastIndexOf("muu-",0)});k(f,l);d.forEach(m,function(a){f.classList.add(a)})}else 3===f.nodeType&&(f.nodeValue=l.nodeValue);3===f.nodeType||f.classList.contains("muu-isolate")||g(f,l)}else f.parentNode.replaceChild(l,f)}};return g});return r("muu")})})(window,
   -1     2 b,e){var h=this;a.innerHTML="";var c=function(f){var c=f.currentTarget,b="data-on"+f.type;c.hasAttribute(b)&&(c=c.getAttribute(b),f=d.createEvent("muu-"+c,m,m,f),a.dispatchEvent(f))};this.update=function(f){var s=p.createElement("div");s.innerHTML=e.renderer(b,f);g(a,s);k.forEach(["keydown","keyup","click","change","search"],function(a){k.forEach(h.querySelectorAll("[data-on"+a+"]"),function(f){f.addEventListener(a,c,!1)})});var u=d.createEvent("muu-parent-update");f=this.querySelectorAll("muu.muu-initialised");
   -1     3 k.forEach(f,function(a){a.dispatchEvent(u)});e.linkAll(h)};this.querySelectorAll=function(f){var c=a.querySelectorAll(f),b=a.querySelectorAll(".muu-isolate"),b=k.union(k.map(b,function(a){return a.querySelectorAll(f)}));return k.difference(c,b)};this.querySelector=function(a){a=h.querySelectorAll(a);if(0<a.length)return a[0]};this.getModel=function(a,c){if(a===m){var b={};k.forEach(h.querySelectorAll("[name]"),function(a){b[a.name]=h.getModel(a.name)});return b}var e=h.querySelector("[name="+a+"]");
   -1     4 return e===m?c:"number"===e.getAttribute("type")?parseFloat(e.value,10):"checkbox"===e.getAttribute("type")?e.checked:"radio"===e.getAttribute("type")?(e=h.querySelectorAll("[name="+a+"]"),d.getRadio(e)||c):e.value};this.setModel=function(a,c){var b=h.querySelector("[name="+a+"]");"checkbox"===b.getAttribute("type")?b.checked=c:"radio"===b.getAttribute("type")?(b=h.querySelectorAll("[name="+a+"]"),d.setRadio(b,c)):b.value=c}}});l("muu-dom-helpers",["muu-js-helpers"],function(d){var k={"&":"&amp;",
   -1     5 "<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},g={DELAY:1E3,escapeHtml:function(a){return String(a).replace(/[&<>"'\/]/g,function(a){return k[a]})},createEvent:function(a,b,e,d){if("function"===typeof CustomEvent)return new CustomEvent(a,{detail:d,bubbles:b,cancelable:e});var c=p.createEvent("CustomEvent");c.initCustomEvent(a,b,e,d);return c},on:function(a,b,e){a.addEventListener(b,e,!1);return function(){a.removeEventListener(b,e,!1)}},ready:function(a){a=d.once(a);if("complete"===
   -1     6 p.readyState)return a(),function(){};var b=g.on(p,"DOMContentLoaded",a),e=g.on(q,"load",a);return function(){b();e()}},isDescendant:function(a,b){return!!a&&(a===b||g.isDescendant(a.parentNode,b))},destroy:function(a,b){var e;if(q.MutationObserver){var h=new MutationObserver(function(){g.isDescendant(a,p)||(b(),e())});h.observe(p,{childList:!0,subtree:!0});e=d.once(function(){h.disconnect();h=m})}else{var c=setInterval(function(){g.isDescendant(a,p)||(b(),e())},g.DELAY);e=function(){clearInterval(c)}}return e},
   -1     7 getRadio:function(a){for(var b=0;b<a.length;b++)if(a[b].checked)return a[b].value},setRadio:function(a,b){d.forEach(a,function(a){a.checked=a.value===b?!0:!1})}};return g});l("muu",["muu-registry","muu-dom-helpers","muu-location"],function(d,k,g){var a={};a.Registry=d;a.$=k;a.$location=g;return a});l("muu-registry",["muu-template","muu-directive","muu-js-helpers","muu-dom-helpers"],function(d,k,g,a){return function(b){var e=this,h={};this.config=b||{};this.renderer=e.config.renderer||d;this.registerDirective=
   -1     8 function(a,b,d){h[a]={template:b,link:d};return e};this.registerModule=function(a){a(e);return e};this.link=function(c,b){b===m&&(b=c.getAttribute("type"));if(!h.hasOwnProperty(b))throw Error("Unknown directive type: "+b);var d=h[b].link,g=new k(c,h[b].template,e),d=d(g,c);c.classList.add("muu-isolate");c.classList.add("muu-initialised");e.config.debug&&(c.directive=g);d!==m&&a.destroy(c,d);return g};this.linkAll=function(a){a=g.filter(a.querySelectorAll("muu"),function(a){return!a.classList.contains("muu-initialised")});
   -1     9 return g.map(a,function(a){return e.link(a)})}}});l("muu-update-dom",["muu-js-helpers"],function(d){var k=function(a,b){var e=d.map(a.attributes,function(a){return a.name}),g=d.map(b.attributes,function(a){return a.name});d.forEach(e,function(c){b.hasAttribute(c)||"__IE8__"===c.substr(0,7)||a.removeAttribute(c)});d.forEach(g,function(c){a.getAttribute(c)!==b.getAttribute(c)&&a.setAttribute(c,b.getAttribute(c))})},g=function(a,b){for(var e=a.childNodes.length,h=b.childNodes.length,c=h;c<e;c++)a.removeChild(a.childNodes[h]);
   -1    10 for(c=e;c<h;c++)a.appendChild(b.childNodes[e]);for(c=0;c<e&&c<h;c++){var f=a.childNodes[c],l=b.childNodes[c];if(f.nodeType===l.nodeType&&f.nodeName===l.nodeName&&f.type===l.type){if(1===f.nodeType){var m=d.filter(f.classList,function(a){return 0===a.lastIndexOf("muu-",0)});k(f,l);d.forEach(m,function(a){f.classList.add(a)})}else 3===f.nodeType&&(f.nodeValue=l.nodeValue);3===f.nodeType||f.classList.contains("muu-isolate")||g(f,l)}else f.parentNode.replaceChild(l,f)}};return g});return r("muu")})})(window,
   11    11 document,void 0);

diff --git a/dist/muu.js b/dist/muu.js

@@ -397,13 +397,13 @@
  397   397              * @param {string} value
  398   398              */
  399   399             $.setRadio = function(options, value) {
  400    -1                 for (var i = 0; i < options.length; i++) {
  401    -1                     if (options[i].value === value) {
  402    -1                         options[i].checked = true;
   -1   400                 _.forEach(options, function(option) {
   -1   401                     if (option.value === value) {
   -1   402                         option.checked = true;
  403   403                     } else {
  404    -1                         options[i].checked = false;
   -1   404                         option.checked = false;
  405   405                     }
  406    -1                 }
   -1   406                 });
  407   407             };
  408   408 
  409   409             return $;
@@ -482,7 +482,8 @@
  482   482                     return array.indexOf(value);
  483   483                 }
  484   484 
  485    -1                 for (var i = 0; i < array.length; i++) {
   -1   485                 var l = array.length;
   -1   486                 for (var i = 0; i < l; i++) {
  486   487                     if (array[i] === value) {
  487   488                         return i;
  488   489                     }
@@ -491,16 +492,18 @@
  491   492             };
  492   493 
  493   494             /**
  494    -1              * @param {Array} array
  495    -1              * @param {Function} fn
   -1   495              * @template T
   -1   496              * @param {Array.<T>} array
   -1   497              * @param {function(T, number, Array.<T>)} fn
  496   498              */
  497   499             _.forEach = function(array, fn) {
  498   500                 if ('forEach' in array) {
  499   501                     return array.forEach(fn);
  500   502                 }
  501   503 
  502    -1                 for (var i = 0; i < array.length; i++) {
  503    -1                     fn(array[i]);
   -1   504                 var l = array.length;
   -1   505                 for (var i = 0; i < l; i++) {
   -1   506                     fn(array[i], i, array);
  504   507                 }
  505   508             };
  506   509 
@@ -516,9 +519,9 @@
  516   519                 }
  517   520 
  518   521                 var results = [];
  519    -1                 for (var i = 0; i < array.length; i++) {
  520    -1                     results.push(fn(array[i]));
  521    -1                 }
   -1   522                 _.forEach(array, function(item) {
   -1   523                     results.push(fn(item));
   -1   524                 });
  522   525                 return results;
  523   526             };
  524   527 
@@ -534,11 +537,11 @@
  534   537                 }
  535   538 
  536   539                 var results = [];
  537    -1                 for (var i = 0; i < array.length; i++) {
  538    -1                     if (fn(array[i])) {
  539    -1                         results.push(array[i]);
   -1   540                 _.forEach(array, function(item) {
   -1   541                     if (fn(item)) {
   -1   542                         results.push(item);
  540   543                     }
  541    -1                 }
   -1   544                 });
  542   545                 return results;
  543   546             };
  544   547 
@@ -549,13 +552,13 @@
  549   552              */
  550   553             _.union = function(arrays) {
  551   554                 var results = [];
  552    -1                 for (var i = 0; i < arrays.length; i++) {
  553    -1                     for (var j = 0; j < arrays[i].length; j++) {
  554    -1                         if (_.indexOf(results, arrays[i][j]) === -1) {
  555    -1                             results.push(arrays[i][j]);
   -1   555                 _.forEach(arrays, function(array) {
   -1   556                     _.forEach(array, function(item) {
   -1   557                         if (_.indexOf(results, item) === -1) {
   -1   558                             results.push(item);
  556   559                         }
  557    -1                     }
  558    -1                 }
   -1   560                     });
   -1   561                 });
  559   562                 return results;
  560   563             };
  561   564 
@@ -1092,9 +1095,9 @@
 1092  1095                             }
 1093  1096                         } else {
 1094  1097                             if (_.isArray(value)) {
 1095    -1                                 for (var i = 0; i < value.length; i++) {
 1096    -1                                     result += inner.render(value[i]);
 1097    -1                                 }
   -1  1098                                 _.forEach(value, function(item) {
   -1  1099                                     result += inner.render(item);
   -1  1100                                 });
 1098  1101                             } else if (value) {
 1099  1102                                 result += inner.render(data);
 1100  1103                             }

diff --git a/dist/muu.min.js b/dist/muu.min.js

@@ -1,19 +1,19 @@
    1    -1 (function(r,p,h){(function(h){"function"===typeof define&&define.amd?define("muu",[],h):r.muu=h(r._)})(function(m){var n={};n["muu-js-helpers"]={instance:m};var v=function(d,b){for(var e=[],a=0;a<d.length;a++)e.push(b(d[a]));return e};m=function(d,b,e){n[d]={deps:b,factory:e}};var t=function(d){if(!n[d])return h;n[d].instance||(n[d].instance=n[d].factory.apply(h,v(n[d].deps,t)));return n[d].instance};m("muu-directive",["muu-dom-helpers","muu-js-helpers","muu-update-dom"],function(d,b,e){return function(a,
    2    -1 c,g){var f=this;a.innerHTML="";var k=function(c){var b=c.currentTarget,k="data-on"+c.type;b.hasAttribute(k)&&(b=b.getAttribute(k),c=d.createEvent("muu-"+b,h,h,c),a.dispatchEvent(c))};this.update=function(l){var u=p.createElement("div");u.innerHTML=g.renderer(c,l);e(a,u);b.forEach(["keydown","keyup","click","change","search"],function(a){b.forEach(f.querySelectorAll("[data-on"+a+"]"),function(c){c.addEventListener(a,k,!1)})});var s=d.createEvent("muu-parent-update");l=this.querySelectorAll("muu.muu-initialised");
    3    -1 b.forEach(l,function(a){a.dispatchEvent(s)});g.linkAll(f)};this.querySelectorAll=function(c){var k=a.querySelectorAll(c),d=a.querySelectorAll(".muu-isolate"),d=b.union(b.map(d,function(a){return a.querySelectorAll(c)}));return b.difference(k,d)};this.querySelector=function(a){a=f.querySelectorAll(a);if(0<a.length)return a[0]};this.getModel=function(a,c){if(a===h){var k={};b.forEach(f.querySelectorAll("[name]"),function(a){k[a.name]=f.getModel(a.name)});return k}var e=f.querySelector("[name="+a+"]");
    4    -1 return e===h?c:"number"===e.getAttribute("type")?parseFloat(e.value,10):"checkbox"===e.getAttribute("type")?e.checked:"radio"===e.getAttribute("type")?(e=f.querySelectorAll("[name="+a+"]"),d.getRadio(e)||c):e.value};this.setModel=function(a,c){var b=f.querySelector("[name="+a+"]");"checkbox"===b.getAttribute("type")?b.checked=c:"radio"===b.getAttribute("type")?(b=f.querySelectorAll("[name="+a+"]"),d.setRadio(b,c)):b.value=c}}});m("muu-dom-helpers",["muu-js-helpers"],function(d){var b={"&":"&amp;",
    5    -1 "<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},e={DELAY:1E3,escapeHtml:function(a){return String(a).replace(/[&<>"'\/]/g,function(a){return b[a]})},createEvent:function(a,c,b,e){if("function"===typeof CustomEvent)return new CustomEvent(a,{detail:e,bubbles:c,cancelable:b});var k=p.createEvent("CustomEvent");k.initCustomEvent(a,c,b,e);return k},on:function(a,c,b){a.addEventListener(c,b,!1);return function(){a.removeEventListener(c,b,!1)}},ready:function(a){a=d.once(a);if("complete"===
    6    -1 p.readyState)return a(),function(){};var c=e.on(p,"DOMContentLoaded",a),b=e.on(r,"load",a);return function(){c();b()}},isDescendant:function(a,c){return!!a&&(a===c||e.isDescendant(a.parentNode,c))},destroy:function(a,c){var b;if(r.MutationObserver){var f=new MutationObserver(function(){e.isDescendant(a,p)||(c(),b())});f.observe(p,{childList:!0,subtree:!0});b=d.once(function(){f.disconnect();f=h})}else{var k=setInterval(function(){e.isDescendant(a,p)||(c(),b())},e.DELAY);b=function(){clearInterval(k)}}return b},
    7    -1 getRadio:function(a){for(var c=0;c<a.length;c++)if(a[c].checked)return a[c].value},setRadio:function(a,c){for(var b=0;b<a.length;b++)a[b].checked=a[b].value===c?!0:!1}};return e});m("muu-js-helpers",[],function(){var d={isString:function(b){return"string"===typeof b||"[object String]"===Object.prototype.toString.call(b)}};d.isArray=Array.isArray;d.isFunction=function(b){return"function"===typeof b};d.once=function(b){var e,a=!1;return function(){a||(e=b.apply(this,arguments),a=!0);return e}};d.indexOf=
    8    -1 function(b,e){if("indexOf"in b)return b.indexOf(e);for(var a=0;a<b.length;a++)if(b[a]===e)return a;return-1};d.forEach=function(b,e){if("forEach"in b)return b.forEach(e);for(var a=0;a<b.length;a++)e(b[a])};d.map=function(b,e){if("map"in b)return b.map(e);for(var a=[],c=0;c<b.length;c++)a.push(e(b[c]));return a};d.filter=function(b,e){if("filter"in b)return b.filter(e);for(var a=[],c=0;c<b.length;c++)e(b[c])&&a.push(b[c]);return a};d.union=function(b){for(var e=[],a=0;a<b.length;a++)for(var c=0;c<
    9    -1 b[a].length;c++)-1===d.indexOf(e,b[a][c])&&e.push(b[a][c]);return e};d.difference=function(b,e){for(var a=[],c=0;c<b.length;c++)-1===d.indexOf(e,b[c])&&a.push(b[c]);return a};d.flatten=function(b){var e=[];d.forEach(b,function(a){d.isArray(a)?e=e.concat(d.flatten(a)):e.push(a)});return e};return d});m("muu-location",["muu-search"],function(d){var b={absUrl:function(){return location.href},url:function(a,c){if(a===h)return location.pathname+location.search+location.hash;c?history.replaceState(null,
   10    -1 null,a):history.pushState(null,null,a);return b},protocol:function(){return location.protocol},host:function(){return location.host},port:function(){return location.port},path:function(a,c){if(a===h)return location.pathname;b.url(a+location.search+location.hash,c);return b}},e=function(a,c){if(a===h)return location.search;a&&"?"!==a[0]&&(a="?"+a);1===a.length&&(a="");b.url(location.pathname+a+location.hash,c);return b};b.search=function(a,b,g){if(a!==h){if(b!==h){var f=d.parse(e());f[a]=b;return e(d.unparse(f),
   11    -1 g)}return e(d.unparse(a),g)}return d.parse(e())};b.hash=function(a,c){if(a===h)return location.hash?location.hash.slice(1):"";b.url(location.pathname+location.search+"#"+a,c);return b};b.addEventListener=function(a,c){"change"===a&&r.addEventListener("popstate",c,!1);return b};b.removeEventListener=function(a,c){"change"===a&&r.removeEventListener("popstate",c,!1);return b};return b});m("muu-registry",["muu-template","muu-directive","muu-js-helpers","muu-dom-helpers"],function(d,b,e,a){return function(c){var g=
   12    -1 this,f={};this.config=c||{};this.renderer=g.config.renderer||d;this.registerDirective=function(a,b,c){f[a]={template:b,link:c};return g};this.registerModule=function(a){a(g);return g};this.link=function(c,e){e===h&&(e=c.getAttribute("type"));if(!f.hasOwnProperty(e))throw Error("Unknown directive type: "+e);var d=f[e].link,s=new b(c,f[e].template,g),d=d(s,c);c.classList.add("muu-isolate");c.classList.add("muu-initialised");g.config.debug&&(c.directive=s);d!==h&&a.destroy(c,d);return s};this.linkAll=
   13    -1 function(a){a=e.filter(a.querySelectorAll("muu"),function(a){return!a.classList.contains("muu-initialised")});return e.map(a,function(a){return g.link(a)})}}});m("muu-search",["muu-js-helpers"],function(d){var b={parse:function(a){var c={},b=function(a,b){c.hasOwnProperty(a)?d.isArray(c[a])?c[a].push(b):c[a]=[c[a],b]:c[a]=b};d.forEach(a.substring(1).split("&"),function(a){a=d.map(a.split("="),decodeURIComponent);2===a.length?b(a[0],a[1]):a[0]&&b(a[0],!0)});return c}},e=function(a,b){return b===h||
   14    -1 null===b||!1===b?[]:d.isArray(b)?d.flatten(d.map(b,function(b){return e(a,b)})):!0===b?[encodeURIComponent(a)]:[encodeURIComponent(a)+"="+encodeURIComponent(b)]};b.unparse=function(a){if(d.isString(a))return a;var b=[],g;for(g in a)a.hasOwnProperty(g)&&(b=b.concat(e(g,a[g])));return 0<b.length?"?"+b.join("&"):""};return b});m("muu-template",["muu-js-helpers","muu-dom-helpers"],function(d,b){var e=function(a,b){return"this"===a?b:b[a]},a=function(a){if(-1===a.indexOf(":"))return function(c){return b.escapeHtml(e(a,
   15    -1 c)||"")};var c=d.map(a.split(","),function(a){var b=a.split(":");a=b[0].trim();b=b.slice(1).join(":").trim();return[a,b]});return function(a){var k=d.map(d.filter(c,function(b){return e(b[1],a)}),function(a){return a[0]});return b.escapeHtml(k.join(" "))}},c=function(a,b,c){var f=g(b,a);return{render:function(b){var g=e(a,b),l="";if(c)g||(l+=f.render(b));else if(d.isArray(g))for(b=0;b<g.length;b++)l+=f.render(g[b]);else g&&(l+=f.render(b));return l},afterBlock:f.afterBlock}},g=function(b,e){var d=
   16    -1 b.indexOf("{{");if(-1===d){if(e===h)return{render:function(){return b},afterBlock:""};throw Error("unclosed loop: "+e);}var f=b.slice(0,d),q=b.slice(d),m=q.indexOf("}}");if(-1===m)throw Error("unclosed tag: "+q);var d=q.slice(2,m),q=q.slice(m+2),m=!0,n={render:function(){return""},afterBlock:q};if(0===d.lastIndexOf("#",0))n=c(d.substr(1),q);else if(0===d.lastIndexOf("^",0))n=c(d.substr(1),q,!0);else if(0===d.lastIndexOf("/",0)){if(m=!1,d.substr(1)!==e)throw Error("unexpected closing loop: "+d);}else 0!==
   17    -1 d.lastIndexOf("!",0)&&(n.render=a(d));if(m){var p=g(n.afterBlock,e);return{render:function(a){return f+n.render(a)+p.render(a)},afterBlock:p.afterBlock}}return{render:function(a){return f+n.render(a)},afterBlock:n.afterBlock}},f={};return function(a,b){f[a]===h&&(f[a]=g(a));return f[a].render(b)}});m("muu-update-dom",["muu-js-helpers"],function(d){var b=function(a,b){var e=d.map(a.attributes,function(a){return a.name}),f=d.map(b.attributes,function(a){return a.name});d.forEach(e,function(d){b.hasAttribute(d)||
   18    -1 "__IE8__"===d.substr(0,7)||a.removeAttribute(d)});d.forEach(f,function(d){a.getAttribute(d)!==b.getAttribute(d)&&a.setAttribute(d,b.getAttribute(d))})},e=function(a,c){for(var g=a.childNodes.length,f=c.childNodes.length,k=f;k<g;k++)a.removeChild(a.childNodes[f]);for(k=g;k<f;k++)a.appendChild(c.childNodes[g]);for(k=0;k<g&&k<f;k++){var l=a.childNodes[k],h=c.childNodes[k];if(l.nodeType===h.nodeType&&l.nodeName===h.nodeName&&l.type===h.type){if(1===l.nodeType){var m=d.filter(l.classList,function(a){return 0===
   19    -1 a.lastIndexOf("muu-",0)});b(l,h);d.forEach(m,function(a){l.classList.add(a)})}else 3===l.nodeType&&(l.nodeValue=h.nodeValue);3===l.nodeType||l.classList.contains("muu-isolate")||e(l,h)}else l.parentNode.replaceChild(h,l)}};return e});m("muu",["muu-registry","muu-dom-helpers","muu-location"],function(d,b,e){var a={};a.Registry=d;a.$=b;a.$location=e;return a});return t("muu")})})(window,document,void 0);
   -1     1 (function(r,p,g){(function(g){"function"===typeof define&&define.amd?define("muu",[],g):r.muu=g(r._)})(function(k){var m={};m["muu-js-helpers"]={instance:k};var v=function(d,c){for(var e=[],a=0;a<d.length;a++)e.push(c(d[a]));return e};k=function(d,c,e){m[d]={deps:c,factory:e}};var t=function(d){if(!m[d])return g;m[d].instance||(m[d].instance=m[d].factory.apply(g,v(m[d].deps,t)));return m[d].instance};k("muu-directive",["muu-dom-helpers","muu-js-helpers","muu-update-dom"],function(d,c,e){return function(a,
   -1     2 b,n){var f=this;a.innerHTML="";var h=function(b){var c=b.currentTarget,h="data-on"+b.type;c.hasAttribute(h)&&(c=c.getAttribute(h),b=d.createEvent("muu-"+c,g,g,b),a.dispatchEvent(b))};this.update=function(l){var u=p.createElement("div");u.innerHTML=n.renderer(b,l);e(a,u);c.forEach(["keydown","keyup","click","change","search"],function(a){c.forEach(f.querySelectorAll("[data-on"+a+"]"),function(b){b.addEventListener(a,h,!1)})});var s=d.createEvent("muu-parent-update");l=this.querySelectorAll("muu.muu-initialised");
   -1     3 c.forEach(l,function(a){a.dispatchEvent(s)});n.linkAll(f)};this.querySelectorAll=function(b){var h=a.querySelectorAll(b),d=a.querySelectorAll(".muu-isolate"),d=c.union(c.map(d,function(a){return a.querySelectorAll(b)}));return c.difference(h,d)};this.querySelector=function(a){a=f.querySelectorAll(a);if(0<a.length)return a[0]};this.getModel=function(a,b){if(a===g){var h={};c.forEach(f.querySelectorAll("[name]"),function(a){h[a.name]=f.getModel(a.name)});return h}var e=f.querySelector("[name="+a+"]");
   -1     4 return e===g?b:"number"===e.getAttribute("type")?parseFloat(e.value,10):"checkbox"===e.getAttribute("type")?e.checked:"radio"===e.getAttribute("type")?(e=f.querySelectorAll("[name="+a+"]"),d.getRadio(e)||b):e.value};this.setModel=function(a,b){var c=f.querySelector("[name="+a+"]");"checkbox"===c.getAttribute("type")?c.checked=b:"radio"===c.getAttribute("type")?(c=f.querySelectorAll("[name="+a+"]"),d.setRadio(c,b)):c.value=b}}});k("muu-dom-helpers",["muu-js-helpers"],function(d){var c={"&":"&amp;",
   -1     5 "<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},e={DELAY:1E3,escapeHtml:function(a){return String(a).replace(/[&<>"'\/]/g,function(a){return c[a]})},createEvent:function(a,b,c,d){if("function"===typeof CustomEvent)return new CustomEvent(a,{detail:d,bubbles:b,cancelable:c});var h=p.createEvent("CustomEvent");h.initCustomEvent(a,b,c,d);return h},on:function(a,b,c){a.addEventListener(b,c,!1);return function(){a.removeEventListener(b,c,!1)}},ready:function(a){a=d.once(a);if("complete"===
   -1     6 p.readyState)return a(),function(){};var b=e.on(p,"DOMContentLoaded",a),c=e.on(r,"load",a);return function(){b();c()}},isDescendant:function(a,b){return!!a&&(a===b||e.isDescendant(a.parentNode,b))},destroy:function(a,b){var c;if(r.MutationObserver){var f=new MutationObserver(function(){e.isDescendant(a,p)||(b(),c())});f.observe(p,{childList:!0,subtree:!0});c=d.once(function(){f.disconnect();f=g})}else{var h=setInterval(function(){e.isDescendant(a,p)||(b(),c())},e.DELAY);c=function(){clearInterval(h)}}return c},
   -1     7 getRadio:function(a){for(var b=0;b<a.length;b++)if(a[b].checked)return a[b].value},setRadio:function(a,b){d.forEach(a,function(a){a.checked=a.value===b?!0:!1})}};return e});k("muu-js-helpers",[],function(){var d={isString:function(c){return"string"===typeof c||"[object String]"===Object.prototype.toString.call(c)}};d.isArray=Array.isArray;d.isFunction=function(c){return"function"===typeof c};d.once=function(c){var d,a=!1;return function(){a||(d=c.apply(this,arguments),a=!0);return d}};d.indexOf=function(c,
   -1     8 d){if("indexOf"in c)return c.indexOf(d);for(var a=c.length,b=0;b<a;b++)if(c[b]===d)return b;return-1};d.forEach=function(c,d){if("forEach"in c)return c.forEach(d);for(var a=c.length,b=0;b<a;b++)d(c[b],b,c)};d.map=function(c,e){if("map"in c)return c.map(e);var a=[];d.forEach(c,function(b){a.push(e(b))});return a};d.filter=function(c,e){if("filter"in c)return c.filter(e);var a=[];d.forEach(c,function(b){e(b)&&a.push(b)});return a};d.union=function(c){var e=[];d.forEach(c,function(a){d.forEach(a,function(a){-1===
   -1     9 d.indexOf(e,a)&&e.push(a)})});return e};d.difference=function(c,e){for(var a=[],b=0;b<c.length;b++)-1===d.indexOf(e,c[b])&&a.push(c[b]);return a};d.flatten=function(c){var e=[];d.forEach(c,function(a){d.isArray(a)?e=e.concat(d.flatten(a)):e.push(a)});return e};return d});k("muu-location",["muu-search"],function(d){var c={absUrl:function(){return location.href},url:function(a,b){if(a===g)return location.pathname+location.search+location.hash;b?history.replaceState(null,null,a):history.pushState(null,
   -1    10 null,a);return c},protocol:function(){return location.protocol},host:function(){return location.host},port:function(){return location.port},path:function(a,b){if(a===g)return location.pathname;c.url(a+location.search+location.hash,b);return c}},e=function(a,b){if(a===g)return location.search;a&&"?"!==a[0]&&(a="?"+a);1===a.length&&(a="");c.url(location.pathname+a+location.hash,b);return c};c.search=function(a,b,c){if(a!==g){if(b!==g){var f=d.parse(e());f[a]=b;return e(d.unparse(f),c)}return e(d.unparse(a),
   -1    11 c)}return d.parse(e())};c.hash=function(a,b){if(a===g)return location.hash?location.hash.slice(1):"";c.url(location.pathname+location.search+"#"+a,b);return c};c.addEventListener=function(a,b){"change"===a&&r.addEventListener("popstate",b,!1);return c};c.removeEventListener=function(a,b){"change"===a&&r.removeEventListener("popstate",b,!1);return c};return c});k("muu-registry",["muu-template","muu-directive","muu-js-helpers","muu-dom-helpers"],function(d,c,e,a){return function(b){var n=this,f={};
   -1    12 this.config=b||{};this.renderer=n.config.renderer||d;this.registerDirective=function(a,b,c){f[a]={template:b,link:c};return n};this.registerModule=function(a){a(n);return n};this.link=function(b,d){d===g&&(d=b.getAttribute("type"));if(!f.hasOwnProperty(d))throw Error("Unknown directive type: "+d);var e=f[d].link,s=new c(b,f[d].template,n),e=e(s,b);b.classList.add("muu-isolate");b.classList.add("muu-initialised");n.config.debug&&(b.directive=s);e!==g&&a.destroy(b,e);return s};this.linkAll=function(a){a=
   -1    13 e.filter(a.querySelectorAll("muu"),function(a){return!a.classList.contains("muu-initialised")});return e.map(a,function(a){return n.link(a)})}}});k("muu-search",["muu-js-helpers"],function(d){var c={parse:function(a){var b={},c=function(a,c){b.hasOwnProperty(a)?d.isArray(b[a])?b[a].push(c):b[a]=[b[a],c]:b[a]=c};d.forEach(a.substring(1).split("&"),function(a){a=d.map(a.split("="),decodeURIComponent);2===a.length?c(a[0],a[1]):a[0]&&c(a[0],!0)});return b}},e=function(a,b){return b===g||null===b||!1===
   -1    14 b?[]:d.isArray(b)?d.flatten(d.map(b,function(b){return e(a,b)})):!0===b?[encodeURIComponent(a)]:[encodeURIComponent(a)+"="+encodeURIComponent(b)]};c.unparse=function(a){if(d.isString(a))return a;var b=[],c;for(c in a)a.hasOwnProperty(c)&&(b=b.concat(e(c,a[c])));return 0<b.length?"?"+b.join("&"):""};return c});k("muu-template",["muu-js-helpers","muu-dom-helpers"],function(d,c){var e=function(a,b){return"this"===a?b:b[a]},a=function(a){if(-1===a.indexOf(":"))return function(b){return c.escapeHtml(e(a,
   -1    15 b)||"")};var b=d.map(a.split(","),function(a){var b=a.split(":");a=b[0].trim();b=b.slice(1).join(":").trim();return[a,b]});return function(a){var h=d.map(d.filter(b,function(b){return e(b[1],a)}),function(a){return a[0]});return c.escapeHtml(h.join(" "))}},b=function(a,b,c){var f=n(b,a);return{render:function(b){var l=e(a,b),g="";c?l||(g+=f.render(b)):d.isArray(l)?d.forEach(l,function(a){g+=f.render(a)}):l&&(g+=f.render(b));return g},afterBlock:f.afterBlock}},n=function(c,d){var e=c.indexOf("{{");
   -1    16 if(-1===e){if(d===g)return{render:function(){return c},afterBlock:""};throw Error("unclosed loop: "+d);}var f=c.slice(0,e),q=c.slice(e),k=q.indexOf("}}");if(-1===k)throw Error("unclosed tag: "+q);var e=q.slice(2,k),q=q.slice(k+2),k=!0,m={render:function(){return""},afterBlock:q};if(0===e.lastIndexOf("#",0))m=b(e.substr(1),q);else if(0===e.lastIndexOf("^",0))m=b(e.substr(1),q,!0);else if(0===e.lastIndexOf("/",0)){if(k=!1,e.substr(1)!==d)throw Error("unexpected closing loop: "+e);}else 0!==e.lastIndexOf("!",
   -1    17 0)&&(m.render=a(e));if(k){var p=n(m.afterBlock,d);return{render:function(a){return f+m.render(a)+p.render(a)},afterBlock:p.afterBlock}}return{render:function(a){return f+m.render(a)},afterBlock:m.afterBlock}},f={};return function(a,b){f[a]===g&&(f[a]=n(a));return f[a].render(b)}});k("muu-update-dom",["muu-js-helpers"],function(d){var c=function(a,b){var c=d.map(a.attributes,function(a){return a.name}),e=d.map(b.attributes,function(a){return a.name});d.forEach(c,function(c){b.hasAttribute(c)||"__IE8__"===
   -1    18 c.substr(0,7)||a.removeAttribute(c)});d.forEach(e,function(c){a.getAttribute(c)!==b.getAttribute(c)&&a.setAttribute(c,b.getAttribute(c))})},e=function(a,b){for(var g=a.childNodes.length,f=b.childNodes.length,h=f;h<g;h++)a.removeChild(a.childNodes[f]);for(h=g;h<f;h++)a.appendChild(b.childNodes[g]);for(h=0;h<g&&h<f;h++){var l=a.childNodes[h],k=b.childNodes[h];if(l.nodeType===k.nodeType&&l.nodeName===k.nodeName&&l.type===k.type){if(1===l.nodeType){var m=d.filter(l.classList,function(a){return 0===a.lastIndexOf("muu-",
   -1    19 0)});c(l,k);d.forEach(m,function(a){l.classList.add(a)})}else 3===l.nodeType&&(l.nodeValue=k.nodeValue);3===l.nodeType||l.classList.contains("muu-isolate")||e(l,k)}else l.parentNode.replaceChild(k,l)}};return e});k("muu",["muu-registry","muu-dom-helpers","muu-location"],function(d,c,e){var a={};a.Registry=d;a.$=c;a.$location=e;return a});return t("muu")})})(window,document,void 0);