Comparing version 2.2.3-next.3 to 2.2.3
@@ -52,10 +52,8 @@ <!--meta-description | ||
Assuming you have forked this repo, you can open the `index.html` file in a module's `tests` folder and look at console output to see only tests for that module, or you can run `ospec/bin/ospec` from the command line to run all tests. | ||
After having run `npm install` (a one-time operation), run `npm run test` from the command line to run all tests. | ||
While testing, you can modify a test to use `o.only(description, test)` instead of `o(description, test)` if you wish to run only a specific test to speed up your debugging experience. Don't forget to remove the `.only` after you're done! | ||
There is no need to `npm install` anything in order to run the test suite, however NodeJS is required to run the test suite from the command line. You do need to `npm install` if you want to lint or get a code coverage report though. | ||
## How do I build Mithril.js? | ||
@@ -65,3 +63,3 @@ | ||
To generate the bundled file for testing, run `npm run dev` from the command line. To generate the minified file, run `npm run build`. There is no need to `npm install` anything, but NodeJS is required to run the build scripts. | ||
To generate the bundled file for testing, run `npm run dev` from the command line. To generate the minified file, run `npm run build`. | ||
@@ -68,0 +66,0 @@ |
@@ -222,3 +222,3 @@ <!--meta-description | ||
And yes, this translates to both attributes and properties, and it works just like they would in the DOM. Using [Brick's `brick-deck`](http://brick.mozilla.io/docs/brick-deck) as an example, they have a `selected-index` attribute with a corresponding `selectedIndex` getter/setter property. | ||
And yes, this translates to both attributes and properties, and it works just like they would in the DOM. Using Brick's `brick-deck` (DEAD LINK, FIXME: http //brick.mozilla.io/docs/brick-deck) as an example, they have a `selected-index` attribute with a corresponding `selectedIndex` getter/setter property. | ||
@@ -225,0 +225,0 @@ ```javascript |
@@ -224,3 +224,3 @@ <!--meta-description | ||
``` | ||
```js | ||
const webpack = require('webpack') | ||
@@ -259,3 +259,3 @@ ``` | ||
React supports scheduling event listeners during the capture phase (in the first pass, out to in, as opposed to the default bubble phase going in to out in the second pass) by appending `Capture` to that event. Mithril currently lacks such functionality, but it could gain this in the future. If this is necessary you can manually add and remove your own listeners in [lifecycle hooks](lifecycle.md). | ||
React supports scheduling event listeners during the capture phase (in the first pass, out to in, as opposed to the default bubble phase going in to out in the second pass) by appending `Capture` to that event. Mithril currently lacks such functionality, but it could gain this in the future. If this is necessary you can manually add and remove your own listeners in [lifecycle hooks](lifecycle-methods.md). | ||
@@ -262,0 +262,0 @@ --- |
@@ -17,2 +17,2 @@ - Core | ||
- Tooling | ||
- [Ospec](https://github.com/MithrilJS/mithril.js/blob/master/ospec) | ||
- [Ospec](https://github.com/MithrilJS/ospec) |
# Release v2.2.3 | ||
### Patch Changes | ||
#### [Use markdown for the README badges (@pygy)](https://github.com/MithrilJS/mithril.js/pull/2773) | ||
Use markdown for the README badges. | ||
# Release v2.2.2 | ||
@@ -3,0 +11,0 @@ |
@@ -522,3 +522,3 @@ <!--meta-description | ||
The `m.request` method returns a [Promise](promise.md), not the response data itself. It cannot return that data directly because an HTTP request may take a long time to complete (due to network latency), and if JavaScript waited for it, it would freeze the application until the data was available. | ||
The `m.request` method returns a `Promise`, not the response data itself. It cannot return that data directly because an HTTP request may take a long time to complete (due to network latency), and if JavaScript waited for it, it would freeze the application until the data was available. | ||
@@ -525,0 +525,0 @@ ```javascript |
@@ -83,3 +83,3 @@ <!--meta-description | ||
Then we can add an `m.request` call to make an XHR request. For this tutorial, we'll make XHR calls to the [REM](https://rem-rest-api.herokuapp.com/) API, a mock REST API designed for rapid prototyping. This API returns a list of users from the `GET https://rem-rest-api.herokuapp.com/api/users` endpoint. Let's use `m.request` to make an XHR request and populate our data with the response of that endpoint. | ||
Then we can add an `m.request` call to make an XHR request. For this tutorial, we'll make XHR calls to the REM (DEAD LINK, FIXME: https //rem-rest-api.herokuapp.com/) API, a mock REST API designed for rapid prototyping. This API returns a list of users from the `GET https://rem-rest-api.herokuapp.com/api/users` endpoint. Let's use `m.request` to make an XHR request and populate our data with the response of that endpoint. | ||
@@ -86,0 +86,0 @@ *Note: third-party cookies may have to be enabled for the REM endpoint to work.* |
@@ -6,2 +6,3 @@ "use strict" | ||
var mountRedraw = require("./mount-redraw") | ||
var domFor = require("./render/domFor") | ||
@@ -24,3 +25,4 @@ var m = function m() { return hyperscript.apply(this, arguments) } | ||
m.censor = require("./util/censor") | ||
m.domFor = domFor.domFor | ||
module.exports = m |
@@ -1,1 +0,1 @@ | ||
!function(){"use strict";function e(e,t,n,r,o,l){return{tag:e,key:t,attrs:n,children:r,text:o,dom:l,domSize:void 0,state:void 0,events:void 0,instance:void 0}}e.normalize=function(t){return Array.isArray(t)?e("[",void 0,void 0,e.normalizeChildren(t),void 0,void 0):null==t||"boolean"==typeof t?null:"object"==typeof t?t:e("#",void 0,void 0,String(t),void 0,void 0)},e.normalizeChildren=function(t){var n=[];if(t.length){for(var r=null!=t[0]&&null!=t[0].key,o=1;o<t.length;o++)if((null!=t[o]&&null!=t[o].key)!==r)throw new TypeError(!r||null==t[o]&&"boolean"!=typeof t[o]?"In fragments, vnodes must either all have keys or none have keys.":"In fragments, vnodes must either all have keys or none have keys. You may wish to consider using an explicit keyed empty fragment, m.fragment({key: ...}), instead of a hole.");for(o=0;o<t.length;o++)n[o]=e.normalize(t[o])}return n};var t=function(){var t,n=arguments[this],r=this+1;if(null==n?n={}:("object"!=typeof n||null!=n.tag||Array.isArray(n))&&(n={},r=this),arguments.length===r+1)t=arguments[r],Array.isArray(t)||(t=[t]);else for(t=[];r<arguments.length;)t.push(arguments[r++]);return e("",n.key,n,t)},n={}.hasOwnProperty,r=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,o={};function l(e){for(var t in e)if(n.call(e,t))return!1;return!0}function i(i){if(null==i||"string"!=typeof i&&"function"!=typeof i&&"function"!=typeof i.view)throw Error("The selector must be either a string or a component.");var a=t.apply(1,arguments);return"string"==typeof i&&(a.children=e.normalizeChildren(a.children),"["!==i)?function(e,t){var r=t.attrs,o=n.call(r,"class"),i=o?r.class:r.className;if(t.tag=e.tag,t.attrs={},!l(e.attrs)&&!l(r)){var a={};for(var s in r)n.call(r,s)&&(a[s]=r[s]);r=a}for(var s in e.attrs)n.call(e.attrs,s)&&"className"!==s&&!n.call(r,s)&&(r[s]=e.attrs[s]);for(var s in null==i&&null==e.attrs.className||(r.className=null!=i?null!=e.attrs.className?String(e.attrs.className)+" "+String(i):i:null!=e.attrs.className?e.attrs.className:null),o&&(r.class=null),r)if(n.call(r,s)&&"key"!==s){t.attrs=r;break}return t}(o[i]||function(e){for(var t,n="div",l=[],i={};t=r.exec(e);){var a=t[1],s=t[2];if(""===a&&""!==s)n=s;else if("#"===a)i.id=s;else if("."===a)l.push(s);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?l.push(u):i[t[4]]=""===u?u:u||!0}}return l.length>0&&(i.className=l.join(" ")),o[e]={tag:n,attrs:i}}(i),a):(a.tag=i,a)}i.trust=function(t){return null==t&&(t=""),e("<",void 0,void 0,t,void 0,void 0)},i.fragment=function(){var n=t.apply(0,arguments);return n.tag="[",n.children=e.normalizeChildren(n.children),n};var a=function(t){var n,r=t&&t.document,o={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function l(e){return e.attrs&&e.attrs.xmlns||o[e.tag]}function i(e,t){if(e.state!==t)throw new Error("'vnode.state' must not be modified.")}function a(e){var t=e.state;try{return this.apply(t,arguments)}finally{i(e,t)}}function s(){try{return r.activeElement}catch(e){return null}}function u(e,t,n,r,o,l,i){for(var a=n;a<r;a++){var s=t[a];null!=s&&c(e,s,o,i,l)}}function c(t,n,o,i,s){var f=n.tag;if("string"==typeof f)switch(n.state={},null!=n.attrs&&_(n.attrs,n,o),f){case"#":!function(e,t,n){t.dom=r.createTextNode(t.children),w(e,t.dom,n)}(t,n,s);break;case"<":d(t,n,i,s);break;case"[":!function(e,t,n,o,l){var i=r.createDocumentFragment();if(null!=t.children){var a=t.children;u(i,a,0,a.length,n,null,o)}t.dom=i.firstChild,t.domSize=i.childNodes.length,w(e,i,l)}(t,n,o,i,s);break;default:!function(e,t,n,o,i){var a=t.tag,s=t.attrs,c=s&&s.is,f=(o=l(t)||o)?c?r.createElementNS(o,a,{is:c}):r.createElementNS(o,a):c?r.createElement(a,{is:c}):r.createElement(a);t.dom=f,null!=s&&function(e,t,n){"input"===e.tag&&null!=t.type&&e.dom.setAttribute("type",t.type);var r=null!=t&&"input"===e.tag&&"file"===t.type;for(var o in t)A(e,o,null,t[o],n,r)}(t,s,o);if(w(e,f,i),!b(t)&&null!=t.children){var d=t.children;u(f,d,0,d.length,n,null,o),"select"===t.tag&&null!=s&&function(e,t){if("value"in t)if(null===t.value)-1!==e.dom.selectedIndex&&(e.dom.value=null);else{var n=""+t.value;e.dom.value===n&&-1!==e.dom.selectedIndex||(e.dom.value=n)}"selectedIndex"in t&&A(e,"selectedIndex",null,t.selectedIndex,void 0)}(t,s)}}(t,n,o,i,s)}else!function(t,n,r,o,l){(function(t,n){var r;if("function"==typeof t.tag.view){if(t.state=Object.create(t.tag),null!=(r=t.state.view).$$reentrantLock$$)return;r.$$reentrantLock$$=!0}else{if(t.state=void 0,null!=(r=t.tag).$$reentrantLock$$)return;r.$$reentrantLock$$=!0,t.state=null!=t.tag.prototype&&"function"==typeof t.tag.prototype.view?new t.tag(t):t.tag(t)}_(t.state,t,n),null!=t.attrs&&_(t.attrs,t,n);if(t.instance=e.normalize(a.call(t.state.view,t)),t.instance===t)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null})(n,r),null!=n.instance?(c(t,n.instance,r,o,l),n.dom=n.instance.dom,n.domSize=null!=n.dom?n.instance.domSize:0):n.domSize=0}(t,n,o,i,s)}var f={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"};function d(e,t,n,o){var l=t.children.match(/^\s*?<(\w+)/im)||[],i=r.createElement(f[l[1]]||"div");"http://www.w3.org/2000/svg"===n?(i.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+t.children+"</svg>",i=i.firstChild):i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length,t.instance=[];for(var a,s=r.createDocumentFragment();a=i.firstChild;)t.instance.push(a),s.appendChild(a);w(e,s,o)}function p(e,t,n,r,o,l){if(t!==n&&(null!=t||null!=n))if(null==t||0===t.length)u(e,n,0,n.length,r,o,l);else if(null==n||0===n.length)k(e,t,0,t.length);else{var i=null!=t[0]&&null!=t[0].key,a=null!=n[0]&&null!=n[0].key,s=0,f=0;if(!i)for(;f<t.length&&null==t[f];)f++;if(!a)for(;s<n.length&&null==n[s];)s++;if(i!==a)k(e,t,f,t.length),u(e,n,s,n.length,r,o,l);else if(a){for(var d,p,w,b,S,E=t.length-1,z=n.length-1;E>=f&&z>=s&&(w=t[E],b=n[z],w.key===b.key);)w!==b&&h(e,w,b,r,o,l),null!=b.dom&&(o=b.dom),E--,z--;for(;E>=f&&z>=s&&(d=t[f],p=n[s],d.key===p.key);)f++,s++,d!==p&&h(e,d,p,r,y(t,f,o),l);for(;E>=f&&z>=s&&s!==z&&d.key===b.key&&w.key===p.key;)g(e,w,S=y(t,f,o)),w!==p&&h(e,w,p,r,S,l),++s<=--z&&g(e,d,o),d!==b&&h(e,d,b,r,o,l),null!=b.dom&&(o=b.dom),f++,w=t[--E],b=n[z],d=t[f],p=n[s];for(;E>=f&&z>=s&&w.key===b.key;)w!==b&&h(e,w,b,r,o,l),null!=b.dom&&(o=b.dom),z--,w=t[--E],b=n[z];if(s>z)k(e,t,f,E+1);else if(f>E)u(e,n,s,z+1,r,o,l);else{var A,j,C=o,O=z-s+1,T=new Array(O),N=0,$=0,L=2147483647,I=0;for($=0;$<O;$++)T[$]=-1;for($=z;$>=s;$--){null==A&&(A=v(t,f,E+1));var R=A[(b=n[$]).key];null!=R&&(L=R<L?R:-1,T[$-s]=R,w=t[R],t[R]=null,w!==b&&h(e,w,b,r,o,l),null!=b.dom&&(o=b.dom),I++)}if(o=C,I!==E-f+1&&k(e,t,f,E+1),0===I)u(e,n,s,z+1,r,o,l);else if(-1===L)for(N=(j=function(e){var t=[0],n=0,r=0,o=0,l=m.length=e.length;for(o=0;o<l;o++)m[o]=e[o];for(o=0;o<l;++o)if(-1!==e[o]){var i=t[t.length-1];if(e[i]<e[o])m[o]=i,t.push(o);else{for(n=0,r=t.length-1;n<r;){var a=(n>>>1)+(r>>>1)+(n&r&1);e[t[a]]<e[o]?n=a+1:r=a}e[o]<e[t[n]]&&(n>0&&(m[o]=t[n-1]),t[n]=o)}}n=t.length,r=t[n-1];for(;n-- >0;)t[n]=r,r=m[r];return m.length=0,t}(T)).length-1,$=z;$>=s;$--)p=n[$],-1===T[$-s]?c(e,p,r,l,o):j[N]===$-s?N--:g(e,p,o),null!=p.dom&&(o=n[$].dom);else for($=z;$>=s;$--)p=n[$],-1===T[$-s]&&c(e,p,r,l,o),null!=p.dom&&(o=n[$].dom)}}else{var P=t.length<n.length?t.length:n.length;for(s=s<f?s:f;s<P;s++)(d=t[s])===(p=n[s])||null==d&&null==p||(null==d?c(e,p,r,l,y(t,s+1,o)):null==p?x(e,d):h(e,d,p,r,y(t,s+1,o),l));t.length>P&&k(e,t,s,t.length),n.length>P&&u(e,n,s,n.length,r,o,l)}}}function h(t,n,r,o,i,s){var u=n.tag;if(u===r.tag){if(r.state=n.state,r.events=n.events,function(e,t){do{var n;if(null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate)if(void 0!==(n=a.call(e.attrs.onbeforeupdate,e,t))&&!n)break;if("string"!=typeof e.tag&&"function"==typeof e.state.onbeforeupdate)if(void 0!==(n=a.call(e.state.onbeforeupdate,e,t))&&!n)break;return!1}while(0);return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,e.attrs=t.attrs,e.children=t.children,e.text=t.text,!0}(r,n))return;if("string"==typeof u)switch(null!=r.attrs&&D(r.attrs,r,o),u){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(n,r);break;case"<":!function(e,t,n,r,o){t.children!==n.children?(S(e,t),d(e,n,r,o)):(n.dom=t.dom,n.domSize=t.domSize,n.instance=t.instance)}(t,n,r,s,i);break;case"[":!function(e,t,n,r,o,l){p(e,t.children,n.children,r,o,l);var i=0,a=n.children;if(n.dom=null,null!=a){for(var s=0;s<a.length;s++){var u=a[s];null!=u&&null!=u.dom&&(null==n.dom&&(n.dom=u.dom),i+=u.domSize||1)}1!==i&&(n.domSize=i)}}(t,n,r,o,i,s);break;default:!function(e,t,n,r){var o=t.dom=e.dom;r=l(t)||r,"textarea"===t.tag&&null==t.attrs&&(t.attrs={});(function(e,t,n,r){t&&t===n&&console.warn("Don't reuse attrs object, use new object for every redraw, this will throw in next major");if(null!=n){"input"===e.tag&&null!=n.type&&e.dom.setAttribute("type",n.type);var o="input"===e.tag&&"file"===n.type;for(var l in n)A(e,l,t&&t[l],n[l],r,o)}var i;if(null!=t)for(var l in t)null==(i=t[l])||null!=n&&null!=n[l]||j(e,l,i,r)})(t,e.attrs,t.attrs,r),b(t)||p(o,e.children,t.children,n,null,r)}(n,r,o,s)}else!function(t,n,r,o,l,i){if(r.instance=e.normalize(a.call(r.state.view,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");D(r.state,r,o),null!=r.attrs&&D(r.attrs,r,o);null!=r.instance?(null==n.instance?c(t,r.instance,o,i,l):h(t,n.instance,r.instance,o,l,i),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=n.instance?(x(t,n.instance),r.dom=void 0,r.domSize=0):(r.dom=n.dom,r.domSize=n.domSize)}(t,n,r,o,i,s)}else x(t,n),c(t,r,o,s,i)}function v(e,t,n){for(var r=Object.create(null);t<n;t++){var o=e[t];if(null!=o){var l=o.key;null!=l&&(r[l]=t)}}return r}var m=[];function y(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function g(e,t,n){var o=r.createDocumentFragment();!function e(t,n,r){for(;null!=r.dom&&r.dom.parentNode===t;){if("string"!=typeof r.tag){if(null!=(r=r.instance))continue}else if("<"===r.tag)for(var o=0;o<r.instance.length;o++)n.appendChild(r.instance[o]);else if("["!==r.tag)n.appendChild(r.dom);else if(1===r.children.length){if(null!=(r=r.children[0]))continue}else for(o=0;o<r.children.length;o++){var l=r.children[o];null!=l&&e(t,n,l)}break}}(e,o,t),w(e,o,n)}function w(e,t,n){null!=n?e.insertBefore(t,n):e.appendChild(t)}function b(e){if(null==e.attrs||null==e.attrs.contenteditable&&null==e.attrs.contentEditable)return!1;var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted.");return!0}function k(e,t,n,r){for(var o=n;o<r;o++){var l=t[o];null!=l&&x(e,l)}}function x(e,t){var n,r,o,l=0,s=t.state;"string"!=typeof t.tag&&"function"==typeof t.state.onbeforeremove&&(null!=(o=a.call(t.state.onbeforeremove,t))&&"function"==typeof o.then&&(l=1,n=o));t.attrs&&"function"==typeof t.attrs.onbeforeremove&&(null!=(o=a.call(t.attrs.onbeforeremove,t))&&"function"==typeof o.then&&(l|=2,r=o));if(i(t,s),l){if(null!=n){var u=function(){1&l&&((l&=2)||c())};n.then(u,u)}if(null!=r){u=function(){2&l&&((l&=1)||c())};r.then(u,u)}}else z(t),E(e,t);function c(){i(t,s),z(t),E(e,t)}}function S(e,t){for(var n=0;n<t.instance.length;n++)e.removeChild(t.instance[n])}function E(e,t){for(;null!=t.dom&&t.dom.parentNode===e;){if("string"!=typeof t.tag){if(null!=(t=t.instance))continue}else if("<"===t.tag)S(e,t);else{if("["!==t.tag&&(e.removeChild(t.dom),!Array.isArray(t.children)))break;if(1===t.children.length){if(null!=(t=t.children[0]))continue}else for(var n=0;n<t.children.length;n++){var r=t.children[n];null!=r&&E(e,r)}}break}}function z(e){if("string"!=typeof e.tag&&"function"==typeof e.state.onremove&&a.call(e.state.onremove,e),e.attrs&&"function"==typeof e.attrs.onremove&&a.call(e.attrs.onremove,e),"string"!=typeof e.tag)null!=e.instance&&z(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&z(r)}}}function A(e,t,n,o,l,i){if(!("key"===t||"is"===t||null==o||C(t)||n===o&&!function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===s()||"option"===e.tag&&e.dom.parentNode===r.activeElement}(e,t)&&"object"!=typeof o||"type"===t&&"input"===e.tag)){if("o"===t[0]&&"n"===t[1])return P(e,t,o);if("xlink:"===t.slice(0,6))e.dom.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(6),o);else if("style"===t)I(e.dom,n,o);else if(O(e,t,l)){if("value"===t){if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===""+o&&(i||e.dom===s()))return;if("select"===e.tag&&null!==n&&e.dom.value===""+o)return;if("option"===e.tag&&null!==n&&e.dom.value===""+o)return;if(i&&""+o!="")return void console.error("`value` is read-only on file inputs!")}e.dom[t]=o}else"boolean"==typeof o?o?e.dom.setAttribute(t,""):e.dom.removeAttribute(t):e.dom.setAttribute("className"===t?"class":t,o)}}function j(e,t,n,r){if("key"!==t&&"is"!==t&&null!=n&&!C(t))if("o"===t[0]&&"n"===t[1])P(e,t,void 0);else if("style"===t)I(e.dom,n,null);else if(!O(e,t,r)||"className"===t||"title"===t||"value"===t&&("option"===e.tag||"select"===e.tag&&-1===e.dom.selectedIndex&&e.dom===s())||"input"===e.tag&&"type"===t){var o=t.indexOf(":");-1!==o&&(t=t.slice(o+1)),!1!==n&&e.dom.removeAttribute("className"===t?"class":t)}else e.dom[t]=null}function C(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function O(e,t,n){return void 0===n&&(e.tag.indexOf("-")>-1||null!=e.attrs&&e.attrs.is||"href"!==t&&"list"!==t&&"form"!==t&&"width"!==t&&"height"!==t)&&t in e.dom}var T,N=/[A-Z]/g;function $(e){return"-"+e.toLowerCase()}function L(e){return"-"===e[0]&&"-"===e[1]?e:"cssFloat"===e?"float":e.replace(N,$)}function I(e,t,n){if(t===n);else if(null==n)e.style.cssText="";else if("object"!=typeof n)e.style.cssText=n;else if(null==t||"object"!=typeof t)for(var r in e.style.cssText="",n){null!=(o=n[r])&&e.style.setProperty(L(r),String(o))}else{for(var r in n){var o;null!=(o=n[r])&&(o=String(o))!==String(t[r])&&e.style.setProperty(L(r),o)}for(var r in t)null!=t[r]&&null==n[r]&&e.style.removeProperty(L(r))}}function R(){this._=n}function P(e,t,r){if(null!=e.events){if(e.events._=n,e.events[t]===r)return;null==r||"function"!=typeof r&&"object"!=typeof r?(null!=e.events[t]&&e.dom.removeEventListener(t.slice(2),e.events,!1),e.events[t]=void 0):(null==e.events[t]&&e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=r)}else null==r||"function"!=typeof r&&"object"!=typeof r||(e.events=new R,e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=r)}function _(e,t,n){"function"==typeof e.oninit&&a.call(e.oninit,t),"function"==typeof e.oncreate&&n.push(a.bind(e.oncreate,t))}function D(e,t,n){"function"==typeof e.onupdate&&n.push(a.bind(e.onupdate,t))}return R.prototype=Object.create(null),R.prototype.handleEvent=function(e){var t,n=this["on"+e.type];"function"==typeof n?t=n.call(e.currentTarget,e):"function"==typeof n.handleEvent&&n.handleEvent(e),this._&&!1!==e.redraw&&(0,this._)(),!1===t&&(e.preventDefault(),e.stopPropagation())},function(t,r,o){if(!t)throw new TypeError("DOM element being rendered to does not exist.");if(null!=T&&t.contains(T))throw new TypeError("Node is currently being rendered to and thus is locked.");var l=n,i=T,a=[],u=s(),c=t.namespaceURI;T=t,n="function"==typeof o?o:void 0;try{null==t.vnodes&&(t.textContent=""),r=e.normalizeChildren(Array.isArray(r)?r:[r]),p(t,t.vnodes,r,a,null,"http://www.w3.org/1999/xhtml"===c?void 0:c),t.vnodes=r,null!=u&&s()!==u&&"function"==typeof u.focus&&u.focus();for(var f=0;f<a.length;f++)a[f]()}finally{n=l,T=i}}}("undefined"!=typeof window?window:null),s=function(t,n,r){var o=[],l=!1,i=-1;function a(){for(i=0;i<o.length;i+=2)try{t(o[i],e(o[i+1]),s)}catch(e){r.error(e)}i=-1}function s(){l||(l=!0,n((function(){l=!1,a()})))}return s.sync=a,{mount:function(n,r){if(null!=r&&null==r.view&&"function"!=typeof r)throw new TypeError("m.mount expects a component, not a vnode.");var l=o.indexOf(n);l>=0&&(o.splice(l,2),l<=i&&(i-=2),t(n,[])),null!=r&&(o.push(n,r),t(n,e(r),s))},redraw:s}}(a,"undefined"!=typeof requestAnimationFrame?requestAnimationFrame:null,"undefined"!=typeof console?console:null),u=function(e){if("[object Object]"!==Object.prototype.toString.call(e))return"";var t=[];for(var n in e)r(n,e[n]);return t.join("&");function r(e,n){if(Array.isArray(n))for(var o=0;o<n.length;o++)r(e+"["+o+"]",n[o]);else if("[object Object]"===Object.prototype.toString.call(n))for(var o in n)r(e+"["+o+"]",n[o]);else t.push(encodeURIComponent(e)+(null!=n&&""!==n?"="+encodeURIComponent(n):""))}},c=Object.assign||function(e,t){for(var r in t)n.call(t,r)&&(e[r]=t[r])},f=function(e,t){if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Template parameter names must be separated by either a '/', '-', or '.'.");if(null==t)return e;var n=e.indexOf("?"),r=e.indexOf("#"),o=r<0?e.length:r,l=n<0?o:n,i=e.slice(0,l),a={};c(a,t);var s=i.replace(/:([^\/\.-]+)(\.{3})?/g,(function(e,n,r){return delete a[n],null==t[n]?e:r?t[n]:encodeURIComponent(String(t[n]))})),f=s.indexOf("?"),d=s.indexOf("#"),p=d<0?s.length:d,h=f<0?p:f,v=s.slice(0,h);n>=0&&(v+=e.slice(n,o)),f>=0&&(v+=(n<0?"?":"&")+s.slice(f,p));var m=u(a);return m&&(v+=(n<0&&f<0?"?":"&")+m),r>=0&&(v+=e.slice(r)),d>=0&&(v+=(r<0?"":"&")+s.slice(d)),v},d=function(e,t){function r(e){return new Promise(e)}function o(e,t){for(var r in e.headers)if(n.call(e.headers,r)&&r.toLowerCase()===t)return!0;return!1}return(r.prototype=Promise.prototype,r.__proto__=Promise,{request:function(l,i){"string"!=typeof l?(i=l,l=l.url):null==i&&(i={});var a=function(t,r){return new Promise((function(l,i){t=f(t,r.params);var a,s=null!=r.method?r.method.toUpperCase():"GET",u=r.body,c=(null==r.serialize||r.serialize===JSON.serialize)&&!(u instanceof e.FormData||u instanceof e.URLSearchParams),d=r.responseType||("function"==typeof r.extract?"":"json"),p=new e.XMLHttpRequest,h=!1,v=!1,m=p,y=p.abort;for(var g in p.abort=function(){h=!0,y.call(this)},p.open(s,t,!1!==r.async,"string"==typeof r.user?r.user:void 0,"string"==typeof r.password?r.password:void 0),c&&null!=u&&!o(r,"content-type")&&p.setRequestHeader("Content-Type","application/json; charset=utf-8"),"function"==typeof r.deserialize||o(r,"accept")||p.setRequestHeader("Accept","application/json, text/*"),r.withCredentials&&(p.withCredentials=r.withCredentials),r.timeout&&(p.timeout=r.timeout),p.responseType=d,r.headers)n.call(r.headers,g)&&p.setRequestHeader(g,r.headers[g]);p.onreadystatechange=function(e){if(!h&&4===e.target.readyState)try{var n,o=e.target.status>=200&&e.target.status<300||304===e.target.status||/^file:\/\//i.test(t),a=e.target.response;if("json"===d){if(!e.target.responseType&&"function"!=typeof r.extract)try{a=JSON.parse(e.target.responseText)}catch(e){a=null}}else d&&"text"!==d||null==a&&(a=e.target.responseText);if("function"==typeof r.extract?(a=r.extract(e.target,r),o=!0):"function"==typeof r.deserialize&&(a=r.deserialize(a)),o){if("function"==typeof r.type)if(Array.isArray(a))for(var s=0;s<a.length;s++)a[s]=new r.type(a[s]);else a=new r.type(a);l(a)}else{var u=function(){try{n=e.target.responseText}catch(e){n=a}var t=new Error(n);t.code=e.target.status,t.response=a,i(t)};0===p.status?setTimeout((function(){v||u()})):u()}}catch(e){i(e)}},p.ontimeout=function(e){v=!0;var t=new Error("Request timed out");t.code=e.target.status,i(t)},"function"==typeof r.config&&(p=r.config(p,r,t)||p)!==m&&(a=p.abort,p.abort=function(){h=!0,a.call(this)}),null==u?p.send():"function"==typeof r.serialize?p.send(r.serialize(u)):u instanceof e.FormData||u instanceof e.URLSearchParams?p.send(u):p.send(JSON.stringify(u))}))}(l,i);if(!0===i.background)return a;var s=0;function u(){0==--s&&"function"==typeof t&&t()}return function e(t){var n=t.then;t.constructor=r;t.then=function(){s++;var r=n.apply(t,arguments);return r.then(u,(function(e){if(u(),0===s)throw e})),e(r)};return t}(a)}})}("undefined"!=typeof window?window:null,s.redraw),p=s,h=function(){return i.apply(this,arguments)};h.m=i,h.trust=i.trust,h.fragment=i.fragment,h.Fragment="[",h.mount=p.mount;var v=i;function m(e){try{return decodeURIComponent(e)}catch(t){return e}}var y=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},o=0;o<t.length;o++){var l=t[o].split("="),i=m(l[0]),a=2===l.length?m(l[1]):"";"true"===a?a=!0:"false"===a&&(a=!1);var s=i.split(/\]\[?|\[/),u=r;i.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],p=""==d||!isNaN(parseInt(d,10));if(""===f)null==n[i=s.slice(0,c).join()]&&(n[i]=Array.isArray(u)?u.length:0),f=n[i]++;else if("__proto__"===f)break;if(c===s.length-1)u[f]=a;else{var h=Object.getOwnPropertyDescriptor(u,f);null!=h&&(h=h.value),null==h&&(u[f]=h=p?[]:{}),u=h}}}return r},g=function(e){var t=e.indexOf("?"),n=e.indexOf("#"),r=n<0?e.length:n,o=t<0?r:t,l=e.slice(0,o).replace(/\/{2,}/g,"/");return l?"/"!==l[0]&&(l="/"+l):l="/",{path:l,params:t<0?{}:y(e.slice(t+1,r))}},w=function(e){var t=g(e),n=Object.keys(t.params),r=[],o=new RegExp("^"+t.path.replace(/:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g,(function(e,t,n){return null==t?"\\"+e:(r.push({k:t,r:"..."===n}),"..."===n?"(.*)":"."===n?"([^/]+)\\.":"([^/]+)"+(n||""))}))+"$");return function(e){for(var l=0;l<n.length;l++)if(t.params[n[l]]!==e.params[n[l]])return!1;if(!r.length)return o.test(e.path);var i=o.exec(e.path);if(null==i)return!1;for(l=0;l<r.length;l++)e.params[r[l].k]=r[l].r?i[l+1]:decodeURIComponent(i[l+1]);return!0}},b=new RegExp("^(?:key|oninit|oncreate|onbeforeupdate|onupdate|onbeforeremove|onremove)$"),k=function(e,t){var r={};if(null!=t)for(var o in e)n.call(e,o)&&!b.test(o)&&t.indexOf(o)<0&&(r[o]=e[o]);else for(var o in e)n.call(e,o)&&!b.test(o)&&(r[o]=e[o]);return r},x={};function S(e){try{return decodeURIComponent(e)}catch(t){return e}}h.route=function(t,n){var r,o,l,i,a,s,u=null==t?null:"function"==typeof t.setImmediate?t.setImmediate:t.setTimeout,d=Promise.resolve(),p=!1,h=!1,m=0,y=x,b={onbeforeupdate:function(){return!(!(m=m?2:1)||x===y)},onremove:function(){t.removeEventListener("popstate",A,!1),t.removeEventListener("hashchange",z,!1)},view:function(){if(m&&x!==y){var t=[e(l,i.key,i)];return y&&(t=y.render(t[0])),t}}},E=C.SKIP={};function z(){p=!1;var e=t.location.hash;"#"!==C.prefix[0]&&(e=t.location.search+e,"?"!==C.prefix[0]&&"/"!==(e=t.location.pathname+e)[0]&&(e="/"+e));var u=e.concat().replace(/(?:%[a-f89][a-f0-9])+/gim,S).slice(C.prefix.length),f=g(u);function h(e){console.error(e),j(o,null,{replace:!0})}c(f.params,t.history.state),function e(t){for(;t<r.length;t++)if(r[t].check(f)){var c=r[t].component,p=r[t].route,v=c,g=s=function(r){if(g===s){if(r===E)return e(t+1);l=null==r||"function"!=typeof r.view&&"function"!=typeof r?"div":r,i=f.params,a=u,s=null,y=c.render?c:null,2===m?n.redraw():(m=2,n.redraw.sync())}};return void(c.view||"function"==typeof c?(c={},g(v)):c.onmatch?d.then((function(){return c.onmatch(f.params,u,p)})).then(g,u===o?null:h):g("div"))}if(u===o)throw new Error("Could not resolve default route "+o+".");j(o,null,{replace:!0})}(0)}function A(){p||(p=!0,u(z))}function j(e,n,r){if(e=f(e,n),h){A();var o=r?r.state:null,l=r?r.title:null;r&&r.replace?t.history.replaceState(o,l,C.prefix+e):t.history.pushState(o,l,C.prefix+e)}else t.location.href=C.prefix+e}function C(e,l,i){if(!e)throw new TypeError("DOM element being rendered to does not exist.");if(r=Object.keys(i).map((function(e){if("/"!==e[0])throw new SyntaxError("Routes must start with a '/'.");if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Route parameter names must be separated with either '/', '.', or '-'.");return{route:e,component:i[e],check:w(e)}})),o=l,null!=l){var a=g(l);if(!r.some((function(e){return e.check(a)})))throw new ReferenceError("Default route doesn't match any known routes.")}"function"==typeof t.history.pushState?t.addEventListener("popstate",A,!1):"#"===C.prefix[0]&&t.addEventListener("hashchange",z,!1),h=!0,n.mount(e,b),z()}return C.set=function(e,t,n){null!=s&&((n=n||{}).replace=!0),s=null,j(e,t,n)},C.get=function(){return a},C.prefix="#!",C.Link={view:function(e){var t,n,r,o=v(e.attrs.selector||"a",k(e.attrs,["options","params","selector","onclick"]),e.children);return(o.attrs.disabled=Boolean(o.attrs.disabled))?(o.attrs.href=null,o.attrs["aria-disabled"]="true"):(t=e.attrs.options,n=e.attrs.onclick,r=f(o.attrs.href,e.attrs.params),o.attrs.href=C.prefix+r,o.attrs.onclick=function(e){var o;"function"==typeof n?o=n.call(e.currentTarget,e):null==n||"object"!=typeof n||"function"==typeof n.handleEvent&&n.handleEvent(e),!1===o||e.defaultPrevented||0!==e.button&&0!==e.which&&1!==e.which||e.currentTarget.target&&"_self"!==e.currentTarget.target||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),e.redraw=!1,C.set(r,null,t))}),o}},C.param=function(e){return i&&null!=e?i[e]:i},C}("undefined"!=typeof window?window:null,p),h.render=a,h.redraw=p.redraw,h.request=d.request,h.parseQueryString=y,h.buildQueryString=u,h.parsePathname=g,h.buildPathname=f,h.vnode=e,h.censor=k,"undefined"!=typeof module?module.exports=h:window.m=h}(); | ||
!function(){"use strict";function e(e,t,n,r,o,l){return{tag:e,key:t,attrs:n,children:r,text:o,dom:l,domSize:void 0,state:void 0,events:void 0,instance:void 0}}e.normalize=function(t){return Array.isArray(t)?e("[",void 0,void 0,e.normalizeChildren(t),void 0,void 0):null==t||"boolean"==typeof t?null:"object"==typeof t?t:e("#",void 0,void 0,String(t),void 0,void 0)},e.normalizeChildren=function(t){var n=[];if(t.length){for(var r=null!=t[0]&&null!=t[0].key,o=1;o<t.length;o++)if((null!=t[o]&&null!=t[o].key)!==r)throw new TypeError(!r||null==t[o]&&"boolean"!=typeof t[o]?"In fragments, vnodes must either all have keys or none have keys.":"In fragments, vnodes must either all have keys or none have keys. You may wish to consider using an explicit keyed empty fragment, m.fragment({key: ...}), instead of a hole.");for(o=0;o<t.length;o++)n[o]=e.normalize(t[o])}return n};var t=function(){var t,n=arguments[this],r=this+1;if(null==n?n={}:("object"!=typeof n||null!=n.tag||Array.isArray(n))&&(n={},r=this),arguments.length===r+1)t=arguments[r],Array.isArray(t)||(t=[t]);else for(t=[];r<arguments.length;)t.push(arguments[r++]);return e("",n.key,n,t)},n={}.hasOwnProperty,r=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,o={};function l(e){for(var t in e)if(n.call(e,t))return!1;return!0}function i(e){for(var t,n="div",l=[],i={};t=r.exec(e);){var a=t[1],u=t[2];if(""===a&&""!==u)n=u;else if("#"===a)i.id=u;else if("."===a)l.push(u);else if("["===t[3][0]){var s=t[6];s&&(s=s.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?l.push(s):i[t[4]]=""===s?s:s||!0}}return l.length>0&&(i.className=l.join(" ")),o[e]={tag:n,attrs:i}}function a(e,t){var r=t.attrs,o=n.call(r,"class"),i=o?r.class:r.className;if(t.tag=e.tag,t.attrs={},!l(e.attrs)&&!l(r)){var a={};for(var u in r)n.call(r,u)&&(a[u]=r[u]);r=a}for(var u in e.attrs)n.call(e.attrs,u)&&"className"!==u&&!n.call(r,u)&&(r[u]=e.attrs[u]);for(var u in null==i&&null==e.attrs.className||(r.className=null!=i?null!=e.attrs.className?String(e.attrs.className)+" "+String(i):i:null!=e.attrs.className?e.attrs.className:null),o&&(r.class=null),r)if(n.call(r,u)&&"key"!==u){t.attrs=r;break}return t}function u(n){if(null==n||"string"!=typeof n&&"function"!=typeof n&&"function"!=typeof n.view)throw Error("The selector must be either a string or a component.");var r=t.apply(1,arguments);return"string"==typeof n&&(r.children=e.normalizeChildren(r.children),"["!==n)?a(o[n]||i(n),r):(r.tag=n,r)}u.trust=function(t){return null==t&&(t=""),e("<",void 0,void 0,t,void 0,void 0)},u.fragment=function(){var n=t.apply(0,arguments);return n.tag="[",n.children=e.normalizeChildren(n.children),n};var s=new WeakMap;var f={delayedRemoval:s,domFor:function*({dom:e,domSize0:t},{generation0:n}={}){if(null!=e)do{const{nextSibling:r}=e;s.get(e)===n&&(yield e,t--),e=r}while(t)}},c=f.delayedRemoval,d=f.domFor,p=function(t){var n,r,o=t&&t.document,l={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function i(e){return e.attrs&&e.attrs.xmlns||l[e.tag]}function a(e,t){if(e.state!==t)throw new Error("'vnode.state' must not be modified.")}function u(e){var t=e.state;try{return this.apply(t,arguments)}finally{a(e,t)}}function s(){try{return o.activeElement}catch(e){return null}}function f(e,t,n,r,o,l,i){for(var a=n;a<r;a++){var u=t[a];null!=u&&p(e,u,o,i,l)}}function p(t,n,r,l,a){var s=n.tag;if("string"==typeof s)switch(n.state={},null!=n.attrs&&D(n.attrs,n,r),s){case"#":!function(e,t,n){t.dom=o.createTextNode(t.children),k(e,t.dom,n)}(t,n,a);break;case"<":v(t,n,l,a);break;case"[":!function(e,t,n,r,l){var i=o.createDocumentFragment();if(null!=t.children){var a=t.children;f(i,a,0,a.length,n,null,r)}t.dom=i.firstChild,t.domSize=i.childNodes.length,k(e,i,l)}(t,n,r,l,a);break;default:!function(e,t,n,r,l){var a=t.tag,u=t.attrs,s=u&&u.is,c=(r=i(t)||r)?s?o.createElementNS(r,a,{is:s}):o.createElementNS(r,a):s?o.createElement(a,{is:s}):o.createElement(a);t.dom=c,null!=u&&function(e,t,n){"input"===e.tag&&null!=t.type&&e.dom.setAttribute("type",t.type);var r=null!=t&&"input"===e.tag&&"file"===t.type;for(var o in t)C(e,o,null,t[o],n,r)}(t,u,r);if(k(e,c,l),!S(t)&&null!=t.children){var d=t.children;f(c,d,0,d.length,n,null,r),"select"===t.tag&&null!=u&&function(e,t){if("value"in t)if(null===t.value)-1!==e.dom.selectedIndex&&(e.dom.value=null);else{var n=""+t.value;e.dom.value===n&&-1!==e.dom.selectedIndex||(e.dom.value=n)}"selectedIndex"in t&&C(e,"selectedIndex",null,t.selectedIndex,void 0)}(t,u)}}(t,n,r,l,a)}else!function(t,n,r,o,l){(function(t,n){var r;if("function"==typeof t.tag.view){if(t.state=Object.create(t.tag),null!=(r=t.state.view).$$reentrantLock$$)return;r.$$reentrantLock$$=!0}else{if(t.state=void 0,null!=(r=t.tag).$$reentrantLock$$)return;r.$$reentrantLock$$=!0,t.state=null!=t.tag.prototype&&"function"==typeof t.tag.prototype.view?new t.tag(t):t.tag(t)}D(t.state,t,n),null!=t.attrs&&D(t.attrs,t,n);if(t.instance=e.normalize(u.call(t.state.view,t)),t.instance===t)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null})(n,r),null!=n.instance?(p(t,n.instance,r,o,l),n.dom=n.instance.dom,n.domSize=null!=n.dom?n.instance.domSize:0):n.domSize=0}(t,n,r,l,a)}var m={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"};function v(e,t,n,r){var l=t.children.match(/^\s*?<(\w+)/im)||[],i=o.createElement(m[l[1]]||"div");"http://www.w3.org/2000/svg"===n?(i.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+t.children+"</svg>",i=i.firstChild):i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length;for(var a,u=o.createDocumentFragment();a=i.firstChild;)u.appendChild(a);k(e,u,r)}function h(e,t,n,r,o,l){if(t!==n&&(null!=t||null!=n))if(null==t||0===t.length)f(e,n,0,n.length,r,o,l);else if(null==n||0===n.length)E(e,t,0,t.length);else{var i=null!=t[0]&&null!=t[0].key,a=null!=n[0]&&null!=n[0].key,u=0,s=0;if(!i)for(;s<t.length&&null==t[s];)s++;if(!a)for(;u<n.length&&null==n[u];)u++;if(i!==a)E(e,t,s,t.length),f(e,n,u,n.length,r,o,l);else if(a){for(var c,d,m,v,h,k=t.length-1,S=n.length-1;k>=s&&S>=u&&(m=t[k],v=n[S],m.key===v.key);)m!==v&&y(e,m,v,r,o,l),null!=v.dom&&(o=v.dom),k--,S--;for(;k>=s&&S>=u&&(c=t[s],d=n[u],c.key===d.key);)s++,u++,c!==d&&y(e,c,d,r,b(t,s,o),l);for(;k>=s&&S>=u&&u!==S&&c.key===v.key&&m.key===d.key;)x(e,m,h=b(t,s,o)),m!==d&&y(e,m,d,r,h,l),++u<=--S&&x(e,c,o),c!==v&&y(e,c,v,r,o,l),null!=v.dom&&(o=v.dom),s++,m=t[--k],v=n[S],c=t[s],d=n[u];for(;k>=s&&S>=u&&m.key===v.key;)m!==v&&y(e,m,v,r,o,l),null!=v.dom&&(o=v.dom),S--,m=t[--k],v=n[S];if(u>S)E(e,t,s,k+1);else if(s>k)f(e,n,u,S+1,r,o,l);else{var j,A,C=o,O=S-u+1,T=new Array(O),N=0,$=0,L=2147483647,R=0;for($=0;$<O;$++)T[$]=-1;for($=S;$>=u;$--){null==j&&(j=g(t,s,k+1));var I=j[(v=n[$]).key];null!=I&&(L=I<L?I:-1,T[$-u]=I,m=t[I],t[I]=null,m!==v&&y(e,m,v,r,o,l),null!=v.dom&&(o=v.dom),R++)}if(o=C,R!==k-s+1&&E(e,t,s,k+1),0===R)f(e,n,u,S+1,r,o,l);else if(-1===L)for(N=(A=function(e){var t=[0],n=0,r=0,o=0,l=w.length=e.length;for(o=0;o<l;o++)w[o]=e[o];for(o=0;o<l;++o)if(-1!==e[o]){var i=t[t.length-1];if(e[i]<e[o])w[o]=i,t.push(o);else{for(n=0,r=t.length-1;n<r;){var a=(n>>>1)+(r>>>1)+(n&r&1);e[t[a]]<e[o]?n=a+1:r=a}e[o]<e[t[n]]&&(n>0&&(w[o]=t[n-1]),t[n]=o)}}n=t.length,r=t[n-1];for(;n-- >0;)t[n]=r,r=w[r];return w.length=0,t}(T)).length-1,$=S;$>=u;$--)d=n[$],-1===T[$-u]?p(e,d,r,l,o):A[N]===$-u?N--:x(e,d,o),null!=d.dom&&(o=n[$].dom);else for($=S;$>=u;$--)d=n[$],-1===T[$-u]&&p(e,d,r,l,o),null!=d.dom&&(o=n[$].dom)}}else{var P=t.length<n.length?t.length:n.length;for(u=u<s?u:s;u<P;u++)(c=t[u])===(d=n[u])||null==c&&null==d||(null==c?p(e,d,r,l,b(t,u+1,o)):null==d?z(e,c):y(e,c,d,r,b(t,u+1,o),l));t.length>P&&E(e,t,u,t.length),n.length>P&&f(e,n,u,n.length,r,o,l)}}}function y(t,n,r,o,l,a){var s=n.tag;if(s===r.tag){if(r.state=n.state,r.events=n.events,function(e,t){do{var n;if(null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate)if(void 0!==(n=u.call(e.attrs.onbeforeupdate,e,t))&&!n)break;if("string"!=typeof e.tag&&"function"==typeof e.state.onbeforeupdate)if(void 0!==(n=u.call(e.state.onbeforeupdate,e,t))&&!n)break;return!1}while(0);return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,e.attrs=t.attrs,e.children=t.children,e.text=t.text,!0}(r,n))return;if("string"==typeof s)switch(null!=r.attrs&&M(r.attrs,r,o),s){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(n,r);break;case"<":!function(e,t,n,r,o){t.children!==n.children?(j(e,t,void 0),v(e,n,r,o)):(n.dom=t.dom,n.domSize=t.domSize)}(t,n,r,a,l);break;case"[":!function(e,t,n,r,o,l){h(e,t.children,n.children,r,o,l);var i=0,a=n.children;if(n.dom=null,null!=a){for(var u=0;u<a.length;u++){var s=a[u];null!=s&&null!=s.dom&&(null==n.dom&&(n.dom=s.dom),i+=s.domSize||1)}1!==i&&(n.domSize=i)}}(t,n,r,o,l,a);break;default:!function(e,t,n,r){var o=t.dom=e.dom;r=i(t)||r,"textarea"===t.tag&&null==t.attrs&&(t.attrs={});(function(e,t,n,r){t&&t===n&&console.warn("Don't reuse attrs object, use new object for every redraw, this will throw in next major");if(null!=n){"input"===e.tag&&null!=n.type&&e.dom.setAttribute("type",n.type);var o="input"===e.tag&&"file"===n.type;for(var l in n)C(e,l,t&&t[l],n[l],r,o)}var i;if(null!=t)for(var l in t)null==(i=t[l])||null!=n&&null!=n[l]||O(e,l,i,r)})(t,e.attrs,t.attrs,r),S(t)||h(o,e.children,t.children,n,null,r)}(n,r,o,a)}else!function(t,n,r,o,l,i){if(r.instance=e.normalize(u.call(r.state.view,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");M(r.state,r,o),null!=r.attrs&&M(r.attrs,r,o);null!=r.instance?(null==n.instance?p(t,r.instance,o,i,l):y(t,n.instance,r.instance,o,l,i),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=n.instance?(z(t,n.instance),r.dom=void 0,r.domSize=0):(r.dom=n.dom,r.domSize=n.domSize)}(t,n,r,o,l,a)}else z(t,n),p(t,r,o,a,l)}function g(e,t,n){for(var r=Object.create(null);t<n;t++){var o=e[t];if(null!=o){var l=o.key;null!=l&&(r[l]=t)}}return r}var w=[];function b(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function x(e,t,n){if(null!=t.dom){var r;if(null==t.domSize)r=t.dom;else for(var l of(r=o.createDocumentFragment(),d(t)))r.appendChild(l);k(e,r,n)}}function k(e,t,n){null!=n?e.insertBefore(t,n):e.appendChild(t)}function S(e){if(null==e.attrs||null==e.attrs.contenteditable&&null==e.attrs.contentEditable)return!1;var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted.");return!0}function E(e,t,n,r){for(var o=n;o<r;o++){var l=t[o];null!=l&&z(e,l)}}function z(e,t){var n,o,l,i,s=0,f=t.state;"string"!=typeof t.tag&&"function"==typeof t.state.onbeforeremove&&(null!=(l=u.call(t.state.onbeforeremove,t))&&"function"==typeof l.then&&(s=1,n=l));t.attrs&&"function"==typeof t.attrs.onbeforeremove&&(null!=(l=u.call(t.attrs.onbeforeremove,t))&&"function"==typeof l.then&&(s|=2,o=l));if(a(t,f),s){for(var p of(i=r,d(t)))c.set(p,i);null!=n&&n.finally((function(){1&s&&((s&=2)||(a(t,f),A(t),j(e,t,i)))})),null!=o&&o.finally((function(){2&s&&((s&=1)||(a(t,f),A(t),j(e,t,i)))}))}else A(t),j(e,t,i)}function j(e,t,n){if(null!=t.dom)if(null==t.domSize)c.get(t.dom)===n&&e.removeChild(t.dom);else for(var r of d(t,{generation:n}))e.removeChild(r)}function A(e){if("string"!=typeof e.tag&&"function"==typeof e.state.onremove&&u.call(e.state.onremove,e),e.attrs&&"function"==typeof e.attrs.onremove&&u.call(e.attrs.onremove,e),"string"!=typeof e.tag)null!=e.instance&&A(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&A(r)}}}function C(e,t,n,r,l,i){if(!("key"===t||"is"===t||null==r||T(t)||n===r&&!function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===s()||"option"===e.tag&&e.dom.parentNode===o.activeElement}(e,t)&&"object"!=typeof r||"type"===t&&"input"===e.tag)){if("o"===t[0]&&"n"===t[1])return _(e,t,r);if("xlink:"===t.slice(0,6))e.dom.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(6),r);else if("style"===t)P(e.dom,n,r);else if(N(e,t,l)){if("value"===t){if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===""+r&&(i||e.dom===s()))return;if("select"===e.tag&&null!==n&&e.dom.value===""+r)return;if("option"===e.tag&&null!==n&&e.dom.value===""+r)return;if(i&&""+r!="")return void console.error("`value` is read-only on file inputs!")}e.dom[t]=r}else"boolean"==typeof r?r?e.dom.setAttribute(t,""):e.dom.removeAttribute(t):e.dom.setAttribute("className"===t?"class":t,r)}}function O(e,t,n,r){if("key"!==t&&"is"!==t&&null!=n&&!T(t))if("o"===t[0]&&"n"===t[1])_(e,t,void 0);else if("style"===t)P(e.dom,n,null);else if(!N(e,t,r)||"className"===t||"title"===t||"value"===t&&("option"===e.tag||"select"===e.tag&&-1===e.dom.selectedIndex&&e.dom===s())||"input"===e.tag&&"type"===t){var o=t.indexOf(":");-1!==o&&(t=t.slice(o+1)),!1!==n&&e.dom.removeAttribute("className"===t?"class":t)}else e.dom[t]=null}function T(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function N(e,t,n){return void 0===n&&(e.tag.indexOf("-")>-1||null!=e.attrs&&e.attrs.is||"href"!==t&&"list"!==t&&"form"!==t&&"width"!==t&&"height"!==t)&&t in e.dom}var $,L=/[A-Z]/g;function R(e){return"-"+e.toLowerCase()}function I(e){return"-"===e[0]&&"-"===e[1]?e:"cssFloat"===e?"float":e.replace(L,R)}function P(e,t,n){if(t===n);else if(null==n)e.style="";else if("object"!=typeof n)e.style=n;else if(null==t||"object"!=typeof t)for(var r in e.style.cssText="",n){null!=(o=n[r])&&e.style.setProperty(I(r),String(o))}else{for(var r in n){var o;null!=(o=n[r])&&(o=String(o))!==String(t[r])&&e.style.setProperty(I(r),o)}for(var r in t)null!=t[r]&&null==n[r]&&e.style.removeProperty(I(r))}}function F(){this._=n}function _(e,t,r){if(null!=e.events){if(e.events._=n,e.events[t]===r)return;null==r||"function"!=typeof r&&"object"!=typeof r?(null!=e.events[t]&&e.dom.removeEventListener(t.slice(2),e.events,!1),e.events[t]=void 0):(null==e.events[t]&&e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=r)}else null==r||"function"!=typeof r&&"object"!=typeof r||(e.events=new F,e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=r)}function D(e,t,n){"function"==typeof e.oninit&&u.call(e.oninit,t),"function"==typeof e.oncreate&&n.push(u.bind(e.oncreate,t))}function M(e,t,n){"function"==typeof e.onupdate&&n.push(u.bind(e.onupdate,t))}return F.prototype=Object.create(null),F.prototype.handleEvent=function(e){var t,n=this["on"+e.type];"function"==typeof n?t=n.call(e.currentTarget,e):"function"==typeof n.handleEvent&&n.handleEvent(e),this._&&!1!==e.redraw&&(0,this._)(),!1===t&&(e.preventDefault(),e.stopPropagation())},function(t,o,l){if(!t)throw new TypeError("DOM element being rendered to does not exist.");if(null!=$&&t.contains($))throw new TypeError("Node is currently being rendered to and thus is locked.");var i=n,a=$,u=[],f=s(),c=t.namespaceURI;$=t,n="function"==typeof l?l:void 0,r={};try{null==t.vnodes&&(t.textContent=""),o=e.normalizeChildren(Array.isArray(o)?o:[o]),h(t,t.vnodes,o,u,null,"http://www.w3.org/1999/xhtml"===c?void 0:c),t.vnodes=o,null!=f&&s()!==f&&"function"==typeof f.focus&&f.focus();for(var d=0;d<u.length;d++)u[d]()}finally{n=i,$=a}}}("undefined"!=typeof window?window:null),m=function(t,n,r){var o=[],l=!1,i=-1;function a(){for(i=0;i<o.length;i+=2)try{t(o[i],e(o[i+1]),u)}catch(e){r.error(e)}i=-1}function u(){l||(l=!0,n((function(){l=!1,a()})))}return u.sync=a,{mount:function(n,r){if(null!=r&&null==r.view&&"function"!=typeof r)throw new TypeError("m.mount expects a component, not a vnode.");var l=o.indexOf(n);l>=0&&(o.splice(l,2),l<=i&&(i-=2),t(n,[])),null!=r&&(o.push(n,r),t(n,e(r),u))},redraw:u}}(p,"undefined"!=typeof requestAnimationFrame?requestAnimationFrame:null,"undefined"!=typeof console?console:null),v=function(e){if("[object Object]"!==Object.prototype.toString.call(e))return"";var t=[];for(var n in e)r(n,e[n]);return t.join("&");function r(e,n){if(Array.isArray(n))for(var o=0;o<n.length;o++)r(e+"["+o+"]",n[o]);else if("[object Object]"===Object.prototype.toString.call(n))for(var o in n)r(e+"["+o+"]",n[o]);else t.push(encodeURIComponent(e)+(null!=n&&""!==n?"="+encodeURIComponent(n):""))}},h=Object.assign||function(e,t){for(var r in t)n.call(t,r)&&(e[r]=t[r])},y=function(e,t){if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Template parameter names must be separated by either a '/', '-', or '.'.");if(null==t)return e;var n=e.indexOf("?"),r=e.indexOf("#"),o=r<0?e.length:r,l=n<0?o:n,i=e.slice(0,l),a={};h(a,t);var u=i.replace(/:([^\/\.-]+)(\.{3})?/g,(function(e,n,r){return delete a[n],null==t[n]?e:r?t[n]:encodeURIComponent(String(t[n]))})),s=u.indexOf("?"),f=u.indexOf("#"),c=f<0?u.length:f,d=s<0?c:s,p=u.slice(0,d);n>=0&&(p+=e.slice(n,o)),s>=0&&(p+=(n<0?"?":"&")+u.slice(s,c));var m=v(a);return m&&(p+=(n<0&&s<0?"?":"&")+m),r>=0&&(p+=e.slice(r)),f>=0&&(p+=(r<0?"":"&")+u.slice(f)),p},g=function(e,t){function r(e){return new Promise(e)}function o(e,t){for(var r in e.headers)if(n.call(e.headers,r)&&r.toLowerCase()===t)return!0;return!1}return r.prototype=Promise.prototype,r.__proto__=Promise,{request:function(l,i){"string"!=typeof l?(i=l,l=l.url):null==i&&(i={});var a=function(t,r){return new Promise((function(l,i){t=y(t,r.params);var a,u=null!=r.method?r.method.toUpperCase():"GET",s=r.body,f=(null==r.serialize||r.serialize===JSON.serialize)&&!(s instanceof e.FormData||s instanceof e.URLSearchParams),c=r.responseType||("function"==typeof r.extract?"":"json"),d=new e.XMLHttpRequest,p=!1,m=!1,v=d,h=d.abort;for(var g in d.abort=function(){p=!0,h.call(this)},d.open(u,t,!1!==r.async,"string"==typeof r.user?r.user:void 0,"string"==typeof r.password?r.password:void 0),f&&null!=s&&!o(r,"content-type")&&d.setRequestHeader("Content-Type","application/json; charset=utf-8"),"function"==typeof r.deserialize||o(r,"accept")||d.setRequestHeader("Accept","application/json, text/*"),r.withCredentials&&(d.withCredentials=r.withCredentials),r.timeout&&(d.timeout=r.timeout),d.responseType=c,r.headers)n.call(r.headers,g)&&d.setRequestHeader(g,r.headers[g]);d.onreadystatechange=function(e){if(!p&&4===e.target.readyState)try{var n,o=e.target.status>=200&&e.target.status<300||304===e.target.status||/^file:\/\//i.test(t),a=e.target.response;if("json"===c){if(!e.target.responseType&&"function"!=typeof r.extract)try{a=JSON.parse(e.target.responseText)}catch(e){a=null}}else c&&"text"!==c||null==a&&(a=e.target.responseText);if("function"==typeof r.extract?(a=r.extract(e.target,r),o=!0):"function"==typeof r.deserialize&&(a=r.deserialize(a)),o){if("function"==typeof r.type)if(Array.isArray(a))for(var u=0;u<a.length;u++)a[u]=new r.type(a[u]);else a=new r.type(a);l(a)}else{var s=function(){try{n=e.target.responseText}catch(e){n=a}var t=new Error(n);t.code=e.target.status,t.response=a,i(t)};0===d.status?setTimeout((function(){m||s()})):s()}}catch(e){i(e)}},d.ontimeout=function(e){m=!0;var t=new Error("Request timed out");t.code=e.target.status,i(t)},"function"==typeof r.config&&(d=r.config(d,r,t)||d)!==v&&(a=d.abort,d.abort=function(){p=!0,a.call(this)}),null==s?d.send():"function"==typeof r.serialize?d.send(r.serialize(s)):s instanceof e.FormData||s instanceof e.URLSearchParams?d.send(s):d.send(JSON.stringify(s))}))}(l,i);if(!0===i.background)return a;var u=0;function s(){0==--u&&"function"==typeof t&&t()}return function e(t){var n=t.then;return t.constructor=r,t.then=function(){u++;var r=n.apply(t,arguments);return r.then(s,(function(e){if(s(),0===u)throw e})),e(r)},t}(a)}}}("undefined"!=typeof window?window:null,m.redraw),w=m,b=f,x=function(){return u.apply(this,arguments)};x.m=u,x.trust=u.trust,x.fragment=u.fragment,x.Fragment="[",x.mount=w.mount;var k=u;function S(e){try{return decodeURIComponent(e)}catch(t){return e}}var E=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},o=0;o<t.length;o++){var l=t[o].split("="),i=S(l[0]),a=2===l.length?S(l[1]):"";"true"===a?a=!0:"false"===a&&(a=!1);var u=i.split(/\]\[?|\[/),s=r;i.indexOf("[")>-1&&u.pop();for(var f=0;f<u.length;f++){var c=u[f],d=u[f+1],p=""==d||!isNaN(parseInt(d,10));if(""===c)null==n[i=u.slice(0,f).join()]&&(n[i]=Array.isArray(s)?s.length:0),c=n[i]++;else if("__proto__"===c)break;if(f===u.length-1)s[c]=a;else{var m=Object.getOwnPropertyDescriptor(s,c);null!=m&&(m=m.value),null==m&&(s[c]=m=p?[]:{}),s=m}}}return r},z=function(e){var t=e.indexOf("?"),n=e.indexOf("#"),r=n<0?e.length:n,o=t<0?r:t,l=e.slice(0,o).replace(/\/{2,}/g,"/");return l?"/"!==l[0]&&(l="/"+l):l="/",{path:l,params:t<0?{}:E(e.slice(t+1,r))}},j=new RegExp("^(?:key|oninit|oncreate|onbeforeupdate|onupdate|onbeforeremove|onremove)$"),A=function(e,t){var r={};if(null!=t)for(var o in e)n.call(e,o)&&!j.test(o)&&t.indexOf(o)<0&&(r[o]=e[o]);else for(var o in e)n.call(e,o)&&!j.test(o)&&(r[o]=e[o]);return r},C={};function O(e){try{return decodeURIComponent(e)}catch(t){return e}}x.route=function(t,n){var r,o,l,i,a,u,s=null==t?null:"function"==typeof t.setImmediate?t.setImmediate:t.setTimeout,f=Promise.resolve(),c=!1,d=!1,p=0,m=C,v={onbeforeupdate:function(){return!(!(p=p?2:1)||C===m)},onremove:function(){t.removeEventListener("popstate",b,!1),t.removeEventListener("hashchange",w,!1)},view:function(){if(p&&C!==m){var t=[e(l,i.key,i)];return m&&(t=m.render(t[0])),t}}},g=S.SKIP={};function w(){c=!1;var e=t.location.hash;"#"!==S.prefix[0]&&(e=t.location.search+e,"?"!==S.prefix[0]&&"/"!==(e=t.location.pathname+e)[0]&&(e="/"+e));var s=e.concat().replace(/(?:%[a-f89][a-f0-9])+/gim,O).slice(S.prefix.length),d=z(s);function v(e){console.error(e),x(o,null,{replace:!0})}h(d.params,t.history.state),function e(t){for(;t<r.length;t++)if(r[t].check(d)){var c=r[t].component,h=r[t].route,y=c,w=u=function(r){if(w===u){if(r===g)return e(t+1);l=null==r||"function"!=typeof r.view&&"function"!=typeof r?"div":r,i=d.params,a=s,u=null,m=c.render?c:null,2===p?n.redraw():(p=2,n.redraw.sync())}};return void(c.view||"function"==typeof c?(c={},w(y)):c.onmatch?f.then((function(){return c.onmatch(d.params,s,h)})).then(w,s===o?null:v):w("div"))}if(s===o)throw new Error("Could not resolve default route "+o+".");x(o,null,{replace:!0})}(0)}function b(){c||(c=!0,s(w))}function x(e,n,r){if(e=y(e,n),d){b();var o=r?r.state:null,l=r?r.title:null;r&&r.replace?t.history.replaceState(o,l,S.prefix+e):t.history.pushState(o,l,S.prefix+e)}else t.location.href=S.prefix+e}function S(e,l,i){if(!e)throw new TypeError("DOM element being rendered to does not exist.");if(r=Object.keys(i).map((function(e){if("/"!==e[0])throw new SyntaxError("Routes must start with a '/'.");if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Route parameter names must be separated with either '/', '.', or '-'.");return{route:e,component:i[e],check:(t=e,n=z(t),r=Object.keys(n.params),o=[],l=new RegExp("^"+n.path.replace(/:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g,(function(e,t,n){return null==t?"\\"+e:(o.push({k:t,r:"..."===n}),"..."===n?"(.*)":"."===n?"([^/]+)\\.":"([^/]+)"+(n||""))}))+"$"),function(e){for(var t=0;t<r.length;t++)if(n.params[r[t]]!==e.params[r[t]])return!1;if(!o.length)return l.test(e.path);var i=l.exec(e.path);if(null==i)return!1;for(t=0;t<o.length;t++)e.params[o[t].k]=o[t].r?i[t+1]:decodeURIComponent(i[t+1]);return!0})};var t,n,r,o,l})),o=l,null!=l){var a=z(l);if(!r.some((function(e){return e.check(a)})))throw new ReferenceError("Default route doesn't match any known routes.")}"function"==typeof t.history.pushState?t.addEventListener("popstate",b,!1):"#"===S.prefix[0]&&t.addEventListener("hashchange",w,!1),d=!0,n.mount(e,v),w()}return S.set=function(e,t,n){null!=u&&((n=n||{}).replace=!0),u=null,x(e,t,n)},S.get=function(){return a},S.prefix="#!",S.Link={view:function(e){var t,n,r,o=k(e.attrs.selector||"a",A(e.attrs,["options","params","selector","onclick"]),e.children);return(o.attrs.disabled=Boolean(o.attrs.disabled))?(o.attrs.href=null,o.attrs["aria-disabled"]="true"):(t=e.attrs.options,n=e.attrs.onclick,r=y(o.attrs.href,e.attrs.params),o.attrs.href=S.prefix+r,o.attrs.onclick=function(e){var o;"function"==typeof n?o=n.call(e.currentTarget,e):null==n||"object"!=typeof n||"function"==typeof n.handleEvent&&n.handleEvent(e),!1===o||e.defaultPrevented||0!==e.button&&0!==e.which&&1!==e.which||e.currentTarget.target&&"_self"!==e.currentTarget.target||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),e.redraw=!1,S.set(r,null,t))}),o}},S.param=function(e){return i&&null!=e?i[e]:i},S}("undefined"!=typeof window?window:null,w),x.render=p,x.redraw=w.redraw,x.request=g.request,x.parseQueryString=E,x.buildQueryString=v,x.parsePathname=z,x.buildPathname=y,x.vnode=e,x.censor=A,x.domFor=b.domFor,"undefined"!=typeof module?module.exports=x:window.m=x}(); |
{ | ||
"name": "mithril", | ||
"version": "2.2.3-next.3", | ||
"version": "2.2.3", | ||
"description": "A framework for building brilliant applications", | ||
@@ -28,3 +28,3 @@ "author": "Leo Horie", | ||
"test:js": "ospec", | ||
"cover": "istanbul cover --print both ospec/bin/ospec" | ||
"cover": "istanbul cover --print both ospec" | ||
}, | ||
@@ -47,3 +47,3 @@ "devDependencies": { | ||
"npm-run-all": "^4.1.5", | ||
"ospec": "^4.0.1", | ||
"ospec": "4.1.6", | ||
"pinpoint": "^1.1.0", | ||
@@ -56,5 +56,2 @@ "request": "^2.88.0", | ||
}, | ||
"bin": { | ||
"ospec": "./ospec/bin/ospec" | ||
}, | ||
"lint-staged": { | ||
@@ -65,6 +62,3 @@ "*.js": [ | ||
] | ||
}, | ||
"dependencies": { | ||
"ospec": "4.0.0" | ||
} | ||
} |
@@ -18,3 +18,3 @@ # Mithril.js | ||
A modern client-side JavaScript framework for building Single Page Applications. It's small (<!-- size -->9.17 KB<!-- /size --> gzipped), fast and provides routing and XHR utilities out of the box. | ||
A modern client-side JavaScript framework for building Single Page Applications. It's small (<!-- size -->9.14 KB<!-- /size --> gzipped), fast and provides routing and XHR utilities out of the box. | ||
@@ -21,0 +21,0 @@ Mithril.js is used by companies like Vimeo and Nike, and open source platforms like Lichess 👍. |
"use strict" | ||
var Vnode = require("../render/vnode") | ||
var df = require("../render/domFor") | ||
var delayedRemoval = df.delayedRemoval | ||
var domFor = df.domFor | ||
module.exports = function($window) { | ||
var $doc = $window && $window.document | ||
var currentRedraw | ||
@@ -14,2 +16,5 @@ var nameSpace = { | ||
var currentRedraw | ||
var currentRender | ||
function getNameSpace(vnode) { | ||
@@ -71,3 +76,3 @@ return vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag] | ||
vnode.dom = $doc.createTextNode(vnode.children) | ||
insertNode(parent, vnode.dom, nextSibling) | ||
insertDOM(parent, vnode.dom, nextSibling) | ||
} | ||
@@ -92,10 +97,8 @@ var possibleParents = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"} | ||
// Capture nodes to remove, so we don't confuse them. | ||
vnode.instance = [] | ||
var fragment = $doc.createDocumentFragment() | ||
var child | ||
while (child = temp.firstChild) { | ||
vnode.instance.push(child) | ||
fragment.appendChild(child) | ||
} | ||
insertNode(parent, fragment, nextSibling) | ||
insertDOM(parent, fragment, nextSibling) | ||
} | ||
@@ -110,3 +113,3 @@ function createFragment(parent, vnode, hooks, ns, nextSibling) { | ||
vnode.domSize = fragment.childNodes.length | ||
insertNode(parent, fragment, nextSibling) | ||
insertDOM(parent, fragment, nextSibling) | ||
} | ||
@@ -129,3 +132,3 @@ function createElement(parent, vnode, hooks, ns, nextSibling) { | ||
insertNode(parent, element, nextSibling) | ||
insertDOM(parent, element, nextSibling) | ||
@@ -327,5 +330,5 @@ if (!maybeSetContentEditable(vnode)) { | ||
topSibling = getNextSibling(old, oldStart, nextSibling) | ||
moveNodes(parent, oe, topSibling) | ||
moveDOM(parent, oe, topSibling) | ||
if (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns) | ||
if (++start <= --end) moveNodes(parent, o, nextSibling) | ||
if (++start <= --end) moveDOM(parent, o, nextSibling) | ||
if (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns) | ||
@@ -382,3 +385,3 @@ if (ve.dom != null) nextSibling = ve.dom | ||
if (lisIndices[li] === i - start) li-- | ||
else moveNodes(parent, v, nextSibling) | ||
else moveDOM(parent, v, nextSibling) | ||
} | ||
@@ -431,3 +434,3 @@ if (v.dom != null) nextSibling = vnodes[i].dom | ||
if (old.children !== vnode.children) { | ||
removeHTML(parent, old) | ||
removeDOM(parent, old, undefined) | ||
createHTML(parent, vnode, ns, nextSibling) | ||
@@ -438,3 +441,2 @@ } | ||
vnode.domSize = old.domSize | ||
vnode.instance = old.instance | ||
} | ||
@@ -555,42 +557,18 @@ } | ||
// This covers a really specific edge case: | ||
// - Parent node is keyed and contains child | ||
// - Child is removed, returns unresolved promise in `onbeforeremove` | ||
// - Parent node is moved in keyed diff | ||
// - Remaining children still need moved appropriately | ||
// | ||
// Ideally, I'd track removed nodes as well, but that introduces a lot more | ||
// complexity and I'm not exactly interested in doing that. | ||
function moveNodes(parent, vnode, nextSibling) { | ||
var frag = $doc.createDocumentFragment() | ||
moveChildToFrag(parent, frag, vnode) | ||
insertNode(parent, frag, nextSibling) | ||
} | ||
function moveChildToFrag(parent, frag, vnode) { | ||
// Dodge the recursion overhead in a few of the most common cases. | ||
while (vnode.dom != null && vnode.dom.parentNode === parent) { | ||
if (typeof vnode.tag !== "string") { | ||
vnode = vnode.instance | ||
if (vnode != null) continue | ||
} else if (vnode.tag === "<") { | ||
for (var i = 0; i < vnode.instance.length; i++) { | ||
frag.appendChild(vnode.instance[i]) | ||
} | ||
} else if (vnode.tag !== "[") { | ||
// Don't recurse for text nodes *or* elements, just fragments | ||
frag.appendChild(vnode.dom) | ||
} else if (vnode.children.length === 1) { | ||
vnode = vnode.children[0] | ||
if (vnode != null) continue | ||
// This handles fragments with zombie children (removed from vdom, but persisted in DOM through onbeforeremove) | ||
function moveDOM(parent, vnode, nextSibling) { | ||
if (vnode.dom != null) { | ||
var target | ||
if (vnode.domSize == null) { | ||
// don't allocate for the common case | ||
target = vnode.dom | ||
} else { | ||
for (var i = 0; i < vnode.children.length; i++) { | ||
var child = vnode.children[i] | ||
if (child != null) moveChildToFrag(parent, frag, child) | ||
} | ||
target = $doc.createDocumentFragment() | ||
for (var dom of domFor(vnode)) target.appendChild(dom) | ||
} | ||
break | ||
insertDOM(parent, target, nextSibling) | ||
} | ||
} | ||
function insertNode(parent, dom, nextSibling) { | ||
function insertDOM(parent, dom, nextSibling) { | ||
if (nextSibling != null) parent.insertBefore(dom, nextSibling) | ||
@@ -641,61 +619,50 @@ else parent.appendChild(dom) | ||
checkState(vnode, original) | ||
var generation | ||
// If we can, try to fast-path it and avoid all the overhead of awaiting | ||
if (!mask) { | ||
onremove(vnode) | ||
removeChild(parent, vnode) | ||
removeDOM(parent, vnode, generation) | ||
} else { | ||
generation = currentRender | ||
for (var dom of domFor(vnode)) delayedRemoval.set(dom, generation) | ||
if (stateResult != null) { | ||
var next = function () { | ||
stateResult.finally(function () { | ||
// eslint-disable-next-line no-bitwise | ||
if (mask & 1) { mask &= 2; if (!mask) reallyRemove() } | ||
} | ||
stateResult.then(next, next) | ||
if (mask & 1) { | ||
// eslint-disable-next-line no-bitwise | ||
mask &= 2 | ||
if (!mask) { | ||
checkState(vnode, original) | ||
onremove(vnode) | ||
removeDOM(parent, vnode, generation) | ||
} | ||
} | ||
}) | ||
} | ||
if (attrsResult != null) { | ||
var next = function () { | ||
attrsResult.finally(function () { | ||
// eslint-disable-next-line no-bitwise | ||
if (mask & 2) { mask &= 1; if (!mask) reallyRemove() } | ||
} | ||
attrsResult.then(next, next) | ||
if (mask & 2) { | ||
// eslint-disable-next-line no-bitwise | ||
mask &= 1 | ||
if (!mask) { | ||
checkState(vnode, original) | ||
onremove(vnode) | ||
removeDOM(parent, vnode, generation) | ||
} | ||
} | ||
}) | ||
} | ||
} | ||
function reallyRemove() { | ||
checkState(vnode, original) | ||
onremove(vnode) | ||
removeChild(parent, vnode) | ||
} | ||
} | ||
function removeHTML(parent, vnode) { | ||
for (var i = 0; i < vnode.instance.length; i++) { | ||
parent.removeChild(vnode.instance[i]) | ||
function removeDOM(parent, vnode, generation) { | ||
if (vnode.dom == null) return | ||
if (vnode.domSize == null) { | ||
// don't allocate for the common case | ||
if (delayedRemoval.get(vnode.dom) === generation) parent.removeChild(vnode.dom) | ||
} else { | ||
for (var dom of domFor(vnode, {generation})) parent.removeChild(dom) | ||
} | ||
} | ||
function removeChild(parent, vnode) { | ||
// Dodge the recursion overhead in a few of the most common cases. | ||
while (vnode.dom != null && vnode.dom.parentNode === parent) { | ||
if (typeof vnode.tag !== "string") { | ||
vnode = vnode.instance | ||
if (vnode != null) continue | ||
} else if (vnode.tag === "<") { | ||
removeHTML(parent, vnode) | ||
} else { | ||
if (vnode.tag !== "[") { | ||
parent.removeChild(vnode.dom) | ||
if (!Array.isArray(vnode.children)) break | ||
} | ||
if (vnode.children.length === 1) { | ||
vnode = vnode.children[0] | ||
if (vnode != null) continue | ||
} else { | ||
for (var i = 0; i < vnode.children.length; i++) { | ||
var child = vnode.children[i] | ||
if (child != null) removeChild(parent, child) | ||
} | ||
} | ||
} | ||
break | ||
} | ||
} | ||
function onremove(vnode) { | ||
@@ -847,6 +814,6 @@ if (typeof vnode.tag !== "string" && typeof vnode.state.onremove === "function") callHook.call(vnode.state.onremove, vnode) | ||
// New style is missing, just clear it. | ||
element.style.cssText = "" | ||
element.style = "" | ||
} else if (typeof style !== "object") { | ||
// New style is a string, let engine deal with patching. | ||
element.style.cssText = style | ||
element.style = style | ||
} else if (old == null || typeof old !== "object") { | ||
@@ -976,2 +943,3 @@ // `old` is missing or a string, `style` is an object. | ||
currentRedraw = typeof redraw === "function" ? redraw : undefined | ||
currentRender = {} | ||
try { | ||
@@ -978,0 +946,0 @@ // First time rendering into a node clears it out |
@@ -77,5 +77,5 @@ "use strict" | ||
}) | ||
o("calls remove after onbeforeremove resolves", function(done) { | ||
o("calls onremove after onbeforeremove resolves", function(done) { | ||
var spy = o.spy() | ||
var vnode = fragment({onbeforeremove: remove, onremove: spy}, "a") | ||
var vnode = fragment({onbeforeremove: onbeforeremove, onremove: spy}, "a") | ||
@@ -85,6 +85,7 @@ render(root, vnode) | ||
function remove(node) { | ||
function onbeforeremove(node) { | ||
o(node).equals(vnode) | ||
o(root.childNodes.length).equals(1) | ||
o(root.firstChild).equals(vnode.dom) | ||
o(spy.callCount).equals(0) | ||
@@ -108,13 +109,2 @@ callAsync(function() { | ||
}) | ||
o("does not recycle when there's an onbeforeremove", function() { | ||
var remove = function() {} | ||
var vnode = m("div", {key: 1, onbeforeremove: remove}) | ||
var updated = m("div", {key: 1, onbeforeremove: remove}) | ||
render(root, vnode) | ||
render(root, []) | ||
render(root, updated) | ||
o(vnode.dom).notEquals(updated.dom) | ||
}) | ||
o("does not leave elements out of order during removal", function(done) { | ||
@@ -121,0 +111,0 @@ var remove = function() {return Promise.resolve()} |
@@ -197,10 +197,11 @@ "use strict" | ||
// Warning: this test is complicated because it's replicating a race condition. | ||
o("removes correct nodes when child delays removal, parent removes, then child resolves", function () { | ||
// Sugar over the complexity - I need to test the entire tree for consistency. | ||
function expect(expectedPairs) { | ||
o("removes correct nodes in fragment when child delays removal, parent removes, then child resolves", function () { | ||
// Custom assertion - we need to test the entire tree for consistency. | ||
const template = (tpl) => (root) => { | ||
var expected = [] | ||
for (var i = 0; i < expectedPairs.length; i++) { | ||
var name = expectedPairs[i][0] | ||
var text = expectedPairs[i][1] | ||
for (var i = 0; i < tpl.length; i++) { | ||
var name = tpl[i][0] | ||
var text = tpl[i][1] | ||
expected.push({ | ||
@@ -226,190 +227,152 @@ name: name, | ||
} | ||
o(actual).deepEquals(expected) | ||
actual = JSON.stringify(actual, null, " ") | ||
expected = JSON.stringify(expected, null, " ") | ||
return { | ||
pass: actual === expected, | ||
message: | ||
`${expected} | ||
expected, got | ||
${actual}` | ||
} | ||
} | ||
var finallyCB1 | ||
var finallyCB2 | ||
var C = createComponent({ | ||
view({children}){return children}, | ||
onbeforeremove(){ | ||
return {then(){}, finally: function (fcb) { finallyCB1 = fcb }} | ||
} | ||
}) | ||
function update(id, showParent, showChild) { | ||
const removeParent = o.spy() | ||
const removeSyncChild = o.spy() | ||
const removeAsyncChild = o.spy() | ||
var resolve | ||
function update(id, showParent, showChild) { | ||
render(root, | ||
m("div", | ||
showParent && fragment( | ||
"", // Required | ||
showChild && fragment({ | ||
{onremove: removeParent}, | ||
m("a", {onremove: removeSyncChild}, "sync child"), | ||
showChild && m(C, { | ||
onbeforeremove: function () { | ||
return {then: function (r) { resolve = r }} | ||
return {then(){}, finally: function (fcb) { finallyCB2 = fcb }} | ||
}, | ||
}, | ||
m("div", id) | ||
) | ||
onremove: removeAsyncChild | ||
}, m("div", id)) | ||
) | ||
) | ||
) | ||
return {removeAsyncChild,removeParent, removeSyncChild} | ||
} | ||
update("1", true, true) | ||
expect([ | ||
["#text", ""], | ||
const hooks1 = update("1", true, true) | ||
o(root).satisfies(template([ | ||
["A", "sync child"], | ||
["DIV", "1"], | ||
]) | ||
o(resolve).equals(undefined) | ||
])) | ||
o(finallyCB1).equals(undefined) | ||
o(finallyCB2).equals(undefined) | ||
update("2", true, false) | ||
expect([ | ||
["#text", ""], | ||
const hooks2 = update("2", true, false) | ||
o(root).satisfies(template([ | ||
["A", "sync child"], | ||
["DIV", "1"], | ||
]) | ||
o(typeof resolve).equals("function") | ||
var original = resolve | ||
])) | ||
update("3", true, true) | ||
expect([ | ||
["#text", ""], | ||
o(typeof finallyCB1).equals("function") | ||
o(typeof finallyCB2).equals("function") | ||
var original1 = finallyCB1 | ||
var original2 = finallyCB2 | ||
const hooks3 = update("3", true, true) | ||
o(root).satisfies(template([ | ||
["A", "sync child"], | ||
["DIV", "1"], | ||
["DIV", "3"], | ||
]) | ||
o(resolve).equals(original) | ||
])) | ||
update("4", false, true) | ||
expect([ | ||
o(hooks3.removeParent.callCount).equals(0) | ||
o(hooks3.removeSyncChild.callCount).equals(0) | ||
o(hooks3.removeAsyncChild.callCount).equals(0) | ||
o(finallyCB1).equals(original1) | ||
o(finallyCB2).equals(original2) | ||
const hooks4 = update("4", false, true) | ||
o(root).satisfies(template([ | ||
["DIV", "1"], | ||
]) | ||
o(resolve).equals(original) | ||
])) | ||
update("5", true, true) | ||
expect([ | ||
o(hooks3.removeParent.callCount).equals(1) | ||
o(hooks3.removeSyncChild.callCount).equals(1) | ||
o(hooks3.removeAsyncChild.callCount).equals(1) | ||
o(hooks3.removeParent.args[0].tag).equals("[") | ||
o(finallyCB1).equals(original1) | ||
o(finallyCB2).equals(original2) | ||
const hooks5 = update("5", true, true) | ||
o(root).satisfies(template([ | ||
["DIV", "1"], | ||
["#text", ""], | ||
["A", "sync child"], | ||
["DIV", "5"], | ||
]) | ||
o(resolve).equals(original) | ||
])) | ||
o(finallyCB1).equals(original1) | ||
o(finallyCB2).equals(original2) | ||
resolve() | ||
expect([ | ||
["#text", ""], | ||
["DIV", "5"], | ||
]) | ||
o(resolve).equals(original) | ||
o(hooks1.removeAsyncChild.callCount).equals(0) | ||
update("6", true, true) | ||
expect([ | ||
["#text", ""], | ||
["DIV", "6"], | ||
]) | ||
o(resolve).equals(original) | ||
}) | ||
// Warning: this test is complicated because it's replicating a race condition. | ||
o("removes correct nodes when child delays removal, parent removes, then child resolves + rejects both", function () { | ||
// Sugar over the complexity - I need to test the entire tree for consistency. | ||
function expect(expectedPairs) { | ||
var expected = [] | ||
finallyCB1() | ||
for (var i = 0; i < expectedPairs.length; i++) { | ||
var name = expectedPairs[i][0] | ||
var text = expectedPairs[i][1] | ||
expected.push({ | ||
name: name, | ||
firstType: name === "#text" ? null : "#text", | ||
text: text, | ||
}) | ||
} | ||
o(hooks1.removeAsyncChild.callCount).equals(0) | ||
var actual = [] | ||
var list = root.firstChild.childNodes | ||
for (var i = 0; i < list.length; i++) { | ||
var current = list[i] | ||
var textNode = current.childNodes.length === 1 | ||
? current.firstChild | ||
: current | ||
actual.push({ | ||
name: current.nodeName, | ||
firstType: textNode === current ? null : textNode.nodeName, | ||
text: textNode.nodeValue, | ||
}) | ||
} | ||
finallyCB2() | ||
o(actual).deepEquals(expected) | ||
} | ||
o(hooks1.removeAsyncChild.callCount).equals(1) | ||
var resolve, reject | ||
o(root).satisfies(template([ | ||
["A", "sync child"], | ||
["DIV", "5"], | ||
])) | ||
o(finallyCB1).equals(original1) | ||
o(finallyCB2).equals(original2) | ||
function update(id, showParent, showChild) { | ||
render(root, | ||
m("div", | ||
showParent && fragment( | ||
"", // Required | ||
showChild && fragment({ | ||
onbeforeremove: function () { | ||
return {then: function (res, rej) { | ||
resolve = res | ||
reject = rej | ||
}} | ||
}, | ||
}, | ||
m("div", id) | ||
) | ||
) | ||
) | ||
) | ||
} | ||
const hooks6 = update("6", true, true) | ||
update("1", true, true) | ||
expect([ | ||
["#text", ""], | ||
["DIV", "1"], | ||
]) | ||
o(resolve).equals(undefined) | ||
o(root).satisfies(template([ | ||
["A", "sync child"], | ||
["DIV", "6"], | ||
])) | ||
o(finallyCB1).equals(original1) | ||
o(finallyCB2).equals(original2) | ||
update("2", true, false) | ||
expect([ | ||
["#text", ""], | ||
["DIV", "1"], | ||
]) | ||
o(typeof resolve).equals("function") | ||
var originalResolve = resolve | ||
var originalReject = reject | ||
// final tally | ||
o(hooks1.removeParent.callCount).equals(0) | ||
o(hooks1.removeSyncChild.callCount).equals(0) | ||
o(hooks1.removeAsyncChild.callCount).equals(1) | ||
update("3", true, true) | ||
expect([ | ||
["#text", ""], | ||
["DIV", "1"], | ||
["DIV", "3"], | ||
]) | ||
o(resolve).equals(originalResolve) | ||
o(reject).equals(originalReject) | ||
o(hooks2.removeParent.callCount).equals(0) | ||
o(hooks2.removeSyncChild.callCount).equals(0) | ||
o(hooks2.removeAsyncChild.callCount).equals(0) | ||
update("4", false, true) | ||
expect([ | ||
["DIV", "1"], | ||
]) | ||
o(resolve).equals(originalResolve) | ||
o(reject).equals(originalReject) | ||
o(hooks3.removeParent.callCount).equals(1) | ||
o(hooks3.removeSyncChild.callCount).equals(1) | ||
o(hooks3.removeAsyncChild.callCount).equals(1) | ||
update("5", true, true) | ||
expect([ | ||
["DIV", "1"], | ||
["#text", ""], | ||
["DIV", "5"], | ||
]) | ||
o(resolve).equals(originalResolve) | ||
o(reject).equals(originalReject) | ||
o(hooks4.removeParent.callCount).equals(0) | ||
o(hooks4.removeSyncChild.callCount).equals(0) | ||
o(hooks4.removeAsyncChild.callCount).equals(0) | ||
resolve() | ||
reject() | ||
reject() | ||
resolve() | ||
expect([ | ||
["#text", ""], | ||
["DIV", "5"], | ||
]) | ||
o(resolve).equals(originalResolve) | ||
o(reject).equals(originalReject) | ||
o(hooks5.removeParent.callCount).equals(0) | ||
o(hooks5.removeSyncChild.callCount).equals(0) | ||
o(hooks5.removeAsyncChild.callCount).equals(0) | ||
update("6", true, true) | ||
expect([ | ||
["#text", ""], | ||
["DIV", "6"], | ||
]) | ||
o(resolve).equals(originalResolve) | ||
o(reject).equals(originalReject) | ||
o(hooks6.removeParent.callCount).equals(0) | ||
o(hooks6.removeSyncChild.callCount).equals(0) | ||
o(hooks6.removeAsyncChild.callCount).equals(0) | ||
}) | ||
@@ -416,0 +379,0 @@ }) |
@@ -1,1 +0,1 @@ | ||
!function(){"use strict";t.SKIP={},t.lift=function(){var n=arguments[0];return r(Array.prototype.slice.call(arguments,1)).map((function(t){return n.apply(void 0,t)}))},t.scan=function(n,e,r){var a=r.map((function(r){var a=n(e,r);return a!==t.SKIP&&(e=a),a}));return a(e),a},t.merge=r,t.combine=e,t.scanMerge=function(n,t){var r=n.map((function(n){return n[0]})),a=e((function(){var e=arguments[arguments.length-1];return r.forEach((function(r,a){e.indexOf(r)>-1&&(t=n[a][1](t,r()))})),t}),r);return a(t),a},t["fantasy-land/of"]=t;var n=!1;function t(n){var r,i=[],u=[];function c(e){return arguments.length&&e!==t.SKIP&&(n=e,a(c)&&(c._changing(),c._state="active",i.slice().forEach((function(t,e){a(t)&&t(this[e](n))}),u.slice()))),n}return c.constructor=t,c._state=arguments.length&&n!==t.SKIP?"active":"pending",c._parents=[],c._changing=function(){a(c)&&(c._state="changing"),i.forEach((function(n){n._changing()}))},c._map=function(e,r){var a=r?t():t(e(n));return a._parents.push(c),i.push(a),u.push(e),a},c.map=function(n){return c._map(n,"active"!==c._state)},c.toJSON=function(){return null!=n&&"function"==typeof n.toJSON?n.toJSON():n},c["fantasy-land/map"]=c.map,c["fantasy-land/ap"]=function(n){return e((function(n,t){return n()(t())}),[n,c])},c._unregisterChild=function(n){var t=i.indexOf(n);-1!==t&&(i.splice(t,1),u.splice(t,1))},Object.defineProperty(c,"end",{get:function(){return r||((r=t()).map((function(n){return!0===n&&(c._parents.forEach((function(n){n._unregisterChild(c)})),c._state="ended",c._parents.length=i.length=u.length=0),n})),r)}}),c}function e(n,e){var r=e.every((function(n){if(n.constructor!==t)throw new Error("Ensure that each item passed to stream.combine/stream.merge/lift is a stream.");return"active"===n._state})),a=r?t(n.apply(null,e.concat([e]))):t(),i=[],u=e.map((function(t){return t._map((function(u){return i.push(t),(r||e.every((function(n){return"pending"!==n._state})))&&(r=!0,a(n.apply(null,e.concat([i]))),i=[]),u}),!0)})),c=a.end.map((function(n){!0===n&&(u.forEach((function(n){n.end(!0)})),c.end(!0))}));return a}function r(n){return e((function(){return n.map((function(n){return n()}))}),n)}function a(n){return"pending"===n._state||"active"===n._state||"changing"===n._state}Object.defineProperty(t,"HALT",{get:function(){return n||console.log("HALT is deprecated and has been renamed to SKIP"),n=!0,t.SKIP}}),"undefined"!=typeof module?module.exports=t:"function"!=typeof window.m||"stream"in window.m?window.m={stream:t}:window.m.stream=t}(); | ||
!function(){"use strict";t.SKIP={},t.lift=function(){var n=arguments[0],t=Array.prototype.slice.call(arguments,1);return r(t).map((function(t){return n.apply(void 0,t)}))},t.scan=function(n,e,r){var a=r.map((function(r){var a=n(e,r);return a!==t.SKIP&&(e=a),a}));return a(e),a},t.merge=r,t.combine=e,t.scanMerge=function(n,t){var r=n.map((function(n){return n[0]})),a=e((function(){var e=arguments[arguments.length-1];return r.forEach((function(r,a){e.indexOf(r)>-1&&(t=n[a][1](t,r()))})),t}),r);return a(t),a},t["fantasy-land/of"]=t;var n=!1;function t(n){var r,i=[],u=[];function c(e){return arguments.length&&e!==t.SKIP&&(n=e,a(c)&&(c._changing(),c._state="active",i.slice().forEach((function(t,e){a(t)&&t(this[e](n))}),u.slice()))),n}function o(){return(r=t()).map((function(n){return!0===n&&(c._parents.forEach((function(n){n._unregisterChild(c)})),c._state="ended",c._parents.length=i.length=u.length=0),n})),r}return c.constructor=t,c._state=arguments.length&&n!==t.SKIP?"active":"pending",c._parents=[],c._changing=function(){a(c)&&(c._state="changing"),i.forEach((function(n){n._changing()}))},c._map=function(e,r){var a=r?t():t(e(n));return a._parents.push(c),i.push(a),u.push(e),a},c.map=function(n){return c._map(n,"active"!==c._state)},c.toJSON=function(){return null!=n&&"function"==typeof n.toJSON?n.toJSON():n},c["fantasy-land/map"]=c.map,c["fantasy-land/ap"]=function(n){return e((function(n,t){return n()(t())}),[n,c])},c._unregisterChild=function(n){var t=i.indexOf(n);-1!==t&&(i.splice(t,1),u.splice(t,1))},Object.defineProperty(c,"end",{get:function(){return r||o()}}),c}function e(n,e){var r=e.every((function(n){if(n.constructor!==t)throw new Error("Ensure that each item passed to stream.combine/stream.merge/lift is a stream.");return"active"===n._state})),a=r?t(n.apply(null,e.concat([e]))):t(),i=[],u=e.map((function(t){return t._map((function(u){return i.push(t),(r||e.every((function(n){return"pending"!==n._state})))&&(r=!0,a(n.apply(null,e.concat([i]))),i=[]),u}),!0)})),c=a.end.map((function(n){!0===n&&(u.forEach((function(n){n.end(!0)})),c.end(!0))}));return a}function r(n){return e((function(){return n.map((function(n){return n()}))}),n)}function a(n){return"pending"===n._state||"active"===n._state||"changing"===n._state}Object.defineProperty(t,"HALT",{get:function(){return n||console.log("HALT is deprecated and has been renamed to SKIP"),n=!0,t.SKIP}}),"undefined"!=typeof module?module.exports=t:"function"!=typeof window.m||"stream"in window.m?window.m={stream:t}:window.m.stream=t}(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
0
1
3
1416247
185
17506
1
- Removedospec@4.0.0
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedglob@7.2.3(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedonce@1.4.0(transitive)
- Removedospec@4.0.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedwrappy@1.0.2(transitive)