(function(){'use strict';$.active=0;function onResponse(response,params){if(params.global===false){return;} $(document).trigger('ajaxComplete',{response:response});} function onError(error,params){if(params.error){params.error(error.response||error.original.response,error);} if(params.complete){params.complete(error.response||error.original.response);}} function onSuccess(response,params){if(params.success){params.success(response.body||response.text,response);} if(params.complete){params.complete(response);} return response;} function prepareParams(url,params){if(typeof url==='object'){params=url;}else if(!params){params={};} if(params.each||params instanceof Element){params={form:params};} if(params.form){params.url=params.url||$(params.form).attr('action');params.data=params.form;} if(typeof url==='string'){params.url=url;} if(params.type&&['post','get','put','delete','head'].indexOf(params.type.toLowerCase())>-1){params.method=params.type.toLowerCase();} params.headers=Object.assign({'X-Requested-With':'XMLHttpRequest','Content-Type':'application/x-www-form-urlencoded'},params.headers||{});if(params.type==='json'){params.headers['Content-Type']='application/json';} if(params.contentType){params.headers['Content-Type']=params.contentType;}else if(params.contentType===false){delete params.headers['Content-Type'];} return params;} function toFormData(data){var formData,formKey=$.cookies.get('form_key');if(data.each&&data.get){data=data.get(0);} if(data instanceof Element){formData=new FormData(data);}else{formData=new FormData();if(typeof data==='string'){data=$.parseQuery(data);} _.each(data,function(value,key){if(_.isArray(value)){key=key.includes('[')?key:key+'[]';value.map((val)=>formData.append(key,val));}else{formData.set(key,value);}});} if(!formData.has('form_key')){formData.set('form_key',formKey);} return formData;} function toJsonData(formData){var object={};formData.forEach((value,key)=>{if(!Reflect.has(object,key)){object[key]=value;return;} if(!Array.isArray(object[key])){object[key]=[object[key]];} object[key].push(value);});return object;} function send(params){if(params.method==='get'&¶ms.data){params.url+=params.url.indexOf('?')===-1?'?':'&';if(typeof params.data!=='string'){params.data=$.params(params.data);} params.url+=params.data;}else if(params.method==='post'&¶ms.data){if(typeof params.data!=='string'){params.body=toFormData(params.data);delete params.headers['Content-Type'];}else{params.body=params.data;}} if(params.context){['success','complete','error','beforeSend'].forEach(function(fn){if(params[fn]){params[fn]=params[fn].bind(params.context);}});} if(params.beforeSend){params.beforeSend(params);} $.active++;return fetch(params.url,params).then(function(response){return response.text();}).then(function(text){var response={text:text,req:params};$.active--;response.body=(function(){try{return JSON.parse(text);}catch(e){if(!params.dataType&&!params.type||params.dataType&¶ms.dataType!=='json'||params.type&¶ms.type!=='json'){return text;} e.response=response;throw e;}})();onResponse(response,params);return response;}).then(function(response){try{return onSuccess(response,params);}catch(e){console.error(e);}}).catch(function(error){return onError(error,params);});} $.request={send:function(url,params){params=prepareParams(url,params);return this[params.method||'get'](params);},post:function(url,params){params=prepareParams(url,params);params.method='post';return send(params);},get:function(url,params){params=prepareParams(url,params);params.method='get';return send(params);}};$.ajax=function(url,params){return $.request.send(url,params);};$.get=function(url,params){return $.request.get(url,params);};$.post=function(url,params){return $.request.post(url,params);};})();