ui mvp done
This commit is contained in:
parent
fb92add03f
commit
3d201a52cf
11 changed files with 77158 additions and 0 deletions
6
scraped/before_solr.sh
Executable file
6
scraped/before_solr.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm tosolr.csv
|
||||
touch tosolr.csv
|
||||
pv 123rf.csv | awk '{print NR-1 "," $0}' | tail -n +2 | awk 'BEGIN {print "id,t_author,t_title,t_description,date,img_url,tags"} {print}' >> tosolr.csv
|
||||
pv photos.csv | awk '{print NR-1 "," $0}' | tail -n +2 | awk 'BEGIN {print "id,t_author,t_title,t_description,date,img_url,tags"} {print}' >> tosolr.csv
|
74413
scraped/tosolr.csv
Normal file
74413
scraped/tosolr.csv
Normal file
File diff suppressed because one or more lines are too long
208
ui/LICENSE.txt
Normal file
208
ui/LICENSE.txt
Normal file
|
@ -0,0 +1,208 @@
|
|||
Carrot Search FoamTree License Agreement
|
||||
|
||||
By downloading, installing, copying, saving on your computer, or otherwise
|
||||
using this software, you (Licensee, as defined below) are becoming a party to
|
||||
this Agreement and you are consenting to be bound by all the terms and
|
||||
conditions of this Agreement. If you do not agree to the terms and conditions
|
||||
of this Agreement, you should not download, install or use the software.
|
||||
|
||||
If there is a separate agreement in force between Carrot Search and the
|
||||
Licensee, Licensee will not be bound by this Agreement.
|
||||
|
||||
Upon your acceptance of this Agreement, Carrot Search grants to you a
|
||||
non-exclusive and non-transferable license to use FoamTree, provided that you
|
||||
agree to the following:
|
||||
|
||||
|
||||
1. Parties
|
||||
|
||||
a. Carrot Search means Carrot Search s.c., located at Boznicza 11/57, 61-751
|
||||
Poznan, Poland.
|
||||
|
||||
b. Licensee means the individual or legal entity specified in the License File
|
||||
defined below.
|
||||
|
||||
|
||||
2. Definitions
|
||||
|
||||
a. FoamTree means a software system for visualizing hierarchical data
|
||||
structures. FoamTree is distributed in a binary form along with documentation.
|
||||
|
||||
b. Integration Code means the source code provided by Carrot Search to Licensee
|
||||
to facilitate integration of FoamTree with the software developed by Licensee.
|
||||
|
||||
c. License File means electronic evidence and specification of the license
|
||||
granted to the Licensee by Carrot Search. Only Carrot Search is permitted to
|
||||
produce License Files for FoamTree.
|
||||
|
||||
d. Licensing Period means the perpetual or limited period in which Licensee can
|
||||
use FoamTree. Licensing Period is specified in the License File.
|
||||
|
||||
e. Maintenance Period means the limited period in which Licensee is entitled to
|
||||
upgrade to new versions of FoamTree and receive support. Maintenance Period is
|
||||
specified in the License File.
|
||||
|
||||
f. Server means a computer controlled by Licensee which serves FoamTree for the
|
||||
purposes of delivering services to end users. Identification of the Server in
|
||||
the License File may vary based on the characteristics of Licensee's software
|
||||
that uses FoamTree.
|
||||
|
||||
|
||||
3. Ownership
|
||||
|
||||
a. FoamTree is the property of Carrot Search. FoamTree is licensed, not sold.
|
||||
Title and copyrights to FoamTree, in whole or in part, and all copies thereof,
|
||||
and all modifications, enhancements, derivatives and other alterations of
|
||||
FoamTree, regardless of who made them, if any, are, and will remain, the sole
|
||||
and exclusive property of Carrot Search.
|
||||
|
||||
b. The structure, organization, and code embodied in FoamTree, except for
|
||||
Integration Code, are valuable and confidential trade secrets of Carrot Search
|
||||
and are protected by copyright laws, intellectual property laws and treaties.
|
||||
Licensee agrees to abide by the copyright law and all other applicable laws.
|
||||
|
||||
|
||||
4. Grant of license
|
||||
|
||||
Subject to the terms, conditions, and limitations set forth in this Agreement,
|
||||
Carrot Search hereby grants to Licensee a worldwide, limited, non-exclusive,
|
||||
non-transferable license to use FoamTree as follows:
|
||||
|
||||
a. Licensee may:
|
||||
|
||||
i. serve FoamTree from the Server or Servers identified in the License File
|
||||
for the purposes of delivering services to end users during the Licensing
|
||||
Period;
|
||||
|
||||
ii. use FoamTree on computers controlled by Licensee for the purposes of
|
||||
development of Licensee's software dependent on FoamTree during the Licensing
|
||||
Period;
|
||||
|
||||
iii. upgrade to any version of FoamTree released during the Maintenance
|
||||
Period;
|
||||
|
||||
iv. include Integration Code, in entirety or in parts, in the software
|
||||
developed by Licensee;
|
||||
|
||||
v. make back-up copies of FoamTree and License File solely for archival
|
||||
purposes;
|
||||
|
||||
vi. use the Limited Version of FoamTree, as described in Section 5, without
|
||||
purchasing a License File.
|
||||
|
||||
|
||||
b. Licensee may not:
|
||||
|
||||
i. sell, redistribute, encumber, give, lend, rent, lease, sublicense, or
|
||||
otherwise transfer FoamTree, or any portions of FoamTree, to anyone without
|
||||
the prior written consent of Carrot Search;
|
||||
|
||||
ii. reverse engineer, decompile, disassemble, modify, translate, make any
|
||||
attempt to discover the source code of FoamTree, or create derivative works
|
||||
from FoamTree;
|
||||
|
||||
iii. allow the use of FoamTree on Servers not identified in the License File;
|
||||
|
||||
iv. disable, remove or circumvent the feature limitation mechanisms built
|
||||
into the Limited Version of FoamTree. Any attempt to do so will be in
|
||||
violation of this Agreement and will terminate Licensee's rights to use
|
||||
FoamTree.
|
||||
|
||||
|
||||
c. Carrot Search will:
|
||||
|
||||
i. promptly, and in any event within 72 hours, respond to e-mail requests
|
||||
for support that are made during mutually agreed upon business hours, taking
|
||||
into account time zone differences, except weekends and holidays;
|
||||
|
||||
ii. notify Licensee of and provide any bug fix and new releases of FoamTree;
|
||||
|
||||
iii. provide a number of free consulting hours, specified in the License
|
||||
File, for integration code adjustments, performance tuning and extra
|
||||
documentation. Any additional technical support shall be charged at standard
|
||||
Carrot Search hourly rate.
|
||||
|
||||
|
||||
5. Use of the Limited Version
|
||||
|
||||
a. Subject to the terms of this Agreement, Licensee is granted a right to use
|
||||
the Limited Version of FoamTree without charge;
|
||||
|
||||
|
||||
6. Disclaimer of warranty
|
||||
|
||||
FoamTree is provided on an "as is" without warranties of any kind, express,
|
||||
implied or statutory, including but not limited to, the implied warranties of
|
||||
title, noninfringement, merchantability and fitness for a particular purpose.
|
||||
|
||||
|
||||
7. Disclaimer of damages
|
||||
|
||||
a. Regardless of whether any remedy set forth herein fails of its essential
|
||||
purpose, in no event will Carrot Search be liable to Licensee under any theory
|
||||
for any damages suffered by Licensee or any user of FoamTree, or for any
|
||||
special, incidental, indirect, consequential, or similar damages (including
|
||||
without limitation, damages for loss of business profits, business
|
||||
interruption, loss of business information, or any other pecuniary loss)
|
||||
arising out of the use or inability to use FoamTree, or the provision of or
|
||||
failure to provide support services, even if Carrot Search has been advised of
|
||||
the possibility of such damages, and regardless of the legal or equitable
|
||||
theory (contract, tort or otherwise) upon which the claim is based;
|
||||
|
||||
b. In any case, Carrot Search's entire liability under any provision of this
|
||||
agreement will be limited to the amount actually paid by licensee for FoamTree.
|
||||
|
||||
|
||||
8. Term and Termination
|
||||
|
||||
This Agreement takes effect upon Licensee's acceptance of the terms of this
|
||||
Agreement and remains effective until terminated by either party in accordance
|
||||
with this Agreement. Licensee may terminate this Agreement at any time by
|
||||
destroying all copies of FoamTree. This Agreement will automatically terminate
|
||||
if Licensee fails to comply with any term or condition of this Agreement. Upon
|
||||
termination of this Agreement, Licensee warrants that they will immediately
|
||||
destroy all copies of FoamTree.
|
||||
|
||||
|
||||
9. General
|
||||
|
||||
a. Unless the Licensee explicitly opts out by notifying the Carrot Search, the
|
||||
Licensee agrees to be identified as a customer of Carrot Search and that Carrot
|
||||
Search may refer to Licensee by name, trade name and trademark on Carrot Search
|
||||
web site and marketing materials;
|
||||
|
||||
b. Carrot Search reserves the right at any time to cease the support of FoamTree
|
||||
and to alter prices, features, specifications, capabilities, functions,
|
||||
licensing terms, release dates, general availability or other characteristics
|
||||
of FoamTree;
|
||||
|
||||
c. This Agreement, including Third Party Software license agreements,
|
||||
constitutes the entire agreement between the parties concerning Licensee' use
|
||||
of the Software, and supersedes any and all prior or contemporaneous oral or
|
||||
written representations, communications, or advertising with respect to the
|
||||
Software. No purchase order, other ordering document or any hand written or
|
||||
typewritten text which purports to modify or supplement the printed text of
|
||||
this Agreement or any schedule will add to or vary the terms of this Agreement
|
||||
unless signed by both Licensee and Carrot Search.
|
||||
|
||||
d. A waiver by either party of any term or condition of this Agreement or any
|
||||
breach thereof, in any one instance, will not waive such term or condition or
|
||||
any subsequent breach. The provisions of this Agreement which require or
|
||||
contemplate performance after the expiration or termination of this Agreement
|
||||
will be enforceable notwithstanding said expiration or termination.
|
||||
|
||||
e. This Agreement will be construed under the laws of the Polish trade and
|
||||
European Union, without regard to conflicts of laws provisions thereof. This
|
||||
Agreement and the performance of all obligations hereunder shall be governed
|
||||
according to Polish Law and the parties hereto hereby submit to the
|
||||
jurisdiction of the Polish Courts. All civil suits between the parties hereto
|
||||
shall be adjudicated by a common court with official residence in Poznan,
|
||||
Poland.
|
||||
|
||||
f. Titles are inserted for convenience only and will not affect in any way the
|
||||
meaning or interpretation of this Agreement. If any provision of this Agreement
|
||||
is held invalid, the remainder of this Agreement will continue in full force
|
||||
and effect. Either Licensor or Licensee may assign this Agreement in the case
|
||||
of a merger or sale of substantially all of its respective assets to another
|
||||
entity. This Agreement will be binding upon and will inure to the benefit of
|
||||
the parties, their successors and assigns.
|
65
ui/README.txt
Normal file
65
ui/README.txt
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
Carrot Search FoamTree
|
||||
----------------------
|
||||
|
||||
Carrot Search FoamTree is an interactive visualization of hierarchical data
|
||||
structures, such as groups of documents or network domains. It works very well
|
||||
with documents or search results clustered using the Lingo3G document clustering
|
||||
engine.
|
||||
|
||||
|
||||
Contents of this package
|
||||
------------------------
|
||||
|
||||
./carrotsearch.foamtree.js
|
||||
FoamTree implementation, required at runtime.
|
||||
|
||||
./carrotsearch.foamtree.asserts.js
|
||||
Option value validator, useful for development and debugging, not required at runtime.
|
||||
|
||||
./carrotsearch.foamtree.util.*.js
|
||||
Utility scripts that handle a number of typical programming tasks around FoamTree.
|
||||
|
||||
./api/
|
||||
Documentation and API examples.
|
||||
|
||||
./demos/
|
||||
More examples.
|
||||
|
||||
./tests/
|
||||
Automated functional tests of FoamTree.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Open api/index.html in a modern browser (Chrome or Firefox recommended).
|
||||
|
||||
Examples are fully functional when served over the HTTP protocol.
|
||||
Start up a local HTTP daemon (Java required):
|
||||
|
||||
bin/nhttpd.sh -p 8080 # (Linux, Mac)
|
||||
bin\nhttpd.bat -p 8080 # (Windows)
|
||||
|
||||
and open http://localhost:8080 in a browser.
|
||||
|
||||
|
||||
Contact
|
||||
-------
|
||||
|
||||
For further information and support contact Carrot Search: info@carrotsearch.com
|
||||
|
||||
|
||||
Build information
|
||||
-----------------
|
||||
|
||||
Build type : Carrot Search FoamTree HTML5 (demo variant)
|
||||
Build version : 3.4.10
|
||||
Build number : FOAMTREE-SOFTWARE4-DIST-78
|
||||
Build time : Nov 29, 2019
|
||||
Built by : bamboo
|
||||
Build revision: bugfix/3.4.x/b18f7427
|
||||
|
||||
|
||||
Carrot Search Confidential
|
||||
Copyright 2002-2019 Carrot Search
|
1434
ui/carrotsearch.foamtree.asserts.js
Normal file
1434
ui/carrotsearch.foamtree.asserts.js
Normal file
File diff suppressed because it is too large
Load diff
258
ui/carrotsearch.foamtree.js
Normal file
258
ui/carrotsearch.foamtree.js
Normal file
|
@ -0,0 +1,258 @@
|
|||
/**
|
||||
* Carrot Search FoamTree HTML5 (demo variant)
|
||||
* v3.4.10, bugfix/3.4.x/b18f7427, build FOAMTREE-SOFTWARE4-DIST-78, Nov 29, 2019
|
||||
*
|
||||
* Carrot Search confidential.
|
||||
* Copyright 2002-2019, Carrot Search s.c, All Rights Reserved.
|
||||
*/
|
||||
(function() {var v=function(){var a=window.navigator.userAgent,m;try{window.localStorage.setItem("ftap5caavc","ftap5caavc"),window.localStorage.removeItem("ftap5caavc"),m=!0}catch(k){m=!1}return{nf:function(){return/webkit/i.test(a)},mi:function(){return/Mac/.test(a)},lf:function(){return/iPad|iPod|iPhone/.test(a)},hf:function(){return/Android/.test(a)},ii:function(){return"ontouchstart"in window||!!window.DocumentTouch&&document instanceof window.DocumentTouch},hi:function(){return m},gi:function(){var a=document.createElement("canvas");
|
||||
return!(!a.getContext||!a.getContext("2d"))},Dd:function(a,d){return[].forEach&&v.gi()?a&&a():d&&d()}}}();var ba=function(){function a(){return window.performance&&(window.performance.now||window.performance.mozNow||window.performance.msNow||window.performance.oNow||window.performance.webkitNow)||Date.now}var m=a();return{create:function(){return{now:function(){var k=a();return function(){return k.call(window.performance)}}()}},now:function(){return m.call(window.performance)}}}();function da(){function a(){if(!c)throw"AF0";var a=ba.now();0!==g&&(k.Kd=a-g);g=a;d=d.filter(function(a){return null!==a});k.frames++;for(var e=0;e<d.length;e++){var b=d[e];null!==b&&(!0===b.ye.call(b.Xg)?d[e]=null:D.Sc(b.repeat)&&(b.repeat=b.repeat-1,0>=b.repeat&&(d[e]=null)))}d=d.filter(function(a){return null!==a});c=!1;m();a=ba.now()-a;0!==a&&(k.Jd=a);k.totalTime+=a;k.Oe=1E3*k.frames/k.totalTime;g=0===d.length?0:ba.now()}function m(){0<d.length&&!c&&(c=!0,f(a))}var k=this.qg={frames:0,totalTime:0,
|
||||
Jd:0,Kd:0,Oe:0};fa=k;var f=function(){return v.lf()?function(a){window.setTimeout(a,0)}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(){var a=ba.create();return function(e){var b=0;window.setTimeout(function(){var d=a.now();e();b=a.now()-d},16>b?16-b:0)}}()}(),d=[],c=!1,g=0;this.repeat=function(a,e,b){this.cancel(a);d.push({ye:a,Xg:b,repeat:e});m()};this.d=function(a,e){this.repeat(a,
|
||||
1,e)};this.cancel=function(a){for(var e=0;e<d.length;e++){var b=d[e];null!==b&&b.ye===a&&(d[e]=null)}};this.k=function(){d=[]}}var fa;var ga=v.Dd(function(){function a(){this.buffer=[];this.oa=0;this.Gc=D.extend({},g)}function m(a){return function(){var e,b=this.buffer,d=this.oa;b[d++]="call";b[d++]=a;b[d++]=arguments.length;for(e=0;e<arguments.length;e++)b[d++]=arguments[e];this.oa=d}}function k(a){return function(){return d[a].apply(d,arguments)}}var f=document.createElement("canvas");f.width=1;f.height=1;var d=f.getContext("2d"),f=["font"],c="fillStyle globalAlpha globalCompositeOperation lineCap lineDashOffset lineJoin lineWidth miterLimit shadowBlur shadowColor shadowOffsetX shadowOffsetY strokeStyle textAlign textBaseline".split(" "),
|
||||
g={};c.concat(f).forEach(function(a){g[a]=d[a]});a.prototype.clear=function(){this.oa=0};a.prototype.Na=function(){return 0===this.oa};a.prototype.Ta=function(a){function e(a,b,e){for(var d=0,c=a.oa,f=a.buffer;d<e;)f[c++]=b[d++];a.oa=c}function b(a,b,e,d){for(var c=0;c<e;)switch(b[c++]){case "set":a[b[c++]]=b[c++];break;case "setGlobalAlpha":a[b[c++]]=b[c++]*d;break;case "call":var f=b[c++];switch(b[c++]){case 0:a[f]();break;case 1:a[f](b[c++]);break;case 2:a[f](b[c++],b[c++]);break;case 3:a[f](b[c++],
|
||||
b[c++],b[c++]);break;case 4:a[f](b[c++],b[c++],b[c++],b[c++]);break;case 5:a[f](b[c++],b[c++],b[c++],b[c++],b[c++]);break;case 6:a[f](b[c++],b[c++],b[c++],b[c++],b[c++],b[c++]);break;case 7:a[f](b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++]);break;case 8:a[f](b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++]);break;case 9:a[f](b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++],b[c++]);break;default:throw"CB0";}}}a instanceof ga?e(a,this.buffer,this.oa):b(a,this.buffer,this.oa,D.B(a.globalAlpha,
|
||||
1))};a.prototype.replay=a.prototype.Ta;a.prototype.d=function(){return new a};a.prototype.scratch=a.prototype.d;"arc arcTo beginPath bezierCurveTo clearRect clip closePath drawImage fill fillRect fillText lineTo moveTo putImageData quadraticCurveTo rect rotate scale setLineDash setTransform stroke strokeRect strokeText transform translate".split(" ").forEach(function(c){a.prototype[c]=m(c)});["measureText","createLinearGradient","createRadialGradient","createPattern","getLineDash"].forEach(function(c){a.prototype[c]=
|
||||
k(c)});["save","restore"].forEach(function(c){a.prototype[c]=function(a,b){return function(){a.apply(this,arguments);b.apply(this,arguments)}}(m(c),k(c))});f.forEach(function(c){Object.defineProperty(a.prototype,c,{set:function(a){d[c]=a;this.Gc[c]=a;var b=this.buffer;b[this.oa++]="set";b[this.oa++]=c;b[this.oa++]=a},get:function(){return this.Gc[c]}})});c.forEach(function(c){Object.defineProperty(a.prototype,c,{set:function(a){this.Gc[c]=a;var b=this.buffer;b[this.oa++]="globalAlpha"===c?"setGlobalAlpha":
|
||||
"set";b[this.oa++]=c;b[this.oa++]=a},get:function(){return this.Gc[c]}})});a.prototype.roundRect=function(a,c,b,d,f){this.beginPath();this.moveTo(a+f,c);this.lineTo(a+b-f,c);this.quadraticCurveTo(a+b,c,a+b,c+f);this.lineTo(a+b,c+d-f);this.quadraticCurveTo(a+b,c+d,a+b-f,c+d);this.lineTo(a+f,c+d);this.quadraticCurveTo(a,c+d,a,c+d-f);this.lineTo(a,c+f);this.quadraticCurveTo(a,c,a+f,c);this.closePath()};a.prototype.fillPolygonWithText=function(a,c,b,d,f){f||(f={});var k={rb:D.B(f.maxFontSize,G.Ea.rb),
|
||||
Zc:D.B(f.minFontSize,G.Ea.Zc),lineHeight:D.B(f.lineHeight,G.Ea.lineHeight),ob:D.B(f.horizontalPadding,G.Ea.ob),cb:D.B(f.verticalPadding,G.Ea.cb),sb:D.B(f.maxTotalTextHeight,G.Ea.sb),fontFamily:D.B(f.fontFamily,G.Ea.fontFamily),fontStyle:D.B(f.fontStyle,G.Ea.fontStyle),fontVariant:D.B(f.fontVariant,G.Ea.fontVariant),fontWeight:D.B(f.fontWeight,G.Ea.fontWeight),verticalAlign:D.B(f.verticalAlign,G.Ea.verticalAlign)},g=f.cache;if(g&&D.N(f,"area")){g.jd||(g.jd=new ga);var r=f.area,s=D.B(f.cacheInvalidationThreshold,
|
||||
0.05);a=G.xe(k,this,d,a,M.q(a,{}),{x:c,y:b},f.allowForcedSplit||!1,f.allowEllipsis||!1,g,r,s,f.invalidateCache)}else a=G.Le(k,this,d,a,M.q(a,{}),{x:c,y:b},f.allowForcedSplit||!1,f.allowEllipsis||!1);return a.la?{fit:!0,lineCount:a.nc,fontSize:a.fontSize,box:{x:a.ea.x,y:a.ea.y,w:a.ea.f,h:a.ea.i},ellipsis:a.gc}:{fit:!1}};return a});var ha=v.Dd(function(){function a(a){this.Q=a;this.d=[];this.Jb=[void 0];this.Nc=["#SIZE#px sans-serif"];this.Ld=[0];this.Md=[1];this.ie=[0];this.je=[0];this.ke=[0];this.Qd=[10];this.jc=[10];this.Tb=[this.Jb,this.Nc,this.jc,this.Ld,this.Md,this.ie,this.Qd,this.je,this.ke];this.ga=[1,0,0,1,0,0]}function m(a){var c=a.Q,d=a.Tb[0].length-1;a.Jb[d]&&(c.setLineDash(a.Jb[d]),c.Vj=a.Ld[d]);c.miterLimit=a.Qd[d];c.lineWidth=a.Md[d];c.shadowBlur=a.ie[d];c.shadowOffsetX=a.je[d];c.shadowOffsetY=a.ke[d];c.font=
|
||||
a.Nc[d].replace("#SIZE#",a.jc[d].toString())}function k(a){return function(){return this.Q[a].apply(this.Q,arguments)}}function f(a){return function(d,e){var f=this.ga;return this.Q[a].call(this.Q,c(d,e,f),g(d,e,f))}}function d(a){return function(d,e,f,k){var r=this.ga;return this.Q[a].call(this.Q,c(d,e,r),g(d,e,r),f*r[0],k*r[3])}}function c(a,c,d){return a*d[0]+c*d[2]+d[4]}function g(a,c,d){return a*d[1]+c*d[3]+d[5]}function l(a,c){for(var d=0;d<a.length;d++)a[d]*=c[0];return a}a.prototype.save=
|
||||
function(){this.d.push(this.ga.slice(0));for(var a=0;a<this.Tb.length;a++){var c=this.Tb[a];c.push(c[c.length-1])}this.Q.save()};a.prototype.restore=function(){this.ga=this.d.pop();for(var a=0;a<this.Tb.length;a++)this.Tb[a].pop();this.Q.restore();m(this)};a.prototype.scale=function(a,c){var d=this.ga;d[0]*=a;d[1]*=a;d[2]*=c;d[3]*=c;var d=this.ga,e=this.Tb,f=e[0].length-1,k=this.Jb[f];k&&l(k,d);for(k=2;k<e.length;k++){var g=e[k];g[f]*=d[0]}m(this)};a.prototype.translate=function(a,c){var d=this.ga;
|
||||
d[4]+=d[0]*a+d[2]*c;d[5]+=d[1]*a+d[3]*c};["moveTo","lineTo"].forEach(function(b){a.prototype[b]=f(b)});["clearRect","fillRect","strokeRect","rect"].forEach(function(b){a.prototype[b]=d(b)});"fill stroke beginPath closePath clip createImageData createPattern getImageData putImageData getLineDash setLineDash".split(" ").forEach(function(b){a.prototype[b]=k(b)});[{ub:"lineDashOffset",zb:function(a){return a.Ld}},{ub:"lineWidth",zb:function(a){return a.Md}},{ub:"miterLimit",zb:function(a){return a.Qd}},
|
||||
{ub:"shadowBlur",zb:function(a){return a.ie}},{ub:"shadowOffsetX",zb:function(a){return a.je}},{ub:"shadowOffsetY",zb:function(a){return a.ke}}].forEach(function(b){Object.defineProperty(a.prototype,b.ub,{set:function(a){var c=b.zb(this);a*=this.ga[0];c[c.length-1]=a;this.Q[b.ub]=a}})});var e=/(\d+(?:\.\d+)?)px/;Object.defineProperty(a.prototype,"font",{set:function(a){var c=e.exec(a);if(1<c.length){var d=this.jc.length-1;this.jc[d]=parseFloat(c[1]);this.Nc[d]=a.replace(e,"#SIZE#px");this.Q.font=
|
||||
this.Nc[d].replace("#SIZE#",(this.jc[d]*this.ga[0]).toString())}}});"fillStyle globalAlpha globalCompositeOperation lineCap lineJoin shadowColor strokeStyle textAlign textBaseline".split(" ").forEach(function(b){Object.defineProperty(a.prototype,b,{set:function(a){this.Q[b]=a}})});a.prototype.arc=function(a,d,e,f,k,r){var s=this.ga;this.Q.arc(c(a,d,s),g(a,d,s),e*s[0],f,k,r)};a.prototype.arcTo=function(a,d,e,f,k){var r=this.ga;this.Q.arc(c(a,d,r),g(a,d,r),c(e,f,r),g(e,f,r),k*r[0])};a.prototype.bezierCurveTo=
|
||||
function(a,d,e,f,k,r){var s=this.ga;this.Q.bezierCurveTo(c(a,d,s),g(a,d,s),c(e,f,s),g(e,f,s),c(k,r,s),g(k,r,s))};a.prototype.drawImage=function(a,d,e,f,k,r,s,l,m){function y(d,e,f,k){A.push(c(d,e,x));A.push(g(d,e,x));f=D.V(f)?a.width:f;k=D.V(k)?a.height:k;A.push(f*x[0]);A.push(k*x[3])}var x=this.ga,A=[a];D.V(r)?y(d,e,f,k):y(r,s,l,m);this.Q.drawImage.apply(this.Q,A)};a.prototype.quadraticCurveTo=function(a,d,e,f){var k=this.ga;this.Q.quadraticCurveTo(c(a,d,k),g(a,d,k),c(e,f,k),g(e,f,k))};a.prototype.fillText=
|
||||
function(a,d,e,f){var k=this.ga;this.Q.fillText(a,c(d,e,k),g(d,e,k),D.Sc(f)?f*k[0]:1E20)};a.prototype.setLineDash=function(a){a=l(a.slice(0),this.ga);this.Jb[this.Jb.length-1]=a;this.Q.setLineDash(a)};return a});var ja=function(){var a=!v.nf()||v.lf()||v.hf()?1:7;return{eh:function(){function m(a){a.beginPath();ia.le(a,l)}var k=document.createElement("canvas");k.width=800;k.height=600;var f=k.getContext("2d"),d=k.width,k=k.height,c,g=0,l=[{x:0,y:100}];for(c=1;6>=c;c++)g=2*c*Math.PI/6,l.push({x:0+100*Math.sin(g),y:0+100*Math.cos(g)});c={polygonPlainFill:[m,function(a){a.fillStyle="rgb(255, 0, 0)";a.fill()}],polygonPlainStroke:[m,function(a){a.strokeStyle="rgb(128, 0, 0)";a.lineWidth=2;a.closePath();a.stroke()}],
|
||||
polygonGradientFill:[m,function(a){var b=a.createRadialGradient(0,0,10,0,0,60);b.addColorStop(0,"rgb(255, 0, 0)");b.addColorStop(1,"rgb(255, 255, 0)");a.fillStyle=b;a.fill()}],polygonGradientStroke:[m,function(a){var b=a.createLinearGradient(-100,-100,100,100);b.addColorStop(0,"rgb(224, 0, 0)");b.addColorStop(1,"rgb(32, 0, 0)");a.strokeStyle=b;a.lineWidth=2;a.closePath();a.stroke()}],polygonExposureShadow:[m,function(a){a.shadowBlur=50;a.shadowColor="rgba(0, 0, 0, 1)";a.fillStyle="rgba(0, 0, 0, 1)";
|
||||
a.globalCompositeOperation="source-over";a.fill();a.shadowBlur=0;a.shadowColor="transparent";a.globalCompositeOperation="destination-out";a.fill()}],labelPlainFill:[function(a){a.fillStyle="#000";a.font="24px sans-serif";a.textAlign="center"},function(a){a.fillText("Some text",0,-16);a.fillText("for testing purposes",0,16)}]};var g=100/Object.keys(c).length,e=ba.now(),b={},h;for(h in c){var n=c[h],q=ba.now(),p,r=0;do{f.save();f.translate(Math.random()*d,Math.random()*k);p=3*Math.random()+0.5;f.scale(p,
|
||||
p);for(p=0;p<n.length;p++)n[p](f);f.restore();r++;p=ba.now()}while(p-q<g);b[h]=a*(p-q)/r}b.total=ba.now()-e;return b}}}();var ia={le:function(a,m){var k=m[0];a.moveTo(k.x,k.y);for(var f=m.length-1;0<f;f--)k=m[f],a.lineTo(k.x,k.y)},tj:function(a,m,k,f){var d,c,g,l=[],e=0,b=m.length;for(g=0;g<b;g++)d=m[g],c=m[(g+1)%b],d=M.d(d,c),d=Math.sqrt(d),l.push(d),e+=d;k=f*(k+0.5*f*e/b);var h,n;f={};var e={},q={},p=0;for(g=0;g<b;g++)d=m[g],c=m[(g+1)%b],h=m[(g+2)%b],n=l[(g+1)%b],n=Math.min(0.5,k/n),M.Aa(1-n,c,h,e),M.Aa(n,c,h,q),p++,0==g&&(h=Math.min(0.5,k/l[0]),M.Aa(h,d,c,f),p++,a.moveTo(f.x,f.y)),a.quadraticCurveTo(c.x,c.y,e.x,e.y),
|
||||
a.lineTo(q.x,q.y);return!0}};function ka(a){function m(){return"embedded"===d.getAttribute("data-foamtree")}function k(a){n[a]&&(n[a].style.opacity=p*q[a])}function f(a){a.width=Math.round(g*a.n);a.height=Math.round(l*a.n)}var d,c,g,l,e,b,h=[],n={},q={},p=0;this.H=function(f){d=f;0!==d.clientWidth&&0!==d.clientHeight||la.Pa("element has zero dimensions: "+d.clientWidth+" x "+d.clientHeight+".");d.innerHTML="";g=d.clientWidth;l=d.clientHeight;e=0!==g?g:void 0;b=0!==l?l:void 0;m()&&la.Pa("visualization already embedded in the element.");
|
||||
d.setAttribute("data-foamtree","embedded");c=document.createElement("div");c.style.width="100%";c.style.height="100%";c.style.position="relative";d.appendChild(c);a.c.p("stage:initialized",this,c,g,l)};this.kb=function(){m()&&(d.removeAttribute("data-foamtree"),h=[],n={},d.removeChild(c),a.c.p("stage:disposed",this,c))};this.k=function(){g=d.clientWidth;l=d.clientHeight;if(0!==g&&0!==l&&(g!==e||l!==b)){for(var c=h.length-1;0<=c;c--)f(h[c]);a.c.p("stage:resized",e,b,g,l);e=g;b=l}};this.hj=function(a,
|
||||
b){a.n=b;f(a)};this.pc=function(b,d,e){var g=document.createElement("canvas");g.setAttribute("style","position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;");g.n=d;f(g);h.push(g);n[b]=g;q[b]=1;k(b);e||c.appendChild(g);a.c.p("stage:newLayer",b,g);return g};this.lc=function(a,b){D.V(b)||(q[a]=b,k(a));return q[a]};this.d=function(a){D.V(a)||(p=a,D.Ga(n,
|
||||
function(a,b){k(b)}));return p}};function oa(a){function m(a,b,e){y=!0;q.x=0;q.y=0;p.x=0;p.y=0;d=h;c.x=n.x;c.y=n.y;b();g*=a;l=e?g/d:a;l=Math.max(0.25/d,l);return!0}function k(a,b){b.x=a.x/h+n.x;b.y=a.y/h+n.y;return b}function f(a,b,c,d,e,f,k,h,g){var s=(a-c)*(f-h)-(b-d)*(e-k);if(1E-5>Math.abs(s))return!1;g.x=((a*d-b*c)*(e-k)-(a-c)*(e*h-f*k))/s;g.y=((a*d-b*c)*(f-h)-(b-d)*(e*h-f*k))/s;return!0}var d=1,c={x:0,y:0},g=1,l=1,e=1,b={x:0,y:0},h=1,n={x:0,y:0},q={x:0,y:0},p={x:0,y:0},r,s,w={x:0,y:0,f:0,i:0},u={x:0,y:0,f:0,i:0,scale:1},y=!0;
|
||||
a.c.j("stage:initialized",function(a,b,c,d){r=c;s=d;w.x=0;w.y=0;w.f=c;w.i=d;u.x=0;u.y=0;u.f=c;u.i=d;u.scale=1});a.c.j("stage:resized",function(a,d,e,f){function k(a){a.x*=g;a.y*=l}function h(a){k(a);a.f*=g;a.i*=l}r=e;s=f;var g=e/a,l=f/d;k(c);k(n);k(b);k(q);k(p);h(w);h(u)});this.$b=function(a,c){return m(c,function(){k(a,b)},!0)};this.Z=function(a,c){if(1===Math.round(1E4*c)/1E4){var d=w.x-n.x,e=w.y-n.y;m(1,function(){},!0);return this.d(-d,-e)}return m(c,function(){for(var c=!1;!c;)var c=Math.random(),
|
||||
d=Math.random(),e=Math.random(),k=Math.random(),c=f(a.x+c*a.f,a.y+d*a.i,w.x+c*w.f,w.y+d*w.i,a.x+e*a.f,a.y+k*a.i,w.x+e*w.f,w.y+k*w.i,b)},!0)};this.tc=function(a,c){var d,e,k,g;d=a.f/a.i;e=r/s;d<e?(k=a.i*e,g=a.i,d=a.x-0.5*(k-a.f),e=a.y):d>e?(k=a.f,g=a.f*s/r,d=a.x,e=a.y-0.5*(g-a.i)):(d=a.x,e=a.y,k=a.f,g=a.i);d-=k*c;e-=g*c;k*=1+2*c;if(f(d,e,n.x,n.y,d+k,e,n.x+r/h,n.y,b))return m(r/h/k,D.ta,!1);y=!1;return this.d(h*(n.x-d),h*(n.y-e))};this.d=function(a,b){var c=Math.round(1E4*a)/1E4,d=Math.round(1E4*b)/
|
||||
1E4;p.x+=c/h;p.y+=d/h;return 0!==c||0!==d};this.reset=function(a){a&&this.content(0,0,r,s);return this.Z({x:w.x+n.x,y:w.y+n.y,f:w.f/h,i:w.i/h},e/g)};this.Rb=function(a){e=Math.min(1,Math.round(1E4*(a||g))/1E4)};this.k=function(){return n.x<w.x?(w.x-n.x)*h:n.x+r/h>w.x+w.f?-(n.x+r/h-w.x-w.f)*h:0};this.A=function(){return n.y<w.y?(w.y-n.y)*h:n.y+s/h>w.y+w.i?-(n.y+s/h-w.y-w.i)*h:0};this.update=function(a){var e=Math.abs(Math.log(l));6>e?e=2:(e/=4,e+=3*e*(1<l?a:1-a));e=1<l?Math.pow(a,e):1-Math.pow(1-a,
|
||||
e);e=(y?e:1)*(l-1)+1;h=d*e;n.x=b.x-(b.x-c.x)/e;n.y=b.y-(b.y-c.y)/e;n.x-=q.x*(1-a)+p.x*a;n.y-=q.y*(1-a)+p.y*a;1===a&&(q.x=p.x,q.y=p.y);u.x=n.x;u.y=n.y;u.f=r/h;u.i=s/h;u.scale=h};this.S=function(a){a.x=u.x;a.y=u.y;a.scale=u.scale;return a};this.absolute=function(a,b){return k(a,b||{})};this.nd=function(a,b){var c=b||{};c.x=(a.x-n.x)*h;c.y=(a.y-n.y)*h;return c};this.Hc=function(a){return this.scale()<e/a};this.Rd=function(){return D.Fd(h,1)};this.scale=function(){return Math.round(1E4*h)/1E4};this.content=
|
||||
function(a,b,c,d){w.x=a;w.y=b;w.f=c;w.i=d};this.Jc=function(a,b){var c;for(c=a.length-1;0<=c;c--){var d=a[c];d.save();d.scale(h,h);d.translate(-n.x,-n.y)}b(u);for(c=a.length-1;0<=c;c--)d=a[c],d.restore()}};var S=new function(){function a(a){if("hsl"==a.model||"hsla"==a.model)return a;var f=a.r/=255,d=a.g/=255,c=a.b/=255,g=Math.max(f,d,c),l=Math.min(f,d,c),e,b=(g+l)/2;if(g==l)e=l=0;else{var h=g-l,l=0.5<b?h/(2-g-l):h/(g+l);switch(g){case f:e=(d-c)/h+(d<c?6:0);break;case d:e=(c-f)/h+2;break;case c:e=(f-d)/h+4}e/=6}a.h=360*e;a.s=100*l;a.l=100*b;a.model="hsl";return a}var m={h:0,s:0,l:0,a:1,model:"hsla"};this.Ba=function(k){return D.Tc(k)?a(S.Gg(k)):D.Gb(k)?a(k):m};this.Gg=function(a){var f;return(f=/rgba\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(a))&&
|
||||
5==f.length?{r:parseFloat(f[1]),g:parseFloat(f[2]),b:parseFloat(f[3]),a:parseFloat(f[4]),model:"rgba"}:(f=/hsla\(\s*([^,\s]+)\s*,\s*([^,%\s]+)%\s*,\s*([^,\s%]+)%\s*,\s*([^,\s]+)\s*\)/.exec(a))&&5==f.length?{h:parseFloat(f[1]),s:parseFloat(f[2]),l:parseFloat(f[3]),a:parseFloat(f[4]),model:"hsla"}:(f=/rgb\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(a))&&4==f.length?{r:parseFloat(f[1]),g:parseFloat(f[2]),b:parseFloat(f[3]),a:1,model:"rgb"}:(f=/hsl\(\s*([^,\s]+)\s*,\s*([^,\s%]+)%\s*,\s*([^,\s%]+)%\s*\)/.exec(a))&&
|
||||
4==f.length?{h:parseFloat(f[1]),s:parseFloat(f[2]),l:parseFloat(f[3]),a:1,model:"hsl"}:(f=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(a))&&4==f.length?{r:parseInt(f[1],16),g:parseInt(f[2],16),b:parseInt(f[3],16),a:1,model:"rgb"}:(f=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(a))&&4==f.length?{r:17*parseInt(f[1],16),g:17*parseInt(f[2],16),b:17*parseInt(f[3],16),a:1,model:"rgb"}:m};this.Bg=function(a){function f(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*c:0.5>c?b:c<2/3?
|
||||
a+(b-a)*(2/3-c)*6:a}if("rgb"==a.model||"rgba"==a.model)return Math.sqrt(a.r*a.r*0.241+a.g*a.g*0.691+a.b*a.b*0.068)/255;var d,c;d=a.l/100;var g=a.s/100;c=a.h/360;if(0==a.Yj)d=a=c=d;else{var g=0.5>d?d*(1+g):d+g-d*g,l=2*d-g;d=f(l,g,c+1/3);a=f(l,g,c);c=f(l,g,c-1/3)}return Math.sqrt(65025*d*d*0.241+65025*a*a*0.691+65025*c*c*0.068)/255};this.Mg=function(a){if(D.Tc(a))return a;if(D.Gb(a))switch(a.model){case "hsla":return S.Hg(a);case "hsl":return S.Bc(a);case "rgba":return S.Kg(a);case "rgb":return S.Jg(a);
|
||||
default:return"#000"}else return"#000"};this.Kg=function(a){return"rgba("+(0.5+a.r|0)+","+(0.5+a.g|0)+","+(0.5+a.b|0)+","+a.a+")"};this.Jg=function(a){return"rgba("+(0.5+a.r|0)+","+(0.5+a.g|0)+","+(0.5+a.b|0)+")"};this.Hg=function(a){return"hsla("+(0.5+a.h|0)+","+(0.5+a.s|0)+"%,"+(0.5+a.l|0)+"%,"+a.a+")"};this.Bc=function(a){return"hsl("+(0.5+a.h|0)+","+(0.5+a.s|0)+"%,"+(0.5+a.l|0)+"%)"};this.Z=function(a,f,d){return"hsl("+(0.5+a|0)+","+(0.5+f|0)+"%,"+(0.5+d|0)+"%)"}};function V(){var a=!1,m,k=[],f=this,d=new function(){this.P=function(c){c&&(a?c.apply(f,m):k.push(c));return this};this.ih=function(a){f=a;return{then:this.P}}};this.J=function(){m=arguments;for(var c=0;c<k.length;c++)k[c].apply(f,m);a=!0;return this};this.M=function(){return d}}function pa(a){var m=new V,k=a.length;if(0<a.length)for(var f=a.length-1;0<=f;f--)a[f].P(function(){0===--k&&m.J()});else m.J();return m.M()}
|
||||
function qa(a){var m=0;this.d=function(){m++};this.k=function(){m--;0===m&&a()};this.clear=function(){m=0};this.A=function(){return 0===m}};var ra={Ie:function(a,m,k,f){f=f||{};var d;try{d=a.getBoundingClientRect()}catch(c){if(!ra.ki){ra.ki=!0;window.console.log("getBoundingClientRect() failed.");for(window.console.log("Element",a);null!==a.parentElement;)a=a.parentElement;window.console.log("Attached to DOM",a===document.body.parentElement)}d={left:0,top:0}}f.x=m-d.left;f.y=k-d.top;return f}};function sa(){var a=document,m={};this.addEventListener=function(k,f,d){var c=m[k];c||(c=[],m[k]=c);c.push(f);a.addEventListener(k,f,d)};this.d=function(){D.Ga(m,function(k,f){for(var d=k.length-1;0<=d;d--)a.removeEventListener(f,k[d])})}};function ta(a){function m(a){return function(b){k(b)&&a.apply(this,arguments)}}function k(b){for(b=b.target;b;){if(b===a)return!0;b=b.parentElement}return!1}function f(a,b,c){c=c||{};d(a,c);for(var e=0;e<b.length;e++)b[e].call(a.target,c);d(a,c);(void 0===c.Nb&&c.Bi||"prevent"===c.Nb)&&a.preventDefault();return c}function d(b,c){ra.Ie(a,b.clientX,b.clientY,c);c.altKey=b.altKey;c.metaKey=b.metaKey;c.ctrlKey=b.ctrlKey;c.shiftKey=b.shiftKey;c.wb=3===b.which;return c}var c=new sa,g=[],l=[],e=[],b=[],
|
||||
h=[],n=[],q=[],p=[],r=[],s=[],w=[];this.d=function(a){g.push(a)};this.k=function(a){h.push(a)};this.ya=function(a){l.push(a)};this.Ba=function(a){e.push(a)};this.Pa=function(a){b.push(a)};this.Aa=function(a){w.push(a)};this.za=function(a){n.push(a)};this.Ja=function(a){q.push(a)};this.Z=function(a){p.push(a)};this.A=function(a){r.push(a)};this.S=function(a){s.push(a)};this.kb=function(){c.d()};var u,y,x,A,B={x:0,y:0},K={x:0,y:0},C=!1,H=!1;c.addEventListener("mousedown",m(function(b){if(b.target!==
|
||||
a){var c=f(b,e);K.x=c.x;K.y=c.y;B.x=c.x;B.y=c.y;C=!0;f(b,p);y=!1;u=window.setTimeout(function(){100>M.d(B,c)&&(window.clearTimeout(A),f(b,l),y=!0)},400)}}));c.addEventListener("mouseup",function(a){var c=f(a,b);C&&(H&&f(a,s),window.clearTimeout(u),y||H||!k(a)||(c={x:c.x,y:c.y},x&&100>M.d(c,x)?f(a,h):f(a,g),x=c,A=window.setTimeout(function(){x=null},350)),H=C=!1)});c.addEventListener("mousemove",function(a){var b=d(a,{});k(a)&&f(a,n,{type:"move"});B.x=b.x;B.y=b.y;C&&!H&&100<M.d(K,B)&&(H=!0);H&&f(a,
|
||||
r,b)});c.addEventListener("mouseout",m(function(a){f(a,q,{type:"out"})}));c.addEventListener("wheel",m(function(){return function(a){var b;"deltaY"in a?b=a.deltaY:(b=0,"detail"in a&&(b=a.detail),"wheelDelta"in a&&(b=-a.wheelDelta/120),"wheelDeltaY"in a&&(b=-a.wheelDeltaY/120),"axis"in a&&a.axis===a.HORIZONTAL_AXIS&&(b=0),b*=10);b&&a.deltaMode&&(b=1===a.deltaMode?67*b:800*b);f(a,w,{wd:-b/200,Bi:!0})}}()),{passive:!1});c.addEventListener("contextmenu",m(function(a){a.preventDefault()}))};var X=function(){function a(a){return function(c){return Math.pow(c,a)}}function m(a){return function(c){return 1-Math.pow(1-c,a)}}function k(a){return function(c){return 1>(c*=2)?0.5*Math.pow(c,a):1-0.5*Math.abs(Math.pow(2-c,a))}}function f(a){return function(c){for(var f=0;f<a.length;f++)c=(0,a[f])(c);return c}}return{pa:function(a){switch(a){case "linear":return X.Kb;case "bounce":return X.Ug;case "squareIn":return X.ng;case "squareOut":return X.Sb;case "squareInOut":return X.og;case "cubicIn":return X.Yg;
|
||||
case "cubicOut":return X.ze;case "cubicInOut":return X.Zg;case "quadIn":return X.Ti;case "quadOut":return X.Vi;case "quadInOut":return X.Ui;default:return X.Kb}},Kb:function(a){return a},Ug:f([k(2),function(a){return 0===a?0:1===a?1:a*(a*(a*(a*(25.9425*a-85.88)+105.78)-58.69)+13.8475)}]),ng:a(2),Sb:m(2),og:k(2),Yg:a(3),ze:m(3),Zg:k(3),Ti:a(2),Vi:m(2),Ui:k(2),d:f}}();var D={V:function(a){return void 0===a},mf:function(a){return null===a},Sc:function(a){return"[object Number]"===Object.prototype.toString.call(a)},Tc:function(a){return"[object String]"===Object.prototype.toString.call(a)},Gd:function(a){return"function"===typeof a},Gb:function(a){return a===Object(a)},Fd:function(a,m){return 1E-6>a-m&&-1E-6<a-m},jf:function(a){return D.V(a)||D.mf(a)||D.Tc(a)&&!/\S/.test(a)},N:function(a,m){return a&&a.hasOwnProperty(m)},nb:function(a,m){if(a)for(var k=m.length-
|
||||
1;0<=k;k--)if(a.hasOwnProperty(m[k]))return!0;return!1},extend:function(a){D.dh(Array.prototype.slice.call(arguments,1),function(m){if(m)for(var k in m)m.hasOwnProperty(k)&&(a[k]=m[k])});return a},A:function(a,m){return a.map(function(a){return a[m]},[])},dh:function(a,m,k){null!=a&&(a.forEach?a.forEach(m,k):D.Ga(a,m,k))},Ga:function(a,m,k){for(var f in a)if(a.hasOwnProperty(f)&&!1===m.call(k,a[f],f,a))break},B:function(){for(var a=0;a<arguments.length;a++){var m=arguments[a];if(!(D.V(m)||D.Sc(m)&&
|
||||
isNaN(m)||D.Tc(m)&&D.jf(m)))return m}},bg:function(a,m){var k=a.indexOf(m);0<=k&&a.splice(k,1)},$g:function(a,m,k){var f;return function(){var d=this,c=arguments,g=k&&!f;clearTimeout(f);f=setTimeout(function(){f=null;k||a.apply(d,c)},m);g&&a.apply(d,c)}},defer:function(a){setTimeout(a,1)},k:function(a){return a},ta:function(){}};var ua={ji:function(a,m,k){return v.hi()?function(){var f=m+":"+JSON.stringify(arguments),d=window.localStorage.getItem(f);d&&(d=JSON.parse(d));if(d&&Date.now()-d.t<k)return d.v;d=a.apply(this,arguments);window.localStorage.setItem(f,JSON.stringify({v:d,t:Date.now()}));return d}:a}};var va={m:function(a,m){function k(){var f=[];if(Array.isArray(a))for(var d=0;d<a.length;d++){var c=a[d];c&&f.push(c.apply(m,arguments))}else a&&f.push(a.apply(m,arguments));return f}k.empty=function(){return 0===a.length&&!D.Gd(a)};return k}};function wa(){var a={};this.j=function(m,k){var f=a[m];f||(f=[],a[m]=f);f.push(k)};this.p=function(m,k){var f=a[m];if(f)for(var d=Array.prototype.slice.call(arguments,1),c=0;c<f.length;c++)f[c].apply(this,d)}};var xa={jg:function(a){for(var m="",k=0;k<a.length;k++)m+=String.fromCharCode(a.charCodeAt(k)^1);return m}};function ya(a){function m(b,d,k){var m=this,p,r=0;this.id=g++;this.name=k?k:"{unnamed on "+b+"}";this.target=function(){return b};this.Hb=function(){return-1!=e.indexOf(m)};this.start=function(){if(!m.Hb()){if(-1==e.indexOf(m)){var b=l.now();!0===m.wf(b)&&(e=e.slice(),e.push(m))}0<e.length&&a.repeat(f)}return this};this.stop=function(){for(c(m);p<d.length;p++){var a=d[p];a.ib&&a.Xa.call()}return this};this.dg=function(){p=void 0};this.wf=function(a){r++;if(0!==d.length){var b;D.V(p)?(p=0,b=d[p],b.X&&
|
||||
b.X.call(b,a,r,m)):b=d[p];for(;p<d.length;){if(b.Xa&&b.Xa.call(b,a,r,m))return!0;b.Da&&b.Da.call(b,a,r,m);D.V(p)&&(p=-1);++p<d.length&&(b=d[p],b.X&&b.X.call(b,a,r,m))}}return!1}}function k(a){return D.V(a)?e.slice():e.filter(function(c){return c.target()===a})}function f(){d();0==e.length&&a.cancel(f)}function d(){var a=l.now();e.forEach(function(d){!0!==d.wf(a)&&c(d)})}function c(a){e=e.filter(function(c){return c!==a})}var g=0,l=ba.create(),e=[];this.d=function(){for(var a=e.length-1;0<=a;a--)e[a].stop();
|
||||
e=[]};this.D=function(){function a(){}function c(a){var b=a.target,d=a.duration,e=a.da,f,k;this.X=function(){f={};for(var c in a.G)b.hasOwnProperty(c)&&(f[c]={start:D.V(a.G[c].start)?b[c]:D.Gd(a.G[c].start)?a.G[c].start.call(void 0):a.G[c].start,end:D.V(a.G[c].end)?b[c]:D.Gd(a.G[c].end)?a.G[c].end.call(void 0):a.G[c].end,R:D.V(a.G[c].R)?X.Kb:a.G[c].R});k=l.now()};this.Xa=function(){var a=l.now()-k,a=0===d?1:Math.min(d,a)/d,c;for(c in f){var g=f[c];b[c]=g.start+(g.end-g.start)*g.R(a)}e&&e.call(b,a);
|
||||
return 1>a}}function d(a,b,c){this.ib=c;this.Xa=function(){a.call(b);return!1}}function e(a){var b;this.X=function(c,d){b=d+a};this.Xa=function(a,c){return c<b}}function f(a){var b;this.X=function(c){b=c+a};this.Xa=function(a){return a<b}}function g(a){this.X=function(){a.forEach(function(a){a.start()})};this.Xa=function(){for(var b=0;b<a.length;b++)if(a[b].Hb())return!0;return!1}}a.m=function(a,b){return new function(){function k(b,c,e,f){return c?(D.V(e)&&(e=a),b.Bb(new d(c,e,f))):b}var l=[];this.Bb=
|
||||
function(a){l.push(a);return this};this.eb=function(a){return this.Bb(new f(a))};this.oe=function(a){return this.Bb(new e(a||1))};this.call=function(a,b){return k(this,a,b,!1)};this.ib=function(a,b){return k(this,a,b,!0)};this.ia=function(b){D.V(b.target)&&(b.target=a);return this.Bb(new c(b))};this.Ya=function(a){return this.Bb(new g(a))};this.dg=function(){return this.Bb({Xa:function(a,b){b.dg();return!0}})};this.xa=function(){return new m(a,l,b)};this.start=function(){return this.xa().start()};
|
||||
this.Eg=function(){var a=new V;this.oe().call(a.J).xa();return a.M()};this.ab=function(){var a=this.Eg();this.start();return a}}};a.uc=function(c){k(c).forEach(function(a){a.stop()});return a.m(c,void 0)};return a}()};var $=function(){var a={He:function(a,k){if(a.e)for(var f=a.e,d=0;d<f.length;d++)k(f[d],d)},Kc:function(m,k){if(m.e)for(var f=m.e,d=0;d<f.length;d++)if(!1===a.Kc(f[d],k)||!1===k(f[d],d))return!1}};a.F=a.Kc;a.Lc=function(m,k){if(m.e)for(var f=m.e,d=0;d<f.length;d++)if(!1===k(f[d],d)||!1===a.Lc(f[d],k))return!1};a.Fa=function(m,k){if(m.e)for(var f=m.e,d=0;d<f.length;d++)if(!1===a.Fa(f[d],k))return!1;return k(m)};a.Pj=a.Fa;a.xd=function(m,k){!1!==k(m)&&a.Lc(m,k)};a.Mc=function(m,k){var f=[];a.Lc(m,function(a){f.push(a)});
|
||||
return k?f.filter(k):f};a.Ge=function(a,k){for(var f=a.parent;f&&!1!==k(f);)f=f.parent};a.li=function(a,k){for(var f=a.parent;f&&f!==k;)f=f.parent;return!!f};return a}();var M=new function(){function a(a,f){var d=a.x-f.x,c=a.y-f.y;return d*d+c*c}function m(a,f,d){for(var c=0;c<a.length;c++){var g=M.za(a[c],a[c+1]||a[0],f,d,!0);if(g)return g}}this.za=function(a,f,d,c,g){var l=a.x;a=a.y;var e=f.x-l;f=f.y-a;var b=d.x,h=d.y;d=c.x-b;var n=c.y-h;c=e*n-d*f;if(!(1E-12>=c&&-1E-12<=c)&&(b=b-l,h=h-a,d=(b*n-d*h)/c,c=(b*f-e*h)/c,0<=c&&(g||1>=c)&&0<=d&&1>=d))return{x:l+e*d,y:a+f*d}};this.Ig=function(a,f,d,c){var g=a.x;a=a.y;var l=f.x-g;f=f.y-a;var e=d.x;d=d.y;var b=c.x-e;c=c.y-
|
||||
d;var h=l*c-b*f;if(!(1E-12>=h&&-1E-12<=h)&&(c=((e-g)*c-b*(d-a))/h,0<=c&&1>=c))return{x:g+l*c,y:a+f*c}};this.qe=function(a,f,d){for(var c=M.k(f,{}),g=M.k(d,{}),l,e=g.x-c.x,b=g.y-c.y,h=[],g=0;g<d.length;g++)l=d[g],h.push({x:l.x-e,y:l.y-b});d=[];l=[];for(g=0;g<a.length;g++){var n=a[g],q=m(f,c,n);q?(d.push(q),l.push(m(h,c,n))):(d.push(null),l.push(null))}for(g=0;g<a.length;g++)if(q=d[g],n=l[g],q&&n){f=a[g];var h=c,p=q.x-c.x,q=q.y-c.y,q=Math.sqrt(p*p+q*q);if(1E-12<q){var p=f.x-c.x,r=f.y-c.y,q=Math.sqrt(p*
|
||||
p+r*r)/q;f.x=h.x+q*(n.x-h.x);f.y=h.y+q*(n.y-h.y)}else f.x=h.x,f.y=h.y}for(g=0;g<a.length;g++)l=a[g],l.x+=e,l.y+=b};this.q=function(a,f){if(0!==a.length){var d,c,g,l;d=c=a[0].x;g=l=a[0].y;for(var e=a.length;0<--e;)d=Math.min(d,a[e].x),c=Math.max(c,a[e].x),g=Math.min(g,a[e].y),l=Math.max(l,a[e].y);f.x=d;f.y=g;f.f=c-d;f.i=l-g;return f}};this.A=function(a){return[{x:a.x,y:a.y},{x:a.x+a.f,y:a.y},{x:a.x+a.f,y:a.y+a.i},{x:a.x,y:a.y+a.i}]};this.k=function(a,f){for(var d=0,c=0,g=a.length,l=a[0],e=0,b=1;b<
|
||||
g-1;b++)var h=a[b],n=a[b+1],m=l.y+h.y+n.y,p=(h.x-l.x)*(n.y-l.y)-(n.x-l.x)*(h.y-l.y),d=d+p*(l.x+h.x+n.x),c=c+p*m,e=e+p;f.x=d/(3*e);f.y=c/(3*e);f.ja=e/2;return f};this.re=function(a,f){this.k(a,f);f.Pb=Math.sqrt(f.ja/Math.PI)};this.Ua=function(a,f){for(var d=0;d<a.length;d++){var c=a[d],g=a[d+1]||a[0];if(0>(f.y-c.y)*(g.x-c.x)-(f.x-c.x)*(g.y-c.y))return!1}return!0};this.Lg=function(a,f,d){var c=a.x,g=f.x;a.x>f.x&&(c=f.x,g=a.x);g>d.x+d.f&&(g=d.x+d.f);c<d.x&&(c=d.x);if(c>g)return!1;var l=a.y,e=f.y,b=f.x-
|
||||
a.x;1E-7<Math.abs(b)&&(e=(f.y-a.y)/b,a=a.y-e*a.x,l=e*c+a,e=e*g+a);l>e&&(c=e,e=l,l=c);e>d.y+d.i&&(e=d.y+d.i);l<d.y&&(l=d.y);return l<=e};this.se=function(k,f,d,c,g){var l,e;function b(b,c,d){if(f.x===n.x&&f.y===n.y)return d;var g=m(k,f,n),p=Math.sqrt(a(g,f)/(b*b+c*c));return p<h?(h=p,l=g.x,e=g.y,0!==c?Math.abs(e-f.y)/Math.abs(c):Math.abs(l-f.x)/Math.abs(b)):d}c=D.B(c,0.5);g=D.B(g,0.5);d=D.B(d,1);var h=Number.MAX_VALUE;e=l=0;var n={x:0,y:0},q,p=c*d;d=(1-c)*d;c=1-g;n.x=f.x-p;n.y=f.y-g;q=b(p,g,q);n.x=
|
||||
f.x+d;n.y=f.y-g;q=b(d,g,q);n.x=f.x-p;n.y=f.y+c;q=b(p,c,q);n.x=f.x+d;n.y=f.y+c;return q=b(d,c,q)};this.Dg=function(a,f){function d(a,c,d){var e=c.x,f=d.x;c=c.y;d=d.y;var g=f-e,k=d-c;return Math.abs(k*a.x-g*a.y-e*d+f*c)/Math.sqrt(g*g+k*k)}for(var c=a.length,g=d(f,a[c-1],a[0]),l=0;l<c-1;l++){var e=d(f,a[l],a[l+1]);e<g&&(g=e)}return g};this.Yb=function(a,f,d){var c;d={x:f.x+Math.cos(d),y:f.y-Math.sin(d)};var g=[],l=[],e=a.length;for(c=0;c<e;c++){var b=M.Ig(a[c],a[(c+1)%e],f,d);if(b&&(g.push(b),2==l.push(c)))break}if(2==
|
||||
g.length){var b=g[0],g=g[1],h=l[0],l=l[1],n=[g,b];for(c=h+1;c<=l;c++)n.push(a[c]);for(c=[b,g];l!=h;)l=(l+1)%e,c.push(a[l]);a=[n,c];e=d.x-f.x;c=g.x-b.x;0===e&&(e=d.y-f.y,c=g.y-b.y);(0>e?-1:0<e?1:0)!==(0>c?-1:0<c?1:0)&&a.reverse();return a}};this.Aa=function(a,f,d,c){c.x=a*(f.x-d.x)+d.x;c.y=a*(f.y-d.y)+d.y;return c};this.d=a;this.gb=function(a,f,d){if(D.Sc(f))f=2*Math.PI*f/360;else{var c=M.q(a,{});switch(f){case "random":f=Math.random()*Math.PI*2;break;case "top":f=Math.atan2(-c.i,0);break;case "bottom":f=
|
||||
Math.atan2(c.i,0);break;case "left":f=Math.atan2(0,-c.f);break;case "right":f=Math.atan2(0,c.f);break;case "topleft":f=Math.atan2(-c.i,-c.f);break;case "topright":f=Math.atan2(-c.i,c.f);break;case "bottomleft":f=Math.atan2(c.i,-c.f);break;default:f=Math.atan2(c.i,c.f)}}c=M.k(a,{});return M.Aa(d,m(a,c,{x:c.x+Math.cos(f),y:c.y+Math.sin(f)}),c,{})};return this};var za=new function(){function a(a,d){this.face=a;this.kd=d;this.qc=this.dd=null}function m(a,d,f){this.ma=[a,d,f];this.C=Array(3);var e=d.y-a.y,b=f.z-a.z,h=d.x-a.x;d=d.z-a.z;var k=f.x-a.x;a=f.y-a.y;this.Oa={x:e*b-d*a,y:d*k-h*b,z:h*a-e*k};this.jb=[];this.td=this.visible=!1}this.S=function(c){function f(b,c,d){var g,h,k=b.ma[0],l=b.Oa,r=l.x,s=l.y,l=l.z,m=Array(n);c=c.jb;g=c.length;for(e=0;e<g;e++)h=c[e].kd,m[h.index]=!0,0>r*(h.x-k.x)+s*(h.y-k.y)+l*(h.z-k.z)&&a.d(b,h);c=d.jb;g=c.length;for(e=0;e<g;e++)h=
|
||||
c[e].kd,!0!==m[h.index]&&0>r*(h.x-k.x)+s*(h.y-k.y)+l*(h.z-k.z)&&a.d(b,h)}var l,e,b,h,n=c.length;for(l=0;l<n;l++)c[l].index=l,c[l].bc=null;var q=[],p;if(0<(p=function(){function b(a,c,d,e){var f=(c.y-a.y)*(d.z-a.z)-(c.z-a.z)*(d.y-a.y),g=(c.z-a.z)*(d.x-a.x)-(c.x-a.x)*(d.z-a.z),h=(c.x-a.x)*(d.y-a.y)-(c.y-a.y)*(d.x-a.x);return f*e.x+g*e.y+h*e.z>f*a.x+g*a.y+h*a.z?new m(a,c,d):new m(d,c,a)}function d(a,b,c,e){function f(a,b,c){a=a.ma;b=a[0]==b?0:a[1]==b?1:2;return a[(b+1)%3]!=c?(b+2)%3:b}b.C[f(b,c,e)]=
|
||||
a;a.C[f(a,e,c)]=b}if(4>n)return 0;var e=c[0],f=c[1],g=c[2],h=c[3],k=b(e,f,g,h),l=b(e,g,h,f),r=b(e,f,h,g),s=b(f,g,h,e);d(k,l,g,e);d(k,r,e,f);d(k,s,f,g);d(l,r,h,e);d(l,s,g,h);d(r,s,h,f);q.push(k,l,r,s);for(e=4;e<n;e++)for(f=c[e],g=0;4>g;g++)h=q[g],k=h.ma[0],l=h.Oa,0>l.x*(f.x-k.x)+l.y*(f.y-k.y)+l.z*(f.z-k.z)&&a.d(h,f);return 4}())){for(;p<n;){b=c[p];if(b.bc){for(l=b.bc;null!==l;)l.face.visible=!0,l=l.qc;var r,s;l=0;a:for(;l<q.length;l++)if(h=q[l],!1===h.visible){var w=h.C;for(e=0;3>e;e++)if(!0===w[e].visible){r=
|
||||
h;s=e;break a}}h=[];var w=[],u=r,y=s;do if(h.push(u),w.push(y),y=(y+1)%3,!1===u.C[y].visible){do for(l=u.ma[y],u=u.C[y],e=0;3>e;e++)u.ma[e]==l&&(y=e);while(!1===u.C[y].visible&&(u!==r||y!==s))}while(u!==r||y!==s);var x=null,A=null;for(l=0;l<h.length;l++){var u=h[l],y=w[l],B=u.C[y],K=u.ma[(y+1)%3],C=u.ma[y],H=K.y-b.y,Q=C.z-b.z,O=K.x-b.x,P=K.z-b.z,F=C.x-b.x,T=C.y-b.y,N;0<d.length?(N=d.pop(),N.ma[0]=b,N.ma[1]=K,N.ma[2]=C,N.Oa.x=H*Q-P*T,N.Oa.y=P*F-O*Q,N.Oa.z=O*T-H*F,N.jb.length=0,N.visible=!1,N.td=!0):
|
||||
N={ma:[b,K,C],C:Array(3),Oa:{x:H*Q-P*T,y:P*F-O*Q,z:O*T-H*F},jb:[],visible:!1};q.push(N);u.C[y]=N;N.C[1]=u;null!==A&&(A.C[0]=N,N.C[2]=A);A=N;null===x&&(x=N);f(N,u,B)}A.C[0]=x;x.C[2]=A;l=[];for(e=0;e<q.length;e++)if(h=q[e],!0===h.visible){w=h.jb;u=w.length;for(b=0;b<u;b++)y=w[b],x=y.dd,A=y.qc,null!==x&&(x.qc=A),null!==A&&(A.dd=x),null===x&&(y.kd.bc=A),k.push(y);h.td&&d.push(h)}else l.push(h);q=l}p++}for(l=0;l<q.length;l++)h=q[l],h.td&&d.push(h)}return{Je:q}};a.d=function(c,d){var f;0<k.length?(f=k.pop(),
|
||||
f.face=c,f.kd=d,f.qc=null,f.dd=null):f=new a(c,d);c.jb.push(f);var e=d.bc;null!==e&&(e.dd=f);f.qc=e;d.bc=f};for(var k=Array(2E3),f=0;f<k.length;f++)k[f]=new a(null,null);for(var d=Array(1E3),f=0;f<d.length;f++)d[f]={ma:Array(3),C:Array(3),Oa:{x:0,y:0,z:0},jb:[],visible:!1}};var Aa=new function(){function a(a,f,d,c,g,l,e,b){var h=(a-d)*(l-b)-(f-c)*(g-e);return Math.abs(h)<m?void 0:{x:((a*c-f*d)*(g-e)-(a-d)*(g*b-l*e))/h,y:((a*c-f*d)*(l-b)-(f-c)*(g*b-l*e))/h}}var m=1E-12;this.bb=function(k,f){for(var d=k[0],c=d.x,g=d.y,l=d.x,e=d.y,b=k.length-1;0<b;b--)d=k[b],c=Math.min(c,d.x),g=Math.min(g,d.y),l=Math.max(l,d.x),e=Math.max(e,d.y);if(l-c<3*f||e-g<3*f)d=void 0;else{a:{d=!0;void 0==d&&(d=!1);c=[];g=k.length;for(l=0;l<=g;l++){var e=k[l%g],b=k[(l+1)%g],h=k[(l+2)%g],n,q,p;n=b.x-
|
||||
e.x;q=b.y-e.y;p=Math.sqrt(n*n+q*q);var r=f*n/p,s=f*q/p;n=h.x-b.x;q=h.y-b.y;p=Math.sqrt(n*n+q*q);n=f*n/p;q=f*q/p;if(e=a(e.x-s,e.y+r,b.x-s,b.y+r,b.x-q,b.y+n,h.x-q,h.y+n))if(c.push(e),h=c.length,d&&3<=h&&(e=c[h-3],b=c[h-2],h=c[h-1],0>(b.x-e.x)*(h.y-e.y)-(h.x-e.x)*(b.y-e.y))){d=void 0;break a}}c.shift();d=3>c.length?void 0:c}if(!d)a:{c=k.slice(0);for(d=0;d<k.length;d++){l=k[d%k.length];b=k[(d+1)%k.length];h=b.x-l.x;g=b.y-l.y;e=Math.sqrt(h*h+g*g);h=f*h/e;e=f*g/e;g=l.x-e;l=l.y+h;e=b.x-e;b=b.y+h;if(0!=c.length){s=
|
||||
g-e;q=l-b;h=[];n=p=!0;r=void 0;for(r=0;r<c.length;r++){var w=s*(l-c[r].y)-(g-c[r].x)*q;w<=m&&w>=-m&&(w=0);h.push(w);0<w&&(p=!1);0>w&&(n=!1)}if(p)c=[];else if(!n){s=[];for(r=0;r<c.length;r++)q=(r+1)%c.length,p=h[r],n=h[q],0<=p&&s.push(c[r]),(0<p&&0>n||0>p&&0<n)&&s.push(a(c[r].x,c[r].y,c[q].x,c[q].y,g,l,e,b));c=s}}if(3>c.length){d=void 0;break a}}d=c}}return d};return this};var Ba=new function(){function a(a){for(var f=a[0].x,d=a[0].y,c=f,g=d,l=1;l<a.length;l++)var e=a[l],f=Math.min(f,e.x),d=Math.min(d,e.y),c=Math.max(c,e.x),g=Math.max(g,e.y);a=c-f;g=g-d;return[{x:f+2*a,y:d+2*g,f:0},{x:f+2*a,y:d-2*g,f:0},{x:f-2*a,y:d+2*g,f:0}]}var m=1E-12;this.S=function(k,f){function d(){for(b=0;b<p.length;b++){var a=p[b],c=a.ma,d=c[0],e=c[1],f=c[2],c=d.x,g=d.y,d=d.z,h=e.x,k=e.y,e=e.z,l=f.x,r=f.y,f=f.z,s=c*(k-r)+h*(r-g)+l*(g-k);a.ha={x:-(g*(e-f)+k*(f-d)+r*(d-e))/s/2,y:-(d*(h-l)+e*(l-
|
||||
c)+f*(c-h))/s/2}}}function c(a){for(b=0;b<p.length;b++){var c=p[b];c.tb=!M.Ua(a,c.ha)}}function g(a,b){var c=Array(b.length),d;for(d=0;d<c.length;d++)c[d]=[];for(d=0;d<a.length;d++){var e=a[d];if(!(0>e.Oa.z))for(var f=e.C,g=0;g<f.length;g++){var h=f[g];if(!(0>h.Oa.z)){var k=e.ma,l=k[(g+1)%3].index,k=k[g].index;2<l&&c[l-3].push([e,h,2<k?b[k-3]:null])}}}return c}function l(a){var b=[a[0]],c=a[0][0],d=a[0][1],e=a.length,f=1;a:for(;f<e;f++)for(var g=1;g<e;g++){var h=a[g];if(null!==h){if(h[1]===c)if(b.unshift(h),
|
||||
c=h[0],a[g]=null,b.length===e)break a;else continue;if(h[0]===d&&(b.push(h),d=h[1],a[g]=null,b.length===e))break a}}b[0][0]!=b[e-1][1]&&b.push([b[e-1][1],b[0][0]]);return b}function e(a,b,c,d){var e=[],f=[],g=c.length,h,k=b.length,l=0,r=-1,s=-1,n=-1,p=null,q=d;for(d=0;d<g;d++){var w=(q+1)%g,u=c[q][0],E=c[w][0];if(M.d(u.ha,E.ha)>m)if(u.tb&&E.tb){var I=[],J=[];for(h=0;h<k;h++){r=(l+1)%k;if(p=M.za(b[l],b[r],u.ha,E.ha,!1))if(J.push(l),2===I.push(p))break;l=r}if(2===I.length){r=I[1];p=M.d(u.ha,I[0]);r=
|
||||
M.d(u.ha,r);u=p<r?0:1;p=p<r?1:0;r=J[u];-1===s&&(s=r);if(-1!==n)for(;r!=n;)n=(n+1)%k,e.push(b[n]),f.push(null);e.push(I[u],I[p]);f.push(c[q][2],null);n=J[p]}}else if(u.tb&&!E.tb)for(h=0;h<k;h++){r=(l+1)%k;if(p=M.za(b[l],b[r],u.ha,E.ha,!1)){if(-1!==n)for(I=n;l!=I;)I=(I+1)%k,e.push(b[I]),f.push(null);e.push(p);f.push(c[q][2]);-1===s&&(s=l);break}l=r}else if(!u.tb&&E.tb)for(h=0;h<k;h++){r=(l+1)%k;if(p=M.za(b[l],b[r],u.ha,E.ha,!1)){e.push(u.ha,p);f.push(c[q][2],null);n=l;break}l=r}else e.push(u.ha),f.push(c[q][2]);
|
||||
q=w}if(0==e.length)f=e=null;else if(-1!==n)for(;s!=n;)n=(n+1)%k,e.push(b[n]),f.push(null);a.o=e;a.C=f}if(1===k.length)k[0].o=f.slice(0),k[0].C=[];else{var b,h;h=a(f);var n=[],q;for(b=0;b<h.length;b++)q=h[b],n.push({x:q.x,y:q.y,z:q.x*q.x+q.y*q.y-q.f});for(b=0;b<k.length;b++)q=k[b],q.o=null,n.push({x:q.x,y:q.y,z:q.x*q.x+q.y*q.y-q.f});var p=za.S(n).Je;d();c(f);n=g(p,k);for(b=0;b<k.length;b++)if(q=n[b],0!==q.length){var r=k[b];q=l(q);var s=q.length,w=-1;for(h=0;h<s;h++)q[h][0].tb&&(w=h);if(0<=w)e(r,f,
|
||||
q,w);else{var w=[],u=[];for(h=0;h<s;h++)M.d(q[h][0].ha,q[(h+1)%s][0].ha)>m&&(w.push(q[h][0].ha),u.push(q[h][2]));r.o=w;r.C=u}r.o&&3>r.o.length&&(r.o=null,r.C=null)}}};this.Ac=function(k,f){var d,c,g=!1,l=k.length;for(c=0;c<l;c++)d=k[c],null===d.o&&(g=!0),d.pe=d.f;if(g){var g=a(f),e=[],b,h;c=k.length;for(d=0;d<g.length;d++)b=g[d],e.push({x:b.x,y:b.y,z:b.x*b.x+b.y*b.y});for(d=0;d<c;d++)b=k[d],e.push({x:b.x,y:b.y,z:b.x*b.x+b.y*b.y});b=za.S(e).Je;g=Array(c);for(d=0;d<c;d++)g[d]={};e=b.length;for(d=0;d<
|
||||
e;d++)if(h=b[d],0<h.Oa.z){var n=h.ma,m=n.length;for(h=0;h<m-1;h++){var p=n[h].index-3,r=n[h+1].index-3;0<=p&&0<=r&&(g[p][r]=!0,g[r][p]=!0)}h=n[0].index-3;0<=r&&0<=h&&(g[r][h]=!0,g[h][r]=!0)}for(d=0;d<c;d++){h=g[d];b=k[d];var r=Number.MAX_VALUE,e=null,s;for(s in h)h=k[s],n=M.d(b,h),r>n&&(r=n,e=h);b.Wj=e;b.uf=Math.sqrt(r)}for(c=0;c<l;c++)d=k[c],s=Math.min(Math.sqrt(d.f),0.95*d.uf),d.f=s*s;this.S(k,f);for(c=0;c<l;c++)d=k[c],d.pe!==d.f&&0<d.vc&&(s=Math.min(d.vc,d.pe-d.f),d.f+=s,d.vc-=s)}}};var Ca=new function(){this.Cg=function(a){a=a.e;for(var m=0,k=a.length,f=0;f<k;f++){var d=a[f];if(d.o){var c=d.x,g=d.y;M.k(d.o,d);c=c-d.x;d=g-d.y;d=(0<c?c:-c)+(0<d?d:-d);m<d&&(m=d)}}return m};this.ya=function(a,m){var k=a.e,f,d,c,g;switch(m){case "random":return a.e[Math.floor(k.length*Math.random())];case "topleft":f=k[0];var l=f.x+f.y;for(g=1;g<k.length;g++)d=k[g],c=d.x+d.y,c<l&&(l=c,f=d);return f;case "bottomright":f=k[0];l=f.x+f.y;for(g=1;g<k.length;g++)d=k[g],c=d.x+d.y,c>l&&(l=c,f=d);return f;
|
||||
default:f=k[0];c=d=M.d(a,f);for(g=k.length-1;1<=g;g--)l=k[g],d=M.d(a,l),d<c&&(c=d,f=l);return f}};this.Ja=function(a,m,k){var f=a.e;if(f[0].C){var d=f.length;for(a=0;a<d;a++)f[a].ld=!1,f[a].kc=0;var d=[],c,g;g=c=0;d[c++]=m||f[0];for(m=m.kc=0;g<c;)if(f=d[g++],!f.ld&&f.C){k(f,m++,f.kc);f.ld=!0;var l=f.C,e=l.length;for(a=0;a<e;a++){var b=l[a];b&&!0!==b.ld&&(0===b.kc&&(b.kc=f.kc+1),d[c++]=b)}}}else for(a=0;a<f.length;a++)k(f[a],a,1)}};var G=function(){function a(a,e,h,r,s,p,w,P){var F=D.extend({},l,a);1>a.lineHeight&&(a.lineHeight=1);a=F.fontFamily;var T=F.fontStyle+" "+F.fontVariant+" "+F.fontWeight,N=F.rb,U=F.Zc,t=T+" "+a;F.Ne=t;var z={la:!1,nc:0,fontSize:0};e.save();e.font=T+" "+x+"px "+a;e.textBaseline="middle";e.textAlign="center";m(e,F);h=h.trim();u.text=h;d(r,s,p,y);if(/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/.test(h))f(u),k(e,u,t),c(F,u,y,U,N,!0,z);else if(k(e,u,t),c(F,u,y,U,N,!1,
|
||||
z),!z.la&&(w&&(f(u),k(e,u,t)),P||w))P&&(z.gc=!0),c(F,u,y,U,U,!0,z);if(z.la){var L="",E=0,I=Number.MAX_VALUE,J=Number.MIN_VALUE;g(F,u,z.nc,z.fontSize,y,z.gc,function(a,c){0<L.length&&c===b&&(L+=b);L+=a},function(a,b,c,d,f){d===q&&(L+=n);e.save();e.translate(p.x,b);a=z.fontSize/x;e.scale(a,a);e.fillText(L,0,0);e.restore();L=c;E<f&&(E=f);I>b&&(I=b);J<b&&(J=b)});z.ea={x:p.x-E/2,y:I-z.fontSize/2,f:E,i:J-I+z.fontSize};e.restore()}else e.clear&&e.clear();return z}function m(a,c){var d=c.Ne,f=e[d];void 0===
|
||||
f&&(f={},e[d]=f);f[b]=a.measureText(b).width;f[h]=a.measureText(h).width}function k(a,b,c){var d,f=b.text.split(/(\n|[ \f\r\t\v\u2028\u2029]+|\u00ad+|\u200b+)/),g=[],h=[],k=f.length>>>1;for(d=0;d<k;d++)g.push(f[2*d]),h.push(f[2*d+1]);2*d<f.length&&(g.push(f[2*d]),h.push(void 0));c=e[c];for(d=0;d<g.length;d++)f=g[d],k=c[f],void 0===k&&(k=a.measureText(f).width,c[f]=k);b.md=g;b.kg=h}function f(a){for(var c=a.text.split(/\s+/),d=[],e={".":!0,",":!0,";":!0,"?":!0,"!":!0,":":!0,"\u3002":!0},f=0;f<c.length;f++){var g=
|
||||
c[f];if(3<g.length){for(var h="",h=h+g.charAt(0),h=h+g.charAt(1),k=2;k<g.length-2;k++){var l=g.charAt(k);e[l]||(h+=p);h+=l}h+=p;h+=g.charAt(g.length-2);h+=g.charAt(g.length-1);d.push(h)}else d.push(g)}a.text=d.join(b)}function d(a,b,c,d){for(var e,f,g=0;g<a.length;g++)a[g].y===b.y&&(void 0===e?e=g:f=g);void 0===f&&(f=e);e!==f&&a[f].x<a[e].x&&(g=e,e=f,f=g);d.o=a;d.q=b;d.vd=c;d.sf=e;d.tf=f}function c(a,b,c,d,e,f,h){var k=a.lineHeight,l=Math.max(a.cb,0.001),r=a.sb,n=b.md,s=c.vd,p=c.q,m=void 0,q=void 0;
|
||||
switch(a.verticalAlign){case "top":s=p.y+p.i-s.y;break;case "bottom":s=s.y-p.y;break;default:s=2*Math.min(s.y-p.y,p.y+p.i-s.y)}r=Math.min(s,r*c.q.i);if(0>=r)h.la=!1;else{s=d;e=Math.min(e,r);p=Math.min(1,r/Math.max(20,b.md.length));do{var w=(s+e)/2,u=Math.min(n.length,Math.floor((r+w*(k-1-2*l))/(w*k))),y=void 0;if(0<u){var x=1,Y=u;do{var Z=Math.floor((x+Y)/2);if(g(a,b,Z,w,c,f&&w===d&&Z===u,null,null)){if(Y=m=y=Z,x===Y)break}else if(x=Z+1,x>Y)break}while(1)}void 0!==y?s=q=w:e=w}while(e-s>p);void 0===
|
||||
q?(h.la=!1,h.fontSize=0):(h.la=!0,h.fontSize=q,h.nc=m,h.gc=f&&w===s)}}function g(a,c,d,f,g,k,l,n){var p=a.ob,m=f*(a.lineHeight-1),q=a.verticalAlign,u=Math.max(a.cb,0.001);a=e[a.Ne];var y=c.md;c=c.kg;var z=g.o,L=g.vd,E=g.sf,I=g.tf,J;switch(q){case "top":g=L.y+f/2+f*u;J=1;break;case "bottom":g=L.y-(f*d+m*(d-1))+f/2-f*u;J=-1;break;default:g=L.y-(f*(d-1)/2+m*(d-1)/2),J=1}q=g;for(u=0;u<d;u++)r[2*u]=g-f/2,r[2*u+1]=g+f/2,g+=J*f,g+=J*m;for(;s.length<r.length;)s.push(Array(2));u=r;g=2*d;J=s;for(var R=z.length,
|
||||
Y=E,E=(E-1+R)%R,Z=I,I=(I+1)%R,W=0;W<g;){for(var ea=u[W],aa=z[E];aa.y<ea;)Y=E,E=(E-1+R)%R,aa=z[E];for(var ca=z[I];ca.y<ea;)Z=I,I=(I+1)%R,ca=z[I];var ma=z[Y],na=z[Z],ca=na.x+(ca.x-na.x)*(ea-na.y)/(ca.y-na.y);J[W][0]=ma.x+(aa.x-ma.x)*(ea-ma.y)/(aa.y-ma.y);J[W][1]=ca;W++}for(u=0;u<d;u++)z=2*u,g=L.x,J=g-s[z][0],R=s[z][1]-g,J=J<R?J:R,R=g-s[z+1][0],z=s[z+1][1]-g,z=R<z?R:z,w[u]=2*(J<z?J:z)-p*f;Y=a[b]*f/x;J=a[h]*f/x;p=0;E=w[p];L=0;z=void 0;for(u=0;u<y.length;u++){g=y[u];Z=c[u];R=a[g]*f/x;if(L+R<E&&y.length-
|
||||
u>=d-p&&"\n"!=z)L+=R," "===Z&&(L+=Y),l&&l(g,z);else{if(R>E&&(p!==d-1||!k))return!1;if(p+1>=d){if(k){d=E-L-J;if(d>J||R>J)d=Math.floor(g.length*d/R),0<d&&l&&l(g.substring(0,d),z);l&&l(h,void 0);n&&n(p,q,g,z,L);return!0}return!1}p++;n&&n(p,q,g,z,L);q+=f;q+=m;E=w[p];L=R;" "===Z&&(L+=Y);if(R>E&&(p!==d||!k))return!1}z=Z}n&&n(p,q,void 0,void 0,L);return!0}var l={rb:72,Zc:0,lineHeight:1.05,ob:1,cb:0.5,sb:0.9,fontFamily:"sans-serif",fontStyle:"normal",fontWeight:"normal",fontVariant:"normal",verticalAlign:"center"},
|
||||
e={},b=" ",h="\u2026",n="\u2010",q="\u00ad",p="\u200b",r=[],s=[],w=[],u={text:"",md:void 0,kg:void 0},y={o:void 0,q:void 0,vd:void 0,sf:0,tf:0},x=100;return{Le:a,xe:function(b,c,d,e,f,g,h,k,l,r,s,n){var p,m=0,q=0;d=d.toString().trim();!n&&l.result&&d===l.rg&&Math.abs(r-l.ue)/r<=s&&(p=l.result,p.la&&(m=g.x-l.yg,q=g.y-l.zg,s=l.jd,c.save(),c.translate(m,q),s.Ta(c),c.restore()));p||(s=l.jd,s.clear(),p=a(b,s,d,e,f,g,h,k),p.la&&s.Ta(c),l.ue=r,l.yg=g.x,l.zg=g.y,l.result=p,l.rg=d);return p.la?{la:!0,nc:p.nc,
|
||||
fontSize:p.fontSize,ea:{x:p.ea.x+m,y:p.ea.y+q,f:p.ea.f,i:p.ea.i},gc:p.gc}:{la:!1}},Ai:function(){return{ue:0,yg:0,zg:0,result:void 0,jd:new ga,rg:void 0}},Ea:l}}();var Da=new function(){function a(a,d){return function(c,g,l,e){function b(a,c,e,f,g){if(0!=a.length){var r=a.shift(),s=k(r),n,p,m,q;if(d(f,g)){n=c;m=s/f;do{s=r.shift();p=s.wc;q=p/m;p=s;var P=e,F=m;p.x=n+q/2;p.y=P+F/2;l&&h(s,n,e,q,m);n+=q}while(0<r.length);return b(a,c,e+m,f,g-m)}n=e;q=s/g;do s=r.shift(),p=s.wc,m=p/q,p=s,P=n,F=m,p.x=c+q/2,p.y=P+F/2,l&&h(s,c,n,q,m),n+=m;while(0<r.length);return b(a,c+q,e,f-q,g)}}function h(a,b,c,d,e){a.o=[{x:b,y:c},{x:b+d,y:c},{x:b+d,y:c+e},{x:b,y:c+e}]}var n=g.x,m=
|
||||
g.y,p=g.f;g=g.i;if(0!=c.length)if(1==c.length)c[0].x=n+p/2,c[0].y=m+g/2,c[0].Ed=0,l&&h(c[0],n,m,p,g);else{c=c.slice(0);for(var r=0,s=0;s<c.length;s++)r+=c[s].T;r=p*g/r;for(s=0;s<c.length;s++)c[s].wc=c[s].T*r;e=a(c,p,g,[[c.shift()]],e);b(e,n,m,p,g)}}}function m(a,d,c,g){function l(a){return Math.max(Math.pow(h*a/b,c),Math.pow(b/(h*a),g))}var e=k(a),b=e*e,h=d*d;d=l(a[0].wc);for(e=1;e<a.length;e++)d=Math.max(d,l(a[e].wc));return d}function k(a){for(var d=0,c=0;c<a.length;c++)d+=a[c].wc;return d}this.te=
|
||||
a(function(a,d,c,g,l){l=Math.pow(2,l);for(var e=1/l,b=d<c;0<a.length;){var h=g[g.length-1],n=a.shift(),q=b?d:c,p=b?l:e,r=b?e:l,s=m(h,q,p,r);h.push(n);q=m(h,q,p,r);s<q&&(h.pop(),g.push([n]),b?c-=k(h)/d:d-=k(h)/c,b=d<c)}return g},function(a,d){return a<d});this.Zb=a(function(a,d,c,g,k){function e(a){if(1<g.length){for(var c=g[g.length-1],e=g[g.length-2].slice(0),f=0;f<c.length;f++)e.push(c[f]);m(e,d,b,h)<a&&g.splice(-2,2,e)}}for(var b=Math.pow(2,k),h=1/b;0<a.length;){c=g[g.length-1];k=m(c,d,b,h);if(0==
|
||||
a.length)return;var n=a.shift();c.push(n);var q=m(c,d,b,h);k<q&&(c.pop(),e(k),g.push([n]))}e(m(g[g.length-1],d,b,h));return g},function(){return!0})};function Ea(a){var m={},k=a.Ud,f;a.c.j("model:loaded",function(a){f=a});this.H=function(){a.c.p("api:initialized",this)};this.Dc=function(a,c,f,l){this.pd(m,c);this.qd(m,c);this.od(m,c,!1);l&&l(m);a(k,m,f)};this.ud=function(a,c,g,k,e,b,h){if(a){for(a=c.length-1;0<=a;a--){var n=c[a],m=D.extend({group:n.group},e);m[g]=k(n);b(m)}0<c.length&&h(D.extend({groups:$.Mc(f,k).map(function(a){return a.group})},e))}};this.qd=function(a,c){a.selected=c.selected;a.hovered=c.Eb;a.open=c.open;a.openness=c.Mb;a.exposed=
|
||||
c.U;a.exposure=c.ka;a.transitionProgress=c.ua;a.revealed=!c.ca.Na();a.browseable=c.Qa?c.O:void 0;a.visible=c.$;a.labelDrawn=c.ra&&c.ra.la;return a};this.pd=function(a,c){var f=c.parent;a.group=c.group;a.parent=f&&f.group;a.weightNormalized=c.wg;a.level=c.K-1;a.siblingCount=f&&f.e.length;a.hasChildren=!c.empty();a.index=c.index;a.indexByWeight=c.Ed;a.description=c.description;a.attribution=c.na;return a};this.od=function(a,c,f){a.polygonCenterX=c.L.x;a.polygonCenterY=c.L.y;a.polygonArea=c.L.ja;a.boxLeft=
|
||||
c.q.x;a.boxTop=c.q.y;a.boxWidth=c.q.f;a.boxHeight=c.q.i;if(c.ra&&c.ra.la){var k=c.ra.ea;a.labelBoxLeft=k.x;a.labelBoxTop=k.y;a.labelBoxWidth=k.f;a.labelBoxHeight=k.i;a.labelFontSize=c.ra.fontSize}f&&c.ba&&(a.polygon=c.ba.map(function(a){return{x:a.x,y:a.y}}),a.neighbors=c.C&&c.C.map(function(a){return a&&a.group}));return a}};var la=new function(){var a=window.console;this.Pa=function(a){throw"FoamTree: "+a;};this.info=function(m){a.info("FoamTree: "+m)};this.warn=function(m){a.warn("FoamTree: "+m)}};function Fa(a){function m(b,c){b.e=[];b.La=!0;var e=d(c),f=0;if(("flattened"===a.xb||"always"===a.ah&&b.group&&b.group.description)&&0<c.length&&0<b.K){var g=c.reduce(function(a,b){return a+D.B(b.weight,1)},0),h=k(b.group,!1);h.description=!0;h.T=g*a.ec;h.index=f++;h.parent=b;h.K=b.K+1;h.id=h.id+"_d";b.e.push(h)}for(g=0;g<c.length;g++){var l=c[g],h=D.B(l.weight,1);if(0>=h)if(a.wj)h=0.9*e;else continue;l=k(l,!0);l.T=h;l.index=f;l.parent=b;l.K=b.K+1;b.e.push(l);f++}}function k(a,b){var c=new Ga;f(a);
|
||||
c.id=a.__id;c.group=a;b&&(n[a.__id]=c);return c}function f(a){D.N(a,"__id")||(Object.defineProperty(a,"__id",{enumerable:!1,configurable:!1,writable:!1,value:h}),h++)}function d(a){for(var b=Number.MAX_VALUE,c=0;c<a.length;c++){var d=a[c].weight;0<d&&b>d&&(b=d)}b===Number.MAX_VALUE&&(b=1);return b}function c(a){if(!a.empty()){a=a.e;var b=0,c;for(c=a.length-1;0<=c;c--){var d=a[c].T;b<d&&(b=d)}for(c=a.length-1;0<=c;c--)d=a[c],d.wg=d.T/b}}function g(a){if(!a.empty()){a=a.e.slice(0).sort(function(a,b){return a.T<
|
||||
b.T?1:a.T>b.T?-1:a.index-b.index});for(var b=0;b<a.length;b++)a[b].Ed=b}}function l(){for(var c=b.e.reduce(function(a,b){return a+b.T},0),d=0;d<b.e.length;d++){var e=b.e[d];e.na&&(e.T=Math.max(0.025,a.Tg)*c)}}var e=this,b=new Ga,h,n,q,p,r;this.H=function(){return b};this.S=function(b){var d=b.group.groups,e=a.si;return!b.e&&!b.description&&d&&0<d.length&&r+d.length<=e?(r+=d.length,m(b,d),c(b),g(b),!0):!1};this.Z=function(a){function d(a){var b=a.groups;if(b)for(var c=0;c<b.length;c++){var e=b[c];
|
||||
f(e);var g=e.__id;n[g]=null;p[g]=a;g=e.id;D.V(g)||(q[g]=e);d(e)}}function e(a,b){if(!a)return b;var c=Math.max(b,a.__id||0),d=a.groups;if(d&&0<d.length)for(var f=d.length-1;0<=f;f--)c=e(d[f],c);return c}b.group=a;b.Ca=!1;b.O=!1;b.Qa=!1;b.open=!0;b.Mb=1;h=e(a,0)+1;n={};q={};p={};r=0;a&&(f(a),n[a.__id]=b,D.V(a.id)||(q[a.id]=a),d(a));m(b,a&&a.groups||[]);(function(a){if(!a.empty()){var b=k({attribution:!0});b.index=a.e.length;b.parent=a;b.K=a.K+1;b.na=!0;a.e.push(b)}})(b);c(b);l();g(b)};this.update=
|
||||
function(a){a.forEach(function(a){$.Fa(a,function(a){if(!a.empty()){a=a.e;for(var b=d(a.map(function(a){return a.group})),c=0;c<a.length;c++){var e=a[c];e.T=0<e.group.weight?e.group.weight:0.9*b}}});c(a);a===b&&l();g(a)})};this.k=function(a){return function(){if(D.V(a)||D.mf(a))return[];if(Array.isArray(a))return a.map(e.d,e);if(D.Gb(a)){if(D.N(a,"__id"))return[e.d(a)];if(D.N(a,"all")){var c=[];$.F(b,function(a){c.push(a)});return c}if(D.N(a,"groups"))return e.k(a.groups)}return[e.d(a)]}().filter(function(a){return void 0!==
|
||||
a})};this.d=function(a){if(D.Gb(a)&&D.N(a,"__id")){if(a=a.__id,D.N(n,a)){if(null===n[a]){for(var b=p[a],c=[];b;){b=b.__id;c.push(b);if(n[b])break;b=p[b]}for(b=c.length-1;0<=b;b--)this.S(n[c[b]])}return n[a]}}else if(D.N(q,a))return this.d(q[a])};this.A=function(a,b,c){return{e:e.k(a),Ia:D.B(a&&a[b],!0),Ha:D.B(a&&a.keepPrevious,c)}}}
|
||||
function Ha(a,m,k){var f={};m.Ha&&$.F(a,function(a){k(a)&&(f[a.id]=a)});a=m.e;m=m.Ia;for(var d=a.length-1;0<=d;d--){var c=a[d];f[c.id]=m?c:void 0}var g=[];D.Ga(f,function(a){void 0!==a&&g.push(a)});return g};function Ia(a){function m(a,b){var c=a.ka;b.opacity=1;b.Ka=1;b.va=0>c?1-p.ei/100*c:1;b.wa=0>c?1-p.fi/100*c:1;b.fa=0>c?1+0.5*c:1}function k(a){a=a.ka;return Math.max(0.001,0===a?1:1+a*(p.Wa-1))}function f(a,b){for(var c=a.reduce(function(a,b){a[b.id]=b;return a},{}),d=a.length-1;0<=d;d--)$.F(a[d],function(a){c[a.id]=void 0});var e=[];D.Ga(c,function(a){a&&$.Ge(a,function(a){a.open||e.push(a)})});var f=[];D.Ga(c,function(a){a&&a.open&&f.push(a)});d=[];0!==e.length&&d.push(x.Lb({e:e,Ia:!0,Ha:!0},b,!0));
|
||||
return pa(d)}function d(d,f,k,n){var m=l();if(0===d.length&&!m)return(new V).J().M();var q=d.reduce(function(a,b){a[b.id]=!0;return a},{}),s=[];d=[];if(A.reduce(function(a,b){return a||q[b.id]&&(!b.U||1!==b.ka)||!q[b.id]&&!b.parent.U&&(b.U||-1!==b.ka)},!1)){var x=[],C={};A.forEach(function(a){q[a.id]&&(a.U||s.push(a),a.U=!0,$.Fa(a,function(a){x.push(b(a,1));C[a.id]=!0}))});0<x.length?($.F(r,function(a){q[a.id]||(a.U&&s.push(a),a.U=!1);C[a.id]||x.push(b(a,-1))}),d.push(y.D.m({}).Ya(x).call(h).ab()),
|
||||
c(q),d.push(g(m)),k&&(u.tc(B,p.Qc,p.Va,X.pa(p.ic)),u.Rb())):(d.push(e(k)),f&&$.F(r,function(a){a.U&&s.push(a)}))}return pa(d).P(function(){w.ud(f,s,"exposed",function(a){return a.U},{indirect:n},a.options.Df,a.options.Cf)})}function c(a){A.reduce(n(!0,void 0,function(b){return b.U||a[b.id]}),q(B));B.x-=B.f*(p.Wa-1)/2;B.y-=B.i*(p.Wa-1)/2;B.f*=p.Wa;B.i*=p.Wa}function g(b){if(b||!u.Rd())return y.D.m(s).ia({duration:0.7*p.Va,G:{x:{end:B.x+B.f/2,R:X.pa(p.ic)},y:{end:B.y+B.i/2,R:X.pa(p.ic)}},da:function(){a.c.p("foamtree:dirty",
|
||||
!0)}}).ab();s.x=B.x+B.f/2;s.y=B.y+B.i/2;return(new V).J().M()}function l(){return!!A&&A.reduce(function(a,b){return a||0!==b.ka},!1)}function e(a){var c=[],d=[];$.F(r,function(a){0!==a.ka&&d.push(b(a,0,function(){this.U=!1}))});c.push(y.D.m({}).Ya(d).ab());u.content(0,0,K,C);a&&(c.push(u.reset(p.Va,X.pa(p.ic))),u.Rb());return pa(c)}function b(b,c,d){var e=y.D.m(b);0===b.ka&&0!==c&&e.call(function(){this.Cc(H);this.Ab(m)});e.ia({duration:p.Va,G:{ka:{end:c,R:X.pa(p.ic)}},da:function(){r.I=!0;r.Ma=!0;
|
||||
a.c.p("foamtree:dirty",!0)}});0===c&&e.call(function(){this.Nd();this.oc();this.fd(H);this.ed(m)});return e.call(d).xa()}function h(){var a=r.e.reduce(n(!1,H.Vb,void 0),q({})).ea,b=p.Qc,c=Math.min(a.x,B.x-B.f*b),d=Math.max(a.x+a.f,B.x+B.f*(1+b)),e=Math.min(a.y,B.y-B.i*b),a=Math.max(a.y+a.i,B.y+B.i*(1+b));u.content(c,e,d-c,a-e)}function n(a,b,c){var d={};return function(e,f){if(!c||c(f)){for(var g=a?f.ba||f.o:f.o,h,k=g.length-1;0<=k;k--)h=void 0!==b?b(f,g[k],d):g[k],e.$c=Math.min(e.$c,h.x),e.Od=Math.max(e.Od,
|
||||
h.x),e.ad=Math.min(e.ad,h.y),e.Pd=Math.max(e.Pd,h.y);e.ea.x=e.$c;e.ea.y=e.ad;e.ea.f=e.Od-e.$c;e.ea.i=e.Pd-e.ad}return e}}function q(a){return{$c:Number.MAX_VALUE,Od:Number.MIN_VALUE,ad:Number.MAX_VALUE,Pd:Number.MIN_VALUE,ea:a}}var p=a.options,r,s,w,u,y,x,A,B,K,C,H={qf:function(a,b){b.scale=k(a);return!1},Ub:function(a,b){var c=k(a),d=s.x,e=s.y;b.translate(d,e);b.scale(c,c);b.translate(-d,-e)},Wb:function(a,b,c){a=k(a);var d=s.x,e=s.y;c.x=(b.x-d)/a+d;c.y=(b.y-e)/a+e},Vb:function(a,b,c){a=k(a);var d=
|
||||
s.x,e=s.y;c.x=(b.x-d)*a+d;c.y=(b.y-e)*a+e;return c}};a.c.j("stage:initialized",function(a,b,c,d){s={x:c/2,y:d/2};K=c;C=d;B={x:0,y:0,f:K,i:C}});a.c.j("stage:resized",function(a,b,c,d){s.x*=c/a;s.y*=d/b;K=c;C=d});a.c.j("api:initialized",function(a){w=a});a.c.j("zoom:initialized",function(a){u=a});a.c.j("model:loaded",function(a,b){r=a;A=b});a.c.j("model:childrenAttached",function(a){A=a});a.c.j("timeline:initialized",function(a){y=a});a.c.j("openclose:initialized",function(a){x=a});var Q=["groupExposureScale",
|
||||
"groupUnexposureScale","groupExposureZoomMargin"];a.c.j("options:changed",function(a){D.nb(a,Q)&&l()&&(c({}),u.Dj(B,p.Qc),u.Rb())});this.H=function(){a.c.p("expose:initialized",this)};this.hc=function(a,b,c,e){var g=a.e.reduce(function(a,b){for(var c=b;c=c.parent;)a[c.id]=!0;return a},{}),h=Ha(r,a,function(a){return a.U&&!a.open&&!g[a.id]}),k=new V;f(h,b).P(function(){d(h.filter(function(a){return a.o&&a.ba}),b,c,e).P(k.J)});return k.M()}};function Ja(a){function m(d){function b(a,b){var c=Math.min(1,Math.max(0,a.ua));b.opacity=c;b.va=1;b.wa=c;b.Ka=c;b.fa=a.Ib}var h=a.options,k=h.rj,m=h.sj,p=h.oj,r=h.pj,s=h.qj,w=h.fe,u=k+m+p+r+s,y=0<u?w/u:0,x=[];l.Xb(h.gg,h.fg,h.hg,h.ig,h.eg);if(0===y&&d.e&&d.O){w=d.e;for(u=0;u<w.length;u++){var A=w[u];A.ua=1;A.Ib=1;A.Ab(b);A.oc();A.ed(b)}d.I=!0;a.c.p("foamtree:dirty",0<y);return(new V).J().M()}if(d.e&&d.O){Ca.Ja(d,Ca.ya(d,a.options.he),function(c,d,e){c.Cc(l);c.Ab(b);e="groups"===a.options.ge?e:d;
|
||||
d=f.D.m(c).eb(e*y*k).ia({duration:y*m,G:{ua:{end:1,R:X.pa(h.nj)}},da:function(){this.I=!0;a.c.p("foamtree:dirty",0<y)}}).xa();e=f.D.m(c).eb(g?y*(p+e*r):0).ia({duration:g?y*s:0,G:{Ib:{end:1,R:X.Kb}},da:function(){this.I=!0;a.c.p("foamtree:dirty",0<y)}}).xa();c=f.D.m(c).Ya([d,e]).oe().ib(function(){this.Nd();this.oc();this.fd(l);this.ed(b)}).xa();x.push(c)});c.d();var B=new V;f.D.m({}).Ya(x).call(function(){c.k();B.J()}).start();return B.M()}return(new V).J().M()}var k,f,d=[],c=new qa(D.ta);a.c.j("stage:initialized",
|
||||
function(){});a.c.j("stage:resized",function(){});a.c.j("stage:newLayer",function(a,b){d.push(b)});a.c.j("model:loaded",function(a){k=a;c.clear()});a.c.j("zoom:initialized",function(){});a.c.j("timeline:initialized",function(a){f=a});var g=!1;a.c.j("render:renderers:resolved",function(a){g=a.labelPlainFill||!1});var l=new function(){var a=0,b=0,c=0,d=0,f=0,g=0;this.Xb=function(k,l,m,u,y){a=1+l;b=1-a;c=m;d=u;f=y;g=k};this.qf=function(g,k){k.scale=a+b*g.ua;return 0!==f||0!==c||0!==d};this.Ub=function(k,
|
||||
l){var m=a+b*k.ua,u=k.parent,y=g*k.x+(1-g)*u.x,x=g*k.y+(1-g)*u.y;l.translate(y,x);l.scale(m,m);m=1-k.ua;l.rotate(f*Math.PI*m);l.translate(-y,-x);l.translate(u.q.f*c*m,u.q.i*d*m)};this.Wb=function(f,k,l){var m=a+b*f.ua,q=g*f.x+(1-g)*f.parent.x,x=g*f.y+(1-g)*f.parent.y,A=1-f.ua;f=f.parent;l.x=(k.x-q)/m+q-f.q.f*c*A;l.y=(k.y-x)/m+x-f.q.i*d*A};this.Vb=function(f,k,l){var m=a+b*f.ua,q=g*f.x+(1-g)*f.parent.x,x=g*f.y+(1-g)*f.parent.y,A=1-f.ua;f=f.parent;l.x=(k.x-q)*m+q-f.q.f*c*A;l.y=(k.y-x)*m+x-f.q.i*d*A}};
|
||||
this.H=function(){};this.k=function(){function d(a,b){var c=Math.min(1,Math.max(0,a.ua));b.opacity=c;b.va=1;b.wa=c;b.Ka=c;b.fa=a.Ib}function b(a,b){var c=Math.min(1,Math.max(0,a.Zd));b.opacity=c;b.Ka=c;b.va=1;b.wa=1;b.fa=a.Ib}var h=a.options,n=h.Yd,m=h.Ki,p=h.Li,r=h.Mi,s=h.Gi,w=h.Hi,u=h.Ii,y=h.Ci,x=h.Di,A=h.Ei,B=s+w+u+y+x+A+m+p+r,K=0<B?n/B:0,C=[];c.A()?l.Xb(h.Qi,h.Oi,h.Ri,h.Si,h.Ni):l.Xb(h.gg,h.fg,h.hg,h.ig,h.eg);Ca.Ja(k,Ca.ya(k,a.options.Pi),function(c,k,n){var B="groups"===a.options.Ji?n:k;C.push(f.D.m(c).call(function(){this.Ab(d)}).eb(g?
|
||||
K*(s+B*w):0).ia({duration:g?K*u:0,G:{Ib:{end:0,R:X.Kb}},da:function(){this.I=!0;a.c.p("foamtree:dirty",!0)}}).xa());$.F(c,function(c){C.push(f.D.m(c).call(function(){this.Cc(l);this.Ab(b)}).eb(K*(y+x*B)).ia({duration:K*A,G:{Zd:{end:0,R:X.Kb}},da:function(){this.I=!0;a.c.p("foamtree:dirty",!0)}}).ib(function(){this.selected=!1;this.fd(l)}).xa())});C.push(f.D.m(c).call(function(){this.Cc(l)}).eb(K*(m+p*B)).ia({duration:K*r,G:{ua:{end:0,R:X.pa(h.Fi)}},da:function(){this.I=!0;a.c.p("foamtree:dirty",!0)}}).ib(function(){this.selected=
|
||||
!1;this.fd(l)}).xa())});return f.D.m({}).Ya(C).ab()};this.d=function(a){return m(a)}};function Ka(a){function m(a,b){var d=[];$.F(g,function(b){if(b.e){var c=D.N(a,b.id);b.open!==c&&(c||b.U||$.F(b,function(a){if(a.U)return d.push(b),!1}))}});if(0===d.length)return(new V).J().M();var f;for(f=d.length-1;0<=f;f--)d[f].open=!1;var k=c.hc({e:d,Ia:!0,Ha:!0},b,!0,!0);for(f=d.length-1;0<=f;f--)d[f].open=!0;return k}function k(c,b,h){function k(b,c){b.Ab(m);var e=d.D.m(b).ia({duration:a.options.cd,G:{Mb:{end:c?1:0,R:X.ze}},da:function(){this.I=!0;a.c.p("foamtree:dirty",!0)}}).call(function(){this.open=
|
||||
c;b.fb=!1}).ib(function(){this.oc();this.ed(m);delete f[this.id]}).xa();return f[b.id]=e}function m(a,b){b.opacity=1-a.Mb;b.va=1;b.wa=1;b.fa=1;b.Ka=1}var p=[],r=[];$.F(g,function(a){if(a.O&&a.Y){var b=D.N(c,a.id),d=f[a.id];if(d&&d.Hb())d.stop();else if(a.open===b)return;a.fb=b;b||(a.open=b,a.Td=!1);r.push(a);p.push(k(a,b))}});return 0<p.length?(a.c.p("openclose:changing"),d.D.m({}).Ya(p).ab().P(function(){l.ud(b,r,"open",function(a){return a.open},{indirect:h},a.options.Lf,a.options.Kf)})):(new V).J().M()}
|
||||
var f,d,c,g,l;a.c.j("api:initialized",function(a){l=a});a.c.j("model:loaded",function(a){g=a;f={}});a.c.j("timeline:initialized",function(a){d=a});a.c.j("expose:initialized",function(a){c=a});this.H=function(){a.c.p("openclose:initialized",this)};this.Lb=function(c,b,d){if("flattened"==a.options.xb)return(new V).J().M();c=Ha(g,c,function(a){return a.open||a.fb});for(var f=new V,l=0;l<c.length;l++)c[l].fb=!0;0<c.length&&a.c.p("foamtree:attachChildren",c);var p=c.reduce(function(a,b){a[b.id]=!0;return a},
|
||||
{});m(p,b).P(function(){k(p,b,d).P(f.J)});return f.M()}};function La(a){function m(d,c){var g=Ha(k,d,function(a){return a.selected});$.F(k,function(a){!0===a.selected&&(a.selected=!a.selected,a.I=!a.I,a.$a=!a.$a)});var l;for(l=g.length-1;0<=l;l--){var e=g[l];e.selected=!e.selected;e.I=!e.I;e.$a=!e.$a}var b=[];$.F(k,function(a){a.I&&b.push(a)});0<b.length&&a.c.p("foamtree:dirty",!1);f.ud(c,b,"selected",function(a){return a.selected},{},a.options.Nf,a.options.Mf)}var k,f;a.c.j("api:initialized",function(a){f=a});a.c.j("model:loaded",function(a){k=a});this.H=
|
||||
function(){a.c.p("select:initialized",this)};this.select=function(a,c){return m(a,c)}};function Ma(a){function m(a){return function(b){a.call(this,{x:b.x,y:b.y,scale:b.scale,wd:b.delta,ctrlKey:b.ctrlKey,metaKey:b.metaKey,altKey:b.altKey,shiftKey:b.shiftKey,wb:b.secondary,touches:b.touches})}}function k(){function b(a){return function(b){b.x*=N/q.clientWidth;b.y*=U/q.clientHeight;return a(b)}}"external"!==n.gf&&("hammerjs"===n.gf&&D.N(window,"Hammer")&&(E.H(q),E.m("tap",b(h.d),!0),E.m("doubletap",b(h.k),!0),E.m("hold",b(h.ya),!0),E.m("touch",b(h.Aa),!1),E.m("release",b(h.Ba),!1),E.m("dragstart",
|
||||
b(h.Z),!0),E.m("drag",b(h.A),!0),E.m("dragend",b(h.S),!0),E.m("transformstart",b(h.Ua),!0),E.m("transform",b(h.Ja),!0),E.m("transformend",b(h.bb),!0)),F=new ta(q),T=new sa,F.d(b(h.d)),F.k(b(h.k)),F.ya(b(h.ya)),F.Ba(b(h.Aa)),F.Pa(b(h.Ba)),F.Z(b(h.Z)),F.A(b(h.A)),F.S(b(h.S)),F.za(b(h.za)),F.Ja(b(h.za)),F.Aa(b(h.Pa)),T.addEventListener("keyup",function(b){var c=!1,d=void 0,e=n.Rf({keyCode:b.keyCode,preventDefault:function(){c=!0},preventOriginalEventDefault:function(){d="prevent"},allowOriginalEventDefault:function(){d=
|
||||
"allow"}});"prevent"===d&&b.preventDefault();(c=c||0<=e.indexOf(!1))||27===b.keyCode&&a.c.p("interaction:reset")}))}function f(){p.Hc(2)?a.c.p("interaction:reset"):p.normalize(n.xc,X.pa(n.yc))}function d(a){return function(){x.empty()||a.apply(this,arguments)}}function c(a,b,c){var d={},f={};return function(g){var h;switch(a){case "click":h=n.xf;break;case "doubleclick":h=n.yf;break;case "hold":h=n.Ef;break;case "hover":h=n.Ff;break;case "mousemove":h=n.Hf;break;case "mousewheel":h=n.Jf;break;case "mousedown":h=
|
||||
n.Gf;break;case "mouseup":h=n.If;break;case "dragstart":h=n.Bf;break;case "drag":h=n.zf;break;case "dragend":h=n.Af;break;case "transformstart":h=n.Qf;break;case "transform":h=n.Of;break;case "transformend":h=n.Pf}var k=!1,m=!h.empty(),r=p.absolute(g,d),q=(b||m)&&l(r),s=(b||m)&&e(r);m&&(m=q?q.group:null,r=q?q.Wb(r,f):r,g.Nb=void 0,h=h({type:a,group:m,topmostClosedGroup:m,bottommostOpenGroup:s?s.group:null,x:g.x,y:g.y,xAbsolute:r.x,yAbsolute:r.y,scale:D.B(g.scale,1),secondary:g.wb,touches:D.B(g.touches,
|
||||
1),delta:D.B(g.wd,0),ctrlKey:g.ctrlKey,metaKey:g.metaKey,altKey:g.altKey,shiftKey:g.shiftKey,preventDefault:function(){k=!0},preventOriginalEventDefault:function(){g.Nb="prevent"},allowOriginalEventDefault:function(){g.Nb="allow"}}),k=k||0<=h.indexOf(!1),q&&q.na&&"click"===a&&(k=!1));k||c&&c({Ec:q,Vg:s},g)}}function g(a){function b(a,c){var d=c.e;if(d){for(var e=-Number.MAX_VALUE,f,g=0;g<d.length;g++){var h=d[g];!h.description&&h.$&&I(h,a)&&h.scale>e&&(f=h,e=h.scale)}var k;f&&(k=b(a,f));return k||
|
||||
f||c}return c}for(var c=t.length,d=t[0].scale,e=t[0].scale,f=0;f<c;f++){var g=t[f],g=g.scale;g<d&&(d=g);g>e&&(e=g)}if(d!==e)for(f=0;f<c;f++)if(g=t[f],g.scale===e&&g.$&&I(g,a))return b(a,g);return b(a,x)}function l(a,b){var c;if("flattened"===n.xb)c=g(a);else{c=b||0;for(var d=t.length,e=void 0,f=0;f<d;f++){var h=t[f];h.scale>c&&!1===h.open&&h.$&&I(h,a)&&(e=h,c=h.scale)}c=e}c&&c.description&&(c=c.parent);return c}function e(a){var b=void 0,c=0;$.Kc(x,function(d){!0===d.open&&d.$&&d.scale>c&&I(d,a)&&
|
||||
(b=d,c=d.scale)});return b}var b=v.mi(),h=this,n=a.options,q,p,r,s,w,u,y,x,A=!1,B,K,C,H,Q,O,P,F,T,N,U;a.c.j("stage:initialized",function(a,b,c,d){q=b;N=c;U=d;k()});a.c.j("stage:resized",function(a,b,c,d){N=c;U=d});a.c.j("stage:disposed",function(){F.kb();E.kb();T.d()});a.c.j("expose:initialized",function(a){s=a});a.c.j("zoom:initialized",function(a){p=a});a.c.j("openclose:initialized",function(a){w=a});a.c.j("select:initialized",function(a){u=a});a.c.j("titlebar:initialized",function(a){y=a});a.c.j("timeline:initialized",
|
||||
function(a){r=a});var t;a.c.j("model:loaded",function(a,b){x=a;t=b});a.c.j("model:childrenAttached",function(a){t=a});this.H=function(){};this.Aa=d(c("mousedown",!1,function(){p.xi()}));this.Ba=d(c("mouseup",!1,void 0));this.d=d(c("click",!0,function(a,b){if(!b.wb&&!b.shiftKey){var c=a.Ec;c&&(c.na?document.location.href=xa.jg("iuuq;..b`ssnurd`sbi/bnl.gn`lusdd"):u.select({e:[c],Ia:!c.selected,Ha:b.metaKey||b.ctrlKey},!0))}}));this.k=d(c("doubleclick",!0,function(b,c){var d,e;if(c.wb||c.shiftKey){if(d=
|
||||
b.Ec)d.parent.U&&(d=d.parent),e={e:d.parent!==x?[d.parent]:[],Ia:!0,Ha:!1},u.select(e,!0),s.hc(e,!0,!0,!1)}else if(d=b.Ec)e={e:[d],Ia:!0,Ha:!1},d.fb=!0,a.c.p("foamtree:attachChildren",[d]),s.hc(e,!0,!0,!1);d&&r.D.m({}).eb(n.Va/2).call(function(){w.Lb({e:$.Mc(x,function(a){return a.Td&&!$.li(d,a)}),Ia:!1,Ha:!0},!0,!0);d.Td=!0;w.Lb({e:[d],Ia:!(c.wb||c.shiftKey),Ha:!0},!0,!0)}).start()}));this.ya=d(c("hold",!0,function(a,b){var c=!(b.metaKey||b.ctrlKey||b.shiftKey)&&!b.wb,d;(d=c?a.Ec:a.Vg)&&d!==x&&w.Lb({e:[d],
|
||||
Ia:c,Ha:!0},!0,!1)}));this.Z=d(c("dragstart",!1,function(a,b){B=b.x;K=b.y;C=Date.now();A=!0}));this.A=d(c("drag",!1,function(a,b){if(A){var c=Date.now();O=Math.min(1,c-C);C=c;var c=b.x-B,d=b.y-K;p.vi(c,d);H=c;Q=d;B=b.x;K=b.y}}));this.S=d(c("dragend",!1,function(){if(A){A=!1;var a=Math.sqrt(H*H+Q*Q)/O;4<=a?p.wi(a,H,Q):p.vf()}}));this.Ua=d(c("transformstart",!1,function(a,b){P=1;B=b.x;K=b.y}));var z=1,L=!1;this.Ja=d(c("transform",!1,function(a,b){var c=b.scale-0.01;p.Pg(b,c/P,b.x-B,b.y-K);P=c;B=b.x;
|
||||
K=b.y;z=P;L=L||2<b.touches}));this.bb=d(c("transformend",!1,function(){L&&0.8>z?a.c.p("interaction:reset"):f();L=!1}));this.Pa=d(c("mousewheel",!1,function(){var a=D.$g(function(){f()},300);return function(c,d){var e=n.Jj;1!==e&&(e=Math.pow(e,d.wd),b?(p.Qg(d,e),a()):p.$b(d,e,n.xc,X.pa(n.yc)).P(f))}}()));this.za=d(function(){var b=void 0,d={},e=!1,f,g=c("hover",!1,function(){b&&(b.Eb=!1,0<b.K&&(b.I=!0));f&&(f.Eb=!0,0<f.K&&(f.I=!0));y.update(f);a.c.p("foamtree:dirty",!1)}),h=c("mousemove",!1,void 0);
|
||||
return function(a){if("out"===a.type)f=void 0,e=f!==b;else if(p.absolute(a,d),b&&!b.open&&I(b,d)){var c=l(d,b.scale);c&&c!==b?(e=!0,f=c):e=!1}else f=l(d),e=f!==b;e&&(g(a),b=f,e=!1);b&&h(a)}}());this.gb={click:m(this.d),doubleclick:m(this.k),hold:m(this.ya),mouseup:m(this.Ba),mousedown:m(this.Aa),dragstart:m(this.Z),drag:m(this.A),dragend:m(this.S),transformstart:m(this.Ua),transform:m(this.Ja),transformend:m(this.bb),hover:m(this.za),mousewheel:m(this.Pa)};var E=function(){function a(b,c){return function(a){a=
|
||||
a.gesture;var d=a.center,d=ra.Ie(q,d.pageX,d.pageY,{});d.scale=a.scale;d.wb=1<a.touches.length;d.touches=a.touches.length;b.call(q,d);(void 0===d.Nb&&c||"prevent"===d.Nb)&&a.preventDefault()}}var b,c={};return{H:function(a){b=window.Hammer(a,{doubletap_interval:350,hold_timeout:400,doubletap_distance:10})},m:function(d,e,f){c[d]=e;b.on(d,a(e,f))},kb:function(){b&&D.Ga(c,function(a,c){b.off(c,a)})}}}(),I=function(){var a={};return function(b,c){b.Wb(c,a);return b.ba&&M.Ua(b.ba,a)}}()};function Na(a){function m(a,c,f,k){var e,b=0,h=[];for(e=0;e<c.length;e++){var m=Math.sqrt(M.d(c[e],c[(e+1)%c.length]));h.push(m);b+=m}for(e=0;e<h.length;e++)h[e]/=b;a[0].x=f.x;a[0].y=f.y;var q=m=b=0;for(e=1;e<a.length;e++){for(var p=a[e],r=0.95*Math.pow(e/a.length,k),b=b+0.3819;m<b;)m+=h[q],q=(q+1)%h.length;var s=(q-1+h.length)%h.length,w=1-(m-b)/h[s],u=c[s].x,s=c[s].y,y=c[q].x,x=c[q].y,u=(u-f.x)*r+f.x,s=(s-f.y)*r+f.y,y=(y-f.x)*r+f.x,x=(x-f.y)*r+f.y;p.x=u*(1-w)+y*w;p.y=s*(1-w)+x*w}}var k={random:{Fb:function(a,
|
||||
c){for(var f=0;f<a.length;f++){var k=a[f];k.x=c.x+Math.random()*c.f;k.y=c.y+Math.random()*c.i}},ac:"box"},ordered:{Fb:function(a,c){var g=a.slice(0);f.mc&&g.sort(Oa);Da.Zb(g,c,!1,f.ce)},ac:"box"},squarified:{Fb:function(a,c){var g=a.slice(0);f.mc&&g.sort(Oa);Da.te(g,c,!1,f.ce)},ac:"box"},fisheye:{Fb:function(a,c,g){a=a.slice(0);f.mc&&a.sort(Oa);m(a,c,g,0.25)},ac:"polygon"},blackhole:{Fb:function(a,c,g){a=a.slice(0);f.mc&&a.sort(Oa).reverse();m(a,c,g,1)},ac:"polygon"}};k.order=k.ordered;k.treemap=
|
||||
k.squarified;var f=a.options;this.d=function(a,c,g){var l;if(0<a.length){g=k[g.relaxationInitializer||g.initializer||f.ij||"random"];if("box"===g.ac){var e=M.q(c,{});g.Fb(a,e);M.qe(a,M.A(e),c)}else g.Fb(a,c,M.k(c,{}));for(g=a.length-1;0<=g;g--)e=a[g],e.description&&(l=M.gb(c,f.Ic,f.bh),e.x=l.x,e.y=l.y),e.na&&(l=M.gb(c,f.ve,f.Rg),e.x=l.x,e.y=l.y),D.Gb(e.group.initialPosition)&&(l=e.group.initialPosition,l=M.gb(c,l.position||"bottomright",l.distanceFromCenter||1),e.x=l.x,e.y=l.y)}}};function Pa(a){var m,k=a.options,f=new Qa(a,this),d=new Ra(a,this),c={relaxed:f,ordered:d,squarified:d},g=c[a.options.Wc]||f;this.Ag=5E-5;a.c.j("model:loaded",function(a){m=a});a.c.j("options:changed",function(a){a.layout&&D.N(c,k.Wc)&&(g=c[k.Wc])});this.step=function(a,c,b,d){return g.step(a,c,b,d)};this.complete=function(a){g.complete(a)};this.kf=function(a){return a===m?!0:2*Math.sqrt(a.L.ja/(Math.PI*a.e.length))>=Math.max(k.Ve,5E-5)};this.yd=function(a,c){for(var b=Math.pow(k.Ra,a.K),d=k.lb*b,
|
||||
b=k.Ad*b,f=a.e,m=f.length-1;0<=m;m--){var p=f[m];g.we(p,b);var r=p;r.ba=0<d?Aa.bb(r.o,d):r.o;r.ba&&(M.q(r.ba,r.q),M.re(r.ba,r.L));p.e&&c.push(p)}};this.rc=function(a){g.rc(a)};this.Ob=function(a){g.Ob(a)}};function Qa(a,m){function k(a){if(a.e){a=a.e;for(var b=0;b<a.length;b++){var c=a[b];c.vc=c.sc*n.Rh}}}function f(a,c){m.kf(a)&&(a.u||(a.u=Aa.bb(a.o,n.Ad*Math.pow(n.Ra,a.K-1)),a.u&&a.e[0]&&a.e[0].description&&"stab"==n.fc&&l(a)),a.u&&(b.Ob(a),q.d(d(a),a.u,a.group),a.O=!0,c(a)),k(a))}function d(a){return"stab"===n.fc&&0<a.e.length&&a.e[0].description?a.e.slice(1):a.e}function c(a){var b=d(a);Ba.S(b,a.u);Ba.Ac(b,a.u);return Ca.Cg(a)*Math.sqrt(h.L.ja/a.L.ja)}function g(a){return a<n.ag||1E-4>a}function l(a){var b=
|
||||
n.ec/(1+n.ec),c=M.q(a.u,{}),d={x:c.x,y:0},e=c.y,f=c.i,g=n.Ce*Math.pow(n.Ra,a.K-1),h=f*n.Be,k=n.Ic;"bottom"==k||0<=k&&180>k?(k=Math.PI,e+=f,f=-1):(k=0,f=1);for(var l,m=a.u,p=k,q=0,P=1,F=M.k(m,{}),T=F.ja,b=T*b,N=0;q<P&&20>N++;){var U=(q+P)/2;d.y=c.y+c.i*U;l=M.Yb(m,d,p);M.k(l[0],F);var t=F.ja-b;if(0.01>=Math.abs(t)/T)break;else 0<(0==p?1:-1)*t?P=U:q=U}M.q(l[0],c);if(c.i<g||c.i>h)d.y=c.i<g?e+f*Math.min(g,h):e+f*h,l=M.Yb(a.u,d,k);a.e[0].o=l[0];a.u=l[1]}function e(a){a!==h&&2*Math.sqrt(a.L.ja/(Math.PI*
|
||||
a.e.length))<Math.max(0.85*n.Ve,m.Ag)&&(a.O=!1,a.Ca=!1,a.Qa=!0,a.u=null)}var b=this,h,n=a.options,q=new Na(a),p=0;a.c.j("model:loaded",function(a){h=a;p=0});this.step=function(a,b,k,l){function q(b){b.O&&b.Ca?e(b):b.Qa&&b.o&&f(b,function(){var c=d(b);Ba.S(c,b.u);Ba.Ac(c,b.u);a(b)});if(!b.u||!b.O)return 0;var h;b.parent&&b.parent.aa||b.La?(h=c(b),l&&l(b),b.La=!g(h)&&!k,b.aa=!0):h=0;m.yd(b,B);return h}function x(a,b,c){p<a&&(p=a);var d=n.ag;n.Sd(b?1:1-(a-d)/(p-d||1),b,c);b&&(p=0)}for(var A=0,B=[h];0<
|
||||
B.length;)A=Math.max(A,q(B.shift()));var K=g(A);b&&x(A,K,k);return K};this.complete=function(a){for(var b=[h];0<b.length;){var d=b.shift();!d.O&&d.Qa&&d.o&&f(d,a);if(d.u){if(d.parent&&d.parent.aa||d.La){for(var e=1E-4>d.L.ja,k=0;!(g(c(d))||e&&32<k++););d.aa=!0;d.La=!1}m.yd(d,b)}}};this.rc=function(a){$.F(a,k)};this.we=function(a,b){if(a.O){var c=a.u;c&&(a.Xd=c);a.u=Aa.bb(a.o,b);a.u&&a.e[0]&&a.e[0].description&&"stab"==n.fc&&l(a);c&&!a.u&&(a.aa=!0);a.u&&a.Xd&&M.qe(d(a),a.Xd,a.u)}};this.Ob=function(a){for(var b=
|
||||
d(a),c=a.ja,e,f=e=0;f<b.length;f++)e+=b[f].T;a.ck=e;for(a=0;a<b.length;a++)f=b[a],f.pg=f.f,f.sc=c/Math.PI*(0<e?f.T/e:1/b.length)}};function Ra(a,m){function k(a,c){if(m.kf(a)){if(!a.u||a.parent&&a.parent.aa){var e=l.Ad*Math.pow(l.Ra,a.K-1);a.u=M.A(d(M.q(a.o,{}),e))}a.u&&(a.O=!0,c(a))}else a.O=!1,$.Fa(a,function(a){a.u=null})}function f(a){function d(a){function b(){e.o=M.A(f);e.x=f.x+f.f/2;e.y=f.y+f.i/2}var c=l.ec/(1+l.ec),e=a.e[0],f=M.q(a.u,{}),g=f.i,c=Math.min(Math.max(g*c,l.Ce*Math.pow(l.Ra,a.K-1)),g*l.Be),h=l.Ic;"bottom"==h||0<=h&&180>h?(f.i=g-c,a.u=M.A(f),f.y+=g-c,f.i=c,b()):(f.i=c,b(),f.y+=c,f.i=g-c,a.u=M.A(f))}var f;"stab"==
|
||||
l.fc&&0<a.e.length&&a.e[0].description?(f=a.e.slice(1),d(a)):f=a.e;l.mc&&f.sort(Oa);"floating"==l.fc&&c(f,l.Ic,function(a){return a.description});c(f,l.ve,function(a){return a.na});var g=M.q(a.u,{});(e[l.Wc]||Da.Zb)(f,g,!0,l.ce);a.La=!1;a.aa=!0;a.I=!0;a.Ma=!0}function d(a,c){var d=2*c;a.x+=c;a.y+=c;a.f-=d;a.i-=d;return a}function c(a,c,d){for(var e=0;e<a.length;e++){var f=a[e];if(d(f)){a.splice(e,1);"topleft"==c||135<=c&&315>c?a.unshift(f):a.push(f);break}}}var g,l=a.options,e={squarified:Da.te,ordered:Da.Zb};
|
||||
a.c.j("model:loaded",function(a){g=a});this.step=function(a,c,d){this.complete(a);c&&l.Sd(1,!0,d);return!0};this.complete=function(a){for(var c=[g];0<c.length;){var d=c.shift();(!d.O||d.parent&&d.parent.aa)&&d.Qa&&d.o&&k(d,a);d.u&&((d.parent&&d.parent.aa||d.La)&&f(d),m.yd(d,c))}};this.Ob=this.rc=this.we=D.ta};var Sa=new function(){this.Fg=function(a){a.beginPath();a.moveTo(3.2,497);a.bezierCurveTo(0.1,495.1,0,494.1,0,449.6);a.bezierCurveTo(0,403.5,-0.1,404.8,4.1,402.6);a.bezierCurveTo(5.2,402,7.4,401.4,9,401.2);a.bezierCurveTo(10.6,401,31.2,400.6,54.7,400.2);a.bezierCurveTo(99.5,399.4,101,399.5,104.6,402.3);a.bezierCurveTo(107.9,404.9,107.6,404,129.3,473.2);a.bezierCurveTo(131,478.6,132.9,484.4,133.4,486.1);a.bezierCurveTo(135.2,491.4,135.4,494.9,134,496.4);a.bezierCurveTo(132.8,497.7,131.7,497.7,68.6,
|
||||
497.7);a.bezierCurveTo(24.2,497.7,4,497.5,3.2,497);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(162.1,497);a.bezierCurveTo(159.5,496.3,157.7,494.6,156.2,491.6);a.bezierCurveTo(155.5,490.3,148.7,469.4,141.1,445.2);a.bezierCurveTo(126.1,397.5,125.6,395.4,128.1,389.8);a.bezierCurveTo(129.5,386.7,164.1,339,168,334.9);a.bezierCurveTo(170.3,332.5,172.2,332.1,175.1,333.7);a.bezierCurveTo(176.1,334.2,189.3,347,204.3,362.1);a.bezierCurveTo(229.4,387.4,231.8,390,233.5,394);a.bezierCurveTo(235.2,
|
||||
397.8,235.4,399.2,235.4,404.3);a.bezierCurveTo(235.3,415,230.5,489.9,229.8,492.5);a.bezierCurveTo(228.4,497.5,229.2,497.4,194.7,497.5);a.bezierCurveTo(177.8,497.6,163.1,497.4,162.1,497);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(258.7,497);a.bezierCurveTo(255.8,496.1,252.6,492.3,252,489.1);a.bezierCurveTo(251.4,484.8,256.8,405.2,258.1,401.1);a.bezierCurveTo(260.4,393.4,262.7,391.1,300.4,359.2);a.bezierCurveTo(319.9,342.6,337.7,327.9,339.9,326.5);a.bezierCurveTo(347.4,
|
||||
321.6,350.4,321,372,320.5);a.bezierCurveTo(393.4,320,400.5,320.4,407.5,322.5);a.bezierCurveTo(413.9,324.4,487.4,359.5,490.6,362.1);a.bezierCurveTo(492,363.3,493.9,365.8,495,367.7);a.lineTo(496.8,371.2);a.lineTo(497,419.3);a.bezierCurveTo(497.1,445.7,497,468,496.8,468.8);a.bezierCurveTo(496.2,471.6,489.6,480.8,485,485.3);a.bezierCurveTo(478.6,491.7,474.9,494.1,468.2,496);a.lineTo(462.3,497.7);a.lineTo(361.6,497.7);a.bezierCurveTo(303.1,497.6,259.9,497.3,258.7,497);a.closePath();a.fillStyle="rgba(200,200,200,1)";
|
||||
a.fill();a.beginPath();a.moveTo(4.4,380.8);a.bezierCurveTo(2.9,380.2,1.7,379.8,1.6,379.8);a.bezierCurveTo(1.5,379.8,1.2,378.8,0.7,377.6);a.bezierCurveTo(0.2,376.1,0,361.6,0,331.2);a.bezierCurveTo(0,281.2,-0.2,283.1,4.9,280.9);a.bezierCurveTo(7.1,279.9,19.3,278.2,54.8,274.1);a.bezierCurveTo(80.6,271.1,102.9,268.6,104.4,268.6);a.bezierCurveTo(105.8,268.6,109.1,269.4,111.7,270.4);a.bezierCurveTo(116,272.1,117.2,273.2,133.4,289.3);a.bezierCurveTo(150.9,306.8,153.4,310,153.4,314.5);a.bezierCurveTo(153.4,
|
||||
317.6,151.1,321.3,136.4,341.2);a.bezierCurveTo(109.4,377.8,111.6,375.3,105.4,378.1);a.lineTo(101.3,380);a.lineTo(75.7,380.5);a.bezierCurveTo(6.8,381.8,7.3,381.8,4.4,380.8);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(243.5,372.4);a.bezierCurveTo(240.2,370.8,136.6,266.7,134.2,262.6);a.bezierCurveTo(132.1,259,131.7,254.9,133.2,251.3);a.bezierCurveTo(134.5,248.2,166.3,206,169.3,203.4);a.bezierCurveTo(172.6,200.5,178.5,198.4,183.2,198.4);a.bezierCurveTo(187.1,198.4,275.2,
|
||||
204.1,281.6,204.8);a.bezierCurveTo(289.7,205.7,294.6,208.7,297.6,214.6);a.bezierCurveTo(300.5,220.3,327.4,297.4,327.8,301.1);a.bezierCurveTo(328.3,305.7,326.7,310.4,323.4,314);a.bezierCurveTo(322,315.6,307.8,327.9,291.9,341.3);a.bezierCurveTo(256.2,371.4,256.6,371.2,253.9,372.5);a.bezierCurveTo(251.1,373.9,246.5,373.9,243.5,372.4);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(489.3,339.1);a.bezierCurveTo(488.6,338.9,473.7,331.9,456.3,323.6);a.bezierCurveTo(435.9,313.9,
|
||||
423.8,307.8,422.4,306.4);a.bezierCurveTo(419.5,303.7,418,300.2,418,296.1);a.bezierCurveTo(418,292.5,438,185,439.3,181.6);a.bezierCurveTo(441.2,176.6,445.5,173.1,450.8,172.1);a.bezierCurveTo(456,171.2,487.1,169.2,489.6,169.7);a.bezierCurveTo(493.1,170.3,495.5,171.9,497,174.7);a.bezierCurveTo(498.1,176.7,498.2,181.7,498.4,253.2);a.bezierCurveTo(498.5,295.3,498.4,330.9,498.2,332.5);a.bezierCurveTo(497.5,337.4,493.7,340.2,489.3,339.1);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();
|
||||
a.moveTo(353.2,300.7);a.bezierCurveTo(350.4,299.8,347.9,297.9,346.5,295.6);a.bezierCurveTo(345.8,294.5,338.2,273.7,329.6,249.5);a.bezierCurveTo(314.6,207.1,314.1,205.3,314.1,200.4);a.bezierCurveTo(314.1,196.7,314.4,194.6,315.3,193);a.bezierCurveTo(316,191.7,322.5,181.6,329.8,170.6);a.bezierCurveTo(346.8,144.8,345.4,145.8,365.8,144.4);a.bezierCurveTo(380.9,143.4,385.7,143.7,390.6,146.3);a.bezierCurveTo(397.3,149.8,417.4,164.4,419.2,167);a.bezierCurveTo(422.4,171.8,422.4,171.8,410.6,234.4);a.bezierCurveTo(402.3,
|
||||
278.6,399.3,293.2,398.1,295.3);a.bezierCurveTo(395.4,300.1,393.7,300.5,373,300.9);a.bezierCurveTo(363.1,301.1,354.2,301,353.2,300.7);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(6.2,259.9);a.bezierCurveTo(4.9,259.2,3.2,257.8,2.4,256.8);a.bezierCurveTo(1,254.9,1,254.8,0.8,148.7);a.bezierCurveTo(0.7,74,0.9,40.8,1.4,36.7);a.bezierCurveTo(2.3,29.6,4.7,24.4,9.8,18.3);a.bezierCurveTo(14.1,13.1,20.9,7.3,25,5.3);a.bezierCurveTo(26.5,4.6,31,3.3,34.9,2.6);a.bezierCurveTo(41.3,
|
||||
1.3,44.2,1.2,68.5,1.4);a.lineTo(95.1,1.6);a.lineTo(99,3.5);a.bezierCurveTo(101.2,4.6,103.9,6.6,105.2,8.1);a.bezierCurveTo(107.7,11,153.1,88.2,155.8,94);a.bezierCurveTo(159.1,101.4,159.6,104.7,159.5,121.6);a.bezierCurveTo(159.5,147.8,158.4,177.2,157.3,181);a.bezierCurveTo(156.8,182.8,155.6,186.1,154.6,188.1);a.bezierCurveTo(152.6,192.2,119.5,237.2,115.1,241.8);a.bezierCurveTo(112.1,244.9,106.3,248.3,102,249.4);a.bezierCurveTo(99.2,250.1,13,261.1,10.1,261.1);a.bezierCurveTo(9.2,261.1,7.5,260.6,6.2,
|
||||
259.9);a.closePath();a.fillStyle="rgba(200,200,200,1)";a.fill();a.beginPath();a.moveTo(234.1,183.4);a.bezierCurveTo(180.2,179.7,182.3,180,179.5,174.5);a.lineTo(178,171.4);a.lineTo(178.7,142.4);a.bezierCurveTo(179.4,114.8,179.5,113.3,180.9,110.4);a.bezierCurveTo(183.5,105,182.7,105.2,237.9,95.3);a.bezierCurveTo(285.1,86.7,287.9,86.3,291,87.1);a.bezierCurveTo(292.8,87.6,295.3,88.8,296.7,89.9);a.bezierCurveTo(299.1,91.8,321.9,124.4,325,130.3);a.bezierCurveTo(326.9,134,327.2,139.1,325.7,142.6);a.bezierCurveTo(324.5,
|
||||
145.5,302.5,179.1,300.2,181.5);a.bezierCurveTo(297,184.9,293.5,186.3,287.4,186.5);a.bezierCurveTo(284.4,186.6,260.4,185.2,234.1,183.4);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(435.8,153.4);a.bezierCurveTo(434.8,153.1,433,152.3,431.7,151.6);a.bezierCurveTo(428.4,150,410.1,137.1,407,134.4);a.bezierCurveTo(404.1,131.8,402.7,128.3,403.2,125.1);a.bezierCurveTo(403.6,122.9,420.3,81.3,423,75.9);a.bezierCurveTo(424.7,72.6,426.6,70.4,429.3,68.9);a.bezierCurveTo(431.1,67.9,
|
||||
435,67.7,462.2,67.6);a.lineTo(493.1,67.3);a.lineTo(495.4,69.6);a.bezierCurveTo(497,71.3,497.8,72.8,498.1,75);a.bezierCurveTo(498.4,76.6,498.5,92.9,498.4,111.1);a.bezierCurveTo(498.2,141.2,498.1,144.3,497,146.3);a.bezierCurveTo(494.8,150.3,493.3,150.6,470.3,152.4);a.bezierCurveTo(448.6,154,438.8,154.3,435.8,153.4);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(346.6,125.3);a.bezierCurveTo(345,124.5,342.6,122.6,341.4,121);a.bezierCurveTo(337.1,115.7,313,79.8,311.6,76.7);
|
||||
a.bezierCurveTo(309.4,71.7,309.3,68,311.2,58.2);a.bezierCurveTo(319.2,16.9,321.3,7.1,322.4,5.2);a.bezierCurveTo(323.1,4,324.7,2.4,326,1.6);a.bezierCurveTo(328.3,0.3,329.4,0.3,353.9,0.3);a.bezierCurveTo(379.2,0.3,379.5,0.3,382.4,1.8);a.bezierCurveTo(384,2.7,386,4.5,386.9,5.9);a.bezierCurveTo(388.6,8.6,405.1,46.3,407.2,52.2);a.bezierCurveTo(408.7,56.3,408.8,60.7,407.7,64.1);a.bezierCurveTo(407.3,65.4,402.2,78.2,396.3,92.7);a.bezierCurveTo(382.6,126.3,384.1,124.6,366.6,126);a.bezierCurveTo(353.4,127.1,
|
||||
350,127,346.6,125.3);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(179.2,85.6);a.bezierCurveTo(175.7,84.6,171.9,82,170,79.2);a.bezierCurveTo(167.2,75.2,130.6,12.4,129.3,9.3);a.bezierCurveTo(128.2,6.7,128.1,5.9,128.8,4.2);a.bezierCurveTo(130.5,0,125.2,0.3,211.7,0);a.bezierCurveTo(255.3,-0.1,292.2,0,293.9,0.3);a.bezierCurveTo(297.7,0.8,301.1,4,301.8,7.6);a.bezierCurveTo(302.3,10.5,293.9,55.2,291.9,59.6);a.bezierCurveTo(290.4,63,286.1,66.9,282.3,68.3);a.bezierCurveTo(279.6,
|
||||
69.3,193.5,85.1,185.5,86.1);a.bezierCurveTo(183.8,86.3,181,86.1,179.2,85.6);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(431.9,47.7);a.bezierCurveTo(428.7,46.9,426.4,45.2,424.6,42.3);a.bezierCurveTo(421.8,37.8,409.2,7.7,409.2,5.5);a.bezierCurveTo(409.2,1.2,408,1.3,451.6,1.3);a.bezierCurveTo(495,1.3,494,1.2,496.1,5.4);a.bezierCurveTo(497,7.2,497.2,10.2,497,25.5);a.lineTo(496.8,43.5);a.lineTo(494.9,45.4);a.lineTo(493,47.3);a.lineTo(474.8,47.7);a.bezierCurveTo(450.1,48.3,
|
||||
434.5,48.3,431.9,47.7);a.closePath();a.fillStyle="rgba(200,200,200,1)";a.fill();a.beginPath();a.moveTo(1.3,511.9);a.lineTo(1.3,514.3);a.lineTo(3.7,514.3);a.bezierCurveTo(7.2,514.4,9.5,515.5,10.6,517.6);a.bezierCurveTo(11.7,519.8,12.1,522.7,12,526.3);a.lineTo(12,591);a.lineTo(22.8,591);a.lineTo(22.8,553.2);a.lineTo(49.9,553.2);a.lineTo(49.9,548.5);a.lineTo(22.8,548.5);a.lineTo(22.8,516.7);a.lineTo(41.9,516.7);a.bezierCurveTo(46.7,516.7,50.4,517.8,52.9,520);a.bezierCurveTo(55.5,522.2,56.8,525.7,56.8,
|
||||
530.5);a.lineTo(59.2,530.5);a.lineTo(59.2,521.5);a.bezierCurveTo(59.3,519,58.7,516.8,57.3,514.9);a.bezierCurveTo(55.9,513,53.1,512,49,511.9);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(107.6,562.8);a.bezierCurveTo(107.6,569.9,106.2,575.7,103.5,580.3);a.bezierCurveTo(100.8,584.8,97.2,587.2,92.7,587.4);a.bezierCurveTo(88.1,587.2,84.5,584.8,81.8,580.3);a.bezierCurveTo(79.1,575.7,77.8,569.9,77.7,562.8);a.bezierCurveTo(77.8,555.8,79.1,550,81.8,545.4);a.bezierCurveTo(84.5,
|
||||
540.8,88.1,538.4,92.7,538.3);a.bezierCurveTo(97.2,538.4,100.8,540.8,103.5,545.4);a.bezierCurveTo(106.2,550,107.6,555.8,107.6,562.8);a.moveTo(66.3,562.8);a.bezierCurveTo(66.4,571.1,68.7,578,73.2,583.5);a.bezierCurveTo(77.8,589.1,84.2,591.9,92.7,592.1);a.bezierCurveTo(101.1,591.9,107.6,589.1,112.1,583.5);a.bezierCurveTo(116.7,578,118.9,571.1,119,562.8);a.bezierCurveTo(118.9,554.5,116.7,547.6,112.1,542.1);a.bezierCurveTo(107.6,536.6,101.1,533.7,92.7,533.5);a.bezierCurveTo(84.2,533.7,77.8,536.6,73.2,
|
||||
542.1);a.bezierCurveTo(68.7,547.6,66.4,554.5,66.3,562.8);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(161.5,579.6);a.bezierCurveTo(160.3,581.4,158.9,583.1,157.2,584.5);a.bezierCurveTo(155.4,585.9,153.1,586.7,150.1,586.8);a.bezierCurveTo(147,586.8,144.4,585.9,142.2,584);a.bezierCurveTo(140,582.1,138.9,579.3,138.8,575.4);a.bezierCurveTo(138.8,571.7,140.5,568.9,143.8,566.7);a.bezierCurveTo(147.2,564.6,151.9,563.5,157.9,563.4);a.lineTo(161.5,563.4);a.moveTo(172.3,591);
|
||||
a.lineTo(172.3,558.6);a.bezierCurveTo(172.1,548.2,169.9,541.3,165.8,538);a.bezierCurveTo(161.7,534.7,156.9,533.2,151.3,533.5);a.bezierCurveTo(147.6,533.5,144.1,533.8,140.8,534.5);a.bezierCurveTo(137.4,535.1,135,536.2,133.4,537.7);a.bezierCurveTo(131.9,539.2,131.1,540.8,130.7,542.6);a.bezierCurveTo(130.4,544.4,130.3,546.4,130.4,548.5);a.lineTo(135.8,548.5);a.bezierCurveTo(136.7,544.6,138.3,542,140.5,540.5);a.bezierCurveTo(142.8,538.9,145.6,538.2,148.9,538.3);a.bezierCurveTo(152.6,538.1,155.6,539.4,
|
||||
157.9,542.2);a.bezierCurveTo(160.2,545,161.4,550.5,161.5,558.6);a.lineTo(157.9,558.6);a.bezierCurveTo(149.6,558.5,142.5,559.7,136.6,562.1);a.bezierCurveTo(130.7,564.5,127.6,568.9,127.4,575.4);a.bezierCurveTo(127.7,581.8,129.8,586.3,133.6,588.7);a.bezierCurveTo(137.4,591.1,141.1,592.3,144.7,592.1);a.bezierCurveTo(149.2,592.1,152.8,591.3,155.6,590);a.bezierCurveTo(158.3,588.6,160.3,587.1,161.5,585.6);a.lineTo(162.1,585.6);a.lineTo(166.3,591);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();
|
||||
a.moveTo(200.3,539.5);a.bezierCurveTo(199.8,538,198.7,536.8,197,536);a.bezierCurveTo(195.4,535.1,193.1,534.7,190.2,534.7);a.lineTo(179.4,534.7);a.lineTo(179.4,537.1);a.lineTo(181.8,537.1);a.bezierCurveTo(185.3,537.1,187.6,538.2,188.7,540.4);a.bezierCurveTo(189.8,542.5,190.3,545.4,190.2,549.1);a.lineTo(190.2,591);a.lineTo(200.9,591);a.lineTo(200.9,545.2);a.bezierCurveTo(202.4,543.5,204.2,542,206.2,540.8);a.bezierCurveTo(208.3,539.6,210.5,538.9,212.9,538.9);a.bezierCurveTo(215.9,538.8,218.3,540,219.9,
|
||||
542.5);a.bezierCurveTo(221.6,544.9,222.4,549.1,222.5,555);a.lineTo(222.5,591);a.lineTo(233.2,591);a.lineTo(233.2,555);a.bezierCurveTo(233.3,553.8,233.2,552.3,233.2,550.6);a.bezierCurveTo(233.1,549,232.9,547.6,232.6,546.7);a.bezierCurveTo(233.9,544.8,235.7,543,238,541.4);a.bezierCurveTo(240.4,539.8,242.7,539,245.2,538.9);a.bezierCurveTo(248.2,538.8,250.6,540,252.3,542.5);a.bezierCurveTo(253.9,544.9,254.8,549.1,254.8,555);a.lineTo(254.8,591);a.lineTo(265.6,591);a.lineTo(265.6,555);a.bezierCurveTo(265.4,
|
||||
546.5,263.8,540.8,260.6,537.8);a.bezierCurveTo(257.4,534.7,253.4,533.3,248.8,533.5);a.bezierCurveTo(245.4,533.5,242.2,534.2,238.9,535.7);a.bezierCurveTo(235.7,537.1,233,539.2,230.9,541.9);a.bezierCurveTo(229.3,538.6,227.3,536.4,224.8,535.2);a.bezierCurveTo(222.3,534,219.5,533.4,216.5,533.5);a.bezierCurveTo(212.9,533.6,209.8,534.2,207.1,535.4);a.bezierCurveTo(204.5,536.5,202.4,537.9,200.9,539.5);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(284,511.9);a.bezierCurveTo(279.9,
|
||||
512,277.2,513,275.8,514.9);a.bezierCurveTo(274.4,516.8,273.7,519,273.8,521.5);a.lineTo(273.8,530.5);a.lineTo(276.2,530.5);a.bezierCurveTo(276.3,525.7,277.6,522.2,280.1,520);a.bezierCurveTo(282.7,517.8,286.4,516.7,291.2,516.7);a.lineTo(302,516.7);a.lineTo(302,590.9);a.lineTo(312.7,590.9);a.lineTo(312.7,516.7);a.lineTo(339.7,516.7);a.lineTo(339.7,511.9);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(349.4,590.9);a.lineTo(360.2,590.9);a.lineTo(360.2,546.7);a.bezierCurveTo(361.4,
|
||||
544.8,363,543.4,364.9,542.3);a.bezierCurveTo(366.9,541.2,369.1,540.7,371.5,540.7);a.bezierCurveTo(373.7,540.7,375.5,541,377.2,541.6);a.bezierCurveTo(378.9,542.2,380.2,543.1,381.1,544.3);a.lineTo(385.9,540.7);a.bezierCurveTo(385.3,539.5,384.7,538.4,384,537.5);a.bezierCurveTo(383.4,536.6,382.6,535.9,381.7,535.3);a.bezierCurveTo(380.8,534.7,379.7,534.2,378.3,533.9);a.bezierCurveTo(377,533.6,375.8,533.5,374.5,533.5);a.bezierCurveTo(370.9,533.6,367.9,534.3,365.5,535.7);a.bezierCurveTo(363.2,537,361.4,
|
||||
538.5,360.2,540.1);a.lineTo(359.6,540.1);a.bezierCurveTo(359,538.3,357.9,536.9,356.3,536);a.bezierCurveTo(354.6,535.1,352.4,534.7,349.4,534.7);a.lineTo(339.8,534.7);a.lineTo(339.8,537.1);a.lineTo(341,537.1);a.bezierCurveTo(344.5,537.1,346.8,538.2,347.9,540.4);a.bezierCurveTo(349,542.5,349.5,545.4,349.4,549.1);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(440.3,559.8);a.bezierCurveTo(440.3,551.4,438.3,544.9,434.4,540.4);a.bezierCurveTo(430.4,535.8,424.4,533.5,416.3,533.5);
|
||||
a.bezierCurveTo(408.8,533.7,403,536.6,399,542.1);a.bezierCurveTo(395,547.6,393,554.5,393,562.8);a.bezierCurveTo(393,571.1,395.1,578,399.3,583.5);a.bezierCurveTo(403.5,589.1,409.7,591.9,418.1,592.1);a.bezierCurveTo(422.6,592.2,426.7,591.2,430.2,589.2);a.bezierCurveTo(433.8,587.2,437,584,439.7,579.6);a.lineTo(437.3,577.8);a.bezierCurveTo(435.2,580.8,432.9,583.1,430.2,584.8);a.bezierCurveTo(427.6,586.5,424.4,587.3,420.5,587.4);a.bezierCurveTo(415.4,587.2,411.4,585.1,408.6,580.9);a.bezierCurveTo(405.8,
|
||||
576.8,404.4,571.3,404.4,564.6);a.lineTo(440,564.6);a.moveTo(404.4,559.8);a.bezierCurveTo(404.4,553.7,405.6,548.7,407.9,544.9);a.bezierCurveTo(410.3,541,413.3,539,416.9,538.9);a.bezierCurveTo(421.1,538.9,424.3,540.8,426.4,544.4);a.bezierCurveTo(428.4,548.1,429.5,553.2,429.5,559.8);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill();a.beginPath();a.moveTo(497.1,559.8);a.bezierCurveTo(497.1,551.4,495.1,544.9,491.2,540.4);a.bezierCurveTo(487.2,535.8,481.2,533.5,473.1,533.5);a.bezierCurveTo(465.6,533.7,
|
||||
459.9,536.6,455.9,542.1);a.bezierCurveTo(451.9,547.6,449.8,554.5,449.8,562.8);a.bezierCurveTo(449.8,571.1,451.9,578,456.1,583.5);a.bezierCurveTo(460.3,589.1,466.6,591.9,474.9,592.1);a.bezierCurveTo(479.4,592.2,483.5,591.2,487.1,589.2);a.bezierCurveTo(490.6,587.2,493.8,584,496.5,579.6);a.lineTo(494.1,577.8);a.bezierCurveTo(492,580.8,489.7,583.1,487.1,584.8);a.bezierCurveTo(484.4,586.5,481.2,587.3,477.3,587.4);a.bezierCurveTo(472.2,587.2,468.2,585.1,465.4,580.9);a.bezierCurveTo(462.6,576.8,461.2,571.3,
|
||||
461.2,564.6);a.lineTo(496.8,564.6);a.moveTo(461.2,559.8);a.bezierCurveTo(461.2,553.7,462.4,548.7,464.8,544.9);a.bezierCurveTo(467.1,541,470.1,539,473.7,538.9);a.bezierCurveTo(477.9,538.9,481.1,540.8,483.2,544.4);a.bezierCurveTo(485.3,548.1,486.3,553.2,486.3,559.8);a.closePath();a.fillStyle="rgba(220,20,3,1)";a.fill()}};Sa.zc={width:498,height:592};function Ta(a,m){function k(a,b){var c=a.L.Pb,d=c/15,e=0.5*c/15,c=c/5,f=a.L.x,g=a.L.y;b.fillRect(f-e,g-e,d,d);b.fillRect(f-e-c,g-e,d,d);b.fillRect(f-e+c,g-e,d,d)}function f(a,b,c,d){null===a&&c.clearRect(0,0,H,Q);var e,f=Array(W.length);for(e=W.length-1;0<=e;e--)f[e]=W[e].qa(c,d);for(e=W.length-1;0<=e;e--)f[e]&&W[e].X(c,d);T.Jc([c,C],function(d){var e;if(null!==a){c.save();c.globalCompositeOperation="destination-out";c.fillStyle=c.strokeStyle="rgba(255, 255, 255, 1)";for(e=a.length-1;0<=e;e--){var g=
|
||||
a[e],h=g.o;h&&(c.save(),c.beginPath(),g.Ub(c),ia.le(c,h),c.fill(),g=t.lb*Math.pow(t.Ra,g.K-1),0<g&&(c.lineWidth=g/2,c.stroke()),c.restore())}c.restore()}d=d.scale;if(0!==b.length){e={};for(h=W.length-1;0<=h;h--)W[h].Ng(e);for(g=Z.length-1;0<=g;g--)if(h=Z[g],e[h.id])for(var k=h.be,h=0;h<b.length;h++){var l=b[h];!l.parent||l.parent.Ca&&l.parent.O?k(l,d):l.ca.clear()}}for(e=W.length-1;0<=e;e--)g=W[e],f[e]&&g.ee(b,c,d)});for(e=W.length-1;0<=e;e--)f[e]&&W[e].Da(c);t.rd&&(c.canvas.style.opacity=0.99,setTimeout(function(){c.canvas.style.opacity=
|
||||
1},1))}function d(a){s===u?a<0.9*q&&(s=w,x=A,e()):a>=q&&(s=u,x=B,e())}function c(){function a(b,c,d){b.Cb=Math.floor(1E3*b.scale)-d*c;0<b.opacity&&!b.open&&c++;var e=b.e;if(e)for(var f=e.length-1;0<=f;f--)b.W&&a(e[f],c,d)}var b=null,c=null,e=null;T.Jc([],function(f){d(f.scale);var h=!1;$.F(z,function(a){a.W&&(h=a.Nd()||h,a.oc(),a.Sa=P.d(a)||a.Sa)});h&&(z.I=!0);var k="onSurfaceDirty"===t.oh;$.xd(z,function(a){a.parent&&a.parent.aa&&(a.ca.clear(),a.Sa=!0,k||(a.Fc=!0,a.cc.clear()));k&&(a.Fc=!0,a.cc.clear())});
|
||||
var l=f.scale*f.scale;$.xd(z,function(a){if(a.O){for(var b=a.e,c=0;c<b.length;c++)if(5<b[c].L.ja*l){a.Y=!0;return}a.Y=!1}});n(f);e=[];$.Lc(z,function(a){if(a.parent.Y&&a.$&&a.W){e.push(a);for(var b=a.parent;b!==z&&(b.open||0===b.opacity);)b=b.parent;b!==z&&0.02>Math.abs(b.scale-a.scale)&&(a.scale=Math.min(a.scale,b.scale))}});a(z,0,"flattened"===t.xb?-1:1);e.sort(function(a,b){return a.Cb-b.Cb});if(g())b=e,c=null;else{var m={},p={},q="none"!=t.Cd&&t.lb<t.mb/2,r=t.lb<t.Rc/2+t.Bd*t.Xe.a;$.F(z,function(a){if(a.W&&
|
||||
!a.description&&(a.aa||a.I||a.Yc&&a.parent.Y&&a.Sa)){var b,c,d=[a],e=a.C||a.parent.e;if(q)for(b=0;b<e.length;b++)(c=e[b])&&d.push(c);else if(r)if(!a.selected&&a.$a){c=!0;for(b=0;b<e.length;b++)e[b]?d.push(e[b]):c=!1;!c&&1<a.K&&d.push(a.parent)}else for(b=0;b<e.length;b++)(c=e[b])&&c.selected&&d.push(c);var f;for(b=a.parent;b!=z;)b.selected&&(f=b),b=b.parent;f&&d.push(f);for(b=0;b<d.length;b++){f=d[b];for(a=f.parent;a&&a!==z;)0<a.opacity&&(f=a),a=a.parent;p[f.id]=!0;$.Fa(f,function(a){m[a.id]=!0})}}});
|
||||
b=e.filter(function(a){return m[a.id]});c=b.filter(function(a){return p[a.id]})}});(function(){var a=!1;t.$f&&$.F(z,function(b){if(b.W&&0!==b.sa.a&&1!==b.sa.a)return a=!0,!1});a?($.Kc(z,function(a){if(a.W&&(a.opacity!==a.bd||a.Ma)){var b=a.e;if(b){for(var c=0,d=b.length-1;0<=d;d--)c=Math.max(c,b[d].Xc);a.Xc=c+a.opacity*a.sa.a}else a.Xc=a.opacity*a.sa.a}}),$.F(z,function(a){if(a.W&&(a.opacity!==a.bd||a.Ma)){for(var b=a.Xc,c=a;(c=c.parent)&&c!==z;)b+=c.opacity*c.sa.a*t.Yf;a.sd=0<b?1-Math.pow(1-a.sa.a,
|
||||
1/b):0;a.bd=a.opacity}})):$.F(z,function(a){a.W&&(a.sd=1,a.bd=-1)})})();return{vg:b,ug:c,$:e}}function g(){var a=z.aa||z.I||"none"==t.ef;if(!a&&!z.empty()){var b=z.e[0].scale;$.F(z,function(c){if(c.W&&c.$&&c.scale!==b)return a=!0,!1})}!a&&0<t.Re&&1!=t.Wa&&$.F(z,function(b){if(b.W&&0<b.ka)return a=!0,!1});"accurate"==t.ef&&(a=(a=a||0===t.lb)||"none"!=t.Cd&&t.lb<t.mb/2,!a&&t.lb<t.Rc/2+t.Bd*t.Xe.a&&$.F(z,function(b){if(b.W&&(b.selected&&!b.$a||!b.selected&&b.$a))return a=!0,!1}));return a}function l(){if(t.n!==
|
||||
t.yb)return!0;var a="polygonPlainFill polygonPlainStroke polygonGradientFill polygonGradientStroke labelPlainFill contentDecoration".split(" ");$.F(z,function(b){if(b.W&&b.U)return a.push("polygonExposureShadow"),!1});for(var b=a.length-1;0<=b;b--){var c=a[b];if(!!E[c]!==!!J[c])return!0}return!1}function e(){function a(c,d,e,f,g){function h(a,b,c,d,e){a[d]&&(b-=c*p[d],a[d]=!1,e&&(b+=c*p[e],a[e]=!0));return b}c=D.extend({},c);switch(e){case "never":c.labelPlainFill=!1;break;case "always":case "auto":c.labelPlainFill=
|
||||
!0}if(t.Pc)switch(f){case "never":c.contentDecoration=!1;break;case "always":case "auto":c.contentDecoration=!0}else c.contentDecoration=!1;var k=0;D.Ga(c,function(a,b){a&&(k+=d*p["contentDecoration"===b?"labelPlainFill":b])});c.polygonExposureShadow=b;k+=2*p.polygonExposureShadow;if(k<=g||(k=h(c,k,2,"polygonExposureShadow"))<=g||(k=h(c,k,d,"polygonGradientFill","polygonPlainFill"))<=g||(k=h(c,k,d,"polygonGradientStroke"))<=g||(k=h(c,k,d,"polygonPlainStroke"))<=g||"auto"===f&&(k=h(c,k,d,"contentDecoration"))<=
|
||||
g)return c;"auto"===e&&(k=h(c,k,d,"labelPlainFill"));return c}var b=s===w,c=0,d=0;$.He(z,function(a){var b=1;$.F(a,function(){b++});c+=b;d=Math.max(d,b)});var e={};switch(t.xh){case "plain":e.polygonPlainFill=!0;break;case "gradient":e.polygonPlainFill=!b,e.polygonGradientFill=b}switch(t.Cd){case "plain":e.polygonPlainStroke=!0;break;case "gradient":e.polygonPlainStroke=!b,e.polygonGradientStroke=b}E=a(e,c,t.Hj,t.Fj,t.Gj);J=a(e,2*d,"always","always",t.hh);I=a(e,c,"always","always",t.gh)}function b(a){return function(b,
|
||||
c){return b===s?!0===E[a]:!0===(c?J:I)[a]}}function h(a,b){return function(c,d){return a(c,d)&&b(c,d)}}function n(a){z.$=!0;$.xd(z,function(b){if(b.W&&b.Y&&b.Ca&&b.O&&(z.I||b.aa||b.me)){b.me=!1;var c=b.e,d={x:0,y:0,f:0,i:0},e=!!b.u;if(1<H/a.f){var f;for(f=c.length-1;0<=f;f--)c[f].$=!1;if(b.$&&e)for(f=c.length-1;0<=f;f--)if(b=c[f],1!==b.scale&&(b.Wb(a,d),d.f=a.f/b.scale,d.i=a.i/b.scale),!1===b.$&&b.o){var e=b.o,g=e.length;if(M.Ua(b.o,1===b.scale?a:d))b.$=!0;else for(var h=0;h<g;h++)if(M.Lg(e[h],e[(h+
|
||||
1)%g],1===b.scale?a:d)){b.$=!0;b.C&&(b=b.C[h])&&(c[b.index].$=!0);break}}}else for(f=0;f<c.length;f++)c[f].$=e}})}var q=v.nf()?50:1E4,p,r,s,w,u,y,x,A,B,K,C,H,Q,O,P=new Va(a),F=new Wa(a),T,N,U,t=a.options,z,L,E,I,J;a.c.j("stage:initialized",function(a,b,c,d){O=a;H=c;Q=d;r=O.pc("wireframe",t.yb,!1);w=r.getContext("2d");u=new ha(w);y=O.pc("hifi",t.n,!1);A=y.getContext("2d");B=new ha(A);s=w;x=A;w.n=t.yb;u.n=t.yb;A.n=t.n;B.n=t.n;K=O.pc("tmp",Math.max(t.n,t.yb),!0);C=K.getContext("2d");C.n=1;[w,A,C].forEach(function(a){a.scale(a.n,
|
||||
a.n)})});a.c.j("stage:resized",function(a,b,c,d){H=c;Q=d;[w,A,C].forEach(function(a){a.scale(a.n,a.n)})});a.c.j("model:loaded",function(b){function c(a){var b=0;if(!a.empty()){for(var d=a.e,e=d.length-1;0<=e;e--)b=Math.max(b,c(d[e]));b+=1}return a.mg=b}z=b;L=!0;c(z);e();a.c.p("render:renderers:resolved",E,J,I)});var R="groupFillType groupStrokeType wireframeDrawMaxDuration wireframeLabelDrawing wireframeContentDecorationDrawing finalCompleteDrawMaxDuration finalIncrementalDrawMaxDuration groupContentDecorator".split(" "),
|
||||
Y=["groupLabelLightColor","groupLabelDarkColor","groupLabelColorThreshold","groupUnexposureLabelColorThreshold"];a.c.j("options:changed",function(a){function b(a,c,d,e){O.hj(a,d);c.n=d;e&&c.scale(d,d)}a.dataObject||(D.nb(a,R)&&e(),D.nb(a,Y)&&$.F(z,function(a){a.zd=-1}));var c=D.N(a,"pixelRatio");a=D.N(a,"wireframePixelRatio");if(c||a)c&&b(y,x,t.n,!0),a&&b(r,s,t.yb,!0),b(K,C,Math.max(t.n,t.yb),!1)});a.c.j("zoom:initialized",function(a){T=a});a.c.j("timeline:initialized",function(a){N=a});a.c.j("api:initialized",
|
||||
function(a){U=a});var Z=[{id:"offsetPolygon",be:function(a){if((a.selected||0<a.opacity&&!1===a.open||!a.Y)&&a.ca.Na()){var b=a.ca;b.clear();if(a.ba){var c=a.ba,d=t.jh;0<d?(d=Math.min(1,d*Math.pow(1-t.kh*d,a.mg)),ia.tj(b,c,a.parent.L.Pb/32,d)):ia.le(b,c)}a.Vd=!0}}},{id:"label",be:function(a){a.Sa&&a.Yc&&P.k(a)}},{id:"custom",be:function(b,c){if(b.ba&&(0<b.opacity&&(!1===b.open||!0===b.selected)||!b.Y)&&b.Fc&&a.options.Pc&&!b.na){var d={};U.pd(d,b);U.qd(d,b);U.od(d,b,!0);d.context=b.cc;d.polygonContext=
|
||||
b.ca;d.labelContext=b.Uc;d.shapeDirty=b.Vd;d.viewportScale=c;var e={groupLabelDrawn:!0,groupPolygonDrawn:!0};a.options.nh(a.Ud,d,e);b.of=e.groupLabelDrawn;b.Wd=e.groupPolygonDrawn;b.Vd=!1;b.Fc=!1}}}].reverse(),W=[new function(a){var b=Array(a.length);this.ee=function(c,d,e){if(0!==c.length){var f,g,h=[],k=c[0].Cb;for(f=0;f<c.length;f++)g=c[f],g.Cb!==k&&(h.push(f),k=g.Cb);h.push(f);for(var l=k=0;l<h.length;l++){for(var m=h[l],p=a.length-1;0<=p;p--)if(b[p]){var n=a[p];d.save();for(f=k;f<m;f++)g=c[f],
|
||||
d.save(),g.Ub(d),n.vb.call(n,g,d,e),d.restore();n.hb.call(n,d,e);d.restore()}k=m}}};this.qa=function(c,d){for(var e=!1,f=a.length-1;0<=f;f--)b[f]=a[f].qa(c,d),e|=b[f];return e};this.X=function(c,d){for(var e=a.length-1;0<=e;e--)if(b[e]){var f=a[e];f.X.call(f,c,d)}};this.Da=function(c){for(var d=a.length-1;0<=d;d--)if(b[d]){var e=a[d];e.Da.call(e,c)}};this.Ng=function(c){for(var d=a.length-1;0<=d;d--){var e=a[d];if(b[d])for(var f=e.Za.length-1;0<=f;f--)c[e.Za[f]]=!0}}}([{Za:["offsetPolygon"],qa:b("polygonExposureShadow"),
|
||||
X:function(a){C.save();C.scale(a.n,a.n)},Da:function(){C.restore()},d:function(){},hb:function(a){this.lg&&(this.lg=!1,a.save(),a.setTransform(1,0,0,1,0,0),a.drawImage(K,0,0,a.canvas.width,a.canvas.height,0,0,a.canvas.width,a.canvas.height),a.restore(),C.save(),C.setTransform(1,0,0,1,0,0),C.clearRect(0,0,K.width,K.height),C.restore())},vb:function(a,b,c){if(!(a.open&&a.Y||a.ca.Na())){var d=t.Re*a.opacity*a.ka*("flattened"===t.xb?1-a.parent.ka:(1-a.Mb)*a.parent.Mb)*(1.1<=t.Wa?1:(t.Wa-1)/0.1);0<d&&
|
||||
(C.save(),C.beginPath(),a.Ub(C),a.ca.Ta(C),C.shadowBlur=c*b.n*d,C.shadowColor=t.ph,C.fillStyle="rgba(0, 0, 0, 1)",C.globalCompositeOperation="source-over",C.globalAlpha=a.opacity,C.fill(),C.shadowBlur=0,C.shadowColor="transparent",C.globalCompositeOperation="destination-out",C.fill(),C.restore(),this.lg=!0)}}},{Za:["offsetPolygon"],qa:function(){return!0},X:function(){function a(b){var d=b.sa,e=b.Eb,f=b.selected,g=c(d.l*b.va+(e?t.Ch:0)+(f?t.Th:0)),h=c(d.s*b.wa+(e?t.Dh:0)+(f?t.Uh:0));b=b.Qe;b.h=(d.h+
|
||||
(e?t.Bh:0)+(f?t.Sh:0))%360;b.s=h;b.l=g;return b}function c(a){return 100<a?100:0>a?0:a}var d=[{type:"fill",qa:b("polygonPlainFill"),hd:function(b,c){c.fillStyle=S.Bc(a(b))}},{type:"fill",qa:b("polygonGradientFill"),hd:function(b,d){var e=b.L.Pb,f=a(b),e=d.createRadialGradient(b.x,b.y,0,b.x,b.y,e*t.th);e.addColorStop(0,S.Z((f.h+t.qh)%360,c(f.s+t.sh),c(f.l+t.rh)));e.addColorStop(1,S.Z((f.h+t.uh)%360,c(f.s+t.wh),c(f.l+t.vh)));b.ca.Ta(d);d.fillStyle=e}},{type:"stroke",qa:h(b("polygonPlainStroke"),function(){return 0<
|
||||
t.mb}),hd:function(a,b){var d=a.sa,e=a.Eb,f=a.selected;b.strokeStyle=S.Z((d.h+t.af+(e?t.Se:0)+(f?t.Ye:0))%360,c(d.s*a.wa+t.cf+(e?t.Ue:0)+(f?t.$e:0)),c(d.l*a.va+t.bf+(e?t.Te:0)+(f?t.Ze:0)));b.lineWidth=t.mb*Math.pow(t.Ra,a.K-1)}},{type:"stroke",qa:h(b("polygonGradientStroke"),function(){return 0<t.mb}),hd:function(a,b){var d=a.L.Pb*t.$h,e=a.sa,f=Math.PI*t.Wh/180,d=b.createLinearGradient(a.x+d*Math.cos(f),a.y+d*Math.sin(f),a.x+d*Math.cos(f+Math.PI),a.y+d*Math.sin(f+Math.PI)),g=a.Eb,h=a.selected,f=(e.h+
|
||||
t.af+(g?t.Se:0)+(h?t.Ye:0))%360,k=c(e.s*a.wa+t.cf+(g?t.Ue:0)+(h?t.$e:0)),e=c(e.l*a.va+t.bf+(g?t.Te:0)+(h?t.Ze:0));d.addColorStop(0,S.Z((f+t.Xh)%360,c(k+t.Zh),c(e+t.Yh)));d.addColorStop(1,S.Z((f+t.ai)%360,c(k+t.ci),c(e+t.bi)));b.strokeStyle=d;b.lineWidth=t.mb*Math.pow(t.Ra,a.K-1)}}],e=Array(d.length);return function(a,b){for(var c=d.length-1;0<=c;c--)e[c]=d[c].qa(a,b);this.xj=d;this.Wg=e}}(),Da:function(){},d:function(){},hb:function(){},vb:function(a,b){if(a.Wd&&!((0===a.opacity||a.open)&&a.Y||a.ca.Na()||
|
||||
!t.De&&a.description)){var c=this.xj,d=this.Wg;b.beginPath();a.ca.Ta(b);for(var e=!1,f=!1,g=c.length-1;0<=g;g--){var h=c[g];if(d[g])switch(h.hd(a,b),h.type){case "fill":e=!0;break;case "stroke":f=!0}}c=(a.Y?a.opacity:1)*a.sa.a;d=!a.empty();g=t.$f?a.sd:1;e&&(e=d&&a.Y&&a.O&&a.e[0].W?1-a.e.reduce(function(a,b){return a+b.ua*b.Zd},0)/a.e.length*(1-t.Yf):1,b.globalAlpha=c*e*g,Xa(b));f&&(b.globalAlpha=c*(d?t.yi:1)*g,b.closePath(),Ya(b),b.stroke())}}},{Za:["offsetPolygon"],qa:function(){return 0<t.Rc},X:function(){},
|
||||
Da:function(){},d:function(){},hb:function(){},vb:function(a,b,c){if(a.Wd&&a.selected&&!a.ca.Na()){b.globalAlpha=a.Ka;b.beginPath();var d=Math.pow(t.Ra,a.K-1);b.lineWidth=t.Rc*d;b.strokeStyle=t.Vh;var e=t.Bd;0<e&&(b.shadowBlur=e*d*c*b.n,b.shadowColor=t.We);a.ca.Ta(b);b.closePath();b.stroke()}}},{Za:[],qa:function(){return!0},X:function(){},Da:function(){},d:function(){},hb:function(){},vb:function(a,b){function c(d){var e=Sa.zc.width,f=Sa.zc.height,g=M.se(a.ba,a.L,e/f),g=Math.min(Math.min(0.9*g,0.5*
|
||||
a.q.i)/f,0.5*a.q.f/e);b.save();b.translate(a.x,a.y);b.globalAlpha=a.opacity*a.fa;b.scale(g,g);b.translate(-e/2,-f/2);d(b);b.restore()}a.na&&!a.ca.Na()&&c(function(a){Sa.Fg(a)})}},{Za:[],qa:function(a,b){return function(c,d){return a(c,d)||b(c,d)}}(b("labelPlainFill"),h(b("contentDecoration"),function(){return t.Pc})),X:function(){},Da:function(){},d:function(){},hb:function(){},vb:function(a,b,c){(0<a.opacity&&0<a.fa&&!a.open||!a.Y)&&!a.ca.Na()&&(a.Vc=a.ra&&a.ra.la&&t.n*a.ra.fontSize*a.scale*c>=t.Ph,
|
||||
"auto"===a.Hd?!t.De&&a.description?a.qb=a.parent.qb:(b=a.Qe,c=b.h+(b.s<<9)+(b.l<<16),a.zd!==c&&(a.qb=S.Bg(b)>(0>a.ka?t.di:t.Eh)?t.Fh:t.Oh,a.zd=c)):a.qb=a.Hd)}},{Za:["custom"],qa:h(b("contentDecoration"),function(){return t.Pc}),X:function(){},Da:function(){},d:function(){},hb:function(){},vb:function(a,b){!(0<a.opacity&&0<a.fa&&!a.open||!a.Y)||a.cc.Na()||a.ca.Na()||(a.Vc||void 0===a.ra?(b.globalAlpha=a.fa*(a.Y?a.opacity:1)*(a.empty()?1:t.Zf),b.fillStyle=a.qb,b.strokeStyle=a.qb,a.cc.Ta(b)):k(a,b))}},
|
||||
{Za:["label"],qa:b("labelPlainFill"),X:function(){},Da:function(){},d:function(){},hb:function(){},vb:function(a,b,c){a.of&&a.Yc&&(0<a.opacity&&0<a.fa&&!a.open||!a.Y)&&!a.ca.Na()&&a.ra&&(b.fillStyle=a.qb,b.globalAlpha=a.fa*(a.Y?a.opacity:1)*(a.empty()?1:t.Zf),a.Vc?Za(a,b,c):k(a,b))}}].reverse())];this.H=function(){p=ua.ji(function(){return ja.eh()},"CarrotSearchFoamTree",12096E5)($a());F.H()};this.clear=function(){s.clearRect(0,0,H,Q);x.clearRect(0,0,H,Q)};var ea=!1,aa=void 0;this.k=function(a){ea?
|
||||
aa=a:a()};this.ee=function(){function a(){window.clearTimeout(b);ea=!0;b=setTimeout(function(){ea=!1;if(l()){var a=!g();f(null,d.$,x,a);D.defer(function(){ca.uj();aa&&(aa(),aa=void 0)})}else aa&&(aa(),aa=void 0)},Math.max(t.Ij,3*m.qg.Kd,3*m.qg.Jd))}var b,d;return function(b){ab(F);d=c();var e=null!==d.ug,g=0<O.lc("hifi"),h=g&&(e||!b);b=e||L||!b;L=!1;g&&!h&&ca.vj();f(d.ug,d.vg,h?x:s,b);$.Fa(z,function(a){a.aa=!1;a.I=!1;a.$a=!1});h||a();t.Uf(e)}}();this.d=function(a){a=a||{};ab(F);z.I=!0;var b=c(),
|
||||
d=t.n;try{var e=D.B(a.pixelRatio,t.n);t.n=e;var g=O.pc("export",e,!0),h=g.getContext("2d");s===u&&(h=new ha(h));h.scale(e,e);var k=D.N(a,"backgroundColor");k&&(h.save(),h.fillStyle=a.backgroundColor,h.fillRect(0,0,H,Q),h.restore());f(k?[]:null,b.vg,h,!0)}finally{t.n=d}return g.toDataURL(D.B(a.format,"image/png"),D.B(a.quality,0.8))};var ca=function(){function a(b,d,e,f){function g(a,b,c,d){return N.D.m({opacity:O.lc(a)}).ia({duration:c,G:{opacity:{end:b,R:d}},da:function(){O.lc(a,this.opacity)}}).xa()}
|
||||
var h=D.Fd(O.lc(b),1),k=D.Fd(O.lc(e),0);if(!h||!k){for(var l=c.length-1;0<=l;l--)c[l].stop();c=[];h||c.push(g(b,1,d,X.Sb));k||c.push(g(e,0,f,X.ng));return N.D.m({}).Ya(c).start()}}var b,c=[];return{vj:function(){t.rd?1!==r.style.opacity&&(r.style.visibility="visible",y.style.visibility="hidden",r.style.opacity=1,y.style.opacity=0):b&&b.Hb()||(b=a("wireframe",t.Me,"hifi",t.Me))},uj:function(){t.rd?(y.style.visibility="visible",r.style.visibility="hidden",r.style.opacity=0,y.style.opacity=1):a("hifi",
|
||||
t.xg,"wireframe",t.xg)}}}();ab=function(a){a.apply()};Xa=function(a){a.fill()};Ya=function(a){a.stroke()};return this}var Xa,Ya,ab;function Va(a){function m(a){return f.Nh?(e.fontFamily=d.fontFamily,e.fontStyle=d.fontStyle,e.fontVariant=d.fontVariant,e.fontWeight=d.fontWeight,e.lineHeight=d.lineHeight,e.horizontalPadding=d.ob,e.verticalPadding=d.cb,e.maxTotalTextHeight=d.sb,e.maxFontSize=d.rb,g.Dc(f.Mh,a,e),c.fontFamily=e.fontFamily,c.fontStyle=e.fontStyle,c.fontVariant=e.fontVariant,c.fontWeight=e.fontWeight,c.lineHeight=e.lineHeight,c.ob=e.horizontalPadding,c.cb=e.verticalPadding,c.sb=e.maxTotalTextHeight,c.rb=e.maxFontSize,
|
||||
c):d}function k(a){"undefined"!==typeof a.groupLabelFontFamily&&(d.fontFamily=a.groupLabelFontFamily);"undefined"!==typeof a.groupLabelFontStyle&&(d.fontStyle=a.groupLabelFontStyle);"undefined"!==typeof a.groupLabelFontVariant&&(d.fontVariant=a.groupLabelFontVariant);"undefined"!==typeof a.groupLabelFontWeight&&(d.fontWeight=a.groupLabelFontWeight);"undefined"!==typeof a.groupLabelLineHeight&&(d.lineHeight=a.groupLabelLineHeight);"undefined"!==typeof a.groupLabelHorizontalPadding&&(d.ob=a.groupLabelHorizontalPadding);
|
||||
"undefined"!==typeof a.groupLabelVerticalPadding&&(d.cb=a.groupLabelVerticalPadding);"undefined"!==typeof a.groupLabelMaxTotalHeight&&(d.sb=a.groupLabelMaxTotalHeight);"undefined"!==typeof a.groupLabelMaxFontSize&&(d.rb=a.groupLabelMaxFontSize)}var f=a.options,d={},c={},g,l={groupLabel:""},e={};a.c.j("api:initialized",function(a){g=a});a.c.j("options:changed",k);k(a.Ud);this.d=function(a){if(!a.ba)return!1;var c=a.group.label;f.Hh&&!a.na&&(l.labelText=c,g.Dc(f.Gh,a,l),c=l.labelText);a.pf=c;return a.Id!==
|
||||
c};this.k=function(a){var c=a.pf;a.Id=c;a.Uc.clear();a.ra=void 0;!a.ba||D.jf(c)||"flattened"===f.xb&&!a.empty()&&a.O&&a.e[0].W||(a.ra=G.xe(m(a),a.Uc,c,a.ba,a.q,a.L,!1,!1,a.ni,a.L.ja,f.Qh,a.Sa));a.Sa=!1};Za=this.A=function(a,c){a.Uc.Ta(c)}}var Za;function Wa(a){function m(a,c){var d=a.e,e=d.length,f,g,k=l.L.Pb;for(f=0;f<e;f++)g=d[f],g.Db=(180*(Math.atan2(g.x-a.x,g.y-a.y)+c)/Math.PI+180)/360,g.Oc=Math.min(1,Math.sqrt(M.d(g,a))/k)}function k(a,c){var d=a.e,e=d.length;if(1===e||2===e&&d[0].description)d[0].Db=0.5;else{var f,g,k=0,l=Number.MAX_VALUE,m=Math.sin(c),y=Math.cos(c);for(f=0;f<e;f++){g=d[f];var x=g.x*m+g.y*y;k<x&&(k=x);l>x&&(l=x);g.Db=x;g.Oc=1}for(f=0;f<e;f++)g=d[f],g.Db=(g.Db-l)/(k-l)}}function f(a,c,d,e){c=c[e];return c+(d[e]-c)*a}
|
||||
var d={radial:m,linear:k},c=a.options,g,l,e={groupColor:null,labelColor:null};a.c.j("model:loaded",function(a){l=a});a.c.j("api:initialized",function(a){g=a});this.H=function(){};this.apply=function(){function a(d){if(d.O&&d.Ca){var k=d.e,l,m;if(d.aa||d.Ma||w){0===d.K?n(d,c.Xi*Math.PI/180):q(d,c.aj*Math.PI/180);for(l=k.length-1;0<=l;l--){m=k[l];m.Ma=!0;var C=m.Db,H,Q,O,P,F=m.Pe;0===d.K?(H=f(C,p,r,"h"),Q=(y+(1-y)*m.Oc)*f(C,p,r,"s"),O=(1+(0>m.ka?u*(m.ka+1):u)*(1-m.Oc))*f(C,p,r,"l"),P=f(C,p,r,"a")):
|
||||
(O=d.sa,H=O.h,Q=O.s,O=h(O.l,C,c.bj,c.cj),P=d.Pe.a);F.h=H;F.s=Q;F.l=O;F.a=P;H=m.sa;m.na?(H.h=0,H.s=0,H.l="light"==c.Sg?90:10,H.a=1):(H.h=F.h,H.s=F.s,H.l=F.l,H.a=F.a);w&&!m.na&&(e.groupColor=H,e.labelColor="auto",g.Dc(s,m,e,function(a){a.ratio=C}),m.sa=S.Ba(e.groupColor),m.sa.a=D.N(e.groupColor,"a")?e.groupColor.a:1,"auto"!==e.labelColor&&(m.Hd=S.Mg(e.labelColor)))}d.Ma=!1}for(l=k.length-1;0<=l;l--)a(k[l])}}function h(a,b,c,d){var e=0>a+c*d?0:100<a+c*d?100:a+c*d;return e+b*((0>a-c*(1-d)?0:100<a-c*(1-
|
||||
d)?100:a-c*(1-d))-e)}var n=d[c.Wi]||m,q=k,p=c.fj,r=c.Zi,s=c.lh,w=c.mh,u=c.$i,y=c.dj;a(l)};return this};function Ga(){this.vc=this.pe=this.sc=this.pg=this.f=this.wg=this.T=this.y=this.x=this.id=0;this.o=this.parent=this.e=null;this.q={x:0,y:0,f:0,i:0};this.C=null;this.Id=this.pf=void 0;this.ld=!1;this.Oc=this.Db=0;this.Pe={h:0,s:0,l:0,a:0,model:"hsla"};this.sa={h:0,s:0,l:0,a:0,model:"hsla"};this.Qe={h:0,s:0,l:0,model:"hsl"};this.zd=-1;this.Hd="auto";this.qb="#000";this.mg=this.K=this.Ed=this.index=0;this.na=!1;this.ja=this.uf=0;this.$=!1;this.ba=null;this.L={x:0,y:0,ja:0,Pb:0};this.Xd=this.u=null;this.Yc=
|
||||
this.W=this.$a=this.Fc=this.me=this.Vd=this.Sa=this.Ma=this.I=this.aa=this.La=this.Ca=this.O=this.Qa=!1;this.wa=this.va=this.Ka=this.fa=this.opacity=this.scale=1;this.ua=0;this.Zd=1;this.Mb=this.ka=this.Ib=0;this.description=this.selected=this.Eb=this.Td=this.open=this.U=!1;this.Cb=0;this.of=this.Wd=this.Y=!0;this.ra=void 0;this.Vc=!1;this.Uc=new ga;this.ca=new ga;this.cc=new ga;this.ni=G.Ai();this.Xc=0;this.sd=1;this.bd=-1;this.empty=function(){return!this.e||0===this.e.length};var a=[];this.Cc=
|
||||
function(d){a.push(d)};this.fd=function(d){D.bg(a,d)};var m={scale:1};this.Nd=function(){var d=!1;this.scale=1;for(var c=0;c<a.length;c++)d=a[c].qf(this,m)||d,this.scale*=m.scale;return d};this.Ub=function(d){for(var c=0;c<a.length;c++)a[c].Ub(this,d)};this.Vb=function(d,c){c.x=d.x;c.y=d.y;for(var f=0;f<a.length;f++)a[f].Vb(this,c,c);return c};this.Wb=function(d,c){c.x=d.x;c.y=d.y;for(var f=0;f<a.length;f++)a[f].Wb(this,c,c);return c};var k=[];this.Ab=function(a){k.push(a)};this.ed=function(a){D.bg(k,
|
||||
a)};var f={opacity:1,wa:1,va:1,fa:1,Ka:1};this.oc=function(){if(0!==k.length){this.Ka=this.fa=this.va=this.wa=this.opacity=1;for(var a=k.length-1;0<=a;a--)(0,k[a])(this,f),this.opacity*=f.opacity,this.va*=f.va,this.wa*=f.wa,this.fa*=f.fa,this.Ka*=f.Ka}}}function Oa(a,m){return m.T>a.T?1:m.T<a.T?-1:a.index-m.index};function bb(a){var m=this,k,f,d,c,g=a.options,l,e;a.c.j("stage:initialized",function(b,e,l,q){d=l;c=q;k=b.pc("titlebar",g.n,!1);f=k.getContext("2d");f.n=g.n;f.scale(f.n,f.n);a.c.p("titlebar:initialized",m)});a.c.j("stage:resized",function(a,e,g,k){d=g;c=k;f.scale(f.n,f.n)});a.c.j("zoom:initialized",function(a){e=a});a.c.j("api:initialized",function(a){l=a});a.c.j("model:loaded",function(){f.clearRect(0,0,d,c)});this.update=function(a){f.clearRect(0,0,d,c);if(a){!a.empty()&&a.e[0].description&&(a=
|
||||
a.e[0]);var h=g.Cj,k=g.Bj,m=Math.min(c/2,g.ne+2*h),p=m-2*h,r=d-2*k;if(!(0>=p||0>=r)){var s=a.Vc?a.ra.fontSize*a.scale*e.scale():0,w,u={titleBarText:a.Id,titleBarTextColor:g.tg,titleBarBackgroundColor:g.sg,titleBarMaxFontSize:g.ne,titleBarShown:s<g.ti};a.na?w=xa.jg("B`ssnu!Rd`sbi!Gn`lUsdd!whrt`mh{`uhno/!Bmhbj!uid!mnfn!un!fn!un!iuuq;..b`ssnurd`sbi/bnl.gn`lusdd!gns!lnsd!edu`hmr/"):(l.Dc(g.yj,a,u,function(a){a.titleBarWidth=r;a.titleBarHeight=p;a.labelFontSize=s;a.viewportScale=e.scale()}),w=u.titleBarText);
|
||||
w&&0!==w.length&&u.titleBarShown&&(a=e.nd(a.Vb(a,{}),{}).y>c/2,h={x:k,y:a?h:c-m+h,f:r,i:p},k=M.A(h),f.fillStyle=g.sg,f.fillRect(0,a?0:c-m,d,m),f.fillStyle=g.tg,G.Le({fontFamily:g.zj||g.Ih,fontStyle:g.$j||g.Jh,fontWeight:g.bk||g.Lh,fontVariant:g.ak||g.Kh,rb:g.ne,Zc:g.Aj,ob:0,cb:0,sb:1},f,w,k,h,{x:h.x+h.f/2,y:h.y+h.i/2},!0,!0).la||f.clearRect(0,0,d,c))}}}};function cb(a){function m(a,b,c){u=!0;h&&h.stop();q&&q.stop();return g(e.reset(a),b,c).P(function(){u=!1})}function k(b){e.update(b);s.I=!0;a.c.p("foamtree:dirty",!0)}function f(a,b){return e.d((0!==e.k()?0.35:1)*a,(0!==e.A()?0.35:1)*b)}function d(){if(1===b.Qb){var a=Math.round(1E4*e.k())/1E4;0!==a&&(n.$d=a,h=w.D.uc(n).ia({duration:500,G:{x:{start:a,end:0,R:X.Sb}},da:function(){e.d(n.x-n.$d,0);k(1);n.$d=n.x}}).start())}}function c(){if(1===b.Qb){var a=Math.round(1E4*e.A())/1E4;0!==a&&(p.ae=a,q=w.D.uc(p).ia({duration:500,
|
||||
G:{y:{start:a,end:0,R:X.Sb}},da:function(){e.d(0,p.y-p.ae);k(1);p.ae=p.y}}).start())}}function g(a,c,d){return a?w.D.uc(b).ia({duration:void 0===c?700:c,G:{Qb:{start:0,end:1,R:d||X.og}},da:function(){k(b.Qb)}}).ab():(new V).J().M()}function l(a){return function(){return u?(new V).J().M():a.apply(this,arguments)}}var e=new oa(a),b={Qb:1},h,n={Ee:0,x:0,$d:0},q,p={Fe:0,y:0,ae:0},r=this,s,w,u=!1;a.c.j("model:loaded",function(a){s=a;e.reset(!1);e.update(1)});a.c.j("timeline:initialized",function(a){w=
|
||||
a});this.H=function(){a.c.p("zoom:initialized",this)};this.reset=function(a,b){e.Rb(1);return m(!0,a,b)};this.normalize=l(function(a,b){e.Hc(1)?m(!1,a,b):r.vf()});this.vf=function(){d();c()};this.k=l(function(a,b,c,d){return r.tc(a.q,b,c,d)});this.$b=l(function(a,b,c,d){return g(e.$b(a,b),c,d)});this.tc=l(function(a,b,c,d){return g(e.tc(a,b),c,d)});this.Dj=l(function(a,b){e.tc(a,b)&&k(1)});this.vi=l(function(a,c){1===b.Qb&&f(a,c)&&k(1)});this.Qg=l(function(a,b){e.$b(a,b)&&k(1)});this.Pg=l(function(a,
|
||||
b,c,d){a=0|e.$b(a,b);(a|=f(c,d))&&k(1)});this.wi=l(function(a,g,l){1===b.Qb&&(h=w.D.uc(n).ia({duration:a/0.03,G:{Ee:{start:g,end:0,R:X.Sb}},da:function(){e.d(n.Ee,0)&&k(1);d()}}).start(),q=w.D.uc(p).ia({duration:a/0.03,G:{Fe:{start:l,end:0,R:X.Sb}},da:function(){f(0,p.Fe)&&k(1);c()}}).start())});this.xi=function(){h&&0===e.k()&&h.stop();q&&0===e.A()&&q.stop()};this.Jc=function(a,b){e.Jc(a,b)};this.Rb=function(a){return e.Rb(a)};this.Hc=function(a){return e.Hc(a)};this.Rd=function(){return e.Rd()};
|
||||
this.absolute=function(a,b){return e.absolute(a,b)};this.nd=function(a,b){return e.nd(a,b)};this.scale=function(){return e.scale()};this.d=function(a){return e.S(a)};this.content=function(a,b,c,d){e.content(a,b,c,d)}};function db(a,m,k){function f(a){var b=[];$.F(q,function(c){a(c)&&b.push(c.group)});return{groups:b}}function d(a,b){var c=n.options,d=c.mj,e=c.lj,c=c.fe,f=0<d+e?c:0,g=[];Ca.Ja(a,Ca.ya(a,n.options.he),function(a,c,h){c="groups"===n.options.ge?h:c;a.e&&(a=r.D.m(a).eb(f*(e+d*c)).call(b).xa(),g.push(a))});return r.D.m({}).Ya(g).ab()}function c(a){Y||(Y=!0,p.d(function(){Y=!1;n.c.p("repaint:before");B.ee(this.Og)},{Og:a}))}function g(a){function c(a,b){var f=a.W;a.W=b<=d;a.Yc=b<=e;a.W!==f&&$.Ge(a,function(a){a.me=
|
||||
!0});a.open||a.fb||b++;if(f=a.e)for(var g=0;g<f.length;g++)c(f[g],b)}var d=n.options.rf,e=Math.min(n.options.rf,n.options.qi);if(a)for(var f=0;f<a.length;f++){var g=a[f];c(g,b(g))}else c(q,0)}function l(a,b){var c=[],d=e(a,b);d.ui&&n.c.p("model:childrenAttached",$.Mc(q));d.gj&&A.complete(function(a){J.pb(a);c.push(a)});for(var f=d=0;f<c.length;f++){var g=c[f];g.e&&(d+=g.e.length);g.Ca=!0;H.d(g)}return d}function e(a,b){function c(a,b){var k=!a.na&&b-(a.fb?1:0)<d;f=f||k;a.Qa=a.Qa||k;a.open||a.fb||
|
||||
b++;var l=a.e;!l&&k&&(e=x.S(a)||e,l=a.e,h&&(a.Sa=!0));if(l)for(k=0;k<l.length;k++)g.push(l[k],b)}var d=b||n.options.ri,e=!1,f=!1,g,h="flattened"===m.xb;for(g=a?a.reduce(function(a,b){a.push(b,1);return a},[]):[q,1];0<g.length;)c(g.shift(),g.shift());return{ui:e,gj:f}}function b(a){for(var b=0;a.parent;)a.open||a.fb||b++,a=a.parent;return b}var h=this,n={c:new wa,options:m,Ud:k},q,p=new da,r=new ya(p),s=ba.create(),w=new ka(n),u=new cb(n),y=new Ea(n),x=new Fa(n.options),A=new Pa(n),B=new Ta(n,p),K=
|
||||
new Ma(n);new bb(n);var C=new Ia(n),H=new Ja(n),Q=new Ka(n),O=new La(n);n.c.j("stage:initialized",function(a,b,c,d){t.ff(c,d)});n.c.j("stage:resized",function(a,b,c,d){t.kj(a,b,c,d)});n.c.j("foamtree:attachChildren",l);n.c.j("openclose:changing",g);n.c.j("interaction:reset",function(){R(!0)});n.c.j("foamtree:dirty",c);this.H=function(){n.c.p("timeline:initialized",r);q=x.H();w.H(a);y.H();B.H();K.H();C.H();H.H();u.H();Q.H();O.H()};this.kb=function(){r.d();I.stop();p.k();w.kb()};var P="groupLabelFontFamily groupLabelFontStyle groupLabelFontVariant groupLabelFontWeight groupLabelLineHeight groupLabelHorizontalPadding groupLabelVerticalPadding groupLabelDottingThreshold groupLabelMaxTotalHeight groupLabelMinFontSize groupLabelMaxFontSize groupLabelDecorator".split(" "),
|
||||
F="rainbowColorDistribution rainbowLightnessDistribution rainbowColorDistributionAngle rainbowLightnessDistributionAngle rainbowColorModelStartPoint rainbowLightnessCorrection rainbowSaturationCorrection rainbowStartColor rainbowEndColor rainbowHueShift rainbowHueShiftCenter rainbowSaturationShift rainbowSaturationShiftCenter rainbowLightnessShift rainbowLightnessShiftCenter attributionTheme".split(" "),T=!1,N=["groupBorderRadius","groupBorderRadiusCorrection","groupBorderWidth","groupInsetWidth",
|
||||
"groupBorderWidthScaling"],U=["maxGroupLevelsDrawn","maxGroupLabelLevelsDrawn"];this.Yb=function(a){n.c.p("options:changed",a);D.nb(a,P)&&$.F(q,function(a){a.Sa=!0});D.nb(a,F)&&(q.Ma=!0);D.nb(a,N)&&(T=!0);D.nb(a,U)&&(g(),l())};this.reload=function(){z.reload()};this.Zb=function(a,b){D.defer(function(){if(T)t.oi(a),T=!1;else{if(b)for(var d=x.k(b),e=d.length-1;0<=e;e--)d[e].I=!0;else q.I=!0;c(a)}})};this.Z=function(){w.k()};this.update=function(a){a=a?x.k(a):[q];var b=a.reduce(function(a,b){a[b.id]=
|
||||
b;return a},{});a=a.filter(function(a){for(a=a.parent;a;){if(D.N(b,a.id))return!1;a=a.parent}return!0});x.update(a);t.Ej(a)};this.reset=function(){return R(!1)};this.S=B.d;this.Ja=function(){var a={};return function(b,c){var d=x.d(b);return d?y.od(a,d,c):null}}();this.Ba=function(){var a={x:0,y:0},b={x:0,y:0};return function(c,d){var e=x.d(c);return e?(a.x=d.x,a.y=d.y,e.Vb(a,a),u.nd(a,a),b.x=a.x,b.y=a.y,b):null}}();this.ya=function(){var a={};return function(b){return(b=x.d(b))?y.qd(a,b):null}}();
|
||||
this.Xb=function(){var a={};return function(b){return(b=x.d(b))?y.pd(a,b):null}}();this.za=function(){var a={};return function(){return u.d(a)}}();this.zc=function(){this.A({groups:f(function(a){return a.group.selected}),newState:!0,keepPrevious:!1});this.k({groups:f(function(a){return a.group.open}),newState:!0,keepPrevious:!1});this.d({groups:f(function(a){return a.group.exposed}),newState:!0,keepPrevious:!1})};this.Pa=function(){return f(function(a){return a.U})};this.d=function(a){return z.submit(function(){return C.hc(x.A(a,
|
||||
"exposed",!1),!1,!0,!1)})};this.bb=function(){return f(function(a){return a.open})};this.k=function(a){return z.submit(function(){return Q.Lb(x.A(a,"open",!0),!1,!1)})};this.Ua=function(){return f(function(a){return a.selected})};this.A=function(a){return z.submit(function(){O.select(x.A(a,"selected",!0),!1);return(new V).J().M()})};this.Bc=function(a){return(a=x.d(a))?a===q?u.reset(m.xc,X.pa(m.yc)):u.k(a,m.Qc,m.xc,X.pa(m.yc)):(new V).J().M()};this.Aa=function(a,b){var c=x.k(a);if(c){var d=l(c,b);
|
||||
g(c);return d}return 0};this.gb=function(a){return K.gb[a]};this.Ac=function(){var a=fa;return{frames:a.frames,totalTime:a.totalTime,lastFrameTime:a.Jd,lastInterFrameTime:a.Kd,fps:a.Oe}};var t=function(){function a(c,f){var g=c||d,h=f||e;d=g;e=h;var k=m.dc&&m.dc.boundary;k&&2<k.length?q.o=k.map(function(a){return{x:g*a.x,y:h*a.y}}):q.o=[{x:0,y:0},{x:g,y:0},{x:g,y:h},{x:0,y:h}];b()}function b(){q.aa=!0;q.u=q.o;q.q=M.q(q.o,q.q);q.L=q;M.re(q.o,q.L)}var d,e;return{ff:a,kj:function(b,d,e,f){J.stop();var g=
|
||||
e/b,h=f/d;$.He(q,function(a){a.x=a.x*g+(Math.random()-0.5)*e/1E3;a.y=a.y*h+(Math.random()-0.5)*f/1E3});a(e,f);q.La=!0;A.step(J.pb,!0,!1,function(a){var b=a.e;if(b){A.Ob(a);for(var c=b.length-1;0<=c;c--){var d=b[c];d.f=d.sc}a.La=!0}})?c(!1):(A.rc(q),n.options.de?(c(!1),I.cg(),I.gd()):(A.complete(J.pb),q.Ma=!0,c(!1)))},oi:function(a){var d=!1;q.empty()||(b(),I.Hb()||(d=A.step(J.pb,!1,!1),c(a)));return d},Ej:function(a){a.forEach(function(a){$.Fa(a,function(a){a.empty()||A.Ob(a)});A.rc(a);n.options.de?
|
||||
(I.cg(),$.Fa(a,function(a){a.empty()||J.df(a)})):($.Fa(a,function(a){a.empty()||J.pb(a)}),A.complete(J.pb),a.Ma=!0,c(!1))})}}}(),z=function(){function a(){0===m.Yd&&u.reset(0);n.options.Tf(m.dc);t.ff();x.Z(m.dc);e();g();n.c.p("model:loaded",q,$.Mc(q));var d;q.empty()||(q.open=!0,q.Qa=!0,m.de?d=I.gd():(I.zi(),d=f()),b(),0<m.fe?(B.clear(),w.d(1)):d=pa([d,c(1)]));n.options.Sf(m.dc);d&&(n.options.Wf(),d.P(function(){B.k(function(){p.d(n.options.Vf)})}))}function b(){var a=m.Va,c=m.cd;m.Va=0;m.cd=0;h.zc();
|
||||
m.Va=a;m.cd=c}function c(a,b){return 0===m.Ke||b?(w.d(a),(new V).J().M()):r.D.m({opacity:w.d()}).oe(2).ia({duration:m.Ke,G:{opacity:{end:a,R:X.pa(m.fh)}},da:function(){w.d(this.opacity)}}).ab()}function f(){$.Fa(q,function(a){a.Ca=!1});var a=new V,b=new qa(a.J);b.d();q.Ca=!0;H.d(q).P(b.k);d(q,function Ua(){this.O&&this.o&&(this.aa=this.Ca=!0,b.d(),H.d(this).P(b.k),b.d(),d(this,Ua).P(b.k))});return a.M()}function k(){for(var a=0;a<s.length;a++){var b=s[a],c=b.action();D.N(c,"then")?c.P(b.Ae.J):b.Ae.J()}s=
|
||||
[]}var l=!1,s=[];return{reload:function(){l||(q.empty()?a():(J.stop(),r.d(),I.stop(),l=!0,pa(0<m.Yd?[H.k(),R(!1)]:[c(0)]).P(function(){c(0,!0);l=!1;a();D.defer(k)})))},submit:function(a){if(l){var b=new V;s.push({action:a,Ae:b});return b.M()}return a()}}}(),L,E=new qa(function(){L.J()}),I=function(){function a(){f||(E.A()&&(L=new V),E.d(),b(),f=!0,p.repeat(e));return L.M()}function b(){g=s.now()}function e(){var b=s.now()-g>m.jj,b=A.step(function(b){b.Ca=!0;J.df(b);E.d();H.d(b).P(E.k);E.d();d(b,function(){this.Qa=
|
||||
!0;a()}).P(E.k)},!0,b)||b;c(!0);b&&(f=!1,E.k());return b}var f=!1,g;return{zi:function(){A.complete(J.pb)},gd:a,cg:b,Hb:function(){return!E.A()},stop:function(){p.cancel(e);f=!1;E.clear()}}}(),J=function(){function a(b){var c=!b.empty();b.Ca=!0;if(c){for(var d=b.e,e=d.length-1;0<=e;e--){var f=d[e];f.f=f.sc}b.La=!0}return c}var b=[];return{df:function(c){var d=n.options,e=d.zh;0<e?Ca.Ja(c,Ca.ya(c,n.options.he),function(a,c,f){c="groups"===n.options.ge?f:c;E.d();b.push(r.D.m(a).eb(c*d.yh*e).ia({duration:e,
|
||||
G:{f:{start:a.pg,end:a.sc,R:X.pa(d.Ah)}},da:function(){this.f=Math.max(0,this.f);this.parent.La=!0;I.gd()}}).ib(E.k).start())}):a(c)&&I.gd()},pb:a,stop:function(){for(var a=b.length-1;0<=a;a--)b[a].stop();b=[]}}}(),R=function(){var a=!1;return function(b){if(a)return(new V).J().M();a=!0;var c=[];c.push(u.reset(m.xc,X.pa(m.yc)));var d=new V;C.hc({e:[],Ia:!1,Ha:!1},b,!1,!0).P(function(){Q.Lb({e:[],Ia:!1,Ha:!1},b,!1).P(d.J)});c.push(d.M());return pa(c).P(function(){a=!1;b&&m.Xf()})}}(),Y=!1}
|
||||
function $a(){return{version:"3.4.10",build:"bugfix/3.4.x/b18f7427",brandingAllowed:!1}};v.Dd(function(){window.CarrotSearchFoamTree=function(a){function m(a,b){if(!l||l.exists(a))switch(a){case "selection":return h.Ua();case "open":return h.bb();case "exposure":return h.Pa();case "state":return h.ya.apply(this,b);case "geometry":return h.Ja.apply(this,b);case "hierarchy":return h.Xb.apply(this,b);case "containerCoordinates":return h.Ba.apply(this,b);case "imageData":return h.S.apply(this,b);case "viewport":return h.za();case "times":return h.Ac();case "onModelChanged":case "onRedraw":case "onRolloutStart":case "onRolloutComplete":case "onRelaxationStep":case "onGroupHover":case "onGroupOpenOrCloseChanging":case "onGroupExposureChanging":case "onGroupSelectionChanging":case "onGroupSelectionChanged":case "onGroupClick":case "onGroupDoubleClick":case "onGroupHold":var c=
|
||||
e[a];return Array.isArray(c)?c:[c];default:return e[a]}}function k(a){function c(a,b){return D.N(f,a)?(b(f[a]),delete f[a],1):0}var f;if(0===arguments.length)return 0;1===arguments.length?f=D.extend({},arguments[0]):2===arguments.length&&(f={},f[arguments[0]]=arguments[1]);l&&l.validate(f,b.pi);var g=0;h&&(g+=c("selection",h.A),g+=c("open",h.k),g+=c("exposure",h.d));var k={};D.Ga(f,function(a,b){if(e[b]!==a||D.Gb(a))k[b]=a,g++;e[b]=a});0<g&&d(k);return g}function f(a,b){var c="on"+a.charAt(0).toUpperCase()+
|
||||
a.slice(1),f=e[c];e[c]=b(Array.isArray(f)?f:[f]);f={};f[c]=e[c];d(f)}function d(a){(function(){function c(b,d){return D.N(a,b)||void 0===d?va.m(e[b],g):d}b.pi=e.logging;b.dc=e.dataObject;b.n=e.pixelRatio;b.yb=e.wireframePixelRatio;b.xb=e.stacking;b.ah=e.descriptionGroup;b.fc=e.descriptionGroupType;b.Ic=e.descriptionGroupPosition;b.bh=e.descriptionGroupDistanceFromCenter;b.ec=e.descriptionGroupSize;b.Ce=e.descriptionGroupMinHeight;b.Be=e.descriptionGroupMaxHeight;b.De=e.descriptionGroupPolygonDrawn;
|
||||
b.Wc=e.layout;b.mc=e.layoutByWeightOrder;b.wj=e.showZeroWeightGroups;b.Ve=e.groupMinDiameter;b.ce=e.rectangleAspectRatioPreference;b.ij=e.initializer||e.relaxationInitializer;b.jj=e.relaxationMaxDuration;b.de=e.relaxationVisible;b.ag=e.relaxationQualityThreshold;b.Rh=e.groupResizingBudget;b.zh=e.groupGrowingDuration;b.yh=e.groupGrowingDrag;b.Ah=e.groupGrowingEasing;b.jh=e.groupBorderRadius;b.lb=e.groupBorderWidth;b.Ra=e.groupBorderWidthScaling;b.Ad=e.groupInsetWidth;b.kh=e.groupBorderRadiusCorrection;
|
||||
b.mb=e.groupStrokeWidth;b.Rc=e.groupSelectionOutlineWidth;b.Vh=e.groupSelectionOutlineColor;b.Bd=e.groupSelectionOutlineShadowSize;b.We=e.groupSelectionOutlineShadowColor;b.Sh=e.groupSelectionFillHueShift;b.Uh=e.groupSelectionFillSaturationShift;b.Th=e.groupSelectionFillLightnessShift;b.Ye=e.groupSelectionStrokeHueShift;b.$e=e.groupSelectionStrokeSaturationShift;b.Ze=e.groupSelectionStrokeLightnessShift;b.xh=e.groupFillType;b.th=e.groupFillGradientRadius;b.qh=e.groupFillGradientCenterHueShift;b.sh=
|
||||
e.groupFillGradientCenterSaturationShift;b.rh=e.groupFillGradientCenterLightnessShift;b.uh=e.groupFillGradientRimHueShift;b.wh=e.groupFillGradientRimSaturationShift;b.vh=e.groupFillGradientRimLightnessShift;b.Cd=e.groupStrokeType;b.mb=e.groupStrokeWidth;b.af=e.groupStrokePlainHueShift;b.cf=e.groupStrokePlainSaturationShift;b.bf=e.groupStrokePlainLightnessShift;b.$h=e.groupStrokeGradientRadius;b.Wh=e.groupStrokeGradientAngle;b.ai=e.groupStrokeGradientUpperHueShift;b.ci=e.groupStrokeGradientUpperSaturationShift;
|
||||
b.bi=e.groupStrokeGradientUpperLightnessShift;b.Xh=e.groupStrokeGradientLowerHueShift;b.Zh=e.groupStrokeGradientLowerSaturationShift;b.Yh=e.groupStrokeGradientLowerLightnessShift;b.Bh=e.groupHoverFillHueShift;b.Dh=e.groupHoverFillSaturationShift;b.Ch=e.groupHoverFillLightnessShift;b.Se=e.groupHoverStrokeHueShift;b.Ue=e.groupHoverStrokeSaturationShift;b.Te=e.groupHoverStrokeLightnessShift;b.Wa=e.groupExposureScale;b.ph=e.groupExposureShadowColor;b.Re=e.groupExposureShadowSize;b.Qc=e.groupExposureZoomMargin;
|
||||
b.ei=e.groupUnexposureLightnessShift;b.fi=e.groupUnexposureSaturationShift;b.di=e.groupUnexposureLabelColorThreshold;b.Va=e.exposeDuration;b.ic=e.exposeEasing;b.cd=e.openCloseDuration;b.lh=va.m(e.groupColorDecorator,g);b.mh=e.groupColorDecorator!==D.ta;b.Gh=va.m(e.groupLabelDecorator,g);b.Hh=e.groupLabelDecorator!==D.ta;b.Mh=va.m(e.groupLabelLayoutDecorator,g);b.Nh=e.groupLabelLayoutDecorator!==D.ta;b.nh=va.m(e.groupContentDecorator,g);b.Pc=e.groupContentDecorator!==D.ta;b.oh=e.groupContentDecoratorTriggering;
|
||||
b.ej=e.rainbowStartColor;b.Yi=e.rainbowEndColor;b.Wi=e.rainbowColorDistribution;b.Xi=e.rainbowColorDistributionAngle;b.aj=e.rainbowLightnessDistributionAngle;b.bj=e.rainbowLightnessShift;b.cj=e.rainbowLightnessShiftCenter;b.dj=e.rainbowSaturationCorrection;b.$i=e.rainbowLightnessCorrection;b.Yf=e.parentFillOpacity;b.yi=e.parentStrokeOpacity;b.Zf=e.parentLabelOpacity;b.$f=e.parentOpacityBalancing;b.Qh=e.groupLabelUpdateThreshold;b.Ih=e.groupLabelFontFamily;b.Jh=e.groupLabelFontStyle;b.Kh=e.groupLabelFontVariant;
|
||||
b.Lh=e.groupLabelFontWeight;b.Ph=e.groupLabelMinFontSize;b.Sj=e.groupLabelMaxFontSize;b.Rj=e.groupLabelLineHeight;b.Qj=e.groupLabelHorizontalPadding;b.Uj=e.groupLabelVerticalPadding;b.Tj=e.groupLabelMaxTotalHeight;b.Fh=e.groupLabelDarkColor;b.Oh=e.groupLabelLightColor;b.Eh=e.groupLabelColorThreshold;b.Gj=e.wireframeDrawMaxDuration;b.Hj=e.wireframeLabelDrawing;b.Fj=e.wireframeContentDecorationDrawing;b.xg=e.wireframeToFinalFadeDuration;b.Ij=e.wireframeToFinalFadeDelay;b.gh=e.finalCompleteDrawMaxDuration;
|
||||
b.hh=e.finalIncrementalDrawMaxDuration;b.Me=e.finalToWireframeFadeDuration;b.rd=e.androidStockBrowserWorkaround;b.ef=e.incrementalDraw;b.si=e.maxGroups;b.ri=e.maxGroupLevelsAttached;b.rf=e.maxGroupLevelsDrawn;b.qi=e.maxGroupLabelLevelsDrawn;b.he=e.rolloutStartPoint;b.ge=e.rolloutMethod;b.nj=e.rolloutEasing;b.fe=e.rolloutDuration;b.fg=e.rolloutScalingStrength;b.hg=e.rolloutTranslationXStrength;b.ig=e.rolloutTranslationYStrength;b.eg=e.rolloutRotationStrength;b.gg=e.rolloutTransformationCenter;b.rj=
|
||||
e.rolloutPolygonDrag;b.sj=e.rolloutPolygonDuration;b.oj=e.rolloutLabelDelay;b.pj=e.rolloutLabelDrag;b.qj=e.rolloutLabelDuration;b.mj=e.rolloutChildGroupsDrag;b.lj=e.rolloutChildGroupsDelay;b.Pi=e.pullbackStartPoint;b.Ji=e.pullbackMethod;b.Fi=e.pullbackEasing;b.Xj=e.pullbackType;b.Yd=e.pullbackDuration;b.Oi=e.pullbackScalingStrength;b.Ri=e.pullbackTranslationXStrength;b.Si=e.pullbackTranslationYStrength;b.Ni=e.pullbackRotationStrength;b.Qi=e.pullbackTransformationCenter;b.Ki=e.pullbackPolygonDelay;
|
||||
b.Li=e.pullbackPolygonDrag;b.Mi=e.pullbackPolygonDuration;b.Gi=e.pullbackLabelDelay;b.Hi=e.pullbackLabelDrag;b.Ii=e.pullbackLabelDuration;b.Ci=e.pullbackChildGroupsDelay;b.Di=e.pullbackChildGroupsDrag;b.Ei=e.pullbackChildGroupsDuration;b.Ke=e.fadeDuration;b.fh=e.fadeEasing;b.Jj=e.zoomMouseWheelFactor;b.xc=e.zoomMouseWheelDuration;b.yc=e.zoomMouseWheelEasing;b.ti=e.maxLabelSizeForTitleBar;b.zj=e.titleBarFontFamily;b.sg=e.titleBarBackgroundColor;b.tg=e.titleBarTextColor;b.Aj=e.titleBarMinFontSize;b.ne=
|
||||
e.titleBarMaxFontSize;b.Bj=e.titleBarTextPaddingLeftRight;b.Cj=e.titleBarTextPaddingTopBottom;b.yj=e.titleBarDecorator;b.Nj=e.attributionText;b.Kj=e.attributionLogo;b.Mj=e.attributionLogoScale;b.Oj=e.attributionUrl;b.ve=e.attributionPosition;b.Rg=e.attributionDistanceFromCenter;b.Tg=e.attributionWeight;b.Sg=e.attributionTheme;b.gf=e.interactionHandler;b.Tf=c("onModelChanging",b.Tf);b.Sf=c("onModelChanged",b.Sf);b.Uf=c("onRedraw",b.Uf);b.Wf=c("onRolloutStart",b.Wf);b.Vf=c("onRolloutComplete",b.Vf);
|
||||
b.Sd=c("onRelaxationStep",b.Sd);b.Xf=c("onViewReset",b.Xf);b.Lf=c("onGroupOpenOrCloseChanging",b.Lf);b.Kf=c("onGroupOpenOrCloseChanged",b.Kf);b.Df=c("onGroupExposureChanging",b.Df);b.Cf=c("onGroupExposureChanged",b.Cf);b.Nf=c("onGroupSelectionChanging",b.Nf);b.Mf=c("onGroupSelectionChanged",b.Mf);b.Ff=c("onGroupHover",b.Ff);b.Hf=c("onGroupMouseMove",b.Hf);b.xf=c("onGroupClick",b.xf);b.yf=c("onGroupDoubleClick",b.yf);b.Ef=c("onGroupHold",b.Ef);b.Jf=c("onGroupMouseWheel",b.Jf);b.If=c("onGroupMouseUp",
|
||||
b.If);b.Gf=c("onGroupMouseDown",b.Gf);b.Bf=c("onGroupDragStart",b.Bf);b.zf=c("onGroupDrag",b.zf);b.Af=c("onGroupDragEnd",b.Af);b.Qf=c("onGroupTransformStart",b.Qf);b.Of=c("onGroupTransform",b.Of);b.Pf=c("onGroupTransformEnd",b.Pf);b.Rf=c("onKeyUp",b.Rf)})();b.fj=S.Ba(b.ej);b.Zi=S.Ba(b.Yi);b.Xe=S.Ba(b.We);b.Lj=null;h&&(h.Yb(a),D.N(a,"dataObject")&&h.reload())}function c(a){return function(){return a.apply(this,arguments).ih(g)}}var g=this,l=window.CarrotSearchFoamTree.asserts,e=D.extend({},window.CarrotSearchFoamTree.defaults),
|
||||
b={};k(a);(a=e.element||document.getElementById(e.id))||la.Pa("Element to embed FoamTree in not found.");e.element=a;var h=new db(a,b,e);h.H();var n={get:function(a){return 0===arguments.length?D.extend({},e):m(arguments[0],Array.prototype.slice.call(arguments,1))},set:k,on:function(a,b){f(a,function(a){a.push(b);return a})},off:function(a,b){f(a,function(a){return a.filter(function(a){return a!==b})})},resize:h.Z,redraw:h.Zb,update:h.update,attach:h.Aa,select:c(h.A),expose:c(h.d),open:c(h.k),reset:c(h.reset),
|
||||
zoom:c(h.Bc),trigger:function(a,b){var c=h.gb(a);c&&c(b)},dispose:function(){function a(){throw"FoamTree instance disposed";}h.kb();D.Ga(n,function(b,c){"dispose"!==c&&(g[c]=a)})}};D.Ga(n,function(a,b){g[b]=a});h.reload()};window["CarrotSearchFoamTree.asserts"]&&(window.CarrotSearchFoamTree.asserts=window["CarrotSearchFoamTree.asserts"],delete window["CarrotSearchFoamTree.asserts"]);window.CarrotSearchFoamTree.supported=!0;window.CarrotSearchFoamTree.version=$a;window.CarrotSearchFoamTree.defaults=
|
||||
Object.freeze({id:void 0,element:void 0,logging:!1,dataObject:void 0,pixelRatio:1,wireframePixelRatio:1,layout:"relaxed",layoutByWeightOrder:!0,showZeroWeightGroups:!0,groupMinDiameter:10,rectangleAspectRatioPreference:-1,relaxationInitializer:"fisheye",relaxationMaxDuration:3E3,relaxationVisible:!1,relaxationQualityThreshold:1,stacking:"hierarchical",descriptionGroup:"auto",descriptionGroupType:"stab",descriptionGroupPosition:225,descriptionGroupDistanceFromCenter:1,descriptionGroupSize:0.125,descriptionGroupMinHeight:35,
|
||||
descriptionGroupMaxHeight:0.5,descriptionGroupPolygonDrawn:!1,maxGroups:5E4,maxGroupLevelsAttached:4,maxGroupLevelsDrawn:4,maxGroupLabelLevelsDrawn:3,groupGrowingDuration:0,groupGrowingEasing:"bounce",groupGrowingDrag:0,groupResizingBudget:2,groupBorderRadius:0.15,groupBorderWidth:4,groupBorderWidthScaling:0.6,groupInsetWidth:6,groupBorderRadiusCorrection:1,groupSelectionOutlineWidth:5,groupSelectionOutlineColor:"#222",groupSelectionOutlineShadowSize:0,groupSelectionOutlineShadowColor:"#fff",groupSelectionFillHueShift:0,
|
||||
groupSelectionFillSaturationShift:0,groupSelectionFillLightnessShift:0,groupSelectionStrokeHueShift:0,groupSelectionStrokeSaturationShift:0,groupSelectionStrokeLightnessShift:-10,groupFillType:"gradient",groupFillGradientRadius:1,groupFillGradientCenterHueShift:0,groupFillGradientCenterSaturationShift:0,groupFillGradientCenterLightnessShift:20,groupFillGradientRimHueShift:0,groupFillGradientRimSaturationShift:0,groupFillGradientRimLightnessShift:-5,groupStrokeType:"plain",groupStrokeWidth:1.5,groupStrokePlainHueShift:0,
|
||||
groupStrokePlainSaturationShift:0,groupStrokePlainLightnessShift:-10,groupStrokeGradientRadius:1,groupStrokeGradientAngle:45,groupStrokeGradientUpperHueShift:0,groupStrokeGradientUpperSaturationShift:0,groupStrokeGradientUpperLightnessShift:20,groupStrokeGradientLowerHueShift:0,groupStrokeGradientLowerSaturationShift:0,groupStrokeGradientLowerLightnessShift:-20,groupHoverFillHueShift:0,groupHoverFillSaturationShift:0,groupHoverFillLightnessShift:20,groupHoverStrokeHueShift:0,groupHoverStrokeSaturationShift:0,
|
||||
groupHoverStrokeLightnessShift:-10,groupExposureScale:1.15,groupExposureShadowColor:"rgba(0, 0, 0, 0.5)",groupExposureShadowSize:50,groupExposureZoomMargin:0.1,groupUnexposureLightnessShift:65,groupUnexposureSaturationShift:-65,groupUnexposureLabelColorThreshold:0.35,exposeDuration:700,exposeEasing:"squareInOut",groupColorDecorator:D.ta,groupLabelDecorator:D.ta,groupLabelLayoutDecorator:D.ta,groupContentDecorator:D.ta,groupContentDecoratorTriggering:"onLayoutDirty",openCloseDuration:500,rainbowColorDistribution:"radial",
|
||||
rainbowColorDistributionAngle:-45,rainbowLightnessDistributionAngle:45,rainbowSaturationCorrection:0.1,rainbowLightnessCorrection:0.4,rainbowStartColor:"hsla(0, 100%, 55%, 1)",rainbowEndColor:"hsla(359, 100%, 55%, 1)",rainbowLightnessShift:30,rainbowLightnessShiftCenter:0.4,parentFillOpacity:0.7,parentStrokeOpacity:1,parentLabelOpacity:1,parentOpacityBalancing:!0,wireframeDrawMaxDuration:15,wireframeLabelDrawing:"auto",wireframeContentDecorationDrawing:"auto",wireframeToFinalFadeDuration:500,wireframeToFinalFadeDelay:300,
|
||||
finalCompleteDrawMaxDuration:80,finalIncrementalDrawMaxDuration:100,finalToWireframeFadeDuration:200,androidStockBrowserWorkaround:v.hf(),incrementalDraw:"fast",groupLabelFontFamily:"sans-serif",groupLabelFontStyle:"normal",groupLabelFontWeight:"normal",groupLabelFontVariant:"normal",groupLabelLineHeight:1.05,groupLabelHorizontalPadding:1,groupLabelVerticalPadding:1,groupLabelMinFontSize:6,groupLabelMaxFontSize:160,groupLabelMaxTotalHeight:0.9,groupLabelUpdateThreshold:0.05,groupLabelDarkColor:"#000",
|
||||
groupLabelLightColor:"#fff",groupLabelColorThreshold:0.35,rolloutStartPoint:"center",rolloutEasing:"squareOut",rolloutMethod:"groups",rolloutDuration:2E3,rolloutScalingStrength:-0.7,rolloutTranslationXStrength:0,rolloutTranslationYStrength:0,rolloutRotationStrength:-0.7,rolloutTransformationCenter:0.7,rolloutPolygonDrag:0.1,rolloutPolygonDuration:0.5,rolloutLabelDelay:0.8,rolloutLabelDrag:0.1,rolloutLabelDuration:0.5,rolloutChildGroupsDrag:0.1,rolloutChildGroupsDelay:0.2,pullbackStartPoint:"center",
|
||||
pullbackEasing:"squareIn",pullbackMethod:"groups",pullbackDuration:1500,pullbackScalingStrength:-0.7,pullbackTranslationXStrength:0,pullbackTranslationYStrength:0,pullbackRotationStrength:-0.7,pullbackTransformationCenter:0.7,pullbackPolygonDelay:0.3,pullbackPolygonDrag:0.1,pullbackPolygonDuration:0.8,pullbackLabelDelay:0,pullbackLabelDrag:0.1,pullbackLabelDuration:0.3,pullbackChildGroupsDelay:0.1,pullbackChildGroupsDrag:0.1,pullbackChildGroupsDuration:0.3,fadeDuration:700,fadeEasing:"cubicInOut",
|
||||
zoomMouseWheelFactor:1.5,zoomMouseWheelDuration:500,zoomMouseWheelEasing:"squareOut",maxLabelSizeForTitleBar:8,titleBarFontFamily:null,titleBarFontStyle:"normal",titleBarFontWeight:"normal",titleBarFontVariant:"normal",titleBarBackgroundColor:"rgba(0, 0, 0, 0.5)",titleBarTextColor:"rgba(255, 255, 255, 1)",titleBarMinFontSize:10,titleBarMaxFontSize:40,titleBarTextPaddingLeftRight:20,titleBarTextPaddingTopBottom:15,titleBarDecorator:D.ta,attributionText:null,attributionLogo:null,attributionLogoScale:0.5,
|
||||
attributionUrl:"http://carrotsearch.com/foamtree",attributionPosition:"bottomright",attributionDistanceFromCenter:1,attributionWeight:0.025,attributionTheme:"light",interactionHandler:v.ii()?"hammerjs":"builtin",onModelChanging:[],onModelChanged:[],onRedraw:[],onRolloutStart:[],onRolloutComplete:[],onRelaxationStep:[],onViewReset:[],onGroupOpenOrCloseChanging:[],onGroupOpenOrCloseChanged:[],onGroupExposureChanging:[],onGroupExposureChanged:[],onGroupSelectionChanging:[],onGroupSelectionChanged:[],
|
||||
onGroupHover:[],onGroupMouseMove:[],onGroupClick:[],onGroupDoubleClick:[],onGroupHold:[],onGroupMouseWheel:[],onGroupMouseUp:[],onGroupMouseDown:[],onGroupDragStart:[],onGroupDrag:[],onGroupDragEnd:[],onGroupTransformStart:[],onGroupTransform:[],onGroupTransformEnd:[],onKeyUp:[],selection:null,open:null,exposure:null,imageData:null,hierarchy:null,geometry:null,containerCoordinates:null,state:null,viewport:null,times:null});window.CarrotSearchFoamTree.geometry=Object.freeze(function(){return{rectangleInPolygon:function(a,
|
||||
m,k,f,d,c,g){d=D.B(d,1);c=D.B(c,0.5);g=D.B(g,0.5);a=M.se(a,{x:m,y:k},f,c,g)*d;return{x:m-a*f*c,y:k-a*g,w:a*f,h:a}},circleInPolygon:function(a,m,k){return M.Dg(a,{x:m,y:k})},stabPolygon:function(a,m,k,f){return M.Yb(a,{x:m,y:k},f)},polygonCentroid:function(a){a=M.k(a,{});return{x:a.x,y:a.y,area:a.ja}},boundingBox:function(a){for(var m=a[0].x,k=a[0].y,f=a[0].x,d=a[0].y,c=1;c<a.length;c++){var g=a[c];g.x<m&&(m=g.x);g.y<k&&(k=g.y);g.x>f&&(f=g.x);g.y>d&&(d=g.y)}return{x:m,y:k,w:f-m,h:d-k}}}}())},function(){window.CarrotSearchFoamTree=
|
||||
function(){window.console.error("FoamTree is not supported on this browser.")};window.CarrotSearchFoamTree.Zj=!1});})();
|
||||
|
420
ui/carrotsearch.foamtree.util.hints.js
Normal file
420
ui/carrotsearch.foamtree.util.hints.js
Normal file
|
@ -0,0 +1,420 @@
|
|||
/**
|
||||
* 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
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on
|
||||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Copyright 2002-2019, Carrot Search s.c, All Rights Reserved.
|
||||
*
|
||||
*
|
||||
* A utility that displays contextual interaction hints
|
||||
* and the full interaction guide when requested. The utility
|
||||
* will insert all required HTML into the page.
|
||||
*
|
||||
* Please see demos/hints.html for the usage example.
|
||||
*
|
||||
* @param foamtree the FoamTree instance to be the source
|
||||
* of interaction events for this utility.
|
||||
*/
|
||||
window.CarrotSearchFoamTree.hints = function(foamtree) {
|
||||
var macOs = /Mac/.test(window["navigator"]["userAgent"]);
|
||||
var touch = ('ontouchstart' in window) || (!!window["DocumentTouch"] && document instanceof window["DocumentTouch"]);
|
||||
|
||||
// The list of available interactions, used to build the
|
||||
// complete interaction guide screen.
|
||||
var interactions = [
|
||||
[
|
||||
{
|
||||
desktop: "Left click",
|
||||
touch: "Tap",
|
||||
action: "select group, again to deselect"
|
||||
},
|
||||
{
|
||||
desktop: (macOs ? "[⌘]" : "[Ctrl]") + " + Left click",
|
||||
action: "select multiple groups"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
desktop: "Left double click",
|
||||
touch: "Double tap",
|
||||
action: "expose group"
|
||||
},
|
||||
{
|
||||
desktop: "Right double click<br /><small>or [Shift] + Left double click</small>",
|
||||
touch: "Two-finger double tap",
|
||||
action: "unexpose group"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
desktop: "Left click-and-hold",
|
||||
touch: "Tap-and-hold",
|
||||
action: "open group"
|
||||
},
|
||||
{
|
||||
desktop: "Right click-and-hold<br /><small>or [Shift] + Left click-and-hold</small>",
|
||||
touch: "Two-finger tap-and-hold",
|
||||
action: "close group"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
desktop: "Mouse wheel",
|
||||
touch: "Pinch",
|
||||
action: "zoom in / out"
|
||||
},
|
||||
{
|
||||
desktop: "Mouse drag",
|
||||
touch: "Drag",
|
||||
action: "pan around zoomed visualization"
|
||||
},
|
||||
{
|
||||
desktop: "[Esc] or rapid zoom out",
|
||||
touch: "Three-finger pinch",
|
||||
action: "unexpose & close all groups"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
desktop: "[?]",
|
||||
action: "show / hide this help"
|
||||
}
|
||||
]
|
||||
];
|
||||
|
||||
// A simple persistent state manager
|
||||
var state = (function(key, def) {
|
||||
var hasStorage = (function() {
|
||||
try {
|
||||
var key = "ftap5caavc";
|
||||
window.localStorage.setItem(key, key);
|
||||
window.localStorage.removeItem(key);
|
||||
return true;
|
||||
} catch(e) {
|
||||
return false;
|
||||
}
|
||||
}());
|
||||
|
||||
var json = hasStorage && window.localStorage[key];
|
||||
var object;
|
||||
if (json === undefined) {
|
||||
object = def;
|
||||
save();
|
||||
} else {
|
||||
object = JSON.parse(json);
|
||||
}
|
||||
|
||||
function save() {
|
||||
if (hasStorage) {
|
||||
window.localStorage[key] = JSON.stringify(object);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
get: function(prop) {
|
||||
return object[prop];
|
||||
},
|
||||
|
||||
set: function(prop, value) {
|
||||
object[prop] = value;
|
||||
save();
|
||||
}
|
||||
};
|
||||
})(
|
||||
"foamtree.help.state", {
|
||||
hints: true
|
||||
});
|
||||
|
||||
var showHints = state.get("hints");
|
||||
|
||||
// The hints box
|
||||
var hintsHtml =
|
||||
'<div class="visualization-hint">\
|
||||
<span class="slidable hint"></span>\
|
||||
<a href="#" class="slidable dont-show">don\'t show again</a>\
|
||||
<span class="slidable help">help</span><span class="info">i</span>\
|
||||
</div>';
|
||||
|
||||
// The complete HTML, including interaction guide
|
||||
var html =
|
||||
(showHints ? hintsHtml : "") +
|
||||
'<div class="visualization-help fadeout">\
|
||||
<a href="#close">×</a>' +
|
||||
interactions.reduce(function(html, group) {
|
||||
return html +
|
||||
"<dl>" +
|
||||
group.reduce(function (html, interaction) {
|
||||
if ((touch && !interaction.touch) || (!touch && !interaction.desktop)) {
|
||||
return html;
|
||||
}
|
||||
var trigger = touch ? interaction.touch : interaction.desktop;
|
||||
var event = trigger.replace(/\[/, "<span class='key'>").replace(/\]/, "</span>");
|
||||
return html +
|
||||
"<dt>" + event + "</dt>" +
|
||||
"<dd>" + interaction.action + "</dd>";
|
||||
}, "") +
|
||||
"</dl>";
|
||||
}, "") +
|
||||
'</div>';
|
||||
|
||||
// Insert the HTML into the page
|
||||
var element = document.createElement("div");
|
||||
element.className = "visualization-hints";
|
||||
element.innerHTML = html;
|
||||
|
||||
var foamtreeElement = foamtree.get("element");
|
||||
foamtreeElement.querySelector("div").appendChild(element);
|
||||
|
||||
// For quick element selection
|
||||
var $ = function(selector) {
|
||||
return foamtreeElement.querySelector(selector);
|
||||
};
|
||||
|
||||
// Manages HTML event listeners
|
||||
var listeners = (function() {
|
||||
var listeners = [];
|
||||
|
||||
return {
|
||||
on: function(element, events, listener) {
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
events.split(/\s+/).forEach(function(event) {
|
||||
element.addEventListener(event, listener, false);
|
||||
listeners.push({
|
||||
element: element,
|
||||
event: event,
|
||||
listener: listener
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
dispose: function() {
|
||||
for (var i = listeners.length - 1; i >= 0; i--) {
|
||||
var info = listeners[i];
|
||||
info.element.removeEventListener(info.event, info.listener);
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
// Shows/hides the contextual interaction hints
|
||||
var hint = (function() {
|
||||
var hint = $(".visualization-hint .hint"),
|
||||
hintContainer = $(".visualization-hint");
|
||||
|
||||
return {
|
||||
show: function(text) {
|
||||
hint.innerHTML = text;
|
||||
hintContainer.setAttribute("class", "visualization-hint shown");
|
||||
},
|
||||
|
||||
hide: function() {
|
||||
hint.innerHTML = "";
|
||||
hintContainer.setAttribute("class", "visualization-hint");
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
// The list of interactions that trigger contextual hints.
|
||||
var hints = (function() {
|
||||
var current;
|
||||
|
||||
var conditions = [
|
||||
{
|
||||
for: "expose",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return hasChildren;
|
||||
},
|
||||
text: "To zoom in to sub-groups, double click the parent group"
|
||||
},
|
||||
{
|
||||
for: "unexpose",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return parentState && parentState.exposed;
|
||||
},
|
||||
text: "To zoom out to parent group, double click with right mouse button"
|
||||
},
|
||||
{
|
||||
for: "open",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return hasChildren;
|
||||
},
|
||||
text: "To access subgroups, click and hold"
|
||||
},
|
||||
{
|
||||
for: "close",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return parent && parentState.open;
|
||||
},
|
||||
text: "To access parent group, click and hold right mouse button"
|
||||
},
|
||||
{
|
||||
for: "reset",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return foamtree.get("exposure").length > 0;
|
||||
},
|
||||
text: "To zoom out and close all groups, press Esc"
|
||||
},
|
||||
{
|
||||
for: "mousewheel",
|
||||
complete: false,
|
||||
condition: function(group, groupState, hasChildren, parent, parentState) {
|
||||
return true;
|
||||
},
|
||||
text: "Use mouse wheel to zoom in and out"
|
||||
}
|
||||
];
|
||||
|
||||
function actionPerformed(action) {
|
||||
if (current && current.for === action) {
|
||||
hint.hide();
|
||||
current = undefined;
|
||||
}
|
||||
for (var i = conditions.length - 1; i >= 0; i--) {
|
||||
var condition = conditions[i];
|
||||
if (condition.for === action) {
|
||||
condition.complete = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
hovered: function(event) {
|
||||
var group = event.group;
|
||||
var state = foamtree.get("state", group);
|
||||
var hasChildren = group.groups && group.groups.length > 0;
|
||||
var parent = event.bottommostOpenGroup;
|
||||
var parentState = parent && foamtree.get("state", parent);
|
||||
|
||||
for (var i = 0; i < conditions.length; i++) {
|
||||
var condition = conditions[i];
|
||||
if (!condition.complete && condition.condition(group, state, hasChildren, parent, parentState)) {
|
||||
hint.show(condition.text);
|
||||
current = condition;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
performed: actionPerformed
|
||||
};
|
||||
})();
|
||||
|
||||
// Attach FoamTree listeners that will drive the contextual hints
|
||||
var foamtreeListeners = (function() {
|
||||
if (!state.get("hints")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var timeout;
|
||||
|
||||
function clear() {
|
||||
window.clearTimeout(timeout);
|
||||
}
|
||||
|
||||
foamtree.on("groupHover", function(event) {
|
||||
if (!event.group) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.clearTimeout(timeout);
|
||||
timeout = window.setTimeout(function() {
|
||||
hints.hovered(event);
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
foamtree.on("groupClick", clear);
|
||||
foamtree.on("groupDoubleClick", clear);
|
||||
foamtree.on("groupHold", clear);
|
||||
foamtree.on("groupMouseWheel", clear);
|
||||
|
||||
var createDeltaCounter = function(onIncrease, onDecrease) {
|
||||
var previous = 0;
|
||||
return function(event) {
|
||||
if (!event.indirect) {
|
||||
hints.performed(previous <= event.groups.length ? onIncrease : onDecrease);
|
||||
previous = event.groups.length;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
foamtree.on("groupExposureChanged", createDeltaCounter("expose", "unexpose"));
|
||||
foamtree.on("groupOpenOrCloseChanged", createDeltaCounter("open", "close"));
|
||||
foamtree.on("viewReset", function() {
|
||||
hints.performed("reset");
|
||||
});
|
||||
foamtree.on("groupMouseWheel", function() {
|
||||
hints.performed("mousewheel");
|
||||
})
|
||||
})();
|
||||
|
||||
// Handle clicks on the hints and guide elements
|
||||
var guideElement = $(".visualization-help");
|
||||
|
||||
|
||||
listeners.on($(".visualization-hint"), "mousedown mouseup touchstart", function(event) {
|
||||
if (event.type !== "mousedown") {
|
||||
showHelp();
|
||||
}
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
listeners.on($(".visualization-hint .dont-show"), "mousedown mouseup touchstart click", function(event) {
|
||||
if (event.type !== "mousedown") {
|
||||
$(".visualization-hint").style.display = "none";
|
||||
state.set("hints", false);
|
||||
}
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
listeners.on($(".visualization-help a[href='#close']"), "mousedown mouseup touchstart click", function(event) {
|
||||
if (event.type !== "mousedown") {
|
||||
hideHelp();
|
||||
}
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
listeners.on(document, "keyup", function (event) {
|
||||
switch (event.keyCode) {
|
||||
case 27:
|
||||
hideHelp();
|
||||
break;
|
||||
|
||||
case 191:
|
||||
if (event.shiftKey) {
|
||||
if (guideElement.getAttribute("class").indexOf("fadeout") >= 0) {
|
||||
showHelp();
|
||||
} else {
|
||||
hideHelp();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function showHelp() {
|
||||
guideElement.setAttribute("class", "visualization-help");
|
||||
}
|
||||
|
||||
function hideHelp() {
|
||||
guideElement.setAttribute("class", "visualization-help fadeout");
|
||||
}
|
||||
};
|
162
ui/carrotsearch.foamtree.util.loading.js
Normal file
162
ui/carrotsearch.foamtree.util.loading.js
Normal file
|
@ -0,0 +1,162 @@
|
|||
/**
|
||||
* 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
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on
|
||||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Copyright 2002-2019, Carrot Search s.c, All Rights Reserved.
|
||||
*
|
||||
*
|
||||
* A simple utility for attaching showing and hiding a
|
||||
* data loading and preparation progress indicator. The utility
|
||||
* will create and attach all the necessary HTML to the page.
|
||||
*
|
||||
* Please see demos/loading.html for the usage example.
|
||||
*
|
||||
* @param foamtree the FoamTree instance whose loading and
|
||||
* layout preparation progress should be monitored
|
||||
* @param indicatorHtml the HTML representing the loading message
|
||||
*/
|
||||
window.CarrotSearchFoamTree.loader = function(foamtree, indicatorHtml) {
|
||||
var deferDataObjectChange = false, dataObjectToSet = undefined;
|
||||
var dataObjectToSetProvided = false;
|
||||
|
||||
// Duration of the loading element CSS transition. You may
|
||||
// need to modify this value if you modified the default CSS transitions.
|
||||
var duration = 350;
|
||||
|
||||
// On Webkit CSS transitions seem to continue running during JS processing.
|
||||
// Other browsers need to wait for the transition to complete.
|
||||
var waitForTransition = !/chrome|webkit/.test(navigator.userAgent.toLowerCase());
|
||||
|
||||
// Create the indicator element
|
||||
var indicator = document.createElement("div");
|
||||
indicator.className = "visualization-loading fadeout";
|
||||
indicator.innerHTML = indicatorHtml;
|
||||
foamtree.get("element").appendChild(indicator);
|
||||
|
||||
// Hide the indicator when rollout starts
|
||||
foamtree.on("rolloutStart", hideIndicator);
|
||||
|
||||
return {
|
||||
/**
|
||||
* Call this method before data loading is initiated to
|
||||
* show the loading indicator.
|
||||
*
|
||||
* If FoamTree is set to perform a pullback animation,
|
||||
* the loading indicator will show after pullback is complete.
|
||||
*/
|
||||
started: function() {
|
||||
dataObjectToSetProvided = false;
|
||||
if (isPullbackEnabled()) {
|
||||
// We'll defer setting of the new data object
|
||||
// until pullback completes. FoamTree does that
|
||||
// internally too, but we need to show the indicator
|
||||
// before we set the new data object. If we didn't
|
||||
// do that, the element would actually show after
|
||||
// the diagram computation completes, which wouldn't
|
||||
// make much sense.
|
||||
deferDataObjectChange = true;
|
||||
once("modelChanged", showIndicatorAndSetDataObject);
|
||||
|
||||
// Set an empty data object to trigger a pullback
|
||||
foamtree.set("dataObject", null);
|
||||
} else {
|
||||
deferDataObjectChange = false;
|
||||
showIndicator();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Call this method when data loading completes. This method
|
||||
* will take care of setting the new data object on FoamTree
|
||||
* and hiding the indicator when the diagram is ready to show.
|
||||
*
|
||||
* @param dataObject new data object to set
|
||||
*/
|
||||
complete: function (dataObject) {
|
||||
dataObjectToSetProvided = true;
|
||||
if (deferDataObjectChange) {
|
||||
// Just remember the new data object, we'll set it
|
||||
// after the pullback completes and the loading indicator
|
||||
// is made visible.
|
||||
dataObjectToSet = dataObject;
|
||||
} else {
|
||||
// Defer the update to give the browser a chance
|
||||
// to show the loading indicator.
|
||||
setTimeout(function() {
|
||||
foamtree.set("dataObject", dataObject);
|
||||
hideIndicatorIfDataObjectEmpty(dataObjectToSet);
|
||||
}, 1 + (waitForTransition ? duration + 50 : 1));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function showIndicatorAndSetDataObject() {
|
||||
showIndicator();
|
||||
if (dataObjectToSetProvided && deferDataObjectChange) {
|
||||
// Defer the update to give the browser a chance
|
||||
// to show the loading indicator.
|
||||
setTimeout(function() {
|
||||
foamtree.set("dataObject", dataObjectToSet);
|
||||
hideIndicatorIfDataObjectEmpty(dataObjectToSet);
|
||||
}, 5 + (waitForTransition ? duration + 50 : 1));
|
||||
}
|
||||
deferDataObjectChange = false;
|
||||
}
|
||||
|
||||
function hideIndicatorIfDataObjectEmpty(dataObject) {
|
||||
if (!dataObject || !dataObject.groups || dataObject.groups.length == 0) {
|
||||
hideIndicator();
|
||||
}
|
||||
}
|
||||
|
||||
function hideIndicator() {
|
||||
addClass(indicator, "fadeout");
|
||||
}
|
||||
|
||||
function showIndicator() {
|
||||
// It would be good to defer showing of the indicator a bit
|
||||
// so that it's not shown when the loading process completes
|
||||
// very quickly. However, it's not currently possible to implement
|
||||
// because FoamTree diagram computation is performed in one
|
||||
// go and blocks until the computation completes. In the future,
|
||||
// it would be good to split the computation into chunks between
|
||||
// which FoamTree would yield to the UI thread to redraw the
|
||||
// DOM updates.
|
||||
removeClass(indicator, "fadeout");
|
||||
}
|
||||
|
||||
function addClass(element, clazz) {
|
||||
var classes = element.className.split(/\s+/);
|
||||
if (classes.indexOf(clazz) < 0) {
|
||||
classes.push(clazz);
|
||||
element.className = classes.join(" ");
|
||||
}
|
||||
}
|
||||
|
||||
function removeClass(element, clazz) {
|
||||
element.className = element.className.split(/\s+/).filter(function (c) {
|
||||
return c != clazz;
|
||||
}).join(" ");
|
||||
}
|
||||
|
||||
function isPullbackEnabled() {
|
||||
return foamtree.get("pullbackDuration") > 0 || foamtree.get("fadeDuration") > 0;
|
||||
}
|
||||
|
||||
function once(event, fn) {
|
||||
foamtree.on(event, function() {
|
||||
foamtree.off(event);
|
||||
fn();
|
||||
});
|
||||
}
|
||||
};
|
86
ui/carrotsearch.foamtree.util.relaxationprogress.js
Normal file
86
ui/carrotsearch.foamtree.util.relaxationprogress.js
Normal file
|
@ -0,0 +1,86 @@
|
|||
/**
|
||||
* 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
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on
|
||||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Copyright 2002-2019, Carrot Search s.c, All Rights Reserved.
|
||||
*
|
||||
*
|
||||
* A simple utility for attaching a visualization relaxation
|
||||
* progress monitor to FoamTree. Currently, progress reporting
|
||||
* works only with relaxationVisible option set to true.
|
||||
*
|
||||
* This utility varies the width of the provided element to
|
||||
* reflect the progress of relaxation. Feel free to modify
|
||||
* this utility to show progress in a different fashion.
|
||||
*
|
||||
* Please see demos/relaxation-progress.html for the usage example.
|
||||
*
|
||||
* @param foamtree the FoamTree instance whose relaxation progress
|
||||
* should be monitored
|
||||
* @param element the HTML element whose width will be modified
|
||||
* from 0% to 100% to reflect the relaxation progress
|
||||
*/
|
||||
window.CarrotSearchFoamTree.relaxationProgress = function(foamtree, element) {
|
||||
// Initialize the element
|
||||
var style = element.style;
|
||||
var progressBarShowing = false;
|
||||
var opacityTimeout;
|
||||
|
||||
foamtree.on("modelChanged", start);
|
||||
foamtree.on("relaxationStep", progress);
|
||||
|
||||
function start() {
|
||||
if (!foamtree.get("relaxationVisible")) {
|
||||
style.display = "none";
|
||||
return;
|
||||
}
|
||||
progressBarShowing = true;
|
||||
window.clearTimeout(opacityTimeout);
|
||||
disableTransitions();
|
||||
style.display = "block";
|
||||
style.backgroundColor = "red";
|
||||
style.width = "0%";
|
||||
style.opacity = 1.0;
|
||||
window.setTimeout(enableTransitions, 1);
|
||||
}
|
||||
|
||||
function progress(progress, complete, timeout) {
|
||||
if (!progressBarShowing) {
|
||||
start();
|
||||
}
|
||||
|
||||
if (complete || timeout) {
|
||||
style.backgroundColor = "green";
|
||||
style.width = "100%";
|
||||
opacityTimeout = window.setTimeout(function() {
|
||||
style.opacity = 0;
|
||||
progressBarShowing = false;
|
||||
}, 2000);
|
||||
} else {
|
||||
// Bend the characteristics a bit so that
|
||||
// values close to 1.0 take more space.
|
||||
var width = 1 - Math.pow(1 - progress, 0.5);
|
||||
style.width = (100 * width) + "%";
|
||||
}
|
||||
}
|
||||
|
||||
function enableTransitions() {
|
||||
style.WebkitTransition = "width 0.5s, background-color 1s, opacity 0.5s";
|
||||
style.transition = "background-color 1s, opacity 0.5s";
|
||||
}
|
||||
|
||||
function disableTransitions() {
|
||||
style.WebkitTransition = "";
|
||||
style.transition = "";
|
||||
}
|
||||
};
|
49
ui/carrotsearch.foamtree.util.treemodel.js
Normal file
49
ui/carrotsearch.foamtree.util.treemodel.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* 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
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on
|
||||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Copyright 2002-2019, Carrot Search s.c, All Rights Reserved.
|
||||
*
|
||||
*
|
||||
* A number of utilities for working with a hierarchical model of groups.
|
||||
*/
|
||||
window.CarrotSearchFoamTree.TreeModel = {
|
||||
eachDescendantAndSelf: function (root, callback) {
|
||||
if (!root) { return false; }
|
||||
return visit(root, 0, undefined, 0);
|
||||
|
||||
function visit(group, index, parent, level) {
|
||||
if (group.groups) {
|
||||
var children = group.groups;
|
||||
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if (visit(children[i], i, group, level + 1) === false) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return callback(group, index, parent, level);
|
||||
}
|
||||
},
|
||||
|
||||
findFirstByProperty: function (root, property, value) {
|
||||
var result = undefined;
|
||||
window.CarrotSearchFoamTree.TreeModel.eachDescendantAndSelf(root, function (group) {
|
||||
if (group[property] == value) {
|
||||
result = group;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
};
|
57
ui/index.html
Normal file
57
ui/index.html
Normal file
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- vim: set ts=2 sw=2 et tw=80: -->
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FoamTree Quick Start</title>
|
||||
<meta charset="utf-8" />
|
||||
<style>
|
||||
.document { float: left }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="docs"></div>
|
||||
<div id="visualization" style="width: 800px; height: 600px"></div>
|
||||
<template id="document">
|
||||
<div class="document">
|
||||
<img width="300" src="{{ url }}"/>
|
||||
<h2>{{ title }}</h2>
|
||||
<h3>By {{ author }}</h3>
|
||||
{{ description }}
|
||||
</div>
|
||||
</template>
|
||||
<script src="./carrotsearch.foamtree.js"></script>
|
||||
<script>
|
||||
const solr = "http://localhost:8983/solr/photo";
|
||||
window.addEventListener("load", async function() {
|
||||
let templateHTML = document.querySelector("#document").innerHTML;
|
||||
let docs = document.querySelector("#docs");
|
||||
let docMap = {}
|
||||
|
||||
const doc = (docData) => {
|
||||
docMap[docData.id] = docData;
|
||||
return templateHTML
|
||||
.replace("{{ title }}", docData.t_title)
|
||||
.replace("{{ author }}", docData.t_author)
|
||||
.replace("{{ description }}", docData.t_description)
|
||||
.replace("{{ url }}", docData.img_url);
|
||||
};
|
||||
|
||||
let list = await fetch(solr + "/clustering?q=" + escape(prompt("query")));
|
||||
let body = await list.json();
|
||||
console.log(body);
|
||||
docs.innerHTML = body.response.docs.map(doc).reduce((a, b) => a + b, "");
|
||||
|
||||
let clusters = body.clusters.map(e => { return { label: e.labels[0], weight:
|
||||
e.score, groups: e.docs.map(id => { return { id, label: docMap[id].t_title }; }) }; });
|
||||
var foamtree = new CarrotSearchFoamTree({
|
||||
id: "visualization",
|
||||
dataObject: {
|
||||
groups: clusters
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>`
|
Reference in a new issue