@webqit/observer
Advanced tools
Comparing version 1.4.4 to 1.4.5
@@ -1,2 +0,2 @@ | ||
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e){return Array.isArray(e)},i=function(e){return e instanceof String||"string"==typeof e&&null!==e},s=function(e){return arguments.length&&(void 0===e||void 0===e)},a=function(e){return"function"==typeof e},u=function(e){return Array.isArray(e)||"object"==typeof e&&e||a(e)},l=function(e){return!Array.isArray(e)&&"object"==typeof e&&e},o=function(e,t=!0){return n(e)?e:!t&&l(e)?[e]:!1!==e&&0!==e&&function(e){return function(e){return null===e||""===e}(e)||s(e)||!1===e||0===e||u(e)&&!Object.keys(e).length}(e)?[]:function(e){return!i(e)&&!s(e.length)}(e)?Array.prototype.slice.call(e):l(e)?Object.values(e):[e]},c=function(e){return e instanceof Number||"number"==typeof e},f=function(e){return a(e)||e&&"[object function]"==={}.toString.call(e)},h=function(e){return typeof e},p=function(e,t,r=null){if(!u(e))throw new Error('Subject must be of type object; "'+h(e)+'" given!');var n,i=Symbol.for(".webqit");return(n=e[i])||(n={},Object.defineProperty(e,i,{value:n,enumerable:!1})),n.observer||(n.observer={}),!n.observer[t]&&r&&(n.observer[t]=new r(e)),n.observer[t]},b=function(e,t=1){var r=0;e.forEach(e=>{r++});var n=e.slice(e.length-r,t);return arguments.length>1?n:n[0]};function d(e){return(g(e)?e:o(e).length?[e]:[]).reduce((e,t)=>e.concat([o(t)]),[])}function g(e){return o(e).reduce((e,t)=>e||n(t),!1)}function v(e){return e.filter(e=>!e&&0!==e).length}function m(e,t){return e.length===t.length&&e.reduce((e,r,n)=>e&&r===t[n],!0)}function y(e,t){return t.reduce((t,r,n)=>t&&r===e[n],!0)}function j(e,t){return e.slice(t.length)}var w=function(e,t,r=null){return n(t)?e.filter(e=>r?t.filter(t=>r(e,t)).length:-1!==t.indexOf(e)):[]},O=class{constructor(e){this.subject=e,this.fireables=[],this.currentlyFiring=[]}add(e){return this.fireables.push(e),e}remove(e){this.fireables=this.fireables.filter(t=>t!==e)}forget(e){this.match(e).forEach(e=>{this.fireables=this.fireables.filter(t=>t!==e)})}match(e){return this.fireables.filter(t=>{var r,n,i,s=d(t.filter),a=o((t.params||{}).tags),u=d(e.filter),l=o((e.params||{}).tags);return(!e.originalHandler||t.handler===e.originalHandler)&&(!u.length||(n=s,(r=u).length===n.length&&(i=(e,t)=>m(e,n[t]),r.reduce((e,t,r)=>e&&i(t,r),!0))))&&(!l.length||l.length===a.length&&w(a,l).length===l.length)})}},E=function(e){return c(e)||!0!==e&&!1!==e&&null!==e&&""!==e&&!isNaN(1*e)},P=class{constructor(e,t){this.subject=e,this.handler=t.handler,this.filter=t.filter,this.params=t.params}disconnect(){this.disconnected=!0}},_=function(e,t){var r=void 0;return u(e)&&Object.keys(e).forEach((n,i)=>{!1!==r&&(r=t(E(n)?parseFloat(n):n,e[n],i))}),r},S=class{constructor(e,t=!1){this._={},this._.target=e,this._.cancellable=t,this._.propagationStopped=!1,this._.defaultPrevented=!1,this._.promisesInstance=null,this._.promises=[]}get target(){return this._.target}get cancellable(){return this._.cancellable}stopPropagation(){this._.propagationStopped=!0}get propagationStopped(){return this._.propagationStopped}preventDefault(){this._.defaultPrevented=!0}get defaultPrevented(){return this._.defaultPrevented}waitUntil(e){e instanceof Promise&&(this._.promises.push(e),this._.promisesInstance=null)}get promises(){return!this._.promisesInstance&&this._.promises.length&&(this._.promisesInstance=Promise.all(this._.promises)),this._.promisesInstance}respondWith(e){var t,r=l(e)&&!s(e.propagationStopped)&&!s(e.defaultPrevented);!1===e||r&&e.propagationStopped?this.stopPropagation():!1===e||r&&e.defaultPrevented?this.preventDefault():(e instanceof Promise&&(t=e)||r&&(t=e.promises))&&this.waitUntil(t)}},x=class extends P{constructor(e,t){if(super(e,t),this.filters2D=d(this.filter),this.filtersIsOriginally2D=g(this.filter),this.filtersIsDynamic=this.filters2D.filter(e=>v(o(e))).length,this.filtersIsDynamic&&this.filters2D.length>1)throw new Error('Only one "Dynamic Filter" must be observed at a time! "'+this.filters2D.map(e=>"["+e.join(", ")+"]").join(", ")+'" have been bound together.')}fire(e){if(this.disconnected||this.params.type&&(t=e=>this.params.type===e.type,!e.reduce((e,r,n)=>e||t(r,n),!1)))return;var t;const r=e=>["set","def"].includes(e.type)&&(!this.params.diff||(f(this.params.diff)?this.params.diff(e.value,e.oldValue):e.value!==e.oldValue));var n=new S(this.subject);if(this.filters2D.length){var i=e.filter(e=>this.filters2D.filter((t,n)=>{var i=this.filtersIsDynamic?t.map((t,r)=>t||0===t?t:e.path[r]||""):t;return(!this.filtersIsDynamic||!v(i))&&r(e)&&(!this.params.subtree&&m(i,e.path)||!this.params.subtree&&this.params.suptree&&y(i,e.path)&&(!E(this.params.suptree)||j(i,e.path).length<=this.params.suptree)||this.params.subtree&&e.path.length>i.length&&y(e.path,i)&&(!E(this.params.subtree)||j(e.path,i).length<=this.params.subtree))}).length);if(i.length)if(this.filtersIsOriginally2D||this.params.subtree){var s=i;l(this.filter)&&(s={...this.filter},e.forEach((e,t)=>{s[e.name]=e})),n.respondWith(this.handler(s,n))}else e.forEach((e,t)=>{n.respondWith(this.handler(e,n))})}else(this.params.subtree||e.filter(e=>m(e.path,[e.name])).length===e.length)&&e.filter(e=>r(e)).length&&n.respondWith(this.handler(e,n));return n}},D=class{constructor(e,t){if(this.subject=e,t.originalSubject||(this.originalSubject=e),!("type"in t))throw new Error("Delta type must be given in definition!");if(!("name"in t))throw new Error("Property name must be given in definition!");_(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),this.path||Object.defineProperty(this,"path",{value:[t.name],enumerable:!0}),Object.seal(this)}},V=class extends O{constructor(e){super(e),this.buffers=[]}add(e){return super.add(new x(this.subject,e))}fire(e,t){var r=new S(this.subject,t);return e=o(e,!1).map(e=>e instanceof D?e:new D(this.subject,e)),this.buffers.length?(function(e,t=1){return arguments.length>1?b(e.slice().reverse(),t).reverse():b(e.slice().reverse())}(this.buffers)(e),r):(this.currentlyFiring.filter(t=>e.filter(e=>t.type===e.type&&t.name===e.name).length).length,this.currentlyFiring.push(...e),this.fireables.forEach(n=>{if(r.propagationStopped&&t)return r;r.respondWith(n.fire(e))}),e.forEach(e=>function(e,t,r=!1){for(var n=e.indexOf(t);n>-1&&(r||!1===r);)e.splice(n,1),r>0&&r--,n=e.indexOf(t);return e}(this.currentlyFiring,e)),r)}},F=function(e,t=!0){return p(e,"observers",t?V:null)},k=class extends P{fire(e,t,r){return this.disconnected||this.filter&&!w(o(this.filter),[e.type]).length?t(...Array.prototype.slice.call(arguments,2)):this.handler(e,r,t)}},I=class{constructor(e,t){if(this.subject=e,!t.type)throw new Error("Action type must be given in definition!");_(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),Object.seal(this)}},A=class extends O{add(e){return super.add(new k(this.subject,e))}fire(e,t=null){if(e instanceof I||(e=new I(this.subject,e)),this.currentlyFiring.filter(t=>t.type===e.type&&t.name===e.name).length)return t?t():void 0;this.currentlyFiring.push(e);const r=(n,...i)=>{var s=this.fireables[n];return s?s.fire(e,(...e)=>r(n+1,...e),...i):t?t(...i):i[0]};var n=r(0);return this.currentlyFiring.pop(),n}},C=function(e,t=!0){return p(e,"interceptors",t?A:null)},T=function(e){var t;return u(e)&&(t=e[Symbol.for(".observer.proxy.target")])?t():e},W=function(e,t){if(!t||!u(t))throw new Error("Target must be of type object!");t=T(t);var r,n=function(r){return arguments.length?r:e?Object.getOwnPropertyNames(t):Object.keys(t)};return(r=C(t,!1))?r.fire({type:e?"ownKeys":"keys"},n)||[]:n()},q=function(e){return W(!1,...arguments)},H=function(e,t=null){var r={};return 2===arguments.length&&(n(e)&&n(t)?e.forEach((e,n)=>r[e]=t[n]):r[e]=t),r},N=function(e){return a(e)&&/^class\s?/.test(Function.prototype.toString.call(e))},U=function(e,t){var r=[];return function(e,t){t=(t=t||Object.prototype)&&!n(t)?[t]:t;var r=[];for(e=e;e&&(!t||t.indexOf(e)<0)&&"default"!==e.name;)r.push(e),e=e?Object.getPrototypeOf(e):null;return r}(e,t).forEach(e=>{!function(e,...t){t.forEach(t=>{e.indexOf(t)<0&&e.push(t)})}(r,...Object.getOwnPropertyNames(e))}),r};function B(e,t,r=!1,i=!1,s=!1){var a=0,o=e.shift();if((E(o)||!0===o||!1===o)&&(a=o,o=e.shift()),!e.length)throw new Error("_merge() requires two or more array/objects.");return e.forEach((e,c)=>{(u(e)||f(e))&&(r?U(e):Object.getOwnPropertyNames(e)).forEach(u=>{if(t(u,o,e,c)){var f=o[u],h=e[u];if((n(f)&&n(h)||l(f)&&l(h))&&(!0===a||a>0))o[u]=n(f)&&n(h)?[]:{},B([E(a)?a-1:a,o[u],f,h],t,r,i,s);else if(n(o)&&n(e))i?o[u]=h:o.push(h);else try{s?Object.defineProperty(o,u,Object.getOwnPropertyDescriptor(e,u)):o[u]=e[u]}catch(e){}}})}),o}var M=function(e,t=[],r=!0){var i=0;return E(arguments[0])&&u(arguments[1])&&(i=arguments[0],e=arguments[1],t=arguments[2]||[]),B([i,{},e],(e,r,i)=>f(t)?t(e):!n(t)||!t.length||t.indexOf(e)>-1,!1,!1,r)},K=function(...e){return B(e,(e,t,r)=>!0,!1,!1,!1)},Q=function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Observable subjects must be of type object; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i;if(i=F(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},z=function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Observable subjects must be of type object; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i,s=F(e),a={filter:t,handler:r,params:n};if((a.filter||!0===a.params.subtree||"auto"===a.params.subtree&&Z(e))&&Y(e,a.filter,a.params.subtree),a.params.unique&&(i=s.match({filter:t,params:n})).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},G=function(e,t,r,n=null,i={}){var s;if(e!==r&&(z(r,(r,n)=>{if(s=F(e,!1)){var i=r.map(r=>{var n=r;do{if(n.subject===e)return}while(n=n.src);var i={};return _(r,(e,t)=>{"subject"!==e&&"name"!==e&&"path"!==e&&"src"!==e&&(i[e]=t)}),i.name=t,i.path=[t].concat(r.path),i.originalSubject=r.originalSubject,i.src=r,new D(e,i)}).filter(e=>e);if(i.length)return s.fire(i,n.cancellable)}},{subtree:"auto",unique:!0,tags:[J,t,e]}),l(n)&&(s=F(e,!1)))){var a=K({name:t,type:"set",value:r,related:[t]},n);let e=s.fire(a,i.cancellable);if(i.responseObject)return e}};const J={};var L=function(e,t,r,n=null,i={}){var s;if(Q(r,null,null,{tags:[J,t,e]}),l(n)&&(s=F(e,!1))){var a=K({name:t,type:"del",oldValue:r,related:[t]},n);s.fire(a,i.cancellable)}},R=function(e,...t){var r=t.map(e=>{if(!u(e))throw new Error("Target must be of type object!");return{subject:e,subjectCopy:n(e)?e.slice(0):M(e)}}),i=e(...t);return r.map(e=>{var t,r,n=Object.keys(e.subjectCopy),i=Object.keys(e.subject),s=[],a=(t=n.concat(i),t.filter((e,t,r)=>r.indexOf(e)===t)).map(t=>{if(e.subjectCopy[t]!==e.subject[t]){s.push(t);var r={name:t,related:s,buffered:!0};return i.includes(t)?(r.type="set",r.value=e.subject[t],n.includes(t)&&(r.isUpdate=!0)):r.type="del",n.includes(t)&&(r.oldValue=e.subjectCopy[t]),u(e.subjectCopy[t])&&L(e.subject,t,e.subjectCopy[t]),u(e.subject[t])&&G(e.subject,t,e.subject[t]),r}}).filter(e=>e);if(a.length&&(r=F(e.subject,!1)))return r.fire(a)}),i},X=function(e,t,r=!1){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var i,s,a=function(r){return arguments.length?r:n(t)?H(t,e):e[t]};return i=(s=C(e))?s.fire({type:"get",name:t},a):a(),r&&n(e)&&!E(t)&&f(i)&&!N(i)?function(...t){return R(()=>i.apply(e,t),e)}:i};function Y(e,t=null,r=!1){if(!e||!u(e))throw new Error("Target must be of type object!");var n=F(e);if(n&&!n.build){n.build=r;var i=d(t),s=!i.length||i.filter(e=>!e[0]&&0!==e[0]).length?q(e):i.map(e=>e[0]),a=i.length?i.map(e=>e.slice(1)).filter(e=>e.length):null;n.subBuild=a&&a.length?a:null,s.forEach(t=>{var i=X(e,t);try{u(i)&&(G(e,t,i),(n.subBuild&&Z(i)||(_isFunction(r)?r(i):r&&Z(i)))&&Y(i,n.subBuild,r))}catch(e){}})}}const Z=e=>(e instanceof Object||e instanceof Array||e instanceof Function)&&("undefined"==typeof window||e!==window);var $=function(e,t){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var r,n=function(r){return arguments.length?r:t in e};return(r=C(e,!1))?r.fire({type:"has",name:t},n):n()},ee=function(e,t,r,s=null,a={}){if(!t||!u(t))throw new Error("Target must be of type object!");l(r)&&(a=s||{},s=null),t=T(t);var f=C(t,!1),h=F(t,!1);const p=(r,n,i,s)=>{var a,l="set";e&&(l="def",n=(a=n||{}).value);var o,c=!1;$(t,r)&&(c=!0,o=X(t,r));var p={name:r,type:l,value:n,related:i,detail:s,isUpdate:c,oldValue:o},b=function(e){return arguments.length?e:(a?Object.defineProperty(t,r,a):t[r]=n,!0)};if(f){var d=a?{type:"def",name:r,descriptor:a,related:i,detail:s,isUpdate:c,oldValue:o}:{type:"set",name:r,value:n,related:i,detail:s,isUpdate:c,oldValue:o};p.success=f.fire(d,b)}else p.success=b();return p.success&&p.value!==p.oldValue&&(u(p.oldValue)&&L(t,r,p.oldValue),u(p.value)&&(G(t,r,p.value),h&&(h.subBuild||h.build&&Z(p.value))&&Y(p.value,h.subBuild,h.build))),p};var b,d=[];n(r)||(i(r)||c(r))&&(b=o(r))?d=b.map(e=>p(e,s,b,a.detail)):l(r)&&(b=Object.keys(r))&&(d=b.map(e=>p(e,r[e],b,a.detail)));var g,v=d.filter(e=>e.success);return h?(g=h.fire(v,a.cancellable)).successCount=v.length:a.responseObject&&(g=new S(t)),a.responseObject?g:v.length>0},te=function(e,t,r=null,n=null,i={}){return ee(!1,...arguments)},re=function(e,t,r={}){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var n,i,s=(t=o(t)).map(n=>{var i;$(e,n)&&(i=X(e,n));var s,a={name:n,type:"del",related:t,detail:r.detail,oldValue:i},l=function(t){return arguments.length?t:(delete e[n],!0)};return(s=C(e,!1))?a.success=s.fire({type:"del",name:n,oldValue:i,related:t},l):a.success=l(),a.success&&u(a.oldValue)&&L(e,n,a.oldValue),a}).filter(e=>e.success);return(n=F(e,!1))?(i=n.fire(s,r.cancellable)).successCount=s.length:r.responseObject&&(i=new S(e)),r.responseObject?i:s.length>0},ne=function(e,t,r=null,n=null){return ee(!0,...arguments)},ie=function(e){return W(!0,...arguments)};var se={set:te,get:X,has:$,deleteProperty:re,del:re,defineProperty:ne,def:ne,keys:q,ownKeys:ie,intercept:function(e,t,r,n={}){if(!u(e))throw new Error('Object must be of type subject; "'+h(r)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),!f(r))throw new Error('Callback must be a function; "'+h(r)+'" given!');var i,s=C(e),a={filter:t,handler:r,params:n};if(a.params.unique&&(i=s.match(a)).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},unintercept:function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Object must be of type subject; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i;if(i=C(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},proxy:function(e){if(!u(e))throw new Error('Object must be of type subject; "'+h(e)+'" given!');var t=new Proxy(e,{get:(e,r)=>{if(r===Symbol.for(".observer.proxy.target"))return()=>e;var n=X(e,r);return f(n)&&!N(n)?n.bind(t):n},set:(...e)=>(te(...e),!0),has:$,deleteProperty:(...e)=>(re(...e),!0),defineProperty:(...e)=>(ne(...e),!0),ownKeys:ie});return t},unproxy:T,observe:z,unobserve:Q,closure:R,init:function(e,t){var r,n=Symbol.for(".observer.init.props");(r=e[n])||(r=[],Object.defineProperty(e,n,{value:r,enumerable:!1})),o(t).forEach(t=>{if(!r.includes(t)){r.push(t);var n,i,s=e[t],a=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!(t in e)};"value"in a&&delete a.value,"writable"in a&&delete a.writable,a.get=()=>{if(n)return s;n=!0;var r=X(e,t);return n=!1,r},a.set=r=>{if(i)return s=r,!0;i=!0;te(e,t,r);return i=!1,!0},Object.defineProperty(e,t,a)}})},build:Y,link:G,unlink:L,getObservers:F};window.WebQit||(window.WebQit={}),window.WebQit.Observer=se}]); | ||
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e){return Array.isArray(e)},i=function(e){return e instanceof String||"string"==typeof e&&null!==e},s=function(e){return arguments.length&&(void 0===e||void 0===e)},a=function(e){return"function"==typeof e},u=function(e){return Array.isArray(e)||"object"==typeof e&&e||a(e)},l=function(e){return!Array.isArray(e)&&"object"==typeof e&&e},o=function(e,t=!0){return n(e)?e:!t&&l(e)?[e]:!1!==e&&0!==e&&function(e){return function(e){return null===e||""===e}(e)||s(e)||!1===e||0===e||u(e)&&!Object.keys(e).length}(e)?[]:function(e){return!i(e)&&!s(e.length)}(e)?Array.prototype.slice.call(e):l(e)?Object.values(e):[e]},c=function(e){return e instanceof Number||"number"==typeof e},f=function(e){return a(e)||e&&"[object function]"==={}.toString.call(e)},h=function(e){return typeof e},p=function(e,t,r=null){if(!u(e))throw new Error('Subject must be of type object; "'+h(e)+'" given!');var n,i=Symbol.for(".webqit");return(n=e[i])||(n={},Object.defineProperty(e,i,{value:n,enumerable:!1})),n.observer||(n.observer={}),!n.observer[t]&&r&&(n.observer[t]=new r(e)),n.observer[t]},b=function(e,t=1){var r=0;e.forEach(e=>{r++});var n=e.slice(e.length-r,t);return arguments.length>1?n:n[0]};function d(e){return(g(e)?e:o(e).length?[e]:[]).reduce((e,t)=>e.concat([o(t)]),[])}function g(e){return o(e).reduce((e,t)=>e||n(t),!1)}function v(e){return e.filter(e=>!e&&0!==e).length}function m(e,t){return e.length===t.length&&e.reduce((e,r,n)=>e&&r===t[n],!0)}function y(e,t){return t.reduce((t,r,n)=>t&&r===e[n],!0)}function j(e,t){return e.slice(t.length)}var w=function(e,t,r=null){return n(t)?e.filter(e=>r?t.filter(t=>r(e,t)).length:-1!==t.indexOf(e)):[]},O=class{constructor(e){this.subject=e,this.fireables=[],this.currentlyFiring=[]}add(e){return this.fireables.push(e),e}remove(e){this.fireables=this.fireables.filter(t=>t!==e)}forget(e){this.match(e).forEach(e=>{this.fireables=this.fireables.filter(t=>t!==e)})}match(e){return this.fireables.filter(t=>{var r,n,i,s=d(t.filter),a=o((t.params||{}).tags),u=d(e.filter),l=o((e.params||{}).tags);return(!e.originalHandler||t.handler===e.originalHandler)&&(!u.length||(n=s,(r=u).length===n.length&&(i=(e,t)=>m(e,n[t]),r.reduce((e,t,r)=>e&&i(t,r),!0))))&&(!l.length||l.length===a.length&&w(a,l).length===l.length)})}},E=function(e){return c(e)||!0!==e&&!1!==e&&null!==e&&""!==e&&!isNaN(1*e)},P=class{constructor(e,t){this.subject=e,this.handler=t.handler,this.filter=t.filter,this.params=t.params}disconnect(){this.disconnected=!0}},_=function(e,t){var r=void 0;return u(e)&&Object.keys(e).forEach((n,i)=>{!1!==r&&(r=t(E(n)?parseFloat(n):n,e[n],i))}),r},S=class{constructor(e,t=!1){this._={},this._.target=e,this._.cancellable=t,this._.propagationStopped=!1,this._.defaultPrevented=!1,this._.promisesInstance=null,this._.promises=[]}get target(){return this._.target}get cancellable(){return this._.cancellable}stopPropagation(){this._.propagationStopped=!0}get propagationStopped(){return this._.propagationStopped}preventDefault(){this._.defaultPrevented=!0}get defaultPrevented(){return this._.defaultPrevented}waitUntil(e){e instanceof Promise&&(this._.promises.push(e),this._.promisesInstance=null)}get promises(){return!this._.promisesInstance&&this._.promises.length&&(this._.promisesInstance=Promise.all(this._.promises)),this._.promisesInstance}respondWith(e){var t,r=l(e)&&!s(e.propagationStopped)&&!s(e.defaultPrevented);!1===e||r&&e.propagationStopped?this.stopPropagation():!1===e||r&&e.defaultPrevented?this.preventDefault():(e instanceof Promise&&(t=e)||r&&(t=e.promises))&&this.waitUntil(t)}},x=class extends P{constructor(e,t){if(super(e,t),this.filters2D=d(this.filter),this.filtersIsOriginally2D=g(this.filter),this.filtersIsDynamic=this.filters2D.filter(e=>v(o(e))).length,this.filtersIsDynamic&&this.filters2D.length>1)throw new Error('Only one "Dynamic Filter" must be observed at a time! "'+this.filters2D.map(e=>"["+e.join(", ")+"]").join(", ")+'" have been bound together.')}fire(e){if(this.disconnected||this.params.type&&(t=e=>this.params.type===e.type,!e.reduce((e,r,n)=>e||t(r,n),!1)))return;var t;const r=e=>["set","def"].includes(e.type)&&(!this.params.diff||(f(this.params.diff)?this.params.diff(e.value,e.oldValue):e.value!==e.oldValue));var n=new S(this.subject);if(this.filters2D.length){var i=e.filter(e=>this.filters2D.filter((t,n)=>{var i=this.filtersIsDynamic?t.map((t,r)=>t||0===t?t:e.path[r]||""):t;return(!this.filtersIsDynamic||!v(i))&&r(e)&&(!this.params.subtree&&m(i,e.path)||this.params.suptree&&y(i,e.path)&&(!E(this.params.suptree)||j(i,e.path).length<=this.params.suptree)||this.params.subtree&&e.path.length>=i.length&&y(e.path,i)&&(!E(this.params.subtree)||j(e.path,i).length<=this.params.subtree))}).length);if(i.length)if(this.filtersIsOriginally2D||this.params.subtree){var s=i;l(this.filter)&&(s={...this.filter},i.forEach((e,t)=>{s[e.name]=e})),n.respondWith(this.handler(s,n))}else i.forEach((e,t)=>{n.respondWith(this.handler(e,n))})}else(this.params.subtree||e.filter(e=>m(e.path,[e.name])).length===e.length)&&e.filter(e=>r(e)).length&&n.respondWith(this.handler(e,n));return n}},D=class{constructor(e,t){if(this.subject=e,t.originalSubject||(this.originalSubject=e),!("type"in t))throw new Error("Delta type must be given in definition!");if(!("name"in t))throw new Error("Property name must be given in definition!");_(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),this.path||Object.defineProperty(this,"path",{value:[t.name],enumerable:!0}),Object.seal(this)}},V=class extends O{constructor(e){super(e),this.buffers=[]}add(e){return super.add(new x(this.subject,e))}fire(e,t){var r=new S(this.subject,t);return e=o(e,!1).map(e=>e instanceof D?e:new D(this.subject,e)),this.buffers.length?(function(e,t=1){return arguments.length>1?b(e.slice().reverse(),t).reverse():b(e.slice().reverse())}(this.buffers)(e),r):(this.currentlyFiring.filter(t=>e.filter(e=>t.type===e.type&&t.name===e.name).length).length,this.currentlyFiring.push(...e),this.fireables.forEach(n=>{if(r.propagationStopped&&t)return r;r.respondWith(n.fire(e))}),e.forEach(e=>function(e,t,r=!1){for(var n=e.indexOf(t);n>-1&&(r||!1===r);)e.splice(n,1),r>0&&r--,n=e.indexOf(t);return e}(this.currentlyFiring,e)),r)}},F=function(e,t=!0){return p(e,"observers",t?V:null)},k=class extends P{fire(e,t,r){return this.disconnected||this.filter&&!w(o(this.filter),[e.type]).length?t(...Array.prototype.slice.call(arguments,2)):this.handler(e,r,t)}},I=class{constructor(e,t){if(this.subject=e,!t.type)throw new Error("Action type must be given in definition!");_(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),Object.seal(this)}},A=class extends O{add(e){return super.add(new k(this.subject,e))}fire(e,t=null){if(e instanceof I||(e=new I(this.subject,e)),this.currentlyFiring.filter(t=>t.type===e.type&&t.name===e.name).length)return t?t():void 0;this.currentlyFiring.push(e);const r=(n,...i)=>{var s=this.fireables[n];return s?s.fire(e,(...e)=>r(n+1,...e),...i):t?t(...i):i[0]};var n=r(0);return this.currentlyFiring.pop(),n}},C=function(e,t=!0){return p(e,"interceptors",t?A:null)},T=function(e){var t;return u(e)&&(t=e[Symbol.for(".observer.proxy.target")])?t():e},W=function(e,t){if(!t||!u(t))throw new Error("Target must be of type object!");t=T(t);var r,n=function(r){return arguments.length?r:e?Object.getOwnPropertyNames(t):Object.keys(t)};return(r=C(t,!1))?r.fire({type:e?"ownKeys":"keys"},n)||[]:n()},q=function(e){return W(!1,...arguments)},H=function(e,t=null){var r={};return 2===arguments.length&&(n(e)&&n(t)?e.forEach((e,n)=>r[e]=t[n]):r[e]=t),r},N=function(e){return a(e)&&/^class\s?/.test(Function.prototype.toString.call(e))},U=function(e,t){var r=[];return function(e,t){t=(t=t||Object.prototype)&&!n(t)?[t]:t;var r=[];for(e=e;e&&(!t||t.indexOf(e)<0)&&"default"!==e.name;)r.push(e),e=e?Object.getPrototypeOf(e):null;return r}(e,t).forEach(e=>{!function(e,...t){t.forEach(t=>{e.indexOf(t)<0&&e.push(t)})}(r,...Object.getOwnPropertyNames(e))}),r};function B(e,t,r=!1,i=!1,s=!1){var a=0,o=e.shift();if((E(o)||!0===o||!1===o)&&(a=o,o=e.shift()),!e.length)throw new Error("_merge() requires two or more array/objects.");return e.forEach((e,c)=>{(u(e)||f(e))&&(r?U(e):Object.getOwnPropertyNames(e)).forEach(u=>{if(t(u,o,e,c)){var f=o[u],h=e[u];if((n(f)&&n(h)||l(f)&&l(h))&&(!0===a||a>0))o[u]=n(f)&&n(h)?[]:{},B([E(a)?a-1:a,o[u],f,h],t,r,i,s);else if(n(o)&&n(e))i?o[u]=h:o.push(h);else try{s?Object.defineProperty(o,u,Object.getOwnPropertyDescriptor(e,u)):o[u]=e[u]}catch(e){}}})}),o}var M=function(e,t=[],r=!0){var i=0;return E(arguments[0])&&u(arguments[1])&&(i=arguments[0],e=arguments[1],t=arguments[2]||[]),B([i,{},e],(e,r,i)=>f(t)?t(e):!n(t)||!t.length||t.indexOf(e)>-1,!1,!1,r)},K=function(...e){return B(e,(e,t,r)=>!0,!1,!1,!1)},Q=function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Observable subjects must be of type object; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i;if(i=F(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},z=function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Observable subjects must be of type object; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i,s=F(e),a={filter:t,handler:r,params:n};if((a.filter||!0===a.params.subtree||"auto"===a.params.subtree&&Z(e))&&Y(e,a.filter,a.params.subtree),a.params.unique&&(i=s.match({filter:t,params:n})).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},G=function(e,t,r,n=null,i={}){var s;if(e!==r&&(z(r,(r,n)=>{if(s=F(e,!1)){var i=r.map(r=>{var n=r;do{if(n.subject===e)return}while(n=n.src);var i={};return _(r,(e,t)=>{"subject"!==e&&"name"!==e&&"path"!==e&&"src"!==e&&(i[e]=t)}),i.name=t,i.path=[t].concat(r.path),i.originalSubject=r.originalSubject,i.src=r,new D(e,i)}).filter(e=>e);if(i.length)return s.fire(i,n.cancellable)}},{subtree:"auto",unique:!0,tags:[J,t,e]}),l(n)&&(s=F(e,!1)))){var a=K({name:t,type:"set",value:r,related:[t]},n);let e=s.fire(a,i.cancellable);if(i.responseObject)return e}};const J={};var L=function(e,t,r,n=null,i={}){var s;if(Q(r,null,null,{tags:[J,t,e]}),l(n)&&(s=F(e,!1))){var a=K({name:t,type:"del",oldValue:r,related:[t]},n);s.fire(a,i.cancellable)}},R=function(e,...t){var r=t.map(e=>{if(!u(e))throw new Error("Target must be of type object!");return{subject:e,subjectCopy:n(e)?e.slice(0):M(e)}}),i=e(...t);return r.map(e=>{var t,r,n=Object.keys(e.subjectCopy),i=Object.keys(e.subject),s=[],a=(t=n.concat(i),t.filter((e,t,r)=>r.indexOf(e)===t)).map(t=>{if(e.subjectCopy[t]!==e.subject[t]){s.push(t);var r={name:t,related:s,buffered:!0};return i.includes(t)?(r.type="set",r.value=e.subject[t],n.includes(t)&&(r.isUpdate=!0)):r.type="del",n.includes(t)&&(r.oldValue=e.subjectCopy[t]),u(e.subjectCopy[t])&&L(e.subject,t,e.subjectCopy[t]),u(e.subject[t])&&G(e.subject,t,e.subject[t]),r}}).filter(e=>e);if(a.length&&(r=F(e.subject,!1)))return r.fire(a)}),i},X=function(e,t,r=!1){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var i,s,a=function(r){return arguments.length?r:n(t)?H(t,e):e[t]};return i=(s=C(e))?s.fire({type:"get",name:t},a):a(),r&&n(e)&&!E(t)&&f(i)&&!N(i)?function(...t){return R(()=>i.apply(e,t),e)}:i};function Y(e,t=null,r=!1){if(!e||!u(e))throw new Error("Target must be of type object!");var n=F(e);if(n&&!n.build){n.build=r;var i=d(t),s=!i.length||i.filter(e=>!e[0]&&0!==e[0]).length?q(e):i.map(e=>e[0]),a=i.length?i.map(e=>e.slice(1)).filter(e=>e.length):null;n.subBuild=a&&a.length?a:null,s.forEach(t=>{var i=X(e,t);try{u(i)&&(G(e,t,i),(n.subBuild&&Z(i)||(_isFunction(r)?r(i):r&&Z(i)))&&Y(i,n.subBuild,r))}catch(e){}})}}const Z=e=>(e instanceof Object||e instanceof Array||e instanceof Function)&&("undefined"==typeof window||e!==window);var $=function(e,t){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var r,n=function(r){return arguments.length?r:t in e};return(r=C(e,!1))?r.fire({type:"has",name:t},n):n()},ee=function(e,t,r,s=null,a={}){if(!t||!u(t))throw new Error("Target must be of type object!");l(r)&&(a=s||{},s=null),t=T(t);var f=C(t,!1),h=F(t,!1);const p=(r,n,i,s)=>{var a,l="set";e&&(l="def",n=(a=n||{}).value);var o,c=!1;$(t,r)&&(c=!0,o=X(t,r));var p={name:r,type:l,value:n,related:i,detail:s,isUpdate:c,oldValue:o},b=function(e){return arguments.length?e:(a?Object.defineProperty(t,r,a):t[r]=n,!0)};if(f){var d=a?{type:"def",name:r,descriptor:a,related:i,detail:s,isUpdate:c,oldValue:o}:{type:"set",name:r,value:n,related:i,detail:s,isUpdate:c,oldValue:o};p.success=f.fire(d,b)}else p.success=b();return p.success&&p.value!==p.oldValue&&(u(p.oldValue)&&L(t,r,p.oldValue),u(p.value)&&(G(t,r,p.value),h&&(h.subBuild||h.build&&Z(p.value))&&Y(p.value,h.subBuild,h.build))),p};var b,d=[];n(r)||(i(r)||c(r))&&(b=o(r))?d=b.map(e=>p(e,s,b,a.detail)):l(r)&&(b=Object.keys(r))&&(d=b.map(e=>p(e,r[e],b,a.detail)));var g,v=d.filter(e=>e.success);return h?(g=h.fire(v,a.cancellable)).successCount=v.length:a.responseObject&&(g=new S(t)),a.responseObject?g:v.length>0},te=function(e,t,r=null,n=null,i={}){return ee(!1,...arguments)},re=function(e,t,r={}){if(!e||!u(e))throw new Error("Target must be of type object!");e=T(e);var n,i,s=(t=o(t)).map(n=>{var i;$(e,n)&&(i=X(e,n));var s,a={name:n,type:"del",related:t,detail:r.detail,oldValue:i},l=function(t){return arguments.length?t:(delete e[n],!0)};return(s=C(e,!1))?a.success=s.fire({type:"del",name:n,oldValue:i,related:t},l):a.success=l(),a.success&&u(a.oldValue)&&L(e,n,a.oldValue),a}).filter(e=>e.success);return(n=F(e,!1))?(i=n.fire(s,r.cancellable)).successCount=s.length:r.responseObject&&(i=new S(e)),r.responseObject?i:s.length>0},ne=function(e,t,r=null,n=null){return ee(!0,...arguments)},ie=function(e){return W(!0,...arguments)};var se={set:te,get:X,has:$,deleteProperty:re,del:re,defineProperty:ne,def:ne,keys:q,ownKeys:ie,intercept:function(e,t,r,n={}){if(!u(e))throw new Error('Object must be of type subject; "'+h(r)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),!f(r))throw new Error('Callback must be a function; "'+h(r)+'" given!');var i,s=C(e),a={filter:t,handler:r,params:n};if(a.params.unique&&(i=s.match(a)).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},unintercept:function(e,t,r=null,n={}){if(!e||!u(e))throw new Error('Object must be of type subject; "'+h(e)+'" given!');if(f(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!f(r))throw new Error('Handler must be a function; "'+h(r)+'" given!');var i;if(i=C(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},proxy:function(e){if(!u(e))throw new Error('Object must be of type subject; "'+h(e)+'" given!');var t=new Proxy(e,{get:(e,r)=>{if(r===Symbol.for(".observer.proxy.target"))return()=>e;var n=X(e,r);return f(n)&&!N(n)?n.bind(t):n},set:(...e)=>(te(...e),!0),has:$,deleteProperty:(...e)=>(re(...e),!0),defineProperty:(...e)=>(ne(...e),!0),ownKeys:ie});return t},unproxy:T,observe:z,unobserve:Q,closure:R,init:function(e,t){var r,n=Symbol.for(".observer.init.props");(r=e[n])||(r=[],Object.defineProperty(e,n,{value:r,enumerable:!1})),o(t).forEach(t=>{if(!r.includes(t)){r.push(t);var n,i,s=e[t],a=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!(t in e)};"value"in a&&delete a.value,"writable"in a&&delete a.writable,a.get=()=>{if(n)return s;n=!0;var r=X(e,t);return n=!1,r},a.set=r=>{if(i)return s=r,!0;i=!0;te(e,t,r);return i=!1,!0},Object.defineProperty(e,t,a)}})},build:Y,link:G,unlink:L,getObservers:F};window.WebQit||(window.WebQit={}),window.WebQit.Observer=se}]); | ||
//# sourceMappingURL=main.js.map |
@@ -15,3 +15,3 @@ { | ||
"homepage": "https://webqit.io/tooling/observer", | ||
"version": "1.4.4", | ||
"version": "1.4.5", | ||
"license": "MIT", | ||
@@ -18,0 +18,0 @@ "repository": { |
@@ -65,4 +65,4 @@ | ||
return (!this.filtersIsDynamic || !pathsIsDynamic(observerPathArray_Resolved)) && diff(delta) && ((!this.params.subtree && pathIsSame(observerPathArray_Resolved, delta.path)) | ||
|| (!this.params.subtree && this.params.suptree && pathStartsWith(observerPathArray_Resolved, delta.path) && (!_isNumeric(this.params.suptree) || pathAfter(observerPathArray_Resolved, delta.path).length <= this.params.suptree)) | ||
|| (this.params.subtree && delta.path.length > observerPathArray_Resolved.length && pathStartsWith(delta.path, observerPathArray_Resolved) && (!_isNumeric(this.params.subtree) || pathAfter(delta.path, observerPathArray_Resolved).length <= this.params.subtree)) | ||
|| (this.params.suptree && pathStartsWith(observerPathArray_Resolved, delta.path) && (!_isNumeric(this.params.suptree) || pathAfter(observerPathArray_Resolved, delta.path).length <= this.params.suptree)) | ||
|| (this.params.subtree && delta.path.length >= observerPathArray_Resolved.length && pathStartsWith(delta.path, observerPathArray_Resolved) && (!_isNumeric(this.params.subtree) || pathAfter(delta.path, observerPathArray_Resolved).length <= this.params.subtree)) | ||
); | ||
@@ -76,3 +76,3 @@ }).length; | ||
changesObject = {...this.filter}; | ||
changes.forEach((e, i) => { | ||
matches.forEach((e, i) => { | ||
changesObject[e.name] = e; | ||
@@ -83,3 +83,3 @@ }); | ||
} else { | ||
changes.forEach((e, i) => { | ||
matches.forEach((e, i) => { | ||
evt.respondWith(this.handler(e, evt)); | ||
@@ -86,0 +86,0 @@ }); |
Sorry, the diff of this file is not supported yet
157600