UNPKG

@web-native-js/reflex

Version:

Reflex is a reactivity library.

2 lines 17 kB
!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"function"==typeof e},i=function(e){return Array.isArray(e)||"object"==typeof e||n(e)},a=function(e){return Array.isArray(e)},s=function(e){return"string"==typeof e},o=function(e){return arguments.length&&(void 0===e||void 0===e)},l=function(e){return null===e||""===e},u=function(e){return!Array.isArray(e)&&"object"==typeof e&&e},f=function(e,t=!0){return a(e)?e:!t&&u(e)?[e]:!1!==e&&0!==e&&function(e){return l(e)||o(e)||!1===e||0===e||i(e)&&!Object.keys(e).length}(e)?[]:function(e){return!s(e)&&!o(e.length)}(e)?Array.prototype.slice.call(e):u(e)?Object.values(e):[e]},c=function(e,t=null){var r={};return 2===arguments.length&&(s(e)?r[e]=t:a(e)&&a(t)&&e.forEach((e,n)=>r[e]=t[n])),r},g=function(e){return!0!==e&&!1!==e&&null!==e&&""!==e&&!isNaN(1*e)},h=function(e){return n(e)||e&&"[object function]"==={}.toString.call(e)},p=function(e,t){var r=void 0;return i(e)&&Object.keys(e).forEach((n,i)=>{!1!==r&&(r=t(g(n)?parseFloat(n):n,e[n],i))}),r},d=class{constructor(e,t={}){this.$={},this.$.target=e,this.$.details=t,this.$.propagationStopped=!1,this.$.defaultPrevented=!1,this.$.promisesInstance=null,this.$.promises=[],p(t,(e,t)=>{"$"!==e&&Object.defineProperty(this,e,{value:t})})}get target(){return this.$.target}get details(){return this.$.details}stopPropagation(){this.$.propagationStopped=!0}get propagationStopped(){return this.$.propagationStopped}preventDefault(){this.$.defaultPrevented=!0}get defaultPrevented(){return this.$.defaultPrevented}promise(e){if(!(e instanceof Promise))throw new Error("Event.promise() must be called with a Promise.");this.$.promises.push(e),this.$.promisesInstance=null}get promises(){return!this.$.promisesInstance&&this.$.promises.length&&(this.$.promisesInstance=Promise.all(this.$.promises)),this.$.promisesInstance}response(e){var t,r=u(e)&&!o(e.propagationStopped)&&!o(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.promise(t)}},y=class extends d{constructor(e,t={}){super(e,t)}},v=function(e){return"number"==typeof e},b=function(e){return u(e)&&Object.getPrototypeOf(e)===Object.prototype},m=function(e){return!0===e||!1===e};const w=function(e,t,r=!0,n=1){if(a(e)&&a(t)&&e.length!==t.length)return!r;if(u(e)&&u(t)){var s=Object.keys(e),o=Object.keys(t);if(!s.length&&!o.length)return b(e)&&b(t)?r:e===t===r;if(!w(s,o))return!r}if(n>0&&(a(e)&&a(t)||u(e)&&u(t))){var l=function(e,t,r=!0,n=!0,s=!1,o=!1){if(a(e)&&a(t)){var l=[],f=!0;return e.forEach(e=>{if(f){var c=!1;p(t,(t,s)=>{(!c||n&&i(e))&&(c=r(e,s),(a(c)&&!c.length||u(c)&&!Object.keys(c).length)&&(c=!1),i(c)&&n&&(e=c))}),i(c)?l.push(n?c:e):m(c)?s&&!c||!s&&c?l.push(e):o&&(f=!1):l.push(c)}}),l}if(u(e)&&u(t)){l={},f=!0;return Object.keys(e).forEach(c=>{if(f){var g=r(e[c],t[c]);(a(g)&&!g.length||u(g)&&!Object.keys(g).length)&&(g=!1),i(g)?l[c]=n?g:e[c]:m(g)?s&&!g||!s&&g?l[c]=e[c]:o&&(f=!1):l[c]=g}}),l}}(e,t,(e,t)=>w(e,t,r,n-1),!1,!1,!0);return a(l)?l.length===e.length&&l.length===t.length:u(l)&&u(e)?Object.keys(l).length===Object.keys(e).length&&Object.keys(l).length===Object.keys(t).length:l}return h(r)?r(e,t):v(e)&&v(t)&&isNaN(e)&&isNaN(t)?r:e===t===r};var F=w,E=class{disconnect(){this.disconnected=!0}},j=class{constructor(){this.fireables=[],this.currentlyFiringEvents=[]}addFireable(e){return this.fireables.push(e),e}removeFireable(e,t=[]){this.fireables=this.fireables.filter(t=>t!==e)}findFireables(e){return this.fireables.filter(t=>!(e.handler&&t.handler!==e.handler||e.params&&(e.params.type&&t.params.type!==e.params.type||e.params.tags&&function(e,t,r=null){return a(t)?e.filter(e=>r?t.filter(t=>r(e,t)).length:-1!==t.indexOf(e)):[]}(t.params.tags||[],e.params.tags).length!==e.params.tags.length)))}static createForTarget(e,t,r){var n;if(e&&i(e))return(n=e[O])||(n={},Object.defineProperty(e,O,{get:()=>n,set:e=>{if(e!==n)throw new Error('Attempt to overwrite the "'+O+'" special property!')},enumerable:!1})),n[t]="listeners"===t?new r(e):new r,n[t]}static getForTarget(e,t){var r;if(e&&i(e)&&(r=e[O]))return r[t]}};const O=".reflex";var T=class extends E{constructor(e,t={}){super(),this.handler=e,this.params=t}fire(e,t,r){return this.disconnected||this.params.type&&this.params.type!==e.type?t(...f(arguments).slice(2)):this.handler(e,r,t)}};class D extends j{fire(e,t=null){if(this.currentlyFiringEvents.filter(t=>t.type===e.type&&t.query===e.query).length)return t?t():void 0;this.currentlyFiringEvents.push(e);const r=(n,...i)=>{var a=this.fireables[n];return a?a.fire(e,(...e)=>r(n+1,...e),...i):t?t(...i):i[0]};var n=r(0);return this.currentlyFiringEvents.pop(),n}static createForTarget(e){return super.createForTarget(e,"traps",D)}static getForTarget(e){return super.getForTarget(e,"traps")}}var P=function(e,...t){return t.forEach(t=>{e.indexOf(t)<0&&e.push(t)}),e},_=function(e,t){var r=[];return function(e,t){t=(t=t||Object.prototype)&&!a(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=>{P(r,...Object.getOwnPropertyNames(e))}),r};function k(e,t,r=!1,n=!1,s=!0){var o=0,l=e.shift();if((g(l)||!0===l||!1===l)&&(o=l,l=e.shift()),!e.length)throw new Error("_merge() requires two or more array/objects.");return e.forEach((e,f)=>{(i(e)||h(e))&&(r?_(e):Object.getOwnPropertyNames(e)).forEach(i=>{var c=l[i],h=e[i];if((a(c)&&a(h)||u(c)&&u(h))&&(!0===o||o>0))l[i]=a(c)&&a(h)?[]:{},k([g(o)?o-1:o,l[i],c,h],t,r,n,s);else if(t(i,l,e,f))if(a(l)&&a(e))n?l[i]=h:l.push(h);else try{s?Object.defineProperty(l,i,Object.getOwnPropertyDescriptor(e,i)):l[i]=e[i]}catch(e){}})}),l}var x=function(e,t=[],r=!0){var n=0;return g(arguments[0])&&i(arguments[1])&&(n=arguments[0],e=arguments[1],t=arguments[2]||[]),k([n,{},e],(e,r,n)=>h(t)?t(e):!a(t)||!t.length||t.indexOf(e)>-1,!1,!1,r)},$=function(...e){return k(e,(e,t,r)=>!0,!1,!1,!1)},C=class extends d{constructor(e,t={}){if(t.data&&(t.fields=Object.keys(t.data)),super(e,t),this.srcEvt){this.dataEven=this.srcEvt.dataEven,this.originatingTarget=this.srcEvt.originatingTarget,this.originatingType=this.srcEvt.originatingType,this.originatingFields=[],this.originatingData={},this._originatingData={};var r=this.fields[0];Object.keys(this.srcEvt.originatingData).forEach(e=>{var t=r+"."+e;this.originatingFields.push(t),this.originatingData[t]=this.srcEvt.originatingData[e],this._originatingData[t]=this.srcEvt._originatingData[e]}),this.originatingCreated=this.srcEvt.originatingCreated,this.originatingDeleted=this.srcEvt.originatingDeleted}else this.dataEven=F(this.data,this._data),this.originatingTarget=this.target,this.originatingType=this.type,this.originatingFields=this.fields,this.originatingData=this.data,this._originatingData=this._data,this.originatingCreated=this.created,this.originatingDeleted=this.deleted}};class S extends j{findFireables(e){return super.findFireables(e).filter(t=>l(e.fields)||o(e.fields)||F(f(t.fields),f(e.fields)))}fire(e){return this.currentlyFiringEvents.filter(t=>t.type===e.type&&t.fields===e.fields).length||(this.currentlyFiringEvents.push(e),this.fireables.forEach(t=>{e.propagationStopped||t.params.type&&t.params.type!==e.type||t.fire(e)}),this.currentlyFiringEvents.pop()),e}static createForTarget(e){return super.createForTarget(e,"observers",S)}static getForTarget(e){return super.getForTarget(e,"observers")}}var A=function(e,t,r=null,n={}){if(!e||!i(e))throw new Error("Object must be of type object!");var a;(h(t)||l(t)||o(t))&&(n=arguments.length>2?r:{},r=t,t=null),(a=S.getForTarget(e))&&a.findFireables({handler:r,fields:t,params:n}).forEach(e=>{a.removeFireable(e)})},N=function(e,t,r){A(r,null,{tags:["#e-bubbling",t,e]})},q=function(e){return typeof e},W=function(e,t,r={},n={}){t=f(t).slice();for(var a=e;!o(a)&&!l(a)&&t.length;){var s=t.shift();if(!(r.get?r.get(a,s):i(a)?s in a:a[s]))return void(n.exists=!1);a=r.get?r.get(a,s):a[s]}return n.exists=!0,a},I=class extends E{constructor(e,t=null,r={}){if(super(),this.handler=e,this.fields=t,this.params=r,this.fieldsArray=f(this.fields),this.isDynamicField=this.fieldsArray.filter(e=>e.indexOf("..")>-1||e.startsWith(".")||e.endsWith(".")).length,this.isDynamicField&&this.fieldsArray.length>1)throw new Error('Only one "Dynamic Field" must be observed at a time! "'+this.fieldsArray.join(", ")+'" have been bound together.')}fire(e){this.disconnected||this.params.type&&this.params.type!==e.type||e.dataEven&&!1!==this.params.diff||this.fireCallback(e,t=>{if(t){var r=[],n=[];return!1!==this.params.data&&t.forEach(t=>{var i=e.originatingFields.reduce((r,n)=>{var i=e.originatingData[n],a=e._originatingData[n];if(!r&&t===n)return[i,a];if(!r&&(t+".").startsWith(n+".")){var s=function(e,t,r=!1){if(""==t)return e;var n=r?e.lastIndexOf(t):e.indexOf(t);return-1===n?"":e.substr(n+t.length)}(t,n+".");return[W(i,s.split("."),{get:R}),W(a,s.split("."),{get:R})]}return r},null);if(i)r.push(i.shift()),n.push(i.shift());else{var a=W(e.target,s(t)?t.split("."):t,{get:R});r.push(a),n.push(a)}}),a(this.fields)?e.response(this.handler(r,n,e)):e.response(this.handler(r[0],n[0],e))}r={},n={};return e.fields.forEach(t=>{var i=t in e.data?e.data[t]:R(e.target,t),a=t in e._data?e._data[t]:i;r[t]=i,n[t]=a}),e.response(this.handler(r,n,e))})}fireCallback(e,t){if(this.fieldsArray.length){var r=[];this.fieldsArray.filter((t,n)=>(t=s(t)?t.replace(/`/g,""):t,r[n]=[],e.originatingFields.filter(i=>{var a=i.split("."),s=this.isDynamicField?t.split(".").map((e,t)=>e||a[t]||"").join("."):t;return P(r[n],s),(s===i&&!e.srcEvt||!1!==this.params.observeUp&&(s+".").startsWith(i+".")||this.params.observeDown&&(i+".").startsWith(s+"."))&&(!this.isDynamicField||!s.split(".").filter(e=>!e).length)}).length)).length&&(n=r,n.reduce((e,t)=>{var r=[];return e.forEach(e=>{f(t).forEach(t=>{var n=e.slice();n.push(t),r.push(n)})}),r},[[]])).forEach(t)}else this.fields||e.srcEvt&&!this.params.observeDown||t();var n}},M=function(e,t,r=null,n={}){if(!e||!i(e))throw new Error("Object must be of type object!");if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),!h(r))throw new Error('Callback must be a function; "'+q(r)+'" given!');var a;return(a=S.getForTarget(e))||(a=S.createForTarget(e)),a.addFireable(new I(r,t,n))},K=function(e,t,r){var n;M(r,(i,a,s)=>{if(n=S.getForTarget(e)){var o=c(t,r);return n.fire(new C(e,{type:s.type,bubbling:!0,data:o,_data:o,srcEvt:s}))}},{observeDown:!0,tags:["#e-bubbling",t,e]})},Q=function(e,t,r=[],n=!1){var s=e.map((e,t)=>{if(!e||!i(e))throw new Error("Target must be of type object!");return{target:e,targetCopy:x(e,r),setData:{},_setData:{},delData:{},_delData:{},created:[],deleted:[]}}),o=t(...e);return s.map(e=>{var t,s,o,l=Object.keys(e.targetCopy),u=Object.keys(e.target),f=(t=l.concat(u),t.filter((e,t,r)=>r.indexOf(e)===t)).filter(t=>{if(!(r.length&&!r.includes(t)||a(e.target)&&("length"===t||".reflex"===t))){if(u.includes(t)?(e._setData[t]=e.targetCopy[t],e.setData[t]=e.target[t],l.includes(t)||e.created.push(t)):(e._delData[t]=e.targetCopy[t],e.delData[t]=void 0,e.deleted.push(t)),e.targetCopy[t]!==e.target[t])return e.targetCopy[t]&&i(e.targetCopy[t])&&N(e.target,t,e.targetCopy[t]),e.target[t]&&i(e.target[t])&&K(e.target,t,e.target[t]),!0;delete e.setData[t],delete e._setData[t]}});return((o=S.getForTarget(e.target))||n)&&(s=new C(e.target,{type:"transaction",data:$(e.setData,e.delData),_data:$(e._setData,e._delData),created:e.created,deleted:e.deleted}),o&&(Object.keys(e.delData).length&&s.response(o.fire(new C(e.target,{type:"del",data:e.delData,_data:e._delData,deleted:e.deleted}))),Object.keys(e.setData).length&&s.response(o.fire(new C(e.target,{type:"set",data:e.setData,_data:e._setData,created:e.created}))))),n?s:f}),o},R=function(e,t){if(!e||!i(e))throw new Error("Target must be of type object!");var r,s,o,l=function(r){return arguments.length?r:a(t)?c(t,e):e[t]};return r=(s=D.getForTarget(e))?s.fire(new y(e,{type:"get",query:t}),l):l(),!a(e)||g(t)||!h(r)||n(o=r)&&/^class\s?/.test(Function.prototype.toString.call(o))?r:function(...t){return Q([e],()=>r.apply(e,t))}},U=function(e,t){return e.reduce((e,r)=>e&&t(r),!0)},z=function(e,t){if(!e||!i(e))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:t in e};return(r=D.getForTarget(e))?r.fire(new y(e,{type:"has",query:t}),n):n()},B=function(e,t,r,n=null,o=!1){if(!t||!i(t))throw new Error("Target must be of type object!");u(r)&&(o=n);var l,c,g=r,h={},p={},d=[],b=(r,n,a)=>{var s;h[r]=t[r],z(t,r)||d.push(r),e&&(n=(s=n||{}).value);var o,l,u=function(e){return arguments.length?e:(s?Object.defineProperty(t,r,s):t[r]=n,!0)};if(l=D.getForTarget(t)){var f=s?{type:"def",query:r,descriptor:s,related:a}:{type:"set",query:r,value:n,related:a};o=l.fire(new y(t,f),u)}else o=u();return o?(p[r]=n,p[r]!==h[r]?(h[r]&&i(h[r])&&N(t,r,h[r]),p[r]&&i(p[r])&&K(t,r,p[r])):(delete p[r],delete h[r])):delete h[r],o},m=[];if(a(g)||(s(g)||v(g))&&(g=f(g)))m=g.map(e=>b(e,n,g));else if(u(r)){var w=Object.keys(r);m=w.map(e=>b(e,r[e],w))}return((c=S.getForTarget(t))||o)&&(l=new C(t,{type:"set",data:p,_data:h,created:d}),c&&c.fire(l)),o?l:U(m,e=>e)},G=function(e,t,r=null,n=!1){return B(!1,...arguments)},H=function(e,t){f(t).forEach(t=>{var r,n,i=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(r)return i;r=!0;var n=R(e,t);return r=!1,n},a.set=r=>{if(n)return i=r,!0;n=!0;G(e,t,r);return n=!1,!0},Object.defineProperty(e,t,a)})},J=function(e,t){if(!t||!i(t))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:e?Object.getOwnPropertyNames(t):Object.keys(t)};return(r=D.getForTarget(t))?r.fire(new y(t,{type:e?"ownKeys":"keys"}),n):n()},L=function(e){return J(!1,...arguments)};var V=function(e,t,r=null,n=!1){return B(!0,...arguments)},X=function(e,t,r=!1){if(!e||!i(e))throw new Error("Target must be of type object!");t=f(t);var n,a,s={},o={},l=[],u=t.map(r=>{s[r]=e[r],z(e,r)&&l.push(r);var n,a,u=function(t){return arguments.length?t:(delete e[r],!0)};return(n=(a=D.getForTarget(e))?a.fire(new y(e,{type:"del",query:r,related:t}),u):u())&&(o[r]=void 0,s[r]&&i(s[r])&&N(e,r,s[r])),n});return((a=S.getForTarget(e))||r)&&(n=new C(e,{type:"del",data:o,_data:s,deleted:l}),a&&Object.keys(o).length&&a.fire(n)),r?n:U(u,e=>e)};class Y extends j{fire(e){return this.fireables.forEach(t=>{e.propagationStopped||t.fire(e)}),e}static createForTarget(e,t=Y){return super.createForTarget(e,"listeners",t)}static getForTarget(e){return super.getForTarget(e,"listeners")}}var Z=class extends E{constructor(e,t={}){super(),this.handler=e,this.params=t}fire(e){this.params.type===e.type&&e.response(this.handler.call(this.target,e.e))}};var ee={build:function e(t,r=!1){if(!t||!i(t))throw new Error("Target must be of type object!");var n=L(t);n.forEach(n=>{var a=R(t,n);i(a)&&a&&(K(t,n,a),e(a,r))}),r&&H(t,n)},observe:M,unobserve:A,trap:function(e,t,r={}){if(!e||!i(e))throw new Error("Object must be of type object!");if(!h(t))throw new Error('Callback must be a function; "'+q(t)+'" given!');var n;return(n=D.getForTarget(e))||(n=D.createForTarget(e)),n.addFireable(new T(t,r))},untrap:function(e,t=null,r={}){if(!e||!i(e))throw new Error("Object must be of type object!");var n;(n=S.getForTarget(e))&&n.findFireables({handler:t,params:r}).forEach(e=>{n.removeFireable(e)})},def:V,defineProperty:V,set:G,del:X,deleteProperty:X,link:K,unlink:N,transaction:Q,get:R,has:z,init:H,keys:L,ownKeys:function(e){return J(!0,...arguments)},on:function(e,t,r,n={}){var i;return(i=Y.getForTarget(e))||(i=Y.createForTarget(e)),i.addFireable(new Z(r,$(n,{type:t})))},off:function(e,t,r=null,n={}){var i;(i=Y.getForTarget(e))&&i.findFireables({handler:r,type:t,params:n}).forEach(e=>{i.removeFireable(e)})},trigger:function(e,t,r={}){var n;if(n=Y.getForTarget(e))return n.fire(new d(e,$(r,{type:t})))},MutationEvent:C,QueryEvent:y,Event:d};window.WebNative||(window.WebNative={}),window.WebNative.Reflex=ee}]); //# sourceMappingURL=main.js.map