'=@\u003C\u003E:\"\\\u002F\\\\|?*]+\u002Fg, '' ).replace( \u002F \u002Fg, '_' );\n };\n\n \u002F**\n * Replace all characters whith \"\" except numbers and letters.\n * @extends GWC.HigJS.str\n * \n * @param {String} str String.\n * @return {String} String without illegal characters.\n *\u002F\n HigJS.str.cleanString = function( str ) {\n str = str.replace( \u002F\\t\u002F , \"\");\n str = str.replace( \u002F\\n\u002F , \"\");\n str = str.replace( \u002F\\r\u002F , \"\");\n str = str.replace( \u002F\\b\u002F , \"\");\n str = str.replace( \u002F\\f\u002F , \"\");\n return str.replace( \u002F[^a-zA-Z0-9]+$\u002F , \"\");\n };\n\n \u002F**\n * Data una stringa controlla che sia un indirizzo ip V4.\n * @extends GWC.HigJS.str\n * \n * @param {String} ipaddr Indirizzo ip.\n * @return {Boolean} Ritorna true se è un indirizzo ip, altrimenti false.\n *\u002F\n HigJS.str.validateIPAddress = function(ipaddr) {\n if(!ipaddr) return false;\n \u002F\u002FRemember, this function will validate only Class C IP.\n \u002F\u002Fchange to other IP Classes as you need\n ipaddr = ipaddr.replace( \u002F\\s\u002Fg, \"\") \u002F\u002Fremove spaces for checking\n var re = \u002F^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$\u002F; \u002F\u002Fregex. check for digits and in\n \u002F\u002Fall 4 quadrants of the IP\n if (re.test(ipaddr)) {\n \u002F\u002Fsplit into units with dots \".\"\n var parts = ipaddr.split(\".\");\n \u002F\u002Fif the first unit\u002Fquadrant of the IP is zero\n if (parseInt(parseFloat(parts[0])) == 0) {\n return false;\n }\n if( parts.length != 4)\n return false;\n \u002F\u002Fif the fourth unit\u002Fquadrant of the IP is zero\n \u002F\u002F if (parseInt(parseFloat(parts[3])) == 0) {\n \u002F\u002F return false;\n \u002F\u002F }\n \u002F\u002Fif any part is greater than 256\n for (var i=0; i\u003Cparts.length; i++) {\n if (parseInt(parseFloat(parts[i])) \u003E 256){\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n };\n\n HigJS.str.removeSpaces = function ( str ){\n if( !str ) return \"\";\n typeof str != \"string\" && str.toString && ( str = str.toString() );\n return str.replace(\u002F\\s+\u002Fg, '');\n }\n\n HigJS.str.checkPkgVersion = function( pkgVer1, pkgVer2, equal ){\n if( !pkgVer1 ) return true;\n if( !pkgVer2 ) return false;\n\n if( equal && pkgVer1 === pkgVer2 )\n return true;\n \n var gwcVer = pkgVer1.split(\".\"), i,\n srvVer = pkgVer2.split(\".\");\n \n for( i = 0; i \u003C 3; i++ ){\n if( parseInt(gwcVer[i]) \u003C parseInt(srvVer[i]) )\n return true;\n else if( parseInt(gwcVer[i]) \u003E parseInt(srvVer[i]) )\n return false;\n } \n return false;\n }\n\n \u002F**\n * Rimpiazza un carattere in una stringa.\n * @extends GWC.HigJS.str\n * \n * @param {String} str Stringa.\n * @param {Number} index Posizione in cui sostituire il carattere.\n * @param {String} character Carattere da inserire nella stringa.\n * @return {String} Ritorna la stringa modificata.\n *\u002F\n HigJS.str.replaceAt = function(str, index, character) {\n return str.substr(0, index) + character + str.substr(index+character.length);\n };\n\n HigJS.str.substring = function( str, from, to ){\n return typeof str === \"string\" ? str.substring(from, to) : str;\n };\n\n \u002F\u002F --------------------------\n \u002F\u002F Objects Functions\n \u002F\u002F --------------------------\n \u002F**\n * Objects Functions\n * @class GWC.HigJS.obj\n *\u002F\n HigJS.obj = {};\n \u002F**\n * Object library version.\n * @property\n *\u002F\n HigJS.obj.VERSION = '0.0.1';\n \u002F**\n * Trasforma un oggetto javascript in una stringa json.\n * https:\u002F\u002Fgithub.com\u002Fvkiryukhin\u002Fjsonfn\n * @extends GWC.HigJS.obj\n * \n * @param {Object} obj Oggetto javascript da trasformare.\n * @return {String} Oggetto convertito a stringa. In caso di errore stringa vuota.\n *\u002F\n HigJS.obj.toString = function(obj) {\n try { return JSON.stringify(obj); }\n catch(e){ return \"\"; }\n };\n\n \u002F**\n * Clona un oggetto js.\n * @extends GWC.HigJS.obj\n * \n * @param {Object} source Oggetto javascript da clonare.\n * @return {Object} Oggetto javascript clonato.\n *\u002F\n HigJS.obj.clone = function( obj, scope ){\n return HigJS.str.toObj( HigJS.obj.toString( obj ), scope );\n };\n \u002F**\n * Elimina i null da un oggetto. Può essere specificato un livello massimo di ricorsione.\n * @extends GWC.HigJS.obj\n * \n * @param {Object} source Oggetto javascript dal quale rimuovere i null.\n *\u002F\n HigJS.obj.removeNulls = function( obj, recursion ){\n for( var k in obj ){\n if( obj[ k ] === null ){ delete obj[ k ]; }\n else if( typeof obj[ k ] === 'object' ){\n recursion && HigJS.obj.removeNulls( obj[ k ], --recursion );\n }\n }\n };\n\n \u002F**\n * Extends 2 objects and if rec is true removes null fields.\n * @extends GWC.HigJS.obj\n * \n * @param {Object} obj1 Javascript destination object.\n * @param {Object} obj2 Javascript source object.\n * @param {Number} rec If set removes null fields recursively \"rec\" times.\n * @return {Object} Extended object.\n *\u002F\n HigJS.obj.extendAdv = function( obj1, obj2, rec ){\n rec && HigJS.obj.removeNulls( obj2, rec );\n return HigJS.obj.extend(true, {}, obj1, obj2);\n };\n\n \u002F**\n * Extends 2 or more objects. Code from jQuery 2.1.3.\n * @extends GWC.HigJS.obj\n * \n * @param {Object} source Oggetto javascript dal quale rimuovere i null.\n * @return {Object} Extended object.\n *\u002F\n HigJS.obj.extend = function() {\n var options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n \u002F\u002F Handle a deep copy situation\n if ( typeof target === \"boolean\" ) {\n deep = target;\n\n \u002F\u002F Skip the boolean and the target\n target = arguments[ i ] || {};\n i++;\n }\n\n \u002F\u002F Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== \"object\" && !HigJS.type.isFunction(target) ) {\n target = {};\n }\n\n \u002F\u002F Extend jQuery itself if only one argument is passed\n if ( i === length ) {\n target = this;\n i--;\n }\n\n for ( ; i \u003C length; i++ ) {\n \u002F\u002F Only deal with non-null\u002Fundefined values\n if ( (options = arguments[ i ]) != null ) {\n \u002F\u002F Extend the base object\n for ( name in options ) {\n src = target[ name ];\n copy = options[ name ];\n\n \u002F\u002F Prevent never-ending loop\n if ( target === copy ) {\n continue;\n }\n\n \u002F\u002F Recurse if we're merging plain objects or arrays\n \u002F\u002F HigJS.type._sysIsObject DA NON SOSTITUIRE CON HigJS.type.isObject o HigJS.type.isPlainObj\n if ( deep && copy && ( HigJS.type._sysIsObject(copy) || (copyIsArray = HigJS.type.isArray(copy)) ) ) {\n if ( copyIsArray ) {\n copyIsArray = false;\n clone = src && HigJS.type.isArray(src) ? src : [];\n\n } else { \u002F\u002F HigJS.type._sysIsObject DA NON SOSTITUIRE CON HigJS.type.isObject o HigJS.type.isPlainObj\n clone = src && HigJS.type._sysIsObject(src) ? src : {};\n }\n\n \u002F\u002F Never move original objects, clone them\n target[ name ] = HigJS.obj.extend( deep, clone, copy );\n\n \u002F\u002F Don't bring in undefined values\n } else if ( copy !== undefined ) {\n target[ name ] = copy;\n }\n }\n }\n }\n\n \u002F\u002F Return the modified object\n return target;\n };\n\n \u002F**\n * Ordina un oggetto javascritp. Funzione completamente inutile!!!\n * @extends GWC.HigJS.obj\n * @ignore\n * \n * @param {Object} obj Oggetto javascript da ordinare.\n * @param {Function} obj (optional) Funzione che ordina.\n * @return {Object} Oggetto ordinato.\n *\u002F\n HigJS.obj.sort = function( obj, func ){\n var i, key, sortable = [], newObj = {};\n\n for( key in obj )\n sortable.push([key, obj[key]])\n\n if( func )\n sortable.sort( func );\n else\n sortable.sort(function(a, b) { return a[1] - b[1] });\n\n for( i = 0; i \u003C sortable.length; i++ )\n newObj[ sortable[i][0] ] = sortable[i][1];\n return newObj;\n };\n\n \u002F**\n * Returns the size of a object\n * @extends GWC.HigJS.obj\n * \n * @param {Object} opt Object\n * @return {Number} Object size.\n *\u002F\n HigJS.obj.objectSize = function( obj ){\n var size = 0, key;\n for (key in obj) {\n if ( obj.hasOwnProperty(key) && typeof obj[key] !== \"function\" ) \n size++;\n }\n return size;\n };\n\n\n \u002F\u002F --------------------------\n \u002F\u002F Numeric Functions\n \u002F\u002F --------------------------\n \u002F**\n * Number Functions\n * @class GWC.HigJS.num\n *\u002F\n HigJS.num = {};\n \u002F**\n * Number library version.\n * @property\n *\u002F\n HigJS.num.VERSION = '0.0.1';\n \u002F**\n * Dato un input controlla che sia un numero.\n * \n * REGEX: \u002F^(\\-|)([1-9]\\d{0,2}(\\.\\d{3})*|([0-9]\\d*))(\\.\\d{0,20})?$\u002F\n * \n * - Testa primo carattere se numerico, + o - (segno)\n * - il resto del numero è composto da cifre e un solo punto o virgola\n *\n * @extends GWC.HigJS.num\n * @param {Object} opt Oggetto di configurazione. oppure numero da testare\n * @param {Object} [opt.val] Se opt è un oggetto, qui metto il valore numerico da verificare\n * @return {Number|Boolean} Ritorna il numero (in formato stringa) con il punto (se decimale).\n *\u002F\n HigJS.num.isNum = function( opt ){\n if( typeof opt === 'undefined' || opt === null ){ return false; } \n if( typeof opt === 'object' ){\n if( opt.val === null || typeof opt.val === \"undefined\"){ return false; }\n else{ val = opt.val; }\n }\n else{ val = opt; }\n \n if( val === false || val === true ){ return false; }\n if( typeof val !== \"string\" ){ val = val.toString() }\n\n val = val.replace(',','.').replace(\u002F \u002Fg,'');\n\n if( val === 0 || val === \"0\" ) return val;\n \n \u002F\u002F var validNum = \u002F^-?(\\d+.?\\d*)$|(\\d*.?\\d+)\\g$\u002F;\n var validNum = \u002F^(\\-|)([1-9]\\d{0,2}(\\.\\d{3})*|([0-9]\\d*))(\\.\\d{0,20})?$\u002F;\n if( validNum.test(val) ){ return val; }\n \n return false;\n };\n \u002F**\n * Verifica se il numero è un intero\n * @extends GWC.HigJS.num\n * \n * @param {Number} n Valore da verificare se è un numero intero oppure no.\n * @return {Boolean} true se il numero è un intero\n *\u002F\n HigJS.num.isInt = function( n ){ return n % 1 === 0; };\n\n \u002F**\n * Genera una numero random.\n * @extends GWC.HigJS.num\n * \n * @param {Object} opt Oggetto di configurazione.\n * @param {Number} opt.max Valore massimo del numero random. Default 1000.\n * @return {Number} Numero casuale.\n *\u002F\n HigJS.num.genNum = function( opt ){\n !opt && ( opt = { max: 1000 } );\n return Math.floor(Math.random()*(opt.max+1));\n };\n\n \u002F**\n * Change number size and set a new unit if the size is bigger than the size specified.\n * @extends GWC.HigJS.num\n * \n * @param {Object} opt Configuration object.\n * @param {Object} opt.value Value.\n * @param {Object} opt.um Unit.\n * @param {Object} opt.numLength Maximum number length.\n * return {Object} New number and new unit.\n *\u002F\n HigJS.num.autoSizeNum = function( opt ){\n \u002F\u002F try {\n var units = [\n { sym: \"\", molt: 1, nDec: 1, nextSym: \"k\" },\n { sym: \"k\", molt: 1000, nDec: 1, nextSym: \"M\" },\n { sym: \"M\", molt: 1000000, nDec: 2, nextSym: \"G\" },\n { sym: \"G\", molt: 1000000000, nDec: 2, nextSym: \"T\" },\n { sym: \"T\", molt: 1000000000000, nDec: 2 }\n ], i, unitsObj = { \"\": units[0], k: units[1], M: units[2], G: units[3], T: units[4] }, originalValue = opt.value,\n nDecObj = opt.nDec;\n\n \u002F\u002F Controllo che nDec sia un valore o un oggetto del tipo { \"k\": 1, \"M\": 2 }\n if( opt.nDecObj ){\n nDecObj = opt.nDecObj;\n }\n\n if( HigJS.type.isNumber( nDecObj ) ){\n for( i = 0; i \u003C units.length; i++ ){\n units[i].nDec = nDecObj;\n }\n } else if( nDecObj ) {\n for( i = 0; i \u003C units.length; i++ ){\n typeof nDecObj[ units[i].sym ] !== \"undefined\" && ( units[i].nDec = nDecObj[ units[i].sym ] );\n }\n }\n\n opt.value = parseFloat( opt.value ).toFixed( unitsObj[opt.um[0]] && unitsObj[opt.um[0]].nDec ? unitsObj[opt.um[0]].nDec : unitsObj[\"\"].nDec );\n\n if( opt.value.length \u003C opt.numLength ){\n return opt;\n } else {\n opt.value = HigJS.num.toString( originalValue );\n }\n\n \u002F\u002F var counter = 0, i;\n while( opt.value.length \u003E opt.numLength ){\n if( !unitsObj[opt.um[0]] ){\n opt.um = \"k\" + opt.um;\n } else if( unitsObj[opt.um[0]].nextSym ){\n opt.um = HigJS.str.replaceAt( opt.um, 0, unitsObj[opt.um[0]].nextSym );\n } else {\n return opt;\n }\n opt.value = ( parseFloat( opt.value ) \u002F 1000 ).toFixed( unitsObj[opt.um[0]] && unitsObj[opt.um[0]].nDec ? unitsObj[opt.um[0]].nDec : unitsObj[\"\"].nDec );\n\n \u002F\u002F if( !unitsObj[opt.um[0]] ){\n \u002F\u002F opt.um = \"k\" + opt.um;\n \u002F\u002F } else if( unitsObj[opt.um[0]].nextSym ){\n \u002F\u002F opt.um = HigJS.str.replaceAt( opt.um, 0, unitsObj[opt.um[0]].nextSym );\n \u002F\u002F } else {\n \u002F\u002F return opt;\n \u002F\u002F }\n \u002F\u002F counter++;\n }\n\n return opt;\n \u002F\u002F } catch( e ){\n \u002F\u002F return opt;\n \u002F\u002F }\n \n \u002F\u002F opt.value = parseFloat( opt.value ).toFixed( opt.nDec || 1 );\n \u002F\u002F opt.value = opt.value.toString();\n\n \u002F\u002F if( opt.value.length \u003C opt.numLength ) \n \u002F\u002F return opt;\n\n \u002F\u002F var counter = 0, i;\n \u002F\u002F while( opt.value.length \u003E opt.numLength ){\n \u002F\u002F opt.value = ( parseFloat( opt.value ) \u002F 1000 ).toFixed( opt.nDec || 1 ).toString();\n \u002F\u002F counter++;\n \u002F\u002F }\n\n \u002F\u002F for( i = 0; i \u003C units.length; i++){\n \u002F\u002F if( opt.um[0] === units[i].sym ){\n \u002F\u002F opt.um = opt.um.replace( opt.um[0], units[i+counter].sym );\n \u002F\u002F return opt;\n \u002F\u002F }\n \u002F\u002F }\n\n \u002F\u002F \u002F\u002F Nel caso non sia riuscito ad interpretare l'unità di misura ritorno la stessa.\n \u002F\u002F if( i \u003E= units.length ){\n \u002F\u002F opt.um = counter ? units[(counter-1)].sym + opt.um : opt.um;\n \u002F\u002F return opt;\n \u002F\u002F }\n\n \u002F\u002F opt.um = opt.um.replace( opt.um[0], units[i+counter].sym );\n \u002F\u002F return opt;\n };\n\n \u002F**\n * Converte un decimale in un esadecimale\n * @extends GWC.HigJS.num\n * \n * @param {Number} d Decimale.\n * @return {String} Valore esadecimale.\n *\u002F\n HigJS.num.dec2hex = function( d ){ return d.toString(16); };\n \u002F**\n * Converte un esadecimale in un decimale\n * @extends GWC.HigJS.num\n * \n * @param {String} d Decimale.\n * @return {Number} Valore decimale.\n *\u002F\n HigJS.num.hex2dec = function( h ){ return parseInt(h,16); };\n HigJS.num.toString = function( num ){ try{ return num.toString(); } catch(e) { return \"\"; } }\n\n \u002F**\n * @function\n * @description Converte un valore esadecimale in un binario.\n * @param {string} h Stringa in esadecimale.\n * @return Stringa binaria composta da 16 cifre.\n *\u002F\n HigJS.num.hex2bin = function (h,opt) {\n if(h == null || isNaN(\"0x\"+h))\n return [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n \n if(typeof h == \"number\")\n h = h.toString();\n h = parseInt(h,16);\n h = h.toString(2);\n while(h.length \u003C 15)\n h = \"0\".concat(h);\n if(opt == 1){\n var h1 = new Array();\n for(var i = 0; i \u003C h.length; i++){\n h1[i] = parseInt(h[i]);\n }\n return h1;\n }\n return h;\n }\n\n\n \u002F\u002F --------------------------\n \u002F\u002F Array Functions\n \u002F\u002F --------------------------\n \u002F**\n * Array Functions\n * @class GWC.HigJS.array\n *\u002F\n HigJS.array = {};\n \u002F**\n * Array library version.\n * @property\n *\u002F\n HigJS.array.VERSION = '0.0.1';\n \u002F**\n * Clona un Array js.\n * @extends GWC.HigJS.array\n * \n * @param {Array} source Array javascript da clonare.\n * @return {Array} Array javascript clonato.\n *\u002F\n HigJS.array.clone = function( array ){ return array.slice(0); };\n\n \u002F**\n * Concatena due array senza creare in memoria un'ulteriore copia.\n * @extends GWC.HigJS.array\n * \n * @param {Array} a Array in cui viene concatenato l'altro array.\n * @param {Array} b Array da concatenare.\n *\u002F\n HigJS.array.merge = function( a, b ){ \n if( a.reduce ){\n a = b.reduce( function(coll,item){\n coll.push( item );\n return coll;\n }, a );\n } else {\n a.push.apply( a, b );\n }\n };\n\n\n \u002F\u002F --------------------------\n \u002F\u002F Type Functions\n \u002F\u002F --------------------------\n \u002F**\n * Type's Functions\n * @class GWC.HigJS.type\n *\u002F\n HigJS.type = {};\n \u002F**\n * Type library version.\n * @property\n *\u002F\n HigJS.type.VERSION = '0.0.1';\n \u002F**\n * Controlla che l'input sia una funzione.\n * @extends GWC.HigJS.type\n * \n * @param {Function} target Target da controllare.\n * @return {Number} Valore decimale.\n *\u002F\n HigJS.type.isFunction = function( target ){ return typeof target === \"function\" ? true : false ;};\n \u002F**\n * Controlla che l'input sia un numero.\n * @extends GWC.HigJS.type\n * \n * @param {Number} target Target da controllare.\n * @return {Boolean} True se il tipo è corretto, altrimenti false.\n *\u002F\n HigJS.type.isNumber = function( target ){ return HigJS.num.isNum( target ) === false ? false : true ;};\n \u002F**\n * Controlla che l'input sia un array.\n * @extends GWC.HigJS.type\n * \n * @param {Array} target Target da controllare.\n * @return {Boolean} True se il tipo è corretto, altrimenti false.\n *\u002F\n HigJS.type.isArray = function( target ){ return target && Array.isArray(target) ? true : false ;};\n \u002F**\n * Controlla che l'input sia una stringa.\n * @extends GWC.HigJS.type\n * \n * @param {String} target Target da controllare.\n * @return {Boolean} True se il tipo è corretto, altrimenti false.\n *\u002F\n HigJS.type.isString = function( target ){ return typeof target === \"string\" ? true : false ;};\n \n HigJS.type.isPlainObj = function( target ){\n return ( target && typeof target === \"object\" && !Array.isArray( target ) && Object.prototype.toString.call(target) === \"[object Object]\" ) ? true : false;\n };\n \u002F**\n * Controlla che l'input sia un oggetto javascript.\n * Sono validi oggetti con diverso costruttore\n * @extends GWC.HigJS.type\n * \n * @param {Object} target Target da controllare.\n * @return {Boolean} True se il tipo è corretto, altrimenti false.\n *\u002F\n HigJS.type.isObject = function( target ){\n return ( target && typeof target === \"object\" && !Array.isArray( target ) && typeof target.lookupNamespaceURI !== \"function\" ) ? true : false;\n };\n\n \u002F\u002F Utilizzata esclusivamente in HigJS.obj.extend(). DA NON SOSTITUIRE CON HigJS.type.isObject o HigJS.type.isPlainObj\n HigJS.type._sysIsObject = function( target ){\n if( !target || typeof target !== \"object\" || target === target.window ){ return false; }\n if( !( target.constructor && target.constructor === Object ) ){ return false; }\n\n return true;\n };\n \u002F**\n * Controlla che l'input sia un oggetto del DOM.\n * @extends GWC.HigJS.type\n * \n * @param {Object} target Target da controllare.\n * @return {Number} True se il tipo è corretto, altrimenti false.\n *\u002F\n HigJS.type.isDOM = function( target ){ return (target && typeof target.lookupNamespaceURI === \"function\" ) ? true : false };\n\n\n \u002F\u002F --------------------------\n \u002F\u002F Debug Functions\n \u002F\u002F --------------------------\n \u002F**\n * Debug Functions and Settings.\n * @class GWC.HigJS.debug\n *\u002F\n HigJS.debug = {};\n\n \u002F**\n * Debug library version.\n * @property\n *\u002F\n HigJS.debug.VERSION = '0.0.1';\n \u002F**\n * Debug status, if true enable debug functions.\n * @property\n *\u002F\n HigJS.debug.enable = false;\n\n \u002F**\n * Prints a string only if debug is enabled.\n * @extends GWC.HigJS.debug\n * \n * @param {String} txt String to be printed\n *\u002F\n HigJS.debug.print = function( txt ){\n HigJS.debug.enable && console.log( txt );\n };\n\n \u002F**\n * Alias for print.\n * @extends GWC.HigJS.debug\n * \n * @param {String} txt String to be printed.\n *\u002F\n HigJS.debug.log = HigJS.debug.print;\n\n\n \u002F**\n * Prints an error only if debug is enabled.\n * @extends GWC.HigJS.debug\n * \n * @param {String} txt Error String\n *\u002F\n HigJS.debug.error = function( txt ){\n HigJS.debug.enable && console.error( txt );\n };\n\n \u002F\u002F --------------------------\n \u002F\u002F Date Functions\n \u002F\u002F --------------------------\n \u002F**\n * Date tools.\n * @class GWC.HigJS.date\n *\u002F\n HigJS.date = {};\n\n \u002F**\n * Date library version.\n * @property\n *\u002F\n HigJS.date.VERSION = '0.0.1';\n\n \u002F**\n * Numbers of day in a Month.\n * @extends GWC.HigJS.date\n * \n * @param {Number} month Month.\n * @param {Number} year Year.\n * @return {Number} Number of days.\n *\u002F\n HigJS.date.daysInMonth = function( month, year ){\n return (new Date(year, month+1, 0)).getDate()+1;\n };\n\n HigJS.date.daysInMonth2 = function( month, year ){\n return (new Date(year, month, 0)).getDate();\n };\n \u002F**\n * Numbers of day in a year.\n * @extends GWC.HigJS.date\n * \n * @param {Number} year Year.\n * @return {Number} Number of days.\n *\u002F\n HigJS.date.daysInYear = function( year ){\n return HigJS.date.isLeapYear(year) ? 366 : 365;\n };\n \u002F**\n * Is leap year? (bisestile).\n * @extends GWC.HigJS.date\n * \n * @param {Number} year Year.\n * @return {Number} True || false.\n *\u002F\n HigJS.date.isLeapYear = function(year) {\n return year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\n };\n\n \u002F**\n * Week number of a specific day - month - year\n * @extends GWC.HigJS.date\n *\n * @param {Number} year Year.\n * @param {Number} month Month.\n * @param {Number} day Day.\n * @return {Number} Week number.\n *\u002F\n HigJS.date.weekNumber = function( year, month, day ){\n var d = new Date( year, month, day );\n d.setHours(0,0,0);\n \u002F\u002F Set to nearest Thursday: current date + 4 - current day number\n \u002F\u002F Make Sunday's day number 7\n d.setDate(d.getDate() + 4 - (d.getDay()||7));\n \u002F\u002F Get first day of year\n var yearStart = new Date(d.getFullYear(),0,1);\n \u002F\u002F Calculate full weeks to nearest Thursday\n var weekNo = Math.ceil(( ( (d - yearStart) \u002F 86400000) + 1)\u002F7);\n \u002F\u002F Return array of year and week number\n return weekNo;\n };\n\n \u002F**\n * Returns the Date object for a specific year-week-date\n *\n * - Date starts from 1 to 7\n * - Week starts from 1\n * @extends GWC.HigJS.date\n *\n * @param {Number} year Year.\n * @param {Number} week Month.\n * @param {Number} date Day.\n * @return {Object} Date object.\n *\u002F\n HigJS.date.weeksToDate = function(year, week, date) {\n year = parseInt(year); week = parseInt(week); date = parseInt(date);\n var simple = new Date(year, 0, (week - 1) * 7);\n if( simple.getDay() \u003C 4 )\n simple.setDate(simple.getDate() - simple.getDay() + date);\n else\n simple.setDate(simple.getDate() + 7 - simple.getDay() + date);\n return simple;\n };\n\n HigJS.date.getTodayDate = function( offset ){\n !offset && ( offset = 0 );\n return HigJS.num.formatDate({ utc: parseInt((new Date()).getTime()\u002F1000)+(offset*86400), date: true, time: false });\n };\n\n HigJS.date.getYesterdayDate = function(){\n var now = new Date();\n return HigJS.num.formatDate({ utc: parseInt((new Date( now.getFullYear(), now.getMonth(), now.getDate()-1,now.getHours(),0,0 )).getTime()\u002F1000), date: true, time: false });\n };\n\n HigJS.date.getTimeIntervalMil = function( str ){\n var interval = [ 0, 0 ], now = new Date();\n if( str == \"today\" ){\n interval = [\n Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),0,0,0),\n Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),23, 59, 59)\n ];\n } else if( str == \"last24\" ){\n interval[1] = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n interval[0] = interval[1] - 86400000;\n } else if( str == \"lastWeek\" ) {\n interval[1] = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n interval[0] = interval[1] - 604800000;\n } else if( str == \"lastMonth\" ) {\n interval[1] = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n interval[0] = interval[1] - 2592000000;\n } else if( str == \"currentMonth\"){\n interval[0] = Date.UTC(now.getFullYear(), now.getMonth(), 1, 0, 0, 0)\u002F1000;\n interval[1] = Date.UTC(now.getFullYear(), now.getMonth()+1, 0, 23, 59, 0)\u002F1000;\n } else if( str == \"lastYear\") {\n interval[0] = Date.UTC(now.getUTCFullYear() - 1, now.getUTCMonth());\n interval[1] = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n } else if( str == \"currentYear\"){\n interval[0] = Date.UTC(now.getFullYear(), 0 )\u002F1000;\n interval[1] = Date.UTC(now.getFullYear()+1, 0, 1 )\u002F1000;\n }\n return interval;\n };\n\n HigJS.date.getCurrentWeek = function( startOnMonday ){\n var curr = new Date; \u002F\u002F get current date\n var first = curr.getDate() - curr.getDay() + ( startOnMonday ? 1 : 0 ); \u002F\u002F First day is the day of the month - the day of the week\n return { start: parseInt(Date.UTC(curr.getUTCFullYear(), curr.getUTCMonth(), first, 0, 0, 0)\u002F1000), stop: parseInt(Date.UTC(curr.getUTCFullYear(), curr.getUTCMonth(), first + 6, 0, 0, 0)\u002F1000) }\n };\n\n HigJS.date.getTimeInterval = function( str ){\n var interval = HigJS.date.getTimeIntervalMil( str );\n return [ parseInt( interval[0]\u002F1000 ), parseInt( interval[1]\u002F1000 ) ];\n };\n\n HigJS.date.getCustomInterval = function( date ) {\n var type = date.interval,\n dateObj = date.selection,\n interval = [ 0, 0 ];\n\n for (var id in dateObj) {\n dateObj[id] = (dateObj[id] == null)? null : + dateObj[id]; \u002F\u002Fconvert all the fields to number so there are non problems during adding operations\n }\n\n if (type == \"year\") {\n interval[0] = Date.UTC(dateObj.y, 0, 1);\n interval[1] = Date.UTC(dateObj.y + 1, 0, 1)\n } else if (type == \"month\") {\n interval[0] = Date.UTC(dateObj.y, dateObj.m, 1);\n interval[1] = Date.UTC(dateObj.y, dateObj.m + 1, 1)\n } else if (type == \"day\") {\n interval[0] = Date.UTC(dateObj.y, dateObj.m, dateObj.d);\n interval[1] = Date.UTC(dateObj.y, dateObj.m, dateObj.d + 1)\n }\n return [ parseInt(interval[0]\u002F1000), parseInt(interval[1]\u002F1000) ]\n };\n\n \u002F**\n * Dig deep into an object to get one of its properties in a simple way.\n * @param {object} opt Options object.\n * @param {string} [opt.key] The point-separated properties to descend in the object tree.\n * @param {object|string} [opt.target] The targeted object to dig in search of the desired properties .\n * @param {object} [opt.context] The context where to find the targeted object if opt.target is a string, defaults to Window.\n * @param {boolean} [opt.makeCopy] Simple flag to return a copy of the properties instead of a pointer.\n * @return {object} Returns the desired object or undefined if the properties is not reachable.\n *\u002F\n\n HigJS.obj.getObjDeep = function(opt){\n var parsedObj,tmp;\n\n if (!(opt && opt.hasOwnProperty('key') && opt.hasOwnProperty('target'))) {\n return;\n }\n\n if (HigJS.type.isString(opt.target)) {\n parsedObj = opt.context? opt.context[opt.target] : window[opt.target];\n } else {\n parsedObj = opt.target;\n }\n\n if (HigJS.type.isString(opt.key)) {\n opt.key = opt.key.split(\".\")\n var l = opt.key.length;\n for (var i = 0; i \u003C l; i++) {\n if (opt.key[i].replace(\u002F\\s+\u002Fg, '') != \"\") {\n try {\n tmp = opt.key[i].split('\\\\');\n if (tmp.length == 2 ) {\n if (tmp[0] !== '') {\n parsedObj = parsedObj[opt.key[i]];\n } else {\n switch(tmp[1]){\n case 'LAST':\n if (Array.isArray(parsedObj)) {\n tmp = parsedObj.length - 1;\n (tmp \u003E= 0) && (parsedObj = parsedObj[tmp]);\n } \n break;\n default:\n parsedObj = parsedObj[opt.key[i]];\n }\n }\n } else {\n parsedObj = parsedObj[opt.key[i]];\n }\n }\n catch(e){\n console.error(e);\n console.error(\"Failed to parse \" + opt.key[i] + \" property\");\n return;\n }\n }\n }\n } else {\n return\n }\n\n if (opt.makeCopy)\n return HigJS.obj.advClone( parsedObj, opt.context || undefined )\n \n return parsedObj \n };\n\n HigJS.obj.customHasOwnProperty = function(opt) {\n var returnValue = true;\n var tmpTarget = opt.target;\n if (opt && opt.target && opt.key) {\n var splitted = opt.key.split(\".\")\n var howDeep = splitted.length;\n for (var i = 0; i \u003C howDeep; i++) {\n var spl = splitted[i].replace(\u002F\\s+\u002Fg, '')\n if ( spl != \"\" && tmpTarget.hasOwnProperty(spl)) {\n try {\n tmpTarget = tmpTarget[spl];\n }\n catch(e){\n console.error(e);\n console.error(\"Failed to parse \" + opt.key[i] + \" property\");\n return false;\n }\n } else {\n returnValue = false;\n break;\n }\n }\n } else {\n returnValue = false\n }\n return returnValue\n }\n\n\n HigJS.date.getStartStopFromInterval = function( opt ){\n if( !HigJS.type.isObject( opt ) ){\n return {};\n };\n\n var interval = [],\n period,\n incrPeriod;\n\n if( HigJS.type.isString( opt.interval ) ){ interval = HigJS.date.getTimeInterval( opt.interval ); }\n\n if( opt.interval === \"all\" || ( HigJS.type.isNumber( opt.startTime ) && HigJS.type.isNumber( opt.stopTime ) ) ){\n interval[0] = opt.startTime || 0 ;\n interval[1] = opt.stopTime || ( Date.UTC( now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds() ) \u002F 1000 );\n }\n\n \u002F\u002F Checking interval bounds were properly computed\n if( !interval.length === 2 && HigJS.type.isNumber( interval[0] ) && HigJS.type.isNumber( interval[1] ) ){\n return {};\n }\n\n var elapsed = interval[1] - interval[0];\n period = parseInt( elapsed \u002F 10000 );\n incrPeriod = 86400;\n \n \u002F\u002F Adjusting incrPeriod\n if( elapsed \u003C 86400 ){ incrPeriod = 3600; } \u002F\u002F colonne di un ora su una giornata\n else if( elapsed \u003C 604800 ){ incrPeriod = 86400; } \u002F\u002F colonne di un giorno\n else if( elapsed \u003C 3024000 ){ incrPeriod = 86400; }\n else if( elapsed \u003E 31536000 ){ incrPeriod = 2592000; }\n\n return { startTime: interval[0], stopTime: interval[1], period: period, incrPeriod: incrPeriod };\n\n };\n}.call(this));\n\n\u002F*\n ┌──────────────────────────────────────────────────────┐\n │█┌──────────────────────────────────────────────────┐█│\n │█│ hih-dom.js │█│\n │█│ │█│\n │█│ Higeco JS Framework. │█│\n │█│ JavaScript and utilities. │█│\n │█└──────────────────────────────────────────────────┘█│\n └──────────────────────────────────────────────────────┘\n*\u002F \n\n(function() {\n\n \u002F\u002F --------------------------\n \u002F\u002F \n \u002F\u002F INIT\n \u002F\u002F \n \u002F\u002F --------------------------\n\n \u002F\u002F Establish the root object, `window` in the browser, or `exports` on the server.\n var self = this;\n\n \u002F\u002F Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n\n if( typeof HigJS === void 0 || !HigJS ){\n console.error( \"Missing HigJS base library. Include 'hig.js'\" );\n return null;\n }\n \u002F\u002F --------------------------\n \u002F\u002F \n \u002F\u002F diz Only extensions to HigJS\n \u002F\u002F \n \u002F\u002F --------------------------\n\n \u002F\u002F Our Global Object\n var _diz = HigJS.diz = {};\n\n \u002F\u002F Current version.\n _diz.VERSION = '0.0.1';\n _diz.enable = false;\n\n _diz.edw = function( opt ){\n\n var myDiz = typeof diz !== \"undefined\" ? diz : {};\n\n if( typeof opt == \"undefined\" )\n opt = \"undefined\";\n\n if( this.diz && !HigJS.hasOwnProperty( this.diz ) ){\n myDiz = this.diz;\n } else if( HigJS.dictionary ){\n myDiz = HigJS.dictionary;\n }\n\n if( typeof opt == \"string\" )\n opt = { word: opt, diz: myDiz };\n\n try{\n if( opt.diz[ opt.word ] )\n return opt.diz[ opt.word ];\n else\n return opt.word;\n }\n catch(e){\n HigJS.debug.error(\"Unable to load the word with id '\" + opt.word + \"' from diz\");\n return opt.word;\n }\n };\n\n HigJS.diz.decodeDizIdFromString = function( str ){\n if( str && str[0] == \"{\" && str[ str.length - 1] == \"}\")\n return str.substring(1, str.length - 1);\n else\n return str;\n };\n\n HigJS.diz.encodeDizIdFromString = function( str ){\n if( str )\n return \"{\" + str + \"}\";\n else\n return str;\n };\n\n HigJS.diz.isCustomWord = function( str ){\n if( str && str[0] == \"{\" && str[ str.length - 1] == \"}\")\n return true;\n return false;\n };\n\n HigJS.diz.edwCustom = function( opt ){\n if( typeof opt == \"undefined\" )\n opt = \"undefined\";\n\n if( typeof opt == \"string\" )\n opt = { word: opt, alt: \"\" };\n\n if( !opt.diz && HigJS.userDiz ){\n opt.diz = HigJS.userDiz;\n } else {\n opt.diz = {};\n }\n\n if( opt.word == \" \" || opt.word == \"\")\n return opt.word; \n\n try{\n if( HigJS.diz.isCustomWord( opt.word ) || opt.diz[ HigJS.diz.decodeDizIdFromString( opt.word ) ] )\n return opt.diz[ HigJS.diz.decodeDizIdFromString( opt.word ) ][ userConf.langId ] || opt.alt || \"\";\n else\n return opt.word;\n }\n catch(e){\n HigJS.debug.error(\"Unable to load the custom word with id '\" + opt.word + \"' from diz\");\n if( typeof opt.alt !== \"undefined\" && opt.diz ){\n opt.diz[ HigJS.diz.decodeDizIdFromString( opt.word ) ] = {};\n opt.diz[ HigJS.diz.decodeDizIdFromString( opt.word ) ][ userConf.langId ] = opt.alt;\n }\n return typeof opt.alt !== \"undefined\" ? opt.alt : opt.word;\n };\n }\n\n HigJS.diz.addCustom = function( opt ){\n !opt.id && ( opt.id = HigJS.diz.encodeDizIdFromString( \"word_\" + parseInt( new Date().getTime()\u002F1000 ) + HigJS.num.genNum() ) );\n !opt.diz[ HigJS.diz.decodeDizIdFromString( opt.id ) ] && ( opt.diz[ HigJS.diz.decodeDizIdFromString( opt.id ) ] = {} );\n opt.diz[ HigJS.diz.decodeDizIdFromString( opt.id ) ][ opt.lang ] = opt.word || \"\";\n return opt;\n };\n\n HigJS.num.formatDate = function ( opt ){\n if( HigJS.type.isNumber( opt ) )\n opt = { utc: opt, date: true, time: true, local: false }\n \n if(opt.utc == \"---\" || !opt.utc)\n return \"---\"; \n\n var myDate = new Date(parseInt(opt.utc)*1000), str = \"\";\n \n if(opt.date){\n var day = myDate.getUTCDate();\n var month = opt.months ? \" \" + opt.months[myDate.getUTCMonth()] + \" \" : myDate.getUTCMonth()+1;\n var year = myDate.getUTCFullYear();\n if(day \u003C 10)\n day = \"0\" + day;\n if(month \u003C 10 && !opt.months)\n month = \"\u002F0\" + month + \"\u002F\";\n else if(!opt.months)\n month = \"\u002F\" + month + \"\u002F\";\n if(opt.xml)\n str = year+\"-\"+month+\"-\"+day;\n else{\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" )\n str = day + month + year;\n else if(userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" )\n str = year + month + day;\n else if(userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" )\n str = month + \"\u002F\" + day + \"\u002F\" + year;\n else\n str = day + month + year;\n }\n }\n if(opt.time){\n var hours = myDate.getUTCHours();\n var minutes = myDate.getUTCMinutes();\n var seconds = myDate.getUTCSeconds();\n if(hours \u003C 10)\n hours = \"0\" + hours;\n if(seconds \u003C 10)\n seconds = \"0\" + seconds;\n if(minutes \u003C 10)\n minutes = \"0\" + minutes;\n if(opt.xml)\n str += \"T\" + hours + \":\" + minutes + \":\" + seconds + \".000\";\n else if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" )\n str += \" \" + hours + \".\" + minutes + \".\" + seconds;\n else if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" )\n str += \" \" + hours + \":\" + minutes + \":\" + seconds;\n else\n str += \" \" + hours + \":\" + minutes + \":\" + seconds;\n }\n return str;\u002F*1981-12-11T11:11:11.000*\u002F\n };\n\n HigJS.date.getIntervalFromStrDate = function( day, local ){\n if( !day || typeof day != \"string\" ) return [0,0];\n var days = day.split(\"\u002F\"), start, end;\n\n if( !local ){ \u002F\u002F GMT\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),23, 59, 59)\u002F1000);\n }\n else if( userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),23, 59, 59)\u002F1000);\n } \n else if( userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),23, 59, 59)\u002F1000);\n }\n } else { \u002F\u002F Tempo locale\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt((new Date(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),0,0,0)).getTime()\u002F1000);\n end = parseInt((new Date(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),23, 59, 59)).getTime()\u002F1000);\n }\n else if( userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt((new Date(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),0,0,0)).getTime()\u002F1000);\n end = parseInt((new Date(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),23, 59, 59)).getTime()\u002F1000);\n } \n else if( userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(new Date(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),0,0,0)\u002F1000);\n end = parseInt(new Date(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),23, 59, 59)\u002F1000);\n }\n }\n return [start, end];\n };\n\n \u002F**\n * @description Dato un valore in secondi restituisce una stringa gg\u002Fore\u002Fmin\u002Fsec.\n * @param {jSon} opt Oggetto jSon di configurazione.\n * @param {boolean} opt.sec Numero secondi.\n * @return Stringa gg\u002Fore\u002Fmin\u002Fsec.\n *\u002F\n\n HigJS.num.secToStr = function(opt){\n var val = 0;\n \n if(opt.sec == \"---\")\n return \"---\";\n \n if(opt.sec \u003C 60){\n val = Math.floor(parseInt(opt.sec)) + \" \" + HigJS.diz.edw(\"sec\");\n }\n else if(opt.sec \u003C 3600){\n val = opt.sec\u002F60;\n var sec = opt.sec % 60;\n val = Math.floor(val) + \" \" + HigJS.diz.edw(\"min\");\n if( !opt.disableSec )\n val += \", \" + Math.floor(sec) + \" \" + HigJS.diz.edw(\"sec\");\n }\n else if(opt.sec \u003C 86400){\n val = opt.sec\u002F3600;\n var rest = opt.sec%3600;\n var min = (rest)\u002F60;\n var sec = (rest)%60;\n val = Math.floor(val) + \" \" + HigJS.diz.edw(\"hours\") + \", \"+ Math.floor(min) + \" \" + HigJS.diz.edw(\"min\");\n if( !opt.disableSec )\n val += \", \" + Math.floor(sec) + \" \" + HigJS.diz.edw(\"sec\");\n }\n else{\n val = opt.sec\u002F86400;\n var rest = opt.sec%86400;\n var ore = (rest)\u002F3600;\n var min = ((rest)%3600)\u002F60;\n var sec = ((rest)%3600)%60;\n val = Math.floor(val) + \" \" + HigJS.diz.edw(\"days\") + \", \" + Math.floor(ore) + \" \" + HigJS.diz.edw(\"hours\") + \", \" + Math.floor(min) + \" \" + HigJS.diz.edw(\"min\");\n if( !opt.disableSec )\n val += \", \" + Math.floor(sec) + \" \" + HigJS.diz.edw(\"sec\");\n }\n return val;\n }\n\n HigJS.num.format = function(val){\n \n if(typeof val == \"boolean\")\n return \"---\"\n \n if(typeof val == \"number\")\n val = val.toString();\n \n if(!HigJS.num.isNum(val))\n return \"---\";\n \n if(val == \"---\")\n return val;\n \n var str = \" \";\n var dec = \".\";\n var minus = \"\";\n\n if( userConf.numFormat == \"1 000 000.000\" ){ str = \" \"; dec = \".\"; }\n else if( userConf.numFormat == \"1,000,000.000\" ){ str = \",\"; dec = \".\"; }\n else if( userConf.numFormat == \"1.000.000,000\" ){ str = \".\"; dec = \",\"; }\n else { str = \" \"; dec = \".\";}\n \n if(val[0] == \"-\"){\n minus = \"-\";\n val = val.split(\"-\")[1];\n }\n \n var tmpVal = [];\n if(val.indexOf(\",\") \u003E= 0) tmpVal = val.split(\",\");\n else if(val.indexOf(\".\") \u003E= 0) tmpVal = val.split(\".\");\n else {tmpVal[0] = val.slice(0); tmpVal[1] = \"\";}\n \n var output = [];\n for(var i = 0; i \u003C tmpVal[0].length; i++)\n output[i] = tmpVal[0][i];\n \n if(output.length \u003E 3){\n for(var i = output.length-3; i \u003E 0; i -= 3)\n output.splice(i,0,str);\n }\n \n tmpVal[0] = \"\";\n \n for(var i = 0; i \u003C output.length; i++)\n tmpVal[0] += output[i];\n \n if(tmpVal[1] == \"\")\n return minus + tmpVal[0];\n return minus + tmpVal[0] + dec + tmpVal[1];\n };\n\n HigJS.num.unFormat = function( val ){\n \n if( typeof val == \"boolean\" || !HigJS.type.isNumber( val ) || val === \"---\" ) \n return \"---\"; \n \n if( typeof val == \"number\" ) val = val.toString();\n \n var str = \" \", dec = \".\", dateNumFormat = \"UNI\";\n \n if( userConf.numFormat == \"1 000 000.000\" ){ str = \" \"; dec = \".\"; }\n else if( userConf.numFormat == \"1,000,000.000\" ){ str = \",\"; dec = \".\"; }\n else if( userConf.numFormat == \"1.000.000,000\" ){ str = \".\"; dec = \",\"; }\n else { str = \" \"; dec = \".\";}\n \n val = val.replace(\u002F \u002Fg,'').replace(str,'').replace(dec,'.');\n\n return parseFloat(val);\n };\n\n}.call(this));\n\n\u002F*\n ┌──────────────────────────────────────────────────────┐\n │█┌──────────────────────────────────────────────────┐█│\n │█│ hig-ajax.js │█│\n │█│ │█│\n │█│ Higeco JS Framework. │█│\n │█│ JavaScript and ajax utilities. │█│\n │█└──────────────────────────────────────────────────┘█│\n └──────────────────────────────────────────────────────┘\n*\u002F \n\n(function() {\n\n\t\u002F\u002F --------------------------\n\t\u002F\u002F \n \u002F\u002F INIT\n \u002F\u002F \n \u002F\u002F --------------------------\n\n \u002F\u002F Establish the root object, `window` in the browser, or `exports` on the server.\n var self = this;\n\n \u002F\u002F Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n\n if( typeof HigJS === void 0 || !HigJS ){\n \tconsole.error( \"Missing HigJS base library. Include 'hig.js'\" );\n \treturn null;\n }\n\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* Block TEA (xxtea) Tiny Encryption Algorithm implementation in JavaScript *\u002F\n \u002F* (c) Chris Veness 2002-2012: www.movable-type.co.uk\u002Ftea-block.html *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* Algorithm: David Wheeler & Roger Needham, Cambridge University Computer Lab *\u002F\n \u002F* http:\u002F\u002Fwww.cl.cam.ac.uk\u002Fftp\u002Fpapers\u002Fdjw-rmn\u002Fdjw-rmn-tea.html (1994) *\u002F\n \u002F* http:\u002F\u002Fwww.cl.cam.ac.uk\u002Fftp\u002Fusers\u002Fdjw3\u002Fxtea.ps (1997) *\u002F\n \u002F* http:\u002F\u002Fwww.cl.cam.ac.uk\u002Fftp\u002Fusers\u002Fdjw3\u002Fxxtea.ps (1998) *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n\n HigJS.Tea = {};\n\n \u002F*\n * encrypt text using Corrected Block TEA (xxtea) algorithm\n *\n * @param {string} plaintext String to be encrypted (multi-byte safe)\n * @param {string} password Password to be used for encryption (1st 16 chars)\n * @returns {string} encrypted text\n *\u002F\n HigJS.Tea.encrypt = function(plaintext, password) {\n if (plaintext.length == 0) return(''); \u002F\u002F nothing to encrypt\n \n \u002F\u002F convert string to array of longs after converting any multi-byte chars to UTF-8\n var v = HigJS.Tea.strToLongs(HigJS.Utf8.encode(plaintext));\n if (v.length \u003C= 1) v[1] = 0; \u002F\u002F algorithm doesn't work for n\u003C2 so fudge by adding a null\n \u002F\u002F simply convert first 16 chars of password as key\n var k = HigJS.Tea.strToLongs(HigJS.Utf8.encode(password).slice(0,16)); \n var n = v.length;\n \n \u002F\u002F ---- \u003CTEA coding\u003E ---- \n \n var z = v[n-1], y = v[0], delta = 0x9E3779B9;\n var mx, e, q = Math.floor(6 + 52\u002Fn), sum = 0;\n \n while (q-- \u003E 0) { \u002F\u002F 6 + 52\u002Fn operations gives between 6 & 32 mixes on each word\n sum += delta;\n e = sum\u003E\u003E\u003E2 & 3;\n for (var p = 0; p \u003C n; p++) {\n y = v[(p+1)%n];\n mx = (z\u003E\u003E\u003E5 ^ y\u003C\u003C2) + (y\u003E\u003E\u003E3 ^ z\u003C\u003C4) ^ (sum^y) + (k[p&3 ^ e] ^ z);\n z = v[p] += mx;\n }\n }\n \n \u002F\u002F ---- \u003C\u002FTEA\u003E ----\n \n var ciphertext = HigJS.Tea.longsToStr(v);\n \n return HigJS.Base64.encode(ciphertext);\n }\n\n \u002F*\n * decrypt text using Corrected Block TEA (xxtea) algorithm\n *\n * @param {string} ciphertext String to be decrypted\n * @param {string} password Password to be used for decryption (1st 16 chars)\n * @returns {string} decrypted text\n *\u002F\n HigJS.Tea.decrypt = function(ciphertext, password) {\n if (ciphertext.length == 0) return('');\n var v = HigJS.Tea.strToLongs(HigJS.Base64.decode(ciphertext));\n var k = HigJS.Tea.strToLongs(HigJS.Utf8.encode(password).slice(0,16)); \n var n = v.length;\n \n \u002F\u002F ---- \u003CTEA decoding\u003E ---- \n \n var z = v[n-1], y = v[0], delta = 0x9E3779B9;\n var mx, e, q = Math.floor(6 + 52\u002Fn), sum = q*delta;\n\n while (sum != 0) {\n e = sum\u003E\u003E\u003E2 & 3;\n for (var p = n-1; p \u003E= 0; p--) {\n z = v[p\u003E0 ? p-1 : n-1];\n mx = (z\u003E\u003E\u003E5 ^ y\u003C\u003C2) + (y\u003E\u003E\u003E3 ^ z\u003C\u003C4) ^ (sum^y) + (k[p&3 ^ e] ^ z);\n y = v[p] -= mx;\n }\n sum -= delta;\n }\n \n \u002F\u002F ---- \u003C\u002FTEA\u003E ---- \n \n var plaintext = HigJS.Tea.longsToStr(v);\n\n \u002F\u002F strip trailing null chars resulting from filling 4-char blocks:\n plaintext = plaintext.replace(\u002F\\0+$\u002F,'');\n\n return HigJS.Utf8.decode(plaintext);\n }\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n\n \u002F\u002F supporting functions\n\n HigJS.Tea.strToLongs = function(s) { \u002F\u002F convert string to array of longs, each containing 4 chars\n \u002F\u002F note chars must be within ISO-8859-1 (with Unicode code-point \u003C 256) to fit 4\u002Flong\n var l = new Array(Math.ceil(s.length\u002F4));\n for (var i=0; i\u003Cl.length; i++) {\n \u002F\u002F note little-endian encoding - endianness is irrelevant as long as \n \u002F\u002F it is the same in longsToStr() \n l[i] = s.charCodeAt(i*4) + (s.charCodeAt(i*4+1)\u003C\u003C8) + \n (s.charCodeAt(i*4+2)\u003C\u003C16) + (s.charCodeAt(i*4+3)\u003C\u003C24);\n }\n return l; \u002F\u002F note running off the end of the string generates nulls since \n } \u002F\u002F bitwise operators treat NaN as 0\n\n HigJS.Tea.longsToStr = function(l) { \u002F\u002F convert array of longs back to string\n var a = new Array(l.length);\n for (var i=0; i\u003Cl.length; i++) {\n a[i] = String.fromCharCode(l[i] & 0xFF, l[i]\u003E\u003E\u003E8 & 0xFF, \n l[i]\u003E\u003E\u003E16 & 0xFF, l[i]\u003E\u003E\u003E24 & 0xFF);\n }\n return a.join(''); \u002F\u002F use Array.join() rather than repeated string appends for efficiency in IE\n }\n\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* Base64 class: Base 64 encoding \u002F decoding (c) Chris Veness 2002-2012 *\u002F\n \u002F* note: depends on Utf8 class *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n HigJS.Base64 = {}\n HigJS.Base64.code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F=\";\n\n \u002F**\n * Encode string into Base64, as defined by RFC 4648 [http:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc4648]\n * (instance method extending String object). As per RFC 4648, no newlines are added.\n *\n * @param {String} str The string to be encoded as base-64\n * @param {Boolean} [utf8encode=false] Flag to indicate whether str is Unicode string to be encoded \n * to UTF8 before conversion to base64; otherwise string is assumed to be 8-bit characters\n * @returns {String} Base64-encoded string\n *\u002F \n HigJS.Base64.encode = function(str, utf8encode) { \u002F\u002F http:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc4648\n utf8encode = (typeof utf8encode == 'undefined') ? false : utf8encode;\n var o1, o2, o3, bits, h1, h2, h3, h4, e=[], pad = '', c, plain, coded;\n var b64 = HigJS.Base64.code;\n \n plain = utf8encode ? HigJS.Utf8.encode(str) : str;\n \n c = plain.length % 3; \u002F\u002F pad string to length of multiple of 3\n if (c \u003E 0) { while (c++ \u003C 3) { pad += '='; plain += '\\0'; } }\n \u002F\u002F note: doing padding here saves us doing special-case packing for trailing 1 or 2 chars\n \n for (c=0; c\u003Cplain.length; c+=3) { \u002F\u002F pack three octets into four hexets\n o1 = plain.charCodeAt(c);\n o2 = plain.charCodeAt(c+1);\n o3 = plain.charCodeAt(c+2);\n \n bits = o1\u003C\u003C16 | o2\u003C\u003C8 | o3;\n \n h1 = bits\u003E\u003E18 & 0x3f;\n h2 = bits\u003E\u003E12 & 0x3f;\n h3 = bits\u003E\u003E6 & 0x3f;\n h4 = bits & 0x3f;\n\n \u002F\u002F use hextets to index into code string\n e[c\u002F3] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n }\n coded = e.join(''); \u002F\u002F join() is far faster than repeated string concatenation in IE\n \n \u002F\u002F replace 'A's from padded nulls with '='s\n coded = coded.slice(0, coded.length-pad.length) + pad;\n \n return coded;\n }\n\n \u002F**\n * Decode string from Base64, as defined by RFC 4648 [http:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc4648]\n * (instance method extending String object). As per RFC 4648, newlines are not catered for.\n *\n * @param {String} str The string to be decoded from base-64\n * @param {Boolean} [utf8decode=false] Flag to indicate whether str is Unicode string to be decoded \n * from UTF8 after conversion from base64\n * @returns {String} decoded string\n *\u002F \n HigJS.Base64.decode = function(str, utf8decode) {\n utf8decode = (typeof utf8decode == 'undefined') ? false : utf8decode;\n var o1, o2, o3, h1, h2, h3, h4, bits, d=[], plain, coded;\n var b64 = HigJS.Base64.code;\n\n coded = utf8decode ? HigJS.Utf8.decode(str) : str;\n \n \n for (var c=0; c\u003Ccoded.length; c+=4) { \u002F\u002F unpack four hexets into three octets\n h1 = b64.indexOf(coded.charAt(c));\n h2 = b64.indexOf(coded.charAt(c+1));\n h3 = b64.indexOf(coded.charAt(c+2));\n h4 = b64.indexOf(coded.charAt(c+3));\n \n bits = h1\u003C\u003C18 | h2\u003C\u003C12 | h3\u003C\u003C6 | h4;\n \n o1 = bits\u003E\u003E\u003E16 & 0xff;\n o2 = bits\u003E\u003E\u003E8 & 0xff;\n o3 = bits & 0xff;\n \n d[c\u002F4] = String.fromCharCode(o1, o2, o3);\n \u002F\u002F check for padding\n if (h4 == 0x40) d[c\u002F4] = String.fromCharCode(o1, o2);\n if (h3 == 0x40) d[c\u002F4] = String.fromCharCode(o1);\n }\n plain = d.join(''); \u002F\u002F join() is far faster than repeated string concatenation in IE\n \n return utf8decode ? HigJS.Utf8.decode(plain) : plain; \n }\n\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* Utf8 class: encode \u002F decode between multi-byte Unicode characters and UTF-8 multiple *\u002F\n \u002F* single-byte character encoding (c) Chris Veness 2002-2012 *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n\n HigJS.Utf8 = {}; \u002F\u002F Utf8 namespace\n\n \u002F**\n * Encode multi-byte Unicode string into utf-8 multiple single-byte characters \n * (BMP \u002F basic multilingual plane only)\n *\n * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars\n *\n * @param {String} strUni Unicode string to be encoded as UTF-8\n * @returns {String} encoded string\n *\u002F\n HigJS.Utf8.encode = function(strUni) {\n \u002F\u002F use regular expressions & String.replace callback function for better efficiency \n \u002F\u002F than procedural approaches\n var strUtf = strUni.replace(\n \u002F[\\u0080-\\u07ff]\u002Fg, \u002F\u002F U+0080 - U+07FF =\u003E 2 bytes 110yyyyy, 10zzzzzz\n function(c) { \n var cc = c.charCodeAt(0);\n return String.fromCharCode(0xc0 | cc\u003E\u003E6, 0x80 | cc&0x3f); }\n );\n strUtf = strUtf.replace(\n \u002F[\\u0800-\\uffff]\u002Fg, \u002F\u002F U+0800 - U+FFFF =\u003E 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz\n function(c) { \n var cc = c.charCodeAt(0); \n return String.fromCharCode(0xe0 | cc\u003E\u003E12, 0x80 | cc\u003E\u003E6&0x3F, 0x80 | cc&0x3f); }\n );\n return strUtf;\n }\n\n \u002F**\n * Decode utf-8 encoded string back into multi-byte Unicode characters\n *\n * @param {String} strUtf UTF-8 string to be decoded back to Unicode\n * @returns {String} decoded string\n *\u002F\n HigJS.Utf8.decode = function(strUtf) {\n \u002F\u002F note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!\n var strUni = strUtf.replace(\n \u002F[\\u00e0-\\u00ef][\\u0080-\\u00bf][\\u0080-\\u00bf]\u002Fg, \u002F\u002F 3-byte chars\n function(c) { \u002F\u002F (note parentheses for precence)\n var cc = ((c.charCodeAt(0)&0x0f)\u003C\u003C12) | ((c.charCodeAt(1)&0x3f)\u003C\u003C6) | ( c.charCodeAt(2)&0x3f); \n return String.fromCharCode(cc); }\n );\n strUni = strUni.replace(\n \u002F[\\u00c0-\\u00df][\\u0080-\\u00bf]\u002Fg, \u002F\u002F 2-byte chars\n function(c) { \u002F\u002F (note parentheses for precence)\n var cc = (c.charCodeAt(0)&0x1f)\u003C\u003C6 | c.charCodeAt(1)&0x3f;\n return String.fromCharCode(cc); }\n );\n return strUni;\n };\n\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n \u002F* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *\u002F\n\n\n \u002F\u002F Our Global Object\n var _ajax = HigJS.ajax = {};\n\n \u002F\u002F Current version.\n _ajax.VERSION = '0.0.1';\n\n \t\u002F\u002F --------------------------\n \u002F\u002F \n \u002F\u002F ajax Only extensions to HigJS\n \u002F\u002F \n \u002F\u002F --------------------------\n \n _ajax.post = function( opt ){\n var request = new window.XMLHttpRequest();\n\n \u002F\u002Frequest.setRequestHeader('Content-Type', 'application\u002Fjson; charset=utf-8');\n request.open(\"POST\", opt.url, true);\n \u002F\u002F request.onreadystatechange = opt.onSuccess;\n request.onload = function(){\n var response;\n if ( !request.readyState == XMLHttpRequest.DONE ){\n return;\n } else if( request.status !== 200 ){\n opt.onError && opt.onError( request );\n return;\n }\n\n if( opt.nodeJs && typeof request.responseText == \"string\" ){\n var msgTmp = HigJS.Tea.decrypt( request.responseText, \"SR0cM+3pitFygtrA\" );\n msgTmp = HigJS.str.toObj(msgTmp);\n msgTmp && ( response = msgTmp );\n try{ typeof sysConf != undefined && sysConf.debug && console.log( response ); } catch(e){}\n } else {\n response = HigJS.str.toObj(request.responseText) || request.responseText;\n } \n opt.onSuccess && opt.onSuccess( response );\n };\n request.ontimeout = function(){\n if( opt.onTimeout ){\n opt.onTimeout();\n } else if( opt.onError ){\n opt.onError();\n };\n }\n request.setRequestHeader('Accept', 'application\u002Fjson, text\u002Fjavascript, *\u002F*; q=0.01');\n request.setRequestHeader('Content-Type', 'application\u002Fx-www-form-urlencoded; charset=UTF-8');\n request.onerror = opt.onError;\n request.onloadend = opt.onComplete;\n request.onabort = opt.onAbort;\n request.onprogress = opt.onProgress;\n opt.timeout && (request.timeout = opt.timeout);\n request.send( opt.data );\n return request;\n };\n\n _ajax.request = function( opt ){\n\n if( !opt.reqs ){\n opt.reqs = [{\n act: opt.act,\n idReq: opt.idReq || 1,\n data: opt.data || {}\n }]\n }\n \n var objJson = [], i, datiPost;\n for(var i = 0; i \u003C opt.reqs.length; i++){\n opt.reqs[i].idReq = opt.reqs[i].idReq ? opt.reqs[i].idReq : opt.reqs[i].act;\n opt.reqs[i].ids = opt.reqs[i].ids ? opt.reqs[i].ids : opt.ids;\n opt.reqs[i].DATI = opt.reqs[i].data;\n delete opt.reqs[i].data;\n objJson.push( opt.reqs[i] );\n }\n\n datiPost = \"query=\" + encodeURIComponent( HigJS.obj.toString(objJson) );\n\n if( opt.nodeJs ){\n try{ typeof sysConf != undefined && sysConf.debug && console.log( HigJS.str.toObj( decodeURIComponent(datiPost).split(\"query=\")[1] ) ); } catch(e){}\n opt.data = HigJS.Tea.encrypt( datiPost, \"SR0cM+3pitFygtrA\" );\n } else {\n opt.data = datiPost; \n }\n \n return HigJS.ajax.post( opt );\n };\n\n \u002F**\n * Controlla che l'input sia una funzione.\n * @extends GWC.HigJS.ajax\n * \n * @param {Object} opt Oggetto di configurazione.\n * @param {String} opt.reqs Array delle richieste. Es: [{act:\"act1\",idReq:\"idReq\",data:{ value: 1 },sn:\"GWC-SERIAL\"}].\n * @param {String} opt.act Url della cgi via server.\n * @param {String} opt.idReq (optional) Id richiesta.\n * @param {String} opt.data Dati da inviare.\n * @param {String} [opt.sn=gwc.sn] (optional) Url della cgi via server.\n * @param {String} opt.phpFile Url della cgi via server.\n * @param {String} opt.cgi Url della cgi in locale.\n * @param {String} opt.source Sorgente della richiesta ( gwc\u002Fserver )\n * @param {Function} opt.onSuccess Funzione che viene eseguita in caso di successo.\n * @param {Function} opt.onError Funzione che viene eseguita in caso d'errore.\n *\u002F\n _ajax.gwcRequest = function( opt ){\n\n if( !opt.reqs ){\n opt.reqs = [{\n act: opt.act,\n idReq: opt.idReq || 1,\n data: opt.data || {},\n sn: opt.sn\n }]\n }\n !opt.phpFile && ( opt.phpFile = \"\u002FphpScript\u002FdeviceServerCgi.php\" );\n !opt.source && ( opt.source = \"server\" );\n \n var objJson = [], i, datiPost, objJsonSer;\n for( i = 0; i \u003C opt.reqs.length; i++ ){\n opt.reqs[i].act == \"getStatus\" && (opt.reqs[i].data.localGMT = 1);\n objJson.push({ act: opt.reqs[i].act, idReq: opt.reqs[i].idReq, sn: opt.reqs[i].sn || opt.sn || opt.sn, DATI: opt.reqs[i].data });\n }\n\n if( HigJS.str.toLowerCase( opt.source ) === \"gwc\" ){\n objJsonSer = [{ act: \"getFromGWC\", sn: opt.sn, idReq: \"getFromGWC\", DATI: { cgi: opt.cgi, queryCgi: objJson }}];\n datiPost = \"query=\" + encodeURIComponent( HigJS.obj.toString(objJsonSer) );\n opt.url = \"\u002FGWC_V200\" + opt.phpFile;\n opt.data = datiPost;\n return HigJS.ajax.post( opt );\n }\n else if( HigJS.str.toLowerCase( opt.source ) === \"server\" ){\n datiPost = \"query=\" + encodeURIComponent( HigJS.obj.toString(objJson) );\n opt.url = \"\u002FGWC_V200\" + opt.phpFile;\n opt.data = datiPost;\n return HigJS.ajax.post( opt );\n }\n };\n\n _ajax.formRequest = function( opt ){\n\n if( !opt.reqs ){\n opt.reqs = [{\n act: opt.act,\n idReq: opt.idReq || 1,\n data: opt.data || {}\n }]\n }\n \n var objJson = [], i, datiPost;\n for(var i = 0; i \u003C opt.reqs.length; i++){\n opt.reqs[i].idReq = opt.reqs[i].idReq ? opt.reqs[i].idReq : opt.reqs[i].act;\n opt.reqs[i].ids = opt.reqs[i].ids ? opt.reqs[i].ids : opt.ids;\n opt.reqs[i].DATI = opt.reqs[i].data;\n delete opt.reqs[i].data;\n objJson.push( opt.reqs[i] );\n }\n\n datiPost = \"query=\" + encodeURIComponent( HigJS.obj.toString(objJson) );\n\n if( opt.nodeJs ){\n try{ typeof sysConf != undefined && sysConf.debug && console.log( HigJS.str.toObj( decodeURIComponent(datiPost).split(\"query=\")[1] ) ); } catch(e){}\n opt.data = HigJS.Tea.encrypt( datiPost, \"SR0cM+3pitFygtrA\" );\n } else {\n opt.data = datiPost; \n }\n \n var $form = $(\"\u003Cform\u002F\u003E\", {\n action: opt.url,\n target: opt.frameId || \"fakeFrame\",\n method: \"post\"\n }).appendTo( $(\"body\") );\n\n \u002F\u002F data = HigJS.obj.toString(data);\n \u002F\u002F data = HigJS.Tea.encrypt( \"query=\"+encodeURIComponent(data), \"SR0cM+3pitFygtrA\" );\n $(\"\u003Cinput\u002F\u003E\",{ type: \"hidden\", name: \"encryptData\", value: opt.data, id: \"encryptData\" }).appendTo( $form );\n\n $form.submit(); \n };\n\n _ajax.getFile = function( opt ){\n\n var request = new window.XMLHttpRequest();\n request.open(\"GET\", opt.url, true);\n opt.timeout && (request.timeout = opt.timeout);\n request.onerror = opt.onError;\n request.onloadend = opt.onComplete;\n request.onload = function(){\n if( request.status !== 200 ){\n opt.onError && opt.onError( request );\n return;\n }\n var response = HigJS.str.toObj(request.responseText) || request.responseText;\n opt.onSuccess && opt.onSuccess( response );\n };\n request.send();\n\n };\n\n _ajax.checkResponse = function( msg ){\n try{\n if(!msg)\n return {ok : false, errMsg : \"no msg\"};\n if(msg.ERR != 0){\n return {ok : false, errMsg : msg.STRERR};\n }\n if( HigJS.type.isArray( msg.DATI )){\n for (var i = 0; i \u003C msg.DATI.length; i++ ){\n if (msg.DATI[i].ERR != 0) {\n return {ok : false, errMsg : msg.DATI[i].STRERR};\n } \n }\n }\n return {ok : true};\n }\n catch(e){\n return {ok : false, errMsg : \"undefined error\"}\n }\n };\n\n}.call(this));\n\n\u002F*\n ┌──────────────────────────────────────────────────────┐\n │█┌──────────────────────────────────────────────────┐█│\n │█│ node.js │█│\n │█│ │█│\n │█│ Higeco JS Framework. │█│\n │█│ JavaScript and Node utilities. │█│\n │█└──────────────────────────────────────────────────┘█│\n └──────────────────────────────────────────────────────┘\n*\u002F \n\n(function(){\n\n \u002F\u002F --------------------------\n \u002F\u002F \n \u002F\u002F INIT\n \u002F\u002F \n \u002F\u002F --------------------------\n\n \u002F\u002F Establish the root object, `window` in the browser, or `exports` on the server.\n var self = this;\n\n \u002F\u002F Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n if( typeof HigJS !== typeof {} ){\n console.error( \"Missing HigJS base library. Include 'hig.js'\" );\n return null;\n }\n\n\n \u002F\u002F Our Global Object\n var node = HigJS.node = {};\n\n \u002F\u002F \u002F\u002F Export the Underscore object for **Node.js**, with\n \u002F\u002F \u002F\u002F backwards-compatibility for the old `require()` API. If we're in\n \u002F\u002F \u002F\u002F the browser, add `_` as a global object.\n \u002F\u002F if (typeof exports !== \"undefined\") {\n \u002F\u002F \u002F\u002F if (typeof module !== 'undefined' && module.exports) {\n \u002F\u002F \u002F\u002F exports = module.exports = node;\n \u002F\u002F \u002F\u002F }\n \u002F\u002F exports.node = node;\n \u002F\u002F } else {\n \u002F\u002F self.node = node;\n \u002F\u002F }\n\n \u002F\u002F Current version.\n node.VERSION = \"0.0.1\";\n\n \n\n \u002F\u002F --------------------------\n \u002F\u002F \n \u002F\u002F Node Only extensions to HigJS\n \u002F\u002F \n \u002F\u002F --------------------------\n\n\n\n \u002F\u002F --------------------------\n \u002F\u002F Log Functions\n \u002F\u002F --------------------------\n var clc;\n try {\n clc = require(\"cli-color\"); \u002F\u002F Command line interface colors\n } catch( e ){ }\n HigJS.Logger = function( logCfg ){\n this.logCfg = logCfg;\n\n \u002F\u002F Set Defaults\n if( !( this.logCfg && typeof this.logCfg === \"object\" ) ){ this.logCfg = {}; }\n this.logCfg.level = this.logCfg.level || \"dbg\";\n this.logCfg.file = this.logCfg.file || false;\n this.logCfg.stdout = this.logCfg.stdout === false ? false : true;\n this.logCfg.color = typeof this.logCfg.color !== \"boolean\" ? true : this.logCfg.color ;\n\n this.fs = this.logCfg.fs || fs;\n \n \u002F\u002F Check if color library is loaded, otherwise set colorify option to false\n if( typeof clc === typeof void 0 ){\n console.error(\"Color lib not imported, log will be without colors.\");\n this.logCfg.color = false;\n }\n \u002F\u002FImposto il limite del debug\n this.logLimit = this.logLevels[ this.logCfg.level ] ? this.logLevels[ this.logCfg.level ].val : 1000;\n \n \u002F\u002F DateStr stores day info for log: 15.05.27\n this.dateStr = \"\";\n \n this.updateDateTO = null;\n this.updateDateStr(); \u002F\u002F First time will execute immediatly\n };\n\n HigJS.Logger.prototype.logLevels = {\n err: { val: 0, color: \"redBright\" },\n war: { val: 1, color: \"yellowBright\" },\n inf: { val: 2, color: \"greenBright\" },\n dbg: { val: 3, color: \"cyanBright\" }\n };\n \u002F\u002F Updates dateStr every hour\n HigJS.Logger.prototype.updateDateStr = function(){ \n var logger = this,\n now = new Date(),\n year = now.getFullYear(),\n month = now.getMonth(),\n day = now.getDate(),\n hour = now.getHours();\n \n this.dateStr = year.toString().substr( 2, 2 ) + \".\" +\n HigJS.str.padLeft( month+1, 2, \"0\" ) + \".\" +\n HigJS.str.padLeft( day, 2, \"0\" ) + \"-\" +\n HigJS.str.padLeft( hour, 2, \"0\" ) + \":\";\n\n \u002F\u002F Set update on next hour\n var nextHour = new Date( year, month, day, hour +1 , 0, 0, 0 );\n clearTimeout( this.updateDateTO );\n this.updateDateTO = setTimeout( function(){ logger.updateDateStr(); }, (nextHour.getTime() - now.getTime()) );\n };\n\n HigJS.Logger.prototype.log = function( opt, level ){ \n level = level || \"dbg\";\n if( !this.logLevels[ level ] ){ return; }\n \n var now = new Date(),\n min = now.getMinutes(),\n sec = now.getSeconds(), \n dateTime = this.dateStr + HigJS.str.padLeft(min, 2, \"0\") + \":\" + HigJS.str.padLeft(sec, 2, \"0\"),\n logInfoLen = 25, \u002F\u002F lunghezza della prima parte di stringa, quella con le info\n msg = '',\n prefix = [];\n\n var optType = typeof opt;\n\n if( optType === \"string\" ){ msg = opt; }\n else if( optType === \"object\" && typeof opt.msg !== \"undefined\" ){\n msg = (typeof opt.msg === \"string\" ) ? opt.msg : HigJS.obj.toString(msg) ;\n if( opt.pre ){ \n HigJS.type.isArray(opt.pre) ? ( prefix = prefix.concat(opt.pre) ) : prefix.push(opt.pre);\n }\n } else if( opt ){ \n msg = HigJS.obj.toString(opt); \n } else {\n msg = \"\";\n }\n\n\n var dbgStr = \"\", multiline;\n \n \u002F\u002F Stringa con le info di dbg\n dbgStr = this.logCfg.color ? \"[\"+ clc.blackBright(dateTime) +\"] [\"+ clc[ this.logLevels[level].color ](level) +\"]\" : \"[\"+ (dateTime) +\"] [\"+ level +\"]\";\n\n var i = 0, el;\n if( HigJS.type.isArray( prefix ) ){ \n for( i = 0; i \u003C prefix.length; i++ ){\n el = prefix[i];\n if( !(el && typeof el === \"string\") ){ return; }\n dbgStr += this.logCfg.color ? (\" [\"+ clc.blackBright(el) +\"]\") : (\" [\"+ el +\"]\");\n logInfoLen += el.length + 3;\n }\n }\n\n\n var logStr = \"\", logger = this;\n \u002F\u002F Creo le righe del log\n msg.split( \"\\n\" ).forEach( function ( el, i ){\n if( i \u003E 0 ){\n multiline = HigJS.str.padLeft(\"\"+i, logInfoLen);\n logger.logCfg.color && ( multiline = clc.blackBright( multiline ) );\n }\n logStr += (i === 0 ? dbgStr : multiline ) + \" \" + el + \"\\n\";\n });\n \n this.printLog( logStr );\n };\n\n HigJS.Logger.prototype.printLog = function( logStr ){\n \u002F\u002F Stampo\n this.logCfg.file && this.fs.appendFile( this.logCfg.file, logStr, function(err){ err && console.log(err); } );\n this.logCfg.stdout && process.stdout.write( logStr );\n };\n\n \u002F\u002F --------------------------\n \u002F\u002F Http Response functions\n \u002F\u002F --------------------------\n \n \u002F\u002F Creates a responce to an http request\n HigJS.node.httpRes = function( opt ){\n !opt.query && ( opt.query = { ids: \"UNDEFINED\", idReq: \"UNDEFINED\", act: \"UNDEFINED\" } );\n var msg = {\n ids: opt.ids || opt.query.ids || \"UNDEFINED\",\n idReq: opt.idReq || opt.query.idReq || \"UNDEFINED\",\n act: opt.act || opt.query.act || \"UNDEFINED\",\n ERR: opt.ERR || 0,\n STRERR: opt.STRERR || \"OK\"\n };\n\n opt.DATI && ( opt.data = opt.DATI );\n msg[ (opt.lang === \"EN\" ? \"data\" : \"DATI\") ] = opt.data || {};\n \u002F\u002F if( opt.lang == \"EN\" )\n \u002F\u002F msg.data = opt.data || {};\n \u002F\u002F else\n \u002F\u002F msg.DATI = opt.data || {};\n\n\n return msg;\n };\n\n HigJS.num.formatDate = function ( opt ){\n if( HigJS.type.isNumber( opt ) ){\n opt = { utc: opt, date: true, time: true, local: false };\n }\n var userConf = opt.userConf || { dateFormat: \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" }; \u002F\u002F\u003C---- modifica per server.\n \n if(opt.utc == \"---\" || !opt.utc)\n return \"---\"; \n\n var myDate = new Date(parseInt(opt.utc)*1000), str = \"\";\n \n if(opt.date){\n var day = myDate.getUTCDate();\n var month = opt.months ? \" \" + opt.months[myDate.getUTCMonth()] + \" \" : myDate.getUTCMonth()+1;\n var year = myDate.getUTCFullYear();\n if(day \u003C 10)\n day = \"0\" + day;\n if(month \u003C 10 && !opt.months)\n month = \"\u002F0\" + month + \"\u002F\";\n else if(!opt.months)\n month = \"\u002F\" + month + \"\u002F\";\n if(opt.xml){\n str = year+\"-\"+month+\"-\"+day;\n } else {\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" )\n str = day + month + year;\n else if(userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" )\n str = year + month + day;\n else if(userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" )\n str = month + \"\u002F\" + day + \"\u002F\" + year;\n else\n str = day + month + year;\n }\n }\n if(opt.time){\n var hours = myDate.getUTCHours();\n var minutes = myDate.getUTCMinutes();\n var seconds = myDate.getUTCSeconds();\n if(hours \u003C 10)\n hours = \"0\" + hours;\n if(seconds \u003C 10)\n seconds = \"0\" + seconds;\n if(minutes \u003C 10)\n minutes = \"0\" + minutes;\n if(opt.xml)\n str += \"T\" + hours + \":\" + minutes + \":\" + seconds + \".000\";\n else if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" )\n str += \" \" + hours + \".\" + minutes + \".\" + seconds;\n else if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" )\n str += \" \" + hours + \":\" + minutes + \":\" + seconds;\n else\n str += \" \" + hours + \":\" + minutes + \":\" + seconds;\n }\n return str;\u002F*1981-12-11T11:11:11.000*\u002F\n }\n\n HigJS.date.getIntervalFromStrDate = function( day, local, userConf ){\n if( !day || typeof day != \"string\" ) return [0,0];\n var days = day.split(\"\u002F\"), start, end;\n !userConf && ( userConf = { dateFormat: \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" } );\n\n if( !local ){ \u002F\u002F GMT\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),23, 59, 59)\u002F1000);\n }\n else if( userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),23, 59, 59)\u002F1000);\n }\n else if( userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),0,0,0)\u002F1000);\n end = parseInt(Date.UTC(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),23, 59, 59)\u002F1000);\n }\n } else { \u002F\u002F Tempo locale\n if( userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"DD_MM_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt((new Date(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),0,0,0)).getTime()\u002F1000);\n end = parseInt((new Date(parseInt(days[2]), parseInt(days[1]-1), parseInt(days[0]),23, 59, 59)).getTime()\u002F1000);\n }\n else if( userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"YY_MM_DD_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt((new Date(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),0,0,0)).getTime()\u002F1000);\n end = parseInt((new Date(parseInt(days[0]), parseInt(days[1]-1), parseInt(days[2]),23, 59, 59)).getTime()\u002F1000);\n }\n else if( userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_SINGLE_POINT\" || userConf.dateFormat == \"MM_DD_YY_HH_MM_SS_DOUBLE_POINT\" ){\n start = parseInt(new Date(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),0,0,0)\u002F1000);\n end = parseInt(new Date(parseInt(days[2]), parseInt(days[0]-1), parseInt(days[1]),23, 59, 59)\u002F1000);\n }\n } \n return [start, end];\n };\n\n HigJS.diz = {};\n \u002F\u002F Current version.\n HigJS.diz.VERSION = '0.0.2';\n HigJS.diz.enable = false;\n\n HigJS.diz.edw = function( opt ){\n\n var myDiz = typeof diz !== \"undefined\" ? diz : {};\n\n if( typeof opt == \"undefined\" )\n opt = \"undefined\";\n\n if( this.diz && !HigJS.hasOwnProperty( this.diz ) ){\n myDiz = this.diz;\n } else if( HigJS.dictionary ){\n myDiz = HigJS.dictionary;\n }\n\n if( typeof opt == \"string\" )\n opt = { word: opt, diz: myDiz };\n\n try{\n if( opt.diz[ opt.word ] )\n return opt.diz[ opt.word ];\n else\n return opt.word;\n }\n catch(e){\n return opt.word;\n }\n };\n\u002F\u002F\n\u002F\u002F Node's HigJS Extension\n\u002F\u002F\n}.call(this));\n\n","id":"mod_K4vJEuEXNCuEBQAjKc5Jz","is_binary":false,"title":"hig.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"r13Kjos4S-N","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkIsji4SWE"},{"code":"mixin youtube-video(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n - if (\"autoplay\" in attributes)\n - autoplay = attributes.autoplay;\n - delete attributes.autoplay;\n - else\n - autoplay = false;\n - if (autoplay == true)\n - autoplay = 1;\n - else\n - autoplay = 0;\n - src = `https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F${id}?autoplay=${autoplay}`\n iframe(src=`${src}`\n frameborder=\"0\"\n allow=\"autoplay;encrypted-media\"\n allowfullscreen=\"true\"\n width=\"560\"\n height=\"315\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin youtube-playlist(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n - if (\"autoplay\" in attributes)\n - autoplay = attributes.autoplay;\n - delete attributes.autoplay;\n - else\n - autoplay = false;\n - if (autoplay == true)\n - autoplay = 1;\n - else\n - autoplay = 0;\n iframe(src=`https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fvideoseries?list=${id}&autoplay=${autoplay}`\n frameborder=\"0\"\n allow=\"autoplay;encrypted-media\"\n allowfullscreen=\"true\"\n width=\"560\"\n height=\"315\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\n","id":"mod_SNR9Jq18jcaANkjmSY1JeQ","is_binary":false,"title":"youtube.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Syitssi4r-N","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyB-ioo4BWE"},{"code":"\nmixin vimeo-video(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F${id}`\n frameborder=\"0\"\n width=\"640\"\n height=\"360\"\n allowfullscreen)&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_W4TR8zej5rnMA4m6v1Cdd8","is_binary":false,"title":"vimeo.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ry9Koss4rWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyB-ioo4BWE"},{"code":"mixin dailymotion-video(id, autoplay=false)\n - if (autoplay == true)\n - _autoplay = 1\n - else\n - _autoplay = 0\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(frameborder=\"0\"\n width=\"480\"\n height=\"270\"\n src=`https:\u002F\u002Fwww.dailymotion.com\u002Fembed\u002Fvideo\u002F${id}?autoPlay=${_autoplay}`\n allowfullscreen=\"true\"\n allow=\"autoplay\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_GU88jjjz6LFZU4XmpNzuP","is_binary":false,"title":"dailymotion.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B1Ytooj4SWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyB-ioo4BWE"},{"code":"\nmixin google-map-place(query, key)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n - if (query.length == 27 && query.indexOf([\"+\"]) \u003C 1)\n - query = \"place_id:\" + query\n - else\n - query = query.replace(\u002F \u002Fg, \"+\");\n iframe(src=`https:\u002F\u002Fgoogle.com\u002Fmaps\u002Fembed\u002Fv1\u002Fplace?key=${key}&q=${query}`\n frameborder=\"0\"\n width=\"100%\"\n height=\"450\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin google-map-view(center, zoom, key)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n - if (\"maptype\" in attributes)\n - maptype = attributes.maptype;\n - delete attributes.maptype;\n - else\n - maptype = \"roadmap\";\n - src = `https:\u002F\u002Fgoogle.com\u002Fmaps\u002Fembed\u002Fv1\u002Fview?key=${key}¢er=${center}&zoom=${zoom}&maptype=${maptype}`\n - if (\"language\" in attributes)\n - src = src + `&language=${attributes.language}`;\n - delete attributes.language;\n - if (\"region\" in attributes)\n - src = src + `®ion=${attributes.region}`;\n - delete attributes.region;\n iframe(frameborder=\"0\"\n width=\"100%\"\n height=\"450\"\n src=`${src}`)&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\n","id":"mod_QYuV5pfmymrcVtzozry82M","is_binary":false,"title":"google.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"S1UFoojErbN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"B1G-jjoVB-E"},{"code":"\nmixin ul-string(value, separator=\",\")\n ul&attributes(attributes)\n each elem in value.split(separator)\n li #{elem}\n","id":"mod_NhXFN89VPf5ShwRPktVAx5","is_binary":false,"title":"ul.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Hkrtjss4HZN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HJb-ssi4H-N"},{"code":"\nmixin table-json(src, header=true)\n \u002F\u002F- requires context --\u003E {require: require}\n - matrix_table = require(src);\n - count = 0;\n table&attributes(attributes)\n each row in matrix_table\n tr\n each column in row\n - if (count == 0)\n - if (header == true)\n th #{column}\n - else\n td #{column}\n - else\n td #{column}\n - count += 1;\n","id":"mod_FPnrNSjz9nxK4KEgcW3Svi","is_binary":false,"title":"table.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HJVYsooNBb4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HJb-ssi4H-N"},{"code":"\nmixin script(src)\n script(src=`${src}`\n type=\"text\u002Fjavascript\"\n charset=\"utf-8\")&attributes(attributes)\n\n\n","id":"mod_QiGSjbLxg9zsN2WoWLP4JY","is_binary":false,"title":"script.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"rkXYojsNBW4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HJb-ssi4H-N"},{"code":"\nmixin ol-string(value, separator=\",\")\n ol&attributes(attributes)\n each elem in value.split(separator)\n li #{elem}\n","id":"mod_U9fJ2izDMHjw83GDRiyA4S","is_binary":false,"title":"ol.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryzYisjEr-N","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HJb-ssi4H-N"},{"code":"mixin loop(count)\n - var n = 0\n while n \u003C count\n block\n - n++\n\n\n","id":"mod_39oNY8f5g2yc23zcsxEPVm","is_binary":false,"title":"loop.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"rJ-tsioNHbN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"Bye-jji4SZV"},{"code":"mixin renderSelectFieldfromObj(choices,name,label,value,errors)\n if (errors)\n if (errors[name])\n - errorClass = \"is-invalid\"\n else\n - errorClass = \"is-valid\"\n else\n - errorClass = \"\"\n\n - classes=`form-control ${errorClass}`\n\n if (label)\n label(for=name)=label\n \n select(id=name class=classes name=name value=value)&attributes(attributes)\n each type,index in choices\n if (index==value)\n option(value=index selected)=choices[index].value\n else\n option(value=index)=choices[index].value\n \n if (errors && errors[name])\n .invalid-feedback=errors[name]","id":"mod_9GdYjFwC2USgw81f2uoENv","is_binary":false,"title":"renderSelectFieldfromObj.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BJeFiis4SbE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BykZoioEHW4"},{"code":"mixin renderSelectField(choices,name,label,value,errors)\n if (errors)\n if (errors[name])\n - errorClass = \"is-invalid\"\n else\n - errorClass = \"is-valid\"\n else\n - errorClass = \"\"\n\n - classes=`form-control ${errorClass}`\n\n if (label)\n label(for=name)=label\n select(id=name class=classes name=name value=value)&attributes(attributes)\n each text,val in choices\n if (val===value)\n option(value=val selected)=text\n else \n option(value=val)=text\n if (errors && errors[name])\n .invalid-feedback=errors[name]","id":"mod_2W21YYZgvbqh6RVXPEcDwK","is_binary":false,"title":"renderSelectField.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ByyYioiErWV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BykZoioEHW4"},{"code":"mixin renderInputField(t,name,label,value,errors)\n if (errors)\n if (errors[name])\n - errorClass = \"is-invalid\"\n else\n - errorClass = \"is-valid\"\n else\n - errorClass = \"\"\n\n - classes=`form-control ${errorClass}`\n\n label(for=name)=label\n input(id=name class=classes type=t placeholder=label name=name value=value)&attributes(attributes) \n if (errors && errors[name])\n .invalid-feedback=errors[name]","id":"mod_JKHBFd4amn1LviVr47UFkg","is_binary":false,"title":"renderInputField.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B1C_jiiESbV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BykZoioEHW4"},{"code":"mixin renderFieldfromObj(choices,value,errors)\n if (errors)\n if (errors[name])\n - errorClass = \"is-invalid\"\n else\n - errorClass = \"is-valid\"\n else\n - errorClass = \"\"\n\n - classes=`form-control ${errorClass}`\n\n each type,index in choices\n if (index==value)\n td=choices[index].value\n \n if (errors && errors[name])\n .invalid-feedback=errors[name]","id":"mod_2nWxWU8dHTcCwWpty4pRj8","is_binary":false,"title":"renderFieldfromObj.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ry6_iisVHZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BykZoioEHW4"},{"code":"mixin renderCheckboxField(name,label,value,errors)\n if (errors)\n if (errors[name])\n - errorClass = \"is-invalid\"\n else\n - errorClass = \"is-valid\"\n else\n - errorClass = \"\"\n\n - classes=`form-control ${errorClass}`\n\n if (value && value != 0)\n - checked=true\n else\n - checked=false\n .checkbox\n label.d-flex.align-items-center(for=name)=label\n input.w-auto.ml-3(type='checkbox' id=name class=classes placeholder=label name=name checked=checked)&attributes(attributes) \n if (errors && errors[name])\n .invalid-feedback=errors[name]","id":"mod_S8M4CpZ8GWXSuzY6G7RkP3","is_binary":false,"title":"renderCheckboxField.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"By2_ioj4SZV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BykZoioEHW4"},{"code":"mixin coinbase-script()\n script(src=\"https:\u002F\u002Fcommerce.coinbase.com\u002Fv1\u002Fcheckout.js\")&attributes(attributes)\n\nmixin coinbase-default(id, span_text, include_script=false)\n a.donate-with-crypto(href=`https:\u002F\u002Fcommerce.coinbase.com\u002Fcheckout\u002F${id}`)&attributes(attributes)\n span #{span_text}\n - if (include_script)\n script(src=\"https:\u002F\u002Fcommerce.coinbase.com\u002Fv1\u002Fcheckout.js\")\n\nmixin coinbase(id, span_text, include_script=false)\n a(href=`https:\u002F\u002Fcommerce.coinbase.com\u002Fcheckout\u002F${id}`)&attributes(attributes)\n span #{span_text}\n - if (include_script)\n script(src=\"https:\u002F\u002Fcommerce.coinbase.com\u002Fv1\u002Fcheckout.js\")\n","id":"mod_5AV5bF5XP5MtXuMwet5xUs","is_binary":false,"title":"coinbase.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SkiOsss4HWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rJ0xojo4r-V"},{"code":"\"use strict\"\n\nvar require_context = {require: require};\n\nvar pug_mixins_context = Object.assign({}, require_context)\n\nmodule.exports = {\n require_context: require_context,\n pug_mixins_context: pug_mixins_context\n}\n","id":"mod_VsD3B63tvUn6FtDzJ1ULRC","is_binary":false,"title":"contexts.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B19diooEBZE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rJKgijiESZV"},{"code":"mixin conditionalBadge(condition,ok,ko)\n if (condition)\n span.badge.badge-success=ok\n else\n span.badge.badge-danger=ko\n","id":"mod_3LCHS7YmcZkLUf5vdzasvd","is_binary":false,"title":"conditionalBadge.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Sytujoj4SWE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rJKgijiESZV"},{"code":"mixin shield-urls(image_url, target_url)\n a(href=target_url target=\"__blank\")&attributes(attributes)\n img(src=image_url)\n\nmixin shield(service, project_id)\n - if (attributes)\n - if (\"branch\" in attributes)\n - branch = attributes.branch;\n - delete attributes.branch;\n - else\n - branch = \"master\";\n - if (\"version\" in attributes)\n - version = attributes.version;\n - delete attributes.version;\n - else\n - version = \"latest\";\n - if (\"url\" in attributes)\n - url = attributes.url;\n - delete attributes.url;\n - else\n - url = null;\n - else\n - attributes = {};\n - if (service == \"travis\")\n - url = url || `https:\u002F\u002Ftravis-ci.org\u002F${project_id}`;\n +shield-urls(\n `https:\u002F\u002Ftravis-ci.org\u002F${project_id}.svg?branch=${branch}`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"pypi-version\")\n - url = url || `https:\u002F\u002Fpypi.org\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"pypi-py-versions\")\n - url = url || `https:\u002F\u002Fpypi.org\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"pypi-status\")\n - url = url || `https:\u002F\u002Fpypi.org\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fstatus\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"pypi-license\")\n - url = url || `https:\u002F\u002Fpypi.org\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"binder\")\n - url = url || `https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002F${project_id}\u002F${branch}`;\n +shield-urls(\n `https:\u002F\u002Fmybinder.org\u002Fbadge.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"readthedocs\" || service == \"rtd\")\n - url = url || `http:\u002F\u002F${project_id}.readthedocs.io\u002F`;\n +shield-urls(\n `https:\u002F\u002Freadthedocs.org\u002Fprojects\u002F${project_id}\u002Fbadge\u002F?version=${version}`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"ask-me-anything\")\n - url = url || project_id;\n +shield-urls(\n `https:\u002F\u002Fcamo.githubusercontent.com\u002Fd52b9239d76d77ebff4fc954745ee8ba555338ee\u002F68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41736b2532306d652d616e797468696e672d3161626339632e737667`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"github-issues\")\n - url = url || `https:\u002F\u002Fgithub.com\u002F${project_id}\u002Fissues`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"github-issues-closed\")\n - url = url || `https:\u002F\u002Fgithub.com\u002F${project_id}\u002Fissues?q=is%3Aissue+is%3Aclosed`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-closed\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"github-issues-closed-in\")\n - url = url || `https:\u002F\u002Fgithub.com\u002F${project_id}\u002Fissues`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fissuestats\u002Fi\u002Flong\u002Fgithub\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"github-last-commit\")\n - url = url || `https:\u002F\u002Fgithub.com\u002F${project_id}\u002Fcommits`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"github-contributors\")\n - url = url || `https:\u002F\u002Fgithub.com\u002F${project_id}\u002Fgraphs\u002Fcontributors`;\n +shield-urls(\n `https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"isitmaintained-issues-open-perc\")\n - url = url || `http:\u002F\u002Fisitmaintained.com\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `http:\u002F\u002Fisitmaintained.com\u002Fbadge\u002Fopen\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n - else if (service == \"isitmaintained-issues-closed-in\")\n - url = url || `http:\u002F\u002Fisitmaintained.com\u002Fproject\u002F${project_id}`;\n +shield-urls(\n `http:\u002F\u002Fisitmaintained.com\u002Fbadge\u002Fresolution\u002F${project_id}.svg`,\n `${url}`\n )&attributes(attributes)\n","id":"mod_84CmLoud6pWuNUqHiv5ctL","is_binary":false,"title":"shield.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryOOjji4H-E","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"mixin tutor(lang=\"python\")\n - valid_langs = [\"python\", \"c\", \"cpp\", \"java\", \"javascript\", \"ruby\"];\n - if (valid_langs.indexOf(lang) \u003E 0)\n - if (lang == \"python\")\n - endpoint = \"visualize\";\n - else\n - endpoint = lang;\n - else\n - throw new Error(lang + \" is not a valid language. Valid languages: \" + valid_langs);\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(width=\"100%\"\n height=\"500\"\n frameborder=\"0\"\n src=`http:\u002F\u002Fpythontutor.com\u002F${endpoint}.html#cumulative=false&heapPrimitives=nevernest&mode=edit&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false`)\n - if (alt)\n | Your browser does not support iframes.\n\n","id":"mod_VPag33qpJN9gje46Mj4Z8j","is_binary":false,"title":"pythontutor.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryw_ssiErWE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"mixin pastebin(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`https:\u002F\u002Fpastebin.com\u002Fembed_iframe\u002F${id}`\n width=\"100%\"\n height=\"315\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_XQZ5h8ojmhCsPeiRceNv85","is_binary":false,"title":"pastebin.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B1I_oijEHWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"\nmixin ivoox-audio(id)\n - src = `https:\u002F\u002Fwww.ivoox.com\u002Fplayer_ej_${id}_4_1.html?`\n - if (\"c1\" in attributes)\n - c1 = attributes.c1;\n - delete attributes.c1;\n - src = src + `c1=${c1}`\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(frameborder=\"0\"\n allowfullscreen=\"true\"\n scrolling=\"no\"\n src=`${src}`\n width=\"100%\"\n height=\"200\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin ivoox-podcast(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`https:\u002F\u002Fwww.ivoox.com\u002Fplayer_es_podcast_${id}_1.html`\n frameborder=\"0\"\n allowfullscreen=\"0\"\n scrolling=\"no\"\n width=\"100%\"\n height=\"440\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin ivoox-playlist(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`https:\u002F\u002Fwww.ivoox.com\u002Fplayer_es_channel_${id}_1.html`\n frameborder=\"0\"\n allowfullscreen=\"0\"\n scrolling=\"no\"\n width=\"100%\"\n height=\"440\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin ivoox-channel-subscription(id)\n - src = `https:\u002F\u002Fwww.ivoox.com\u002F_ns_${id}_0_.html?`\n - if (\"c1\" in attributes)\n - c1 = attributes.c1;\n - delete attributes.c1;\n - src = src + `c1=${c1}&`\n - if (\"c2\" in attributes)\n - c2 = attributes.c2;\n - delete attributes.c2;\n - src = src + `c2=${c2}&`\n - if (\"r\" in attributes)\n - r = attributes.r;\n - delete attributes.r;\n - src = src + `r=${r}&`\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`${src}`\n frameborder=\"0\"\n scrolling=\"no\"\n allowfullscreen=\"true\"\n height=\"174\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_KuzjEm1FJZBSCo2HpRpGjg","is_binary":false,"title":"ivoox.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HyTvoojESWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BJcgjos4rbE"},{"code":"\nmixin jsfiddle(user, id)\n - src = `https:\u002F\u002Fjsfiddle.net\u002F${user}\u002F${id}\u002Fembedded\u002F`\n - if (\"tabs\" in attributes)\n - tabs = attributes.tabs;\n - delete attributes.tabs;\n - else\n - tabs = \"js,html,css,result\";\n - src = src + tabs + \"\u002F\"\n - if (\"theme\" in attributes)\n - theme = attributes.theme;\n - delete attributes.theme;\n - else\n - theme = \"light\";\n - src = src + theme + \"\u002F?\";\n - _first_color_param = false;\n - if (\"font_color\" in attributes)\n - font_color = attributes.font_color;\n - delete attributes.font_color;\n - src = src + \"fontColor=\" + font_color;\n - _first_color_param = true;\n - if (\"accent_color\" in attributes)\n - accent_color = attributes.accent_color;\n - delete attributes.accent_color;\n - if (_first_color_param)\n - src = src + \"&\"\n - src = src + \"accentColor=\" + accent_color;\n - _first_color_param = true;\n - if (\"code_background\" in attributes)\n - code_background = attributes.code_background;\n - delete attributes.code_background;\n - if (_first_color_param)\n - src = src + \"&\"\n - src = src + \"codeBackground=\" + code_background;\n - _first_color_param = true;\n - if (\"menu_background\" in attributes)\n - menu_background = attributes.menu_background;\n - delete attributes.menu_background;\n - if (_first_color_param)\n - src = src + \"&\"\n - src = src + \"menuBackground=\" + menu_background;\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=`${src}`\n allowpaymentrequest=\"true\"\n allowfullscreen=\"true\"\n width=\"100%\"\n height=\"400\"\n frameborder=\"0\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_B9AB32M8nkorPNsbAa7kKn","is_binary":false,"title":"jsfiddle.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"rJHOssoESbN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"mixin gist(user, id)\n - if (id.length != 32)\n - throw new Error(\"Invalid gist id length. Must be 32 but is \" + id.length)\n script(src=`https:\u002F\u002Fgist.github.com\u002F${user}\u002F${id}.js`)&attributes(attributes)\n","id":"mod_6QXHQT14xtiSgkh8SARqnV","is_binary":false,"title":"gist.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"S1N_ojj4HWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"mixin brython-console()\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=\"http:\u002F\u002Fbrython.info\u002Fconsole.html\"\n scrolling=\"no\"\n width=\"75%\"\n height=\"165\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n\nmixin js-console()\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(src=\"https:\u002F\u002Fjsconsole.com\u002F\"\n width=\"75%\"\n height=\"165\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_Xo5V3uQnTQQng7UZ5D4dcZ","is_binary":false,"title":"console.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"S17uooo4rZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"\nmixin codepen(id, user)\n - if (\"default_tab\" in attributes)\n - default_tab = attributes.default_tab;\n - delete attributes.default_tab;\n - else\n - default_tab = \"result\";\n - if (\"embed_version\" in attributes)\n - embed_version = attributes.embed_version;\n - delete attributes.embed_version;\n - else\n - embed_version = 2;\n - src = `http:\u002F\u002Fcodepen.io\u002F${user}\u002Fembed\u002F${id}\u002F?default-tab=${default_tab}&embed-version=${embed_version}`\n - if (\"theme_id\" in attributes)\n - theme_id = attributes.theme_id;\n - delete attributes.theme_id;\n - src = src + `&theme-id=${theme_id}`\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n iframe(scrolling=\"no\"\n frameborder=\"0\"\n allowtransparency=\"true\"\n allowfullscreen=\"true\"\n src=`${src}`\n width=\"100%\"\n height=\"300\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_4pwyXs837xRwGEmTANTNM8","is_binary":false,"title":"codepen.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HJGdsijNSZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ByaxoojVSbN"},{"code":"mixin padlet(id)\n - if (\"header\" in attributes || \"footer\" in attributes)\n - iframe_only = false\n - else\n - iframe_only = true\n - if (\"header\" in attributes)\n - header = true;\n - delete attributes.header;\n - else\n - header = false;\n - if (\"footer\" in attributes)\n - footer = true;\n - delete attributes.footer;\n - else\n - footer = false;\n - if (iframe_only)\n iframe(src=`https:\u002F\u002Fpadlet.com\u002Fembed\u002F${id}`\n frameborder=\"0\")&attributes(attributes)\n - else\n - if (header)\n .padlet-embed(style=\"border:1px solid rgba(0,0,0,0.1);border-radius:2px;box-sizing:border-box;overflow:hidden;position:relative;width:100%;background:#F4F4F4\")&attributes(attributes)\n - else\n .padlet-embed(style=\"overflow:hidden;position:relative;\")\n p(style=\"padding:0;margin:0\")\n iframe(src=`https:\u002F\u002Fpadlet.com\u002Fembed\u002F${id}`\n frameborder=\"0\")&attributes(attributes)\n - if (footer)\n div(style=\"padding:8px;text-align:right;margin:0;\")\n a(href=\"https:\u002F\u002Fpadlet.com?ref=embed\"\n style=\"padding:0;margin:0;border:none;display:block;line-height:1;height:16px\"\n target=\"_blank\")\n img(src=\"https:\u002F\u002Fresources.padletcdn.com\u002Fassets\u002Fmade_with_padlet.png\"\n width=\"86\" height=\"16\"\n style=\"padding:0;margin:0;background:none;border:none;display:inline;box-shadow:none\"\n alt=\"Made with Padlet\")\n","id":"mod_DJVHw2JGJmELKDY2XbyM4S","is_binary":false,"title":"padlet.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Skb_sjiVrWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BJ2gjojESWN"},{"code":"\nmixin soundcloud-user(id)\n - if (\"alt\" in attributes)\n - alt = attributes.alt;\n - delete attributes.alt;\n - else\n - alt = true;\n - if (\"color\" in attributes)\n - color = attributes.color;\n - delete attributes.color;\n - else\n - color = \"ff8800\";\n - if (\"auto_play\" in attributes)\n - auto_play = attributes.auto_play;\n - delete attributes.auto_play;\n - else\n - auto_play = false;\n - if (\"hide_related\" in attributes)\n - hide_related = attributes.hide_related;\n - delete attributes.hide_related;\n - else\n - hide_related = false;\n - if (\"show_comments\" in attributes)\n - show_comments = attributes.show_comments;\n - delete attributes.show_comments;\n - else\n - show_comments = true;\n - if (\"show_user\" in attributes)\n - show_user = attributes.show_user;\n - delete attributes.show_user;\n - else\n - show_user = true;\n - if (\"show_reposts\" in attributes)\n - show_reposts = attributes.show_reposts;\n - delete attributes.show_reposts;\n - else\n - show_reposts = false;\n - if (\"show_teaser\" in attributes)\n - show_teaser = attributes.show_teaser;\n - delete attributes.show_teaser;\n - else\n - show_teaser = true;\n iframe(src=`https:\u002F\u002Fw.soundcloud.com\u002Fplayer\u002F?url=https%3A\u002F\u002Fapi.soundcloud.com\u002Fusers\u002F${id}&color=%23${color}&auto_play=${auto_play}&hide_related=${hide_related}&show_comments=${show_comments}&show_user=${show_user}&show_reposts=${show_reposts}&show_teaser=${show_teaser}`\n width=\"100%\"\n height=\"300\"\n scrolling=\"no\"\n frameborder=\"no\"\n allow=\"autoplay\")&attributes(attributes)\n - if (alt)\n | Your browser does not support iframes.\n","id":"mod_DbS2XD7vUgJ4PifkcudjkY","is_binary":false,"title":"soundcloud.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B10Diij4H-4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BJcgjos4rbE"},{"code":"doctype html\nhtml(lang=\"en\")\n head\n title FaChile\n link(rel=\"stylesheet\", href=\"https:\u002F\u002Fstackpath.bootstrapcdn.com\u002Fbootstrap\u002F4.1.3\u002Fcss\u002Fbootstrap.min.css\", integrity=\"sha384-MCw98\u002FSFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO\", crossorigin=\"anonymous\")\n link(rel='stylesheet', href=\"https:\u002F\u002Fcdn.datatables.net\u002F1.10.19\u002Fcss\u002FdataTables.bootstrap4.min.css\")\n link(rel='stylesheet', href=\"https:\u002F\u002Fuse.fontawesome.com\u002Freleases\u002Fv5.2.0\u002Fcss\u002Fall.css\", integrity=\"sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK\u002FiSvJ+a4+0owXq79v+lsFkW54bOGbiDQ\",crossorigin=\"anonymous\")\n link(rel='stylesheet', href='\u002Fstylesheets\u002Fstyle.css')\n\n meta(name=\"viewport\",content=\"width=device-width, initial-scale=1, shrink-to-fit=no\")\n meta(charset=\"utf-8\")\n meta(name=\"description\", content=\"Building Energy FaChile\")\n meta(name=\"keywords\",content=\"FaChile, building energy, tools, be\")\n\n body.backend\n\n header(role=\"navigation\" class=\"navbar navbar-expand-lg navbar-dark position-absolute w-100\")\n a(href=\"\u002F\",class=\"navbar-brand\")\n img(src=\"\u002Fimg\u002Flogo-be.png\",height=\"80\")\n\n .container.h-100\n .row.h-100.justify-content-center.align-items-center\n \n .card.col-sm-4#signin\n .card-header.card-heading-dark.text-center FaChile\n if flashMsg && flashMsg.length\n .text-danger.text-center.mt-2=flashMsg\n - errorClass='is-invalid'\n else\n - errorClass='' \n - classes=`form-control mt-3 ${errorClass}`\n form.form-signin(method='POST' action='' form='signinForm')\n input#inputEmail(class=classes placeholder='Email address' reqired autofocus type='email' name='username')\n input#inputPassword(class=classes placeholder='Password' reqired type='password' name='password')\n #remember.checkbox.mt-3\n label(for=\"remember-checkbox\")\n input#remember-checkbox(type='checkbox')\n | Remember me\n button.btn.btn-large.btn-backend.btn-block.btn-signin(type='submit') Sign In\n\n block scripts\n script(src=\"https:\u002F\u002Fcode.jquery.com\u002Fjquery-3.3.1.min.js\",integrity=\"sha256-FgpCb\u002FKJQlLNfOu91ta32o\u002FNMZxltwRo8QtmkMRdAu8=\", crossorigin=\"anonymous\")\n script(src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fpopper.js\u002F1.14.3\u002Fumd\u002Fpopper.min.js\",integrity=\"sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK\u002Fl8WvCWPIPm49\",crossorigin=\"anonymous\")\n script(src=\"https:\u002F\u002Fstackpath.bootstrapcdn.com\u002Fbootstrap\u002F4.1.3\u002Fjs\u002Fbootstrap.min.js\",integrity=\"sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW\u002FJmZQ5stwEULTy\",crossorigin=\"anonymous\")\n\n","id":"mod_Azic2XjywKMRyMvuDrcxdj","is_binary":false,"title":"login.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"H1hPisoNSZE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyojjVHWE"},{"code":"doctype html\nhtml(lang=\"es\")\n head\n title FaChile\n\n \n \n link(rel=\"stylesheet\", href=\"https:\u002F\u002Fstackpath.bootstrapcdn.com\u002Fbootstrap\u002F4.1.3\u002Fcss\u002Fbootstrap.min.css\", integrity=\"sha384-MCw98\u002FSFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO\", crossorigin=\"anonymous\")\n link(rel='stylesheet', href=\"https:\u002F\u002Fcdn.datatables.net\u002F1.10.19\u002Fcss\u002FdataTables.bootstrap4.min.css\")\n \u002F\u002Flink(rel='stylesheet', href=\"https:\u002F\u002Fcdn.datatables.net\u002F1.10.19\u002Fcss\u002Fjquery.dataTables.min.css\")\n \u002F\u002Flink(rel='stylesheet', href=\"https:\u002F\u002Fcdn.datatables.net\u002Fselect\u002F1.2.7\u002Fcss\u002Fselect.dataTables.min.css\")\n \n link(rel='stylesheet', href=\"https:\u002F\u002Fuse.fontawesome.com\u002Freleases\u002Fv5.4.1\u002Fcss\u002Fall.css\", integrity=\"sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz\",crossorigin=\"anonymous\")\n link(rel='stylesheet', href='\u002Fstylesheets\u002Fstyle.css')\n \u002F\u002Fmaxcdn.bootstrapcdn.com\u002Ffont-awesome\u002F4.1.0\u002Fcss\u002Ffont-awesome.min.css\n\n meta(name=\"viewport\",content=\"width=device-width, initial-scale=1, shrink-to-fit=no\")\n meta(charset=\"utf-8\")\n meta(name=\"description\", content=\"FaChile\")\n meta(name=\"keywords\",content=\"facturacion, be, building energy, chile, cen\")\n\n body.backend\n\n block header\n header(role=\"navigation\" class=\"navbar navbar-expand-lg navbar-dark\")\n a(href=\"\u002F\",class=\"navbar-brand\")\n img(src=\"\u002Fimg\u002Flogo-be.png\",height=\"80\")\n\n button.navbar-toggler(type=\"button\",data-toggle=\"collapse\",data-target=\"#navbarSupportedContent\",aria-expanded=\"false\" aria-label=\"Toggle navigation\")\n span(class=\"navbar-toggler-icon\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item active\")\n a(class=\"nav-link\",href=\"\u002F\") DASHBOARDS\n li(class=\"nav-item active\")\n a(class=\"nav-link\",href=\"\u002Fcompany\u002Flist\") COMPANIES\n li(class=\"nav-item active\")\n a(class=\"nav-link\",href=\"\u002Finstructions\u002Fcreditor\u002F\") SALES\n li(class=\"nav-item active\")\n a(class=\"nav-link\",href=\"\u002Finstructions\u002Fdebtor\u002F\") PURCHASES\n \n \n\n\n\n \n ul(class=\"navbar-nav ml-auto\")\n li(class=\"nav-item\")\n a.nav-link(href=\"\u002Fconfig\",data-toggle=\"tooltip\",data-placement=\"top\",title=\"Settings\")\n img(src=\"\u002Fimg\u002Fsettings.png\")\n li(class=\"nav-item dropdown\")\n a.nav-link(href=\"#\" id=\"navbarDropdown\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\")\n img(src=\"\u002Fimg\u002Fuser.png\")\n if currentUser && currentUser.id\n .dropdown-menu(aria-labelledby=\"navbarDropdown\")\n a.dropdown-item(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+currentUser.id,data-toggle=\"tooltip\",data-placement=\"top\",title=\"Profile\") Profile\n .dropdown-divider\n a.dropdown-item(href=\"\u002Flogout\",data-toggle=\"tooltip\",data-placement=\"top\",title=\"Logout\") Logout\n\n block sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"#\")  \n\n main.container-fluid\n if error_messages.length\u003E0\n .alert.alert-danger.text-center !{error_messages}\n if success_messages.length\u003E0\n .alert.alert-success.text-center !{success_messages}\n block content\n\n block footer\n footer.footer.bg\n .container\n .row\n .col-md-3.mr-auto\n span.footer-heading\n a(href=\"https:\u002F\u002Fbuildingenergy.it\u002F\",target=\"_blank\") about\n .col-md-3.ml-auto\n span.footer-heading.d-flex Powered By \n a.ml-4(href=\"http:\u002F\u002Fwemworld.it\u002F\", target=\"_blank\")\n img.footer-logo(src=\"\u002Fimg\u002Flogo-wem.png\")\n\n block scripts\n script(src=\"https:\u002F\u002Fcode.jquery.com\u002Fjquery-3.3.1.min.js\",integrity=\"sha256-FgpCb\u002FKJQlLNfOu91ta32o\u002FNMZxltwRo8QtmkMRdAu8=\", crossorigin=\"anonymous\")\n script(src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fpopper.js\u002F1.14.3\u002Fumd\u002Fpopper.min.js\",integrity=\"sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK\u002Fl8WvCWPIPm49\",crossorigin=\"anonymous\")\n script(src=\"https:\u002F\u002Fstackpath.bootstrapcdn.com\u002Fbootstrap\u002F4.1.3\u002Fjs\u002Fbootstrap.min.js\",integrity=\"sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW\u002FJmZQ5stwEULTy\",crossorigin=\"anonymous\")\n script(src=\"https:\u002F\u002Fcdn.datatables.net\u002F1.10.19\u002Fjs\u002Fjquery.dataTables.min.js\")\n script(src=\"https:\u002F\u002Fcdn.datatables.net\u002Fbuttons\u002F1.5.2\u002Fjs\u002FdataTables.buttons.min.js\")\n script(src=\"https:\u002F\u002Fcdn.datatables.net\u002F1.10.19\u002Fjs\u002FdataTables.bootstrap4.min.js\")\n script(src=\"https:\u002F\u002Fcdn.datatables.net\u002Fbuttons\u002F1.5.2\u002Fjs\u002Fbuttons.html5.min.js\")\n script(src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fjszip\u002F3.1.3\u002Fjszip.min.js\")\n script(src=\"https:\u002F\u002Fsmtpjs.com\u002Fv2\u002Fsmtp.js\")\n script(src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fmoment.js\u002F2.22.2\u002Fmoment.min.js\")\n \u002F\u002Fscript(src=\"https:\u002F\u002Fuse.fontawesome.com\u002F51acfa0660.js\")\n script(src=\"\u002Fjavascripts\u002Fmain.js\")","id":"mod_BiQoxvbVm3ZinqW9zz8yr5","is_binary":false,"title":"layout.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SyjwiosVB-E","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyojjVHWE"},{"code":"extends one.pug\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_nominapago.js\")\n\n \n \nblock content\n\n a(class=\"btn btn-backend m-3\" id=\"createNominaPago\" ) Create Payment\n \u002F\u002Fif proceso.closed_at === null\n a(class=\"btn btn-backend m-3\" id=\"closeNominaPago\" ) Close Payment\n\n .row\n .col-sm#listprocesoPago-container(data-idCompany=idCompany)\n .d-flex.flex-wrap\n .card.mx-3.flex-grow-1\n .card-header.card-heading-dark.mb-3 GENERAL INFO\n table.table\n tr\n th ID\n td(id='id_proceso')=proceso.id\n tr\n th Bank Account\n td=proceso.bank_account\n tr\n th Notes\n td=proceso.notes\n tr\n th Opening Date\n td=(proceso.created_at === null ) ? \"\" : moment(proceso.created_at).format(\"YYYY-MM-DD\")\n tr\n th Closing Date\n td=(proceso.closed_at === null ) ? \"\" : moment(proceso.closed_at).format(\"YYYY-MM-DD\")\n\n .row\n .col-sm#listnominaPago-container(data-idCompany=idCompany)\n table.table.table-hover.mt-5(data-title='NOMINA DE PAGOS')\n thead\n tr\n each label, key in cols\n if (key === \"0\" )\n th\n input(type=\"checkbox\" name=\"select_all\" value=\"1\" id=\"table-select-all\") \n else\n th(class=\"proceso\"+label)=label\n tbody\n each d in data\n tr(data-id=d.id)\n each label,key in cols\n td=d[key]\n ","id":"mod_DxFVgLciHZMCL28ZHAxLfn","is_binary":false,"title":"show_procesopagos.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B1qPojjES-E","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJlsjjNSWE"},{"code":"extends menu.pug\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist.js\")\n\nblock content\n\n select#year\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n\n select#month\n each month,index in months\n if index === moment().add(-1,'month').format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n\n a(class=\"btn btn-backend m-3\" id=\"createNominaPago\" ) Crea Pago\n\n .col-sm#listnominaPagos-container(data-idCompany=idCompany)\n table.table.table-hover.mt-5(data-title='NOMINA DE PAGOS')\n thead\n tr\n th \n input(type=\"checkbox\" name=\"select_all\" value=\"1\" id=\"table-select-all\")\n th.id ID\n th.payment_matrix Payment Type\n th.creditor Creditor\n th.debtor Debtor\n th.amount Amount Net\n th.amount_gross Amount Gross\n \u002F\u002Fth.status Status\n th.status_bill Status Billed\n th.status_paid Status Paid\n th.folio DTE Folio\n th.type_dte DTE Type\n th.accept_dt DTE Accept Date\n th.accept_st DTE Accept Status","id":"mod_PAMD6BTZgseQtvLTCJHah1","is_binary":false,"title":"payment.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SyYwoisErZN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJlsjjNSWE"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002Fdebtor\u002F?id=\" + idCompany) PURCHASES\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002FlistProcesoPago\u002F?id=\" + idCompany) PAYMENT PROCESS\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002FcheckPaid\u002F\") CHECK PAID\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_instructions.js\")\n\nblock content\n\n form.form-inline\n\n select#idCompany.ml-3.mr-3.form-control\n each plant in plants\n option(value=plant.company_cen_id)=plant.company_cen_id + \" - \" + plant.company_cen_name\n\n select#year.mr-3.form-control\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n option=moment().add(-1,'years').format('YYYY')\n option=moment().add(-2,'years').format('YYYY')\n option=moment().add(-3,'years').format('YYYY')\n\n if moment().format('D') \u003C= 20 \n select#month.form-control\n each month,index in months\n if index === moment().add(-1,'month').format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n else\n select#month.form-control\n each month,index in months\n if index === moment().format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n\n a(class=\"btn btn-backend m-3\" id=\"setAsInvoiced\" ) Set as Invoiced\n a(class=\"btn btn-backend m-3\" id=\"save\" style=\"display: none\" ) Save\n a(class=\"btn btn-backend m-3\" id=\"cancel\" style=\"display: none\" ) Cancel\n \n .col-sm#listinstructionsD-container\n table.table.table-hover.mt-5(data-title='LIST OF PURCHASES INVOICE')\n thead\n tr\n th \n input(type=\"checkbox\" name=\"select_all\" value=\"1\" id=\"table-select-all\")\n th.id ID\n th.payment_matrix Payment Type\n th.creditor Creditor\n th.debtor Debtor\n th.amount Amount Net\n th.amount_gross Amount Gross\n th.status_bill Status Billed\n th.status_paid Status Paid\n th.status_bill2 Status Billed 2\n th.folio DTE Number\n th.type_dte DTE Type\n th.urlDTE URL DTE\n th.accept_st DTE Acceptance Status\n th.accept_dt DTE Acceptance Date\n","id":"mod_5v635sL5zRQiBQBuVCB7Lq","is_binary":false,"title":"list_instructionsD.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SkLwjisNHZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJlsjjNSWE"},{"code":".col-xl-3.col-sm-6.mb-3.mt-3\n .card-header \n i.fa.fa-envelope.mr-3\n | SALES\n | Pending Invoices\n .card-body\n p.card-text=(statistics && statistics.salesPI!==null)?statistics.salesPI:\"NA\"\n\n.col-xl-3.col-sm-6.mb-3.mt-3\n .card-header\n i.fa.fa-credit-card.mr-3\n | SALES\n | Pending Payments\n .card-body\n p.card-text=(statistics && statistics.salesPP!==null)?statistics.salesPP:\"NA\"\n \n.col-xl-3.col-sm-6.mb-3.mt-3\n .card-header\n i.fa.fa-envelope.mr-3\n | PURCHASES\n | Pending Invoices\n .card-body\n p.card-text=(statistics && statistics.purchasesPI!==null)?statistics.purchasesPI:\"NA\"\n.col-xl-3.col-sm-6.mb-3.mt-3\n .card-header\n i.fa.fa-credit-card.mr-3\n | PURCHASES\n | Pending Payments\n .card-body\n p.card-text=(statistics && statistics.purchasesPP!==null)?statistics.purchasesPP:\"NA\"","id":"mod_FSod5G4zKrnYLVJgDZ6naA","is_binary":false,"title":"_statistics.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HJTIijoEHb4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_instructions.js\")\n\nblock content\n\n form.form-inline\n\n select#idCompany.ml-3.mr-3.form-control\n each plant in plants\n option(value=plant.company_cen_id)=plant.company_cen_id + \" - \" + plant.company_cen_name\n\n select#year.mr-3.form-control\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n option=moment().add(-1,'years').format('YYYY')\n option=moment().add(-2,'years').format('YYYY')\n option=moment().add(-3,'years').format('YYYY')\n\n if moment().format('D') \u003C= 20 \n select#month.form-control\n each month,index in months\n if index === moment().add(-1,'month').format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n else\n select#month.form-control\n each month,index in months\n if index === moment().format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n \n\n\n \n a(class=\"btn btn-backend m-3\" id=\"createInvoice\" ) Create Invoices\n a(class=\"btn btn-backend m-3\" id=\"setAsPaid\" ) Set as Paid\n a(class=\"btn btn-backend m-3\" id=\"deleteInvoice\" ) Delete Invoices\n \n\n a(class=\"btn btn-backend m-3\" id=\"save\" style=\"display: none\" ) Save\n a(class=\"btn btn-backend m-3\" id=\"cancel\" style=\"display: none\" ) Cancel\n \n .col-sm#listinstructionsC-container\n table.table.table-hover.mt-5(data-title='LIST OF SALES INVOICE')\n thead\n tr \n th \n input(type=\"checkbox\" name=\"select_all\" value=\"1\" id=\"table-select-all\")\n th.id ID\n th.payment_matrix Payment Type\n th.creditor Creditor\n th.debtor Debtor\n th.amount Amount Net\n th.amount_gross Amount Gross\n th.status_bill Status Billed\n th.status_paid Status Paid\n th.status_paid2 Status Paid 2\n th.folio DTE Number\n th.type_dte DTE Type\n th.urlDTE URL DTE\n th.accept_st DTE Acceptance Status\n th.accept_dt DTE Acceptance Date\n th.paid_ts Payment Date\n","id":"mod_67s4ExKRYyZ6b2WaNAKAJs","is_binary":false,"title":"list_instructionsC.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SkBPjoj4B-E","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJlsjjNSWE"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002Fdebtor\u002F?id=\" + idCompany) PURCHASES\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002FlistProcesoPago\u002F?id=\" + idCompany) PAYMENT PROCESS\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Finstructions\u002FcheckPaid\u002F\") CHECK PAID\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_check_paid.js\")\n\nblock content\n\n form.mt-3.ml-3.mr-3.form-inline(ref='uploadForm' id='uploadForm' action='\u002Fupload' method='post' encType=\"multipart\u002Fform-data\")\n input(type=\"file\" name=\"sampleFile\").mr-3.form-control\n input(type=\"submit\" value=\"Upload!\").form-control\n\n if data \n .col-sm#listCheckPaid-container\n table.table.table-hover.mt-5(data-title='NOMINA DE PAGOS')\n thead\n tr\n each label, key in cols\n if (key === \"0\" )\n th\n input(type=\"checkbox\" name=\"select_all\" value=\"1\" id=\"table-select-all\") \n else\n th(class=\"proceso\"+label)=label\n tbody\n each d in data\n tr(data-id=d.id)\n each label,key in cols\n td=d[key]","id":"mod_J8aXQ42dVVTXMsNQXqKvyq","is_binary":false,"title":"check_paid.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"S1NvsoiNrb4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJlsjjNSWE"},{"code":"extends layout\n\nblock content\n h1= message\n h2= error.status\n pre #{error.stack}\n","id":"mod_8VgDreVnGReCkjpzGZY3Yz","is_binary":false,"title":"error.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BJmviioEBbE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyojjVHWE"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fdashboards\u002F1\") MAIN\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fdashboards\u002F2\u002F?year=2018&id=339\") PRODUCTION TABLE\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fdashboards\u002F3\u002F?id=339\") SAP SALES\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fdashboards\u002F4\u002F?id=339\") SAP PAYMENTS\n","id":"mod_HtRnv3HhinXpwi3gUXGVri","is_binary":false,"title":"menu.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"S1GwsjiVHW4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends menu\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_dashboard4.js\")\n\nblock content\n \n form.form-inline.mt-3\n select#idCompany.ml-3.mr-3.form-control\n each plant in plants\n option(value=plant.company_cen_id)=plant.company_cen_id + \" - \" + plant.company_cen_name\n\n select#year.mr-3.form-control\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n option=moment().add(-1,'years').format('YYYY')\n option=moment().add(-2,'years').format('YYYY')\n option=moment().add(-3,'years').format('YYYY')\n\n select#month.form-control\n each month,index in months\n if index === moment().add(-1,'month').format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n\n\n .col-sm#listSAP2-container\n table.table.table-hover.mt-5\n thead\n tr \n th Código Plan de Cuenta\n th Monto al Debe Moneda Base\n th Monto al Haber Moneda Base\n th Descripción Movimiento\n th Código Auxiliar\n th Tipo Documento\n th Nro. Documento\n th Fecha Emisión Docto.(DD\u002FMM\u002FAAAA)\n th Fecha Vencimiento Docto.(DD\u002FMM\u002FAAAA)\n th Tipo Docto. Referencia\n th Nro. Docto. Referencia\n th Monto 1 Detalle Libro NETO\n th Monto 2 Detalle Libro IVA\n th Monto Suma Detalle Libro TOTAL\n\n","id":"mod_MEX9MuHGCkTG7uM3A34o1t","is_binary":false,"title":"dashboard4.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryWDiosEBZN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends menu\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_dashboard3.js\")\n\nblock content\n \n form.form-inline.mt-3\n select#idCompany.ml-3.mr-3.form-control\n each plant in plants\n option(value=plant.company_cen_id)=plant.company_cen_id + \" - \" + plant.company_cen_name\n\n select#year.mr-3.form-control\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n option=moment().add(-1,'years').format('YYYY')\n option=moment().add(-2,'years').format('YYYY')\n option=moment().add(-3,'years').format('YYYY')\n\n select#month.form-control\n each month,index in months\n if index === moment().add(-1,'month').format('M')\n option(value=index selected)=month\n else\n option(value=index)=month\n\n\n .col-sm#listSAP1-container\n table.table.table-hover.mt-5\n thead\n tr \n th Código Plan de Cuenta\n th Monto al Debe Moneda Base\n th Monto al Haber Moneda Base\n th Descripción Movimiento\n th Código Auxiliar\n th Tipo Documento\n th Nro. Documento\n th Fecha Emisión Docto.(DD\u002FMM\u002FAAAA)\n th Fecha Vencimiento Docto.(DD\u002FMM\u002FAAAA)\n th Tipo Docto. Referencia\n th Nro. Docto. Referencia\n th Monto 1 Detalle Libro NETO\n th Monto 2 Detalle Libro IVA\n th Monto Suma Detalle Libro TOTAL\n\n","id":"mod_AfA4Yoq5YZ22HtaBJWFTs7","is_binary":false,"title":"dashboard3.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BJxwjioEHZV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends menu\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_dashboard2.js\")\n\nblock content\n \n form.form-inline.mt-3\n select#idCompany.ml-3.mr-3.form-control\n each plant in plants\n option(value=plant.company_cen_id)=plant.company_cen_id + \" - \" + plant.company_cen_name\n\n select#year.mr-3.form-control\n option(selected)=moment().format('YYYY')\n option=moment().add(1,'years').format('YYYY')\n option=moment().add(2,'years').format('YYYY')\n option=moment().add(3,'years').format('YYYY')\n option=moment().add(-1,'years').format('YYYY')\n option=moment().add(-2,'years').format('YYYY')\n option=moment().add(-3,'years').format('YYYY')\n\n\n .col-sm#listproductionPlants-container\n table.table.table-hover.mt-5\n thead\n tr \n th.month Period\n th.amount_in Amount In\n th.amount_out Amount Out\n","id":"mod_L7zHUuPa9kS6Y8q8XgMJnE","is_binary":false,"title":"dashboard2.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"rkJwiioEBbN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends menu\n\nblock append scripts\n script(src=\"\u002Fjavascripts\u002Flist_dashboard1.js\")\n script(type=\"text\u002Fjavascript\" src=\"https:\u002F\u002Fcode.highcharts.com\u002Fhighcharts.js\")\n script(type=\"text\u002Fjavascript\" src=\"https:\u002F\u002Fcode.highcharts.com\u002Fhighstock.js\")\n script(type=\"text\u002Fjavascript\" src=\"https:\u002F\u002Fcode.highcharts.com\u002Fmodules\u002Fexporting.js\")\n script(type=\"text\u002Fjavascript\" src=\"https:\u002F\u002Fcode.highcharts.com\u002Fmodules\u002Fexport-data.js\")\n script(type=\"text\u002Fjavascript\" src=\"https:\u002F\u002Fcode.highcharts.com\u002Fmodules\u002Fhistogram-bellcurve.js\")\n \n\nblock content\n \n .row.load-partial(data-url='' data-reload='5000')\n include _statistics.pug\n \n .row\n .col-sm\n form.form-inline\n select#chartType1.form-control\n option(selected) 1 Week\n option 1 Month\n option 3 Months\n option 1 Year\n option test\n \n\n .row\n .col-sm-6.mt-3#container\n\n \n .col-sm-6.mt-3#container2\n ","id":"mod_PEFRQ1TECjDDEb4YiUZ2WG","is_binary":false,"title":"dashboard1.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BJAIsosVB-N","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SkugosjVr-E"},{"code":"extends config\n\ninclude ..\u002Fmixin\u002Fform\u002FrenderInputField.pug\ninclude ..\u002Fmixin\u002Fform\u002FrenderCheckboxField.pug\n\nblock content\n .row\n .col-sm-12\n form.mt-5.mr-5(method='POST' action='' form='configForm')\n for sectionFields,section in config\n div.card.container-fluid.mt-5\n .card-header=section\n for value,field in sectionFields\n .form-row\n .form-group.col-sm\n if typeof(value) === 'boolean'\n +renderCheckboxField(section+\"|\"+field,field,value,errors)\n else \n if typeof(value) === 'object' \n - value = JSON.stringify(value)\n +renderInputField(\"text\",section+\"|\"+field,field,value,errors)(required)\n \n .form-row.mt-5\n button.btn.btn-backend.ml-4(type='submit' onclick=\"return confirm('If you update the configuration the servers will be reloaded. Are you sure ?')\") Save","id":"mod_TotZsBr8vptPUmWrBZTBmz","is_binary":false,"title":"settings.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ry2Uioj4rZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkPlojiVHZE"},{"code":"extends config\n\nblock content\n .row\n .col-sm.d-flex.align-items-center.mt-3\n .display-3.content-title.ml-5 USERS LIST\n a.btn.btn-backend.ml-4(href=\"\u002Fconfig\u002Fuser\u002Fedit\") Add User\n\n .row\n .col-sm#list-container\n table.dt.table.table-hover.mt-5()\n thead\n tr\n th Email\n th Name\n th Roles\n th Enabled\n th Locked\n th Expired\n th Last Login\n tbody\n for user in users\n tr\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.email\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.name\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.roles\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.enabled\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.locked\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id)=user.expired\n td\n a.d-block(href=\"\u002Fconfig\u002Fuser\u002Fedit\u002F\"+user.id) \n if user.last_login\n | #{moment(user.last_login).format('Y-MM-DD HH:MM:ss')}\n \n","id":"mod_46SLzvxDxD2vp3rjCTRZPG","is_binary":false,"title":"listUser.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"SyjUsssEB-4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkPlojiVHZE"},{"code":"extends ..\u002Flayout\n\ninclude ..\u002Fmixin\u002Fform\u002FrenderInputField.pug\ninclude ..\u002Fmixin\u002Fform\u002FrenderSelectField.pug\ninclude ..\u002Fmixin\u002Fform\u002FrenderCheckboxField.pug\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n if currentUser.roles \u003E= 2\n a(class=\"nav-link\", href=\"\u002Fconfig\") Back\n else \n a(class=\"nav-link\", href=\"\u002Fprojects\u002Factive\") Back\n\nblock content\n .row\n .col-sm.d-flex.align-items-center.mt-3\n .display-3.content-title.ml-5=title\n if (user && user.id && user.id !== currentUser.id)\n a.btn.btn-backend.ml-4(href=\"\u002Fconfig\u002Fuser\u002F\"+user.id+\"\u002Fdelete\" onclick=\"return confirm('Are you sure you want to delete user \"+user.name+\"?')\") Delete\n\n .row\n .col-sm-12\n form.mt-5.mr-5(method='POST' action='' form='userForm')\n div.card.container-fluid.mt-5\n .card-header GENERAL INFO\n .form-row\n if currentUser.roles \u003E= 2\n .form-group.col-sm.mr-auto\n +renderCheckboxField(\"enabled\",\"Enable User\",(null===user ? false : user.enabled),errors)\n .form-row\n .form-group.col-sm\n +renderInputField(\"text\",\"name\",\"Full Name\",(null===user ? '' : user.name),errors)(required)\n .form-group.col-sm\n +renderInputField(\"email\",\"email\",\"Email\",(null===user ? '' : user.email),errors)(required)\n .form-row\n .form-group.col-sm\n +renderInputField(\"password\",\"password\",\"New Password\",null,errors)\n .form-group.col-sm\n +renderInputField(\"password\",\"password2\",\"Confirm Password\",null,errors)\n \n if currentUser.roles \u003E= 2\n div.card.container-fluid.mt-5\n .card-header ROLES\n .form-row\n .form-group.col-sm\n +renderSelectField({\"0\":\"Read-Only\",\"1\":\"Developer\",\"2\":\"Administrator\",\"3\":\"SuperAdmin\"},\"roles\",\"Role\",(null===user ? '' : user.roles),errors)(required)\n \n \n .form-row.mt-5\n button.btn.btn-backend.ml-4(type='submit') Save\n","id":"mod_UQAr2wBfT3LsTZwaioyxwW","is_binary":false,"title":"editUser.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Hk5IsoiNSZN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkPlojiVHZE"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fconfig\u002Fuser\") Users\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fconfig\u002Fsettings\") Settings\n \n","id":"mod_UNTcPKK63Les4hncfetct7","is_binary":false,"title":"config.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"r1YIooi4r-V","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkPlojiVHZE"},{"code":"extends one.pug\n\ninclude ..\u002Fmixin\u002FconditionalBadge.pug\n\nblock append scripts\n\nblock content\n .display-3.content-title.ml-2.mt-3.pl-3= company.name +\" [ ID: \"+ company.id +\" ]\" \n a(class=\"btn btn-backend m-3\" href=\"\u002Fcompany\u002Fedit\u002F\"+ company.id ) Edit\n .row\n .col-sm-6\n .d-flex.flex-wrap.mt-5.ml-2\n\n .card.mx-3.flex-grow-1\n .card-header.card-heading-dark.mb-3 GENERAL INFO\n table.table\n tr\n th Name\n td=company.name\n tr\n th RUT\n td=company.rut + \"-\" + company.verification_code\n tr\n th Business Name\n td=company.business_name\n tr\n th Commercial Business\n td=company.commercial_business\n tr\n th DTE Reception email\n td=company.dte_reception_email\n tr\n th Bank Account\n td=company.bank_account\n tr\n th Bank\n td=company.bank\n tr\n th Commercial Address\n td=company.commercial_address\n tr\n th Postal Address\n td=company.postal_address\n tr\n th Manager\n td=company.manager\n .col-sm-6\n .d-flex.flex-wrap.mt-5.ml-2\n\n .card.mx-3.flex-grow-1\n .card-header.card-heading-dark.mb-3 PAYMENT CONTACT\n table.table\n tr\n th First Name\n td=company.p_c_first_name\n tr\n th Last Name\n td=company.p_c_last_name\n tr\n th Address\n td=company.p_c_address\n tr\n th Phones\n td=company.p_c_phones\n tr\n th Email\n td=company.p_c_email\n\n .col-sm-6\n .d-flex.flex-wrap.mt-5.ml-2\n\n .card.mx-3.flex-grow-1\n .card-header.card-heading-dark.mb-3 BILLS CONTACT\n table.table\n tr\n th First Name\n td=company.b_c_first_name\n tr\n th Last Name\n td=company.b_c_last_name\n tr\n th Address\n td=company.b_c_address\n tr\n th Phones\n td=company.b_c_phones\n tr\n th Email\n td=company.b_c_email\n\n .col-sm-6\n .d-flex.flex-wrap.mt-5.ml-2\n\n .card.mx-3.flex-grow-1\n .card-header.card-heading-dark.mb-3 ADDITIONAL INFO\n table.table\n tr\n th 2° Bank Account\n td=company.bank_account_2\n\n \n","id":"mod_DAxSf3JE7de88BwnTAiwaJ","is_binary":false,"title":"show.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"rJOLsooEHWE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"S1LgooiNHbV"},{"code":"extends ..\u002Flayout\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fcompany\u002Flist\") Back","id":"mod_xcd6tZmcJrLfAhGvz9aS4","is_binary":false,"title":"one.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ByDLjoiESW4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"S1LgooiNHbV"},{"code":"extends ..\u002Flayout\n\ninclude ..\u002Fmixin\u002Fform\u002FrenderInputField.pug\ninclude ..\u002Fmixin\u002Fform\u002FrenderSelectField.pug\n\nblock sub-header\n header(role=\"navigation\" class=\"subheader navbar navbar-expand-lg navbar-dark\")\n div.collapse.navbar-collapse(id=\"navbarSupportedContent\")\n ul(class=\"navbar-nav mr-auto\")\n li(class=\"nav-item\")\n a(class=\"nav-link\", href=\"\u002Fcompany\u002Flist\") Back\n\n\nblock content\n .row\n .col-sm\n .display-3.content-title.ml-5.mt-3=title\n\n .row\n .col-sm-6\n form.mt-5.mr-5(method='POST' action='' form='companyForm')\n div.card.container-fluid.mt-5\n .card-header GENERAL INFO\n .form-row\n .form-group.col-sm\n +renderInputField(\"text\",\"bank_account_2\",\"Bank Account\",(null===company ? '' : company.bank_account_2),errors)(required)\n .form-row.mt-5\n button.btn.btn-backend.ml-4(type='submit') Save\n","id":"mod_XUDHohUVxhUBJHNdHLVgBP","is_binary":false,"title":"edit.pug","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BkrIjoo4BZE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"S1LgooiNHbV"},{"code":"var express = require('express');\nvar router = express.Router();\nvar instructionsController = require(\"..\u002F..\u002Fcontrollers\u002FinstructionsController\");\nvar procesopagoController = require(\"..\u002F..\u002Fcontrollers\u002FprocesopagoController\");\n\n\n\u002F* LIST OF INSTRUCTIONS DEBTOR *\u002F\nrouter.get('\u002Finstructions\u002Fdebtor\u002F', instructionsController.listInstructionsD);\n\n\u002F* LIST OF INSTRUCTIONS CREDITOR *\u002F\nrouter.get('\u002Finstructions\u002Fcreditor\u002F', instructionsController.listInstructionsC);\n\n\u002F* LIST OF PROCESOS DE PAGOS *\u002F\nrouter.get('\u002Finstructions\u002FlistProcesoPago\u002F', procesopagoController.listProcesoPago);\n\n\u002F* CHECK PAID INSTR *\u002F\nrouter.get('\u002Finstructions\u002FcheckPaid\u002F:fileName?', instructionsController.checkPaid);\n\n\n\n\u002F* CREATE INVOICES *\u002F\nrouter.post('\u002Finstructions\u002FcreateInvoice\u002F', instructionsController.createInvoice);\n\n\u002F* CREATE NOMINA PAGO *\u002F\nrouter.post('\u002Finstructions\u002FcreateNominaPago\u002F', procesopagoController.createNominaPago);\n\n\u002F* CLOSE NOMINA PAGO *\u002F\nrouter.post('\u002Finstructions\u002FcloseNominaPago\u002F', procesopagoController.closeNominaPago);\n\n\u002F* SET AS PAID *\u002F\nrouter.post('\u002Finstructions\u002FsetAsPaid\u002F', instructionsController.setAsPaid);\n\n\u002F* SET AS INVOICED *\u002F\nrouter.post('\u002Finstructions\u002FsetAsInvoiced\u002F', instructionsController.setAsInvoiced);\n\n\u002F* DELETE INVOICES *\u002F\nrouter.post('\u002Finstructions\u002FdeleteInvoices\u002F', instructionsController.deleteInvoices);\n\n\n\n\n\u002F* CREATE A NEW PROCESO DE PAGO *\u002F\nrouter.post('\u002Finstructions\u002FcreateProcesoPago\u002F', procesopagoController.createProcesoPago);\n\n\u002F* SHOW A PROCESO DE PAGO *\u002F\nrouter.get('\u002Finstructions\u002FshowProcesoPago\u002F:id\u002F:idCompany', procesopagoController.showProcesoPago);\n\n\n\u002F* update log *\u002F\nrouter.post('\u002Finstructions\u002FupdateLog\u002F', instructionsController.updateLog);\n\n\u002F* update log proceso pago*\u002F\nrouter.post('\u002Finstructions\u002FupdateLogPago\u002F', procesopagoController.updateLog);\n\n\u002F* GET BANK ACCOUNT *\u002F\nrouter.get('\u002Finstructions\u002FgetBankAccount\u002F', procesopagoController.getBankAccount);\n\n\n\nmodule.exports = router;","id":"mod_9emSYSuxuE3Lz2PmDKpdrb","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Sk4Usoi4BZE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HyHxjsiNBW4"},{"code":"var express = require('express');\nvar router = express.Router();\nconst passport = require('passport');\nconst fileUpload = require('express-fileupload');\n\n\n\u002F*\n* AUTHENTICATION\n*\u002F\n\nrouter.get('\u002Flogin', function (req, res) {\n res.render('login', { user: req.user, flashMsg: req.flash('error') });\n});\n\nrouter.post('\u002Flogin',\n passport.authenticate('local', {\n successRedirect: '\u002F',\n failureRedirect: '\u002Flogin',\n failureFlash: true\n })\n);\n\nrouter.get('\u002Flogout', function (req, res) {\n req.logout();\n res.redirect('\u002Flogin');\n});\n\n\n\u002F* \n* DEFAULT ROUTE\n*\u002F\nrouter.get('\u002F', function (req, res) {\n res.redirect('\u002Fdashboards\u002F1');\n});\n\n\u002F*\n* DOWNLOAD\n*\u002F\nrouter.get('\u002Fdownload', function (req, res) {\n res.download(path.join(global.appRoot, req.query.path), function (err) {\n console.log(err);\n });\n});\n\n\n\u002F* \n* CONFIG\n*\u002F\nrouter.all('\u002Fconfig*', ensureAuthenticated, require('.\u002Fconfig'));\n\n\u002F* \n* INVOICE IN\n*\u002F\nrouter.all('\u002Finstructions*', ensureAuthenticated, require('.\u002Finstructions'));\n\n\u002F* \n* INVOICE OUT\n*\u002F\nrouter.all('\u002Fcompany*', ensureAuthenticated, require('.\u002Fcompany'));\n\n\u002F* \n* DASHBOARDS\n*\u002F\nrouter.all('\u002Fdashboards*', ensureAuthenticated, require('.\u002Fdashboards'));\n\n\n\u002F\u002F default options\nrouter.use(fileUpload());\n\nrouter.post('\u002Fupload', function (req, res) {\n if (Object.keys(req.files).length == 0) {\n return res.status(400).send('No files were uploaded.');\n }\n\n \u002F\u002F The name of the input field (i.e. \"sampleFile\") is used to retrieve the uploaded file\n let sampleFile = req.files.sampleFile;\n\n \u002F\u002F Use the mv() method to place the file somewhere on your server\n sampleFile.mv(path.join(global.appRoot, '\u002Fpublic\u002Fupload_files\u002F', sampleFile.name), function (err) {\n if (err)\n return res.status(500).send(err);\n\n res.redirect(\"\u002Finstructions\u002FcheckPaid\u002F?fileName=\" + sampleFile.name);\n });\n});\n\n\n\u002F\u002F Simple route middleware to ensure user is authenticated.\n\u002F\u002F Use this route middleware on any resource that needs to be protected. If\n\u002F\u002F the request is authenticated (typically via a persistent login session),\n\u002F\u002F the request will proceed. Otherwise, the user will be redirected to the\n\u002F\u002F login page.\nfunction ensureAuthenticated(req, res, next) {\n if (req.isAuthenticated()) {\n\n res.locals.currentUser = req.user;\n return next();\n }\n res.redirect('\u002Flogin');\n}\n\n\nmodule.exports = router;\n\n","id":"mod_LpBqQu12vXbgyakcjyrtdh","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Sy7LijoEHZV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"S1ZljjoVB-4"},{"code":"var express = require('express');\nvar router = express.Router();\nvar dashboardsController = require(\"..\u002F..\u002Fcontrollers\u002FdashboardsController\");\n\n\u002F* GET MAIN DASHBOARD *\u002F\nrouter.get('\u002Fdashboards\u002F1\u002F', dashboardsController.mainDashboard);\n\n\u002F* GET PRODUCTION DASHBOARD *\u002F\nrouter.get('\u002Fdashboards\u002F2\u002F', dashboardsController.productionDashboard);\n\n\u002F* GET SAP DATA 1 *\u002F\nrouter.get('\u002Fdashboards\u002F3\u002F', dashboardsController.getDataSapSales);\n\n\u002F* GET SAP DATA 2 *\u002F\nrouter.get('\u002Fdashboards\u002F4\u002F', dashboardsController.getDataSapPayments);\n\n\u002F* getDataEnergy for charts *\u002F\nrouter.get('\u002Fdashboards\u002FgetDataEnergy', dashboardsController.getDataEnergy);\n\n\u002F* getDataMoney for charts *\u002F\nrouter.get('\u002Fdashboards\u002FgetDataMoney', dashboardsController.getDataMoney);\n\nmodule.exports = router;","id":"mod_8Vzkm6ThM38oEmdqxDVpVh","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HyMLsij4S-V","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BkNxoooEHZN"},{"code":"var express = require('express');\nvar router = express.Router();\nvar configController = require(\"..\u002F..\u002Fcontrollers\u002FconfigController\");\n\nrouter.get('\u002Fconfig', function(req, res) {\n res.redirect('\u002Fconfig\u002Fuser');\n});\n\nrouter.get('\u002Fconfig\u002Fuser', configController.listUser);\n\nrouter.get('\u002Fconfig\u002Fuser\u002Fedit\u002F:userId?', configController.editUser_get);\n\nrouter.post('\u002Fconfig\u002Fuser\u002Fedit\u002F:userId', configController.editUser_post);\n\nrouter.get('\u002Fconfig\u002Fuser\u002F:userId\u002Fdelete', configController.deleteUser);\n\nrouter.post('\u002Fconfig\u002Fuser\u002Fedit', configController.newUser_post);\n\nrouter.get('\u002Fconfig\u002Fsettings', configController.settings_get);\n\nrouter.post('\u002Fconfig\u002Fsettings', configController.settings_post);\n\nmodule.exports = router;","id":"mod_9EyUBBL99BAXmvZUSqUzMn","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B1ZUissESbV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"SJQgsssErWN"},{"code":"var express = require('express');\nvar router = express.Router();\nvar companyController = require(\"..\u002F..\u002Fcontrollers\u002FcompanyController\");\n\n\n\u002F* LIST COMPANY *\u002F\nrouter.get('\u002Fcompany\u002Flist', companyController.companyList);\n\n\u002F* SHOW COMPANY *\u002F\nrouter.get('\u002Fcompany\u002Fshow\u002F:id', companyController.showCompany);\n\n\u002F* EDIT COMPANY *\u002F\nrouter.get('\u002Fcompany\u002Fedit\u002F:companyId?', companyController.edit_get);\nrouter.post('\u002Fcompany\u002Fedit\u002F:companyId?', companyController.edit_post);\n\n\nmodule.exports = router;","id":"mod_8Dyx3QgGNwz6y1DommsVzn","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"H1eUjojNrWV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"ryflsos4rWV"},{"code":"\u003C?xml version=\"1.0\" encoding=\"utf-8\"?\u003E\n\u003Cdefinitions xmlns:soap=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002Fsoap\u002F\" xmlns:soap12=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002Fsoap12\u002F\" xmlns:soapenc=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fsoap\u002Fencoding\u002F\" xmlns:s=\"http:\u002F\u002Fwww.w3.org\u002F2001\u002FXMLSchema\" xmlns:http=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002Fhttp\u002F\" xmlns:mime=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002Fmime\u002F\" xmlns:tm=\"http:\u002F\u002Fmicrosoft.com\u002Fwsdl\u002Fmime\u002FtextMatching\u002F\" xmlns:s0=\"http:\u002F\u002Ftempuri.org\" name=\"wsplano\" targetNamespace=\"http:\u002F\u002Ftempuri.org\" xmlns=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003E\n \u003Ctypes\u003E\n \u003Cxs:schema elementFormDefault=\"qualified\" targetNamespace=\"http:\u002F\u002Ftempuri.org\" xmlns:xs=\"http:\u002F\u002Fwww.w3.org\u002F2001\u002FXMLSchema\"\u003E\n \u003Cxs:complexType name=\"logininfo\"\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Usuario\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Rut\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Clave\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Puerto\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"IncluyeLink\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003Cxs:element name=\"Procesar\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"file\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"1\" maxOccurs=\"1\" name=\"formato\" type=\"xs:int\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"ProcesarResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ProcesarResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"ObtenerLink\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tpomov\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"folio\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tipo\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cedible\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"ObtenerLinkResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ObtenerLinkResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getBoletaTicket\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ticket\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getBoletaTicketResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"getBoletaTicketResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getXMLDte\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tpomov\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"folio\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tipo\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getXMLDteResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"getXMLDteResult\" type=\"xs:base64Binary\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"AltNum\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"folio\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tipo\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"campo\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"AltNumResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"AltNumResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"RegIP\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"puerto\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"RegIPResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"RegIPResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getIP\"\u003E\n \u003Cxs:complexType \u002F\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"getIPResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"getIPResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"EliminarDoc\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tpomov\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"folio\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tipo\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"EliminarDocResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"EliminarDocResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"AnularGuia\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"login\" type=\"s0:logininfo\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tpomov\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"folio\" type=\"xs:string\" \u002F\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"tipo\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"AnularGuiaResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"AnularGuiaResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"Online\"\u003E\n \u003Cxs:complexType \u002F\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"OnlineResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"OnlineResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"Version\"\u003E\n \u003Cxs:complexType \u002F\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"VersionResponse\"\u003E\n \u003Cxs:complexType\u003E\n \u003Cxs:sequence\u003E\n \u003Cxs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"VersionResult\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:sequence\u003E\n \u003C\u002Fxs:complexType\u003E\n \u003C\u002Fxs:element\u003E\n \u003Cxs:element name=\"string\" nillable=\"true\" type=\"xs:string\" \u002F\u003E\n \u003C\u002Fxs:schema\u003E\n \u003C\u002Ftypes\u003E\n \u003Cmessage name=\"ProcesarSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:Procesar\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"ProcesarSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:ProcesarResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"ObtenerLinkSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:ObtenerLink\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"ObtenerLinkSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:ObtenerLinkResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getBoletaTicketSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getBoletaTicket\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getBoletaTicketSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getBoletaTicketResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getXMLDteSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getXMLDte\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getXMLDteSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getXMLDteResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"AltNumSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:AltNum\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"AltNumSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:AltNumResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"RegIPSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:RegIP\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"RegIPSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:RegIPResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getIPSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getIP\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getIPSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:getIPResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"EliminarDocSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:EliminarDoc\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"EliminarDocSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:EliminarDocResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"AnularGuiaSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:AnularGuia\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"AnularGuiaSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:AnularGuiaResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"OnlineSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:Online\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"OnlineSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:OnlineResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"VersionSoapIn\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:Version\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"VersionSoapOut\"\u003E\n \u003Cpart name=\"parameters\" element=\"s0:VersionResponse\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getIPHttpGetIn\" \u002F\u003E\n \u003Cmessage name=\"getIPHttpGetOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"OnlineHttpGetIn\" \u002F\u003E\n \u003Cmessage name=\"OnlineHttpGetOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"VersionHttpGetIn\" \u002F\u003E\n \u003Cmessage name=\"VersionHttpGetOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"getIPHttpPostIn\" \u002F\u003E\n \u003Cmessage name=\"getIPHttpPostOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"OnlineHttpPostIn\" \u002F\u003E\n \u003Cmessage name=\"OnlineHttpPostOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003Cmessage name=\"VersionHttpPostIn\" \u002F\u003E\n \u003Cmessage name=\"VersionHttpPostOut\"\u003E\n \u003Cpart name=\"Body\" element=\"s0:string\" \u002F\u003E\n \u003C\u002Fmessage\u003E\n \u003CportType name=\"wsplanoSoap\"\u003E\n \u003Coperation name=\"Procesar\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite procesar el archivo de integración\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:ProcesarSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:ProcesarSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"ObtenerLink\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el link del documento.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:ObtenerLinkSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:ObtenerLinkSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getBoletaTicket\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el link de la Boleta Electronica segun el Nro. de TICKET.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getBoletaTicketSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getBoletaTicketSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getXMLDte\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el XML del documento. (SERVICIO ADICIONAL)\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getXMLDteSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getXMLDteSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AltNum\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el numero alternativo del documento (definido por el usuario en un campo adicional)\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:AltNumSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:AltNumSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"RegIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003ERegistra la IP para un puerto determinado.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:RegIPSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:RegIPSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtener la IP remota del cliente.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getIPSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getIPSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"EliminarDoc\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite Eliminar un Documento No Electronico en el sistema.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:EliminarDocSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:EliminarDocSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AnularGuia\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite Marcar como anulada una Guia de Despacho Electronica en el sistema.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:AnularGuiaSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:AnularGuiaSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica el estado del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:OnlineSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:OnlineSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica la versión del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:VersionSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:VersionSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002FportType\u003E\n \u003CportType name=\"wsplanoSoap12\"\u003E\n \u003Coperation name=\"Procesar\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite procesar el archivo de integración\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:ProcesarSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:ProcesarSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"ObtenerLink\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el link del documento.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:ObtenerLinkSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:ObtenerLinkSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getBoletaTicket\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el link de la Boleta Electronica segun el Nro. de TICKET.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getBoletaTicketSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getBoletaTicketSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getXMLDte\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el XML del documento. (SERVICIO ADICIONAL)\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getXMLDteSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getXMLDteSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AltNum\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtiene el numero alternativo del documento (definido por el usuario en un campo adicional)\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:AltNumSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:AltNumSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"RegIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003ERegistra la IP para un puerto determinado.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:RegIPSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:RegIPSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtener la IP remota del cliente.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getIPSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:getIPSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"EliminarDoc\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite Eliminar un Documento No Electronico en el sistema.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:EliminarDocSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:EliminarDocSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AnularGuia\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EPermite Marcar como anulada una Guia de Despacho Electronica en el sistema.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:AnularGuiaSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:AnularGuiaSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica el estado del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:OnlineSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:OnlineSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica la versión del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:VersionSoapIn\" \u002F\u003E\n \u003Coutput message=\"s0:VersionSoapOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002FportType\u003E\n \u003CportType name=\"wsplanoHttpGet\"\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtener la IP remota del cliente.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getIPHttpGetIn\" \u002F\u003E\n \u003Coutput message=\"s0:getIPHttpGetOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica el estado del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:OnlineHttpGetIn\" \u002F\u003E\n \u003Coutput message=\"s0:OnlineHttpGetOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica la versión del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:VersionHttpGetIn\" \u002F\u003E\n \u003Coutput message=\"s0:VersionHttpGetOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002FportType\u003E\n \u003CportType name=\"wsplanoHttpPost\"\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EObtener la IP remota del cliente.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:getIPHttpPostIn\" \u002F\u003E\n \u003Coutput message=\"s0:getIPHttpPostOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica el estado del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:OnlineHttpPostIn\" \u002F\u003E\n \u003Coutput message=\"s0:OnlineHttpPostOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EIndica la versión del servicio web.\u003C\u002Fwsdl:documentation\u003E\n \u003Cinput message=\"s0:VersionHttpPostIn\" \u002F\u003E\n \u003Coutput message=\"s0:VersionHttpPostOut\" \u002F\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002FportType\u003E\n \u003Cbinding name=\"wsplanoSoap\" type=\"s0:wsplanoSoap\"\u003E\n \u003Csoap:binding transport=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fsoap\u002Fhttp\" \u002F\u003E\n \u003Coperation name=\"Procesar\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FProcesar\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"ObtenerLink\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FObtenerLink\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getBoletaTicket\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetBoletaTicket\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getXMLDte\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetXMLDte\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AltNum\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FAltNum\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"RegIP\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FRegIP\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetIP\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"EliminarDoc\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FEliminarDoc\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AnularGuia\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FAnularGuia\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FOnline\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Csoap:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FVersion\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002Fbinding\u003E\n \u003Cbinding name=\"wsplanoSoap12\" type=\"s0:wsplanoSoap12\"\u003E\n \u003Csoap12:binding transport=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fsoap\u002Fhttp\" \u002F\u003E\n \u003Coperation name=\"Procesar\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FProcesar\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"ObtenerLink\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FObtenerLink\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getBoletaTicket\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetBoletaTicket\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getXMLDte\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetXMLDte\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AltNum\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FAltNum\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"RegIP\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FRegIP\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FgetIP\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"EliminarDoc\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FEliminarDoc\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"AnularGuia\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FAnularGuia\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FOnline\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Csoap12:operation soapAction=\"http:\u002F\u002Ftempuri.org\u002FVersion\" style=\"document\" \u002F\u003E\n \u003Cinput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Csoap12:body use=\"literal\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002Fbinding\u003E\n \u003Cbinding name=\"wsplanoHttpGet\" type=\"s0:wsplanoHttpGet\"\u003E\n \u003Chttp:binding verb=\"GET\" \u002F\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Chttp:operation location=\"\u002FgetIP\" \u002F\u003E\n \u003Cinput\u003E\n \u003Chttp:urlEncoded \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Chttp:operation location=\"\u002FOnline\" \u002F\u003E\n \u003Cinput\u003E\n \u003Chttp:urlEncoded \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Chttp:operation location=\"\u002FVersion\" \u002F\u003E\n \u003Cinput\u003E\n \u003Chttp:urlEncoded \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002Fbinding\u003E\n \u003Cbinding name=\"wsplanoHttpPost\" type=\"s0:wsplanoHttpPost\"\u003E\n \u003Chttp:binding verb=\"POST\" \u002F\u003E\n \u003Coperation name=\"getIP\"\u003E\n \u003Chttp:operation location=\"\u002FgetIP\" \u002F\u003E\n \u003Cinput\u003E\n \u003Cmime:content type=\"application\u002Fx-www-form-urlencoded\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Online\"\u003E\n \u003Chttp:operation location=\"\u002FOnline\" \u002F\u003E\n \u003Cinput\u003E\n \u003Cmime:content type=\"application\u002Fx-www-form-urlencoded\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003Coperation name=\"Version\"\u003E\n \u003Chttp:operation location=\"\u002FVersion\" \u002F\u003E\n \u003Cinput\u003E\n \u003Cmime:content type=\"application\u002Fx-www-form-urlencoded\" \u002F\u003E\n \u003C\u002Finput\u003E\n \u003Coutput\u003E\n \u003Cmime:mimeXml part=\"Body\" \u002F\u003E\n \u003C\u002Foutput\u003E\n \u003C\u002Foperation\u003E\n \u003C\u002Fbinding\u003E\n \u003Cservice name=\"wsplano\"\u003E\n \u003Cwsdl:documentation xmlns:wsdl=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fwsdl\u002F\"\u003EServicio de Integracion, Facturacion Electronica DESIS LTDA.\u003C\u002Fwsdl:documentation\u003E\n \u003Cport name=\"wsplanoSoap\" binding=\"s0:wsplanoSoap\"\u003E\n \u003Csoap:address location=\"http:\u002F\u002Fws.facturacion.cl\u002FWSDS\u002Fwsplano.asmx\" \u002F\u003E\n \u003C\u002Fport\u003E\n \u003Cport name=\"wsplanoSoap12\" binding=\"s0:wsplanoSoap12\"\u003E\n \u003Csoap12:address location=\"http:\u002F\u002Fws.facturacion.cl\u002FWSDS\u002Fwsplano.asmx\" \u002F\u003E\n \u003C\u002Fport\u003E\n \u003Cport name=\"wsplanoHttpGet\" binding=\"s0:wsplanoHttpGet\"\u003E\n \u003Chttp:address location=\"http:\u002F\u002Fws.facturacion.cl\u002FWSDS\u002Fwsplano.asmx\" \u002F\u003E\n \u003C\u002Fport\u003E\n \u003Cport name=\"wsplanoHttpPost\" binding=\"s0:wsplanoHttpPost\"\u003E\n \u003Chttp:address location=\"http:\u002F\u002Fws.facturacion.cl\u002FWSDS\u002Fwsplano.asmx\" \u002F\u003E\n \u003C\u002Fport\u003E\n \u003C\u002Fservice\u003E\n\u003C\u002Fdefinitions\u003E","id":"mod_k4G4MVz2cDiLAGTL1noZs","is_binary":false,"title":"wsplano.wsdl","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"H1yIijiNBZV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HJgxijjES-4"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fupload_files\u002FCartola Parronal 10-2018.xlsx","id":"mod_AM9EQ45kXAExTBNxb9r3CT","is_binary":true,"title":"Cartola Parronal 10-2018.xlsx","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"r10rsijEBb4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"B11gijoEB-E"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fupload_files\u002FCartola Parronal 09-2018.xlsx","id":"mod_YNpdk29NHbXRvNByGZbNXv","is_binary":true,"title":"Cartola Parronal 09-2018.xlsx","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"B16HjjjEH-E","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"B11gijoEB-E"},{"code":"@font-face {\n font-family: 'icomoon';\n src: url(\"..\u002Ffonts\u002Ficomoon\u002Ficomoon.eot?1z9v6x\");\n src: url(\"..\u002Ffonts\u002Ficomoon\u002Ficomoon.eot?1z9v6x#iefix\") format(\"embedded-opentype\"), url(\"..\u002Ffonts\u002Ficomoon\u002Ficomoon.ttf?1z9v6x\") format(\"truetype\"), url(\"..\u002Ffonts\u002Ficomoon\u002Ficomoon.woff?1z9v6x\") format(\"woff\"), url(\"..\u002Ffonts\u002Ficomoon\u002Ficomoon.svg?1z9v6x#icomoon\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n\n\u002F*\n*\n* COLORS FROM DARK TO LIGHT\n 1 #121d20\n 2 #1f2d30\n 3 #40676f\n 4 #517c86\n 5 #769ca4\n*\n*\u002F\n\nhtml {\n overflow-x: hidden;\n font-size: 1em;\n height: 100%;\n}\n\nbody.backend {\n font-size: 16px;\n font-family: \"Open Sans\", sans-serif;\n line-height: 1.8;\n background-color: #517c86;\n color: rgba(255,255,255,.95);\n font-weight: 300;\n height: 100%;\n}\n\n::-moz-selection {\n background: #000000;\n color: #ffffff;\n}\n\n::selection {\n background: #000000;\n color: #ffffff;\n}\n\n::-moz-selection {\n background: #000000;\n color: #ffffff;\n}\n\nh1, .page-title h1, h2, .section-heading h2, h3, .card .card-text .card-heading, .service .heading, .service.left-icon h3, h4, .panel .panel .panel-title {\n margin: 1.414em 0 0.5em;\n line-height: 1.2;\n font-weight: 300;\n color: #ffffff;\n}\n\nh1, .page-title h1 {\n margin-top: 0;\n font-size: 1.602em;\n}\n\nh2, .section-heading h2 {\n font-size: 1.424em;\n}\n\nh3, .card .card-text .card-heading, .service .heading, .service.left-icon h3 {\n font-size: 1.266em;\n}\n\nh4, .panel .panel .panel-title {\n font-size: 1.125em;\n}\n\nsmall, .font_small {\n font-size: 0.889em;\n}\n\np, ul, ol, figure {\n margin-bottom: 1.3em;\n}\n\n\na:hover, a:focus {\n color: #f2f2f2;\n text-decoration: none !important;\n}\n\na.hover-reverse {\n color: #ffffff;\n}\n\n.dev-tmp-page {\n width: 100%;\n background-image: url(\"\u002Fimg\u002Fwonderful.jpg\");\n background: no-repeat;\n background-size: cover;\n}\n\nheader.navbar {\n background-color: #1f2d30;\n}\n\nheader.navbar-dark .navbar-nav .nav-link {\n color: rgba(255,255,255,.8);\n}\n\nheader.navbar-dark .navbar-nav .nav-link:hover {\n color: rgba(255,255,255);\n}\n\nheader.navbar, header .navbar-brand {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n\nheader .navbar-nav .nav-item {\n line-height: 64px;\n padding: 0px 16px;\n}\n\nheader.subheader\n{\n padding: 0px;\n background-color: #121d20;\n}\n\nheader.subheader .navbar-nav .nav-item {\n line-height: 32px;\n padding: 0px 8px;\n}\n\nheader.subheader .navbar-nav .nav-item.active {\n background-color: inherit;\n}\n\nheader.subheader .navbar-nav .nav-item .nav-link {\n font-size: 15px;\n font-weight: 600;\n}\n\nheader.subheader .navbar-nav .nav-item.active .nav-link {\n color: #40676f;\n}\n\n\nheader .navbar-nav .nav-item.active {\n background-color: #769ca4; \u002F* #40676f *\u002F\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n font-size: 17px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-dark .dropdown-item {\n color: rgba(255, 255, 255, 0.8);\n line-height: 32px;\n text-transform: uppercase;\n}\n\n.navbar-dark .dropdown-item:hover {\n color: rgba(255, 255, 255, 1);\n background-color: #517c86;\n}\n\n.dropdown-menu {\n background-color: #517c86;\n right: 0px;\n left: auto;\n}\n\n.dropdown-divider {\n border-color: #769ca4;\n}\n\n.dropdown-menu::after {\n content: \"\";\n width: 0; \n height: 0; \n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 10px solid #517c86;\n position: absolute;\n bottom: 99%;\n right: 22px;\n}\n\nbody \u003E main.container-fluid {\n margin-bottom: 40px;\n}\n\n\ndiv.content-title{\n font-size: 20px;\n font-weight: 500;\n color: #1f2d30;\n text-transform: uppercase;\n}\n\n\u002F*\n*\n* FOOTER\n*\n*\u002F\n\n.footer {\n position: fixed;\n bottom: 0px;\n display: flex;\n align-items: center;\n width: 100%;\n background-color: #121d20;\n height: 40px;\n}\n\n.footer a {\n color: rgba(255,255,255,.6);\n}\n\n.footer a:hover {\n color: rgba(255,255,255);\n}\n\n.footer .footer-logo {\n width: 30px;\n}\n\n.footer-heading {\n font-size: 17px;\n font-weight: 500;\n color: rgba(255,255,255,.7);\n text-transform: uppercase;\n\n}\n\n\n\u002F*\n*\n TABLE\n*\n*\u002F\n\ntable.table th {\n background-color: #425d64;\n color: rgba(255,255,255,0.9);\n border-top: none;\n border-bottom: none;\n}\n\ntable.table :not(thead)\u003Eth {\n border-bottom: 3px solid #517c86;\n}\n\ntable.table thead th {\n border-left: 1px solid #517c86;\n}\n\ntable.table thead th:first-child {\n border-left: none;\n}\n\ntable.table tbody td {\n border-top: none;\n}\n\ntable.table td {\n white-space: nowrap;\n}\n\ndiv.row.table-toolbar {\n padding: 10px 0px;\n}\n\ndiv.row.table-toolbar\u003Ediv {\n display: flex;\n align-items: center;\n}\n\ndiv.row.table-toolbar label {\n margin-bottom: 0px;\n}\n\n.dataTables_filter input[type=\"search\"] {\n background-color: #769ca4;\n border-radius: 10px;\n color: rgba(255,255,255,0.8);\n border-color: #517c86;\n}\n\n.dt-button {\n background-color: transparent;\n border: none;\n color: inherit;\n} \n\n.dt-button:hover {\n border-bottom-color: rgba(255,255,255);\n border-width: 1px;\n border-style: solid;\n border-color: #769ca4;\n}\n\ntable.dataTable thead .sorting:before, table.dataTable thead .sorting:after {\n opacity: 1.5;\n}\n\n.page-item {\n color: rgba(255,255,255,.8);\n}\n\n.page-item .page-link {\n background-color: #1f2d30;\n border: none;\n color: inherit;\n}\n\n.page-item .page-link:hover, .page-item .page-link:focus {\n color: rgba(255,255,255);\n background-color: #121d20;\n}\n\n.page-item.active .page-link {\n background-color: #769ca4;\n border: none;\n}\n\n.page-item.disabled .page-link {\n background-color: transparent;\n color: #425d64;\n}\n\ndiv.dataTables_wrapper div.dataTables_info {\n font-weight: 500;\n color: #425d64;\n}\n\ntable a {\n color: rgba(255,255,255,.8);\n}\n\n\n\u002F*\n*\n* BUTTONS\n*\n*\u002F\n\n.btn-backend {\n\n border-width: 1px;\n border-style: solid;\n border-color: #121d20;\n background-color: #1f2d30;\n color: rgba(255,255,255,0.7);\n}\n\n.btn-backend:hover {\n\n background-color: #121d20;\n color: rgba(255,255,255);\n}\n\n\n\u002F*\n*\n CARDS\n*\n*\u002F\n\n.card {\n background-color: #517c86;\n border-radius: 0px;\n border: none;\n}\n\n.card-header:first-child {\n border-radius: 0px;\n}\n\n.card.card-dark, .card-heading-dark {\n background-color: #425d64;\n color: rgba(255,255,255,0.9);\n text-transform: uppercase;\n}\n\n\n\u002F*\n*\n* MAP\n*\n*\u002F\n\n.map-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n#map {\n height: 500px;\n width: 600px;\n border-top: 10px solid #40676f;\n margin-top: 10px;\n}\n\n.map-medium #map {\n height: 450px;\n width: 450px;\n}\n\n\n\n\n\u002F*\n*\n*LISTS\n*\n*\u002F\n\n.list-group-item {\n background-color: transparent;\n padding-top: 0px;\n padding-bottom: 0px;\n}\n\n.list-group-header {\n background-color: #40676f;\n padding-top:.75rem;\n padding-bottom:.75rem;\n}\n\n\u002F*\n*\n* FORMS\n*\n*\u002F\n\n.form-group {\n background-color: #40676f;\n padding-top:.75rem;\n padding-bottom:.75rem;\n color: rgba(255,255,255,0.9);\n margin: 0.5rem;\n padding: 0.5rem !important;\n}\n\nform button[type=\"submit\"]{\n margin: 0.5rem;\n}\n\n#signin button[type=\"submit\"]{\n margin: 0;\n}\n\n\n\u002F*\n*\n* LOG\n*\n*\u002F\n\n#log-container {\n width: 90%;\n}\n\n#log-container table td {\n font-size: 0.8rem;\n white-space: nowrap;\n}\n\n\n#log-container-partial .table td, #log-container-partial .table th {\n padding: 0.15rem;\n}\n\n#log-container-partial table thead .sorting:before, #log-container-partial table thead .sorting:after,\n#log-container-partial table thead .sorting_desc:before, #log-container-partial table thead .sorting_desc:after,\n#log-container-partial table thead .sorting_asc:before, #log-container-partial table thead .sorting_asc:after {\n bottom:0.2rem;\n}\n\n\n\u002F*\n* PROCESS LOG\n*\u002F\n\n#process-log-container {\n background-color:rgba(73, 80, 87, 0.4);\n width: 100vw;\n height: 100vh;\n position: fixed;\n top: 0px;\n z-index: 1000;\n}\n\n#log{\n width: 80%;\n margin: 10%;\n background-color: #f8f9fa;\n color: #121d20;\n padding: 5%;\n text-align: center;\n}\n\n#log h3 {\n text-align: center;\n color: #121d20;\n margin-top: 0;\n text-transform: uppercase;\n margin-bottom: 1.4em;\n}\n\n#log p {\n margin: 0 0 0.5em 0;\n}\n\n\n\u002F*\n* PROCESS\n*\u002F\n\n#create-process-container {\n background-color:rgba(73, 80, 87, 0.4);\n width: 100vw;\n height: 100vh;\n position: fixed;\n top: 0px;\n z-index: 1000;\n}\n\n#process{\n width: 80%;\n margin: 10%;\n background-color: #f8f9fa;\n color: #121d20;\n padding: 5%;\n text-align: center;\n}\n\n#process h3 {\n text-align: center;\n color: #121d20;\n margin-top: 0;\n text-transform: uppercase;\n margin-bottom: 1.4em;\n}\n\n#process p {\n margin: 0 0 0.5em 0;\n}","id":"mod_L8DwB9hmaPRghvfjw8FZM1","is_binary":false,"title":"style.css","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Hyhrjjj4BbV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"HkRoioVrbE"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_12032018.xls","id":"mod_TuZVfZghzfwcQY3AGmofbx","is_binary":true,"title":"nominaPagos_12032018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryjrooi4rWV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_11192018.xls","id":"mod_NYLbTaRJEntYN62i5KyoTH","is_binary":true,"title":"nominaPagos_11192018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"Hy9BjoiNrWN","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_11132018.xls","id":"mod_jFDanAQtJ7abCEUyiiLvD","is_binary":true,"title":"nominaPagos_11132018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"H1tBoji4BZV","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_11122018.xls","id":"mod_QABAZZ5KHmyno1km3s69yJ","is_binary":true,"title":"nominaPagos_11122018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BydBjsi4SW4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_11072018.xls","id":"mod_5ZwYu3V7qrq6rYSMKeBxPN","is_binary":true,"title":"nominaPagos_11072018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"BkwrjjsESbE","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Fwemgiraldo\u002Ffactool\u002F91d0fdc4b5711c5051b39fe732f2629bc513800b\u002Fpublic\u002Fnomina_pagos\u002FnominaPagos_10282018.xls","id":"mod_YVXz3LxWNqThiCvV17QpQJ","is_binary":true,"title":"nominaPagos_10282018.xls","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"ryIHsjoVS-V","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"rkasojVrZN"},{"code":"\n'use strict';\n\n\u002F*----------------------------------------\n\tDocument Ready \n----------------------------------------*\u002F\n$(document).ready(function () {\n\n\tinitComponents();\n\tsetNavbarActiveItem();\n\n\tloadPartials();\n\n});\n\nfunction initComponents(options) {\n\t$('[data-toggle=\"tooltip\"]').tooltip();\n}\n\nfunction setNavbarActiveItem() {\n\n\t$('header li.nav-item.active').removeClass('active');\n\t$('.subheader li.nav-item.active').removeClass('active');\n\n\tvar mainMenuItem = location.pathname.split(\"\u002F\")[1];\n\tvar subMenuItem = location.pathname.split(\"\u002F\")[2];\n\n\t$('header a[href=\"\u002F' + mainMenuItem + '\"]').closest('li.nav-item').addClass('active');\n\t$('.subheader a[href^=\"\u002F' + mainMenuItem + '\u002F' + subMenuItem + '\"]').closest('li.nav-item').addClass('active');\n}\n\nfunction loadPartials() {\n\n\tvar partials = $(\".load-partial\");\n\n\tpartials.each(function () {\n\n\t\tloadPartial($(this));\n\n\t});\n\n}\n\nfunction loadPartial(container) {\n\n\tif (container.data(\"url\")) {\n\n\t\tvar data = container.data(\"data\");\n\n\n\t\tif (container.html().length === 0) {\n\t\t\tcontainer.html(\"\u003Cdiv class='text-center mt-5 content-title'\u003ELoading..\u003C\u002Fdiv\u003E\");\n\t\t}\n\n\t\tcontainer.load(container.data(\"url\"), data, function (response, status, xhr) {\n\t\t\tif (status == \"error\") {\n\n\t\t\t\tvar errorMsg = $(\"body\u003Emain\u003Ediv.alert\");\n\n\t\t\t\tif (errorMsg.length === 0) {\n\t\t\t\t\terrorMsg = $(\"\u003Cdiv class='alert alert-danger text-center'\u003E\u003C\u002Fdiv\u003E\").prependTo($(\"body\u003Emain\"));\n\t\t\t\t}\n\n\t\t\t\terrorMsg.text(\"Error loading data: \");\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\n\t\tvar reload = container.data(\"reload\");\n\n\t\tif (typeof reload !== \"undefined\") {\n\t\t\tsetTimeout(function () {\n\t\t\t\tloadPartial(container)\n\t\t\t}, reload);\n\t\t}\n\t}\n}\n\n\n","id":"mod_CbqSbj4QL53KMzc3KgEKav","is_binary":false,"title":"main.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"r1mBjsoVB-4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BJnsisVBWE"},{"code":"\n'use strict';\n\n\u002F*----------------------------------------\n Document Ready \n----------------------------------------*\u002F\n$(document).ready(function () {\n\n var idCompany = $('#idCompany').val();\n $('#idCompany').change(function () {\n idCompany = $(this).val();\n\n if (table.length \u003E 0) {\n table.api().ajax.reload(null, true);\n }\n });\n\n \u002F\u002Fget DataTable table object\n var table = $(\"#listprocesoPago-container table\").dataTable({\n \"columnDefs\": [\n {\n \"targets\": \"created_at\",\n \"render\": function (data, type, row) {\n if (data) {\n return moment(data).format(\"YYYY-MM-DD hh:mm:ss\");\n } else {\n return \"\";\n }\n },\n },\n {\n \"targets\": \"closed_at\",\n \"render\": function (data, type, row) {\n if (data) {\n return moment(data).format(\"YYYY-MM-DD hh:mm:ss\");\n } else {\n return \"\";\n }\n },\n }\n ],\n buttons: [\n {\n extend: 'excelHtml5',\n text: '\u003Ci class=\"fa fa-file-excel\"\u003E\u003C\u002Fi\u003E Export'\n },\n {\n text: '\u003Ci class=\"fas fa-sync-alt\"\u003E\u003C\u002Fi\u003E',\n action: function (e, dt, node, config) {\n dt.ajax.reload(null, false);\n }\n }\n ],\n \"destroy\": true,\n \"dom\": \"\u003C'row table-toolbar'\u003C'col-sm mr-auto content-title'\u003E\u003C'col-sm ml-auto justify-content-end'fB\u003E\u003E\u003C'row'\u003C'col-sm't\u003E\u003E\u003C'row'\u003C'col-sm mr-auto'i\u003E\u003C'col-sm ml-auto'p\u003E\u003E\",\n \"iDisplayLength\": 10,\n \"ordering\": true,\n \"order\": [],\n \"orderCellsTop\": false,\n \"fixedHeader\": {\n header: true,\n footer: true\n },\n \"paging\": true,\n \"select\": {\n style: 'os'\n },\n \"retrieve\": true,\n \"language\": {\n \"search\": \"\",\n \"emptyTable\": \"Nothing worth to be shown\",\n \"thousands\": \",\"\n },\n \"initComplete\": function (settings, json) {\n\n var api = this.api();\n var title = $(api.table().node()).data(\"title\");\n $(\"div.content-title\").text(title);\n $(\".dataTables_filter input[type='search']\").attr(\"placeholder\", \"Search\");\n },\n \"footerCallback\": function (row, data, start, end, display) {\n\n },\n \"ajax\": {\n \"url\": \"\u002Finstructions\u002FlistProcesoPago\u002F\",\n \"type\": \"GET\",\n \"data\": function (d) {\n d.id = idCompany;\n }\n }\n });\n\n \u002F\u002Fupdate data\n setInterval(function () {\n table.api().ajax.reload(null, false);\n }, 60000);\n\n $('#createProcesoPago').click(function () {\n\n var bankaccount = prompt(\"Please enter your bank account\", \"\");\n if (!bankaccount) return alert(\"insert a valid bank account\");\n var notes = prompt(\"Please enter your notes\", \"\");\n\n $.post(\"\u002Finstructions\u002FcreateProcesoPago\u002F\", { bank_account: bankaccount, notes: notes, idCompany: idCompany }, function (result) {\n table.api().ajax.reload(null, false);\n return alert(result);\n });\n\n \u002F*\n $.get(\"\u002Finstructions\u002FgetBankAccount\u002F\", { idCompany: idCompany }, function (result) {\n var bank_acc_sel = document.getElementById('bank_acc_proc');\n $.each(result, function (k, v) {\n var opt = document.createElement('option');\n opt.text = v.account_number;\n opt.value = k;\n bank_acc_sel.appendChild(opt);\n })\n });\n\n\n bankaccount = $('#bank_acc_proc selected').val();\n notes =$('#notes_proc').val();\n $.post(\"\u002Finstructions\u002FcreateProcesoPago\u002F\", { bank_account: bankaccount, notes: notes, idCompany: idCompany }, function (result) {\n table.api().ajax.reload(null, false);\n return alert(result);\n });\n });\n*\u002F\n });\n\n $('#listprocesoPago-container table tbody').on('click', 'tr', function () {\n\n var id = $(this).find(\"td\").eq(0).text();\n\n window.location.href = \"\u002Finstructions\u002FshowProcesoPago\u002F\" + id + \"\u002F\" + idCompany;\n\n });\n\n\n});","id":"mod_2uE81dzWQwq5REDosX1AnM","is_binary":false,"title":"list_procesopago.js","sha":null,"inserted_at":"2018-12-30T00:00:44","updated_at":"2018-12-30T00:00:44","upload_id":null,"shortid":"HyzSjjiNrZ4","source_id":"src_991vaqiPoRQDbQMYriJNAG","directory_shortid":"BJnsisVBWE"},{"code":"\n'use strict';\n\n\u002F*----------------------------------------\n Document Ready \n----------------------------------------*\u002F\n$(document).ready(function () {\n\n \u002F\u002Fget DataTable table object\n var table = $(\"#listnominaPago-container table\").dataTable({\n \"columnDefs\": [\n {\n \"targets\": 0,\n \"searchable\": false,\n \"orderable\": false,\n 'className': 'dt-body-center',\n \"render\": function (data, type, full, meta) {\n return '\u003Cinput type=\"checkbox\" name=' + full[1] + ' value=\"'\n + $('\u003Cdiv\u002F\u003E').text(data).html() + '\"\u003E';\n }\n },\n {\n \"targets\": 1,\n \"visible\": false,\n \"searchable\": false\n },\n {\n \"targets\": \"procesoAmount\",\n \"render\": $.fn.dataTable.render.number('.', ',', 0, '