dbl-components
Version:
Framework based on bootstrap 5
12 lines • 26.4 kB
JavaScript
var _excluded=["query","format","timeout","body","headers"];function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _toArray(r){return _arrayWithHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableRest()}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}catch(t){define=function define(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,function(){return this});var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach(function(e){define(t,e,function(t){return this._invoke(e,t)})})}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==_typeof(h)&&n.call(h,"__await")?e.resolve(h.__await).then(function(t){invoke("next",t,i,a)},function(t){invoke("throw",t,i,a)}):e.resolve(h).then(function(t){u.value=t,i(u)},function(t){return invoke("throw",t,i,a)})}a(c.arg)}var r;o(this,"_invoke",{value:function value(t,n){function callInvokeWithMethodAndArg(){return new e(function(e,r){invoke(t,n,e,r)})}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator["return"]&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(_typeof(e)+" is not iterable")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,function(){return this}),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then(function(t){return t.done?t.value:a.next()})},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,function(){return this}),define(g,"toString",function(){return"[object Generator]"}),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function reset(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function abrupt(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function complete(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function finish(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},"catch":function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)})}}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import urlJoin from"url-join";import{flatten,randomS4,resolveRefs,deepMerge,eventHandler,addDictionary,addFormatDate,addFormatNumber,addFormatTime,getLang as _getLang,setLang,addFormatDateTime}from"dbl-utils";import{addIcons}from"./media/icons";import{addComponents}from"./components";import{addControllers}from"./controllers";import{addFields}from"./forms/fields";var GLOBAL_STATE={};/**
* @param {Object} props - Propiedades de la aplicación
* @param {Object} props.icons - Archivo IcoMoon que registra todos los íconos
* @param {Object} props.controllers - listado de los controladores personalizados
* @param {Object} props.components - listado de componentes personalizados
* @param {Array|Object} props.definitions - global definitions
* @param {Object[]} props.routes - array of routes
* @param {Object} props.schema - initial schema, the app root
*/export var AppController=/*#__PURE__*/function(){function AppController(){var _this=this;var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;_classCallCheck(this,AppController);_defineProperty(this,"fetchList",{});_defineProperty(this,"globalDefinitions",[]);_defineProperty(this,"routes",{});_defineProperty(this,"tmpRoutesFound",0);_defineProperty(this,"rootSchema",void 0);_defineProperty(this,"random",randomS4());_defineProperty(this,"props",void 0);_defineProperty(this,"prefixStorage","_gs.");_defineProperty(this,"setLang",function(lang){_this.props.lang=lang;setLang(lang);if(typeof _this.update==="function")_this.update(randomS4())});if(props)this.init(props)}return _createClass(AppController,[{key:"init",value:function init(){var _this$globalDefinitio,_this2=this;var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _props$definitions=props.definitions,definitions=_props$definitions===void 0?[]:_props$definitions,_props$routes=props.routes,routes=_props$routes===void 0?[]:_props$routes,_props$fields=props.fields,fields=_props$fields===void 0?{}:_props$fields,_props$components=props.components,components=_props$components===void 0?{}:_props$components,_props$controllers=props.controllers,controllers=_props$controllers===void 0?{}:_props$controllers,_props$icons=props.icons,icons=_props$icons===void 0?false:_props$icons,_props$schema=props.schema,schema=_props$schema===void 0?{view:{name:"appEmpty",path:"/",content:"Root empty site"}}:_props$schema,_props$api=props.api,api=_props$api===void 0?"http://localhost:3000/":_props$api,_props$apiHeaders=props.apiHeaders,apiHeaders=_props$apiHeaders===void 0?{}:_props$apiHeaders,_props$fetchBefore=props.fetchBefore,fetchBefore=_props$fetchBefore===void 0?function(url,options){return options}:_props$fetchBefore,_props$fetchAfter=props.fetchAfter,fetchAfter=_props$fetchAfter===void 0?function(res){return res}:_props$fetchAfter,_props$fetchError=props.fetchError,fetchError=_props$fetchError===void 0?function(error,url){return error}:_props$fetchError,_props$maxTimeout=props.maxTimeout,maxTimeout=_props$maxTimeout===void 0?0:_props$maxTimeout,_props$minTimeout=props.minTimeout,minTimeout=_props$minTimeout===void 0?1000:_props$minTimeout,_props$dictionary=props.dictionary,dictionary=_props$dictionary===void 0?{}:_props$dictionary,_props$formatDate=props.formatDate,formatDate=_props$formatDate===void 0?{}:_props$formatDate,_props$formatNumber=props.formatNumber,formatNumber=_props$formatNumber===void 0?{}:_props$formatNumber,_props$formatTime=props.formatTime,formatTime=_props$formatTime===void 0?{}:_props$formatTime,_props$formatDateTime=props.formatDateTime,formatDateTime=_props$formatDateTime===void 0?{}:_props$formatDateTime,_props$lang=props.lang,lang=_props$lang===void 0?"default":_props$lang,_props$initialState=props.initialState,initialState=_props$initialState===void 0?{}:_props$initialState;this.props={definitions:definitions,routes:routes,fields:fields,components:components,controllers:controllers,icons:icons,schema:schema,api:api,apiHeaders:apiHeaders,fetchBefore:fetchBefore,fetchAfter:fetchAfter,fetchError:fetchError,maxTimeout:maxTimeout,minTimeout:minTimeout,dictionary:dictionary,formatDate:formatDate,formatNumber:formatNumber,formatTime:formatTime,formatDateTime:formatDateTime,lang:lang};if(icons)addIcons(icons);(_this$globalDefinitio=this.globalDefinitions).push.apply(_this$globalDefinitio,_toConsumableArray(Array.isArray(definitions)?definitions:[definitions]));this.routes=routes.reduce(function(rdx,route){if(rdx[route.view.name])console.warn("Route was ".concat(route.view.name," overwrited"));rdx[route.view.name]=route;return rdx},{});if(fields)addFields(fields);if(components)addComponents(components);if(controllers)addControllers(controllers);if(dictionary)addDictionary(dictionary);if(formatDate)addFormatDate(formatDate);if(formatNumber)addFormatNumber(formatNumber);if(formatTime)addFormatTime(formatTime);if(formatDateTime)addFormatDateTime(formatDateTime);if(lang)setLang(lang);if(initialState){var keys=[].concat(_toConsumableArray(Object.keys(sessionStorage)),_toConsumableArray(Object.keys(localStorage))).filter(function(k){return k.startsWith(_this2.prefixStorage)}).map(function(k){return k.replace(_this2.prefixStorage,"")});Object.entries(initialState).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];if(keys.includes(key))_this2.get(key);else GLOBAL_STATE[key]=value})}schema.path=schema.path||"/";this.rootSchema=this.buildRootSchema(schema);console.info("Total Routes:",this.tmpRoutesFound)}},{key:"findingRoutesRecursive",value:function findingRoutesRecursive(schema){var _schema$routes,_this3=this;this.tmpRoutesFound++;var newDefs=deepMerge.apply(void 0,[{}].concat(_toConsumableArray(this.globalDefinitions),[schema.definitions||{}]));var view=resolveRefs(schema.view,{definitions:newDefs,data:schema.data||{}});if((_schema$routes=schema.routes)!==null&&_schema$routes!==void 0&&_schema$routes.length)view.routes=Object.entries(resolveRefs(schema.routes,{routes:this.routes})).map(function(_ref3){var _ref4=_slicedToArray(_ref3,2),key=_ref4[0],route=_ref4[1];if(!(route&&route.view)){console.error("ROUTE VIEW (route.view) NOT FOUND",route);return{name:view.name+"."+key,path:"/".concat(view.name,"-").concat(key),tag:"error",content:"\n <p class='text-danger'>NOT FOUND</p>\n <p class='bg-dark text-light'><pre>".concat(JSON.stringify(schema,null,2),"}</pre></p>\n ")}}return _this3.findingRoutesRecursive(route)});return view}},{key:"buildRootSchema",value:function buildRootSchema(schema){this.tmpRoutesFound=0;var root=this.findingRoutesRecursive(schema);console.info("Total Routes:",this.tmpRoutesFound);return root}},{key:"stringify",value:function stringify(data,encrypt){//TODO: encrypt data y agregar un uno (1::) al principio, para saber que es una cadena encriptada
return JSON.stringify(data)}},{key:"parse",value:function parse(data){//TODO: revisar que sea una string que inicia con un uno (1::) si sí desencriptar, sino, solo devolver
return JSON.parse(data)}},{key:"set",value:function set(key,data){var _ref5=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},_ref5$dispatch=_ref5.dispatch,dispatch=_ref5$dispatch===void 0?true:_ref5$dispatch,_ref5$storage=_ref5.storage,storage=_ref5$storage===void 0?"local":_ref5$storage,_ref5$encrypt=_ref5.encrypt,encrypt=_ref5$encrypt===void 0?false:_ref5$encrypt;if(storage==="local")localStorage.setItem(this.prefixStorage+key,this.stringify(data,encrypt));else if(storage==="session")sessionStorage.setItem(this.prefixStorage+key,this.stringify(data,encrypt));GLOBAL_STATE[key]=data;if(dispatch)eventHandler.dispatch("global."+key,data)}},{key:"get",value:function get(key){if(GLOBAL_STATE[key]===undefined){var value=sessionStorage.getItem(this.prefixStorage+key);if(value===null)value=localStorage.getItem(this.prefixStorage+key);if(value!==null)GLOBAL_STATE[key]=this.parse(value)}return GLOBAL_STATE[key]}},{key:"remove",value:function remove(key){var _ref6=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},storage=_ref6.storage,_ref6$dispatch=_ref6.dispatch,dispatch=_ref6$dispatch===void 0?true:_ref6$dispatch;if(storage==="local")localStorage.removeItem(this.prefixStorage+key);else if(storage==="session")sessionStorage.removeItem(this.prefixStorage+key);else{localStorage.removeItem(this.prefixStorage+key);sessionStorage.removeItem(this.prefixStorage+key)}GLOBAL_STATE[key]=null;delete GLOBAL_STATE[key];if(dispatch)eventHandler.dispatch("global."+key)}},{key:"getRootDefinitions",value:function getRootDefinitions(){var allDefs=deepMerge.apply(void 0,[{}].concat(_toConsumableArray(this.globalDefinitions),[this.rootSchema.definitions||{}]));return resolveRefs(allDefs,{definitions:allDefs})}},{key:"getViewDefinitions",value:function getViewDefinitions(name){var _this$routes$name;if(!((_this$routes$name=this.routes[name])!==null&&_this$routes$name!==void 0&&_this$routes$name.definitions))return{};var allDefs=deepMerge.apply(void 0,[{}].concat(_toConsumableArray(this.globalDefinitions),[this.routes[name].definitions||{}]));return resolveRefs(allDefs,{definitions:allDefs})}},{key:"getGlobalDefinitions",value:function getGlobalDefinitions(){return this.globalDefinitions}},{key:"getGlobalKeys",value:function getGlobalKeys(){return Object.keys(GLOBAL_STATE)}},{key:"minTimeout",value:function(){var _minTimeout=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(promise){var timeout,_yield$Promise$all,_yield$Promise$all2,r,_args=arguments;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:timeout=_args.length>1&&_args[1]!==undefined?_args[1]:this.props.minTimeout;_context.next=3;return Promise.all([promise,new Promise(function(resolve){return setTimeout(resolve,timeout,true)})]);case 3:_yield$Promise$all=_context.sent;_yield$Promise$all2=_slicedToArray(_yield$Promise$all,1);r=_yield$Promise$all2[0];return _context.abrupt("return",r);case 7:case"end":return _context.stop()}},_callee,this)}));function minTimeout(_x2){return _minTimeout.apply(this,arguments)}return minTimeout}()},{key:"addHeaders",value:function addHeaders(obj){Object.assign(this.props.apiHeaders,obj)}},{key:"removeHeaders",value:function removeHeaders(){var _this4=this;for(var _len=arguments.length,headerName=new Array(_len),_key=0;_key<_len;_key++){headerName[_key]=arguments[_key]}headerName.flat().filter(Boolean).forEach(function(hn){_this4.props.apiHeaders[hn]=null;delete _this4.props.apiHeaders[hn]})}},{key:"fetch",value:function(_fetch){function fetch(_x){return _fetch.apply(this,arguments)}fetch.toString=function(){return _fetch.toString()};return fetch}(function(url){var _this5=this;var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{method:"GET"};options.method=options.method||"GET";if(this.fetchList[options.method+url]){this.fetchList[options.method+url].abort()}var _this$props$fetchBefo=this.props.fetchBefore(url,options),query=_this$props$fetchBefo.query,_this$props$fetchBefo2=_this$props$fetchBefo.format,format=_this$props$fetchBefo2===void 0?"json":_this$props$fetchBefo2,_this$props$fetchBefo3=_this$props$fetchBefo.timeout,timeout=_this$props$fetchBefo3===void 0?this.props.maxTimeout:_this$props$fetchBefo3,body=_this$props$fetchBefo.body,headers=_this$props$fetchBefo.headers,conf=_objectWithoutProperties(_this$props$fetchBefo,_excluded);if(body)conf.body=JSON.stringify(body);var fUrl=urlJoin(this.props.api,url);var urlFinal=new URL(fUrl);var flattenQuery=flatten(query||{},{safe:true});Object.entries(flattenQuery).forEach(function(_ref7){var _ref8=_slicedToArray(_ref7,2),key=_ref8[0],value=_ref8[1];if(Array.isArray(value)){value.forEach(function(v){return urlFinal.searchParams.append(key,v)})}else if(["number","boolean","string"].includes(_typeof(value))){urlFinal.searchParams.set(key,value)}});if(timeout){this.fetchList[options.method+url]=new AbortController;conf.signal=this.fetchList[options.method+url].signal}var apiHeaders=!this.props.apiHeaders?{}:_typeof(this.props.apiHeaders)==="object"?this.props.apiHeaders:typeof this.props.apiHeaders==="string"&&this.props.apiHeaders.split("|").reduce(function(rdx,c){var _c$split$map=c.split(":").map(function(s){return s.trim()}),_c$split$map2=_toArray(_c$split$map),key=_c$split$map2[0],value=_c$split$map2.slice(1);rdx[key]=value.join(":");return rdx},{});conf.headers=Object.assign(_objectSpread({"Content-Type":"application/json","Accept":"application/json"},apiHeaders),headers);if(timeout){this.fetchList[options.method+url].timeoutId=setTimeout(this.onTimeout.bind(this),timeout,this.fetchList[options.method+url])}var fetchPromise=fetch(urlFinal,conf).then(/*#__PURE__*/function(){var _ref9=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(r){var e,j;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:delete _this5.fetchList[options.method+url];if(r.ok){_context2.next=9;break}e=new Error(r.statusText);e.status=r.status;_context2.next=6;return r.json();case 6:j=_context2.sent;Object.assign(e,j);throw e;case 9:return _context2.abrupt("return",format==="raw"?r:r[format]());case 10:case"end":return _context2.stop()}},_callee2)}));return function(_x3){return _ref9.apply(this,arguments)}}())["catch"](function(e){e.error=true;if(e.name.includes("AbortError")&&abortCtrl.timeout){var et=new Error("timeout");et.error=true;return _this5.props.fetchError(et,url)}console.error(e);return _this5.props.fetchError(e,url)}).then(this.props.fetchAfter)["finally"](function(){if(timeout)clearTimeout(_this5.fetchList[options.method+url].timeoutId)});return this.minTimeout(fetchPromise)})},{key:"onTimeout",value:function onTimeout(controller){controller.timeout=true;controller.abort()}},{key:"getLang",value:function getLang(){return _getLang()}},{key:"setUpdate",value:function setUpdate(update){this.update=update}}])}();export default new AppController;
//# sourceMappingURL=app-controller.js.map