diff --git a/dist/loco-ui.js b/dist/loco-ui.js index beec267..23ee3b9 100644 --- a/dist/loco-ui.js +++ b/dist/loco-ui.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.LocoUI=e():t.LocoUI=e()}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";r.r(e),r.d(e,"UI",(function(){return l})),r.d(e,"connect",(function(){return f}));var n={getLocale:null,wire:null,I18n:null},i=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},u=function(t,e){null!=t.classList?t.classList.add(e):t.className+=" "+e},s=function(t,e){null!=t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},o=function(t){return Array.from(t).map((function(t){return t.getAttribute("type")})).filter((function(t,e,r){return r.indexOf(t)===e}))},l={Form:function(){function t(t){null==t&&(t={}),this.formId=t.id,this.obj=t.for,this.initObj=!(null==t.initObj||!t.initObj),this.callbackSuccess=t.callbackSuccess,this.callbackFailure=t.callbackFailure,this.callbackActive=t.callbackActive,this.form=this._findForm(),this.submit=null,this.submitVal=null,null!=this.form&&(this.submit=this.form.querySelector('[type="submit"]')),null!=this.submit&&(this.submitVal=this.submit.value),this.locale=n.getLocale()}return t.prototype.getObj=function(){return this.obj},t.prototype.render=function(){return this.initObj?(this._assignAttribs(),this._handle()):null!=this.form?(this.fill(),this._handle()):void 0},t.prototype.fill=function(t){var e,r,n,i,u,s,l,c;if(null==t&&(t=null),null==this.obj)return null;if(null==this.obj.constructor.attributes)return null;for(n in e={},null!=t?e[t]=null:e=this.obj.constructor.attributes,l=[],e)e[n],s=this.obj.getAttrRemoteName(n),null!==(i=this.form.querySelector("[data-attr="+s+"]"))&&0!==(r=i.querySelectorAll("input,textarea,select")).length&&(1!==r.length?1!==(c=o(r)).length||"radio"!==c[0]||null==(u=Array.from(r).find(function(t){return function(e){return e.value===String(t.obj[n])}}(this)))?"hidden"!==r[0].getAttribute("type")&&"checkbox"!==r[r.length-1].getAttribute("type")||l.push(r[r.length-1].checked=Boolean(this.obj[n])):u.checked=!0:r[0].value=this.obj[n]);return l},t.prototype._findForm=function(){var t;return null!=this.formId?document.getElementById(""+this.formId):null!=this.obj?(t=this.obj.getIdentity().toLowerCase(),null!=this.obj.id?document.getElementById("edit_"+t+"_"+this.obj.id):document.getElementById("new_"+t)):void 0},t.prototype._handle=function(){return this.form.addEventListener("submit",(t=this,function(e){var r;if(e.preventDefault(),t._canBeSubmitted()){if(null!=t.obj)return t._assignAttribs(),t._hideErrors(),t.obj.isInvalid()?(t._renderErrors(),void(null!=t.callbackFailure&&t.callbackFailure())):(t._submittingForm(!1),r=null==t.obj.id,t.obj.save().then((function(e){return t._alwaysAfterRequest(),e.success?t._handleSuccess(e,r):(null!=t.callbackFailure&&t.callbackFailure(),t._renderErrors())})).catch((function(e){return t._connectionError()})));t._submitForm()}}));var t},t.prototype._canBeSubmitted=function(){return null==this.submit||!i(this.submit,"active")&&(!i(this.submit,"success")&&!i(this.submit,"failure"))},t.prototype._submitForm=function(){var t,e,r,n,i;return this._submittingForm(),n=this.form.getAttribute("action")+".json",t=new FormData(this.form),(r=new XMLHttpRequest).open("POST",n),r.setRequestHeader("X-CSRF-Token",null!=(e=document.querySelector("meta[name='csrf-token']"))?e.content:void 0),r.onload=(i=this,function(e){return i._alwaysAfterRequest(),null!=i.submit&&i.submit.blur(),e.target.status>=200&&e.target.status<400?(t=JSON.parse(e.target.response)).success?i._handleSuccess(t,"POST"===i.form.getAttribute("method")):i._renderErrors(t.errors):e.target.status>=500?i._connectionError():void 0}),r.onerror=function(t){return function(){return t._alwaysAfterRequest(),null!=t.submit&&t.submit.blur(),t._connectionError()}}(this),r.send(t)},t.prototype._handleSuccess=function(t,e){var r,i,o,l;if(null==e&&(e=!0),o=null!=(r=null!=(i=t.flash)?i.success:void 0)?r:n.I18n[this.locale].ui.form.success,null!=this.submit&&(u(this.submit,"success"),this.submit.value=o),null!=t.access_token&&(n.wire.token=t.access_token),null==this.callbackSuccess)return setTimeout((l=this,function(){var t,r,n,i,u,o;if(null!=l.submit&&(l.submit.disabled=!1,s(l.submit,"success"),l.submit.value=l.submitVal),o=":not([data-loco-not-clear=true])",e){for(u=[],t=0,r=(i=l.form.querySelectorAll("input:not([type='submit'])"+o+", textarea"+o)).length;t0&&(1===(a=document.querySelectorAll(".errors[data-for='base']")).length?a[0].textContent=i[0]:null!=this.submit&&(this.submit.value=i[0]));else{if(null===(b=this.form.querySelector("[data-attr="+f+"]")))continue;if(0===(a=b.querySelectorAll(".errors[data-for="+f+"]")).length)continue;for(o=0,l=a.length;o0?(t.textContent="",i.push(t.style.display="none")):i.push(void 0);return i},t.prototype._showErrors=function(){var t,e,r,n,i;for(i=[],e=0,r=(n=this.form.querySelectorAll(".errors")).length;e0?i.push(t.style.display="block"):i.push(void 0);return i},t.prototype._submittingForm=function(t){if(null==t&&(t=!0),null!=this.submit&&(s(this.submit,"success"),s(this.submit,"failure"),u(this.submit,"active"),this.submit.value=n.I18n[this.locale].ui.form.sending),null!=this.callbackActive&&this.callbackActive(),t)return this._hideErrors()},t.prototype._connectionError=function(){var t;if(null!=this.submit)return s(this.submit,"active"),u(this.submit,"failure"),this.submit.value=n.I18n[this.locale].ui.form.errors.connection,setTimeout((t=this,function(){return t.submit.disabled=!1,s(t.submit,"failure"),t.submit.value=t.submitVal}),3e3)},t.prototype._alwaysAfterRequest=function(){if(null!=this.submit)return s(this.submit,"active")},t}()},c={ui:{form:{sending:"Sending...",success:"Success",errors:{connection:"Connection Error",invalid_data:"Invalid data"}}}};function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function b(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var f=function(t){n.getLocale=t.getLocale,n.wire=t.Env.loco.wire,n.I18n=t.I18n,n.I18n.en=function(t){for(var e=1;e=200&&e.target.status<400?(t=JSON.parse(e.target.response)).success?i._handleSuccess(t,"POST"===i.form.getAttribute("method")):i._renderErrors(t.errors):e.target.status>=500?i._connectionError():void 0}),r.onerror=function(t){return function(){return t._alwaysAfterRequest(),null!=t.submit&&t.submit.blur(),t._connectionError()}}(this),r.send(t)},t.prototype._handleSuccess=function(t,e){var r,i,o,l;if(null==e&&(e=!0),o=null!=(r=null!=(i=t.flash)?i.success:void 0)?r:n.I18n[this.locale].ui.form.success,null!=this.submit&&(u(this.submit,"success"),this.submit.value=o),null!=t.access_token&&(n.wire.token=t.access_token),null==this.callbackSuccess)return setTimeout((l=this,function(){var t,r,n,i,u,o;if(null!=l.submit&&(l.submit.disabled=!1,s(l.submit,"success"),l.submit.value=l.submitVal),o=":not([data-loco-not-clear=true])",e){for(u=[],t=0,r=(i=l.form.querySelectorAll("input:not([type='submit'])"+o+", textarea"+o)).length;t0&&(1===(a=document.querySelectorAll(".errors[data-for='base']")).length?a[0].textContent=i[0]:null!=this.submit&&(this.submit.value=i[0]));else{if(null===(b=this.form.querySelector("[data-attr="+f+"]")))continue;if(0===(a=b.querySelectorAll(".errors[data-for="+f+"]")).length)continue;for(o=0,l=a.length;o0?(t.textContent="",i.push(t.style.display="none")):i.push(void 0);return i},t.prototype._showErrors=function(){var t,e,r,n,i;for(i=[],e=0,r=(n=this.form.querySelectorAll(".errors")).length;e0?i.push(t.style.display="block"):i.push(void 0);return i},t.prototype._submittingForm=function(t){if(null==t&&(t=!0),null!=this.submit&&(s(this.submit,"success"),s(this.submit,"failure"),u(this.submit,"active"),this.submit.value=n.I18n[this.locale].ui.form.sending),null!=this.callbackActive&&this.callbackActive(),t)return this._hideErrors()},t.prototype._connectionError=function(){var t;if(null!=this.submit)return s(this.submit,"active"),u(this.submit,"failure"),this.submit.value=n.I18n[this.locale].ui.form.errors.connection,setTimeout((t=this,function(){return t.submit.disabled=!1,s(t.submit,"failure"),t.submit.value=t.submitVal}),3e3)},t.prototype._alwaysAfterRequest=function(){if(null!=this.submit)return s(this.submit,"active")},t}()},c={ui:{form:{sending:"Sending...",success:"Success",errors:{connection:"Connection Error",invalid_data:"Invalid data"}}}};function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function b(t){for(var e=1;e