@dwightbcoder/action-ui
Advanced tools
Comparing version 1.3.37 to 1.3.38
@@ -13,5 +13,5 @@ "use strict";var ActionUI=function(e){"use strict";/** | ||
sync(e){return e&&(e=t({},e,!0),t(this,e)),this}// Add watcher callback | ||
watch(e){return this._watchers.push(e),this}clearChanges(){return this._changes={},this}triggerChanges(e){for(const t in e)e.hasOwnProperty(t)&&"_"!=t[0]&&this._change(t,e[t],this[t])}// @deprecated | ||
watch(e){return this._watchers.push(e),this}clearChanges(){return this._changes={},this}triggerChanges(e){for(const t in e)e.hasOwnProperty(t)&&this._change(t,e[t],this[t])}// @deprecated | ||
_privatize(){for(let e in this)"_"==e[0]&&Object.defineProperty(this,e,{enumerable:!1})}// Trigger all watcher callbacks | ||
_trigger(e=!1){if(window.clearTimeout(this._timer),this._timer=null,e||0<Object.keys(this._changes).length){let e=this._watchers;for(let t in e)e[t].call(this,this._changes);null!=this._parent&&null!=this._parent.property&&"_"!=this._parent.property[0]&&this._parent.model.triggerChanges({child:this,changes:this._changes}),this._changes={}}}// Log property change | ||
_trigger(e=!1){if(window.clearTimeout(this._timer),this._timer=null,e||0<Object.keys(this._changes).length){let e=this._watchers;for(let t in e)e[t].call(this,this._changes);null!=this._parent&&null!=this._parent.property&&this._parent.model.triggerChanges({child:this,changes:this._changes}),this._changes={}}}// Log property change | ||
_change(e,t,o){this._changes[e]={value:t,originalValue:o},window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>this._trigger(),this._options.triggerDelay)}static _proxySet(e,t,o){let n=e[t];if(e[t]&&e[t]instanceof l)e[t].sync(o);else if(window.Reflect&&window.Reflect.set)!(o instanceof Object)||Array.isArray(o)||o instanceof l||"_"==t[0]||(o=new l(o,{model:e,property:t})),Reflect.set(e,t,o);else throw"Missing Model dependency: Reflect.set()";return"_"==t[0]?(Object.defineProperty(e,t,{enumerable:!1}),!0):(e._change(t,o,n),!0)}static _proxyDelete(e,t){if(t in e){let o=e[t];delete e[t],e._change(t,void 0,o)}return!0}}/** | ||
@@ -49,3 +49,3 @@ * @class Action | ||
for(let t in this.options.types)e[this.options.types[t]]=this.options.types[t];this.options.types=e}if(this.options.types instanceof Object)for(let e in this.options.types)this.modelCreate(this.options.types[e]);h.cache(this)}body(e,t){return JSON.stringify(t)}model(e,t){return t?this._model[e][t]:this._model[e]}modelCreate(e,t=null,o=null){if("string"!=typeof e)throw new Error("Store: Cannot create model without `type`");if(!this._model[e]){let n={};if(null==t&&o&&(n=o),n._type=e,this._model[e]=new l(n,{model:this._model,property:e}),this.actionCreate(e,"get"),this.actionCreate(e,"post"),this.actionCreate(e,"patch"),this.actionCreate(e,"delete"),this.options.viewClass&&this.options.viewMap.hasOwnProperty(e))if(Array.isArray(this.options.viewMap[e]))for(let t of this.options.viewMap[e])this.options.viewClass.create({name:t,file:t,model:this._model[e]});else{let t=this.options.viewMap[e];this.options.viewClass.create({name:t,file:t,model:this._model[e]})}}else this._model[e].sync(o);return null==t||"string"!=typeof t&&"number"!=typeof t||this._model[e][t]?null!=t&&o&&this._model[e][t].sync(o):(o=o||{},o._type=e,this._model[e][t]=new l(o,{model:this._model[e],property:t})),t?this._model[e][t]:this._model[e]}actionCreate(e,t){t=t.toLowerCase();var o=e+" "+this.options.actionVerb[t],n=this.options.actionHandler[t].bind(this,e,t),a=new c(o,n);return c.cache(a),a}actionHandler(e,t,o,n,a){let i=null;return"get"===t?i=this.fetch(e,a.id):"post"===t?i=this.post(e,a):"patch"===t?i=this.patch(e,a):"delete"===t?i=this.delete(e,a.id):void 0,i.then(e=>o(e)).catch(e=>n(e))}data(e){return this.options.keys.data?e[this.options.keys.data]:e}type(e){let t=e[this.options.keys.type];return this.options.types[t]&&(t=this.options.types[t]),t}id(e){return e[this.options.keys.id]}sync(e,t,o=!1){let n=this.data(e);if(!n||0==Object.keys(n).length)throw o||this.syncPaging(e,t),new f("Store: No data to sync");if(n instanceof Array){let a={};for(let e in n){let o=null;this.options.keys.data?(o={},o[this.options.keys.data]=n[e]):o=n[e],a[this.id(n[e])]=this.sync(o,t)}return o||this.syncPaging(e,t),a}let a=this.type(n),i=this.id(n);if(this._model[a]||this.modelCreate(a),this._model[a][i]||this.modelCreate(a,i),!this._model[a][i])throw new Error("Store: No model for type: "+a+", id: "+i);return this._model[a][i].sync(n),t&&(!this._model[a][i].hasOwnProperty("_store")&&(this._model[a][i]._store={url:[]}),-1==this._model[a][i]._store.url.indexOf(t)&&this._model[a][i]._store.url.push(t),t=this.url({type:a,id:i}),-1==this._model[a][i]._store.url.indexOf(t)&&this._model[a][i]._store.url.push(t)),this._model[a][i]}syncPaging(e,t){let n=this.pageData(t);// Paging | ||
if(n.type&&n.pageSize&&n.pageNumber){let a=this.pageKey(n.pageSize,n.query),i=this.data(e);if(Array.isArray(i)){let e=this.model(n.type),s=[],r=o({},n);for(let e of i)s.push({id:e[this.options.keys.id],type:e[this.options.keys.type]});r.data=s,r.url=[t],e._paging||(e._paging=new l({current:null,type:n.type,pageNumber:n.pageNumber,pageSize:n.pageSize,pageKey:a},{model:e,property:"_paging"})),e._paging[a]||(e._paging[a]=new l({},{model:e._paging,property:a})),e._paging[a][n.pageNumber]||(e._paging[a][n.pageNumber]=new l({},{model:e._paging[a],property:n.pageNumber})),e._paging[a][n.pageNumber].sync(r)}return this.pageChange(n.type,n.pageNumber,n.pageSize,n.query)}}url(e){let t=this.options.types[e.type]||e.type,o=this.options.baseUrl+"/"+t+"/"+(e.id?e.id+"/":""),n=new URLSearchParams;for(let t in e)t in this.options.query?n.set(this.options.query[t],e[t]):"type"!=t&&"id"!=t&&n.set(t,e[t]);n.sort();let a=n.toString();return a&&(o+="?"+a),o}urlParse(e){if(!e)return{url:null,type:null,pageNumber:!1,pageSize:!1};-1==e.indexOf("://")&&(0<e.indexOf("/")&&(e="/"+e),e=location.origin+e);let t=this.options.baseUrl;-1==t.indexOf("://")&&(0<t.indexOf("/")&&(t="/"+t),t=location.origin+t);let o=new URL(e),n=new URL(t),a=o.pathname.replace(n.pathname,"").split("/"),i=a[0]||a[1];o.searchParams.sort();let s={};return o.searchParams.forEach((e,t)=>s[t]=e),{url:o,type:i,pageNumber:parseInt(o.searchParams.get(this.options.query["page[number]"])),pageSize:parseInt(o.searchParams.get(this.options.query["page[size]"])),query:s}}search(e){let t=new l;for(let o in this._model)if(!(0==o.indexOf("_")||e.type&&this.type({type:e.type})!=o))for(let n in this._model[o]){let a=!1,i=this._model[o][n];for(let t in e)a=this.propertyValueExists(i,t,e[t],this.options.searchDepth);a&&(t[n]=i)}return t}propertyValueExists(e,t,o,n=1){var a=Object.keys(e);if(-1<a.indexOf(t))return e[t]==o;if(1>=n)return!1;for(let i of a)if("object"==typeof e[i])return this.propertyValueExists(e[i],t,o,n-1)}async fetch(e,t,n={}){e=this.type({type:e}),n=n||{},t=t||void 0,"object"==typeof t&&(n=t,t=n.id);let a={type:e,id:t},i={};o(i,this.options.fetch),this.before(e,i,a,n);let s=this.url(Object.assign({},n,a));return this.options.verbose&&console.info("Store.fetch()",e,t,{type:a.type,id:a.id,query:n,store:this,url:s,options:i}),this.fetchUrl(s,a.type,n,i,!0)}async fetchUrl(e,t,n={},a=null,i=!1){if(!e)return Promise.reject();null==a&&(a={},o(a,this.options.fetch));try{n=n||{},n.type=t;let o=this.urlParse(e).url.toString(),s=this.urlCache(o);if(t=n.type||(s?s.type:null)||o.type||null,s)return this.pageChange(s.type,s.pageNumber,s.pageSize,s.pageData.query),n.cached=!0,this.after(s.type,null,n,!0,null,null,s.pageData.query),Promise.resolve(s.model);i||this.before(t,a,n);const r=await fetch(e,a);let p=await r.json();if(this.after(t,this.options.fetch,n,!!r&&r.ok,r,p),!r.ok)return Promise.reject(p);let d=this.sync(p,e);return this.urlCache(o,d,p),d}catch(e){return t&&this.options.triggerChangesOnError&&this._model[t]&&this.model(t).triggerChanges({__error:e}),await Promise.reject(e)}}urlCache(e,t=null,o=null){if(!this.options.useUrlCache)return!1;if(e=decodeURIComponent(e),!t&&!o)return this._urlCache[e];let n=this.pageData(e),a=t[this.options.keys.type]||t._type||(n?n.type:null);if(o)for(let e of this.options.keysExcludeFromCache)delete o[e];return this._urlCache[e]={url:e,type:a,model:t,json:o,pageData:n,pageNumber:!!n&&n.pageNumber,pageSize:!!n&&n.pageSize}}urlCacheClear(e,t=!1){if(!e)return void(this._urlCache={});let o=Object.keys(this._urlCache);for(var n of o)this._urlCache[n].type==e&&(!t||this._urlCache[n].pageNumber&&this._urlCache[n].pageSize)&&delete this._urlCache[n]}pageData(e){if(!e)return{type:null,pageNumber:!1,pageSize:!1};let t=this.urlParse(e),o=this._urlCache[e],n=t.pageSize||!!o&&o.pageSize,a=t.query||(o?o.query:{});return{type:t.type||(o?o.type:null),pageNumber:t.pageNumber||!!o&&o.pageNumber,pageSize:n,pageKey:this.pageKey(n,a),query:a,cached:!!o}}paging(e){return this.model(e)._paging||{current:!1,pageNumber:!1,pageSize:!1,pageKey:!1}}async pagingReset(e){this.urlCacheClear(e,!0);let t=!1,o=!1,n=!1;return this._model[e]._paging&&(this._model[e]._paging.current&&(t=this._model[e]._paging.current.pageNumber,o=this._model[e]._paging.current.pageSize,n=this._model[e]._paging.current.query,1>=this._model[e]._paging.current.data.length&&1<t&&--t),delete this._model[e]._paging),t&&o?this.page(e,t,o,n):Promise.resolve()}async page(e,t=1,o=0,n={}){return n=n||{},o=parseInt(o)||this.options.defaultPageSize,t=parseInt(t)||1,n.type=e,n[this.options.query["page[number]"]]=t,n[this.options.query["page[size]"]]=o,await this.fetch(e,0,n)}pageChange(e,t,o,n={}){let a=this.pageKey(o,n);return!!(e&&a&&t&&o&&this._model[e]._paging&&this._model[e]._paging[a][t])&&(this._model[e]._paging.pageNumber=t,this._model[e]._paging.pageSize=o,this._model[e]._paging.pageKey=a,delete this._model[e]._paging.current,this._model[e]._paging.current=this._model[e]._paging[a][t],this._model[e]._paging)}pageKey(e,t={}){t[this.options.query["page[size]"]]=e,delete t[this.options.query["page[number]"]];let o=new URLSearchParams(t);return o.sort(),o.toString()}async post(e,t,n={}){e=e||this.type(t);let a={};o(a,this.options.fetch),a.method="POST",a.body=this.body(e,t),this.before(e,a,t,n);let i=this.url(Object.assign({},n,{type:e,id:this.id(t)}));this.options.verbose&&console.info("Store.post()",e,{type:e,data:t,query:n,store:this,url:i,options:a});try{const o=await fetch(i,a);let s=await o.json();return(this.after(e,a,t,!!o&&o.ok,o,s,n),!o.ok)?Promise.reject(s):(this.pagingReset(e),this.sync(s,i))}catch(t){return this.options.triggerChangesOnError&&this.model(e).triggerChanges({__error:t}),Promise.reject(t)}}async patch(e,t,n={}){e=e||this.type(t);let a={};o(a,this.options.fetch),a.method="PATCH",a.body=this.body(e,t),this.before(e,a,t,n);let i=this.url(Object.assign({},n,{type:e,id:this.id(t)}));this.options.verbose&&console.info("Store.patch()",e,{type:e,data:t,query:n,store:this,url:i,options:a});try{const o=await fetch(i,a);let s=await o.json();return this.after(e,a,t,!!o&&o.ok,o,s,n),o.ok?this.sync(s,i):Promise.reject(s)}catch(t){return this.options.triggerChangesOnError&&this.model(e).triggerChanges({__error:t}),Promise.reject(t)}}async delete(e,t,n={}){let a={};a[this.options.keys.id]=t;let i={};o(i,this.options.fetch),i.method="DELETE",this.before(e,i,a,n);let s=this.url(Object.assign({},n,{type:e,id:a.id}));this.options.verbose&&console.info("Store.delete()",e,t,{type:e,id:a.id,query:n,store:this,url:s,options:i});try{const o=await fetch(s,i);let r=await o.json();if(this.after(e,i,a,!!o&&o.ok,o,r,n),!o.ok)return Promise.reject(r);//#region Remove items sent back in response | ||
if(n.type&&n.pageSize&&n.pageNumber){let a=this.pageKey(n.pageSize,n.query),i=this.data(e);if(Array.isArray(i)){let e=this.model(n.type),s=[],r=o({},n);for(let e of i)s.push({id:e[this.options.keys.id],type:e[this.options.keys.type]});r.data=s,r.url=[t],e._paging||(e._paging=new l({current:null,type:n.type,pageNumber:n.pageNumber,pageSize:n.pageSize,pageKey:a},{model:e,property:"_paging"})),e._paging[a]||(e._paging[a]=new l({},{model:e._paging,property:a})),e._paging[a][n.pageNumber]||(e._paging[a][n.pageNumber]=new l({},{model:e._paging[a],property:n.pageNumber})),e._paging[a][n.pageNumber].sync(r)}return this.pageChange(n.type,n.pageNumber,n.pageSize,n.query)}}url(e){let t=this.options.types[e.type]||e.type,o=this.options.baseUrl+"/"+t+"/"+(e.id?e.id+"/":""),n=new URLSearchParams;for(let t in e)t in this.options.query?n.set(this.options.query[t],e[t]):"type"!=t&&"id"!=t&&n.set(t,e[t]);n.sort();let a=n.toString();return a&&(o+="?"+a),o}urlParse(e){if(!e)return{url:null,type:null,pageNumber:!1,pageSize:!1};-1==e.indexOf("://")&&(0<e.indexOf("/")&&(e="/"+e),e=location.origin+e);let t=this.options.baseUrl;-1==t.indexOf("://")&&(0<t.indexOf("/")&&(t="/"+t),t=location.origin+t);let o=new URL(e),n=new URL(t),a=o.pathname.replace(n.pathname,"").split("/"),i=a[0]||a[1];o.searchParams.sort();let s={};return o.searchParams.forEach((e,t)=>s[t]=e),{url:o,type:i,pageNumber:parseInt(o.searchParams.get(this.options.query["page[number]"])),pageSize:parseInt(o.searchParams.get(this.options.query["page[size]"])),query:s}}search(e){let t=new l;for(let o in this._model)if(!(0==o.indexOf("_")||e.type&&this.type({type:e.type})!=o))for(let n in this._model[o]){let a=!1,i=this._model[o][n];for(let t in e)a=this.propertyValueExists(i,t,e[t],this.options.searchDepth);a&&(t[n]=i)}return t}propertyValueExists(e,t,o,n=1){var a=Object.keys(e);if(-1<a.indexOf(t))return e[t]==o;if(1>=n)return!1;for(let i of a)if("object"==typeof e[i])return this.propertyValueExists(e[i],t,o,n-1)}async fetch(e,t,n={}){e=this.type({type:e}),n=n||{},t=t||void 0,"object"==typeof t&&(n=t,t=n.id);let a={type:e,id:t},i={};o(i,this.options.fetch),this.before(e,i,a,n);let s=this.url(Object.assign({},n,a));return this.options.verbose&&console.info("Store.fetch()",e,t,{type:a.type,id:a.id,query:n,store:this,url:s,options:i}),this.fetchUrl(s,a.type,n,i,!0)}async fetchUrl(e,t,n={},a=null,i=!1){if(!e)return Promise.reject();null==a&&(a={},o(a,this.options.fetch));try{n=n||{},n.type=t;let o=this.urlParse(e).url.toString(),s=this.urlCache(o);if(t=n.type||(s?s.type:null)||o.type||null,s)return this.pageChange(s.type,s.pageNumber,s.pageSize,s.pageData.query),n.cached=!0,this.after(s.type,null,n,!0,null,null,s.pageData.query),Promise.resolve(s.model);i||this.before(t,a,n);const r=await fetch(e,a);let p=await r.json();if(this.after(t,this.options.fetch,n,!!r&&r.ok,r,p),!r.ok)return Promise.reject(p);let d=this.sync(p,e);return this.urlCache(o,d,p),Promise.resolve(d)}catch(e){return t&&this.options.triggerChangesOnError&&this._model[t]&&this.model(t).triggerChanges({__error:e}),await Promise.reject(e)}}urlCache(e,t=null,o=null){if(!this.options.useUrlCache)return!1;if(e=decodeURIComponent(e),!t&&!o)return this._urlCache[e];let n=this.pageData(e),a=t[this.options.keys.type]||t._type||(n?n.type:null);if(o)for(let e of this.options.keysExcludeFromCache)delete o[e];return this._urlCache[e]={url:e,type:a,model:t,json:o,pageData:n,pageNumber:!!n&&n.pageNumber,pageSize:!!n&&n.pageSize}}urlCacheClear(e,t=!1){if(!e)return void(this._urlCache={});let o=Object.keys(this._urlCache);for(var n of o)this._urlCache[n].type==e&&(!t||this._urlCache[n].pageNumber&&this._urlCache[n].pageSize)&&delete this._urlCache[n]}pageData(e){if(!e)return{type:null,pageNumber:!1,pageSize:!1};let t=this.urlParse(e),o=this._urlCache[e],n=t.pageSize||!!o&&o.pageSize,a=t.query||(o?o.query:{});return{type:t.type||(o?o.type:null),pageNumber:t.pageNumber||!!o&&o.pageNumber,pageSize:n,pageKey:this.pageKey(n,a),query:a,cached:!!o}}paging(e){return this.model(e)._paging||{current:!1,pageNumber:!1,pageSize:!1,pageKey:!1}}async pagingReset(e){this.urlCacheClear(e,!0);let t=!1,o=!1,n=!1;return this._model[e]._paging&&(this._model[e]._paging.current&&(t=this._model[e]._paging.current.pageNumber,o=this._model[e]._paging.current.pageSize,n=this._model[e]._paging.current.query,1>=this._model[e]._paging.current.data.length&&1<t&&--t),delete this._model[e]._paging),t&&o?this.page(e,t,o,n):Promise.resolve()}async page(e,t=1,o=0,n={}){return n=n||{},o=parseInt(o)||this.options.defaultPageSize,t=parseInt(t)||1,n.type=e,n[this.options.query["page[number]"]]=t,n[this.options.query["page[size]"]]=o,await this.fetch(e,0,n)}pageChange(e,t,o,n={}){let a=this.pageKey(o,n);return!!(e&&a&&t&&o&&this._model[e]._paging&&this._model[e]._paging[a][t])&&(this._model[e]._paging.pageNumber=t,this._model[e]._paging.pageSize=o,this._model[e]._paging.pageKey=a,delete this._model[e]._paging.current,this._model[e]._paging.current=this._model[e]._paging[a][t],this._model[e]._paging)}pageKey(e,t={}){t[this.options.query["page[size]"]]=e,delete t[this.options.query["page[number]"]];let o=new URLSearchParams(t);return o.sort(),o.toString()}async post(e,t,n={}){e=e||this.type(t);let a={};o(a,this.options.fetch),a.method="POST",a.body=this.body(e,t),this.before(e,a,t,n);let i=this.url(Object.assign({},n,{type:e,id:this.id(t)}));this.options.verbose&&console.info("Store.post()",e,{type:e,data:t,query:n,store:this,url:i,options:a});try{const o=await fetch(i,a);let s=await o.json();return(this.after(e,a,t,!!o&&o.ok,o,s,n),!o.ok)?Promise.reject(s):(this.pagingReset(e),this.sync(s,i))}catch(t){return this.options.triggerChangesOnError&&this.model(e).triggerChanges({__error:t}),Promise.reject(t)}}async patch(e,t,n={}){e=e||this.type(t);let a={};o(a,this.options.fetch),a.method="PATCH",a.body=this.body(e,t),this.before(e,a,t,n);let i=this.url(Object.assign({},n,{type:e,id:this.id(t)}));this.options.verbose&&console.info("Store.patch()",e,{type:e,data:t,query:n,store:this,url:i,options:a});try{const o=await fetch(i,a);let s=await o.json();return this.after(e,a,t,!!o&&o.ok,o,s,n),o.ok?this.sync(s,i):Promise.reject(s)}catch(t){return this.options.triggerChangesOnError&&this.model(e).triggerChanges({__error:t}),Promise.reject(t)}}async delete(e,t,n={}){let a={};a[this.options.keys.id]=t;let i={};o(i,this.options.fetch),i.method="DELETE",this.before(e,i,a,n);let s=this.url(Object.assign({},n,{type:e,id:a.id}));this.options.verbose&&console.info("Store.delete()",e,t,{type:e,id:a.id,query:n,store:this,url:s,options:i});try{const o=await fetch(s,i);let r=await o.json();if(this.after(e,i,a,!!o&&o.ok,o,r,n),!o.ok)return Promise.reject(r);//#region Remove items sent back in response | ||
let p=this.data(r),d=[e];if(Array.isArray(p))for(let e in p){let t=this.type(p[e]),o=this.id(p[e]);t&&o&&this._model[t]&&this._model[t][o]&&(-1==d.indexOf(t)&&d.push(t),delete this._model[t][o])}else{let e=this.type(p),t=this.id(p);e&&t&&this._model[e]&&this._model[e][t]&&(-1==d.indexOf(e)&&d.push(e),delete this._model[e][t])}//#endregion Remove items sent back in response | ||
@@ -52,0 +52,0 @@ this._model[e][t]&&delete this._model[e][t];for(let e of d)this.pagingReset(e).catch(()=>{});return r}catch(t){return this.options.triggerChangesOnError&&this.model(e).triggerChanges({__error:t}),Promise.reject(t)}}loading(e,t){this._model[e]||this.modelCreate(e);const o=this.model(e);return 1==arguments.length?o.loading():void o.loading(t)}before(e,t,o,n={}){let a=this.options.baseUrl+"/"+e,i=null;this.loading(e,!0),this.options.viewClass&&this.options.viewMap.hasOwnProperty(e)&&(i=this.options.viewClass.cache(this.options.viewMap[e])),this.options.verbose&&console.info("Store.before()",a,{store:this,type:e,fetch:t,data:o,view:i,model:this.model(e),query:n}),i&&document.querySelectorAll("[ui-view=\""+i.name+"\"]").forEach(e=>{this.options.viewClass.setCssClass(e,this.options.viewClass.options.cssClass.loading)});let s=new CustomEvent(this.options.eventBefore.type,this.options.eventBefore);return Object.assign(s.detail,{name:a,fetch:t,store:this,type:e,data:o,model:this.model(e),view:i,query:n}),document.dispatchEvent(s)}after(e,t,o,n,a,i,s={}){let r=this.options.baseUrl+"/"+e,p=null;this.loading(e,!1),this.options.viewClass&&this.options.viewMap.hasOwnProperty(e)&&(p=this.options.viewClass.cache(this.options.viewMap[e])),this.options.verbose&&console.info("Store.after()",r,{store:this,type:e,fetch:t,data:o,view:p,model:this.model(e),success:n,response:a,json:i,query:s}),p&&document.querySelectorAll("[ui-view=\""+p.name+"\"]").forEach(e=>{t&&"GET"==t.method?this.options.viewClass.setCssClass(e,n?this.options.viewClass.options.cssClass.success:this.options.viewClass.options.cssClass.fail):e.classList.remove(this.options.viewClass.options.cssClass.loading)});let d=new CustomEvent(this.options.eventAfter.type,this.options.eventAfter);return Object.assign(d.detail,{name:r,success:n,fetch:t,store:this,type:e,data:o,model:this.model(e),view:p,response:a,json:i,query:s}),document.dispatchEvent(d)}static cache(e){if(null==e)return _;if("string"==typeof e){if(e=e.toLowerCase(),null!=_[e])return _[e];// Find a store that starts with the requested url to match ('/api/v1/entity' with a '/api/v1' store) |
@@ -98,3 +98,3 @@ import * as Util from "./util.js"; | ||
{ | ||
if (changes.hasOwnProperty(i) && i[0] != "_") | ||
if (changes.hasOwnProperty(i)) | ||
{ | ||
@@ -132,3 +132,3 @@ this._change(i, changes[i], this[i]) | ||
if (this._parent != null && this._parent.property != null && this._parent.property[0] != '_') | ||
if (this._parent != null && this._parent.property != null) | ||
{ | ||
@@ -135,0 +135,0 @@ this._parent.model.triggerChanges({ child: this, changes: this._changes}) |
@@ -478,3 +478,3 @@ import * as Util from './util.js' | ||
this.urlCache(parsedUrl, model, json) | ||
return model | ||
return Promise.resolve(model) | ||
} | ||
@@ -481,0 +481,0 @@ catch (error) |
{ | ||
"name": "@dwightbcoder/action-ui", | ||
"version": "1.3.37", | ||
"version": "1.3.38", | ||
"description": "Action UI is a Javascript framework to simplify connecting actions to user interface elements", | ||
@@ -5,0 +5,0 @@ "main": "dist/action-ui.min.js", |
@@ -98,3 +98,3 @@ import * as Util from "./util.js"; | ||
{ | ||
if (changes.hasOwnProperty(i) && i[0] != "_") | ||
if (changes.hasOwnProperty(i)) | ||
{ | ||
@@ -132,3 +132,3 @@ this._change(i, changes[i], this[i]) | ||
if (this._parent != null && this._parent.property != null && this._parent.property[0] != '_') | ||
if (this._parent != null && this._parent.property != null) | ||
{ | ||
@@ -135,0 +135,0 @@ this._parent.model.triggerChanges({ child: this, changes: this._changes}) |
@@ -478,3 +478,3 @@ import * as Util from './util.js' | ||
this.urlCache(parsedUrl, model, json) | ||
return model | ||
return Promise.resolve(model) | ||
} | ||
@@ -481,0 +481,0 @@ catch (error) |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
442316