This is an automated email from the ASF dual-hosted git repository.
100pah pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/echarts-examples.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new 3329ad87 tweak(e2e): (1) Add comment for some problems. (2) Use local
asset lib instead of CDN.
3329ad87 is described below
commit 3329ad87a96eb3296bef186cc90fda4d98ce5516
Author: 100pah <[email protected]>
AuthorDate: Mon May 4 02:50:34 2026 +0800
tweak(e2e): (1) Add comment for some problems. (2) Use local asset lib
instead of CDN.
---
e2e/config.js | 7 +++-
e2e/e2e-asset/dat.gui.min.js | 94 ++++++++++++++++++++++++++++++++++++++++++++
e2e/e2e-asset/jquery.min.js | 5 +++
e2e/main.js | 21 ++++++----
e2e/preview.html | 15 +++----
e2e/template.html | 14 +++----
package.json | 2 +
7 files changed, 132 insertions(+), 26 deletions(-)
diff --git a/e2e/config.js b/e2e/config.js
index 61bbff28..3626a71f 100644
--- a/e2e/config.js
+++ b/e2e/config.js
@@ -27,6 +27,11 @@ module.exports = {
name: 'echarts-liquidfill',
dir: nodePath.resolve(__dirname, '../../echarts-liquidfill'),
git: 'ecomfe/echarts-liquidfill#master'
- }
+ },
+ {
+ name: 'echarts-graph-modularity',
+ dir: nodePath.resolve(__dirname, '../../echarts-graph-modularity'),
+ git: 'ecomfe/echarts-graph-modularity#master'
+ },
]
};
diff --git a/e2e/e2e-asset/dat.gui.min.js b/e2e/e2e-asset/dat.gui.min.js
new file mode 100644
index 00000000..17e4a3cd
--- /dev/null
+++ b/e2e/e2e-asset/dat.gui.min.js
@@ -0,0 +1,94 @@
+/**
+ * dat-gui JavaScript Controller Library
+ * http://code.google.com/p/dat-gui
+ *
+ * Copyright 2011 Data Arts Team, Google Creative Lab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+var
dat=dat||{};dat.gui=dat.gui||{};dat.utils=dat.utils||{};dat.controllers=dat.controllers||{};dat.dom=dat.dom||{};dat.color=dat.color||{};dat.utils.css=function(){return{load:function(e,a){var
a=a||document,c=a.createElement("link");c.type="text/css";c.rel="stylesheet";c.href=e;a.getElementsByTagName("head")[0].appendChild(c)},inject:function(e,a){var
a=a||document,c=document.createElement("style");c.type="text/css";c.innerHTML=e;a.getElementsByTagName("head")[0].appendChild(c)}}}();
+dat.utils.common=function(){var
e=Array.prototype.forEach,a=Array.prototype.slice;return{BREAK:{},extend:function(c){this.each(a.call(arguments,1),function(a){for(var
f in a)this.isUndefined(a[f])||(c[f]=a[f])},this);return
c},defaults:function(c){this.each(a.call(arguments,1),function(a){for(var f in
a)this.isUndefined(c[f])&&(c[f]=a[f])},this);return c},compose:function(){var
c=a.call(arguments);return function(){for(var
d=a.call(arguments),f=c.length-1;f>=0;f--)d=[c[f].apply(this,d)]; [...]
+each:function(a,d,f){if(e&&a.forEach===e)a.forEach(d,f);else
if(a.length===a.length+0)for(var b=0,n=a.length;b<n;b++){if(b in
a&&d.call(f,a[b],b)===this.BREAK)break}else for(b in
a)if(d.call(f,a[b],b)===this.BREAK)break},defer:function(a){setTimeout(a,0)},toArray:function(c){return
c.toArray?c.toArray():a.call(c)},isUndefined:function(a){return a===void
0},isNull:function(a){return a===null},isNaN:function(a){return
a!==a},isArray:Array.isArray||function(a){return a.constructor===Array}, [...]
+Object(a)},isNumber:function(a){return a===a+0},isString:function(a){return
a===a+""},isBoolean:function(a){return
a===false||a===true},isFunction:function(a){return
Object.prototype.toString.call(a)==="[object Function]"}}}();
+dat.controllers.Controller=function(e){var
a=function(a,d){this.initialValue=a[d];this.domElement=document.createElement("div");this.object=a;this.property=d;this.__onFinishChange=this.__onChange=void
0};e.extend(a.prototype,{onChange:function(a){this.__onChange=a;return
this},onFinishChange:function(a){this.__onFinishChange=a;return
this},setValue:function(a){this.object[this.property]=a;this.__onChange&&this.__onChange.call(this,a);this.updateDisplay();return
this},getValue:function(){ [...]
+updateDisplay:function(){return this},isModified:function(){return
this.initialValue!==this.getValue()}});return a}(dat.utils.common);
+dat.dom.dom=function(e){function a(b){if(b==="0"||e.isUndefined(b))return
0;b=b.match(d);return!e.isNull(b)?parseFloat(b[1]):0}var
c={};e.each({HTMLEvents:["change"],MouseEvents:["click","mousemove","mousedown","mouseup","mouseover"],KeyboardEvents:["keydown"]},function(b,a){e.each(b,function(b){c[b]=a})});var
d=/(\d+(\.\d+)?)px/,f={makeSelectable:function(b,a){if(!(b===void
0||b.style===void 0))b.onselectstart=a?function(){return
false}:function(){},b.style.MozUserSelect=a?"auto":"none" [...]
+a?"auto":"none",b.unselectable=a?"on":"off"},makeFullscreen:function(b,a,d){e.isUndefined(a)&&(a=true);e.isUndefined(d)&&(d=true);b.style.position="absolute";if(a)b.style.left=0,b.style.right=0;if(d)b.style.top=0,b.style.bottom=0},fakeEvent:function(b,a,d,f){var
d=d||{},m=c[a];if(!m)throw Error("Event type "+a+" not supported.");var
l=document.createEvent(m);switch(m){case
"MouseEvents":l.initMouseEvent(a,d.bubbles||false,d.cancelable||true,window,d.clickCount||1,0,0,d.x||d.clientX||0,d.
[...]
+0,false,false,false,false,0,null);break;case
"KeyboardEvents":m=l.initKeyboardEvent||l.initKeyEvent;e.defaults(d,{cancelable:true,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,keyCode:void
0,charCode:void
0});m(a,d.bubbles||false,d.cancelable,window,d.ctrlKey,d.altKey,d.shiftKey,d.metaKey,d.keyCode,d.charCode);break;default:l.initEvent(a,d.bubbles||false,d.cancelable||true)}e.defaults(l,f);b.dispatchEvent(l)},bind:function(b,a,d,c){b.addEventListener?b.addEventListener(a,d,c||f
[...]
+b.attachEvent("on"+a,d);return
f},unbind:function(b,a,d,c){b.removeEventListener?b.removeEventListener(a,d,c||false):b.detachEvent&&b.detachEvent("on"+a,d);return
f},addClass:function(b,a){if(b.className===void 0)b.className=a;else
if(b.className!==a){var d=b.className.split(/
+/);if(d.indexOf(a)==-1)d.push(a),b.className=d.join("
").replace(/^\s+/,"").replace(/\s+$/,"")}return
f},removeClass:function(b,a){if(a){if(b.className!==void
0)if(b.className===a)b.removeAttribute("class");else{v [...]
+c=d.indexOf(a);if(c!=-1)d.splice(c,1),b.className=d.join(" ")}}else
b.className=void 0;return f},hasClass:function(a,d){return
RegExp("(?:^|\\s+)"+d+"(?:\\s+|$)").test(a.className)||false},getWidth:function(b){b=getComputedStyle(b);return
a(b["border-left-width"])+a(b["border-right-width"])+a(b["padding-left"])+a(b["padding-right"])+a(b.width)},getHeight:function(b){b=getComputedStyle(b);return
a(b["border-top-width"])+a(b["border-bottom-width"])+a(b["padding-top"])+a(b["padding-bottom"]
[...]
+getOffset:function(a){var d={left:0,top:0};if(a.offsetParent){do
d.left+=a.offsetLeft,d.top+=a.offsetTop;while(a=a.offsetParent)}return
d},isActive:function(a){return
a===document.activeElement&&(a.type||a.href)}};return f}(dat.utils.common);
+dat.controllers.OptionController=function(e,a,c){var
d=function(f,b,e){d.superclass.call(this,f,b);var
h=this;this.__select=document.createElement("select");if(c.isArray(e)){var
j={};c.each(e,function(a){j[a]=a});e=j}c.each(e,function(a,b){var
d=document.createElement("option");d.innerHTML=b;d.setAttribute("value",a);h.__select.appendChild(d)});this.updateDisplay();a.bind(this.__select,"change",function(){h.setValue(this.options[this.selectedIndex].value)});this.domElement.appendChild(th
[...]
+d.superclass=e;c.extend(d.prototype,e.prototype,{setValue:function(a){a=d.superclass.prototype.setValue.call(this,a);this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue());return
a},updateDisplay:function(){this.__select.value=this.getValue();return
d.superclass.prototype.updateDisplay.call(this)}});return
d}(dat.controllers.Controller,dat.dom.dom,dat.utils.common);
+dat.controllers.NumberController=function(e,a){var
c=function(d,f,b){c.superclass.call(this,d,f);b=b||{};this.__min=b.min;this.__max=b.max;this.__step=b.step;d=this.__impliedStep=a.isUndefined(this.__step)?this.initialValue==0?1:Math.pow(10,Math.floor(Math.log(this.initialValue)/Math.LN10))/10:this.__step;d=d.toString();this.__precision=d.indexOf(".")>-1?d.length-d.indexOf(".")-1:0};c.superclass=e;a.extend(c.prototype,e.prototype,{setValue:function(a){if(this.__min!==void
0&&a<this.__min [...]
+else if(this.__max!==void 0&&a>this.__max)a=this.__max;this.__step!==void
0&&a%this.__step!=0&&(a=Math.round(a/this.__step)*this.__step);return
c.superclass.prototype.setValue.call(this,a)},min:function(a){this.__min=a;return
this},max:function(a){this.__max=a;return
this},step:function(a){this.__step=a;return this}});return
c}(dat.controllers.Controller,dat.utils.common);
+dat.controllers.NumberControllerBox=function(e,a,c){var
d=function(f,b,e){function h(){var
a=parseFloat(l.__input.value);c.isNaN(a)||l.setValue(a)}function j(a){var
b=o-a.clientY;l.setValue(l.getValue()+b*l.__impliedStep);o=a.clientY}function
m(){a.unbind(window,"mousemove",j);a.unbind(window,"mouseup",m)}this.__truncationSuspended=false;d.superclass.call(this,f,b,e);var
l=this,o;this.__input=document.createElement("input");this.__input.setAttribute("type","text");a.bind(this.__input,"ch
[...]
+a.bind(this.__input,"blur",function(){h();l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())});a.bind(this.__input,"mousedown",function(b){a.bind(window,"mousemove",j);a.bind(window,"mouseup",m);o=b.clientY});a.bind(this.__input,"keydown",function(a){if(a.keyCode===13)l.__truncationSuspended=true,this.blur(),l.__truncationSuspended=false});this.updateDisplay();this.domElement.appendChild(this.__input)};d.superclass=e;c.extend(d.prototype,e.prototype,{updateDisplay:function(){var
[...]
+b;if(this.__truncationSuspended)b=this.getValue();else{b=this.getValue();var
c=Math.pow(10,this.__precision);b=Math.round(b*c)/c}a.value=b;return
d.superclass.prototype.updateDisplay.call(this)}});return
d}(dat.controllers.NumberController,dat.dom.dom,dat.utils.common);
+dat.controllers.NumberControllerSlider=function(e,a,c,d,f){var
b=function(d,c,f,e,l){function o(b){b.preventDefault();var
d=a.getOffset(g.__background),c=a.getWidth(g.__background);g.setValue(g.__min+(g.__max-g.__min)*((b.clientX-d.left)/(d.left+c-d.left)));return
false}function
y(){a.unbind(window,"mousemove",o);a.unbind(window,"mouseup",y);g.__onFinishChange&&g.__onFinishChange.call(g,g.getValue())}b.superclass.call(this,d,c,{min:f,max:e,step:l});var
g=this;this.__background=document.c [...]
+this.__foreground=document.createElement("div");a.bind(this.__background,"mousedown",function(b){a.bind(window,"mousemove",o);a.bind(window,"mouseup",y);o(b)});a.addClass(this.__background,"slider");a.addClass(this.__foreground,"slider-fg");this.updateDisplay();this.__background.appendChild(this.__foreground);this.domElement.appendChild(this.__background)};b.superclass=e;b.useDefaultStyles=function(){c.inject(f)};d.extend(b.prototype,e.prototype,{updateDisplay:function(){this.__foregroun
[...]
+(this.getValue()-this.__min)/(this.__max-this.__min)*100+"%";return
b.superclass.prototype.updateDisplay.call(this)}});return
b}(dat.controllers.NumberController,dat.dom.dom,dat.utils.css,dat.utils.common,".slider
{\n box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);\n height: 1em;\n
border-radius: 1em;\n background-color: #eee;\n padding: 0 0.5em;\n
overflow: hidden;\n}\n\n.slider-fg {\n padding: 1px 0 2px 0;\n
background-color: #aaa;\n height: 1em;\n margin-left: -0.5em;\n paddi [...]
+dat.controllers.FunctionController=function(e,a,c){var
d=function(c,b,e){d.superclass.call(this,c,b);var
h=this;this.__button=document.createElement("div");this.__button.innerHTML=e===void
0?"Fire":e;a.bind(this.__button,"click",function(a){a.preventDefault();h.fire();return
false});a.addClass(this.__button,"button");this.domElement.appendChild(this.__button)};d.superclass=e;c.extend(d.prototype,e.prototype,{fire:function(){this.__onChange&&this.__onChange.call(this);this.__onFinishChang
[...]
+this.getValue());this.getValue().call(this.object)}});return
d}(dat.controllers.Controller,dat.dom.dom,dat.utils.common);
+dat.controllers.BooleanController=function(e,a,c){var
d=function(c,b){d.superclass.call(this,c,b);var
e=this;this.__prev=this.getValue();this.__checkbox=document.createElement("input");this.__checkbox.setAttribute("type","checkbox");a.bind(this.__checkbox,"change",function(){e.setValue(!e.__prev)},false);this.domElement.appendChild(this.__checkbox);this.updateDisplay()};d.superclass=e;c.extend(d.prototype,e.prototype,{setValue:function(a){a=d.superclass.prototype.setValue.call(this,a);th
[...]
+this.__onFinishChange.call(this,this.getValue());this.__prev=this.getValue();return
a},updateDisplay:function(){this.getValue()===true?(this.__checkbox.setAttribute("checked","checked"),this.__checkbox.checked=true):this.__checkbox.checked=false;return
d.superclass.prototype.updateDisplay.call(this)}});return
d}(dat.controllers.Controller,dat.dom.dom,dat.utils.common);
+dat.color.toString=function(e){return
function(a){if(a.a==1||e.isUndefined(a.a)){for(a=a.hex.toString(16);a.length<6;)a="0"+a;return"#"+a}else
return"rgba("+Math.round(a.r)+","+Math.round(a.g)+","+Math.round(a.b)+","+a.a+")"}}(dat.utils.common);
+dat.color.interpret=function(e,a){var
c,d,f=[{litmus:a.isString,conversions:{THREE_CHAR_HEX:{read:function(a){a=a.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);return
a===null?false:{space:"HEX",hex:parseInt("0x"+a[1].toString()+a[1].toString()+a[2].toString()+a[2].toString()+a[3].toString()+a[3].toString())}},write:e},SIX_CHAR_HEX:{read:function(a){a=a.match(/^#([A-F0-9]{6})$/i);return
a===null?false:{space:"HEX",hex:parseInt("0x"+a[1].toString())}},write:e},CSS_RGB:{read:function(a){a=a.
[...]
+return
a===null?false:{space:"RGB",r:parseFloat(a[1]),g:parseFloat(a[2]),b:parseFloat(a[3])}},write:e},CSS_RGBA:{read:function(a){a=a.match(/^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\,\s*(.+)\s*\)/);return
a===null?false:{space:"RGB",r:parseFloat(a[1]),g:parseFloat(a[2]),b:parseFloat(a[3]),a:parseFloat(a[4])}},write:e}}},{litmus:a.isNumber,conversions:{HEX:{read:function(a){return{space:"HEX",hex:a,conversionName:"HEX"}},write:function(a){return
a.hex}}}},{litmus:a.isArray,conversions:{RGB [...]
+3?false:{space:"RGB",r:a[0],g:a[1],b:a[2]}},write:function(a){return[a.r,a.g,a.b]}},RGBA_ARRAY:{read:function(a){return
a.length!=4?false:{space:"RGB",r:a[0],g:a[1],b:a[2],a:a[3]}},write:function(a){return[a.r,a.g,a.b,a.a]}}}},{litmus:a.isObject,conversions:{RGBA_OBJ:{read:function(b){return
a.isNumber(b.r)&&a.isNumber(b.g)&&a.isNumber(b.b)&&a.isNumber(b.a)?{space:"RGB",r:b.r,g:b.g,b:b.b,a:b.a}:false},write:function(a){return{r:a.r,g:a.g,b:a.b,a:a.a}}},RGB_OBJ:{read:function(b){return
a. [...]
+a.isNumber(b.g)&&a.isNumber(b.b)?{space:"RGB",r:b.r,g:b.g,b:b.b}:false},write:function(a){return{r:a.r,g:a.g,b:a.b}}},HSVA_OBJ:{read:function(b){return
a.isNumber(b.h)&&a.isNumber(b.s)&&a.isNumber(b.v)&&a.isNumber(b.a)?{space:"HSV",h:b.h,s:b.s,v:b.v,a:b.a}:false},write:function(a){return{h:a.h,s:a.s,v:a.v,a:a.a}}},HSV_OBJ:{read:function(b){return
a.isNumber(b.h)&&a.isNumber(b.s)&&a.isNumber(b.v)?{space:"HSV",h:b.h,s:b.s,v:b.v}:false},write:function(a){return{h:a.h,s:a.s,v:a.v}}}}}];retur
[...]
+false;var
b=arguments.length>1?a.toArray(arguments):arguments[0];a.each(f,function(e){if(e.litmus(b))return
a.each(e.conversions,function(e,f){c=e.read(b);if(d===false&&c!==false)return
d=c,c.conversionName=f,c.conversion=e,a.BREAK}),a.BREAK});return
d}}(dat.color.toString,dat.utils.common);
+dat.GUI=dat.gui.GUI=function(e,a,c,d,f,b,n,h,j,m,l,o,y,g,i){function
q(a,b,r,c){if(b[r]===void 0)throw Error("Object "+b+' has no property
"'+r+'"');c.color?b=new
l(b,r):(b=[b,r].concat(c.factoryArgs),b=d.apply(a,b));if(c.before instanceof
f)c.before=c.before.__li;t(a,b);g.addClass(b.domElement,"c");r=document.createElement("span");g.addClass(r,"property-name");r.innerHTML=b.property;var
e=document.createElement("div");e.appendChild(r);e.appendChild(b.domElement);c=s(a,e,c.before);g.addC
[...]
+g.addClass(c,typeof b.getValue());p(a,c,b);a.__controllers.push(b);return
b}function s(a,b,d){var
c=document.createElement("li");b&&c.appendChild(b);d?a.__ul.insertBefore(c,params.before):a.__ul.appendChild(c);a.onResize();return
c}function
p(a,d,c){c.__li=d;c.__gui=a;i.extend(c,{options:function(b){if(arguments.length>1)return
c.remove(),q(a,c.object,c.property,{before:c.__li.nextElementSibling,factoryArgs:[i.toArray(arguments)]});if(i.isArray(b)||i.isObject(b))return
c.remove(),q(a,c.o [...]
+{before:c.__li.nextElementSibling,factoryArgs:[b]})},name:function(a){c.__li.firstElementChild.firstElementChild.innerHTML=a;return
c},listen:function(){c.__gui.listen(c);return
c},remove:function(){c.__gui.remove(c);return c}});if(c instanceof j){var e=new
h(c.object,c.property,{min:c.__min,max:c.__max,step:c.__step});i.each(["updateDisplay","onChange","onFinishChange"],function(a){var
b=c[a],H=e[a];c[a]=e[a]=function(){var
a=Array.prototype.slice.call(arguments);b.apply(c,a);return H.a [...]
+g.addClass(d,"has-slider");c.domElement.insertBefore(e.domElement,c.domElement.firstElementChild)}else
if(c instanceof h){var f=function(b){return
i.isNumber(c.__min)&&i.isNumber(c.__max)?(c.remove(),q(a,c.object,c.property,{before:c.__li.nextElementSibling,factoryArgs:[c.__min,c.__max,c.__step]})):b};c.min=i.compose(f,c.min);c.max=i.compose(f,c.max)}else
if(c instanceof
b)g.bind(d,"click",function(){g.fakeEvent(c.__checkbox,"click")}),g.bind(c.__checkbox,"click",function(a){a.stopPropag
[...]
+else if(c instanceof
n)g.bind(d,"click",function(){g.fakeEvent(c.__button,"click")}),g.bind(d,"mouseover",function(){g.addClass(c.__button,"hover")}),g.bind(d,"mouseout",function(){g.removeClass(c.__button,"hover")});else
if(c instanceof
l)g.addClass(d,"color"),c.updateDisplay=i.compose(function(a){d.style.borderLeftColor=c.__color.toString();return
a},c.updateDisplay),c.updateDisplay();c.setValue=i.compose(function(b){a.getRoot().__preset_select&&c.isModified()&&B(a.getRoot(),true);retu
[...]
+function t(a,b){var
c=a.getRoot(),d=c.__rememberedObjects.indexOf(b.object);if(d!=-1){var
e=c.__rememberedObjectIndecesToControllers[d];e===void
0&&(e={},c.__rememberedObjectIndecesToControllers[d]=e);e[b.property]=b;if(c.load&&c.load.remembered){c=c.load.remembered;if(c[a.preset])c=c[a.preset];else
if(c[w])c=c[w];else return;if(c[d]&&c[d][b.property]!==void
0)d=c[d][b.property],b.initialValue=d,b.setValue(d)}}}function I(a){var
b=a.__save_row=document.createElement("li");g.addClass(a.do [...]
+"has-save");a.__ul.insertBefore(b,a.__ul.firstChild);g.addClass(b,"save-row");var
c=document.createElement("span");c.innerHTML=" ";g.addClass(c,"button
gears");var
d=document.createElement("span");d.innerHTML="Save";g.addClass(d,"button");g.addClass(d,"save");var
e=document.createElement("span");e.innerHTML="New";g.addClass(e,"button");g.addClass(e,"save-as");var
f=document.createElement("span");f.innerHTML="Revert";g.addClass(f,"button");g.addClass(f,"revert");var
m=a.__preset_sele [...]
+a.load&&a.load.remembered?i.each(a.load.remembered,function(b,c){C(a,c,c==a.preset)}):C(a,w,false);g.bind(m,"change",function(){for(var
b=0;b<a.__preset_select.length;b++)a.__preset_select[b].innerHTML=a.__preset_select[b].value;a.preset=this.value});b.appendChild(m);b.appendChild(c);b.appendChild(d);b.appendChild(e);b.appendChild(f);if(u){var
b=document.getElementById("dg-save-locally"),l=document.getElementById("dg-local-explain");b.style.display="block";b=document.getElementById("dg-l
[...]
+localStorage.getItem(document.location.href+".isLocal")==="true"&&b.setAttribute("checked","checked");var
o=function(){l.style.display=a.useLocalStorage?"block":"none"};o();g.bind(b,"change",function(){a.useLocalStorage=!a.useLocalStorage;o()})}var
h=document.getElementById("dg-new-constructor");g.bind(h,"keydown",function(a){a.metaKey&&(a.which===67||a.keyCode==67)&&x.hide()});g.bind(c,"click",function(){h.innerHTML=JSON.stringify(a.getSaveObject(),void
0,2);x.show();h.focus();h.select( [...]
+"click",function(){a.save()});g.bind(e,"click",function(){var b=prompt("Enter
a new preset
name.");b&&a.saveAs(b)});g.bind(f,"click",function(){a.revert()})}function
J(a){function
b(f){f.preventDefault();e=f.clientX;g.addClass(a.__closeButton,k.CLASS_DRAG);g.bind(window,"mousemove",c);g.bind(window,"mouseup",d);return
false}function
c(b){b.preventDefault();a.width+=e-b.clientX;a.onResize();e=b.clientX;return
false}function
d(){g.removeClass(a.__closeButton,k.CLASS_DRAG);g.unbind(window," [...]
+c);g.unbind(window,"mouseup",d)}a.__resize_handle=document.createElement("div");i.extend(a.__resize_handle.style,{width:"6px",marginLeft:"-3px",height:"200px",cursor:"ew-resize",position:"absolute"});var
e;g.bind(a.__resize_handle,"mousedown",b);g.bind(a.__closeButton,"mousedown",b);a.domElement.insertBefore(a.__resize_handle,a.domElement.firstElementChild)}function
D(a,b){a.domElement.style.width=b+"px";if(a.__save_row&&a.autoPlace)a.__save_row.style.width=b+"px";if(a.__closeButton)a.__
[...]
+b+"px"}function z(a,b){var c={};i.each(a.__rememberedObjects,function(d,e){var
f={};i.each(a.__rememberedObjectIndecesToControllers[e],function(a,c){f[c]=b?a.initialValue:a.getValue()});c[e]=f});return
c}function C(a,b,c){var
d=document.createElement("option");d.innerHTML=b;d.value=b;a.__preset_select.appendChild(d);if(c)a.__preset_select.selectedIndex=a.__preset_select.length-1}function
B(a,b){var
c=a.__preset_select[a.__preset_select.selectedIndex];c.innerHTML=b?c.value+"*":c.value}fun
[...]
+0&&o(function(){E(a)});i.each(a,function(a){a.updateDisplay()})}e.inject(c);var
w="Default",u;try{u="localStorage"in
window&&window.localStorage!==null}catch(K){u=false}var
x,F=true,v,A=false,G=[],k=function(a){function
b(){localStorage.setItem(document.location.href+".gui",JSON.stringify(d.getSaveObject()))}function
c(){var a=d.getRoot();a.width+=1;i.defer(function(){a.width-=1})}var
d=this;this.domElement=document.createElement("div");this.__ul=document.createElement("ul");this.domElem
[...]
+g.addClass(this.domElement,"dg");this.__folders={};this.__controllers=[];this.__rememberedObjects=[];this.__rememberedObjectIndecesToControllers=[];this.__listening=[];a=a||{};a=i.defaults(a,{autoPlace:true,width:k.DEFAULT_WIDTH});a=i.defaults(a,{resizable:a.autoPlace,hideable:a.autoPlace});if(i.isUndefined(a.load))a.load={preset:w};else
if(a.preset)a.load.preset=a.preset;i.isUndefined(a.parent)&&a.hideable&&G.push(this);a.resizable=i.isUndefined(a.parent)&&a.resizable;if(a.autoPlace&&i.
[...]
+true;var
e=u&&localStorage.getItem(document.location.href+".isLocal")==="true";Object.defineProperties(this,{parent:{get:function(){return
a.parent}},scrollable:{get:function(){return
a.scrollable}},autoPlace:{get:function(){return
a.autoPlace}},preset:{get:function(){return
d.parent?d.getRoot().preset:a.load.preset},set:function(b){d.parent?d.getRoot().preset=b:a.load.preset=b;for(b=0;b<this.__preset_select.length;b++)if(this.__preset_select[b].value==this.preset)this.__preset_select.se
[...]
+b;d.revert()}},width:{get:function(){return
a.width},set:function(b){a.width=b;D(d,b)}},name:{get:function(){return
a.name},set:function(b){a.name=b;if(m)m.innerHTML=a.name}},closed:{get:function(){return
a.closed},set:function(b){a.closed=b;a.closed?g.addClass(d.__ul,k.CLASS_CLOSED):g.removeClass(d.__ul,k.CLASS_CLOSED);this.onResize();if(d.__closeButton)d.__closeButton.innerHTML=b?k.TEXT_OPEN:k.TEXT_CLOSED}},load:{get:function(){return
a.load}},useLocalStorage:{get:function(){return e}, [...]
+((e=a)?g.bind(window,"unload",b):g.unbind(window,"unload",b),localStorage.setItem(document.location.href+".isLocal",a))}}});if(i.isUndefined(a.parent)){a.closed=false;g.addClass(this.domElement,k.CLASS_MAIN);g.makeSelectable(this.domElement,false);if(u&&e){d.useLocalStorage=true;var
f=localStorage.getItem(document.location.href+".gui");if(f)a.load=JSON.parse(f)}this.__closeButton=document.createElement("div");this.__closeButton.innerHTML=k.TEXT_CLOSED;g.addClass(this.__closeButton,k.CLAS
[...]
+this.domElement.appendChild(this.__closeButton);g.bind(this.__closeButton,"click",function(){d.closed=!d.closed})}else{if(a.closed===void
0)a.closed=true;var
m=document.createTextNode(a.name);g.addClass(m,"controller-name");f=s(d,m);g.addClass(this.__ul,k.CLASS_CLOSED);g.addClass(f,"title");g.bind(f,"click",function(a){a.preventDefault();d.closed=!d.closed;return
false});if(!a.closed)this.closed=false}a.autoPlace&&(i.isUndefined(a.parent)&&(F&&(v=document.createElement("div"),g.addClass(
[...]
+k.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(v),F=false),v.appendChild(this.domElement),g.addClass(this.domElement,k.CLASS_AUTO_PLACE)),this.parent||D(d,a.width));g.bind(window,"resize",function(){d.onResize()});g.bind(this.__ul,"webkitTransitionEnd",function(){d.onResize()});g.bind(this.__ul,"transitionend",function(){d.onResize()});g.bind(this.__ul,"oTransitionEnd",function(){d.onResize()});this.onResize();a.resizable&&J(this);d.getRoot();a.parent||c()};k.toggleHide=function
[...]
+function(a){a.domElement.style.zIndex=A?-999:999;a.domElement.style.opacity=A?0:1})};k.CLASS_AUTO_PLACE="a";k.CLASS_AUTO_PLACE_CONTAINER="ac";k.CLASS_MAIN="main";k.CLASS_CONTROLLER_ROW="cr";k.CLASS_TOO_TALL="taller-than-window";k.CLASS_CLOSED="closed";k.CLASS_CLOSE_BUTTON="close-button";k.CLASS_DRAG="drag";k.DEFAULT_WIDTH=245;k.TEXT_CLOSED="Close
Controls";k.TEXT_OPEN="Open
Controls";g.bind(window,"keydown",function(a){document.activeElement.type!=="text"&&(a.which===72||a.keyCode==72)&&
[...]
+false);i.extend(k.prototype,{add:function(a,b){return
q(this,a,b,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(a,b){return
q(this,a,b,{color:true})},remove:function(a){this.__ul.removeChild(a.__li);this.__controllers.slice(this.__controllers.indexOf(a),1);var
b=this;i.defer(function(){b.onResize()})},destroy:function(){this.autoPlace&&v.removeChild(this.domElement)},addFolder:function(a){if(this.__folders[a]!==void
0)throw Error('You already have a folder in t [...]
+a+'"');var
b={name:a,parent:this};b.autoPlace=this.autoPlace;if(this.load&&this.load.folders&&this.load.folders[a])b.closed=this.load.folders[a].closed,b.load=this.load.folders[a];b=new
k(b);this.__folders[a]=b;a=s(this,b.domElement);g.addClass(a,"folder");return
b},open:function(){this.closed=false},close:function(){this.closed=true},onResize:function(){var
a=this.getRoot();if(a.scrollable){var
b=g.getOffset(a.__ul).top,c=0;i.each(a.__ul.childNodes,function(b){a.autoPlace&&b===a.__save_
[...]
+g.getHeight(b))});window.innerHeight-b-20<c?(g.addClass(a.domElement,k.CLASS_TOO_TALL),a.__ul.style.height=window.innerHeight-b-20+"px"):(g.removeClass(a.domElement,k.CLASS_TOO_TALL),a.__ul.style.height="auto")}a.__resize_handle&&i.defer(function(){a.__resize_handle.style.height=a.__ul.offsetHeight+"px"});if(a.__closeButton)a.__closeButton.style.width=a.width+"px"},remember:function(){if(i.isUndefined(x))x=new
y,x.domElement.innerHTML=a;if(this.parent)throw Error("You can only call remem
[...]
+var
b=this;i.each(Array.prototype.slice.call(arguments),function(a){b.__rememberedObjects.length==0&&I(b);b.__rememberedObjects.indexOf(a)==-1&&b.__rememberedObjects.push(a)});this.autoPlace&&D(this,this.width)},getRoot:function(){for(var
a=this;a.parent;)a=a.parent;return a},getSaveObject:function(){var
a=this.load;a.closed=this.closed;if(this.__rememberedObjects.length>0){a.preset=this.preset;if(!a.remembered)a.remembered={};a.remembered[this.preset]=z(this)}a.folders={};i.each(this.__
[...]
+c){a.folders[c]=b.getSaveObject()});return
a},save:function(){if(!this.load.remembered)this.load.remembered={};this.load.remembered[this.preset]=z(this);B(this,false)},saveAs:function(a){if(!this.load.remembered)this.load.remembered={},this.load.remembered[w]=z(this,true);this.load.remembered[a]=z(this);this.preset=a;C(this,a,true)},revert:function(a){i.each(this.__controllers,function(b){this.getRoot().load.remembered?t(a||this.getRoot(),b):b.setValue(b.initialValue)},this);i.each(this.
[...]
+function(a){a.revert(a)});a||B(this.getRoot(),false)},listen:function(a){var
b=this.__listening.length==0;this.__listening.push(a);b&&E(this.__listening)}});return
k}(dat.utils.css,'<div id="dg-save" class="dg dialogue">\n\n Here\'s the new
load parameter for your <code>GUI</code>\'s constructor:\n\n <textarea
id="dg-new-constructor"></textarea>\n\n <div id="dg-save-locally">\n\n
<input id="dg-local-storage" type="checkbox"/> Automatically save\n values
to <code>localStorage</co [...]
+".dg
ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac)
.main{overflow:hidden}.dg.main{-webkit-transition:opacity 0.1s
linear;-o-transition:opacity 0.1s linear;-moz-transition:opacity 0.1s
linear;transition:opacity 0.1s
linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window
.close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main
ul.closed .close-button{opacity [...]
+dat.controllers.factory=function(e,a,c,d,f,b,n){return function(h,j,m,l){var
o=h[j];if(n.isArray(m)||n.isObject(m))return new
e(h,j,m);if(n.isNumber(o))return n.isNumber(m)&&n.isNumber(l)?new
c(h,j,m,l):new a(h,j,{min:m,max:l});if(n.isString(o))return new
d(h,j);if(n.isFunction(o))return new f(h,j,"");if(n.isBoolean(o))return new
b(h,j)}}(dat.controllers.OptionController,dat.controllers.NumberControllerBox,dat.controllers.NumberControllerSlider,dat.controllers.StringController=function(e
[...]
+function(c,b){function
e(){h.setValue(h.__input.value)}d.superclass.call(this,c,b);var
h=this;this.__input=document.createElement("input");this.__input.setAttribute("type","text");a.bind(this.__input,"keyup",e);a.bind(this.__input,"change",e);a.bind(this.__input,"blur",function(){h.__onFinishChange&&h.__onFinishChange.call(h,h.getValue())});a.bind(this.__input,"keydown",function(a){a.keyCode===13&&this.blur()});this.updateDisplay();this.domElement.appendChild(this.__input)};d.superclass=
[...]
+e.prototype,{updateDisplay:function(){if(!a.isActive(this.__input))this.__input.value=this.getValue();return
d.superclass.prototype.updateDisplay.call(this)}});return
d}(dat.controllers.Controller,dat.dom.dom,dat.utils.common),dat.controllers.FunctionController,dat.controllers.BooleanController,dat.utils.common),dat.controllers.Controller,dat.controllers.BooleanController,dat.controllers.FunctionController,dat.controllers.NumberControllerBox,dat.controllers.NumberControllerSlider,dat.con
[...]
+dat.controllers.ColorController=function(e,a,c,d,f){function
b(a,b,c,d){a.style.background="";f.each(j,function(e){a.style.cssText+="background:
"+e+"linear-gradient("+b+", "+c+" 0%, "+d+" 100%); "})}function
n(a){a.style.background="";a.style.cssText+="background:
-moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%,
#00ff00 67%, #ffff00 84%, #ff0000 100%);";a.style.cssText+="background:
-webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%
[...]
+a.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff
17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000
100%);";a.style.cssText+="background: -ms-linear-gradient(top, #ff0000
0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000
100%);";a.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff
17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var
h=function(e,l){function o(b){q(b);a.bind(window,"mousemove",q); [...]
+"mouseup",j)}function
j(){a.unbind(window,"mousemove",q);a.unbind(window,"mouseup",j)}function
g(){var
a=d(this.value);a!==false?(p.__color.__state=a,p.setValue(p.__color.toOriginal())):this.value=p.__color.toString()}function
i(){a.unbind(window,"mousemove",s);a.unbind(window,"mouseup",i)}function
q(b){b.preventDefault();var
c=a.getWidth(p.__saturation_field),d=a.getOffset(p.__saturation_field),e=(b.clientX-d.left+document.body.scrollLeft)/c,b=1-(b.clientY-d.top+document.body.scrollTop)
[...]
+1:b<0&&(b=0);e>1?e=1:e<0&&(e=0);p.__color.v=b;p.__color.s=e;p.setValue(p.__color.toOriginal());return
false}function s(b){b.preventDefault();var
c=a.getHeight(p.__hue_field),d=a.getOffset(p.__hue_field),b=1-(b.clientY-d.top+document.body.scrollTop)/c;b>1?b=1:b<0&&(b=0);p.__color.h=b*360;p.setValue(p.__color.toOriginal());return
false}h.superclass.call(this,e,l);this.__color=new
c(this.getValue());this.__temp=new c(0);var
p=this;this.domElement=document.createElement("div");a.makeSelectab [...]
+false);this.__selector=document.createElement("div");this.__selector.className="selector";this.__saturation_field=document.createElement("div");this.__saturation_field.className="saturation-field";this.__field_knob=document.createElement("div");this.__field_knob.className="field-knob";this.__field_knob_border="2px
solid
";this.__hue_knob=document.createElement("div");this.__hue_knob.className="hue-knob";this.__hue_field=document.createElement("div");this.__hue_field.className="hue-field"
[...]
+document.createElement("input");this.__input.type="text";this.__input_textShadow="0
1px 1px
";a.bind(this.__input,"keydown",function(a){a.keyCode===13&&g.call(this)});a.bind(this.__input,"blur",g);a.bind(this.__selector,"mousedown",function(){a.addClass(this,"drag").bind(window,"mouseup",function(){a.removeClass(p.__selector,"drag")})});var
t=document.createElement("div");f.extend(this.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px
1px [...]
+f.extend(this.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:this.__field_knob_border+(this.__color.v<0.5?"#fff":"#000"),boxShadow:"0px
1px 3px
rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1});f.extend(this.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px
solid
#fff",zIndex:1});f.extend(this.__saturation_field.style,{width:"100px",height:"100px",border:"1px
solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"});f.
[...]
+{width:"100%",height:"100%",background:"none"});b(t,"top","rgba(0,0,0,0)","#000");f.extend(this.__hue_field.style,{width:"15px",height:"100px",display:"inline-block",border:"1px
solid
#555",cursor:"ns-resize"});n(this.__hue_field);f.extend(this.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:this.__input_textShadow+"rgba(0,0,0,0.7)"});a.bind(this.__saturation_field,"mousedown",o);a.bind(this.__field_knob,"mousedown",o);a.bind(this.__hue
[...]
+function(b){s(b);a.bind(window,"mousemove",s);a.bind(window,"mouseup",i)});this.__saturation_field.appendChild(t);this.__selector.appendChild(this.__field_knob);this.__selector.appendChild(this.__saturation_field);this.__selector.appendChild(this.__hue_field);this.__hue_field.appendChild(this.__hue_knob);this.domElement.appendChild(this.__input);this.domElement.appendChild(this.__selector);this.updateDisplay()};h.superclass=e;f.extend(h.prototype,e.prototype,{updateDisplay:function(){var
[...]
+if(a!==false){var
e=false;f.each(c.COMPONENTS,function(b){if(!f.isUndefined(a[b])&&!f.isUndefined(this.__color.__state[b])&&a[b]!==this.__color.__state[b])return
e=true,{}},this);e&&f.extend(this.__color.__state,a)}f.extend(this.__temp.__state,this.__color.__state);this.__temp.a=1;var
h=this.__color.v<0.5||this.__color.s>0.5?255:0,j=255-h;f.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toString(),b
[...]
+"rgb("+h+","+h+","+h+")"});this.__hue_knob.style.marginTop=(1-this.__color.h/360)*100+"px";this.__temp.s=1;this.__temp.v=1;b(this.__saturation_field,"left","#fff",this.__temp.toString());f.extend(this.__input.style,{backgroundColor:this.__input.value=this.__color.toString(),color:"rgb("+h+","+h+","+h+")",textShadow:this.__input_textShadow+"rgba("+j+","+j+","+j+",.7)"})}});var
j=["-moz-","-o-","-webkit-","-ms-",""];return
h}(dat.controllers.Controller,dat.dom.dom,dat.color.Color=function( [...]
+b,c){Object.defineProperty(a,b,{get:function(){if(this.__state.space==="RGB")return
this.__state[b];n(this,b,c);return
this.__state[b]},set:function(a){if(this.__state.space!=="RGB")n(this,b,c),this.__state.space="RGB";this.__state[b]=a}})}function
b(a,b){Object.defineProperty(a,b,{get:function(){if(this.__state.space==="HSV")return
this.__state[b];h(this);return
this.__state[b]},set:function(a){if(this.__state.space!=="HSV")h(this),this.__state.space="HSV";this.__state[b]=a}})}function
[...]
+"HEX")b.__state[c]=a.component_from_hex(b.__state.hex,e);else
if(b.__state.space==="HSV")d.extend(b.__state,a.hsv_to_rgb(b.__state.h,b.__state.s,b.__state.v));else
throw"Corrupted color state";}function h(b){var
c=a.rgb_to_hsv(b.r,b.g,b.b);d.extend(b.__state,{s:c.s,v:c.v});if(d.isNaN(c.h)){if(d.isUndefined(b.__state.h))b.__state.h=0}else
b.__state.h=c.h}var
j=function(){this.__state=e.apply(this,arguments);if(this.__state===false)throw"Failed
to interpret color arguments";this.__state.a= [...]
+1};j.COMPONENTS="r,g,b,h,s,v,hex,a".split(",");d.extend(j.prototype,{toString:function(){return
c(this)},toOriginal:function(){return
this.__state.conversion.write(this)}});f(j.prototype,"r",2);f(j.prototype,"g",1);f(j.prototype,"b",0);b(j.prototype,"h");b(j.prototype,"s");b(j.prototype,"v");Object.defineProperty(j.prototype,"a",{get:function(){return
this.__state.a},set:function(a){this.__state.a=a}});Object.defineProperty(j.prototype,"hex",{get:function(){if(!this.__state.space!=="HEX"
[...]
+a.rgb_to_hex(this.r,this.g,this.b);return
this.__state.hex},set:function(a){this.__state.space="HEX";this.__state.hex=a}});return
j}(dat.color.interpret,dat.color.math=function(){var
e;return{hsv_to_rgb:function(a,c,d){var
e=a/60-Math.floor(a/60),b=d*(1-c),n=d*(1-e*c),c=d*(1-(1-e)*c),a=[[d,c,b],[n,d,b],[b,d,c],[b,n,d],[c,b,d],[d,b,n]][Math.floor(a/60)%6];return{r:a[0]*255,g:a[1]*255,b:a[2]*255}},rgb_to_hsv:function(a,c,d){var
e=Math.min(a,c,d),b=Math.max(a,c,d),e=b-e;if(b==0)return{h:NaN [...]
+a=a==b?(c-d)/e:c==b?2+(d-a)/e:4+(a-c)/e;a/=6;a<0&&(a+=1);return{h:a*360,s:e/b,v:b/255}},rgb_to_hex:function(a,c,d){a=this.hex_with_component(0,2,a);a=this.hex_with_component(a,1,c);return
a=this.hex_with_component(a,0,d)},component_from_hex:function(a,c){return
a>>c*8&255},hex_with_component:function(a,c,d){return
d<<(e=c*8)|a&~(255<<e)}}}(),dat.color.toString,dat.utils.common),dat.color.interpret,dat.utils.common),dat.utils.requestAnimationFrame=function(){return
window.webkitRequestAni [...]
+window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1E3/60)}}(),dat.dom.CenteredDiv=function(e,a){var
c=function(){this.backgroundElement=document.createElement("div");a.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity
0.2s
linear"});e.makeFullscreen(this.backgroundElement);this.backgroundElement.style.position="fi
[...]
+document.createElement("div");a.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform
0.2s ease-out, opacity 0.2s
linear"});document.body.appendChild(this.backgroundElement);document.body.appendChild(this.domElement);var
c=this;e.bind(this.backgroundElement,"click",function(){c.hide()})};c.prototype.show=function(){var
c=this;this.backgroundElement.style.display="block";this.domElement.style.display="block";this.domEleme
[...]
+0;this.domElement.style.webkitTransform="scale(1.1)";this.layout();a.defer(function(){c.backgroundElement.style.opacity=1;c.domElement.style.opacity=1;c.domElement.style.webkitTransform="scale(1)"})};c.prototype.hide=function(){var
a=this,c=function(){a.domElement.style.display="none";a.backgroundElement.style.display="none";e.unbind(a.domElement,"webkitTransitionEnd",c);e.unbind(a.domElement,"transitionend",c);e.unbind(a.domElement,"oTransitionEnd",c)};e.bind(this.domElement,"webkitTran
[...]
+c);e.bind(this.domElement,"transitionend",c);e.bind(this.domElement,"oTransitionEnd",c);this.backgroundElement.style.opacity=0;this.domElement.style.opacity=0;this.domElement.style.webkitTransform="scale(1.1)"};c.prototype.layout=function(){this.domElement.style.left=window.innerWidth/2-e.getWidth(this.domElement)/2+"px";this.domElement.style.top=window.innerHeight/2-e.getHeight(this.domElement)/2+"px"};return
c}(dat.dom.dom,dat.utils.common),dat.dom.dom,dat.utils.common);
\ No newline at end of file
diff --git a/e2e/e2e-asset/jquery.min.js b/e2e/e2e-asset/jquery.min.js
new file mode 100644
index 00000000..0f60b7bd
--- /dev/null
+++ b/e2e/e2e-asset/jquery.min.js
@@ -0,0 +1,5 @@
+/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. |
jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof
module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw
new Error("jQuery requires a window with a document");return
b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var
c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return
new
m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b
[...]
+
+return!0}function Q(a,b,d,e){if(m.acceptData(a)){var
f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void
0!==d||"string"!=typeof b)return
k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof
b||"function"==typeof
b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void
0!==d&&(g[m.camelCase(b)]=d),"string"==typeof
b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}fu [...]
+return new
Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var
a=Za.propHooks[this.prop];return
a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var
b,c=Za.propHooks[this.prop];return
this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,
[...]
diff --git a/e2e/main.js b/e2e/main.js
index 005966e9..4d9b89ef 100644
--- a/e2e/main.js
+++ b/e2e/main.js
@@ -159,14 +159,14 @@ async function installPackages(config) {
const dir = pkg.dir;
if (!fs.existsSync(dir)) {
console.warn(
- chalk.yellow(`${dir} not exists. Please update it in e2e/config.js.`)
+ chalk.yellow(`${dir} not exists. Please ensure the path is correct in
e2e/config.js.`)
);
return false;
}
if (!nodePath.isAbsolute(dir)) {
console.warn(
chalk.yellow(
- `${dir} is not an absolute path. Please update it in e2e/config.js.`
+ `${dir} is not an absolute path. Please ensure the path is correct
in e2e/config.js.`
)
);
return false;
@@ -265,7 +265,8 @@ async function installPackages(config) {
`Installing ${pkg.name} from
"${publishedPackages[pkg.name].targetTgzFilePath}" ...`
)
);
- if (shell.exec(`npm install
${publishedPackages[pkg.name].targetTgzFilePath}`).code !== 0) {
+ // Use `--force` because some pkg have echarts dependency confliction.
+ if (shell.exec(`npm install
${publishedPackages[pkg.name].targetTgzFilePath} --force`).code !== 0) {
console.log(`shell fail: npm install
${publishedPackages[pkg.name].targetTgzFilePath}`);
process.exit(1);
}
@@ -697,9 +698,10 @@ async function runExamples(jsFiles, result) {
const browser = await puppeteer.launch({
headless: false,
args: [
- '--headless',
+ '--headless', // If network error always happens, try to comment this
line to use headful mode
'--hide-scrollbars',
// https://github.com/puppeteer/puppeteer/issues/4913
+ // But if encounter 'creating WebGL Context Error'", comment the
following arg.
'--use-gl=egl',
'--mute-audio'
]
@@ -716,9 +718,12 @@ async function runExamples(jsFiles, result) {
// TODO Record pageerror
console.error(chalk.red(`[PAGE ERROR] [${basename}]`));
console.error(chalk.red(err.toString()));
+ // Too verbose to print err.stack, but we can uncomment the
following sentence to debug.
+ // console.error(chalk.red(err.toString() + ' ' + err.stack));
});
- page.on('console', (msg) => {
- const text = msg.text();
+ page.on('console', async (msg) => {
+ let text = msg.text();
+ // text += ' ' + JSON.stringify(arguments[1]);
if (!IGNORE_LOG.find((a) => text.indexOf(a) >= 0)) {
console.log(chalk.gray(`[PAGE LOG] [${basename}]: ${text}`));
}
@@ -726,12 +731,12 @@ async function runExamples(jsFiles, result) {
await page.goto(`${baseUrl}/e2e/template.html`, {
waitUntil: 'networkidle0',
- timeout: 10000
+ timeout: 20000
});
await page.addScriptTag({
url: `${baseUrl}/e2e/tmp/bundles/${basename}.js`
});
- await waitTime(200);
+ await waitTime(2000);
await page.screenshot({
type: 'png',
diff --git a/e2e/preview.html b/e2e/preview.html
index 46f4ad58..80093272 100644
--- a/e2e/preview.html
+++ b/e2e/preview.html
@@ -3,14 +3,11 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <script
- type="text/javascript"
- src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"
- ></script>
- <script
- type="text/javascript"
- src="https://cdn.jsdelivr.net/npm/[email protected]/build/dat.gui.min.js"
- ></script>
+ <!-- CDN is unstable -- use local assets instead -->
+ <!-- <script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script> -->
+ <!-- <script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/[email protected]/build/dat.gui.min.js"></script>
-->
+ <script type="text/javascript" src="/e2e/e2e-asset/jquery.min.js"></script>
+ <script type="text/javascript"
src="/e2e/e2e-asset/dat.gui.min.js"></script>
<title>Test Container</title>
</head>
<body>
@@ -29,6 +26,6 @@
}
</style>
<div id="main"></div>
- <script src="tmp/bundles/graph-grid.js"></script>
+ <script src="tmp/bundles/graph-label-overlap.js"></script>
</body>
</html>
diff --git a/e2e/template.html b/e2e/template.html
index 664924ff..331d6ba5 100644
--- a/e2e/template.html
+++ b/e2e/template.html
@@ -3,14 +3,11 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <script
- type="text/javascript"
- src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"
- ></script>
- <script
- type="text/javascript"
- src="https://cdn.jsdelivr.net/npm/[email protected]/build/dat.gui.min.js"
- ></script>
+ <!-- CDN is unstable -- use local assets instead -->
+ <!-- <script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script> -->
+ <!-- <script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/[email protected]/build/dat.gui.min.js"></script>
-->
+ <script type="text/javascript" src="/e2e/e2e-asset/jquery.min.js"></script>
+ <script type="text/javascript"
src="/e2e/e2e-asset/dat.gui.min.js"></script>
<title>Test Container</title>
</head>
<body>
@@ -29,5 +26,6 @@
}
</style>
<div id="main"></div>
+ <!-- [DO_NOT_MODIFY_THIS_LINE_USED_BY_EC_VISUAL_TEST_INJECTING_SCRIPT] -->
</body>
</html>
diff --git a/package.json b/package.json
index c4f45c7b..81078eb4 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,10 @@
"compile:example": "node tool/compile-example.js",
"test:e2e": "node e2e/main.js --bundler webpack -m",
"test:e2e:local": "node e2e/main.js --bundler webpack -m --local",
+ "test:e2e:local:nomin": "node e2e/main.js --bundler webpack --local",
"test:e2e:esbuild": "node e2e/main.js --bundler esbuild -m",
"test:e2e:esbuild:local": "node e2e/main.js --bundler esbuild -m --local",
+ "test:e2e:esbuild:local:nomin": "node e2e/main.js --bundler esbuild
--local",
"server": "node build/server.js"
},
"devDependencies": {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]