From e71d130f24267bb7610403164ab711c770fe000b Mon Sep 17 00:00:00 2001 From: Andrew Hosgood Date: Sat, 4 Jun 2016 17:04:53 +0100 Subject: [PATCH 1/4] Bug fix for undefined key in fileupload JS --- .../twist/ajax/css/twistajax.min.css.map | 2 +- .../Resources/twist/ajax/js/twistajax.min.js | 31 +- .../cssreset/css/twistcssreset.min.css.map | 2 +- .../twist/debug/css/twistdebug.min.css.map | 2 +- .../twist/fileupload/js/twistfileupload.js | 286 +++++++++++++++--- .../fileupload/js/twistfileupload.min.js | 35 ++- .../twist/setup/css/twistsetup.min.css.map | 2 +- .../twist/fileupload/js/twistfileupload.js | 4 +- 8 files changed, 308 insertions(+), 56 deletions(-) diff --git a/dist/twist/Core/Resources/twist/ajax/css/twistajax.min.css.map b/dist/twist/Core/Resources/twist/ajax/css/twistajax.min.css.map index 3c431d27..e046fbbe 100644 --- a/dist/twist/Core/Resources/twist/ajax/css/twistajax.min.css.map +++ b/dist/twist/Core/Resources/twist/ajax/css/twistajax.min.css.map @@ -1 +1 @@ -{"version":3,"file":"twistajax.min.css","sources":["twistajax.scss"],"sourcesContent":["/*!\n * This file is part of TwistPHP.\n *\n * TwistPHP is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * TwistPHP is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with TwistPHP. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html LGPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP AJAX\n * --------------\n */\n\n#twist-ajax-loader {\n\tdisplay: none;\n\n\tposition: fixed;\n\n\tbackground-color: #000;\n\tbackground-image: url(../images/twist-ajax-128.png);\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\n\tz-index: 999;\n\n\t&.large {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n\n\t&.medium {\n\t\twidth: 200px;\n\t\theight: 170px;\n\t\tmargin: -85px 0 0 -100px;\n\n\t\ttop: 50%;\n\t\tleft: 50%;\n\n\t\tborder-bottom: 30px transparent solid;\n\t\tborder-radius: 20px;\n\t}\n\n\t&.small {\n\t\twidth: 80px;\n\t\theight: 80px;\n\n\t\ttop: auto;\n\t\tright: 30px;\n\t\tbottom: 30px;\n\t\tleft: auto;\n\n\t\tbackground-image: url(../images/twist-ajax-64.png);\n\n\t\tborder-radius: 15px;\n\n\t\t#twist-ajax-loader-count {\n\t\t\theight: 12px;\n\t\t\tmargin-top: -6px;\n\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t}\n\t}\n\n\t&.smallest {\n\t\twidth: 50px;\n\t\theight: 50px;\n\n\t\ttop: auto;\n\t\tright: 30px;\n\t\tbottom: 30px;\n\t\tleft: auto;\n\n\t\tbackground-image: url(../images/twist-ajax-32.png);\n\n\t\tborder-radius: 10px;\n\t}\n\n\t#twist-ajax-loader-count,\n\t#twist-ajax-loader-size {\n\t\twidth: 100%;\n\n\t\tposition: absolute;\n\t\ttop: 50%;\n\n\t\tcolor: #FFF;\n\t\ttext-align: center;\n\t}\n\n\t#twist-ajax-loader-count {\n\t\theight: 18px;\n\t\tmargin-top: -9px;\n\n\t\tfont-size: 18px;\n\t\tfont-weight: bold;\n\t\tline-height: 18px;\n\t}\n\n\t#twist-ajax-loader-size {\n\t\tpadding-top: 74px;\n\n\t\tfont-size: 16px;\n\t}\n\n\t&.small #twist-ajax-loader-size,\n\t&.smallest #twist-ajax-loader-count,\n\t&.smallest #twist-ajax-loader-size {\n\t\tdisplay: none;\n\t}\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG,AAEH,kBAAkB,AAAC,CAClB,OAAO,CAAE,IAAK,CAEd,QAAQ,CAAE,KAAM,CAEhB,gBAAgB,CAAE,IAAK,CACvB,gBAAgB,CAAkC,iCAAC,CACnD,mBAAmB,CAAE,MAAO,CAC5B,iBAAiB,CAAE,SAAU,CAC7B,gBAAgB,CAAE,eAAI,CAEtB,OAAO,CAAE,GAAI,CAyFb,AApGD,kBAAkB,AAahB,MAAM,AAAC,CACP,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,CAAE,CACP,IAAI,CAAE,CAAE,CACR,AAnBF,kBAAkB,AAqBhB,OAAO,AAAC,CACR,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CACd,MAAM,CAAE,gBAAiB,CAEzB,GAAG,CAAE,GAAI,CACT,IAAI,CAAE,GAAI,CAEV,aAAa,CAAE,sBAAuB,CACtC,aAAa,CAAE,IAAK,CACpB,AA/BF,kBAAkB,AAiChB,MAAM,AAAC,CACP,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,IAAK,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CACb,IAAI,CAAE,IAAK,CAEX,gBAAgB,CAAiC,gCAAC,CAElD,aAAa,CAAE,IAAK,CASpB,AArDF,kBAAkB,AAiChB,MAAM,CAaN,wBAAwB,AAAC,CACxB,MAAM,CAAE,IAAK,CACb,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,WAAW,CAAE,IAAK,CAClB,AApDH,kBAAkB,AAuDhB,SAAS,AAAC,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,IAAK,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CACb,IAAI,CAAE,IAAK,CAEX,gBAAgB,CAAiC,gCAAC,CAElD,aAAa,CAAE,IAAK,CACpB,AAnEF,kBAAkB,CAqEjB,wBAAwB,CArEzB,kBAAkB,CAsEjB,uBAAuB,AAAC,CACvB,KAAK,CAAE,IAAK,CAEZ,QAAQ,CAAE,QAAS,CACnB,GAAG,CAAE,GAAI,CAET,KAAK,CAAE,IAAK,CACZ,UAAU,CAAE,MAAO,CACnB,AA9EF,kBAAkB,CAgFjB,wBAAwB,AAAC,CACxB,MAAM,CAAE,IAAK,CACb,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,WAAW,CAAE,IAAK,CAClB,WAAW,CAAE,IAAK,CAClB,AAvFF,kBAAkB,CAyFjB,uBAAuB,AAAC,CACvB,WAAW,CAAE,IAAK,CAElB,SAAS,CAAE,IAAK,CAChB,AA7FF,kBAAkB,AA+FhB,MAAM,CAAC,uBAAuB,CA/FhC,kBAAkB,AAgGhB,SAAS,CAAC,wBAAwB,CAhGpC,kBAAkB,AAiGhB,SAAS,CAAC,uBAAuB,AAAC,CAClC,OAAO,CAAE,IAAK,CACd","names":[],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"file":"twistajax.min.css","sources":["twistajax.scss"],"sourcesContent":["/*!\n * TwistPHP - An open source PHP MVC framework built from the ground up.\n * Copyright (C) 2016 Shadow Technologies Ltd.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html GPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP AJAX\n * --------------\n */\n\n#twist-ajax-loader {\n\tdisplay: none;\n\n\tposition: fixed;\n\n\tbackground-color: #000;\n\tbackground-image: url(../images/twist-ajax-128.png);\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\n\tz-index: 999;\n\n\t&.large {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n\n\t&.medium {\n\t\twidth: 200px;\n\t\theight: 170px;\n\t\tmargin: -85px 0 0 -100px;\n\n\t\ttop: 50%;\n\t\tleft: 50%;\n\n\t\tborder-bottom: 30px transparent solid;\n\t\tborder-radius: 20px;\n\t}\n\n\t&.small {\n\t\twidth: 80px;\n\t\theight: 80px;\n\n\t\ttop: auto;\n\t\tright: 30px;\n\t\tbottom: 30px;\n\t\tleft: auto;\n\n\t\tbackground-image: url(../images/twist-ajax-64.png);\n\n\t\tborder-radius: 15px;\n\n\t\t#twist-ajax-loader-count {\n\t\t\theight: 12px;\n\t\t\tmargin-top: -6px;\n\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t}\n\t}\n\n\t&.smallest {\n\t\twidth: 50px;\n\t\theight: 50px;\n\n\t\ttop: auto;\n\t\tright: 30px;\n\t\tbottom: 30px;\n\t\tleft: auto;\n\n\t\tbackground-image: url(../images/twist-ajax-32.png);\n\n\t\tborder-radius: 10px;\n\t}\n\n\t#twist-ajax-loader-count,\n\t#twist-ajax-loader-size {\n\t\twidth: 100%;\n\n\t\tposition: absolute;\n\t\ttop: 50%;\n\n\t\tcolor: #FFF;\n\t\ttext-align: center;\n\t}\n\n\t#twist-ajax-loader-count {\n\t\theight: 18px;\n\t\tmargin-top: -9px;\n\n\t\tfont-size: 18px;\n\t\tfont-weight: bold;\n\t\tline-height: 18px;\n\t}\n\n\t#twist-ajax-loader-size {\n\t\tpadding-top: 74px;\n\n\t\tfont-size: 16px;\n\t}\n\n\t&.small #twist-ajax-loader-size,\n\t&.smallest #twist-ajax-loader-count,\n\t&.smallest #twist-ajax-loader-size {\n\t\tdisplay: none;\n\t}\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG,AAEH,kBAAkB,AAAC,CAClB,OAAO,CAAE,IAAK,CAEd,QAAQ,CAAE,KAAM,CAEhB,gBAAgB,CAAE,IAAK,CACvB,gBAAgB,CAAkC,iCAAC,CACnD,mBAAmB,CAAE,MAAO,CAC5B,iBAAiB,CAAE,SAAU,CAC7B,gBAAgB,CAAE,eAAI,CAEtB,OAAO,CAAE,GAAI,CAyFb,AApGD,kBAAkB,AAahB,MAAM,AAAC,CACP,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,CAAE,CACP,IAAI,CAAE,CAAE,CACR,AAnBF,kBAAkB,AAqBhB,OAAO,AAAC,CACR,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CACd,MAAM,CAAE,gBAAiB,CAEzB,GAAG,CAAE,GAAI,CACT,IAAI,CAAE,GAAI,CAEV,aAAa,CAAE,sBAAuB,CACtC,aAAa,CAAE,IAAK,CACpB,AA/BF,kBAAkB,AAiChB,MAAM,AAAC,CACP,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,IAAK,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CACb,IAAI,CAAE,IAAK,CAEX,gBAAgB,CAAiC,gCAAC,CAElD,aAAa,CAAE,IAAK,CASpB,AArDF,kBAAkB,AAiChB,MAAM,CAaN,wBAAwB,AAAC,CACxB,MAAM,CAAE,IAAK,CACb,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,WAAW,CAAE,IAAK,CAClB,AApDH,kBAAkB,AAuDhB,SAAS,AAAC,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CAEb,GAAG,CAAE,IAAK,CACV,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,IAAK,CACb,IAAI,CAAE,IAAK,CAEX,gBAAgB,CAAiC,gCAAC,CAElD,aAAa,CAAE,IAAK,CACpB,AAnEF,kBAAkB,CAqEjB,wBAAwB,CArEzB,kBAAkB,CAsEjB,uBAAuB,AAAC,CACvB,KAAK,CAAE,IAAK,CAEZ,QAAQ,CAAE,QAAS,CACnB,GAAG,CAAE,GAAI,CAET,KAAK,CAAE,IAAK,CACZ,UAAU,CAAE,MAAO,CACnB,AA9EF,kBAAkB,CAgFjB,wBAAwB,AAAC,CACxB,MAAM,CAAE,IAAK,CACb,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,WAAW,CAAE,IAAK,CAClB,WAAW,CAAE,IAAK,CAClB,AAvFF,kBAAkB,CAyFjB,uBAAuB,AAAC,CACvB,WAAW,CAAE,IAAK,CAElB,SAAS,CAAE,IAAK,CAChB,AA7FF,kBAAkB,AA+FhB,MAAM,CAAC,uBAAuB,CA/FhC,kBAAkB,AAgGhB,SAAS,CAAC,wBAAwB,CAhGpC,kBAAkB,AAiGhB,SAAS,CAAC,uBAAuB,AAAC,CAClC,OAAO,CAAE,IAAK,CACd","names":[],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/twist/Core/Resources/twist/ajax/js/twistajax.min.js b/dist/twist/Core/Resources/twist/ajax/js/twistajax.min.js index 4c0434d6..a73cdcfb 100755 --- a/dist/twist/Core/Resources/twist/ajax/js/twistajax.min.js +++ b/dist/twist/Core/Resources/twist/ajax/js/twistajax.min.js @@ -18,9 +18,30 @@ * @author Shadow Technologies Ltd. * @license https://www.gnu.org/licenses/gpl.html GPL License * @link https://twistphp.com - * - * -------------- - * TwistPHP AJAX - * -------------- */ -!function(t,e){"function"==typeof define&&define.amd?define("twistajax",["jquery"],function(n){return t.twistajax=e(n)}):"object"==typeof module&&module.exports?module.exports=e(require("jQuery")):t.twistajax=e(t.jQuery)}(this,function(t){try{if(t){var e=function(e,n,o,a,r,i){var u=this,s=!1,f=function(t,e,n){return n="boolean"==typeof n?n:!1,n?-1!==e.indexOf(t):-1!==e.toLowerCase().indexOf(t.toLowerCase())},c=function(t,e){return d()&&Object.prototype.hasOwnProperty.call(t,e)||t.hasOwnProperty(e)},p=function(t){return""===t.replace(/[\s\t\r\n]*/g,"")},d=function(){return navigator.userAgent.indexOf("MSIE ")},l=function(){s&&w(arguments)},w=function(){var t=arguments;if(window.twistdebug&&t.length>0)for(var e in t)window.twistdebug.error(t[e]);else if(window.console&&window.console.log&&t.length>0)for(var n in t)window.console.log(t[n])},y=function(t){var e=0;if("object"==typeof t)for(var n in t)c(t,n)&&e++;return e},h=function(t,e){for(var n=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;n[o]&&t>Math.pow(1024,o+1);)o++;return g(t/Math.pow(1024,o),2)+("boolean"==typeof e&&e?" ":"")+n[o]},g=function(t,e){return e="number"!=typeof e?0:e,0===e?parseInt(Math.round(t*Math.pow(10,e))/Math.pow(10,e)):parseFloat(Math.round(t*Math.pow(10,e))/Math.pow(10,e))},b=function(e){var n={},o=[];t.map(e.serializeArray(),function(t,e){o.push({name:t.name,value:t.value})}),e.find('input[type="submit"][name][value], input[type="reset"][name][value], input[type="button"][name][value], button[name][value]').each(function(){var t=$(this);o.push({name:t.attr("name"),value:t.val()})});var a=function(t,e,n,r){var i={},u=n.match(/^(\[([^\[]*)\])((\[[^\[]*\])*)$/i);if(u){var s=u[2];if(p(s)){var c=1,d=!0;do{var l=!0;for(var w in o)f(e+"["+c+"]",o[w].name)&&(c++,l=!1);if(l){var y=!1;for(var h in o)y||o[h].name!==e+"[]"||o[h].value!==r||(o[h].name=e+"["+c+"]",y=!0);d=!1}}while(d);s=c}u[3]?i[s]=a(t,e+"["+s+"]",u[3],r):i[s]=r}return i};return $.each(o,function(t,e){var o=e.name.match(/^([^\[]+)((\[[^\[]*\])+)$/i);if(o){var r={};r[o[1]]=a(e.name,o[1],o[2],e.value),n=$.extend(!0,n,r)}else n[e.name]=e.value}),n},m=function(){},v=function(){},j={},x=1e4,A="medium",R=!1,O=!0,T=function(n,o,a,r,i,s,f){u.count++,o="string"==typeof o?o:"POST",$("#twist-ajax-loader-size").text("Loading..."),u.count>1&&$("#twist-ajax-loader-count").text(u.count),O&&$("#twist-ajax-loader").stop().show().fadeTo(0,1);var p={},d=x,g=function(){},j=function(){};"object"==typeof r||"string"==typeof r&&/^\#[0-9a-z_\-]+$/i.test(r)&&($(r)instanceof t||r.jquery)?(p="object"==typeof r?r instanceof t||r.jquery?b(r):0===y(r)?p:r:b($(r)),"number"==typeof i?(d=i,"function"==typeof s&&(g=s,"function"==typeof f&&(j=f))):"function"==typeof i&&(g=i,"function"==typeof s&&(j=s))):"number"==typeof r?(d=r,"function"==typeof i&&(g=i,"function"==typeof s&&(j=s))):"function"==typeof r&&(g=r,"function"==typeof i&&(j=i));var A=e+"/"+n.replace(/^\//,""),R={type:o.toUpperCase(),url:A,data:p,dataType:"json",timeout:d,global:!0,cache:a,complete:function(t,e){u.count--,0===u.count?$("#twist-ajax-loader").stop().fadeTo(200,0,function(){$(this).hide()}):$("#twist-ajax-loader-count").text(u.count>1?u.count:"")},success:function(t,e,n){var o=h(n.getResponseHeader("Content-Length"));$("#twist-ajax-loader-size").text("Downloading "+o+"..."),t&&"object"==typeof t&&c(t,"status")&&t.status===!0?T(t,R):E(t,R)},error:function(t,e,n){switch(e){case"abort":E({},R),$("#twist-ajax-loader-size").text("Aborted"),l("The AJAX request was aborted");break;case"timeout":E({},R),$("#twist-ajax-loader-size").text("Timeout"),l("The AJAX request timed out");break;case"parsererror":var o=/{"status":(true|false),"message":"[^"]*","data":({.*}|\[\])(,"[^"]+":(true|false|("[^"]*")|({.*}|\[\])))*(,"debug":({.*}|\[\])(,"[^"]+":(true|false|("[^"]*")|({.*}|\[\])))*)?}/,a=h(t.getResponseHeader("Content-Length")),r="===============================================";if(o.test(t.responseText)){w(window.twistdebug?r+"
PARSER ERROR RECOVERY
"+r+"
Date: "+t.getResponseHeader("Date")+"
Location: "+A+"
Timeout: "+d/1e3+"s
Response length: "+a+("undefined"!=typeof JSON?"
Post data: "+JSON.stringify(p):"{}")+"
"+r:r+"\nPARSER ERROR RECOVERY\n"+r+"\nDate: "+t.getResponseHeader("Date")+"\nLocation: "+A+"\nTimeout: "+d/1e3+"s\nResponse length: "+a+("undefined"!=typeof JSON?"\nPost data: "+JSON.stringify(p):"{}")+"\n"+r);var i=t.responseText.match(o)[0];if(null!==$.parseJSON(i)){var s=$.parseJSON(i);"object"==typeof s&&"status"in s&&s.status===!0?T(s,R):E(s,R)}else{E({},R);try{u.onfail(n)}catch(f){l(f)}}}else{w("Parse error"),E({},R);try{u.onfail(n)}catch(f){l(f)}}break;default:E({},R),$("#twist-ajax-loader-size").text("Error");try{u.onfail(n)}catch(f){l(f)}}}},T=function(t,e){try{g.call(t,e),m.call(t,e),window.twistdebug&&window.twistdebug.logAJAX(!0,t,e)}catch(n){l(n)}},E=function(t,e){try{j.call(t,e),v.call(t,e),window.twistdebug&&window.twistdebug.logAJAX(!1,t,e)}catch(n){l(n)}};return $.each(u.defaultArray,function(t,e){p[t]=e}),R.data=p,$.ajax(R)};if("string"!=typeof e||""===e)throw new Error("Please specify an AJAX URI");return e=e.replace(/\/$/,""),"function"==typeof n?(m=n,"function"==typeof o?(v=o,"object"==typeof a?(j=a,"number"==typeof r?(x=r,"string"==typeof i&&(A=i)):"string"==typeof r&&(A=r)):"number"==typeof a?(x=a,"string"==typeof r&&(A=r)):"string"==typeof a&&(A=a)):"object"===o?(j=o,"number"==typeof a?(x=a,"string"==typeof r&&(A=r)):"string"==typeof a&&(A=a)):"number"===o?(x=o,"string"==typeof a&&(A=a)):"string"==typeof o&&(A=o)):"object"==typeof n?(j=n,"number"==typeof o?(x=o,"string"==typeof a&&(A=a)):"string"==typeof o&&(A=o)):"number"==typeof n?(x=n,"string"==typeof o&&(A=o)):"string"==typeof n&&(A=n),$.ajaxSetup({url:e,timeout:x}),this.count=0,this.debug=function(t){return s=t!==!1,u},this.defaultArray=j,this["delete"]=function(t,e,n,o,a){return t&&T(t,"DELETE",R,e,n,o,a),u},this.disableCache=function(){return R=!1,u},this.disableLoader=function(){return O=!1,u},this.enableCache=function(){return R=!0,u},this.enableLoader=function(){return O=!0,u},this.get=function(t,e,n,o,a){return t&&T(t,"GET",R,e,n,o,a),u},this.loaderSize=function(t){return $("#twist-ajax-loader").length&&$("#twist-ajax-loader").attr("class","").addClass(t),A=t,u},this.onfail=function(t){var e="string"==typeof t&&""!==t?t:"An unexpected AJAX response was given";return l(e),u},this.patch=function(t,e,n,o,a){return T(t,"PATCH",R,e,n,o,a),u},this.post=function(t,e,n,o,a){return t&&T(t,"POST",R,e,n,o,a),u},this.put=function(t,e,n,o,a){return t&&T(t,"PUT",R,e,n,o,a),u},$(document).ready(function(){$("#twist-ajax-loader").length||$("body").prepend('
')}),!0};return e}throw"Twist AJAX requires jQuery to run"}catch(n){window.twistdebug?window.twistdebug.error(n):window.console&&window.console.log&&console.error(n)}}); \ No newline at end of file +!function(t,e){"function"==typeof define&&define.amd?define("twistajax",["jquery"],function(n){return t.twistajax=e(n)}):"object"==typeof module&&module.exports?module.exports=e(require("jQuery")):t.twistajax=e(t.jQuery)}(this,function(t){try{if(t){/** + * Create a new instance of the TwistAJAX object + * @param strAJAXPostLocation + * @param {?(function|Object|number|string)} b B + * @param {?function} b Master callback success function + * @param {?Object} b Default data + * @param {?number} b Default timeout + * @param {?string} b Loader size + * @param {?function} c Master callback failure function + * @param {?Object} c Default data + * @param {?number} c Default timeout + * @param {?string} c Loader size + * @param {?Object} d Default data + * @param {?number} d Default timeout + * @param {?string} d Loader size + * @param {?number} e Default timeout + * @param {?string} e Loader size + * @param {?string} f Loader size + * @returns {boolean} + * @alias twistajax + * @constructor + * @author Shadow Technologies Ltd. + * @version 1.0.0 + * @license GPL-3.0 + */ +var e=function(e,n,o,a,r,i){var u=this,s=!1,f=function(t,e,n){return n="boolean"==typeof n?n:!1,n?-1!==e.indexOf(t):-1!==e.toLowerCase().indexOf(t.toLowerCase())},c=function(t,e){return d()&&Object.prototype.hasOwnProperty.call(t,e)||t.hasOwnProperty(e)},p=function(t){return""===t.replace(/[\s\t\r\n]*/g,"")},d=function(){return navigator.userAgent.indexOf("MSIE ")},l=function(){s&&y(arguments)},y=function(){var t=arguments;if(window.twistdebug&&t.length>0)for(var e in t)window.twistdebug.error(t[e]);else if(window.console&&window.console.log&&t.length>0)for(var n in t)window.console.log(t[n])},w=function(t){var e=0;if("object"==typeof t)for(var n in t)c(t,n)&&e++;return e},h=function(t,e){for(var n=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;n[o]&&t>Math.pow(1024,o+1);)o++;return g(t/Math.pow(1024,o),2)+("boolean"==typeof e&&e?" ":"")+n[o]},g=function(t,e){return e="number"!=typeof e?0:e,0===e?parseInt(Math.round(t*Math.pow(10,e))/Math.pow(10,e)):parseFloat(Math.round(t*Math.pow(10,e))/Math.pow(10,e))},b=function(e){var n={},o=[];t.map(e.serializeArray(),function(t,e){o.push({name:t.name,value:t.value})}),e.find('input[type="submit"][name][value], input[type="reset"][name][value], input[type="button"][name][value], button[name][value]').each(function(){var t=$(this);o.push({name:t.attr("name"),value:t.val()})});var a=function(t,e,n,r){var i={},u=n.match(/^(\[([^\[]*)\])((\[[^\[]*\])*)$/i);if(u){var s=u[2];if(p(s)){var c=1,d=!0;do{var l=!0;for(var y in o)f(e+"["+c+"]",o[y].name)&&(c++,l=!1);if(l){var w=!1;for(var h in o)w||o[h].name!==e+"[]"||o[h].value!==r||(o[h].name=e+"["+c+"]",w=!0);d=!1}}while(d);s=c}u[3]?i[s]=a(t,e+"["+s+"]",u[3],r):i[s]=r}return i};return $.each(o,function(t,e){var o=e.name.match(/^([^\[]+)((\[[^\[]*\])+)$/i);if(o){var r={};r[o[1]]=a(e.name,o[1],o[2],e.value),n=$.extend(!0,n,r)}else n[e.name]=e.value}),n},m=function(){},v=function(){},j={},x=1e4,A="medium",R=!1,O=!0,T=function(n,o,a,r,i,s,f){u.count++,o="string"==typeof o?o:"POST",$("#twist-ajax-loader-size").text("Loading..."),u.count>1&&$("#twist-ajax-loader-count").text(u.count),O&&$("#twist-ajax-loader").stop().show().fadeTo(0,1);var p={},d=x,g=function(){},j=function(){};"object"==typeof r||"string"==typeof r&&/^\#[0-9a-z_\-]+$/i.test(r)&&($(r)instanceof t||r.jquery)?(p="object"==typeof r?r instanceof t||r.jquery?b(r):0===w(r)?p:r:b($(r)),"number"==typeof i?(d=i,"function"==typeof s&&(g=s,"function"==typeof f&&(j=f))):"function"==typeof i&&(g=i,"function"==typeof s&&(j=s))):"number"==typeof r?(d=r,"function"==typeof i&&(g=i,"function"==typeof s&&(j=s))):"function"==typeof r&&(g=r,"function"==typeof i&&(j=i));var A=e+"/"+n.replace(/^\//,""),R={type:o.toUpperCase(),url:A,data:p,dataType:"json",timeout:d,global:!0,cache:a,complete:function(t,e){u.count--,0===u.count?$("#twist-ajax-loader").stop().fadeTo(200,0,function(){$(this).hide()}):$("#twist-ajax-loader-count").text(u.count>1?u.count:"")},success:function(t,e,n){var o=h(n.getResponseHeader("Content-Length"));$("#twist-ajax-loader-size").text("Downloading "+o+"..."),t&&"object"==typeof t&&c(t,"status")&&t.status===!0?T(t,R):E(t,R)},error:function(t,e,n){switch(e){case"abort":E({},R),$("#twist-ajax-loader-size").text("Aborted"),l("The AJAX request was aborted");break;case"timeout":E({},R),$("#twist-ajax-loader-size").text("Timeout"),l("The AJAX request timed out");break;case"parsererror":var o=/{"status":(true|false),"message":"[^"]*","data":({.*}|\[\])(,"[^"]+":(true|false|("[^"]*")|({.*}|\[\])))*(,"debug":({.*}|\[\])(,"[^"]+":(true|false|("[^"]*")|({.*}|\[\])))*)?}/,a=h(t.getResponseHeader("Content-Length")),r="===============================================";if(o.test(t.responseText)){y(window.twistdebug?r+"
PARSER ERROR RECOVERY
"+r+"
Date: "+t.getResponseHeader("Date")+"
Location: "+A+"
Timeout: "+d/1e3+"s
Response length: "+a+("undefined"!=typeof JSON?"
Post data: "+JSON.stringify(p):"{}")+"
"+r:r+"\nPARSER ERROR RECOVERY\n"+r+"\nDate: "+t.getResponseHeader("Date")+"\nLocation: "+A+"\nTimeout: "+d/1e3+"s\nResponse length: "+a+("undefined"!=typeof JSON?"\nPost data: "+JSON.stringify(p):"{}")+"\n"+r);var i=t.responseText.match(o)[0];if(null!==$.parseJSON(i)){var s=$.parseJSON(i);"object"==typeof s&&"status"in s&&s.status===!0?T(s,R):E(s,R)}else{E({},R);try{u.onfail(n)}catch(f){l(f)}}}else{y("Parse error"),E({},R);try{u.onfail(n)}catch(f){l(f)}}break;default:E({},R),$("#twist-ajax-loader-size").text("Error");try{u.onfail(n)}catch(f){l(f)}}}},T=function(t,e){try{g.call(t,e),m.call(t,e),window.twistdebug&&window.twistdebug.logAJAX(!0,t,e)}catch(n){l(n)}},E=function(t,e){try{j.call(t,e),v.call(t,e),window.twistdebug&&window.twistdebug.logAJAX(!1,t,e)}catch(n){l(n)}};return $.each(u.defaultArray,function(t,e){p[t]=e}),R.data=p,$.ajax(R)};if("string"!=typeof e||""===e)throw new Error("Please specify an AJAX URI");return e=e.replace(/\/$/,""),"function"==typeof n?(m=n,"function"==typeof o?(v=o,"object"==typeof a?(j=a,"number"==typeof r?(x=r,"string"==typeof i&&(A=i)):"string"==typeof r&&(A=r)):"number"==typeof a?(x=a,"string"==typeof r&&(A=r)):"string"==typeof a&&(A=a)):"object"==typeof o?(j=o,"number"==typeof a?(x=a,"string"==typeof r&&(A=r)):"string"==typeof a&&(A=a)):"number"==typeof o?(x=o,"string"==typeof a&&(A=a)):"string"==typeof o&&(A=o)):"object"==typeof n?(j=n,"number"==typeof o?(x=o,"string"==typeof a&&(A=a)):"string"==typeof o&&(A=o)):"number"==typeof n?(x=n,"string"==typeof o&&(A=o)):"string"==typeof n&&(A=n),$.ajaxSetup({url:e,timeout:x}),this.count=0,this.debug=function(t){return s=t!==!1,u},this.defaultArray=j,this["delete"]=function(t,e,n,o,a){return t&&T(t,"DELETE",R,e,n,o,a),u},this.disableCache=function(){return R=!1,u},this.disableLoader=function(){return O=!1,u},this.enableCache=function(){return R=!0,u},this.enableLoader=function(){return O=!0,u},this.get=function(t,e,n,o,a){return t&&T(t,"GET",R,e,n,o,a),u},this.loaderSize=function(t){return $("#twist-ajax-loader").length&&$("#twist-ajax-loader").attr("class","").addClass(t),A=t,u},this.onfail=function(t){var e="string"==typeof t&&""!==t?t:"An unexpected AJAX response was given";return l(e),u},this.patch=function(t,e,n,o,a){return T(t,"PATCH",R,e,n,o,a),u},this.post=function(t,e,n,o,a){return t&&T(t,"POST",R,e,n,o,a),u},this.put=function(t,e,n,o,a){return t&&T(t,"PUT",R,e,n,o,a),u},$(document).ready(function(){$("#twist-ajax-loader").length||$("body").prepend('
')}),!0};return e}throw"Twist AJAX requires jQuery to run"}catch(n){window.twistdebug?window.twistdebug.error(n):window.console&&window.console.log&&console.error(n)}}); \ No newline at end of file diff --git a/dist/twist/Core/Resources/twist/cssreset/css/twistcssreset.min.css.map b/dist/twist/Core/Resources/twist/cssreset/css/twistcssreset.min.css.map index 9b8b9687..68a6ede4 100644 --- a/dist/twist/Core/Resources/twist/cssreset/css/twistcssreset.min.css.map +++ b/dist/twist/Core/Resources/twist/cssreset/css/twistcssreset.min.css.map @@ -1 +1 @@ -{"version":3,"file":"twistcssreset.min.css","sources":["twistcssreset.scss"],"sourcesContent":["/*!\n * This file is part of TwistPHP.\n *\n * TwistPHP is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * TwistPHP is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with TwistPHP. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html LGPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP CSS Reset\n * --------------\n */\n\n@-ms-viewport {\n\twidth: device-width;\n}\n\n@viewport {\n\twidth: device-width;\n}\n\n* {\n\tmargin: 0;\n\tpadding: 0;\n\n\tcolor: inherit;\n\tfont-family: inherit;\n\tfont-size: 1em;\n\ttext-align: inherit;\n\tline-height: inherit;\n\tdirection: inherit;\n\ttext-size-adjust: none;\n\t-moz-text-size-adjust: none;\n\t-webkit-text-size-adjust: none;\n\t-ms-text-size-adjust: none;\n\ttext-rendering: optimizeLegibility;\n\n\tborder-color: inherit;\n\n\tz-index: inherit;\n}\n\nhtml,\nbody {\n\tmin-height: 100%;\n}\n\nhtml {\n\toverflow-y: auto;\n\n\tfont-size: 10px;\n}\n\nbody {\n\tmargin: 0 auto;\n\n\tfont-size: 1em;\n\tfont-size: 1rem;\n}\n\nh1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, a, span, em, strong, pre {\n\tcolor: inherit;\n\tline-height: inherit;\n}\n\nh1, h2, h3, h4, h5, h6, strong {\n\tfont-weight: 700;\n}\n\nul,\nol {\n\tmargin-left: 20px;\n\n\tlist-style-position: outside;\n\n\tul,\n\tol {\n\t\tfont-size: 1em;\n\t}\n}\n\nul {\n\tlist-style-type: disc;\n}\n\nol {\n\tlist-style-type: decimal;\n}\n\nsub,\nsup,\nsmall {\n\tfont-size: smaller;\n}\n\nimg {\n\tdisplay: inline-block;\n}\n\na img {\n\tborder: none;\n}\n\nbody,\ninput,\nbutton {\n\t-webkit-font-smoothing: antialiased;\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG,AAEH,aAAa,CACZ,KAAK,CAAE,YAAa,CAGrB,SAAS,CACR,KAAK,CAAE,YAAa,CAGrB,CAAC,AAAC,CACD,MAAM,CAAE,CAAE,CACV,OAAO,CAAE,CAAE,CAEX,KAAK,CAAE,OAAQ,CACf,WAAW,CAAE,OAAQ,CACrB,SAAS,CAAE,GAAI,CACf,UAAU,CAAE,OAAQ,CACpB,WAAW,CAAE,OAAQ,CACrB,SAAS,CAAE,OAAQ,CACnB,gBAAgB,CAAE,IAAK,CACvB,qBAAqB,CAAE,IAAK,CAC5B,wBAAwB,CAAE,IAAK,CAC/B,oBAAoB,CAAE,IAAK,CAC3B,cAAc,CAAE,kBAAmB,CAEnC,YAAY,CAAE,OAAQ,CAEtB,OAAO,CAAE,OAAQ,CACjB,AAED,IAAI,CACJ,IAAI,AAAC,CACJ,UAAU,CAAE,IAAK,CACjB,AAED,IAAI,AAAC,CACJ,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,AAED,IAAI,AAAC,CACJ,MAAM,CAAE,MAAO,CAEf,SAAS,CAAE,GAAI,CACf,SAAS,CAAE,IAAK,CAChB,AAED,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,CAAE,IAAI,CAAE,EAAE,CAAE,MAAM,CAAE,GAAG,AAAC,CAC3E,KAAK,CAAE,OAAQ,CACf,WAAW,CAAE,OAAQ,CACrB,AAED,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,MAAM,AAAC,CAC9B,WAAW,CAAE,GAAI,CACjB,AAED,EAAE,CACF,EAAE,AAAC,CACF,WAAW,CAAE,IAAK,CAElB,mBAAmB,CAAE,OAAQ,CAM7B,AAVD,EAAE,CAMD,EAAE,CANH,EAAE,CAOD,EAAE,CANH,EAAE,CAKD,EAAE,CALH,EAAE,CAMD,EAAE,AAAC,CACF,SAAS,CAAE,GAAI,CACf,AAGF,EAAE,AAAC,CACF,eAAe,CAAE,IAAK,CACtB,AAED,EAAE,AAAC,CACF,eAAe,CAAE,OAAQ,CACzB,AAED,GAAG,CACH,GAAG,CACH,KAAK,AAAC,CACL,SAAS,CAAE,OAAQ,CACnB,AAED,GAAG,AAAC,CACH,OAAO,CAAE,YAAa,CACtB,AAED,CAAC,CAAC,GAAG,AAAC,CACL,MAAM,CAAE,IAAK,CACb,AAED,IAAI,CACJ,KAAK,CACL,MAAM,AAAC,CACN,sBAAsB,CAAE,WAAY,CACpC","names":[],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"file":"twistcssreset.min.css","sources":["twistcssreset.scss"],"sourcesContent":["/*!\n * TwistPHP - An open source PHP MVC framework built from the ground up.\n * Copyright (C) 2016 Shadow Technologies Ltd.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html GPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP CSS Reset\n * --------------\n */\n\n@-ms-viewport {\n\twidth: device-width;\n}\n\n@viewport {\n\twidth: device-width;\n}\n\n* {\n\tmargin: 0;\n\tpadding: 0;\n\n\tcolor: inherit;\n\tfont-family: inherit;\n\tfont-size: 1em;\n\ttext-align: inherit;\n\tline-height: inherit;\n\tdirection: inherit;\n\ttext-size-adjust: none;\n\t-moz-text-size-adjust: none;\n\t-webkit-text-size-adjust: none;\n\t-ms-text-size-adjust: none;\n\ttext-rendering: optimizeLegibility;\n\n\tborder-color: inherit;\n\n\tz-index: inherit;\n}\n\nhtml,\nbody {\n\tmin-height: 100%;\n}\n\nhtml {\n\toverflow-y: auto;\n\n\tfont-size: 10px;\n}\n\nbody {\n\tmargin: 0 auto;\n\n\tfont-size: 1em;\n\tfont-size: 1rem;\n}\n\nh1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, a, span, em, strong, pre {\n\tcolor: inherit;\n\tline-height: inherit;\n}\n\nh1, h2, h3, h4, h5, h6, strong {\n\tfont-weight: 700;\n}\n\nul,\nol {\n\tmargin-left: 20px;\n\n\tlist-style-position: outside;\n\n\tul,\n\tol {\n\t\tfont-size: 1em;\n\t}\n}\n\nul {\n\tlist-style-type: disc;\n}\n\nol {\n\tlist-style-type: decimal;\n}\n\nsub,\nsup,\nsmall {\n\tfont-size: smaller;\n}\n\nimg {\n\tdisplay: inline-block;\n}\n\na img {\n\tborder: none;\n}\n\nbody,\ninput,\nbutton {\n\t-webkit-font-smoothing: antialiased;\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG,AAEH,aAAa,CACZ,KAAK,CAAE,YAAa,CAGrB,SAAS,CACR,KAAK,CAAE,YAAa,CAGrB,CAAC,AAAC,CACD,MAAM,CAAE,CAAE,CACV,OAAO,CAAE,CAAE,CAEX,KAAK,CAAE,OAAQ,CACf,WAAW,CAAE,OAAQ,CACrB,SAAS,CAAE,GAAI,CACf,UAAU,CAAE,OAAQ,CACpB,WAAW,CAAE,OAAQ,CACrB,SAAS,CAAE,OAAQ,CACnB,gBAAgB,CAAE,IAAK,CACvB,qBAAqB,CAAE,IAAK,CAC5B,wBAAwB,CAAE,IAAK,CAC/B,oBAAoB,CAAE,IAAK,CAC3B,cAAc,CAAE,kBAAmB,CAEnC,YAAY,CAAE,OAAQ,CAEtB,OAAO,CAAE,OAAQ,CACjB,AAED,IAAI,CACJ,IAAI,AAAC,CACJ,UAAU,CAAE,IAAK,CACjB,AAED,IAAI,AAAC,CACJ,UAAU,CAAE,IAAK,CAEjB,SAAS,CAAE,IAAK,CAChB,AAED,IAAI,AAAC,CACJ,MAAM,CAAE,MAAO,CAEf,SAAS,CAAE,GAAI,CACf,SAAS,CAAE,IAAK,CAChB,AAED,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,CAAE,IAAI,CAAE,EAAE,CAAE,MAAM,CAAE,GAAG,AAAC,CAC3E,KAAK,CAAE,OAAQ,CACf,WAAW,CAAE,OAAQ,CACrB,AAED,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,MAAM,AAAC,CAC9B,WAAW,CAAE,GAAI,CACjB,AAED,EAAE,CACF,EAAE,AAAC,CACF,WAAW,CAAE,IAAK,CAElB,mBAAmB,CAAE,OAAQ,CAM7B,AAVD,EAAE,CAMD,EAAE,CANH,EAAE,CAOD,EAAE,CANH,EAAE,CAKD,EAAE,CALH,EAAE,CAMD,EAAE,AAAC,CACF,SAAS,CAAE,GAAI,CACf,AAGF,EAAE,AAAC,CACF,eAAe,CAAE,IAAK,CACtB,AAED,EAAE,AAAC,CACF,eAAe,CAAE,OAAQ,CACzB,AAED,GAAG,CACH,GAAG,CACH,KAAK,AAAC,CACL,SAAS,CAAE,OAAQ,CACnB,AAED,GAAG,AAAC,CACH,OAAO,CAAE,YAAa,CACtB,AAED,CAAC,CAAC,GAAG,AAAC,CACL,MAAM,CAAE,IAAK,CACb,AAED,IAAI,CACJ,KAAK,CACL,MAAM,AAAC,CACN,sBAAsB,CAAE,WAAY,CACpC","names":[],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/twist/Core/Resources/twist/debug/css/twistdebug.min.css.map b/dist/twist/Core/Resources/twist/debug/css/twistdebug.min.css.map index 7f6c363a..2ca0bf35 100644 --- a/dist/twist/Core/Resources/twist/debug/css/twistdebug.min.css.map +++ b/dist/twist/Core/Resources/twist/debug/css/twistdebug.min.css.map @@ -1 +1 @@ -{"version":3,"file":"twistdebug.min.css","sources":["twistdebug.scss","../../_common.scss"],"sourcesContent":["/*!\n * This file is part of TwistPHP.\n *\n * TwistPHP is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * TwistPHP is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with TwistPHP. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html LGPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP Debug\n * --------------\n */\n\n// ===================================================== IMPORTS =====================================================\n@import \"../../_common\";\n\n// ===================================================== VARIABLES =====================================================\n$bar-height: 30px;\n$bar-block-height: 30px;\n$bar-logo-width: 32px;\n$bar-fade-width: 10px;\n$highlight: #FFF59D;\n$bar-background-hover: #616161;\n$bar-border: #757575;\n$subtle-text: #BDBDBD;\n$border: #E0E0E0;\n$background: #EEE;\n$red: #D32F2F;\n$red-light: #D32F2F;\n$yellow: #FBC02D;\n$green: #689F38;\n$blue: #1976D2;\n$z-index: 1337;\n\n// ===================================================== MIXINS =====================================================\n@function blackorwhite($colour) {\n\t@return if(lightness($colour) > 50, $twistphp-black, #FFF);\n}\n\n/* ===================================================== ANIMATION KEYFRAMES ===================================================== */\n// https://github.com/daneden/animate.css\n\n/* ===================================================== GENERIC ===================================================== */\n#twist-debug,\n#twist-debug-details {\n\tfont-size: 13px;\n\tfont-family: \"Helvetica Neue Light\", \"Helvetica Neue\", HelveticaNeue, Helvetica, \"Open Sans\", Arial, sans-serif;\n\tfont-weight: 400;\n\tline-height: 1;\n\tfont-style: normal;\n\n\t* {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tcolor: inherit;\n\t\ttext-align: inherit;\n\t\tdirection: inherit;\n\t\ttext-size-adjust: none;\n\t\t-moz-text-size-adjust: none;\n\t\t-webkit-text-size-adjust: none;\n\t\t-ms-text-size-adjust: none;\n\t\ttext-rendering: optimizeLegibility;\n\t}\n\n\th1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, a, span, em, strong, pre {\n\t\tcolor: inherit;\n\t\tline-height: inherit;\n\t}\n\n\th1, h2, h3, h4, h5, h6, strong {\n\t\tfont-weight: 700;\n\t}\n\n\tul {\n\t\tlist-style: disc outside;\n\t}\n\n\tol {\n\t\tlist-style: decimal outside;\n\t}\n\n\tsub,\n\tsup,\n\tsmall {\n\t\tfont-size: smaller;\n\t}\n\n\tul ul,\n\tol ul,\n\tul ol,\n\tol ol {\n\t\tfont-size: 1em;\n\t}\n\n\timg {\n\t\tdisplay: inline-block;\n\t}\n\n\ta img {\n\t\tborder: none;\n\t}\n\n\tinput,\n\tbutton {\n\t\t-webkit-font-smoothing: antialiased;\n\t}\n\n\t.twist-debug-hidden {\n\t\tdisplay: none !important;\n\t}\n}\n\n/* ===================================================== DEBUG BAR ===================================================== */\n#twist-debug {\n\theight: $bar-height;\n\tpadding: 0 #{$bar-logo-width + 15} 0 0;\n\n\tdisplay: none;\n\n\tposition: fixed;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\n\toverflow: visible;\n\n\tbackground-color: $twistphp-dark-grey;\n\n\tz-index: $z-index + 1;\n\n\t&::after {\n\t\twidth: $bar-fade-width;\n\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: #{$bar-logo-width + 15};\n\t\tbottom: 0;\n\n\t\tbackground: $twistphp-dark-grey;\n\t\tbackground: -moz-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -webkit-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -o-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -ms-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: linear-gradient(90deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\n\t\tcontent: \"\";\n\t}\n\n\t&.ready {\n\t\tdisplay: block;\n\t}\n}\n\n\t#twist-debug-icon {\n\t\tdisplay: block;\n\n\t\tposition: absolute;\n\t\tright: 10px;\n\t\tbottom: 5px;\n\n\t\t-webkit-transition: padding ease 400ms;\n\t\ttransition: padding ease 400ms;\n\n\t\t&:hover {\n\t\t\tpadding-bottom: 3px;\n\n\t\t\t-webkit-transition: padding ease 50ms;\n\t\t\ttransition: padding ease 50ms;\n\t\t}\n\n\t\timg {\n\t\t\twidth: $bar-logo-width;\n\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t#twist-debug-blocks {\n\t\twidth: 100%;\n\n\t\toverflow: auto;\n\n\t\tlist-style: none;\n\t\twhite-space: nowrap;\n\n\t\t> li {\n\t\t\tdisplay: inline-block;\n\n\t\t\tfont-size: 12px;\n\n\t\t\t&:first-child {\n\t\t\t\tborder-right: none;\n\n\t\t\t\ta {\n\t\t\t\t\tpadding-right: (($bar-height - $bar-block-height) / 2);\n\t\t\t\t\tpadding-left: (($bar-height - $bar-block-height) / 2);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tmargin-right: $bar-fade-width;\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tpadding: 0 10px;\n\n\t\t\t\tdisplay: block;\n\n\t\t\t\tcolor: blackorwhite($twistphp-dark-grey);\n\t\t\t\tline-height: $bar-height;\n\t\t\t\ttext-decoration: none;\n\n\t\t\t\tborder-right: 1px $bar-border solid;\n\n\t\t\t\t-webkit-transition: background ease 400ms;\n\t\t\t\ttransition: background ease 400ms;\n\n\t\t\t\t\ti {\n\t\t\t\t\t\twidth: 1.3em;\n\t\t\t\t\t\tmargin-right: 5px;\n\n\t\t\t\t\t\tdisplay: inline-block;\n\n\t\t\t\t\t\tcolor: inherit;\n\t\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t\t~ i {\n\t\t\t\t\t\t\tmargin-left: 15px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground-color: $bar-background-hover;\n\n\t\t\t\t\t-webkit-transition: background ease 100ms;\n\t\t\t\t\ttransition: background ease 100ms;\n\t\t\t\t}\n\n\t\t\t\t&.current {\n\t\t\t\t\tbackground-color: $bar-background-hover;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t[data-count] {\n\t\t\t\t&::after {\n\t\t\t\t\tcontent: attr(data-count);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t[data-count=\"0\"] {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.fa-stack-2x {\n\t\t\t\ttext-shadow: 0 0 3px $twistphp-dark-grey;\n\t\t\t}\n\t\t}\n\t}\n\n\t\t\t#twist-debug-errors,\n\t\t\t#twist-debug-warnings,\n\t\t\t#twist-debug-dumps {\n\t\t\t\tmin-width: 8px;\n\t\t\t\tpadding: 0 10px;\n\n\t\t\t\tdisplay: inline-block;\n\n\t\t\t\tfont-weight: 700;\n\t\t\t\ttext-align: center;\n\t\t\t\tline-height: $bar-block-height;\n\n\t\t\t\t//border-radius: 2px;\n\n\t\t\t\t//transform: translate3d(-3000px, 0, 0);\n\t\t\t}\n\n\t\t\t#twist-debug-errors {\n\t\t\t\tbackground-color: $red;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 0);\n\t\t\t}\n\n\t\t\t#twist-debug-warnings {\n\t\t\t\tbackground-color: $yellow;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 100ms);\n\t\t\t}\n\n\t\t\t#twist-debug-dumps {\n\t\t\t\tbackground-color: $blue;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 200ms);\n\t\t\t}\n\n/* ===================================================== DETAILS WINDOW ===================================================== */\n#twist-debug-details {\n\tposition: fixed;\n\ttop: 100%;\n\tright: 0;\n\tbottom: $bar-height;\n\tleft: 0;\n\n\tbackground-color: $background;\n\n\tbox-shadow: 0 0 20px rgba(0, 0, 0, 0.5);\n\n\t-webkit-transition: top ease 800ms;\n\ttransition: top ease 800ms;\n\n\tz-index: $z-index;\n\n\t&.show {\n\t\ttop: 0;\n\t}\n\n\t> div {\n\t\tdisplay: none;\n\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\n\t\tz-index: 1;\n\n\t\th6 {\n\t\t\tpadding: 0 0 10px;\n\n\t\t\tfont-size: 16px;\n\t\t}\n\n\t\t> h6 {\n\t\t\theight: 25px;\n\t\t\tpadding: 10px 65px 10px 20px;\n\n\t\t\tcolor: #FFF;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 25px;\n\n\t\t\tbackground-color: $twistphp-dark-grey;\n\n\t\t\tz-index: 2;\n\t\t}\n\n\t\ttable {\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: #FFF;\n\n\t\t\tborder-collapse: collapse;\n\n\t\t\ttbody {\n\t\t\t\ttr {\n\t\t\t\t\tth {\n\t\t\t\t\t\twidth: 1px;\n\t\t\t\t\t}\n\n\t\t\t\t\t+ tr {\n\t\t\t\t\t\ttd {\n\t\t\t\t\t\t\tborder-top: 1px $border solid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t&.highlight {\n\t\t\t\t\t\ttd {\n\t\t\t\t\t\t\tbackground-color: $highlight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tcolor: #FFF;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\tbackground-color: $twistphp-dark-grey;\n\t\t\t}\n\n\t\t\tth,\n\t\t\ttd {\n\t\t\t\tpadding: 0.5em 0.75em;\n\n\t\t\t\ttext-align: left;\n\t\t\t}\n\n\t\t\t&.index-me {\n\t\t\t\ttbody {\n\t\t\t\t\tcounter-reset: eventorder;\n\n\t\t\t\t\ttr {\n\t\t\t\t\t\tcounter-increment: eventorder;\n\n\t\t\t\t\t\tth {\n\t\t\t\t\t\t\t&::before {\n\t\t\t\t\t\t\t\tcontent: counter(eventorder,upper-alpha);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.table-wrapper {\n\t\t\tmargin-bottom: 20px;\n\n\t\t\toverflow: auto;\n\n\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\t\t}\n\n\t\tdt {\n\t\t\tmargin-top: 0.5em;\n\t\t\tpadding-top: 0.5em;\n\n\t\t\t&:first-child {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.twist-debug-column-wrapper {\n\t\tposition: absolute;\n\t\ttop: 45px;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\n\t\toverflow: auto;\n\n\t\tz-index: 1;\n\t}\n\n\t[class^=\"twist-debug-column-\"],\n\t[class*=\" twist-debug-column-\"] {\n\t\tpadding: 10px;\n\n\t\t-webkit-box-sizing: border-box;\n\t\t-moz-box-sizing: border-box;\n\t\tbox-sizing: border-box;\n\n\t\tfloat: left;\n\t}\n\n\t.twist-debug-column-100 {\n\t\twidth: 100%;\n\n\t\tclear: both;\n\t}\n\n\t.twist-debug-column-50 {\n\t\twidth: 50%;\n\t}\n\n\t.twist-debug-column-33 {\n\t\twidth: 33.33333%;\n\t}\n\n\t.twist-debug-column-25 {\n\t\twidth: 25%;\n\t}\n\n\t.twist-debug-column-clear {\n\t\tpadding: 0;\n\n\t\tdisplay: block;\n\n\t\tfloat: none;\n\t\tclear: both;\n\t}\n\n\t.twist-debug-box,\n\t[class^=\"twist-debug-box-\"],\n\t[class*=\" twist-debug-box-\"] {\n\t\tmargin-left: 4px;\n\n\t\tposition: relative;\n\n\t\toverflow: visible;\n\n\t\tcolor: $twistphp-black;\n\n\t\tbackground-color: #FFF;\n\n\t\tborder: 1px $border solid;\n\t\tborder-left-width: 0;\n\t\tborder-radius: 0 3px 3px 0;\n\n\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t&[data-title] {\n\t\t\tpadding-top: 10px;\n\n\t\t\tborder-top-width: 0;\n\n\t\t\t> :first-child {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\tmargin-top: -5px;\n\t\t\t\tmargin-right: -1px;\n\t\t\t\tpadding: 0 6px;\n\n\t\t\t\tdisplay: block;\n\n\t\t\t\tfloat: right;\n\n\t\t\t\t//color: #FFF;\n\t\t\t\tcolor: $subtle-text;\n\t\t\t\tfont-size: 12px;\n\t\t\t\ttext-align: right;\n\t\t\t\t//font-style: italic;\n\n\t\t\t\t//background-color: $bar-border;\n\n\t\t\t\tcontent: attr(data-title);\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t}\n\n\t\t&[data-title=\"\"] {\n\t\t\t&::before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t&::after {\n\t\t\twidth: 4px;\n\n\t\t\tposition: absolute;\n\t\t\ttop: -1px;\n\t\t\tright: 100%;\n\t\t\tbottom: -1px;\n\n\t\t\tbackground-color: $bar-border;\n\n\t\t\tcontent: \"\";\n\t\t}\n\n\t\t> a.twist-debug-more-details {\n\t\t\theight: 20px;\n\n\t\t\tdisplay: block;\n\n\t\t\tcolor: $subtle-text;\n\t\t\tfont-size: 20px;\n\t\t\ttext-decoration: none;\n\t\t\ttext-align: center;\n\t\t\tline-height: 1;\n\n\t\t\t//background-color: $background;\n\n\t\t\tborder-top: 1px $background solid;\n\n\t\t\t/*-webkit-transition: line-height ease 400ms;\n\t\t\ttransition: line-height ease 400ms;\n\n\t\t\t&:hover {\n\t\t\t\tline-height: 2;\n\n\t\t\t\t-webkit-transition: line-height ease 100ms;\n\t\t\t\ttransition: line-height ease 100ms;\n\t\t\t}*/\n\n\t\t\t&:hover {\n\t\t\t\tcolor: $twistphp-black;\n\t\t\t}\n\t\t}\n\n\n\t\t+ .twist-debug-box,\n\t\t+ [class^=\"twist-debug-box-\"],\n\t\t+ [class*=\" twist-debug-box-\"] {\n\t\t\tmargin-top: 20px;\n\t\t}\n\n\t\tdiv.twist-debug-more-details {\n\t\t\tpadding: 20px 30px;\n\n\t\t\tdisplay: none;\n\n\t\t\tposition: relative;\n\n\t\t\toverflow: hidden;\n\n\t\t\t//background-color: $background;\n\n\t\t\tpre {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\tdl {\n\t\t\t\toverflow: auto;\n\n\t\t\t\t&:after {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 0;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tclear: both;\n\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t}\n\n\t\t\t\tdt,\n\t\t\t\tdd {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0.25em 0;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\tdt {\n\t\t\t\t\twidth: 25%;\n\n\t\t\t\t\tclear: both;\n\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t\tdd {\n\t\t\t\t\twidth: 75%;\n\n\t\t\t\t\t+ dd {\n\t\t\t\t\t\tmargin-left: 25%;\n\n\t\t\t\t\t\tclear: both;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&::before,\n\t\t\t&::after {\n\t\t\t\theight: 20px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\n\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\tborder-radius: 100%;\n\n\t\t\t\tbox-shadow: 0 0 12px rgba(0, 0, 0, 0.3);\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\ttop: -21px;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tbottom: -23px;\n\t\t\t}\n\n\t\t\t> :first-child,\n\t\t\t> :last-child {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t}\n\n\t\tp,\n\t\tpre {\n\t\t\tpadding: 10px 20px 20px;\n\n\t\t\tfont-size: 13px;\n\n\t\t\t+ p,\n\t\t\t+ pre {\n\t\t\t\tpadding-top: 0;\n\t\t\t}\n\t\t}\n\n\t\tp {}\n\n\t\tpre {\n\t\t\twidth: 100%;\n\n\t\t\tdisplay: block;\n\t\t\t-webkit-box-sizing: border-box;\n\t\t\t-moz-box-sizing: border-box;\n\t\t\tbox-sizing: border-box;\n\n\t\t\toverflow: auto;\n\n\t\t\tfont-family: \"Courier New\", Courier, monospace, mono;\n\t\t\tline-height: 1.25;\n\t\t\tfont-weight: 400;\n\t\t\twhite-space: pre;\n\n\t\t\tcode {\n\t\t\t\tfont-family: inherit;\n\t\t\t\tcolor: $twistphp-light-grey;\n\t\t\t\tfont-size: 1em;\n\n\t\t\t\tem {\n\t\t\t\t\t//font-style: normal;\n\t\t\t\t}\n\n\t\t\t\tspan.highlight {\n\t\t\t\t\tfont-style: normal;\n\n\t\t\t\t\tbackground-color: $highlight;\n\n\t\t\t\t\tbox-shadow: 0 0 0 1px $highlight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.pre-line {\n\t\t\t\twhite-space: pre-line;\n\t\t\t}\n\t\t}\n\n\t\t.twist-debug-fileupload-preview {\n\t\t\twidth: 128px;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: -142px;\n\n\t\t\timg {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t\t#close-twist-debug-details {\n\t\t\twidth: 25px;\n\t\t\theight: 25px;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 10px;\n\n\t\t\tbackground: none;\n\n\t\t\tborder: none;\n\n\t\t\tz-index: 2;\n\n\t\t\t&::before,\n\t\t\t&::after {\n\t\t\t\theight: 1px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 12px;\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\n\t\t\t\tbackground-color: $border;\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\ttransform: rotate(45deg);\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\ttransform: rotate(135deg);\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\t&::before,\n\t\t\t\t&::after {\n\t\t\t\t\tbackground-color: #FFF;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t.twist-debug-box-red {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $red;\n\t\t}\n\t}\n\n\t.twist-debug-box-yellow {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $yellow;\n\t\t}\n\t}\n\n\t.twist-debug-box-blue {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $blue;\n\t\t}\n\t}\n\n\t.twist-debug-box-green {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $green;\n\t\t}\n\t}\n\n\t#twist-debug-messages {}\n\n\t#twist-debug-timeline {}\n\n\t\t#twist-debug-timeline-chart {\n\t\t\tpadding: 0 10px 55px 11px;\n\t\t\tmargin-right: -10px;\n\t\t\tmargin-left: -10px;\n\n\t\t\tposition: relative;\n\n\t\t\toverflow: hidden;\n\n\t\t\t&::before {\n\t\t\t\theight: 50px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 10px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 10px;\n\n\t\t\t\tbackground-color: $twistphp-green;\n\n\t\t\t\tbox-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\tul {\n\t\t\t\tcounter-reset: eventorder;\n\t\t\t}\n\n\t\t\t\tli {\n\t\t\t\t\twidth: 19px;\n\t\t\t\t\theight: 19px;\n\t\t\t\t\tmargin-bottom: 3px;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tleft: -10px;\n\n\t\t\t\t\toverflow: visible;\n\n\t\t\t\t\ttext-align: right;\n\t\t\t\t\tline-height: 19px;\n\t\t\t\t\twhite-space: nowrap;\n\n\t\t\t\t\tcounter-increment: eventorder;\n\n\t\t\t\t\t&::before {\n\t\t\t\t\t\twidth: 13px;\n\t\t\t\t\t\tpadding-right: 3px;\n\t\t\t\t\t\tpadding-left: 3px;\n\n\t\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t\tposition: relative;\n\n\t\t\t\t\t\ttext-align: center;\n\n\t\t\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\t\t\tborder-radius: 3px;\n\n\t\t\t\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\t\t\tz-index: 2;\n\n\t\t\t\t\t\tcontent: counter(eventorder,upper-alpha);\n\t\t\t\t\t}\n\n\t\t\t\t\t&::after {\n\t\t\t\t\t\theight: 1000px;\n\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tright: 9px;\n\t\t\t\t\t\ttop: 10px;\n\n\t\t\t\t\t\tborder-right: 1px $twistphp-black solid;\n\n\t\t\t\t\t\tz-index: 1;\n\n\t\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\n\t\t#twist-debug-timeline-table {}\n\n\t\t#twist-debug-timeline-memory {\n\t\t\tdl {\n\t\t\t\toverflow: hidden;\n\n\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\tborder-radius: 3px;\n\n\t\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\tdt,\n\t\t\t\tdd {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0.5em 0.75em;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\n\t\t\t\tdt {\n\n\t\t\t\t\tcolor: #FFF;\n\t\t\t\t\tfont-weight: bold;\n\n\t\t\t\t\tbackground-color: $twistphp-dark-grey;\n\t\t\t\t}\n\n\t\t\t\tdd {}\n\t\t\t}\n\t\t}\n\n\t#twist-debug-database {}\n\n\t#twist-debug-ajax {}\n\n\t#twist-debug-fileupload {\n\t\t.twist-debug-box,\n\t\t[class^=\"twist-debug-box-\"],\n\t\t[class*=\" twist-debug-box-\"] {\n\t\t\tmargin-left: 142px;\n\t\t}\n\t}\n\n\t#twist-debug-route {}\n}","$twistphp-green: #539F00;\n$twistphp-black: #212121;\n$twistphp-dark-grey: #424242;\n$twistphp-grey: #727272;\n$twistphp-light-grey: #BDBDBD;\n$twistphp-really-light-grey: #EEE;\n\n$breakpoints: (\n\t\"mobile\": 320px,\n\t\"tablet\": 600px,\n\t\"desktop\": 800px\n);\n\n@function breakpoint($key) {\n\t@if map-has-key($breakpoints, $key) {\n\t\t@return map-get($breakpoints, $key);\n\t}\n\n\t@warn \"Unknown '#{$key}' in $breakpoints.\";\n\n\t@return null;\n}\n\n@mixin responsive-mobile($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (max-device-width: breakpoint(tablet) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (max-width: breakpoint(tablet) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-tablet($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (min-device-width: breakpoint(tablet)) and (max-device-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (min-width: breakpoint(tablet)) and (max-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-tablet-mobile($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (max-device-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (max-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-desktop($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (min-device-width: breakpoint(desktop)) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (min-width: breakpoint(desktop)) {\n\t\t\t@content;\n\t\t}\n\t}\n}"],"mappings":"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","names":[],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"file":"twistdebug.min.css","sources":["twistdebug.scss","../../_common.scss"],"sourcesContent":["/*!\n * TwistPHP - An open source PHP MVC framework built from the ground up.\n * Copyright (C) 2016 Shadow Technologies Ltd.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html GPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP Debug\n * --------------\n */\n\n// ===================================================== IMPORTS =====================================================\n@import \"../../_common\";\n\n// ===================================================== VARIABLES =====================================================\n$bar-height: 30px;\n$bar-block-height: 30px;\n$bar-logo-width: 32px;\n$bar-fade-width: 10px;\n$highlight: #FFF59D;\n$bar-background-hover: #616161;\n$bar-border: #757575;\n$subtle-text: #BDBDBD;\n$border: #E0E0E0;\n$background: #EEE;\n$red: #D32F2F;\n$red-light: #D32F2F;\n$yellow: #FBC02D;\n$green: #689F38;\n$blue: #1976D2;\n$z-index: 1337;\n\n// ===================================================== MIXINS =====================================================\n@function blackorwhite($colour) {\n\t@return if(lightness($colour) > 50, $twistphp-black, #FFF);\n}\n\n/* ===================================================== ANIMATION KEYFRAMES ===================================================== */\n// https://github.com/daneden/animate.css\n\n/* ===================================================== GENERIC ===================================================== */\n#twist-debug,\n#twist-debug-details {\n\tfont-size: 13px;\n\tfont-family: \"Helvetica Neue Light\", \"Helvetica Neue\", HelveticaNeue, Helvetica, \"Open Sans\", Arial, sans-serif;\n\tfont-weight: 400;\n\tline-height: 1;\n\tfont-style: normal;\n\n\t* {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tcolor: inherit;\n\t\ttext-align: inherit;\n\t\tdirection: inherit;\n\t\ttext-size-adjust: none;\n\t\t-moz-text-size-adjust: none;\n\t\t-webkit-text-size-adjust: none;\n\t\t-ms-text-size-adjust: none;\n\t\ttext-rendering: optimizeLegibility;\n\t}\n\n\th1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, a, span, em, strong, pre {\n\t\tcolor: inherit;\n\t\tline-height: inherit;\n\t}\n\n\th1, h2, h3, h4, h5, h6, strong {\n\t\tfont-weight: 700;\n\t}\n\n\tul {\n\t\tlist-style: disc outside;\n\t}\n\n\tol {\n\t\tlist-style: decimal outside;\n\t}\n\n\tsub,\n\tsup,\n\tsmall {\n\t\tfont-size: smaller;\n\t}\n\n\tul ul,\n\tol ul,\n\tul ol,\n\tol ol {\n\t\tfont-size: 1em;\n\t}\n\n\timg {\n\t\tdisplay: inline-block;\n\t}\n\n\ta img {\n\t\tborder: none;\n\t}\n\n\tinput,\n\tbutton {\n\t\t-webkit-font-smoothing: antialiased;\n\t}\n\n\t.twist-debug-hidden {\n\t\tdisplay: none !important;\n\t}\n}\n\n/* ===================================================== DEBUG BAR ===================================================== */\n#twist-debug {\n\theight: $bar-height;\n\tpadding: 0 #{$bar-logo-width + 15} 0 0;\n\n\tdisplay: none;\n\n\tposition: fixed;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\n\toverflow: visible;\n\n\tbackground-color: $twistphp-dark-grey;\n\n\tz-index: $z-index + 1;\n\n\t&::after {\n\t\twidth: $bar-fade-width;\n\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: #{$bar-logo-width + 15};\n\t\tbottom: 0;\n\n\t\tbackground: $twistphp-dark-grey;\n\t\tbackground: -moz-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -webkit-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -o-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: -ms-linear-gradient(0deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\t\tbackground: linear-gradient(90deg, rgba($twistphp-dark-grey, 0) 0%, rgba($twistphp-dark-grey, 1) 100%);\n\n\t\tcontent: \"\";\n\t}\n\n\t&.ready {\n\t\tdisplay: block;\n\t}\n}\n\n\t#twist-debug-icon {\n\t\tdisplay: block;\n\n\t\tposition: absolute;\n\t\tright: 10px;\n\t\tbottom: 5px;\n\n\t\t-webkit-transition: padding ease 400ms;\n\t\ttransition: padding ease 400ms;\n\n\t\t&:hover {\n\t\t\tpadding-bottom: 3px;\n\n\t\t\t-webkit-transition: padding ease 50ms;\n\t\t\ttransition: padding ease 50ms;\n\t\t}\n\n\t\timg {\n\t\t\twidth: $bar-logo-width;\n\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t#twist-debug-blocks {\n\t\twidth: 100%;\n\n\t\toverflow: auto;\n\n\t\tlist-style: none;\n\t\twhite-space: nowrap;\n\n\t\t> li {\n\t\t\tdisplay: inline-block;\n\n\t\t\tfont-size: 12px;\n\n\t\t\t&:first-child {\n\t\t\t\tborder-right: none;\n\n\t\t\t\ta {\n\t\t\t\t\tpadding-right: (($bar-height - $bar-block-height) / 2);\n\t\t\t\t\tpadding-left: (($bar-height - $bar-block-height) / 2);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tmargin-right: $bar-fade-width;\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tpadding: 0 10px;\n\n\t\t\t\tdisplay: block;\n\n\t\t\t\tcolor: blackorwhite($twistphp-dark-grey);\n\t\t\t\tline-height: $bar-height;\n\t\t\t\ttext-decoration: none;\n\n\t\t\t\tborder-right: 1px $bar-border solid;\n\n\t\t\t\t-webkit-transition: background ease 400ms;\n\t\t\t\ttransition: background ease 400ms;\n\n\t\t\t\t\ti {\n\t\t\t\t\t\twidth: 1.3em;\n\t\t\t\t\t\tmargin-right: 5px;\n\n\t\t\t\t\t\tdisplay: inline-block;\n\n\t\t\t\t\t\tcolor: inherit;\n\t\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t\t~ i {\n\t\t\t\t\t\t\tmargin-left: 15px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground-color: $bar-background-hover;\n\n\t\t\t\t\t-webkit-transition: background ease 100ms;\n\t\t\t\t\ttransition: background ease 100ms;\n\t\t\t\t}\n\n\t\t\t\t&.current {\n\t\t\t\t\tbackground-color: $bar-background-hover;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t[data-count] {\n\t\t\t\t&::after {\n\t\t\t\t\tcontent: attr(data-count);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t[data-count=\"0\"] {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.fa-stack-2x {\n\t\t\t\ttext-shadow: 0 0 3px $twistphp-dark-grey;\n\t\t\t}\n\t\t}\n\t}\n\n\t\t\t#twist-debug-errors,\n\t\t\t#twist-debug-warnings,\n\t\t\t#twist-debug-dumps {\n\t\t\t\tmin-width: 8px;\n\t\t\t\tpadding: 0 10px;\n\n\t\t\t\tdisplay: inline-block;\n\n\t\t\t\tfont-weight: 700;\n\t\t\t\ttext-align: center;\n\t\t\t\tline-height: $bar-block-height;\n\n\t\t\t\t//border-radius: 2px;\n\n\t\t\t\t//transform: translate3d(-3000px, 0, 0);\n\t\t\t}\n\n\t\t\t#twist-debug-errors {\n\t\t\t\tbackground-color: $red;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 0);\n\t\t\t}\n\n\t\t\t#twist-debug-warnings {\n\t\t\t\tbackground-color: $yellow;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 100ms);\n\t\t\t}\n\n\t\t\t#twist-debug-dumps {\n\t\t\t\tbackground-color: $blue;\n\t\t\t\t//@include animate(bounceInLeft, 1s, 200ms);\n\t\t\t}\n\n/* ===================================================== DETAILS WINDOW ===================================================== */\n#twist-debug-details {\n\tposition: fixed;\n\ttop: 100%;\n\tright: 0;\n\tbottom: $bar-height;\n\tleft: 0;\n\n\tbackground-color: $background;\n\n\tbox-shadow: 0 0 20px rgba(0, 0, 0, 0.5);\n\n\t-webkit-transition: top ease 800ms;\n\ttransition: top ease 800ms;\n\n\tz-index: $z-index;\n\n\t&.show {\n\t\ttop: 0;\n\t}\n\n\t> div {\n\t\tdisplay: none;\n\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\n\t\tz-index: 1;\n\n\t\th6 {\n\t\t\tpadding: 0 0 10px;\n\n\t\t\tfont-size: 16px;\n\t\t}\n\n\t\t> h6 {\n\t\t\theight: 25px;\n\t\t\tpadding: 10px 65px 10px 20px;\n\n\t\t\tcolor: #FFF;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 25px;\n\n\t\t\tbackground-color: $twistphp-dark-grey;\n\n\t\t\tz-index: 2;\n\t\t}\n\n\t\ttable {\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: #FFF;\n\n\t\t\tborder-collapse: collapse;\n\n\t\t\ttbody {\n\t\t\t\ttr {\n\t\t\t\t\tth {\n\t\t\t\t\t\twidth: 1px;\n\t\t\t\t\t}\n\n\t\t\t\t\t+ tr {\n\t\t\t\t\t\ttd {\n\t\t\t\t\t\t\tborder-top: 1px $border solid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t&.highlight {\n\t\t\t\t\t\ttd {\n\t\t\t\t\t\t\tbackground-color: $highlight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tcolor: #FFF;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\tbackground-color: $twistphp-dark-grey;\n\t\t\t}\n\n\t\t\tth,\n\t\t\ttd {\n\t\t\t\tpadding: 0.5em 0.75em;\n\n\t\t\t\ttext-align: left;\n\t\t\t}\n\n\t\t\t&.index-me {\n\t\t\t\ttbody {\n\t\t\t\t\tcounter-reset: eventorder;\n\n\t\t\t\t\ttr {\n\t\t\t\t\t\tcounter-increment: eventorder;\n\n\t\t\t\t\t\tth {\n\t\t\t\t\t\t\t&::before {\n\t\t\t\t\t\t\t\tcontent: counter(eventorder,upper-alpha);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.table-wrapper {\n\t\t\tmargin-bottom: 20px;\n\n\t\t\toverflow: auto;\n\n\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\t\t}\n\n\t\tdt {\n\t\t\tmargin-top: 0.5em;\n\t\t\tpadding-top: 0.5em;\n\n\t\t\t&:first-child {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.twist-debug-column-wrapper {\n\t\tposition: absolute;\n\t\ttop: 45px;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\n\t\toverflow: auto;\n\n\t\tz-index: 1;\n\t}\n\n\t[class^=\"twist-debug-column-\"],\n\t[class*=\" twist-debug-column-\"] {\n\t\tpadding: 10px;\n\n\t\t-webkit-box-sizing: border-box;\n\t\t-moz-box-sizing: border-box;\n\t\tbox-sizing: border-box;\n\n\t\tfloat: left;\n\t}\n\n\t.twist-debug-column-100 {\n\t\twidth: 100%;\n\n\t\tclear: both;\n\t}\n\n\t.twist-debug-column-50 {\n\t\twidth: 50%;\n\t}\n\n\t.twist-debug-column-33 {\n\t\twidth: 33.33333%;\n\t}\n\n\t.twist-debug-column-25 {\n\t\twidth: 25%;\n\t}\n\n\t.twist-debug-column-clear {\n\t\tpadding: 0;\n\n\t\tdisplay: block;\n\n\t\tfloat: none;\n\t\tclear: both;\n\t}\n\n\t.twist-debug-box,\n\t[class^=\"twist-debug-box-\"],\n\t[class*=\" twist-debug-box-\"] {\n\t\tmargin-left: 4px;\n\n\t\tposition: relative;\n\n\t\toverflow: visible;\n\n\t\tcolor: $twistphp-black;\n\n\t\tbackground-color: #FFF;\n\n\t\tborder: 1px $border solid;\n\t\tborder-left-width: 0;\n\t\tborder-radius: 0 3px 3px 0;\n\n\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t&[data-title] {\n\t\t\tpadding-top: 10px;\n\n\t\t\tborder-top-width: 0;\n\n\t\t\t> :first-child {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\tmargin-top: -5px;\n\t\t\t\tmargin-right: -1px;\n\t\t\t\tpadding: 0 6px;\n\n\t\t\t\tdisplay: block;\n\n\t\t\t\tfloat: right;\n\n\t\t\t\t//color: #FFF;\n\t\t\t\tcolor: $subtle-text;\n\t\t\t\tfont-size: 12px;\n\t\t\t\ttext-align: right;\n\t\t\t\t//font-style: italic;\n\n\t\t\t\t//background-color: $bar-border;\n\n\t\t\t\tcontent: attr(data-title);\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t}\n\n\t\t&[data-title=\"\"] {\n\t\t\t&::before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t&::after {\n\t\t\twidth: 4px;\n\n\t\t\tposition: absolute;\n\t\t\ttop: -1px;\n\t\t\tright: 100%;\n\t\t\tbottom: -1px;\n\n\t\t\tbackground-color: $bar-border;\n\n\t\t\tcontent: \"\";\n\t\t}\n\n\t\t> a.twist-debug-more-details {\n\t\t\theight: 20px;\n\n\t\t\tdisplay: block;\n\n\t\t\tcolor: $subtle-text;\n\t\t\tfont-size: 20px;\n\t\t\ttext-decoration: none;\n\t\t\ttext-align: center;\n\t\t\tline-height: 1;\n\n\t\t\t//background-color: $background;\n\n\t\t\tborder-top: 1px $background solid;\n\n\t\t\t/*-webkit-transition: line-height ease 400ms;\n\t\t\ttransition: line-height ease 400ms;\n\n\t\t\t&:hover {\n\t\t\t\tline-height: 2;\n\n\t\t\t\t-webkit-transition: line-height ease 100ms;\n\t\t\t\ttransition: line-height ease 100ms;\n\t\t\t}*/\n\n\t\t\t&:hover {\n\t\t\t\tcolor: $twistphp-black;\n\t\t\t}\n\t\t}\n\n\n\t\t+ .twist-debug-box,\n\t\t+ [class^=\"twist-debug-box-\"],\n\t\t+ [class*=\" twist-debug-box-\"] {\n\t\t\tmargin-top: 20px;\n\t\t}\n\n\t\tdiv.twist-debug-more-details {\n\t\t\tpadding: 20px 30px;\n\n\t\t\tdisplay: none;\n\n\t\t\tposition: relative;\n\n\t\t\toverflow: hidden;\n\n\t\t\t//background-color: $background;\n\n\t\t\tpre {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\tdl {\n\t\t\t\toverflow: auto;\n\n\t\t\t\t&:after {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 0;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tclear: both;\n\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t}\n\n\t\t\t\tdt,\n\t\t\t\tdd {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0.25em 0;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\tdt {\n\t\t\t\t\twidth: 25%;\n\n\t\t\t\t\tclear: both;\n\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t\tdd {\n\t\t\t\t\twidth: 75%;\n\n\t\t\t\t\t+ dd {\n\t\t\t\t\t\tmargin-left: 25%;\n\n\t\t\t\t\t\tclear: both;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&::before,\n\t\t\t&::after {\n\t\t\t\theight: 20px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\n\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\tborder-radius: 100%;\n\n\t\t\t\tbox-shadow: 0 0 12px rgba(0, 0, 0, 0.3);\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\ttop: -21px;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tbottom: -23px;\n\t\t\t}\n\n\t\t\t> :first-child,\n\t\t\t> :last-child {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t}\n\n\t\tp,\n\t\tpre {\n\t\t\tpadding: 10px 20px 20px;\n\n\t\t\tfont-size: 13px;\n\n\t\t\t+ p,\n\t\t\t+ pre {\n\t\t\t\tpadding-top: 0;\n\t\t\t}\n\t\t}\n\n\t\tp {}\n\n\t\tpre {\n\t\t\twidth: 100%;\n\n\t\t\tdisplay: block;\n\t\t\t-webkit-box-sizing: border-box;\n\t\t\t-moz-box-sizing: border-box;\n\t\t\tbox-sizing: border-box;\n\n\t\t\toverflow: auto;\n\n\t\t\tfont-family: \"Courier New\", Courier, monospace, mono;\n\t\t\tline-height: 1.25;\n\t\t\tfont-weight: 400;\n\t\t\twhite-space: pre;\n\n\t\t\tcode {\n\t\t\t\tfont-family: inherit;\n\t\t\t\tcolor: $twistphp-light-grey;\n\t\t\t\tfont-size: 1em;\n\n\t\t\t\tem {\n\t\t\t\t\t//font-style: normal;\n\t\t\t\t}\n\n\t\t\t\tspan.highlight {\n\t\t\t\t\tfont-style: normal;\n\n\t\t\t\t\tbackground-color: $highlight;\n\n\t\t\t\t\tbox-shadow: 0 0 0 1px $highlight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.pre-line {\n\t\t\t\twhite-space: pre-line;\n\t\t\t}\n\t\t}\n\n\t\t.twist-debug-fileupload-preview {\n\t\t\twidth: 128px;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: -142px;\n\n\t\t\timg {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t\t#close-twist-debug-details {\n\t\t\twidth: 25px;\n\t\t\theight: 25px;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 10px;\n\n\t\t\tbackground: none;\n\n\t\t\tborder: none;\n\n\t\t\tz-index: 2;\n\n\t\t\t&::before,\n\t\t\t&::after {\n\t\t\t\theight: 1px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 12px;\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\n\t\t\t\tbackground-color: $border;\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\t&::before {\n\t\t\t\ttransform: rotate(45deg);\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\ttransform: rotate(135deg);\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\t&::before,\n\t\t\t\t&::after {\n\t\t\t\t\tbackground-color: #FFF;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t.twist-debug-box-red {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $red;\n\t\t}\n\t}\n\n\t.twist-debug-box-yellow {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $yellow;\n\t\t}\n\t}\n\n\t.twist-debug-box-blue {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $blue;\n\t\t}\n\t}\n\n\t.twist-debug-box-green {\n\t\t//&[data-title]::before,\n\t\t&::after {\n\t\t\tbackground-color: $green;\n\t\t}\n\t}\n\n\t#twist-debug-messages {}\n\n\t#twist-debug-timeline {}\n\n\t\t#twist-debug-timeline-chart {\n\t\t\tpadding: 0 10px 55px 11px;\n\t\t\tmargin-right: -10px;\n\t\t\tmargin-left: -10px;\n\n\t\t\tposition: relative;\n\n\t\t\toverflow: hidden;\n\n\t\t\t&::before {\n\t\t\t\theight: 50px;\n\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 10px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 10px;\n\n\t\t\t\tbackground-color: $twistphp-green;\n\n\t\t\t\tbox-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\tcontent: \"\";\n\t\t\t}\n\n\t\t\tul {\n\t\t\t\tcounter-reset: eventorder;\n\t\t\t}\n\n\t\t\t\tli {\n\t\t\t\t\twidth: 19px;\n\t\t\t\t\theight: 19px;\n\t\t\t\t\tmargin-bottom: 3px;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tleft: -10px;\n\n\t\t\t\t\toverflow: visible;\n\n\t\t\t\t\ttext-align: right;\n\t\t\t\t\tline-height: 19px;\n\t\t\t\t\twhite-space: nowrap;\n\n\t\t\t\t\tcounter-increment: eventorder;\n\n\t\t\t\t\t&::before {\n\t\t\t\t\t\twidth: 13px;\n\t\t\t\t\t\tpadding-right: 3px;\n\t\t\t\t\t\tpadding-left: 3px;\n\n\t\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t\tposition: relative;\n\n\t\t\t\t\t\ttext-align: center;\n\n\t\t\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\t\t\tborder-radius: 3px;\n\n\t\t\t\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\t\t\tz-index: 2;\n\n\t\t\t\t\t\tcontent: counter(eventorder,upper-alpha);\n\t\t\t\t\t}\n\n\t\t\t\t\t&::after {\n\t\t\t\t\t\theight: 1000px;\n\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tright: 9px;\n\t\t\t\t\t\ttop: 10px;\n\n\t\t\t\t\t\tborder-right: 1px $twistphp-black solid;\n\n\t\t\t\t\t\tz-index: 1;\n\n\t\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\n\t\t#twist-debug-timeline-table {}\n\n\t\t#twist-debug-timeline-memory {\n\t\t\tdl {\n\t\t\t\toverflow: hidden;\n\n\t\t\t\tbackground-color: #FFF;\n\n\t\t\t\tborder-radius: 3px;\n\n\t\t\t\tbox-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n\n\t\t\t\tdt,\n\t\t\t\tdd {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0.5em 0.75em;\n\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\n\t\t\t\tdt {\n\n\t\t\t\t\tcolor: #FFF;\n\t\t\t\t\tfont-weight: bold;\n\n\t\t\t\t\tbackground-color: $twistphp-dark-grey;\n\t\t\t\t}\n\n\t\t\t\tdd {}\n\t\t\t}\n\t\t}\n\n\t#twist-debug-database {}\n\n\t#twist-debug-ajax {}\n\n\t#twist-debug-fileupload {\n\t\t.twist-debug-box,\n\t\t[class^=\"twist-debug-box-\"],\n\t\t[class*=\" twist-debug-box-\"] {\n\t\t\tmargin-left: 142px;\n\t\t}\n\t}\n\n\t#twist-debug-route {}\n}","$twistphp-green: #539F00;\n$twistphp-black: #212121;\n$twistphp-dark-grey: #424242;\n$twistphp-grey: #727272;\n$twistphp-light-grey: #BDBDBD;\n$twistphp-really-light-grey: #EEE;\n\n$breakpoints: (\n\t\"mobile\": 320px,\n\t\"tablet\": 600px,\n\t\"desktop\": 800px\n);\n\n@function breakpoint($key) {\n\t@if map-has-key($breakpoints, $key) {\n\t\t@return map-get($breakpoints, $key);\n\t}\n\n\t@warn \"Unknown '#{$key}' in $breakpoints.\";\n\n\t@return null;\n}\n\n@mixin responsive-mobile($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (max-device-width: breakpoint(tablet) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (max-width: breakpoint(tablet) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-tablet($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (min-device-width: breakpoint(tablet)) and (max-device-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (min-width: breakpoint(tablet)) and (max-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-tablet-mobile($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (max-device-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (max-width: breakpoint(desktop) - 1) {\n\t\t\t@content;\n\t\t}\n\t}\n}\n\n@mixin responsive-desktop($deviceWidth: false) {\n\t@if $deviceWidth == true {\n\t\t@media (min-device-width: breakpoint(desktop)) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@media (min-width: breakpoint(desktop)) {\n\t\t\t@content;\n\t\t}\n\t}\n}"],"mappings":"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","names":[],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js index 6383f5ac..c31d4477 100755 --- a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js +++ b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js @@ -18,10 +18,6 @@ * @author Shadow Technologies Ltd. * @license https://www.gnu.org/licenses/gpl.html GPL License * @link https://twistphp.com - * - * -------------- - * TwistPHP File Upload - * -------------- */ ( @@ -40,6 +36,35 @@ )( this, function() { + /** + * The file uploader for TwistPHP + * @param {string} strInputID The ID of the input element + * @param {string} strUri The URI to post files to + * @param {Object} objSettings Settings + * @param {boolean} [objSettings.abortable=true] If true, allow the uploads to be aborted + * @param {boolean} [objSettings.counter=true] If true, show a counter for the files + * @param {boolean} [objSettings.debug=false] If true, show console output + * @param {string} [objSettings.dragdrop=null] The ID of the element which can act as a drop area + * @param {string} [objSettings.dropableclass='twistupload-dropable'] The class to add to the drop area when items can be dropped on it + * @param {string} [objSettings.hoverclass='twistupload-hover'] The class to add to the drop area when items are dragged over it + * @param {string} [objSettings.invalidtypemessage='This file type is not permitted'] The error message to show when an invalid file type is selected + * @param {function} [objSettings.onabort=function() {}] A function to execute when the upload is aborted + * @param {function} [objSettings.onclear=function() {}] A function to execute when the queue is cleared + * @param {function} [objSettings.oncompletefile=function() {}] A function to execute when a file is finished uploading + * @param {function} [objSettings.oncompletequeue=function() {}] A function to execute when the queue is finished uploading + * @param {function} [objSettings.onerror=function() {}] A function to execute when an error occurs + * @param {function} [objSettings.oninvalidtype=function() {}] A function to execute when an invalid type is selected + * @param {function} [objSettings.onprogress=function() {}] A function to execute as the queue is uploading + * @param {function} [objSettings.onstart=function() {}] A function to execute when the upload starts + * @param {number} [objSettings.previewsize=128] The size of the thumbnail to display + * @param {boolean} [objSettings.previewsquare=true] If true, use square thumbnails + * @returns {boolean|null} + * @alias twistfileupload + * @constructor + * @author Shadow Technologies Ltd. + * @version 1.0.0 + * @license GPL-3.0 + */ var TwistUploader = function( strInputID, strUri, objSettings ) { var debug = true, log = function( mxdData, strType, blOverride ) { @@ -95,10 +120,28 @@ var thisUploader = this; - thisUploader.acceptExtentions = []; - thisUploader.acceptRaw = []; - thisUploader.acceptTypes = []; - thisUploader.addRemoveFileListener = function() { + /** + * An array of allowed file extensions + * @type {string[]} + */ + this.acceptExtentions = []; + + /** + * An array of all the raw allowed types and extensions + * @type {string[]} + */ + this.acceptRaw = []; + + /** + * An array of allowed file types + * @type {string[]} + */ + this.acceptTypes = []; + + /** + * Add a listener to the remove file button + */ + this.addRemoveFileListener = function() { var funRemoveFile = function( intUploadedFileIndex ) { return function() { console.log( 'Remove' ); @@ -113,11 +156,25 @@ domRemoveButton.addEventListener( 'click', ( funRemoveFile )( intUploadedFile ) ); } }; - thisUploader.created = ( new Date() ).getTime(); - thisUploader.cancelUpload = function() { + + /** + * The time that the class was initiated + * @type {number} + * @deprecated + */ + this.created = ( new Date() ).getTime(); + + /** + * Cancel the current upload + */ + this.cancelUpload = function() { thisUploader.request.abort(); }; - thisUploader.clearInput = function() { + + /** + * Clear the file input + */ + this.clearInput = function() { thisUploader.domInput.value = ''; if( thisUploader.domInput.value ) { @@ -128,19 +185,83 @@ thisUploader.domPseudo.value = ''; thisUploader.settings.onclear(); }; - thisUploader.domCancelUpload = document.getElementById( strInputID + '-cancel' ); - thisUploader.domCancelUploadDisplay = null; - thisUploader.domCount = document.getElementById( strInputID + '-count' ); - thisUploader.domCountWrapper = document.getElementById( strInputID + '-count-wrapper' ); - thisUploader.domCountWrapperDisplay = null; - thisUploader.domCountTotal = document.getElementById( strInputID + '-total' ); - thisUploader.domInput = document.getElementById( strInputID ); - thisUploader.domInputDisplay = null; - thisUploader.domList = document.getElementById( strInputID + '-list' ); - thisUploader.domProgress = document.getElementById( strInputID + '-progress' ); - thisUploader.domProgressWrapper = document.getElementById( strInputID + '-progress-wrapper' ); - thisUploader.domPseudo = document.getElementById( strInputID + '-pseudo' ); - thisUploader.hideProgress = function() { + + /** + * The cancel upload button + * @type {Element} + */ + this.domCancelUpload = document.getElementById( strInputID + '-cancel' ); + + /** + * The display property of the cancel upload button + * @type {string|null} + */ + this.domCancelUploadDisplay = null; + + /** + * The upload count element + * @type {Element} + */ + this.domCount = document.getElementById( strInputID + '-count' ); + + /** + * The upload count wrapper element + * @type {Element} + */ + this.domCountWrapper = document.getElementById( strInputID + '-count-wrapper' ); + + /** + * The display property of the upload count element + * @type {null} + */ + this.domCountWrapperDisplay = null; + + /** + * The total file count element + * @type {Element} + */ + this.domCountTotal = document.getElementById( strInputID + '-total' ); + + /** + * The file input element + * @type {Element} + */ + this.domInput = document.getElementById( strInputID ); + + /** + * The display property of the file input element + * @type {null} + */ + this.domInputDisplay = null; + + /** + * The list of uploaded files element + * @type {Element} + */ + this.domList = document.getElementById( strInputID + '-list' ); + + /** + * The upload progress element + * @type {Element} + */ + this.domProgress = document.getElementById( strInputID + '-progress' ); + + /** + * The upload progress wrapper element + * @type {Element} + */ + this.domProgressWrapper = document.getElementById( strInputID + '-progress-wrapper' ); + + /** + * The pseudo element containing the CSV values that will be posted + * @type {Element} + */ + this.domPseudo = document.getElementById( strInputID + '-pseudo' ); + + /** + * Hide the upload progress bar + */ + this.hideProgress = function() { if( thisUploader.domInput ) { thisUploader.domInput.style.display = thisUploader.domInputDisplay; } @@ -153,18 +274,63 @@ thisUploader.domCancelUpload.removeEventListener( 'click', thisUploader.cancelUpload ); } }; - thisUploader.multiple = ( thisUploader.domInput && thisUploader.domInput.hasAttribute( 'multiple' ) ); - thisUploader.queue = []; - thisUploader.queueCount = 0; - thisUploader.queueSize = 0; - thisUploader.queueUploadedCount = 0; - thisUploader.queueUploadedSize = 0; - thisUploader.removeFileFromListFunction = function( intFileIndex ) { + + /** + * True if the file input field has a 'multiple' attribute + * @type {boolean} + */ + this.multiple = ( thisUploader.domInput && thisUploader.domInput.hasAttribute( 'multiple' ) ) || false; + + /** + * The queue of files still to be uploaded + * @type {Array} + */ + this.queue = []; + + /** + * The number of files still in the queue + * @type {number} + */ + this.queueCount = 0; + + /** + * The size (in bytes) of the files still in the queue + * @type {number} + */ + this.queueSize = 0; + + /** + * The number of files uploaded + * @type {number} + */ + this.queueUploadedCount = 0; + + /** + * The size (in bytes) of the files uploaded + * @type {number} + */ + this.queueUploadedSize = 0; + + /** + * Remove an uploaded file from the list + * @param intFileIndex + */ + this.removeFileFromListFunction = function( intFileIndex ) { thisUploader.uploaded.splice( intFileIndex, 1 ); thisUploader.updateUploadedList(); }; - thisUploader.request = new XMLHttpRequest(); - thisUploader.settings = { + + /** + * The XML HTTP request object + * @type {XMLHttpRequest} + */ + this.request = new XMLHttpRequest(); + + /** + * The default settings object + * @type {{abortable: boolean, counter: boolean, debug: boolean, dragdrop: null, dropableclass: string, hoverclass: string, invalidtypemessage: string, onabort: twistfileupload.settings.onabort, onclear: twistfileupload.settings.onclear, oncompletefile: twistfileupload.settings.oncompletefile, oncompletequeue: twistfileupload.settings.oncompletequeue, onerror: twistfileupload.settings.onerror, oninvalidtype: twistfileupload.settings.oninvalidtype, onprogress: twistfileupload.settings.onprogress, onstart: twistfileupload.settings.onstart, previewsize: number, previewsquare: boolean}} + */ + this.settings = { abortable: true, counter: true, debug: false, @@ -183,7 +349,11 @@ previewsize: 128, previewsquare: true }; - thisUploader.showProgress = function() { + + /** + * Show the progress upload bar + */ + this.showProgress = function() { thisUploader.domInput.style.display = 'none'; if( thisUploader.domProgressWrapper ) { @@ -194,9 +364,23 @@ thisUploader.domCancelUpload.addEventListener( 'click', thisUploader.cancelUpload ); } }; - thisUploader.supported = false; - thisUploader.uid = strInputID; - thisUploader.updateUploadedList = function() { + + /** + * @deprecated + * @type {boolean} + */ + this.supported = false; + + /** + * The UID of the uploader + * @type {string} + */ + this.uid = strInputID; + + /** + * Update the list of uploaded files + */ + this.updateUploadedList = function() { var strListHTML = '', arrUploadedFormValues = []; @@ -221,7 +405,7 @@ for( var intFileDetail in arrFileDetails ) { var strFileDetail = arrFileDetails[intFileDetail], - strProperty = objUploadedFile[strFileDetail]; + strProperty; if( strFileDetail.indexOf( '/' ) !== -1 ) { var arrDelve = strFileDetail.split( '/' ), @@ -234,6 +418,8 @@ } strProperty = objToDelve; + } else { + strProperty = objUploadedFile[strFileDetail] || null; } strFileDetails += '
  • ' + strFileDetail.replace( /[\/_]/g, ' ' ) + ' :' + strProperty + '
  • '; @@ -247,7 +433,13 @@ thisUploader.addRemoveFileListener(); }; - thisUploader.upload = function( e, arrFiles ) { + + /** + * Do the upload with the selected files + * @param e The upload event + * @param arrFiles The files selected + */ + this.upload = function( e, arrFiles ) { try { if( e ) { var resFiles = ( !arrFiles ? ( e.target || e.srcElement ).files : arrFiles ); @@ -513,8 +705,18 @@ log( err, 'error' ); } }; - thisUploader.uploaded = []; - thisUploader.uri = '/' + strUri.replace( /^\//, '' ).replace( /\/$/, '' ); + + /** + * An array of uploaded files + * @type {Object[]} + */ + this.uploaded = []; + + /** + * The URI to upload files to + * @type {string} + */ + this.uri = '/' + strUri.replace( /^\//, '' ).replace( /\/$/, '' ); for( var strSetting in objSettings ) { thisUploader.settings[strSetting] = objSettings[strSetting]; @@ -604,6 +806,8 @@ return null; } + + return true; }; return function( strInputID, strUri, objSettings ) { diff --git a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js index e98c4ab0..e1702a9c 100755 --- a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js +++ b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js @@ -18,9 +18,34 @@ * @author Shadow Technologies Ltd. * @license https://www.gnu.org/licenses/gpl.html GPL License * @link https://twistphp.com - * - * -------------- - * TwistPHP File Upload - * -------------- */ -!function(e,t){"function"==typeof define&&define.amd?define("twistfileupload",[],t):"object"==typeof module&&module.exports?module.exports=t():e.twistfileupload=t()}(this,function(){var e=function(e,t,o){var n=!0,u=function(e,t,o){(n||o===!0)&&window.console&&(window.console[t]?window.console[t](e):window.console.log&&console.log(e))},s=function(e,t){return-1!==e.className.indexOf(t)},r=function(e,t){s(e,t)||(e.className+=" "+t)},a=function(e,t){s(e,t)&&(e.className=e.className.replace(new RegExp("^"+t+"$","g"),"").replace(new RegExp("^"+t+" ","g"),"").replace(new RegExp(" "+t+"$","g"),"").replace(new RegExp(" "+t+" ","g")," "))},d=function(e){for(var t=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;t[o]&&e>Math.pow(1024,o+1);)o++;return i(e/Math.pow(1024,o),o>1?2:0)+t[o]},i=function(e,t){return t="number"!=typeof t?0:t,0===t?parseInt(Math.round(e*Math.pow(10,t))/Math.pow(10,t)):parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},l="string"==typeof(new XMLHttpRequest).responseType&&"withCredentials"in new XMLHttpRequest;if(l){var p=new XMLHttpRequest;p.open("GET","/");try{p.responseType="arraybuffer"}catch(c){l=!1}}var m=this;m.acceptExtentions=[],m.acceptRaw=[],m.acceptTypes=[],m.addRemoveFileListener=function(){var t=function(e){return function(){console.log("Remove"),m.removeFileFromListFunction(e)}};for(var o in m.uploaded){var n=document.getElementById(e+"-remove-"+o);n.removeEventListener("click",t(o)),n.addEventListener("click",t(o))}},m.created=(new Date).getTime(),m.cancelUpload=function(){m.request.abort()},m.clearInput=function(){m.domInput.value="",m.domInput.value&&(m.domInput.type="text",m.domInput.type="file"),m.domPseudo.value="",m.settings.onclear()},m.domCancelUpload=document.getElementById(e+"-cancel"),m.domCancelUploadDisplay=null,m.domCount=document.getElementById(e+"-count"),m.domCountWrapper=document.getElementById(e+"-count-wrapper"),m.domCountWrapperDisplay=null,m.domCountTotal=document.getElementById(e+"-total"),m.domInput=document.getElementById(e),m.domInputDisplay=null,m.domList=document.getElementById(e+"-list"),m.domProgress=document.getElementById(e+"-progress"),m.domProgressWrapper=document.getElementById(e+"-progress-wrapper"),m.domPseudo=document.getElementById(e+"-pseudo"),m.hideProgress=function(){m.domInput&&(m.domInput.style.display=m.domInputDisplay),m.domProgressWrapper&&(m.domProgressWrapper.style.display="none"),m.domCancelUpload&&m.domCancelUpload.removeEventListener("click",m.cancelUpload)},m.multiple=m.domInput&&m.domInput.hasAttribute("multiple"),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.removeFileFromListFunction=function(e){m.uploaded.splice(e,1),m.updateUploadedList()},m.request=new XMLHttpRequest,m.settings={abortable:!0,counter:!0,debug:!1,dragdrop:null,dropableclass:"twistupload-dropable",hoverclass:"twistupload-hover",invalidtypemessage:"This file type is not permitted",onabort:function(){},onclear:function(){},oncompletefile:function(){},oncompletequeue:function(){},onerror:function(){},oninvalidtype:function(){},onprogress:function(){},onstart:function(){},previewsize:128,previewsquare:!0},m.showProgress=function(){m.domInput.style.display="none",m.domProgressWrapper&&(m.domProgressWrapper.style.display=m.domInputDisplay),m.domCancelUpload&&m.domCancelUpload.addEventListener("click",m.cancelUpload)},m.supported=!1,m.uid=e,m.updateUploadedList=function(){var t="",o=[];for(var n in m.uploaded){var u=m.uploaded[n],s=u.uri_preview,r="",a=["file/name","file/size","file_type"];o.push(u.form_value);var d="thumb-"+m.settings.previewsize;m.settings.previewsquare&&(d="square-"+d),u.support&&u.support[d]&&(s=u.support[d]);for(var i in a){var l=a[i],p=u[l];if(-1!==l.indexOf("/")){var c=l.split("/"),g=u[c[0]];c.shift();for(var f in c)g=g[c[f]];p=g}r+='
  • '+l.replace(/[\/_]/g," ")+" :"+p+"
  • "}t+='
    • '+r+'
  • '}m.domPseudo.value=o.join(","),m.domList.innerHTML=t,m.addRemoveFileListener()},m.upload=function(e,t){try{if(e){var o=t?t:(e.target||e.srcElement).files;m.queue.push.apply(m.queue,o),m.queueCount+=o.length;for(var n=0,s=o.length;s>n;n++)m.queueSize+=parseInt(o[n].size);m.domCountTotal&&(m.domCountTotal.innerText=m.queueCount),u("Added "+o.length+" files to the queue","info")}if(null===m.domCancelUploadDisplay&&(m.domCancelUploadDisplay=m.domCancelUpload.style.display||"inline-block"),null===m.domCountWrapperDisplay&&(m.domCountWrapperDisplay=m.domCountWrapper.style.display||"inline-block"),null===m.domInputDisplay&&(m.domInputDisplay=m.domInput.style.display||"inline-block"),m.queue.length){var r=m.queue[0],a=r.name,i=r.type,l=a.substr(a.lastIndexOf(".")+1).toLowerCase(),p=parseInt(r.size),c=new FileReader({blob:!0}),g=!m.acceptTypes.length&&!m.acceptExtentions.length;if(!g)for(var f in m.acceptTypes)if(new RegExp("^"+m.acceptTypes[f]+"$","gi").test(i)){g=!0;break}if(!g)for(var q in m.acceptExtentions)if(l===m.acceptExtentions[q]){g=!0;break}if(g)m.settings.onstart(r),m.showProgress(),m.domCount&&(m.domCount.innerText=m.queueUploadedCount+1),1===m.queueCount?(m.domProgress&&m.domProgress.removeAttribute("value"),m.domCountWrapper&&(m.domCountWrapper.style.display="none")):m.domCountWrapper&&(m.domCountWrapper.style.display=m.domCountWrapperDisplay),c.addEventListener("load",function(e){m.request.onreadystatechange=function(){switch(m.request.status){case 200:if(4==m.request.readyState){u("Uploaded "+a+" ("+d(p)+")"),m.queue.shift(),m.queueUploadedCount++,m.queueUploadedSize+=p;var e=JSON.parse(m.request.responseText);m.queue.length?(m.multiple?m.uploaded.push(e):m.uploaded=[e.form_value],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.upload()):(m.hideProgress(),u("Finsihed uploading "+m.queueUploadedCount+" files ("+d(m.queueUploadedSize)+")","info"),m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.clearInput(),m.multiple?m.uploaded.push(e):m.uploaded=[e],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.settings.oncompletequeue())}break;case 403:u("Permission denied","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress();break;case 404:u("Invalid function call","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress()}},m.request.onprogress=function(e){if(e.lengthComputable){if(m.domProgress){var t=Math.round(e.loaded/e.total*100);m.domProgress.value=t,u(d(e.loaded)+"/"+d(e.total)+" ("+t+"%)")}m.settings.onprogress(r,e.loaded,e.total)}},m.request.upload.onprogress=m.request.onprogress,m.request.addEventListener("load",function(){},!1),m.request.addEventListener("error",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onerror(r),u("An error occurred","error"))},!1),m.request.addEventListener("abort",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onabort(r),u("Upload aborted","warning"))},!1),m.request.open("PUT",m.uri,!0),m.request.setRequestHeader("Accept",'"text/plain; charset=iso-8859-1", "Content-Type": "text/plain; charset=iso-8859-1"'),m.request.setRequestHeader("Twist-File",a),m.request.setRequestHeader("Twist-Length",p),m.request.setRequestHeader("Twist-UID",m.uid),m.request.send(c.result)}),c.readAsArrayBuffer(r);else{var v=m.queue.shift();m.domInput.value="",m.settings.oninvalidtype(v,m.acceptTypes,m.acceptExtentions),u(a+" ("+i+") is not in the list of allowed types","warn"),m.acceptTypes.length&&u("Allowed MIME types: "+m.acceptTypes.join(", ")),m.acceptExtentions.length&&u("Allowed file extensions: "+m.acceptExtentions.join(", ")),alert(m.settings.invalidtypemessage),m.clearInput()}}}catch(y){m.hideProgress(),m.settings.onerror(m.queue[0]),m.settings.onabort(m.queue[0]),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,u(y,"error")}},m.uploaded=[],m.uri="/"+t.replace(/^\//,"").replace(/\/$/,"");for(var g in o)m.settings[g]=o[g];if(m.domPseudo&&m.domPseudo.value&&""!==m.domPseudo.value&&(m.uploaded=m.domPseudo.value.split(",")||[]),n=m.settings.debug===!0,m.domCountWrapper&&!m.settings.counter&&(m.domCountWrapper.style.display="none"),m.domCancelUpload&&!m.settings.abortable&&(m.domCancelUpload.style.display="none"),m.hideProgress(),null!==m.settings.dragdrop){var f=document.getElementById(m.settings.dragdrop);f&&(f.ondrop=function(e){e.preventDefault(),m.upload(e,e.target.files||e.dataTransfer.files),a(f,m.settings.hoverclass),a(f,m.settings.dropableclass)},f.ondragstart=function(){return r(f,m.settings.dropableclass),!1},f.ondragover=function(){return r(f,m.settings.hoverclass),!1},f.ondragleave=function(){return a(f,m.settings.hoverclass),!1},f.ondragend=function(){return a(f,m.settings.hoverclass),a(f,m.settings.dropableclass),!1})}var q=m.domInput?m.domInput.getAttribute("accept"):"";if(q){var v=q.replace(/ /g,"").split(",");if(v.length)for(var y in v)"."===v[y].substr(0,1)?m.acceptExtentions.push(v[y].substr(1).toLowerCase()):m.acceptTypes.push(v[y].replace(/\//g,"\\/").replace(/\*/g,".*")),m.acceptRaw.push(v[y])}if(!l)return m.hideProgress(),u("Your browser does not support AJAX uploading","warn",!0),null;if(!m.domInput)throw'No element exists with id="'+e+'"';m.domPseudo&&(m.domPseudo.name=m.domInput.name.replace("[]",""),m.domInput.removeAttribute("name")),m.domInput.addEventListener("change",m.upload)};return function(t,o,n){return new e(t,o,n)}}); \ No newline at end of file +!function(e,t){"function"==typeof define&&define.amd?define("twistfileupload",[],t):"object"==typeof module&&module.exports?module.exports=t():e.twistfileupload=t()}(this,function(){/** + * The file uploader for TwistPHP + * @param {string} strInputID The ID of the input element + * @param {string} strUri The URI to post files to + * @param {Object} objSettings Settings + * @param {boolean} [objSettings.abortable=true] If true, allow the uploads to be aborted + * @param {boolean} [objSettings.counter=true] If true, show a counter for the files + * @param {boolean} [objSettings.debug=false] If true, show console output + * @param {string} [objSettings.dragdrop=null] The ID of the element which can act as a drop area + * @param {string} [objSettings.dropableclass='twistupload-dropable'] The class to add to the drop area when items can be dropped on it + * @param {string} [objSettings.hoverclass='twistupload-hover'] The class to add to the drop area when items are dragged over it + * @param {string} [objSettings.invalidtypemessage='This file type is not permitted'] The error message to show when an invalid file type is selected + * @param {function} [objSettings.onabort=function() {}] A function to execute when the upload is aborted + * @param {function} [objSettings.onclear=function() {}] A function to execute when the queue is cleared + * @param {function} [objSettings.oncompletefile=function() {}] A function to execute when a file is finished uploading + * @param {function} [objSettings.oncompletequeue=function() {}] A function to execute when the queue is finished uploading + * @param {function} [objSettings.onerror=function() {}] A function to execute when an error occurs + * @param {function} [objSettings.oninvalidtype=function() {}] A function to execute when an invalid type is selected + * @param {function} [objSettings.onprogress=function() {}] A function to execute as the queue is uploading + * @param {function} [objSettings.onstart=function() {}] A function to execute when the upload starts + * @param {number} [objSettings.previewsize=128] The size of the thumbnail to display + * @param {boolean} [objSettings.previewsquare=true] If true, use square thumbnails + * @returns {boolean|null} + * @alias twistfileupload + * @constructor + * @author Shadow Technologies Ltd. + * @version 1.0.0 + * @license GPL-3.0 + */ +var e=function(e,t,o){var n=!0,s=function(e,t,o){(n||o===!0)&&window.console&&(window.console[t]?window.console[t](e):window.console.log&&console.log(e))},u=function(e,t){return-1!==e.className.indexOf(t)},r=function(e,t){u(e,t)||(e.className+=" "+t)},i=function(e,t){u(e,t)&&(e.className=e.className.replace(new RegExp("^"+t+"$","g"),"").replace(new RegExp("^"+t+" ","g"),"").replace(new RegExp(" "+t+"$","g"),"").replace(new RegExp(" "+t+" ","g")," "))},a=function(e){for(var t=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;t[o]&&e>Math.pow(1024,o+1);)o++;return d(e/Math.pow(1024,o),o>1?2:0)+t[o]},d=function(e,t){return t="number"!=typeof t?0:t,0===t?parseInt(Math.round(e*Math.pow(10,t))/Math.pow(10,t)):parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},l="string"==typeof(new XMLHttpRequest).responseType&&"withCredentials"in new XMLHttpRequest;if(l){var p=new XMLHttpRequest;p.open("GET","/");try{p.responseType="arraybuffer"}catch(c){l=!1}}var m=this;this.acceptExtentions=[],this.acceptRaw=[],this.acceptTypes=[],this.addRemoveFileListener=function(){var t=function(e){return function(){console.log("Remove"),m.removeFileFromListFunction(e)}};for(var o in m.uploaded){var n=document.getElementById(e+"-remove-"+o);n.removeEventListener("click",t(o)),n.addEventListener("click",t(o))}},this.created=(new Date).getTime(),this.cancelUpload=function(){m.request.abort()},this.clearInput=function(){m.domInput.value="",m.domInput.value&&(m.domInput.type="text",m.domInput.type="file"),m.domPseudo.value="",m.settings.onclear()},this.domCancelUpload=document.getElementById(e+"-cancel"),this.domCancelUploadDisplay=null,this.domCount=document.getElementById(e+"-count"),this.domCountWrapper=document.getElementById(e+"-count-wrapper"),this.domCountWrapperDisplay=null,this.domCountTotal=document.getElementById(e+"-total"),this.domInput=document.getElementById(e),this.domInputDisplay=null,this.domList=document.getElementById(e+"-list"),this.domProgress=document.getElementById(e+"-progress"),this.domProgressWrapper=document.getElementById(e+"-progress-wrapper"),this.domPseudo=document.getElementById(e+"-pseudo"),this.hideProgress=function(){m.domInput&&(m.domInput.style.display=m.domInputDisplay),m.domProgressWrapper&&(m.domProgressWrapper.style.display="none"),m.domCancelUpload&&m.domCancelUpload.removeEventListener("click",m.cancelUpload)},this.multiple=m.domInput&&m.domInput.hasAttribute("multiple")||!1,this.queue=[],this.queueCount=0,this.queueSize=0,this.queueUploadedCount=0,this.queueUploadedSize=0,this.removeFileFromListFunction=function(e){m.uploaded.splice(e,1),m.updateUploadedList()},this.request=new XMLHttpRequest,this.settings={abortable:!0,counter:!0,debug:!1,dragdrop:null,dropableclass:"twistupload-dropable",hoverclass:"twistupload-hover",invalidtypemessage:"This file type is not permitted",onabort:function(){},onclear:function(){},oncompletefile:function(){},oncompletequeue:function(){},onerror:function(){},oninvalidtype:function(){},onprogress:function(){},onstart:function(){},previewsize:128,previewsquare:!0},this.showProgress=function(){m.domInput.style.display="none",m.domProgressWrapper&&(m.domProgressWrapper.style.display=m.domInputDisplay),m.domCancelUpload&&m.domCancelUpload.addEventListener("click",m.cancelUpload)},this.supported=!1,this.uid=e,this.updateUploadedList=function(){var t="",o=[];for(var n in m.uploaded){var s=m.uploaded[n],u=s.uri_preview,r="",i=["file/name","file/size","file_type"];o.push(s.form_value);var a="thumb-"+m.settings.previewsize;m.settings.previewsquare&&(a="square-"+a),s.support&&s.support[a]&&(u=s.support[a]);for(var d in i){var l,p=i[d];if(-1!==p.indexOf("/")){var c=p.split("/"),g=s[c[0]];c.shift();for(var f in c)g=g[c[f]];l=g}else l=s[p]||null;r+='
  • '+p.replace(/[\/_]/g," ")+" :"+l+"
  • "}t+='
    • '+r+'
  • '}m.domPseudo.value=o.join(","),m.domList.innerHTML=t,m.addRemoveFileListener()},this.upload=function(e,t){try{if(e){var o=t?t:(e.target||e.srcElement).files;m.queue.push.apply(m.queue,o),m.queueCount+=o.length;for(var n=0,u=o.length;u>n;n++)m.queueSize+=parseInt(o[n].size);m.domCountTotal&&(m.domCountTotal.innerText=m.queueCount),s("Added "+o.length+" files to the queue","info")}if(null===m.domCancelUploadDisplay&&(m.domCancelUploadDisplay=m.domCancelUpload.style.display||"inline-block"),null===m.domCountWrapperDisplay&&(m.domCountWrapperDisplay=m.domCountWrapper.style.display||"inline-block"),null===m.domInputDisplay&&(m.domInputDisplay=m.domInput.style.display||"inline-block"),m.queue.length){var r=m.queue[0],i=r.name,d=r.type,l=i.substr(i.lastIndexOf(".")+1).toLowerCase(),p=parseInt(r.size),c=new FileReader({blob:!0}),g=!m.acceptTypes.length&&!m.acceptExtentions.length;if(!g)for(var f in m.acceptTypes)if(new RegExp("^"+m.acceptTypes[f]+"$","gi").test(d)){g=!0;break}if(!g)for(var h in m.acceptExtentions)if(l===m.acceptExtentions[h]){g=!0;break}if(g)m.settings.onstart(r),m.showProgress(),m.domCount&&(m.domCount.innerText=m.queueUploadedCount+1),1===m.queueCount?(m.domProgress&&m.domProgress.removeAttribute("value"),m.domCountWrapper&&(m.domCountWrapper.style.display="none")):m.domCountWrapper&&(m.domCountWrapper.style.display=m.domCountWrapperDisplay),c.addEventListener("load",function(e){m.request.onreadystatechange=function(){switch(m.request.status){case 200:if(4==m.request.readyState){s("Uploaded "+i+" ("+a(p)+")"),m.queue.shift(),m.queueUploadedCount++,m.queueUploadedSize+=p;var e=JSON.parse(m.request.responseText);m.queue.length?(m.multiple?m.uploaded.push(e):m.uploaded=[e.form_value],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.upload()):(m.hideProgress(),s("Finsihed uploading "+m.queueUploadedCount+" files ("+a(m.queueUploadedSize)+")","info"),m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.clearInput(),m.multiple?m.uploaded.push(e):m.uploaded=[e],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.settings.oncompletequeue())}break;case 403:s("Permission denied","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress();break;case 404:s("Invalid function call","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress()}},m.request.onprogress=function(e){if(e.lengthComputable){if(m.domProgress){var t=Math.round(e.loaded/e.total*100);m.domProgress.value=t,s(a(e.loaded)+"/"+a(e.total)+" ("+t+"%)")}m.settings.onprogress(r,e.loaded,e.total)}},m.request.upload.onprogress=m.request.onprogress,m.request.addEventListener("load",function(){},!1),m.request.addEventListener("error",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onerror(r),s("An error occurred","error"))},!1),m.request.addEventListener("abort",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onabort(r),s("Upload aborted","warning"))},!1),m.request.open("PUT",m.uri,!0),m.request.setRequestHeader("Accept",'"text/plain; charset=iso-8859-1", "Content-Type": "text/plain; charset=iso-8859-1"'),m.request.setRequestHeader("Twist-File",i),m.request.setRequestHeader("Twist-Length",p),m.request.setRequestHeader("Twist-UID",m.uid),m.request.send(c.result)}),c.readAsArrayBuffer(r);else{var q=m.queue.shift();m.domInput.value="",m.settings.oninvalidtype(q,m.acceptTypes,m.acceptExtentions),s(i+" ("+d+") is not in the list of allowed types","warn"),m.acceptTypes.length&&s("Allowed MIME types: "+m.acceptTypes.join(", ")),m.acceptExtentions.length&&s("Allowed file extensions: "+m.acceptExtentions.join(", ")),alert(m.settings.invalidtypemessage),m.clearInput()}}}catch(v){m.hideProgress(),m.settings.onerror(m.queue[0]),m.settings.onabort(m.queue[0]),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,s(v,"error")}},this.uploaded=[],this.uri="/"+t.replace(/^\//,"").replace(/\/$/,"");for(var g in o)m.settings[g]=o[g];if(m.domPseudo&&m.domPseudo.value&&""!==m.domPseudo.value&&(m.uploaded=m.domPseudo.value.split(",")||[]),n=m.settings.debug===!0,m.domCountWrapper&&!m.settings.counter&&(m.domCountWrapper.style.display="none"),m.domCancelUpload&&!m.settings.abortable&&(m.domCancelUpload.style.display="none"),m.hideProgress(),null!==m.settings.dragdrop){var f=document.getElementById(m.settings.dragdrop);f&&(f.ondrop=function(e){e.preventDefault(),m.upload(e,e.target.files||e.dataTransfer.files),i(f,m.settings.hoverclass),i(f,m.settings.dropableclass)},f.ondragstart=function(){return r(f,m.settings.dropableclass),!1},f.ondragover=function(){return r(f,m.settings.hoverclass),!1},f.ondragleave=function(){return i(f,m.settings.hoverclass),!1},f.ondragend=function(){return i(f,m.settings.hoverclass),i(f,m.settings.dropableclass),!1})}var h=m.domInput?m.domInput.getAttribute("accept"):"";if(h){var q=h.replace(/ /g,"").split(",");if(q.length)for(var v in q)"."===q[v].substr(0,1)?m.acceptExtentions.push(q[v].substr(1).toLowerCase()):m.acceptTypes.push(q[v].replace(/\//g,"\\/").replace(/\*/g,".*")),m.acceptRaw.push(q[v])}if(!l)return m.hideProgress(),s("Your browser does not support AJAX uploading","warn",!0),null;if(!m.domInput)throw'No element exists with id="'+e+'"';return m.domPseudo&&(m.domPseudo.name=m.domInput.name.replace("[]",""),m.domInput.removeAttribute("name")),m.domInput.addEventListener("change",m.upload),!0};return function(t,o,n){return new e(t,o,n)}}); \ No newline at end of file diff --git a/dist/twist/Core/Resources/twist/setup/css/twistsetup.min.css.map b/dist/twist/Core/Resources/twist/setup/css/twistsetup.min.css.map index db40f212..75543ca8 100644 --- a/dist/twist/Core/Resources/twist/setup/css/twistsetup.min.css.map +++ b/dist/twist/Core/Resources/twist/setup/css/twistsetup.min.css.map @@ -1 +1 @@ -{"version":3,"file":"twistsetup.min.css","sources":["twistsetup.scss"],"sourcesContent":["/*!\n * This file is part of TwistPHP.\n *\n * TwistPHP is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * TwistPHP is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with TwistPHP. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html LGPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP Setup\n * --------------\n */\n\nhtml::after {\n\twidth: 475px;\n\theight: 500px;\n\n\tdisplay: block;\n\n\tposition: fixed;\n\tright: -50px;\n\tbottom: -50px;\n\n\tbackground: url(\"../images/background.png\") left no-repeat;\n\n\tcontent: \"\";\n\n\tz-index: -1;\n}\n\nbody {\n\tmargin: 35px;\n}\n\n.grid-container {\n\tpadding: 20px 0;\n\n\tbackground: rgba(255, 255, 255, 0.85);\n\n\tborder: 1px #CCC solid;\n\tborder-radius: 3px;\n}\n\nh1 {\n\tmargin: 10px 20px;\n\n\ttext-align: center;\n}\n\n\th1 img {\n\t\theight: 43px;\n\t\tmargin-right: 0.5em;\n\n\t\tdisplay: inline-block;\n\n\t\tvertical-align: bottom;\n\t}\n\nul.tabs {\n\tpadding-right: 10px;\n\tpadding-left: 10px;\n}\n\n\tul.tabs li a i {\n\t\tmargin-left: 0.5em;\n\n\t\tdisplay: inline-block;\n\n\t\tvertical-align: middle;\n\t}\n\nh2 {\n\tmargin-top: 0.5em;\n}\n\n#completed {\n\tdisplay: block;\n\n\tfont-size: 7em !important;\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG,AAEH,IAAI,AAAA,OAAO,AAAC,CACX,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CAEd,OAAO,CAAE,KAAM,CAEf,QAAQ,CAAE,KAAM,CAChB,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CAEd,UAAU,CAAE,+BAAG,CAA6B,IAAI,CAAC,SAAS,CAE1D,OAAO,CAAE,EAAG,CAEZ,OAAO,CAAE,EAAG,CACZ,AAED,IAAI,AAAC,CACJ,MAAM,CAAE,IAAK,CACb,AAED,eAAe,AAAC,CACf,OAAO,CAAE,MAAO,CAEhB,UAAU,CAAE,sBAAI,CAEhB,MAAM,CAAE,cAAe,CACvB,aAAa,CAAE,GAAI,CACnB,AAED,EAAE,AAAC,CACF,MAAM,CAAE,SAAU,CAElB,UAAU,CAAE,MAAO,CACnB,AAEA,EAAE,CAAC,GAAG,AAAC,CACN,MAAM,CAAE,IAAK,CACb,YAAY,CAAE,KAAM,CAEpB,OAAO,CAAE,YAAa,CAEtB,cAAc,CAAE,MAAO,CACvB,AAEF,EAAE,AAAA,KAAK,AAAC,CACP,aAAa,CAAE,IAAK,CACpB,YAAY,CAAE,IAAK,CACnB,AAEA,EAAE,AAAA,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,AAAC,CACd,WAAW,CAAE,KAAM,CAEnB,OAAO,CAAE,YAAa,CAEtB,cAAc,CAAE,MAAO,CACvB,AAEF,EAAE,AAAC,CACF,UAAU,CAAE,KAAM,CAClB,AAED,UAAU,AAAC,CACV,OAAO,CAAE,KAAM,CAEf,SAAS,CAAE,cAAe,CAC1B","names":[],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"file":"twistsetup.min.css","sources":["twistsetup.scss"],"sourcesContent":["/*!\n * TwistPHP - An open source PHP MVC framework built from the ground up.\n * Copyright (C) 2016 Shadow Technologies Ltd.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see .\n *\n * @author Shadow Technologies Ltd. \n * @license https://www.gnu.org/licenses/gpl.html GPL License\n * @link https://twistphp.com\n *\n * --------------\n * TwistPHP Setup\n * --------------\n */\n\nhtml::after {\n\twidth: 475px;\n\theight: 500px;\n\n\tdisplay: block;\n\n\tposition: fixed;\n\tright: -50px;\n\tbottom: -50px;\n\n\tbackground: url(\"../images/background.png\") left no-repeat;\n\n\tcontent: \"\";\n\n\tz-index: -1;\n}\n\nbody {\n\tmargin: 35px;\n}\n\n.grid-container {\n\tpadding: 20px 0;\n\n\tbackground: rgba(255, 255, 255, 0.85);\n\n\tborder: 1px #CCC solid;\n\tborder-radius: 3px;\n}\n\nh1 {\n\tmargin: 10px 20px;\n\n\ttext-align: center;\n}\n\n\th1 img {\n\t\theight: 43px;\n\t\tmargin-right: 0.5em;\n\n\t\tdisplay: inline-block;\n\n\t\tvertical-align: bottom;\n\t}\n\nul.tabs {\n\tpadding-right: 10px;\n\tpadding-left: 10px;\n}\n\n\tul.tabs li a i {\n\t\tmargin-left: 0.5em;\n\n\t\tdisplay: inline-block;\n\n\t\tvertical-align: middle;\n\t}\n\nh2 {\n\tmargin-top: 0.5em;\n}\n\n#completed {\n\tdisplay: block;\n\n\tfont-size: 7em !important;\n}"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG,AAEH,IAAI,AAAA,OAAO,AAAC,CACX,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CAEd,OAAO,CAAE,KAAM,CAEf,QAAQ,CAAE,KAAM,CAChB,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CAEd,UAAU,CAAE,+BAAG,CAA6B,IAAI,CAAC,SAAS,CAE1D,OAAO,CAAE,EAAG,CAEZ,OAAO,CAAE,EAAG,CACZ,AAED,IAAI,AAAC,CACJ,MAAM,CAAE,IAAK,CACb,AAED,eAAe,AAAC,CACf,OAAO,CAAE,MAAO,CAEhB,UAAU,CAAE,sBAAI,CAEhB,MAAM,CAAE,cAAe,CACvB,aAAa,CAAE,GAAI,CACnB,AAED,EAAE,AAAC,CACF,MAAM,CAAE,SAAU,CAElB,UAAU,CAAE,MAAO,CACnB,AAEA,EAAE,CAAC,GAAG,AAAC,CACN,MAAM,CAAE,IAAK,CACb,YAAY,CAAE,KAAM,CAEpB,OAAO,CAAE,YAAa,CAEtB,cAAc,CAAE,MAAO,CACvB,AAEF,EAAE,AAAA,KAAK,AAAC,CACP,aAAa,CAAE,IAAK,CACpB,YAAY,CAAE,IAAK,CACnB,AAEA,EAAE,AAAA,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,AAAC,CACd,WAAW,CAAE,KAAM,CAEnB,OAAO,CAAE,YAAa,CAEtB,cAAc,CAAE,MAAO,CACvB,AAEF,EAAE,AAAC,CACF,UAAU,CAAE,KAAM,CAClB,AAED,UAAU,AAAC,CACV,OAAO,CAAE,KAAM,CAEf,SAAS,CAAE,cAAe,CAC1B","names":[],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/Core/Resources/twist/fileupload/js/twistfileupload.js b/src/Core/Resources/twist/fileupload/js/twistfileupload.js index 6a784756..c31d4477 100755 --- a/src/Core/Resources/twist/fileupload/js/twistfileupload.js +++ b/src/Core/Resources/twist/fileupload/js/twistfileupload.js @@ -405,7 +405,7 @@ for( var intFileDetail in arrFileDetails ) { var strFileDetail = arrFileDetails[intFileDetail], - strProperty = objUploadedFile[strFileDetail]; + strProperty; if( strFileDetail.indexOf( '/' ) !== -1 ) { var arrDelve = strFileDetail.split( '/' ), @@ -418,6 +418,8 @@ } strProperty = objToDelve; + } else { + strProperty = objUploadedFile[strFileDetail] || null; } strFileDetails += '
  • ' + strFileDetail.replace( /[\/_]/g, ' ' ) + ' :' + strProperty + '
  • '; From 05538cf8a3f9c3b1e30466d80c7de2b9b324bf3e Mon Sep 17 00:00:00 2001 From: Andrew Hosgood Date: Sat, 4 Jun 2016 17:20:05 +0100 Subject: [PATCH 2/4] Further bug fix for undefined key in fileupload JS --- .../Resources/twist/fileupload/js/twistfileupload.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Core/Resources/twist/fileupload/js/twistfileupload.js b/src/Core/Resources/twist/fileupload/js/twistfileupload.js index c31d4477..1c3b690f 100755 --- a/src/Core/Resources/twist/fileupload/js/twistfileupload.js +++ b/src/Core/Resources/twist/fileupload/js/twistfileupload.js @@ -413,11 +413,13 @@ arrDelve.shift(); - for( var intKeyPart in arrDelve ) { - objToDelve = objToDelve[arrDelve[intKeyPart]]; - } + if( objToDelve ) { + for( var intKeyPart in arrDelve ) { + objToDelve = objToDelve[arrDelve[intKeyPart]] || null; + } - strProperty = objToDelve; + strProperty = objToDelve || null; + } } else { strProperty = objUploadedFile[strFileDetail] || null; } From f9531e5b40def6b30f0a201da5fd9aacdb29891d Mon Sep 17 00:00:00 2001 From: Andrew Hosgood Date: Sat, 4 Jun 2016 17:21:47 +0100 Subject: [PATCH 3/4] Further further bug fix for undefined key in fileupload JS --- src/Core/Resources/twist/fileupload/js/twistfileupload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Core/Resources/twist/fileupload/js/twistfileupload.js b/src/Core/Resources/twist/fileupload/js/twistfileupload.js index 1c3b690f..c9ef96c2 100755 --- a/src/Core/Resources/twist/fileupload/js/twistfileupload.js +++ b/src/Core/Resources/twist/fileupload/js/twistfileupload.js @@ -409,7 +409,7 @@ if( strFileDetail.indexOf( '/' ) !== -1 ) { var arrDelve = strFileDetail.split( '/' ), - objToDelve = objUploadedFile[arrDelve[0]]; + objToDelve = objUploadedFile[arrDelve[0]] || null; arrDelve.shift(); From a0b720e42718b5b0c78a39decdbc14ac3bf0ed62 Mon Sep 17 00:00:00 2001 From: Andrew Hosgood Date: Sat, 4 Jun 2016 17:24:26 +0100 Subject: [PATCH 4/4] Build of fileupload JS --- .../Resources/twist/fileupload/js/twistfileupload.js | 12 +++++++----- .../twist/fileupload/js/twistfileupload.min.js | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js index c31d4477..c9ef96c2 100755 --- a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js +++ b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.js @@ -409,15 +409,17 @@ if( strFileDetail.indexOf( '/' ) !== -1 ) { var arrDelve = strFileDetail.split( '/' ), - objToDelve = objUploadedFile[arrDelve[0]]; + objToDelve = objUploadedFile[arrDelve[0]] || null; arrDelve.shift(); - for( var intKeyPart in arrDelve ) { - objToDelve = objToDelve[arrDelve[intKeyPart]]; - } + if( objToDelve ) { + for( var intKeyPart in arrDelve ) { + objToDelve = objToDelve[arrDelve[intKeyPart]] || null; + } - strProperty = objToDelve; + strProperty = objToDelve || null; + } } else { strProperty = objUploadedFile[strFileDetail] || null; } diff --git a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js index e1702a9c..b7db976f 100755 --- a/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js +++ b/dist/twist/Core/Resources/twist/fileupload/js/twistfileupload.min.js @@ -48,4 +48,4 @@ * @version 1.0.0 * @license GPL-3.0 */ -var e=function(e,t,o){var n=!0,s=function(e,t,o){(n||o===!0)&&window.console&&(window.console[t]?window.console[t](e):window.console.log&&console.log(e))},u=function(e,t){return-1!==e.className.indexOf(t)},r=function(e,t){u(e,t)||(e.className+=" "+t)},i=function(e,t){u(e,t)&&(e.className=e.className.replace(new RegExp("^"+t+"$","g"),"").replace(new RegExp("^"+t+" ","g"),"").replace(new RegExp(" "+t+"$","g"),"").replace(new RegExp(" "+t+" ","g")," "))},a=function(e){for(var t=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;t[o]&&e>Math.pow(1024,o+1);)o++;return d(e/Math.pow(1024,o),o>1?2:0)+t[o]},d=function(e,t){return t="number"!=typeof t?0:t,0===t?parseInt(Math.round(e*Math.pow(10,t))/Math.pow(10,t)):parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},l="string"==typeof(new XMLHttpRequest).responseType&&"withCredentials"in new XMLHttpRequest;if(l){var p=new XMLHttpRequest;p.open("GET","/");try{p.responseType="arraybuffer"}catch(c){l=!1}}var m=this;this.acceptExtentions=[],this.acceptRaw=[],this.acceptTypes=[],this.addRemoveFileListener=function(){var t=function(e){return function(){console.log("Remove"),m.removeFileFromListFunction(e)}};for(var o in m.uploaded){var n=document.getElementById(e+"-remove-"+o);n.removeEventListener("click",t(o)),n.addEventListener("click",t(o))}},this.created=(new Date).getTime(),this.cancelUpload=function(){m.request.abort()},this.clearInput=function(){m.domInput.value="",m.domInput.value&&(m.domInput.type="text",m.domInput.type="file"),m.domPseudo.value="",m.settings.onclear()},this.domCancelUpload=document.getElementById(e+"-cancel"),this.domCancelUploadDisplay=null,this.domCount=document.getElementById(e+"-count"),this.domCountWrapper=document.getElementById(e+"-count-wrapper"),this.domCountWrapperDisplay=null,this.domCountTotal=document.getElementById(e+"-total"),this.domInput=document.getElementById(e),this.domInputDisplay=null,this.domList=document.getElementById(e+"-list"),this.domProgress=document.getElementById(e+"-progress"),this.domProgressWrapper=document.getElementById(e+"-progress-wrapper"),this.domPseudo=document.getElementById(e+"-pseudo"),this.hideProgress=function(){m.domInput&&(m.domInput.style.display=m.domInputDisplay),m.domProgressWrapper&&(m.domProgressWrapper.style.display="none"),m.domCancelUpload&&m.domCancelUpload.removeEventListener("click",m.cancelUpload)},this.multiple=m.domInput&&m.domInput.hasAttribute("multiple")||!1,this.queue=[],this.queueCount=0,this.queueSize=0,this.queueUploadedCount=0,this.queueUploadedSize=0,this.removeFileFromListFunction=function(e){m.uploaded.splice(e,1),m.updateUploadedList()},this.request=new XMLHttpRequest,this.settings={abortable:!0,counter:!0,debug:!1,dragdrop:null,dropableclass:"twistupload-dropable",hoverclass:"twistupload-hover",invalidtypemessage:"This file type is not permitted",onabort:function(){},onclear:function(){},oncompletefile:function(){},oncompletequeue:function(){},onerror:function(){},oninvalidtype:function(){},onprogress:function(){},onstart:function(){},previewsize:128,previewsquare:!0},this.showProgress=function(){m.domInput.style.display="none",m.domProgressWrapper&&(m.domProgressWrapper.style.display=m.domInputDisplay),m.domCancelUpload&&m.domCancelUpload.addEventListener("click",m.cancelUpload)},this.supported=!1,this.uid=e,this.updateUploadedList=function(){var t="",o=[];for(var n in m.uploaded){var s=m.uploaded[n],u=s.uri_preview,r="",i=["file/name","file/size","file_type"];o.push(s.form_value);var a="thumb-"+m.settings.previewsize;m.settings.previewsquare&&(a="square-"+a),s.support&&s.support[a]&&(u=s.support[a]);for(var d in i){var l,p=i[d];if(-1!==p.indexOf("/")){var c=p.split("/"),g=s[c[0]];c.shift();for(var f in c)g=g[c[f]];l=g}else l=s[p]||null;r+='
  • '+p.replace(/[\/_]/g," ")+" :"+l+"
  • "}t+='
    • '+r+'
  • '}m.domPseudo.value=o.join(","),m.domList.innerHTML=t,m.addRemoveFileListener()},this.upload=function(e,t){try{if(e){var o=t?t:(e.target||e.srcElement).files;m.queue.push.apply(m.queue,o),m.queueCount+=o.length;for(var n=0,u=o.length;u>n;n++)m.queueSize+=parseInt(o[n].size);m.domCountTotal&&(m.domCountTotal.innerText=m.queueCount),s("Added "+o.length+" files to the queue","info")}if(null===m.domCancelUploadDisplay&&(m.domCancelUploadDisplay=m.domCancelUpload.style.display||"inline-block"),null===m.domCountWrapperDisplay&&(m.domCountWrapperDisplay=m.domCountWrapper.style.display||"inline-block"),null===m.domInputDisplay&&(m.domInputDisplay=m.domInput.style.display||"inline-block"),m.queue.length){var r=m.queue[0],i=r.name,d=r.type,l=i.substr(i.lastIndexOf(".")+1).toLowerCase(),p=parseInt(r.size),c=new FileReader({blob:!0}),g=!m.acceptTypes.length&&!m.acceptExtentions.length;if(!g)for(var f in m.acceptTypes)if(new RegExp("^"+m.acceptTypes[f]+"$","gi").test(d)){g=!0;break}if(!g)for(var h in m.acceptExtentions)if(l===m.acceptExtentions[h]){g=!0;break}if(g)m.settings.onstart(r),m.showProgress(),m.domCount&&(m.domCount.innerText=m.queueUploadedCount+1),1===m.queueCount?(m.domProgress&&m.domProgress.removeAttribute("value"),m.domCountWrapper&&(m.domCountWrapper.style.display="none")):m.domCountWrapper&&(m.domCountWrapper.style.display=m.domCountWrapperDisplay),c.addEventListener("load",function(e){m.request.onreadystatechange=function(){switch(m.request.status){case 200:if(4==m.request.readyState){s("Uploaded "+i+" ("+a(p)+")"),m.queue.shift(),m.queueUploadedCount++,m.queueUploadedSize+=p;var e=JSON.parse(m.request.responseText);m.queue.length?(m.multiple?m.uploaded.push(e):m.uploaded=[e.form_value],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.upload()):(m.hideProgress(),s("Finsihed uploading "+m.queueUploadedCount+" files ("+a(m.queueUploadedSize)+")","info"),m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.clearInput(),m.multiple?m.uploaded.push(e):m.uploaded=[e],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.settings.oncompletequeue())}break;case 403:s("Permission denied","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress();break;case 404:s("Invalid function call","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress()}},m.request.onprogress=function(e){if(e.lengthComputable){if(m.domProgress){var t=Math.round(e.loaded/e.total*100);m.domProgress.value=t,s(a(e.loaded)+"/"+a(e.total)+" ("+t+"%)")}m.settings.onprogress(r,e.loaded,e.total)}},m.request.upload.onprogress=m.request.onprogress,m.request.addEventListener("load",function(){},!1),m.request.addEventListener("error",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onerror(r),s("An error occurred","error"))},!1),m.request.addEventListener("abort",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onabort(r),s("Upload aborted","warning"))},!1),m.request.open("PUT",m.uri,!0),m.request.setRequestHeader("Accept",'"text/plain; charset=iso-8859-1", "Content-Type": "text/plain; charset=iso-8859-1"'),m.request.setRequestHeader("Twist-File",i),m.request.setRequestHeader("Twist-Length",p),m.request.setRequestHeader("Twist-UID",m.uid),m.request.send(c.result)}),c.readAsArrayBuffer(r);else{var q=m.queue.shift();m.domInput.value="",m.settings.oninvalidtype(q,m.acceptTypes,m.acceptExtentions),s(i+" ("+d+") is not in the list of allowed types","warn"),m.acceptTypes.length&&s("Allowed MIME types: "+m.acceptTypes.join(", ")),m.acceptExtentions.length&&s("Allowed file extensions: "+m.acceptExtentions.join(", ")),alert(m.settings.invalidtypemessage),m.clearInput()}}}catch(v){m.hideProgress(),m.settings.onerror(m.queue[0]),m.settings.onabort(m.queue[0]),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,s(v,"error")}},this.uploaded=[],this.uri="/"+t.replace(/^\//,"").replace(/\/$/,"");for(var g in o)m.settings[g]=o[g];if(m.domPseudo&&m.domPseudo.value&&""!==m.domPseudo.value&&(m.uploaded=m.domPseudo.value.split(",")||[]),n=m.settings.debug===!0,m.domCountWrapper&&!m.settings.counter&&(m.domCountWrapper.style.display="none"),m.domCancelUpload&&!m.settings.abortable&&(m.domCancelUpload.style.display="none"),m.hideProgress(),null!==m.settings.dragdrop){var f=document.getElementById(m.settings.dragdrop);f&&(f.ondrop=function(e){e.preventDefault(),m.upload(e,e.target.files||e.dataTransfer.files),i(f,m.settings.hoverclass),i(f,m.settings.dropableclass)},f.ondragstart=function(){return r(f,m.settings.dropableclass),!1},f.ondragover=function(){return r(f,m.settings.hoverclass),!1},f.ondragleave=function(){return i(f,m.settings.hoverclass),!1},f.ondragend=function(){return i(f,m.settings.hoverclass),i(f,m.settings.dropableclass),!1})}var h=m.domInput?m.domInput.getAttribute("accept"):"";if(h){var q=h.replace(/ /g,"").split(",");if(q.length)for(var v in q)"."===q[v].substr(0,1)?m.acceptExtentions.push(q[v].substr(1).toLowerCase()):m.acceptTypes.push(q[v].replace(/\//g,"\\/").replace(/\*/g,".*")),m.acceptRaw.push(q[v])}if(!l)return m.hideProgress(),s("Your browser does not support AJAX uploading","warn",!0),null;if(!m.domInput)throw'No element exists with id="'+e+'"';return m.domPseudo&&(m.domPseudo.name=m.domInput.name.replace("[]",""),m.domInput.removeAttribute("name")),m.domInput.addEventListener("change",m.upload),!0};return function(t,o,n){return new e(t,o,n)}}); \ No newline at end of file +var e=function(e,t,o){var n=!0,s=function(e,t,o){(n||o===!0)&&window.console&&(window.console[t]?window.console[t](e):window.console.log&&console.log(e))},u=function(e,t){return-1!==e.className.indexOf(t)},r=function(e,t){u(e,t)||(e.className+=" "+t)},i=function(e,t){u(e,t)&&(e.className=e.className.replace(new RegExp("^"+t+"$","g"),"").replace(new RegExp("^"+t+" ","g"),"").replace(new RegExp(" "+t+"$","g"),"").replace(new RegExp(" "+t+" ","g")," "))},a=function(e){for(var t=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],o=0;t[o]&&e>Math.pow(1024,o+1);)o++;return l(e/Math.pow(1024,o),o>1?2:0)+t[o]},l=function(e,t){return t="number"!=typeof t?0:t,0===t?parseInt(Math.round(e*Math.pow(10,t))/Math.pow(10,t)):parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},d="string"==typeof(new XMLHttpRequest).responseType&&"withCredentials"in new XMLHttpRequest;if(d){var p=new XMLHttpRequest;p.open("GET","/");try{p.responseType="arraybuffer"}catch(c){d=!1}}var m=this;this.acceptExtentions=[],this.acceptRaw=[],this.acceptTypes=[],this.addRemoveFileListener=function(){var t=function(e){return function(){console.log("Remove"),m.removeFileFromListFunction(e)}};for(var o in m.uploaded){var n=document.getElementById(e+"-remove-"+o);n.removeEventListener("click",t(o)),n.addEventListener("click",t(o))}},this.created=(new Date).getTime(),this.cancelUpload=function(){m.request.abort()},this.clearInput=function(){m.domInput.value="",m.domInput.value&&(m.domInput.type="text",m.domInput.type="file"),m.domPseudo.value="",m.settings.onclear()},this.domCancelUpload=document.getElementById(e+"-cancel"),this.domCancelUploadDisplay=null,this.domCount=document.getElementById(e+"-count"),this.domCountWrapper=document.getElementById(e+"-count-wrapper"),this.domCountWrapperDisplay=null,this.domCountTotal=document.getElementById(e+"-total"),this.domInput=document.getElementById(e),this.domInputDisplay=null,this.domList=document.getElementById(e+"-list"),this.domProgress=document.getElementById(e+"-progress"),this.domProgressWrapper=document.getElementById(e+"-progress-wrapper"),this.domPseudo=document.getElementById(e+"-pseudo"),this.hideProgress=function(){m.domInput&&(m.domInput.style.display=m.domInputDisplay),m.domProgressWrapper&&(m.domProgressWrapper.style.display="none"),m.domCancelUpload&&m.domCancelUpload.removeEventListener("click",m.cancelUpload)},this.multiple=m.domInput&&m.domInput.hasAttribute("multiple")||!1,this.queue=[],this.queueCount=0,this.queueSize=0,this.queueUploadedCount=0,this.queueUploadedSize=0,this.removeFileFromListFunction=function(e){m.uploaded.splice(e,1),m.updateUploadedList()},this.request=new XMLHttpRequest,this.settings={abortable:!0,counter:!0,debug:!1,dragdrop:null,dropableclass:"twistupload-dropable",hoverclass:"twistupload-hover",invalidtypemessage:"This file type is not permitted",onabort:function(){},onclear:function(){},oncompletefile:function(){},oncompletequeue:function(){},onerror:function(){},oninvalidtype:function(){},onprogress:function(){},onstart:function(){},previewsize:128,previewsquare:!0},this.showProgress=function(){m.domInput.style.display="none",m.domProgressWrapper&&(m.domProgressWrapper.style.display=m.domInputDisplay),m.domCancelUpload&&m.domCancelUpload.addEventListener("click",m.cancelUpload)},this.supported=!1,this.uid=e,this.updateUploadedList=function(){var t="",o=[];for(var n in m.uploaded){var s=m.uploaded[n],u=s.uri_preview,r="",i=["file/name","file/size","file_type"];o.push(s.form_value);var a="thumb-"+m.settings.previewsize;m.settings.previewsquare&&(a="square-"+a),s.support&&s.support[a]&&(u=s.support[a]);for(var l in i){var d,p=i[l];if(-1!==p.indexOf("/")){var c=p.split("/"),g=s[c[0]]||null;if(c.shift(),g){for(var f in c)g=g[c[f]]||null;d=g||null}}else d=s[p]||null;r+='
  • '+p.replace(/[\/_]/g," ")+" :"+d+"
  • "}t+='
    • '+r+'
  • '}m.domPseudo.value=o.join(","),m.domList.innerHTML=t,m.addRemoveFileListener()},this.upload=function(e,t){try{if(e){var o=t?t:(e.target||e.srcElement).files;m.queue.push.apply(m.queue,o),m.queueCount+=o.length;for(var n=0,u=o.length;u>n;n++)m.queueSize+=parseInt(o[n].size);m.domCountTotal&&(m.domCountTotal.innerText=m.queueCount),s("Added "+o.length+" files to the queue","info")}if(null===m.domCancelUploadDisplay&&(m.domCancelUploadDisplay=m.domCancelUpload.style.display||"inline-block"),null===m.domCountWrapperDisplay&&(m.domCountWrapperDisplay=m.domCountWrapper.style.display||"inline-block"),null===m.domInputDisplay&&(m.domInputDisplay=m.domInput.style.display||"inline-block"),m.queue.length){var r=m.queue[0],i=r.name,l=r.type,d=i.substr(i.lastIndexOf(".")+1).toLowerCase(),p=parseInt(r.size),c=new FileReader({blob:!0}),g=!m.acceptTypes.length&&!m.acceptExtentions.length;if(!g)for(var f in m.acceptTypes)if(new RegExp("^"+m.acceptTypes[f]+"$","gi").test(l)){g=!0;break}if(!g)for(var h in m.acceptExtentions)if(d===m.acceptExtentions[h]){g=!0;break}if(g)m.settings.onstart(r),m.showProgress(),m.domCount&&(m.domCount.innerText=m.queueUploadedCount+1),1===m.queueCount?(m.domProgress&&m.domProgress.removeAttribute("value"),m.domCountWrapper&&(m.domCountWrapper.style.display="none")):m.domCountWrapper&&(m.domCountWrapper.style.display=m.domCountWrapperDisplay),c.addEventListener("load",function(e){m.request.onreadystatechange=function(){switch(m.request.status){case 200:if(4==m.request.readyState){s("Uploaded "+i+" ("+a(p)+")"),m.queue.shift(),m.queueUploadedCount++,m.queueUploadedSize+=p;var e=JSON.parse(m.request.responseText);m.queue.length?(m.multiple?m.uploaded.push(e):m.uploaded=[e.form_value],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.upload()):(m.hideProgress(),s("Finsihed uploading "+m.queueUploadedCount+" files ("+a(m.queueUploadedSize)+")","info"),m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.clearInput(),m.multiple?m.uploaded.push(e):m.uploaded=[e],m.updateUploadedList(),window.twistdebug&&window.twistdebug.logFileUpload(r,e),m.settings.oncompletefile(e,r),m.settings.oncompletequeue())}break;case 403:s("Permission denied","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress();break;case 404:s("Invalid function call","error"),m.queue.shift(),m.queueCount--,m.queueSize--,m.settings.onerror(r),m.queue.length?m.upload():m.hideProgress()}},m.request.onprogress=function(e){if(e.lengthComputable){if(m.domProgress){var t=Math.round(e.loaded/e.total*100);m.domProgress.value=t,s(a(e.loaded)+"/"+a(e.total)+" ("+t+"%)")}m.settings.onprogress(r,e.loaded,e.total)}},m.request.upload.onprogress=m.request.onprogress,m.request.addEventListener("load",function(){},!1),m.request.addEventListener("error",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onerror(r),s("An error occurred","error"))},!1),m.request.addEventListener("abort",function(){m.queue.length&&(m.hideProgress(),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,m.settings.onabort(r),s("Upload aborted","warning"))},!1),m.request.open("PUT",m.uri,!0),m.request.setRequestHeader("Accept",'"text/plain; charset=iso-8859-1", "Content-Type": "text/plain; charset=iso-8859-1"'),m.request.setRequestHeader("Twist-File",i),m.request.setRequestHeader("Twist-Length",p),m.request.setRequestHeader("Twist-UID",m.uid),m.request.send(c.result)}),c.readAsArrayBuffer(r);else{var q=m.queue.shift();m.domInput.value="",m.settings.oninvalidtype(q,m.acceptTypes,m.acceptExtentions),s(i+" ("+l+") is not in the list of allowed types","warn"),m.acceptTypes.length&&s("Allowed MIME types: "+m.acceptTypes.join(", ")),m.acceptExtentions.length&&s("Allowed file extensions: "+m.acceptExtentions.join(", ")),alert(m.settings.invalidtypemessage),m.clearInput()}}}catch(v){m.hideProgress(),m.settings.onerror(m.queue[0]),m.settings.onabort(m.queue[0]),m.queue=[],m.queueCount=0,m.queueSize=0,m.queueUploadedCount=0,m.queueUploadedSize=0,s(v,"error")}},this.uploaded=[],this.uri="/"+t.replace(/^\//,"").replace(/\/$/,"");for(var g in o)m.settings[g]=o[g];if(m.domPseudo&&m.domPseudo.value&&""!==m.domPseudo.value&&(m.uploaded=m.domPseudo.value.split(",")||[]),n=m.settings.debug===!0,m.domCountWrapper&&!m.settings.counter&&(m.domCountWrapper.style.display="none"),m.domCancelUpload&&!m.settings.abortable&&(m.domCancelUpload.style.display="none"),m.hideProgress(),null!==m.settings.dragdrop){var f=document.getElementById(m.settings.dragdrop);f&&(f.ondrop=function(e){e.preventDefault(),m.upload(e,e.target.files||e.dataTransfer.files),i(f,m.settings.hoverclass),i(f,m.settings.dropableclass)},f.ondragstart=function(){return r(f,m.settings.dropableclass),!1},f.ondragover=function(){return r(f,m.settings.hoverclass),!1},f.ondragleave=function(){return i(f,m.settings.hoverclass),!1},f.ondragend=function(){return i(f,m.settings.hoverclass),i(f,m.settings.dropableclass),!1})}var h=m.domInput?m.domInput.getAttribute("accept"):"";if(h){var q=h.replace(/ /g,"").split(",");if(q.length)for(var v in q)"."===q[v].substr(0,1)?m.acceptExtentions.push(q[v].substr(1).toLowerCase()):m.acceptTypes.push(q[v].replace(/\//g,"\\/").replace(/\*/g,".*")),m.acceptRaw.push(q[v])}if(!d)return m.hideProgress(),s("Your browser does not support AJAX uploading","warn",!0),null;if(!m.domInput)throw'No element exists with id="'+e+'"';return m.domPseudo&&(m.domPseudo.name=m.domInput.name.replace("[]",""),m.domInput.removeAttribute("name")),m.domInput.addEventListener("change",m.upload),!0};return function(t,o,n){return new e(t,o,n)}}); \ No newline at end of file