@daoyi/nmtl-ui 2.0.1-beta.9 → 2.0.1-beta.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +45 -45
  2. package/lib/components/Autocomplete-24e9686d.js +423 -0
  3. package/lib/components/Autocomplete.js +19 -1
  4. package/lib/components/Avatar.js +53 -1
  5. package/lib/components/BackTop.js +109 -1
  6. package/lib/components/BarChart.js +762 -1
  7. package/lib/components/Breadcrumbs.js +122 -1
  8. package/lib/components/Button-430d39e6.js +92 -0
  9. package/lib/components/Button.js +6 -1
  10. package/lib/components/Carousel.js +4713 -1
  11. package/lib/components/Checkbox.js +37 -1
  12. package/lib/components/CollapseContent.js +179 -1
  13. package/lib/components/ContactModal-523ae294.js +12030 -0
  14. package/lib/components/ContactModal.js +22 -3
  15. package/lib/components/Drawer-ec47e780.js +156 -0
  16. package/lib/components/Drawer.js +11 -1
  17. package/lib/components/Dropdown.js +134 -1
  18. package/lib/components/Empty-dc5fc2fc.js +45 -0
  19. package/lib/components/Empty.js +5 -1
  20. package/lib/components/ExportButton.js +112 -1
  21. package/lib/components/ExtraTools-0ffc772b.js +3598 -0
  22. package/lib/components/ExtraTools.js +10 -22
  23. package/lib/components/Filter.js +782 -12
  24. package/lib/components/Footer.js +271 -1
  25. package/lib/components/ForwardLink-15222b22.js +106 -0
  26. package/lib/components/ForwardLink.js +8 -0
  27. package/lib/components/Header.js +194 -1
  28. package/lib/components/Image.js +61 -1
  29. package/lib/components/Input.js +82 -1
  30. package/lib/components/InputMethod.js +33937 -10
  31. package/lib/components/KeywordSearch-91167d24.js +144 -0
  32. package/lib/components/KeywordSearch.js +21 -1
  33. package/lib/components/KeywordTicker.js +190 -1
  34. package/lib/components/Keywords.js +317 -1
  35. package/lib/components/Loading.js +28 -1
  36. package/lib/components/MUITheme.js +2624 -1
  37. package/lib/components/Modal-6b8c72d7.js +108 -0
  38. package/lib/components/Modal.js +9 -1
  39. package/lib/components/MoreButton-4d5d94da.js +110 -0
  40. package/lib/components/MoreButton.js +6 -1
  41. package/lib/components/Pagination.js +3637 -0
  42. package/lib/components/Radio.js +78 -1
  43. package/lib/components/SNA.js +1691 -22
  44. package/lib/components/Select-7da870e0.js +115 -0
  45. package/lib/components/Select.js +8 -1
  46. package/lib/components/Spin-9a07b106.js +75 -0
  47. package/lib/components/Spin.js +6 -1
  48. package/lib/components/Table.js +51 -1
  49. package/lib/components/Tooltip-6d53cb6e.js +70 -0
  50. package/lib/components/Tooltip.js +7 -1
  51. package/lib/components/_commonjsHelpers-70de2c37.js +28 -0
  52. package/lib/components/_rollupPluginBabelHelpers-ed61ffc0.js +160 -0
  53. package/lib/components/createSvgIcon-ff0e3b99.js +576 -0
  54. package/lib/components/dataExport-d55d6fa3.js +92 -0
  55. package/lib/components/debounce-127da66c.js +355 -0
  56. package/lib/components/defaultTheme-ed7746fe.js +1661 -0
  57. package/lib/components/globalConfig.js +191 -0
  58. package/lib/components/hoist-non-react-statics.cjs-3f408ad2.js +105 -0
  59. package/lib/components/index-a6f22b92.js +481 -0
  60. package/lib/components/index-f491ebce.js +61 -0
  61. package/lib/components/isObjectLike-e111475d.js +190 -0
  62. package/lib/components/style-inject.es-1f59c1d0.js +28 -1
  63. package/lib/components/toConsumableArray-dbe8af76.js +19 -0
  64. package/lib/components/transform-3a04288b.js +5475 -0
  65. package/lib/components/withTheme-2d778133.js +6 -0
  66. package/lib/configs/config.selector.js +151 -0
  67. package/lib/configs/index.d.ts +1 -0
  68. package/lib/configs/index.js +1 -0
  69. package/lib/index.d.ts +2 -0
  70. package/lib/index.js +2 -0
  71. package/lib/utils/_rollupPluginBabelHelpers-a6e0e6e3.js +139 -0
  72. package/lib/utils/arrayMerge.js +4953 -1
  73. package/lib/utils/chunkArray.js +15 -1
  74. package/lib/utils/convert2HtmlEntities.js +42 -1
  75. package/lib/utils/domToImage.js +802 -1
  76. package/lib/utils/downloadGephi.js +106 -1
  77. package/lib/utils/exportXlsx.js +219 -1
  78. package/lib/utils/historyAppendSearch.js +502 -1
  79. package/lib/utils/isDevelopMode.js +5 -1
  80. package/lib/utils/parseYMD.js +36 -1
  81. package/lib/utils/removeDuplicateItem.js +11 -1
  82. package/lib/utils/sendEmail.js +39 -1
  83. package/lib/utils/snaDefine-6a2bcd94.js +5 -0
  84. package/lib/utils/snaDefine.js +1 -1
  85. package/lib/utils/snaPreProcess.js +84 -1
  86. package/package.json +125 -127
  87. package/lib/components/Empty-54b79907.js +0 -1
  88. package/lib/components/KeywordSearch-5a393f12.js +0 -1
  89. package/lib/components/Select-f2441b83.js +0 -1
  90. package/lib/components/_rollupPluginBabelHelpers-1b8c042f.js +0 -1
  91. package/lib/components/_rollupPluginBabelHelpers-ec4e2a53.js +0 -1
  92. package/lib/components/createSvgIcon-62b64929.js +0 -1
  93. package/lib/components/createSvgIcon-e24792d4.js +0 -1
  94. package/lib/components/createTheme-7fffa109.js +0 -1
  95. package/lib/components/dataExport-9fccd4f0.js +0 -1
  96. package/lib/components/debounce-c993109b.js +0 -1
  97. package/lib/components/hoist-non-react-statics.cjs-d6a9befd.js +0 -1
  98. package/lib/components/index-11391ca3.js +0 -7
  99. package/lib/components/index-b2745105.js +0 -7
  100. package/lib/components/isObjectLike-2f1983fe.js +0 -1
  101. package/lib/components/style-inject.es-c875d022.js +0 -1
  102. package/lib/components/transform-95ae0119.js +0 -1
  103. package/lib/utils/_commonjsHelpers-e2cda605.js +0 -1
  104. package/lib/utils/_rollupPluginBabelHelpers-928a52ce.js +0 -1
@@ -1,22 +1,1691 @@
1
- import*as e from"react";import t,{useMemo as n,useState as r,useRef as o,useEffect as i,useCallback as a,Component as l,forwardRef as c}from"react";import u from"prop-types";import{c as s,b as f,u as h}from"./index-b2745105.js";import{e as d,s as p,d as m,c as y,m as g,t as v,T as w,i as b,a as x,o as _}from"./transform-95ae0119.js";import{_ as E}from"./_rollupPluginBabelHelpers-ec4e2a53.js";import{Menu as k,MenuItem as S,Tooltip as C,IconButton as z}from"@material-ui/core";import T from"./Tooltip.js";import{s as P,f as N,a as O}from"./dataExport-9fccd4f0.js";import{s as A}from"./style-inject.es-1f59c1d0.js";import{i as j,a as M,r as F}from"./createSvgIcon-e24792d4.js";import"@material-ui/styles";import"react-dom";function D(){for(var e,t=d;e=t.sourceEvent;)t=e;return t}function I(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}function B(e){var t=D();return t.changedTouches&&(t=t.changedTouches[0]),I(e,t)}function R(e,t,n){arguments.length<3&&(n=t,t=D().changedTouches);for(var r,o=0,i=t?t.length:0;o<i;++o)if((r=t[o]).identifier===n)return I(e,r);return null}function L(){d.stopImmediatePropagation()}function q(){d.preventDefault(),d.stopImmediatePropagation()}function U(e){var t=e.document.documentElement,n=p(e).on("dragstart.drag",q,!0);"onselectstart"in t?n.on("selectstart.drag",q,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function G(e,t){var n=e.document.documentElement,r=p(e).on("dragstart.drag",null);t&&(r.on("click.drag",q,!0),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function $(e){return function(){return e}}function H(e,t,n,r,o,i,a,l,c,u){this.target=e,this.type=t,this.subject=n,this.identifier=r,this.active=o,this.x=i,this.y=a,this.dx=l,this.dy=c,this._=u}function W(){return!d.ctrlKey&&!d.button}function V(){return this.parentNode}function X(e){return null==e?{x:d.x,y:d.y}:e}function Y(){return navigator.maxTouchPoints||"ontouchstart"in this}H.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var K=Math.SQRT2;function J(e){return((e=Math.exp(e))+1/e)/2}function Q(e,t){var n,r,o=e[0],i=e[1],a=e[2],l=t[0],c=t[1],u=t[2],s=l-o,f=c-i,h=s*s+f*f;if(h<1e-12)r=Math.log(u/a)/K,n=function(e){return[o+e*s,i+e*f,a*Math.exp(K*e*r)]};else{var d=Math.sqrt(h),p=(u*u-a*a+4*h)/(2*a*2*d),m=(u*u-a*a-4*h)/(2*u*2*d),y=Math.log(Math.sqrt(p*p+1)-p),g=Math.log(Math.sqrt(m*m+1)-m);r=(g-y)/K,n=function(e){var t=e*r,n=J(y),l=a/(2*d)*(n*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(K*t+y)-function(e){return((e=Math.exp(e))-1/e)/2}(y));return[o+l*s,i+l*f,a*n/J(K*t+y)]}}return n.duration=1e3*r,n}function Z(e){return function(){return e}}function ee(){return 1e-6*(Math.random()-.5)}function te(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var o,i,a,l,c,u,s,f,h,d=e._root,p={data:r},m=e._x0,y=e._y0,g=e._x1,v=e._y1;if(!d)return e._root=p,e;for(;d.length;)if((u=t>=(i=(m+g)/2))?m=i:g=i,(s=n>=(a=(y+v)/2))?y=a:v=a,o=d,!(d=d[f=s<<1|u]))return o[f]=p,e;if(l=+e._x.call(null,d.data),c=+e._y.call(null,d.data),t===l&&n===c)return p.next=d,o?o[f]=p:e._root=p,e;do{o=o?o[f]=new Array(4):e._root=new Array(4),(u=t>=(i=(m+g)/2))?m=i:g=i,(s=n>=(a=(y+v)/2))?y=a:v=a}while((f=s<<1|u)==(h=(c>=a)<<1|l>=i));return o[h]=d,o[f]=p,e}function ne(e,t,n,r,o){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=o}function re(e){return e[0]}function oe(e){return e[1]}function ie(e,t,n){var r=new ae(null==t?re:t,null==n?oe:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function ae(e,t,n,r,o,i){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=o,this._y1=i,this._root=void 0}function le(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var ce=ie.prototype=ae.prototype;function ue(e){return e.x+e.vx}function se(e){return e.y+e.vy}function fe(e){return e.index}function he(e,t){var n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function de(e){return e.x}function pe(e){return e.y}ce.copy=function(){var e,t,n=new ae(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=le(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var o=0;o<4;++o)(t=r.source[o])&&(t.length?e.push({source:t,target:r.target[o]=new Array(4)}):r.target[o]=le(t));return n},ce.add=function(e){var t=+this._x.call(null,e),n=+this._y.call(null,e);return te(this.cover(t,n),t,n,e)},ce.addAll=function(e){var t,n,r,o,i=e.length,a=new Array(i),l=new Array(i),c=1/0,u=1/0,s=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=r,l[n]=o,r<c&&(c=r),r>s&&(s=r),o<u&&(u=o),o>f&&(f=o));if(c>s||u>f)return this;for(this.cover(c,u).cover(s,f),n=0;n<i;++n)te(this,a[n],l[n],e[n]);return this},ce.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,o=this._x1,i=this._y1;if(isNaN(n))o=(n=Math.floor(e))+1,i=(r=Math.floor(t))+1;else{for(var a,l,c=o-n,u=this._root;n>e||e>=o||r>t||t>=i;)switch(l=(t<r)<<1|e<n,(a=new Array(4))[l]=u,u=a,c*=2,l){case 0:o=n+c,i=r+c;break;case 1:n=o-c,i=r+c;break;case 2:o=n+c,r=i-c;break;case 3:n=o-c,r=i-c}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=o,this._y1=i,this},ce.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},ce.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ce.find=function(e,t,n){var r,o,i,a,l,c,u,s=this._x0,f=this._y0,h=this._x1,d=this._y1,p=[],m=this._root;for(m&&p.push(new ne(m,s,f,h,d)),null==n?n=1/0:(s=e-n,f=t-n,h=e+n,d=t+n,n*=n);c=p.pop();)if(!(!(m=c.node)||(o=c.x0)>h||(i=c.y0)>d||(a=c.x1)<s||(l=c.y1)<f))if(m.length){var y=(o+a)/2,g=(i+l)/2;p.push(new ne(m[3],y,g,a,l),new ne(m[2],o,g,y,l),new ne(m[1],y,i,a,g),new ne(m[0],o,i,y,g)),(u=(t>=g)<<1|e>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=c)}else{var v=e-+this._x.call(null,m.data),w=t-+this._y.call(null,m.data),b=v*v+w*w;if(b<n){var x=Math.sqrt(n=b);s=e-x,f=t-x,h=e+x,d=t+x,r=m.data}}return r},ce.remove=function(e){if(isNaN(i=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,o,i,a,l,c,u,s,f,h,d=this._root,p=this._x0,m=this._y0,y=this._x1,g=this._y1;if(!d)return this;if(d.length)for(;;){if((u=i>=(l=(p+y)/2))?p=l:y=l,(s=a>=(c=(m+g)/2))?m=c:g=c,t=d,!(d=d[f=s<<1|u]))return this;if(!d.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,h=f)}for(;d.data!==e;)if(r=d,!(d=d.next))return this;return(o=d.next)&&delete d.next,r?(o?r.next=o:delete r.next,this):t?(o?t[f]=o:delete t[f],(d=t[0]||t[1]||t[2]||t[3])&&d===(t[3]||t[2]||t[1]||t[0])&&!d.length&&(n?n[h]=d:this._root=d),this):(this._root=o,this)},ce.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},ce.root=function(){return this._root},ce.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},ce.visit=function(e){var t,n,r,o,i,a,l=[],c=this._root;for(c&&l.push(new ne(c,this._x0,this._y0,this._x1,this._y1));t=l.pop();)if(!e(c=t.node,r=t.x0,o=t.y0,i=t.x1,a=t.y1)&&c.length){var u=(r+i)/2,s=(o+a)/2;(n=c[3])&&l.push(new ne(n,u,s,i,a)),(n=c[2])&&l.push(new ne(n,r,s,u,a)),(n=c[1])&&l.push(new ne(n,u,o,i,s)),(n=c[0])&&l.push(new ne(n,r,o,u,s))}return this},ce.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new ne(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var o=t.node;if(o.length){var i,a=t.x0,l=t.y0,c=t.x1,u=t.y1,s=(a+c)/2,f=(l+u)/2;(i=o[0])&&n.push(new ne(i,a,l,s,f)),(i=o[1])&&n.push(new ne(i,s,l,c,f)),(i=o[2])&&n.push(new ne(i,a,f,s,u)),(i=o[3])&&n.push(new ne(i,s,f,c,u))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},ce.x=function(e){return arguments.length?(this._x=e,this):this._x},ce.y=function(e){return arguments.length?(this._y=e,this):this._y};var me=Math.PI*(3-Math.sqrt(5));var ye=function(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");function ge(e){return function(){return e}}function ve(e,t,n){this.target=e,this.type=t,this.transform=n}function we(){d.stopImmediatePropagation()}function be(){d.preventDefault(),d.stopImmediatePropagation()}function xe(){return!d.ctrlKey&&!d.button}function _e(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Ee(){return this.__zoom||b}function ke(){return-d.deltaY*(1===d.deltaMode?.05:d.deltaMode?1:.002)}function Se(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ce(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}var ze={fullscreenEnabled:0,fullscreenElement:1,requestFullscreen:2,exitFullscreen:3,fullscreenchange:4,fullscreenerror:5,fullscreen:6},Te=["webkitFullscreenEnabled","webkitFullscreenElement","webkitRequestFullscreen","webkitExitFullscreen","webkitfullscreenchange","webkitfullscreenerror","-webkit-full-screen"],Pe=["mozFullScreenEnabled","mozFullScreenElement","mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozfullscreenerror","-moz-full-screen"],Ne=["msFullscreenEnabled","msFullscreenElement","msRequestFullscreen","msExitFullscreen","MSFullscreenChange","MSFullscreenError","-ms-fullscreen"],Oe="undefined"!=typeof window&&void 0!==window.document?window.document:{},Ae="fullscreenEnabled"in Oe&&Object.keys(ze)||Te[0]in Oe&&Te||Pe[0]in Oe&&Pe||Ne[0]in Oe&&Ne||[],je={requestFullscreen:function(e){return e[Ae[ze.requestFullscreen]]()},requestFullscreenFunction:function(e){return e[Ae[ze.requestFullscreen]]},get exitFullscreen(){return Oe[Ae[ze.exitFullscreen]].bind(Oe)},get fullscreenPseudoClass(){return":"+Ae[ze.fullscreen]},addEventListener:function(e,t,n){return Oe.addEventListener(Ae[ze[e]],t,n)},removeEventListener:function(e,t,n){return Oe.removeEventListener(Ae[ze[e]],t,n)},get fullscreenEnabled(){return Boolean(Oe[Ae[ze.fullscreenEnabled]])},set fullscreenEnabled(e){},get fullscreenElement(){return Oe[Ae[ze.fullscreenElement]]},set fullscreenElement(e){},get onfullscreenchange(){return Oe[("on"+Ae[ze.fullscreenchange]).toLowerCase()]},set onfullscreenchange(e){return Oe[("on"+Ae[ze.fullscreenchange]).toLowerCase()]=e},get onfullscreenerror(){return Oe[("on"+Ae[ze.fullscreenerror]).toLowerCase()]},set onfullscreenerror(e){return Oe[("on"+Ae[ze.fullscreenerror]).toLowerCase()]=e}};var Me=function(){return Me=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Me.apply(this,arguments)},Fe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};var De,Ie=(De=function(e,t){return De=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},De(e,t)},function(e,t){function n(){this.constructor=e}De(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),Be=function(){return Be=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Be.apply(this,arguments)},Re=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}c((r=r.apply(e,t||[])).next())}))},Le=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}},qe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ue=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then},Ge=function(e,t){return{left:window.outerWidth/2+(window.screenX||window.screenLeft||0)-e/2,top:window.outerHeight/2+(window.screenY||window.screenTop||0)-t/2}},$e=function(e,t){return{top:(window.screen.height-t)/2,left:(window.screen.width-e)/2}};function He(e,t,n){var r=t.height,o=t.width,i=qe(t,["height","width"]),a=Be({height:r,width:o,location:"no",toolbar:"no",status:"no",directories:"no",menubar:"no",scrollbars:"yes",resizable:"no",centerscreen:"yes",chrome:"yes"},i),l=window.open(e,"",Object.keys(a).map((function(e){return e+"="+a[e]})).join(", "));if(n)var c=window.setInterval((function(){try{(null===l||l.closed)&&(window.clearInterval(c),n(l))}catch(e){console.error(e)}}),1e3);return l}var We=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.openShareDialog=function(e){var n=t.props,r=n.onShareWindowClose,o=n.windowHeight,i=void 0===o?400:o,a=n.windowPosition,l=void 0===a?"windowCenter":a,c=n.windowWidth,u=void 0===c?550:c;He(e,Be({height:i,width:u},"windowCenter"===l?Ge(u,i):$e(u,i)),r)},t.handleClick=function(e){return Re(t,void 0,void 0,(function(){var t,n,r,o,i,a,l,c,u,s;return Le(this,(function(f){switch(f.label){case 0:return t=this.props,n=t.beforeOnClick,r=t.disabled,o=t.networkLink,i=t.onClick,a=t.url,l=t.openShareDialogOnClick,c=t.opts,u=o(a,c),r?[2]:(e.preventDefault(),n?(s=n(),Ue(s)?[4,s]:[3,2]):[3,2]);case 1:f.sent(),f.label=2;case 2:return l&&this.openShareDialog(u),i&&i(e,u),[2]}}))}))},t}return Ie(n,e),n.prototype.render=function(){var e=this.props;e.beforeOnClick;var n=e.children,r=e.className,o=e.disabled,i=e.disabledStyle,a=e.forwardedRef;e.networkLink;var l=e.networkName;e.onShareWindowClose,e.openShareDialogOnClick,e.opts;var c=e.resetButtonStyle,u=e.style;e.url,e.windowHeight,e.windowPosition,e.windowWidth;var f=qe(e,["beforeOnClick","children","className","disabled","disabledStyle","forwardedRef","networkLink","networkName","onShareWindowClose","openShareDialogOnClick","opts","resetButtonStyle","style","url","windowHeight","windowPosition","windowWidth"]),h=s("react-share__ShareButton",{"react-share__ShareButton--disabled":!!o,disabled:!!o},r),d=Be(Be(c?{backgroundColor:"transparent",border:"none",padding:0,font:"inherit",color:"inherit",cursor:"pointer"}:{},u),o&&i);return t.createElement("button",Be({},f,{"aria-label":f["aria-label"]||l,className:h,onClick:this.handleClick,ref:a,style:d}),n)},n.defaultProps={disabledStyle:{opacity:.6},openShareDialogOnClick:!0,resetButtonStyle:!0},n}(l),Ve=We,Xe=function(){return Xe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Xe.apply(this,arguments)};var Ye,Ke,Je=(Ye={color:"#3b5998",networkName:"facebook",path:"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"},(Ke=function(e){var n=e.bgStyle,r=e.borderRadius,o=e.iconFillColor,i=e.round,a=e.size,l=Fe(e,["bgStyle","borderRadius","iconFillColor","round","size"]);return t.createElement("svg",Me({viewBox:"0 0 64 64",width:a,height:a},l),i?t.createElement("circle",{cx:"32",cy:"32",r:"31",fill:Ye.color,style:n}):t.createElement("rect",{width:"64",height:"64",rx:r,ry:r,fill:Ye.color,style:n}),t.createElement("path",{d:Ye.path,fill:o}))}).defaultProps={bgStyle:{},borderRadius:0,iconFillColor:"white",size:64},Ke),Qe=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ze=function(e){function t(t){var n=e.call(this,t)||this;return n.name="AssertionError",n}return Qe(t,e),t}(Error);var et=function(e,n,r,o){function i(i,a){var l=r(i),c=Xe({},i);return Object.keys(l).forEach((function(e){delete c[e]})),t.createElement(Ve,Xe({},o,c,{forwardedRef:a,networkName:e,networkLink:n,opts:r(i)}))}return i.displayName="ShareButton-"+e,c(i)}("facebook",(function(e,t){var n,r,o=t.quote,i=t.hashtag;return function(e,t){if(!e)throw new Ze(t)}(e,"facebook.url"),"https://www.facebook.com/sharer/sharer.php"+(n={u:e,quote:o,hashtag:i},r=Object.entries(n).filter((function(e){return null!=e[1]})).map((function(e){var t=e[0],n=e[1];return encodeURIComponent(t)+"="+encodeURIComponent(String(n))})),r.length>0?"?"+r.join("&"):"")}),(function(e){return{quote:e.quote,hashtag:e.hashtag}}),{windowWidth:550,windowHeight:400}),tt=et,nt=f((function(e){
2
- /*!
3
- * screenfull
4
- * v5.2.0 - 2021-11-03
5
- * (c) Sindre Sorhus; MIT License
6
- */
7
- !function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,o=n.length,i={};r<o;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)i[n[0][r]]=e[r];return i}return!1}(),o={change:r.fullscreenchange,error:r.fullscreenerror},i={request:function(e,n){return new Promise(function(o,i){var a=function(){this.off("change",a),o()}.bind(this);this.on("change",a);var l=(e=e||t.documentElement)[r.requestFullscreen](n);l instanceof Promise&&l.then(a).catch(i)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var o=function(){this.off("change",o),e()}.bind(this);this.on("change",o);var i=t[r.exitFullscreen]();i instanceof Promise&&i.then(o).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=o[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=o[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(i,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=i:window.screenfull=i):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()}));nt.isEnabled;var rt=f((function(e,t){window,e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=8)}([function(e,t,n){e.exports=n(2)},function(e,t,n){var r=n(4);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(6)(r,o),r.locals&&(e.exports=r.locals)},function(e,t,n){
8
- /** @license React v16.5.2
9
- * react.production.min.js
10
- *
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- var r=n(3),o="function"==typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,l=o?Symbol.for("react.fragment"):60107,c=o?Symbol.for("react.strict_mode"):60108,u=o?Symbol.for("react.profiler"):60114,s=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,h=o?Symbol.for("react.async_mode"):60111,d=o?Symbol.for("react.forward_ref"):60112,p="function"==typeof Symbol&&Symbol.iterator;function m(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);!function(e,t,n,r,o,i,a,l){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,l],u=0;(e=Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw e.framesToPop=1,e}}(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||y}function w(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||y}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&m("85"),this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=v.prototype;var x=b.prototype=new w;x.constructor=b,r(x,v.prototype),x.isPureReactComponent=!0;var _={current:null,currentDispatcher:null},E=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r=void 0,o={},a=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(a=""+t.key),t)E.call(t,r)&&!k.hasOwnProperty(r)&&(o[r]=t[r]);var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){for(var u=Array(c),s=0;s<c;s++)u[s]=arguments[s+2];o.children=u}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===o[r]&&(o[r]=c[r]);return{$$typeof:i,type:e,key:a,ref:l,props:o,_owner:_.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}var z=/\/+/g,T=[];function P(e,t,n,r){if(T.length){var o=T.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function N(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>T.length&&T.push(e)}function O(e,t,n){return null==e?0:function e(t,n,r,o){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var c=!1;if(null===t)c=!0;else switch(l){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case i:case a:c=!0}}if(c)return r(o,t,""===n?"."+A(t,0):n),1;if(c=0,n=""===n?".":n+":",Array.isArray(t))for(var u=0;u<t.length;u++){var s=n+A(l=t[u],u);c+=e(l,s,r,o)}else if("function"==typeof(s=null===t||"object"!=typeof t?null:"function"==typeof(s=p&&t[p]||t["@@iterator"])?s:null))for(t=s.call(t),u=0;!(l=t.next()).done;)c+=e(l=l.value,s=n+A(l,u++),r,o);else"object"===l&&m("31","[object Object]"==(r=""+t)?"object with keys {"+Object.keys(t).join(", ")+"}":r,"");return c}(e,"",t,n)}function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function j(e,t){e.func.call(e.context,t,e.count++)}function M(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?F(e,r,n,(function(e){return e})):null!=e&&(C(e)&&(e=function(e,t){return{$$typeof:i,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(z,"$&/")+"/")+n)),r.push(e))}function F(e,t,n,r,o){var i="";null!=n&&(i=(""+n).replace(z,"$&/")+"/"),O(e,M,t=P(t,i,r,o)),N(t)}var D={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return F(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;O(e,j,t=P(null,null,t,n)),N(t)},count:function(e){return O(e,(function(){return null}),null)},toArray:function(e){var t=[];return F(e,t,null,(function(e){return e})),t},only:function(e){return C(e)||m("143"),e}},createRef:function(){return{current:null}},Component:v,PureComponent:b,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,Provider:null,Consumer:null,unstable_read:null}).Provider={$$typeof:s,_context:e},e.Consumer=e,e.unstable_read=function(e,t){var n=_.currentDispatcher;return null===n&&m("277"),n.readContext(e,t)}.bind(null,e),e},forwardRef:function(e){return{$$typeof:d,render:e}},Fragment:l,StrictMode:c,unstable_AsyncMode:h,unstable_Profiler:u,createElement:S,cloneElement:function(e,t,n){null==e&&m("267",e);var o=void 0,a=r({},e.props),l=e.key,c=e.ref,u=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,u=_.current),void 0!==t.key&&(l=""+t.key);var s=void 0;for(o in e.type&&e.type.defaultProps&&(s=e.type.defaultProps),t)E.call(t,o)&&!k.hasOwnProperty(o)&&(a[o]=void 0===t[o]&&void 0!==s?s[o]:t[o])}if(1==(o=arguments.length-2))a.children=n;else if(1<o){s=Array(o);for(var f=0;f<o;f++)s[f]=arguments[f+2];a.children=s}return{$$typeof:i,type:e.type,key:l,ref:c,props:a,_owner:u}},createFactory:function(e){var t=S.bind(null,e);return t.type=e,t},isValidElement:C,version:"16.5.2",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:_,assign:r}},I={default:D},B=I&&D||I;e.exports=B.default||B},function(e,t,n){
17
- /*
18
- object-assign
19
- (c) Sindre Sorhus
20
- @license MIT
21
- */
22
- var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c<arguments.length;c++){for(var u in n=Object(arguments[c]))o.call(n,u)&&(l[u]=n[u]);if(r){a=r(n);for(var s=0;s<a.length;s++)i.call(n,a[s])&&(l[a[s]]=n[a[s]])}}return l}},function(e,t,n){(e.exports=n(5)(!1)).push([e.i,".font-size-changer {\n display: inline-block; }\n .font-size-changer .font-size-changer-buttons > div {\n float: left;\n border: 1px solid;\n text-align: center;\n line-height: 40px;\n -webkit-box-sizing: border-box;\n /* Safari/Chrome, other WebKit */\n -moz-box-sizing: border-box;\n /* Firefox, other Gecko */\n box-sizing: border-box;\n -webkit-touch-callout: none;\n /* iOS Safari */\n -webkit-user-select: none;\n /* Safari */\n -khtml-user-select: none;\n /* Konqueror HTML */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\r\n supported by Chrome and Opera */ }\n",""])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(r),i=r.sources.map((function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"}));return[n].concat(i).concat([o]).join("\n")}return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},function(e,t,n){var r={},o=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}((function(){return window&&document&&document.all&&!window.atob})),i=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),a=null,l=0,c=[],u=n(7);function s(e,t){for(var n=0;n<e.length;n++){var o=e[n],i=r[o.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](o.parts[a]);for(;a<o.parts.length;a++)i.parts.push(y(o.parts[a],t))}else{var l=[];for(a=0;a<o.parts.length;a++)l.push(y(o.parts[a],t));r[o.id]={id:o.id,refs:1,parts:l}}}}function f(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],l={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(l):n.push(r[a]={id:a,parts:[l]})}return n}function h(e,t){var n=i(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=c[c.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),c.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=i(e.insertAt.before,n);n.insertBefore(t,o)}}function d(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=c.indexOf(e);t>=0&&c.splice(t,1)}function p(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=n.nc;r&&(e.attrs.nonce=r)}return m(t,e.attrs),h(e,t),t}function m(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function y(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=l++;n=a||(a=p(t)),r=v.bind(null,n,c,!1),o=v.bind(null,n,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",m(t,e.attrs),h(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=u(r)),o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(a),l&&URL.revokeObjectURL(l)}.bind(null,n,t),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=p(t),r=function(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=f(e,t);return s(n,t),function(e){for(var o=[],i=0;i<n.length;i++){var a=n[i];(l=r[a.id]).refs--,o.push(l)}for(e&&s(f(e,t),t),i=0;i<o.length;i++){var l;if(0===(l=o[i]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete r[l.id]}}}};var g=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}();function v(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=g(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")}))}},function(e,t,n){n.r(t);var r=n(0),o=n.n(r),i="up",a="down";function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var h=function(e){function t(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=function(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?f(e):t}(this,u(t).call(this))).onClick=e.onClick.bind(f(f(e))),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,r.Component),function(e,t,n){t&&c(e.prototype,t),n&&c(e,n)}(t,[{key:"onClick",value:function(){(0,this.props.onClick)()}},{key:"getDefaultButtonContent",value:function(){var e=this.props.direction===i?"36px":"20px";return o.a.createElement("span",{style:{fontSize:e}},"A")}},{key:"render",value:function(){var e=this.props.direction,t=this.props,n=t.style,r=void 0===n?{}:n,i=t.customButton,a=void 0===i?this.getDefaultButtonContent():i;return o.a.createElement("div",{className:"font-size-".concat(e),style:r,onClick:this.onClick},a)}}]),t}();function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n(1);var v=function(e){function t(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=function(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?g(e):t}(this,m(t).call(this))).handleChange.bind(g(g(e))),e.setChangeDirection.bind(g(g(e))),e.state={options:{stepSize:2,range:3},changeCount:0,changeDirection:null},e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(t,r.Component),function(e,t,n){t&&p(e.prototype,t),n&&p(e,n)}(t,[{key:"handleChange",value:function(e,t,n){this.props.onChange&&(0,this.props.onChange)(e,t,n)}},{key:"componentDidMount",value:function(){var e=this.props.options;this.setState({options:Object.assign({},this.state.options,e)})}},{key:"getFontSizeDetails",value:function(e){var t=parseFloat(e);return{value:t,unit:e.toString().replace(t.toString(),"")}}},{key:"applyFontSize",value:function(e){var t=this.state.options.stepSize,n=this.state.changeDirection===i?t:-1*t,r=window.getComputedStyle(e,null).getPropertyValue("font-size"),o=this.getFontSizeDetails(r).value,a=o+n;e.style.fontSize=a+"px",a!==o&&this.handleChange(e,a,o)}},{key:"iterateChildren",value:function(e){if(this.applyFontSize(e),e.children&&0!==e.children.length){var t=!0,n=!1,r=void 0;try{for(var o,i=e.children[Symbol.iterator]();!(t=(o=i.next()).done);t=!0){var a=o.value;this.iterateChildren(a)}}catch(e){n=!0,r=e}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}}}},{key:"updateChangeCount",value:function(){var e=this.state,t=e.changeCount,n=e.changeDirection===i?1:-1;this.setState({changeCount:t+n})}},{key:"iterateElementsAndApplyFontSizeChange",value:function(){var e=this.props.targets,t=!0,n=!1,r=void 0;try{for(var o,i=e[Symbol.iterator]();!(t=(o=i.next()).done);t=!0){var a=o.value,l=document.querySelectorAll(a),c=!0,u=!1,s=void 0;try{for(var f,h=l[Symbol.iterator]();!(c=(f=h.next()).done);c=!0){var d=f.value;this.iterateChildren(d)}}catch(e){u=!0,s=e}finally{try{c||null==h.return||h.return()}finally{if(u)throw s}}}}catch(e){n=!0,r=e}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}this.updateChangeCount()}},{key:"validateChangePerRange",value:function(){var e=this.state,t=e.changeCount,n=e.changeDirection,r=this.state.options.range,o=!0;return n===i&&t>=r&&(o=!1),n===a&&t<=-1*r&&(o=!1),o}},{key:"initFontSizeChange",value:function(){this.validateChangePerRange()&&this.iterateElementsAndApplyFontSizeChange()}},{key:"setChangeDirection",value:function(e,t){var n=e?i:a;this.setState({changeDirection:n},t)}},{key:"onFontSizeUp",value:function(){this.setChangeDirection(!0,this.initFontSizeChange)}},{key:"onFontSizeDown",value:function(){this.setChangeDirection(!1,this.initFontSizeChange)}},{key:"getFontSizeChangerStyle",value:function(e){var t=e.style,n=void 0===t?{}:t,r=e.verticalAlignment,o=void 0!==r&&r,i=e.buttonsMargin,a=void 0===i?4:i,l=this.getFontSizeDetails(n.width||"40px"),c=this.getFontSizeDetails(n.height||"40px");return{width:(!1===o?2*l.value+a:l.value)+l.unit,height:(!1===o?c.value:2*c.value+a)+c.unit}}},{key:"getFontSizeChangerButtonStyle",value:function(e,t){var n=t.style,r=void 0===n?{}:n,o=t.verticalAlignment,l=void 0!==o&&o,c=t.reverseOrder,u=void 0!==c&&c,s=t.buttonsMargin,f=void 0===s?4:s,h=this.getFontSizeDetails(r.width||"40px"),d=this.getFontSizeDetails(r.height||"40px"),p={width:h.value+h.unit,height:d.value+d.unit},m=f+(!1===l?h.unit:d.unit);return(e===i&&!1===u||e===a&&!0===u)&&(!1===l?p.marginRight=m:p.marginBottom=m),Object.assign({},r,p)}},{key:"render",value:function(){var e=this.props.customButtons,t=void 0===e?{}:e,n=t.up,r=t.down,l=this.getFontSizeChangerStyle(t),c=this.getFontSizeChangerButtonStyle(i,t),u=this.getFontSizeChangerButtonStyle(a,t);return o.a.createElement("div",{className:"font-size-changer",style:l},o.a.createElement("div",{className:"font-size-changer-buttons",style:l},o.a.createElement(h,{direction:i,customButton:n,onClick:this.onFontSizeUp.bind(this),style:c}),o.a.createElement(h,{direction:a,customButton:r,onClick:this.onFontSizeDown.bind(this),style:u})))}}]),t}();t.default=v}])})),ot=h(rt),it=f((function(e){!function(t){var n=function(){return{escape:function(e){return e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")},parseExtension:e,mimeType:function(t){var n=e(t).toLowerCase();return(r="application/font-woff",o="image/jpeg",{woff:r,woff2:r,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:o,jpeg:o,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"})[n]||"";var r,o},dataAsUrl:function(e,t){return"data:"+t+";base64,"+e},isDataUrl:function(e){return-1!==e.search(/^(data:)/)},canvasToBlob:function(e){return e.toBlob?new Promise((function(t){e.toBlob(t)})):function(e){return new Promise((function(t){for(var n=window.atob(e.toDataURL().split(",")[1]),r=n.length,o=new Uint8Array(r),i=0;i<r;i++)o[i]=n.charCodeAt(i);t(new Blob([o],{type:"image/png"}))}))}(e)},resolveUrl:function(e,t){var n=document.implementation.createHTMLDocument(),r=n.createElement("base");n.head.appendChild(r);var o=n.createElement("a");return n.body.appendChild(o),r.href=t,o.href=e,o.href},getAndEncode:function(e){var t=3e4;l.impl.options.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());return new Promise((function(n){var r,o=new XMLHttpRequest;if(o.onreadystatechange=a,o.ontimeout=c,o.responseType="blob",o.timeout=t,o.open("GET",e,!0),o.send(),l.impl.options.imagePlaceholder){var i=l.impl.options.imagePlaceholder.split(/,/);i&&i[1]&&(r=i[1])}function a(){if(4===o.readyState)if(200===o.status){var t=new FileReader;t.onloadend=function(){var e=t.result.split(/,/)[1];n(e)},t.readAsDataURL(o.response)}else r?n(r):u("cannot fetch resource: "+e+", status: "+o.status)}function c(){r?n(r):u("timeout of "+t+"ms occured while fetching resource: "+e)}function u(e){console.error(e),n("")}}))},uid:function(){var e=0;return function(){return"u"+t()+e++;function t(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}}}(),delay:function(e){return function(t){return new Promise((function(n){setTimeout((function(){n(t)}),e)}))}},asArray:function(e){for(var t=[],n=e.length,r=0;r<n;r++)t.push(e[r]);return t},escapeXhtml:function(e){return e.replace(/#/g,"%23").replace(/\n/g,"%0A")},makeImage:function(e){return new Promise((function(t,n){var r=new Image;r.onload=function(){t(r)},r.onerror=n,r.src=e}))},width:function(e){var n=t(e,"border-left-width"),r=t(e,"border-right-width");return e.scrollWidth+n+r},height:function(e){var n=t(e,"border-top-width"),r=t(e,"border-bottom-width");return e.scrollHeight+n+r}};function e(e){var t=/\.([^\.\/]*?)$/g.exec(e);return t?t[1]:""}function t(e,t){var n=window.getComputedStyle(e).getPropertyValue(t);return parseFloat(n.replace("px",""))}}(),r=function(){var e=/url\(['"]?([^'"]+?)['"]?\)/g;return{inlineAll:function(e,n,i){return a()?Promise.resolve(e):Promise.resolve(e).then(r).then((function(t){var r=Promise.resolve(e);return t.forEach((function(e){r=r.then((function(t){return o(t,e,n,i)}))})),r}));function a(){return!t(e)}},shouldProcess:t,impl:{readUrls:r,inline:o}};function t(t){return-1!==t.search(e)}function r(t){for(var r,o=[];null!==(r=e.exec(t));)o.push(r[1]);return o.filter((function(e){return!n.isDataUrl(e)}))}function o(e,t,r,o){return Promise.resolve(t).then((function(e){return r?n.resolveUrl(e,r):e})).then(o||n.getAndEncode).then((function(e){return n.dataAsUrl(e,n.mimeType(t))})).then((function(r){return e.replace(function(e){return new RegExp("(url\\(['\"]?)("+n.escape(e)+")(['\"]?\\))","g")}(t),"$1"+r+"$3")}))}}(),o=function(){return{resolveAll:function(){return e().then((function(e){return Promise.all(e.map((function(e){return e.resolve()})))})).then((function(e){return e.join("\n")}))},impl:{readAll:e}};function e(){return Promise.resolve(n.asArray(document.styleSheets)).then((function(e){var t=[];return e.forEach((function(e){try{n.asArray(e.cssRules||[]).forEach(t.push.bind(t))}catch(t){console.log("Error while reading CSS rules from "+e.href,t.toString())}})),t})).then((function(e){return e.filter((function(e){return e.type===CSSRule.FONT_FACE_RULE})).filter((function(e){return r.shouldProcess(e.style.getPropertyValue("src"))}))})).then((function(t){return t.map(e)}));function e(e){return{resolve:function(){var t=(e.parentStyleSheet||{}).href;return r.inlineAll(e.cssText,t)},src:function(){return e.style.getPropertyValue("src")}}}}}(),i=function(){return{inlineAll:function t(o){return o instanceof Element?i(o).then((function(){return o instanceof HTMLImageElement?e(o).inline():Promise.all(n.asArray(o.childNodes).map((function(e){return t(e)})))})):Promise.resolve(o);function i(e){var t=e.style.getPropertyValue("background");return t?r.inlineAll(t).then((function(t){e.style.setProperty("background",t,e.style.getPropertyPriority("background"))})).then((function(){return e})):Promise.resolve(e)}},impl:{newImage:e}};function e(e){return{inline:function(t){return n.isDataUrl(e.src)?Promise.resolve():Promise.resolve(e.src).then(t||n.getAndEncode).then((function(t){return n.dataAsUrl(t,n.mimeType(e.src))})).then((function(t){return new Promise((function(n,r){e.onload=n,e.onerror=r,e.src=t}))}))}}}}(),a={imagePlaceholder:void 0,cacheBust:!1},l={toSvg:c,toPng:function(e,t){return u(e,t||{}).then((function(e){return e.toDataURL()}))},toJpeg:function(e,t){return u(e,t=t||{}).then((function(e){return e.toDataURL("image/jpeg",t.quality||1)}))},toBlob:function(e,t){return u(e,t||{}).then(n.canvasToBlob)},toPixelData:function(e,t){return u(e,t||{}).then((function(t){return t.getContext("2d").getImageData(0,0,n.width(e),n.height(e)).data}))},impl:{fontFaces:o,images:i,util:n,inliner:r,options:{}}};function c(e,t){return function(e){void 0===e.imagePlaceholder?l.impl.options.imagePlaceholder=a.imagePlaceholder:l.impl.options.imagePlaceholder=e.imagePlaceholder;void 0===e.cacheBust?l.impl.options.cacheBust=a.cacheBust:l.impl.options.cacheBust=e.cacheBust}(t=t||{}),Promise.resolve(e).then((function(e){return s(e,t.filter,!0)})).then(f).then(h).then((function(e){t.bgcolor&&(e.style.backgroundColor=t.bgcolor);t.width&&(e.style.width=t.width+"px");t.height&&(e.style.height=t.height+"px");t.style&&Object.keys(t.style).forEach((function(n){e.style[n]=t.style[n]}));return e})).then((function(r){return function(e,t,r){return Promise.resolve(e).then((function(e){return e.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(e)})).then(n.escapeXhtml).then((function(e){return'<foreignObject x="0" y="0" width="100%" height="100%">'+e+"</foreignObject>"})).then((function(e){return'<svg xmlns="http://www.w3.org/2000/svg" width="'+t+'" height="'+r+'">'+e+"</svg>"})).then((function(e){return"data:image/svg+xml;charset=utf-8,"+e}))}(r,t.width||n.width(e),t.height||n.height(e))}))}function u(e,t){return c(e,t).then(n.makeImage).then(n.delay(100)).then((function(r){var o=function(e){var r=document.createElement("canvas");if(r.width=t.width||n.width(e),r.height=t.height||n.height(e),t.bgcolor){var o=r.getContext("2d");o.fillStyle=t.bgcolor,o.fillRect(0,0,r.width,r.height)}return r}(e);return o.getContext("2d").drawImage(r,0,0),o}))}function s(e,t,r){return r||!t||t(e)?Promise.resolve(e).then((function(e){return e instanceof HTMLCanvasElement?n.makeImage(e.toDataURL()):e.cloneNode(!1)})).then((function(r){return function(e,t,r){var o=e.childNodes;return 0===o.length?Promise.resolve(t):i(t,n.asArray(o),r).then((function(){return t}));function i(e,t,n){var r=Promise.resolve();return t.forEach((function(t){r=r.then((function(){return s(t,n)})).then((function(t){t&&e.appendChild(t)}))})),r}}(e,r,t)})).then((function(t){return function(e,t){return t instanceof Element?Promise.resolve().then(r).then(o).then(i).then(a).then((function(){return t})):t;function r(){function r(e,t){function r(e,t){n.asArray(e).forEach((function(n){t.setProperty(n,e.getPropertyValue(n),e.getPropertyPriority(n))}))}e.cssText?t.cssText=e.cssText:r(e,t)}r(window.getComputedStyle(e),t.style)}function o(){function r(r){var o=window.getComputedStyle(e,r),i=o.getPropertyValue("content");if(""!==i&&"none"!==i){var a=n.uid();t.className=t.className+" "+a;var l=document.createElement("style");l.appendChild(c(a,r,o)),t.appendChild(l)}function c(e,t,r){var o="."+e+":"+t,i=r.cssText?a(r):l(r);return document.createTextNode(o+"{"+i+"}");function a(e){var t=e.getPropertyValue("content");return e.cssText+" content: "+t+";"}function l(e){return n.asArray(e).map(t).join("; ")+";";function t(t){return t+": "+e.getPropertyValue(t)+(e.getPropertyPriority(t)?" !important":"")}}}}[":before",":after"].forEach((function(e){r(e)}))}function i(){e instanceof HTMLTextAreaElement&&(t.innerHTML=e.value),e instanceof HTMLInputElement&&t.setAttribute("value",e.value)}function a(){t instanceof SVGElement&&(t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t instanceof SVGRectElement&&["width","height"].forEach((function(e){var n=t.getAttribute(e);n&&t.style.setProperty(e,n)})))}}(e,t)})):Promise.resolve()}function f(e){return o.resolveAll().then((function(t){var n=document.createElement("style");return e.appendChild(n),n.appendChild(document.createTextNode(t)),e}))}function h(e){return i.inlineAll(e).then((function(){return e}))}e.exports=l}()}));const at=require("jszip"),lt=require("react-file-download"),ct=e=>{const{nodes:t,links:n}=e,r=(n||[]).map((e=>{let{source:n,target:r}=e;return{source:t[n].name,target:t[r].name,sourceType:t[n].type,targetType:t[r].type}})),{nodeMap:o,nodesTsv:i}=(e=>{let t=1e7;const n={};let r=!1;e.forEach((e=>{let{source:o,target:i,sourceType:a,targetType:l}=e;""!==i&&""!==o&&(Object.keys(n).indexOf(o)<0?(""!==a?(r=!0,n[o]={ID:t,WEIGHT:1,NODE_TYPE:a}):n[o]={ID:t,WEIGHT:1},t+=1):n[o].WEIGHT+=1,Object.keys(n).indexOf(i)<0?(""!==l?(r=!0,n[i]={ID:t,WEIGHT:1,NODE_TYPE:l}):n[i]={ID:t,WEIGHT:1},t+=1):n[i].WEIGHT+=1)}));let o=r?"ID\tLABEL\tWEIGHT\tNODE_TYPE\r\n":"ID\tLABEL\tWEIGHT\r\n";return Object.keys(n).forEach((e=>{const t=n[e].ID,i=n[e].WEIGHT,a=r?n[e].NODE_TYPE:"";o+=r?`${t}\t${e}\t${i}\t${a}\r\n`:`${t}\t${e}\t${i}\r\n`})),{nodeMap:n,nodesTsv:o}})(r),a=((e,t)=>{let n="SOURCE\tTARGET\tWEIGHT\tTYPE\r\n";return e.forEach((e=>{let{source:r,target:o}=e;if(""===o||""===r)return;const i=t[r].ID,a=t[o].ID;n+=`${i}\t${a}\t1\tUndirected\r\n`})),n})(r,o),l=new at;l.file("Node_Table.tsv",i),l.file("Edge_Table.tsv",a),l.generateAsync({type:"blob"}).then((e=>{lt(e,"Gephi_generated_by_NMTL.zip")}))},ut=e=>{let t,{data:n,dataType:r,extType:o="xlsx"}=e;if("sna"===r)t=P(n);else t=n;N(`\ufeff${O(t)}`,`output.${o}`)};ut.chronologyConvert=e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n]=e.split('<span class="tooltip">');return{before:t,after:n}};return(e||[]).map((e=>{let{start_date:{day:n,month:r,year:o},display_date:i,text:{headline:a,text:l}}=e;return{"日期":`${o||""}/${r||""}/${n||""}`,"名稱":(i||"").replace("<span>","").replace("</span>",""),"描述":(a||"").replaceAll(/(<([^>]+)>)/gi,""),"類型":t(l).before,"註(資料集名稱)":t(l).after.replaceAll("\n","").replaceAll("\t","").replace("註","").replace("資料來源:","").replaceAll(/(<([^>]+)>)/gi,"")}}))},ut.mapConvert=e=>(e||[]).map((e=>{let{title:t,author:n,publisher:r,locations:o,posX:i,posY:a}=e;return{"名稱(書名/文章名)":t||"","作者":n||"","出版者":r||"","地點(作品描述區域)":o||"","經度":i||"","緯度":a||""}})),ut.mapLgConvert=e=>(e||[]).map((e=>{let{title:t,locationOfFormation:n,workLocations:r,createPosX:o,createPosY:i,activePosX:a,activePosY:l}=e;return{"組織名稱":t||"","創立地點":n,"創立地點經度":o||"","創立地點緯度":i||"","活動地點":r||"","活動地點經度":a||"","活動地點緯度":l||""}})),ut.worksBarChart=e=>(e||[]).map((e=>{let{date:t,year:n,title:r,keywords:o,authors:i,genreName:a}=e;return{"出版年/發表年":t||n||"","名稱(書名/文章名)":r||"","作者":(i||[]).map((e=>{let{author:t}=e;return t})).join(","),"關鍵字":(o||"").replaceAll("\n",""),"文學分類":a||""}})),ut.worksSlider=e=>(e||[]).map((e=>{let{title:t,author:n,date:r}=e;return{"名稱(書名/文章名)":t||"","作者":n||"","出版日期/發表日期":r||""}}));const st=e=>{let{fill:n="#825c0d"}=e;return t.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:32,height:32,viewBox:"0 0 32 32"},t.createElement("defs",null,t.createElement("clipPath",{id:"a"},t.createElement("path",{"data-name":"Rectangle 125",style:{fill:"#fff"},d:"M0 0h32v32H0z"}))),t.createElement("g",{style:{clipPath:"url(#a)"}},t.createElement("path",{d:"M-960 600h-20v-10h4v2h-2v6h16v-6h-2v-2h4zm-5.06-12.608-1.348-1.454-2.592 2.427V580h-2v8.365l-2.544-2.427-1.362 1.454 4.948 4.671z",transform:"translate(986 -574)",style:{fill:n},"data-name":"Mask Group 42"})))},ft=t=>{let{fill:n="#825c0d"}=t;return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:32,height:32,viewBox:"0 0 32 32"},e.createElement("defs",null,e.createElement("clipPath",{id:"clip-path"},e.createElement("path",{id:"Rectangle_128","data-name":"Rectangle 128",style:{fill:"#fff"},d:"M0 0h32v32H0z"})),e.createElement("style",null,`\n .cls-3{fill:${n}}\n `)),e.createElement("g",{id:"Mask_Group_47","data-name":"Mask Group 47",style:{clipPath:"url(#clip-path)"}},e.createElement("g",{id:"Group_3633","data-name":"Group 3633",transform:"translate(6 6)"},e.createElement("path",{id:"Path_181","data-name":"Path 181",className:"cls-3",d:"M514 371v-2h-2v2h-2v2h2v2h2v-2h2v-2z",transform:"translate(-495 -369)"}),e.createElement("g",{id:"Group_3632","data-name":"Group 3632",transform:"translate(0 2)"},e.createElement("path",{id:"Path_182","data-name":"Path 182",className:"cls-3",d:"M502.276 371h3.447L512 389h-3.164l-1.595-5.129h-6.586L499.036 389H496zm-.926 10.649h5.17l-.746-2.419c-.643-1.953-1.209-3.956-1.776-5.983h-.128a126.193 126.193 0 0 1-1.748 5.983z",transform:"translate(-496 -371)"})))))},ht=t=>{let{fill:n="#825c0d"}=t;return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:32,height:32,viewBox:"0 0 32 32"},e.createElement("defs",null,e.createElement("clipPath",{id:"clip-path"},e.createElement("path",{id:"Rectangle_129","data-name":"Rectangle 129",style:{fill:"#fff"},d:"M0 0h32v32H0z"})),e.createElement("style",null,`\n .cls-3{fill:${n}}\n `)),e.createElement("g",{id:"Mask_Group_48","data-name":"Mask Group 48",style:{clipPath:"url(#clip-path)"}},e.createElement("g",{id:"Group_3635","data-name":"Group 3635",transform:"translate(6 8)"},e.createElement("path",{id:"Path_181","data-name":"Path 181",className:"cls-3",d:"M510 371v2h6v-2z",transform:"translate(-495 -371)"}),e.createElement("g",{id:"Group_3632","data-name":"Group 3632"},e.createElement("path",{id:"Path_182","data-name":"Path 182",className:"cls-3",d:"M502.276 371h3.447L512 389h-3.164l-1.595-5.129h-6.586L499.036 389H496zm-.926 10.649h5.17l-.746-2.419c-.643-1.953-1.209-3.956-1.776-5.983h-.128a126.193 126.193 0 0 1-1.748 5.983z",transform:"translate(-496 -371)"})))))},dt=t=>{let{fill:n="#825c0d"}=t;return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:32,height:32,viewBox:"0 0 32 32"},e.createElement("defs",null,e.createElement("clipPath",{id:"clip-path"},e.createElement("path",{id:"Rectangle_124","data-name":"Rectangle 124",style:{fill:"#fff"},d:"M0 0h32v32H0z"})),e.createElement("style",null,`\n .cls-3{fill:${n}}\n `)),e.createElement("g",{id:"Mask_Group_46","data-name":"Mask Group 46",style:{clipPath:"url(#clip-path)"}},e.createElement("g",{id:"Group_3629","data-name":"Group 3629",transform:"translate(6 6.001)"},e.createElement("path",{id:"Path_176","data-name":"Path 176",className:"cls-3",d:"M-721 1949.376h2.5v-3.755h3.755v-2.5H-721z",transform:"translate(721.003 -1943.118)"}),e.createElement("path",{id:"Path_177","data-name":"Path 177",className:"cls-3",d:"M-721 1960.376h6.258v-2.5h-3.758v-3.755h-2.5z",transform:"translate(721.003 -1940.376)"}),e.createElement("path",{id:"Path_178","data-name":"Path 178",className:"cls-3",d:"M-703.744 1943.118H-710v2.5h3.755v3.755h2.5z",transform:"translate(723.744 -1943.118)"}),e.createElement("path",{id:"Path_179","data-name":"Path 179",className:"cls-3",d:"M-703.744 1960.376v-6.259h-2.5v3.755H-710v2.5z",transform:"translate(723.744 -1940.376)"}))))};A(".extraTools {\n width: 100%;\n display: inline-flex;\n justify-content: flex-end;\n align-items: center;\n gap: 1rem;\n padding: 0px 20px;\n padding-top: 12px; }\n .extraTools__share button {\n display: flex;\n justify-content: center;\n align-items: center; }\n .extraTools__download {\n cursor: pointer; }\n .extraTools__download-icon {\n display: flex;\n justify-content: center;\n align-items: center; }\n .extraTools__fullscreenBtn {\n cursor: pointer;\n padding-top: 0; }\n .extraTools__fullscreenBtn-icon {\n display: flex;\n justify-content: center;\n align-items: center; }\n .extraTools__fontsize {\n display: flex;\n justify-content: center;\n align-items: center; }\n .extraTools .font-size-changer,\n .extraTools .font-size-changer-buttons,\n .extraTools .font-size-up,\n .extraTools .font-size-down,\n .extraTools .tooltip {\n display: flex;\n justify-content: center;\n align-items: center; }\n .extraTools .font-size-up {\n width: 32px !important;\n cursor: pointer;\n margin-right: 16px !important; }\n .extraTools .font-size-down {\n cursor: pointer;\n width: 32px !important; }\n .extraTools .fullscreenExit {\n text-align: right;\n cursor: pointer;\n border: 0; }\n .extraTools #download-menu .MuiMenuItem-root {\n color: #4e3a16;\n width: auto;\n overflow: hidden;\n font-size: 1rem;\n box-sizing: border-box;\n min-height: 48px;\n font-weight: 400;\n line-height: 1;\n padding-top: 1rem;\n white-space: initial;\n border-bottom: 0;\n letter-spacing: 0.00938em;\n padding-bottom: 1rem; }\n");const pt=e=>{let{className:n}=e;return t.createElement("div",{className:s("extraTools__share",n)},t.createElement(tt,{url:document.location.href},t.createElement(Je,{size:32,round:!0})))};pt.defaultProps={className:void 0},pt.propTypes={className:u.string};const mt=e=>{let{className:n,intl:o,exclude:i,iconColor:a,data:l,dataType:c,domToImageId:u,DownloadExcel:f}=e;const[h,d]=r(null),p=[{key:"downloadImage",onClick:()=>(e=>{let{id:t,fileName:n="image",quality:r=.95}=e;const o=document.getElementById(t),i=document.getElementById("yaxis"),a=document.getElementById("barChart__block");i&&i.setAttribute("transform","translate(0, 0 )"),it.toPng(o,{quality:r}).then((e=>{const t=document.createElement("a");t.download=`${n}.png`,t.href=e,t.click(),i&&a&&(i.setAttribute("transform","translate(0, 0 )"),i.setAttribute("transform",`translate(${a.scrollLeft}, 0)`))})).catch((e=>{console.error("oops, something went wrong!",e)}))})({id:u}),label:o?"knowledge.writersAndWorksSNA.download.img":"下載圖片"},{key:"downloadGephi",onClick:()=>ct(l),label:o?"knowledge.writersAndWorksSNA.download.gephi":"下載Gephi"},{key:"downloadTsv",onClick:()=>ut({data:l,dataType:c,extType:"tsv"}),label:o?"knowledge.writersAndWorksSNA.download.tsv":"下載Tsv"},{key:"downloadXls",label:o?"knowledge.writersAndWorksSNA.download.xls":"下載Excel"}];return t.createElement("div",{className:s("extraTools__download",n)},t.createElement(T,{title:o?o.formatMessage({id:"knowledge.writersAndWorksSNA.download"}):"下載",placement:"bottom"},t.createElement("div",{className:"extraTools__download-icon",onClick:e=>d(e.currentTarget)},t.createElement(st,{fill:a}))),t.createElement(k,{id:"download-menu",anchorEl:h,keepMounted:!0,open:Boolean(h),onClose:()=>d(null)},p.map((e=>{let{key:n,onClick:r,label:a}=e;return c=n,!((i||[]).filter((e=>e===c)).length>0)&&((e,n)=>"downloadXls"===e&&f?t.createElement(f,{key:e,element:n,data:l}):n)(n,t.createElement(S,{key:n,onClick:r},o?o.formatMessage({id:a}):a));var c}))))};mt.defaultProps={className:void 0,intl:void 0,exclude:void 0,data:null,dataType:void 0,iconColor:"#825c0d",domToImageId:"network-graph",DownloadExcel:void 0},mt.propTypes={className:u.string,intl:u.objectOf(u.any),exclude:u.arrayOf(u.string),data:u.oneOfType([u.array,u.object]),dataType:u.string,iconColor:u.string,domToImageId:u.string,DownloadExcel:u.oneOfType([u.node,u.func])};const yt=e=>{let{className:n,intl:r,iconColor:o,fullscreenDomId:i}=e;return t.createElement("div",{className:s("extraTools__fullscreenBtn",n)},t.createElement(T,{title:r?r.formatMessage({id:"knowledge.writersAndWorksSNA.fullscreen"}):"全螢幕模式",placement:"bottom"},t.createElement("div",{className:"extraTools__fullscreenBtn-icon",onClick:()=>{nt.isEnabled&&i&&nt.request(document.getElementById(i))}},t.createElement(dt,{fill:o}))))};yt.defaultProps={className:void 0,intl:void 0,iconColor:"#825c0d",fullscreenDomId:void 0},yt.propTypes={className:u.string,intl:u.objectOf(u.any),iconColor:u.string,fullscreenDomId:u.string};const gt=e=>{let{className:n,intl:r,iconColor:o,FontSizeTargets:i,FontSizeOptions:a}=e;return t.createElement("div",{className:s("extraTools__fontsize",n)},t.createElement(ot,{targets:i,options:a,customButtons:{up:t.createElement(T,{title:r?r.formatMessage({id:"knowledge.writersAndWorksSNA.big"}):"字級放大",placement:"bottom"},t.createElement(ft,{fill:o})),down:t.createElement(T,{title:r?r.formatMessage({id:"knowledge.writersAndWorksSNA.small"}):"字級縮小",placement:"bottom"},t.createElement(ht,{fill:o})),style:{border:"none"},buttonsMargin:10}}))};gt.defaultProps={className:void 0,intl:void 0,iconColor:"#825c0d",FontSizeTargets:["#network-graph svg g text"],FontSizeOptions:{stepSize:2,range:1}},gt.propTypes={className:u.string,intl:u.objectOf(u.any),iconColor:u.string,FontSizeTargets:u.arrayOf(u.string),FontSizeOptions:u.objectOf(u.any)};const vt=e=>{let{className:n,intl:r,exclude:o,data:i,dataType:a,iconColor:l,domToImageId:c,FontSizeTargets:u,FontSizeOptions:f,DownloadExcel:h,fullscreenDomId:d}=e;const p={intl:r,exclude:o,data:i,dataType:a,iconColor:l,domToImageId:c,FontSizeTargets:u,FontSizeOptions:f,DownloadExcel:h,fullscreenDomId:d},m=[{keys:["share"],Component:pt},{keys:["downloadImage","downloadGephi","downloadTsv","downloadXls"],Component:mt},{keys:["fullscreen"],Component:yt},{keys:["fontSizeChanger"],Component:gt}];return t.createElement("div",{className:s("extraTools",n)},m.map((e=>{let{keys:n,Component:r}=e;return!(e=>(o||[]).filter((t=>e.some((e=>e===t)))).length===e.length)(n)&&t.createElement(r,E({key:n[0]},p))})))};vt.ShareButton=pt,vt.DownloadMenu=mt,vt.FullscreenBtn=yt,vt.FontSizeChanger=gt,vt.defaultProps={className:void 0,intl:void 0,exclude:["downloadGephi"],data:null,dataType:void 0,iconColor:"#825c0d",domToImageId:"network-graph",FontSizeTargets:["#network-graph svg g text"],FontSizeOptions:{stepSize:2,range:1},DownloadExcel:void 0,fullscreenDomId:void 0},vt.propTypes={className:u.string,intl:u.objectOf(u.any),exclude:u.arrayOf(u.string),data:u.oneOfType([u.array,u.object]),dataType:u.string,iconColor:u.string,domToImageId:u.string,FontSizeTargets:u.arrayOf(u.string),FontSizeOptions:u.objectOf(u.any),DownloadExcel:u.oneOfType([u.node,u.func]),fullscreenDomId:u.string};var wt=f((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=j(t),o=(0,M(F).default)(r.createElement("path",{d:"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"}),"Replay");n.default=o})),bt=h(wt);const xt=()=>t.createElement("div",{id:"resetBtn"},t.createElement(C,{title:"回到原來位置與大小"},t.createElement(z,null,t.createElement(bt,null))));xt.propTypes={};A(".SNA {\n overflow: hidden;\n object-fit: contain;\n position: relative;\n font-size: 0.75rem;\n width: 100%; }\n .SNA--smallSize .node {\n padding-top: 8px;\n font-size: 0.75rem;\n width: 3rem;\n height: 3rem;\n overflow: hidden;\n white-space: pre-wrap;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; }\n .SNA .node {\n background-color: #4a4e69;\n border-radius: 50%;\n color: #fff;\n font-size: 20px;\n font-weight: 500;\n height: 54px;\n width: 54px;\n padding-top: 15px;\n position: absolute;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: grab; }\n .SNA .links line {\n stroke: #c7bfb4;\n stroke-width: 2; }\n .SNA .mainNode {\n fill: #4e3a16; }\n .SNA .person {\n fill: #867b3a; }\n .SNA .publication {\n fill: #825c0d; }\n .SNA .article {\n fill: #afafaf; }\n .SNA .keyword {\n fill: #fcfae8; }\n .SNA .org {\n fill: #000000; }\n .SNA #resetBtn {\n float: right; }\n .SNA #network-graph svg {\n width: 100%;\n height: 100%; }\n\n@media only screen and (max-width: 484px) {\n .SNA {\n margin-left: 0px; }\n .SNA .node {\n background-color: #4a4e69;\n border-radius: 50%;\n color: #fff;\n font-size: 1px;\n font-weight: 500;\n height: 44px;\n width: 44px;\n padding-top: 12px;\n position: absolute;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: grab; } }\n\n@media only screen and (max-width: 484px) {\n .SNA {\n margin-left: 0px; } }\n");var _t=function(e){var l,c=e.className,u=e.intl,f=e.exclude,h=e.distance,E=e.SNAData,k=e.handleClickNodeGoto,S=e.DownloadExcel,C=e.width,z=e.height,T=e.fontColor,P=e.backgroundColor,N=e.iconColor;if(!E||0===E.nodes.length)return t.createElement("div",{className:"noData"},u?u.formatMessage({id:"common.noData"}):"暫無資料");var O=function(){var e=r(!1),t=e[0],l=e[1],c=o(null);i((function(){var e=function(){l(je.fullscreenElement===c.current)};return je.addEventListener("fullscreenchange",e),function(){return je.removeEventListener("fullscreenchange",e)}}),[]);var u=a((function(){return je.fullscreenElement?je.exitFullscreen().then((function(){return je.requestFullscreen(c.current)})):c.current?je.requestFullscreen(c.current):void 0}),[]),s=a((function(){return je.fullscreenElement===c.current?je.exitFullscreen():Promise.resolve()}),[]);return n((function(){return{active:t,enter:u,exit:s,node:c}}),[t,u,s])}(),A=n((function(){return O.active?screen.width:screen.width>1050?C:screen.width-80}),[O.active,screen.width]),j=n((function(){return O.active?screen.height:screen.width>1050?z:screen.height-300}),[O.active,screen.width]),M=function(e){return function(){var e,t,n,r,o=W,i=V,a=X,l=Y,c={},u=m("start","drag","end"),s=0,f=0;function h(e){e.on("mousedown.drag",g).filter(l).on("touchstart.drag",b).on("touchmove.drag",x).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(){if(!r&&o.apply(this,arguments)){var a=E("mouse",i.apply(this,arguments),B,this,arguments);a&&(p(d.view).on("mousemove.drag",v,!0).on("mouseup.drag",w,!0),U(d.view),L(),n=!1,e=d.clientX,t=d.clientY,a("start"))}}function v(){if(q(),!n){var r=d.clientX-e,o=d.clientY-t;n=r*r+o*o>f}c.mouse("drag")}function w(){p(d.view).on("mousemove.drag mouseup.drag",null),G(d.view,n),q(),c.mouse("end")}function b(){if(o.apply(this,arguments)){var e,t,n=d.changedTouches,r=i.apply(this,arguments),a=n.length;for(e=0;e<a;++e)(t=E(n[e].identifier,r,R,this,arguments))&&(L(),t("start"))}}function x(){var e,t,n=d.changedTouches,r=n.length;for(e=0;e<r;++e)(t=c[n[e].identifier])&&(q(),t("drag"))}function _(){var e,t,n=d.changedTouches,o=n.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),e=0;e<o;++e)(t=c[n[e].identifier])&&(L(),t("end"))}function E(e,t,n,r,o){var i,l,f,p=n(t,e),m=u.copy();if(y(new H(h,"beforestart",i,e,s,p[0],p[1],0,0,m),(function(){return null!=(d.subject=i=a.apply(r,o))&&(l=i.x-p[0]||0,f=i.y-p[1]||0,!0)})))return function a(u){var d,g=p;switch(u){case"start":c[e]=a,d=s++;break;case"end":delete c[e],--s;case"drag":p=n(t,e),d=s}y(new H(h,u,i,e,d,p[0]+l,p[1]+f,p[0]-g[0],p[1]-g[1],m),m.apply,m,[u,r,o])}}return h.filter=function(e){return arguments.length?(o="function"==typeof e?e:$(!!e),h):o},h.container=function(e){return arguments.length?(i="function"==typeof e?e:$(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:$(e),h):a},h.touchable=function(e){return arguments.length?(l="function"==typeof e?e:$(!!e),h):l},h.on=function(){var e=u.on.apply(u,arguments);return e===u?h:e},h.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,h):Math.sqrt(f)},h}().on("start",(function(t){d.active||e.alphaTarget(.3).restart(),t.fx=t.x,t.fy=t.y})).on("drag",(function(e){e.fx=d.x>A-10||d.x<20?e.x:d.x,e.fy=d.y>j-10||d.y<20?e.y:d.y}))},F=function(e,t,n){var r=function(e,t,n){var r=.5*(t.x+e.x),o=.5*(t.y+e.y),i=t.x-e.x,a=t.y-e.y,l=Math.pow(Math.pow(i,2)+Math.pow(a,2),.5);return{qx:r-a*n/l,qy:o+i*n/l}}(e,t,n),o=r.qx,i=r.qy;return isNaN(o)?"M".concat(e.x,", ").concat(e.y," Q0 0 ").concat(t.x," ").concat(t.y):"M".concat(e.x,", ").concat(e.y," Q").concat(o," ").concat(i," ").concat(t.x," ").concat(t.y)},D=function(e){var t=8.5,n="-0 -".concat(t," ").concat(17," ").concat(17),r="M 0,-".concat(6.800000000000001," L ").concat(13.600000000000001," ,0 L 0,").concat(6.800000000000001),o=_(ye),i=e.links.map((function(e){return Object.create(e)})),a=e.nodes.map((function(e){return Object.create(e)})),c=function(e){var t,n=1,r=.001,o=1-Math.pow(r,1/300),i=0,a=.6,l=g(),c=v(s),u=m("tick","end");function s(){f(),u.call("tick",t),n<r&&(c.stop(),u.call("end",t))}function f(r){var c,u,s=e.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(n+=(i-n)*o,l.each((function(e){e(n)})),c=0;c<s;++c)null==(u=e[c]).fx?u.x+=u.vx*=a:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=a:(u.y=u.fy,u.vy=0);return t}function h(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var o=10*Math.sqrt(n),i=n*me;t.x=o*Math.cos(i),t.y=o*Math.sin(i)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function d(t){return t.initialize&&t.initialize(e),t}return null==e&&(e=[]),h(),t={tick:f,restart:function(){return c.restart(s),t},stop:function(){return c.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),l.each(d),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(o=+e,t):+o},alphaTarget:function(e){return arguments.length?(i=+e,t):i},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},force:function(e,n){return arguments.length>1?(null==n?l.remove(e):l.set(e,d(n)),t):l.get(e)},find:function(t,n,r){var o,i,a,l,c,u=0,s=e.length;for(null==r?r=1/0:r*=r,u=0;u<s;++u)(a=(o=t-(l=e[u]).x)*o+(i=n-l.y)*i)<r&&(c=l,r=a);return c},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}(a).force("link",function(e){var t,n,r,o,i,a=fe,l=function(e){return 1/Math.min(o[e.source.index],o[e.target.index])},c=Z(30),u=1;function s(r){for(var o=0,a=e.length;o<u;++o)for(var l,c,s,f,h,d,p,m=0;m<a;++m)c=(l=e[m]).source,f=(s=l.target).x+s.vx-c.x-c.vx||ee(),h=s.y+s.vy-c.y-c.vy||ee(),f*=d=((d=Math.sqrt(f*f+h*h))-n[m])/d*r*t[m],h*=d,s.vx-=f*(p=i[m]),s.vy-=h*p,c.vx+=f*(p=1-p),c.vy+=h*p}function f(){if(r){var l,c,u=r.length,s=e.length,f=g(r,a);for(l=0,o=new Array(u);l<s;++l)(c=e[l]).index=l,"object"!=typeof c.source&&(c.source=he(f,c.source)),"object"!=typeof c.target&&(c.target=he(f,c.target)),o[c.source.index]=(o[c.source.index]||0)+1,o[c.target.index]=(o[c.target.index]||0)+1;for(l=0,i=new Array(s);l<s;++l)c=e[l],i[l]=o[c.source.index]/(o[c.source.index]+o[c.target.index]);t=new Array(s),h(),n=new Array(s),d()}}function h(){if(r)for(var n=0,o=e.length;n<o;++n)t[n]=+l(e[n],n,e)}function d(){if(r)for(var t=0,o=e.length;t<o;++t)n[t]=+c(e[t],t,e)}return null==e&&(e=[]),s.initialize=function(e){r=e,f()},s.links=function(t){return arguments.length?(e=t,f(),s):e},s.id=function(e){return arguments.length?(a=e,s):a},s.iterations=function(e){return arguments.length?(u=+e,s):u},s.strength=function(e){return arguments.length?(l="function"==typeof e?e:Z(+e),h(),s):l},s.distance=function(e){return arguments.length?(c="function"==typeof e?e:Z(+e),d(),s):c},s}(i).id((function(e){return e.index})).distance(50)).force("charge",function(){var e,t,n,r,o=Z(-30),i=1,a=1/0,l=.81;function c(r){var o,i=e.length,a=ie(e,de,pe).visitAfter(s);for(n=r,o=0;o<i;++o)t=e[o],a.visit(f)}function u(){if(e){var t,n,i=e.length;for(r=new Array(i),t=0;t<i;++t)n=e[t],r[n.index]=+o(n,t,e)}}function s(e){var t,n,o,i,a,l=0,c=0;if(e.length){for(o=i=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(l+=t.value,c+=n,o+=n*t.x,i+=n*t.y);e.x=o/c,e.y=i/c}else{(t=e).x=t.data.x,t.y=t.data.y;do{l+=r[t.data.index]}while(t=t.next)}e.value=l}function f(e,o,c,u){if(!e.value)return!0;var s=e.x-t.x,f=e.y-t.y,h=u-o,d=s*s+f*f;if(h*h/l<d)return d<a&&(0===s&&(d+=(s=ee())*s),0===f&&(d+=(f=ee())*f),d<i&&(d=Math.sqrt(i*d)),t.vx+=s*e.value*n/d,t.vy+=f*e.value*n/d),!0;if(!(e.length||d>=a)){(e.data!==t||e.next)&&(0===s&&(d+=(s=ee())*s),0===f&&(d+=(f=ee())*f),d<i&&(d=Math.sqrt(i*d)));do{e.data!==t&&(h=r[e.data.index]*n/d,t.vx+=s*h,t.vy+=f*h)}while(e=e.next)}}return c.initialize=function(t){e=t,u()},c.strength=function(e){return arguments.length?(o="function"==typeof e?e:Z(+e),u(),c):o},c.distanceMin=function(e){return arguments.length?(i=e*e,c):Math.sqrt(i)},c.distanceMax=function(e){return arguments.length?(a=e*e,c):Math.sqrt(a)},c.theta=function(e){return arguments.length?(l=e*e,c):Math.sqrt(l)},c}().strength(-200).distanceMax(1e3)).force("center",function(e,t){var n;function r(){var r,o,i=n.length,a=0,l=0;for(r=0;r<i;++r)a+=(o=n[r]).x,l+=o.y;for(a=a/i-e,l=l/i-t,r=0;r<i;++r)(o=n[r]).x-=a,o.y-=l}return null==e&&(e=0),null==t&&(t=0),r.initialize=function(e){n=e},r.x=function(t){return arguments.length?(e=+t,r):e},r.y=function(e){return arguments.length?(t=+e,r):t},r}(A/2,j/2)).force("collide",function(e){var t,n,r=1,o=1;function i(){for(var e,i,l,c,u,s,f,h=t.length,d=0;d<o;++d)for(i=ie(t,ue,se).visitAfter(a),e=0;e<h;++e)l=t[e],s=n[l.index],f=s*s,c=l.x+l.vx,u=l.y+l.vy,i.visit(p);function p(e,t,n,o,i){var a=e.data,h=e.r,d=s+h;if(!a)return t>c+d||o<c-d||n>u+d||i<u-d;if(a.index>l.index){var p=c-a.x-a.vx,m=u-a.y-a.vy,y=p*p+m*m;y<d*d&&(0===p&&(y+=(p=ee())*p),0===m&&(y+=(m=ee())*m),y=(d-(y=Math.sqrt(y)))/y*r,l.vx+=(p*=y)*(d=(h*=h)/(f+h)),l.vy+=(m*=y)*d,a.vx-=p*(d=1-d),a.vy-=m*d)}}}function a(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var r,o,i=t.length;for(n=new Array(i),r=0;r<i;++r)o=t[r],n[o.index]=+e(o,r,t)}}return"function"!=typeof e&&(e=Z(null==e?1:+e)),i.initialize=function(e){t=e,l()},i.iterations=function(e){return arguments.length?(o=+e,i):o},i.strength=function(e){return arguments.length?(r=+e,i):r},i.radius=function(t){return arguments.length?(e="function"==typeof t?t:Z(+t),l(),i):e},i}().radius((function(){return 13.5})).strength(1).iterations(10)).force("x",function(e){var t,n,r,o=Z(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vx+=(r[i]-o.x)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!=typeof e&&(e=Z(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"==typeof e?e:Z(+e),a(),i):o},i.x=function(t){return arguments.length?(e="function"==typeof t?t:Z(+t),a(),i):e},i}(A/2)).force("y",function(e){var t,n,r,o=Z(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vy+=(r[i]-o.y)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!=typeof e&&(e=Z(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"==typeof e?e:Z(+e),a(),i):o},i.y=function(t){return arguments.length?(e="function"==typeof t?t:Z(+t),a(),i):e},i}(j/2)).force("radial",function(e,t,n){var r,o,i,a=Z(.1);function l(e){for(var a=0,l=r.length;a<l;++a){var c=r[a],u=c.x-t||1e-6,s=c.y-n||1e-6,f=Math.sqrt(u*u+s*s),h=(i[a]-f)*o[a]*e/f;c.vx+=u*h,c.vy+=s*h}}function c(){if(r){var t,n=r.length;for(o=new Array(n),i=new Array(n),t=0;t<n;++t)i[t]=+e(r[t],t,r),o[t]=isNaN(i[t])?0:+a(r[t],t,r)}}return"function"!=typeof e&&(e=Z(+e)),null==t&&(t=0),null==n&&(n=0),l.initialize=function(e){r=e,c()},l.strength=function(e){return arguments.length?(a="function"==typeof e?e:Z(+e),c(),l):a},l.radius=function(t){return arguments.length?(e="function"==typeof t?t:Z(+t),c(),l):e},l.x=function(e){return arguments.length?(t=+e,l):t},l.y=function(e){return arguments.length?(n=+e,l):n},l}(100,A/1.5,j/1.5)),s=p("#sna-graph").append("svg").attr("viewBox",[0,0,A,j]).style("background-color",P);s.append("defs").append("marker").attr("id","arrowhead").attr("viewBox",n).attr("refX",23.8).attr("refY",0).attr("orient","auto").attr("markerWidth",15.3).attr("markerHeight",15.3).attr("xoverflow","visible").append("svg:path").attr("d",r).attr("fill","#999").style("stroke","none"),l=s.append("g");var f=function(){var e,t,n=xe,r=_e,o=Ce,i=ke,a=Se,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,s=Q,f=m("start","zoom","end"),h=500,g=0;function v(e){e.property("__zoom",Ee).on("wheel.zoom",T).on("mousedown.zoom",P).on("dblclick.zoom",N).filter(a).on("touchstart.zoom",O).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",j).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new w(t,e.x,e.y)}function E(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new w(e.k,r,o)}function k(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function S(e,t,n){e.on("start.zoom",(function(){C(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){C(this,arguments).end()})).tween("zoom",(function(){var e=this,o=arguments,i=C(e,o),a=r.apply(e,o),l=null==n?k(a):"function"==typeof n?n.apply(e,o):n,c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,o):t,h=s(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=h(e),n=c/t[2];e=new w(n,l[0]-t[0]*n,l[1]-t[1]*n)}i.zoom(null,e)}}))}function C(e,t,n){return!n&&e.__zooming||new z(e,t)}function z(e,t){this.that=e,this.args=t,this.active=0,this.extent=r.apply(e,t),this.taps=0}function T(){if(n.apply(this,arguments)){var e=C(this,arguments),t=this.__zoom,r=Math.max(l[0],Math.min(l[1],t.k*Math.pow(2,i.apply(this,arguments)))),a=B(this);if(e.wheel)e.mouse[0][0]===a[0]&&e.mouse[0][1]===a[1]||(e.mouse[1]=t.invert(e.mouse[0]=a)),clearTimeout(e.wheel);else{if(t.k===r)return;e.mouse=[a,t.invert(a)],x(this),e.start()}be(),e.wheel=setTimeout(u,150),e.zoom("mouse",o(E(_(t,r),e.mouse[0],e.mouse[1]),e.extent,c))}function u(){e.wheel=null,e.end()}}function P(){if(!t&&n.apply(this,arguments)){var e=C(this,arguments,!0),r=p(d.view).on("mousemove.zoom",u,!0).on("mouseup.zoom",s,!0),i=B(this),a=d.clientX,l=d.clientY;U(d.view),we(),e.mouse=[i,this.__zoom.invert(i)],x(this),e.start()}function u(){if(be(),!e.moved){var t=d.clientX-a,n=d.clientY-l;e.moved=t*t+n*n>g}e.zoom("mouse",o(E(e.that.__zoom,e.mouse[0]=B(e.that),e.mouse[1]),e.extent,c))}function s(){r.on("mousemove.zoom mouseup.zoom",null),G(d.view,e.moved),be(),e.end()}}function N(){if(n.apply(this,arguments)){var e=this.__zoom,t=B(this),i=e.invert(t),a=e.k*(d.shiftKey?.5:2),l=o(E(_(e,a),t,i),r.apply(this,arguments),c);be(),u>0?p(this).transition().duration(u).call(S,l,t):p(this).call(v.transform,l)}}function O(){if(n.apply(this,arguments)){var t,r,o,i,a=d.touches,l=a.length,c=C(this,arguments,d.changedTouches.length===l);for(we(),r=0;r<l;++r)i=[i=R(this,a,(o=a[r]).identifier),this.__zoom.invert(i),o.identifier],c.touch0?c.touch1||c.touch0[2]===i[2]||(c.touch1=i,c.taps=0):(c.touch0=i,t=!0,c.taps=1+!!e);e&&(e=clearTimeout(e)),t&&(c.taps<2&&(e=setTimeout((function(){e=null}),h)),x(this),c.start())}}function A(){if(this.__zooming){var t,n,r,i,a=C(this,arguments),l=d.changedTouches,u=l.length;for(be(),e&&(e=clearTimeout(e)),a.taps=0,t=0;t<u;++t)r=R(this,l,(n=l[t]).identifier),a.touch0&&a.touch0[2]===n.identifier?a.touch0[0]=r:a.touch1&&a.touch1[2]===n.identifier&&(a.touch1[0]=r);if(n=a.that.__zoom,a.touch1){var s=a.touch0[0],f=a.touch0[1],h=a.touch1[0],p=a.touch1[1],m=(m=h[0]-s[0])*m+(m=h[1]-s[1])*m,y=(y=p[0]-f[0])*y+(y=p[1]-f[1])*y;n=_(n,Math.sqrt(m/y)),r=[(s[0]+h[0])/2,(s[1]+h[1])/2],i=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!a.touch0)return;r=a.touch0[0],i=a.touch0[1]}a.zoom("touch",o(E(n,r,i),a.extent,c))}}function j(){if(this.__zooming){var e,n,r=C(this,arguments),o=d.changedTouches,i=o.length;for(we(),t&&clearTimeout(t),t=setTimeout((function(){t=null}),h),e=0;e<i;++e)n=o[e],r.touch0&&r.touch0[2]===n.identifier?delete r.touch0:r.touch1&&r.touch1[2]===n.identifier&&delete r.touch1;if(r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0)r.touch0[1]=this.__zoom.invert(r.touch0[0]);else if(r.end(),2===r.taps){var a=p(this).on("dblclick.zoom");a&&a.apply(this,arguments)}}}return v.transform=function(e,t,n){var r=e.selection?e.selection():e;r.property("__zoom",Ee),e!==r?S(e,t,n):r.interrupt().each((function(){C(this,arguments).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},v.scaleBy=function(e,t,n){v.scaleTo(e,(function(){return this.__zoom.k*("function"==typeof t?t.apply(this,arguments):t)}),n)},v.scaleTo=function(e,t,n){v.transform(e,(function(){var e=r.apply(this,arguments),i=this.__zoom,a=null==n?k(e):"function"==typeof n?n.apply(this,arguments):n,l=i.invert(a),u="function"==typeof t?t.apply(this,arguments):t;return o(E(_(i,u),a,l),e,c)}),n)},v.translateBy=function(e,t,n){v.transform(e,(function(){return o(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}))},v.translateTo=function(e,t,n,i){v.transform(e,(function(){var e=r.apply(this,arguments),a=this.__zoom,l=null==i?k(e):"function"==typeof i?i.apply(this,arguments):i;return o(b.translate(l[0],l[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)}),i)},z.prototype={start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){y(new ve(v,e,this.that.__zoom),f.apply,f,[e,this.that,this.args])}},v.wheelDelta=function(e){return arguments.length?(i="function"==typeof e?e:ge(+e),v):i},v.filter=function(e){return arguments.length?(n="function"==typeof e?e:ge(!!e),v):n},v.touchable=function(e){return arguments.length?(a="function"==typeof e?e:ge(!!e),v):a},v.extent=function(e){return arguments.length?(r="function"==typeof e?e:ge([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),v):r},v.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],v):[l[0],l[1]]},v.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],v):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},v.constrain=function(e){return arguments.length?(o=e,v):o},v.duration=function(e){return arguments.length?(u=+e,v):u},v.interpolate=function(e){return arguments.length?(s=e,v):s},v.on=function(){var e=f.on.apply(f,arguments);return e===f?v:e},v.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,v):Math.sqrt(g)},v}().scaleExtent([.5,20]).extent([[0,0],[A,j]]).on("zoom",(function(){l.attr("transform",d.transform)}));f(s),p("#resetBtn").on("click",(function(){s.transition().duration(750).call(f.transform,b)}));var h=l.append("g").attr("stroke","#999").attr("stroke-opacity",.6).selectAll("line").data(i).join("path").attr("fill","none").attr("stroke-dasharray",(function(e){return"protege"===e.ontology?"2,5,3":""})).attr("key",(function(e){return e.type})),E=l.append("g").attr("stroke","#fff").attr("stroke-width",1.5).selectAll("circle").data(a).join("circle").attr("r",(function(e){return"mainNode"===e.type?13.5:t})).attr("fill",(function(e){return o(e.type)})).attr("key",(function(e){return e.type})).attr("class",(function(e){return"node node-".concat(e.id," ").concat(e.type&&"organization"===e.type?"org":"person"===e.type?"person":"publication"===e.type?"publication":"mainNode"===e.type?"mainNode":"article"===e.type?"article":"keyword"===e.type?"keyword":"event"===e.type?"event":"")})).on("click",(function(e){return e.hasClick?k({name:e.name,id:e.id,type:e.type}):null})).call(M(c));E.append("title").text((function(e){return"".concat(e.name,"-").concat(function(e){switch(e){case"mainNode":return u?u.formatMessage({id:"SNA.search.center"}):"主要搜尋中心";case"organization":return u?u.formatMessage({id:"SNA.organization"}):"組織";case"person":return u?u.formatMessage({id:"SNA.author"}):"作家";case"publication":return u?u.formatMessage({id:"SNA.publication"}):"作家";case"article":return u?u.formatMessage({id:"SNA.article"}):"單篇作品";case"keyword":return u?u.formatMessage({id:"SNA.keyword"}):"關鍵字";case"event":return u?u.formatMessage({id:"SNA.event"}):"事件";default:return""}}(e.type))}));var S=l.append("g").selectAll("text").data(a).join("text").attr("fill",T).attr("text-anchor","middle").attr("key",(function(e){return e.type})).style("color","#fff").style("font-size","14px").text((function(e){return e.name})),C=l.selectAll(".edgepath").data(i).enter().append("path").attr("class","edgepath").attr("fill-opacity",0).attr("stroke-opacity",0).attr("id",(function(e,t){return"edgepath".concat(t)})).style("pointer-events","none");l.selectAll(".edgelabel").data(i).enter().append("text").style("pointer-events","none").attr("class","edgelabel").attr("font-size","10px").attr("fill","#aaa").attr("visibility","visible").attr("key",(function(e){return e.type})).attr("id",(function(e,t){return"edgelabel".concat(t)})).append("textPath").attr("xlink:href",(function(e,t){return"#edgepath".concat(t)})).style("text-anchor","middle").style("pointer-events","none").attr("startOffset","50%").text((function(e){return e.property})),c.on("tick",(function(){a.forEach((function(e){e.x>=A-20&&(e.x=A-20),e.y>=j-20&&(e.y=j-20),e.x<=20&&(e.x=20),e.y<=20&&(e.y=20)})),h.attr("d",(function(e){return F(e.source,e.target,30)})),E.attr("cx",(function(e){return e.x})).attr("cy",(function(e){return e.y})),S.attr("x",(function(e){return e.x})).attr("y",(function(e){return e.y-t})),C.attr("d",(function(e){return F(e.source,e.target,30)}))}))};return i((function(){if(E&&E.nodes&&E.nodes.length>0){var e=document.getElementById("network-graph");e&&e.childNodes[0]&&e.removeChild(e.childNodes[0]),D(E)}}),[E,O.active]),t.createElement("div",{className:s("SNA",{"SNA--smallSize":h<200},c),style:{contentWidth:A,contentHeight:j,backgroundColor:P}},t.createElement(vt,{intl:u,data:E,iconColor:N,domToImageId:"sna-graph",FontSizeTargets:["#sna-graph svg g text"],exclude:f,DownloadExcel:S,fullscreenDomId:"sna-graph"}),t.createElement(xt,null),t.createElement("div",{id:"sna-graph"}))};_t.defaultProps={className:void 0,intl:void 0,width:1050,height:600,distance:400,SNAData:null,fontColor:"#000000",backgroundColor:"#FFFFFF",iconColor:"#825c0d",exclude:["downloadXls","downloadTsv"],handleClickNodeGoto:null,DownloadExcel:void 0},_t.propTypes={className:u.string,intl:u.objectOf(u.any),width:u.number,height:u.number,distance:u.number,SNAData:u.objectOf(u.any),fontColor:u.string,backgroundColor:u.string,iconColor:u.string,exclude:u.arrayOf(u.string),handleClickNodeGoto:u.func,DownloadExcel:u.oneOfType([u.node,u.func])};export{_t as default};
1
+ import React__default, { useMemo, useEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { c as classNames } from './index-f491ebce.js';
4
+ import { e as event, d as d3Select, a as dispatch, c as customEvent, D as DragEvent, q as quadtree, m as map, t as timer, T as Transform, i as identity, b as interrupt, o as ordinal, f as category10 } from './transform-3a04288b.js';
5
+ import { E as ExtraTools } from './ExtraTools-0ffc772b.js';
6
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
7
+ import './_rollupPluginBabelHelpers-ed61ffc0.js';
8
+ import './_commonjsHelpers-70de2c37.js';
9
+ import '@material-ui/core';
10
+ import './Tooltip-6d53cb6e.js';
11
+ import './dataExport-d55d6fa3.js';
12
+
13
+ function sourceEvent() {
14
+ var current = event, source;
15
+ while (source = current.sourceEvent) current = source;
16
+ return current;
17
+ }
18
+
19
+ function point(node, event) {
20
+ var svg = node.ownerSVGElement || node;
21
+
22
+ if (svg.createSVGPoint) {
23
+ var point = svg.createSVGPoint();
24
+ point.x = event.clientX, point.y = event.clientY;
25
+ point = point.matrixTransform(node.getScreenCTM().inverse());
26
+ return [point.x, point.y];
27
+ }
28
+
29
+ var rect = node.getBoundingClientRect();
30
+ return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
31
+ }
32
+
33
+ function mouse(node) {
34
+ var event = sourceEvent();
35
+ if (event.changedTouches) event = event.changedTouches[0];
36
+ return point(node, event);
37
+ }
38
+
39
+ function touch(node, touches, identifier) {
40
+ if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;
41
+
42
+ for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
43
+ if ((touch = touches[i]).identifier === identifier) {
44
+ return point(node, touch);
45
+ }
46
+ }
47
+
48
+ return null;
49
+ }
50
+
51
+ function nopropagation$1() {
52
+ event.stopImmediatePropagation();
53
+ }
54
+
55
+ function noevent$1() {
56
+ event.preventDefault();
57
+ event.stopImmediatePropagation();
58
+ }
59
+
60
+ function dragDisable(view) {
61
+ var root = view.document.documentElement,
62
+ selection = d3Select(view).on("dragstart.drag", noevent$1, true);
63
+ if ("onselectstart" in root) {
64
+ selection.on("selectstart.drag", noevent$1, true);
65
+ } else {
66
+ root.__noselect = root.style.MozUserSelect;
67
+ root.style.MozUserSelect = "none";
68
+ }
69
+ }
70
+
71
+ function yesdrag(view, noclick) {
72
+ var root = view.document.documentElement,
73
+ selection = d3Select(view).on("dragstart.drag", null);
74
+ if (noclick) {
75
+ selection.on("click.drag", noevent$1, true);
76
+ setTimeout(function() { selection.on("click.drag", null); }, 0);
77
+ }
78
+ if ("onselectstart" in root) {
79
+ selection.on("selectstart.drag", null);
80
+ } else {
81
+ root.style.MozUserSelect = root.__noselect;
82
+ delete root.__noselect;
83
+ }
84
+ }
85
+
86
+ function constant$2(x) {
87
+ return function() {
88
+ return x;
89
+ };
90
+ }
91
+
92
+ // Ignore right-click, since that should open the context menu.
93
+ function defaultFilter$1() {
94
+ return !event.ctrlKey && !event.button;
95
+ }
96
+
97
+ function defaultContainer() {
98
+ return this.parentNode;
99
+ }
100
+
101
+ function defaultSubject(d) {
102
+ return d == null ? {x: event.x, y: event.y} : d;
103
+ }
104
+
105
+ function defaultTouchable$1() {
106
+ return navigator.maxTouchPoints || ("ontouchstart" in this);
107
+ }
108
+
109
+ function drag() {
110
+ var filter = defaultFilter$1,
111
+ container = defaultContainer,
112
+ subject = defaultSubject,
113
+ touchable = defaultTouchable$1,
114
+ gestures = {},
115
+ listeners = dispatch("start", "drag", "end"),
116
+ active = 0,
117
+ mousedownx,
118
+ mousedowny,
119
+ mousemoving,
120
+ touchending,
121
+ clickDistance2 = 0;
122
+
123
+ function drag(selection) {
124
+ selection
125
+ .on("mousedown.drag", mousedowned)
126
+ .filter(touchable)
127
+ .on("touchstart.drag", touchstarted)
128
+ .on("touchmove.drag", touchmoved)
129
+ .on("touchend.drag touchcancel.drag", touchended)
130
+ .style("touch-action", "none")
131
+ .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
132
+ }
133
+
134
+ function mousedowned() {
135
+ if (touchending || !filter.apply(this, arguments)) return;
136
+ var gesture = beforestart("mouse", container.apply(this, arguments), mouse, this, arguments);
137
+ if (!gesture) return;
138
+ d3Select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true);
139
+ dragDisable(event.view);
140
+ nopropagation$1();
141
+ mousemoving = false;
142
+ mousedownx = event.clientX;
143
+ mousedowny = event.clientY;
144
+ gesture("start");
145
+ }
146
+
147
+ function mousemoved() {
148
+ noevent$1();
149
+ if (!mousemoving) {
150
+ var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
151
+ mousemoving = dx * dx + dy * dy > clickDistance2;
152
+ }
153
+ gestures.mouse("drag");
154
+ }
155
+
156
+ function mouseupped() {
157
+ d3Select(event.view).on("mousemove.drag mouseup.drag", null);
158
+ yesdrag(event.view, mousemoving);
159
+ noevent$1();
160
+ gestures.mouse("end");
161
+ }
162
+
163
+ function touchstarted() {
164
+ if (!filter.apply(this, arguments)) return;
165
+ var touches = event.changedTouches,
166
+ c = container.apply(this, arguments),
167
+ n = touches.length, i, gesture;
168
+
169
+ for (i = 0; i < n; ++i) {
170
+ if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {
171
+ nopropagation$1();
172
+ gesture("start");
173
+ }
174
+ }
175
+ }
176
+
177
+ function touchmoved() {
178
+ var touches = event.changedTouches,
179
+ n = touches.length, i, gesture;
180
+
181
+ for (i = 0; i < n; ++i) {
182
+ if (gesture = gestures[touches[i].identifier]) {
183
+ noevent$1();
184
+ gesture("drag");
185
+ }
186
+ }
187
+ }
188
+
189
+ function touchended() {
190
+ var touches = event.changedTouches,
191
+ n = touches.length, i, gesture;
192
+
193
+ if (touchending) clearTimeout(touchending);
194
+ touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
195
+ for (i = 0; i < n; ++i) {
196
+ if (gesture = gestures[touches[i].identifier]) {
197
+ nopropagation$1();
198
+ gesture("end");
199
+ }
200
+ }
201
+ }
202
+
203
+ function beforestart(id, container, point, that, args) {
204
+ var p = point(container, id), s, dx, dy,
205
+ sublisteners = listeners.copy();
206
+
207
+ if (!customEvent(new DragEvent(drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {
208
+ if ((event.subject = s = subject.apply(that, args)) == null) return false;
209
+ dx = s.x - p[0] || 0;
210
+ dy = s.y - p[1] || 0;
211
+ return true;
212
+ })) return;
213
+
214
+ return function gesture(type) {
215
+ var p0 = p, n;
216
+ switch (type) {
217
+ case "start": gestures[id] = gesture, n = active++; break;
218
+ case "end": delete gestures[id], --active; // nobreak
219
+ case "drag": p = point(container, id), n = active; break;
220
+ }
221
+ customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);
222
+ };
223
+ }
224
+
225
+ drag.filter = function(_) {
226
+ return arguments.length ? (filter = typeof _ === "function" ? _ : constant$2(!!_), drag) : filter;
227
+ };
228
+
229
+ drag.container = function(_) {
230
+ return arguments.length ? (container = typeof _ === "function" ? _ : constant$2(_), drag) : container;
231
+ };
232
+
233
+ drag.subject = function(_) {
234
+ return arguments.length ? (subject = typeof _ === "function" ? _ : constant$2(_), drag) : subject;
235
+ };
236
+
237
+ drag.touchable = function(_) {
238
+ return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$2(!!_), drag) : touchable;
239
+ };
240
+
241
+ drag.on = function() {
242
+ var value = listeners.on.apply(listeners, arguments);
243
+ return value === listeners ? drag : value;
244
+ };
245
+
246
+ drag.clickDistance = function(_) {
247
+ return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
248
+ };
249
+
250
+ return drag;
251
+ }
252
+
253
+ var rho = Math.SQRT2,
254
+ rho2 = 2,
255
+ rho4 = 4,
256
+ epsilon2 = 1e-12;
257
+
258
+ function cosh(x) {
259
+ return ((x = Math.exp(x)) + 1 / x) / 2;
260
+ }
261
+
262
+ function sinh(x) {
263
+ return ((x = Math.exp(x)) - 1 / x) / 2;
264
+ }
265
+
266
+ function tanh(x) {
267
+ return ((x = Math.exp(2 * x)) - 1) / (x + 1);
268
+ }
269
+
270
+ // p0 = [ux0, uy0, w0]
271
+ // p1 = [ux1, uy1, w1]
272
+ function interpolateZoom(p0, p1) {
273
+ var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
274
+ ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
275
+ dx = ux1 - ux0,
276
+ dy = uy1 - uy0,
277
+ d2 = dx * dx + dy * dy,
278
+ i,
279
+ S;
280
+
281
+ // Special case for u0 ≅ u1.
282
+ if (d2 < epsilon2) {
283
+ S = Math.log(w1 / w0) / rho;
284
+ i = function(t) {
285
+ return [
286
+ ux0 + t * dx,
287
+ uy0 + t * dy,
288
+ w0 * Math.exp(rho * t * S)
289
+ ];
290
+ };
291
+ }
292
+
293
+ // General case.
294
+ else {
295
+ var d1 = Math.sqrt(d2),
296
+ b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
297
+ b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
298
+ r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
299
+ r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
300
+ S = (r1 - r0) / rho;
301
+ i = function(t) {
302
+ var s = t * S,
303
+ coshr0 = cosh(r0),
304
+ u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
305
+ return [
306
+ ux0 + u * dx,
307
+ uy0 + u * dy,
308
+ w0 * coshr0 / cosh(rho * s + r0)
309
+ ];
310
+ };
311
+ }
312
+
313
+ i.duration = S * 1000;
314
+
315
+ return i;
316
+ }
317
+
318
+ function center(x, y) {
319
+ var nodes;
320
+
321
+ if (x == null) x = 0;
322
+ if (y == null) y = 0;
323
+
324
+ function force() {
325
+ var i,
326
+ n = nodes.length,
327
+ node,
328
+ sx = 0,
329
+ sy = 0;
330
+
331
+ for (i = 0; i < n; ++i) {
332
+ node = nodes[i], sx += node.x, sy += node.y;
333
+ }
334
+
335
+ for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
336
+ node = nodes[i], node.x -= sx, node.y -= sy;
337
+ }
338
+ }
339
+
340
+ force.initialize = function(_) {
341
+ nodes = _;
342
+ };
343
+
344
+ force.x = function(_) {
345
+ return arguments.length ? (x = +_, force) : x;
346
+ };
347
+
348
+ force.y = function(_) {
349
+ return arguments.length ? (y = +_, force) : y;
350
+ };
351
+
352
+ return force;
353
+ }
354
+
355
+ function constant$1(x) {
356
+ return function() {
357
+ return x;
358
+ };
359
+ }
360
+
361
+ function jiggle() {
362
+ return (Math.random() - 0.5) * 1e-6;
363
+ }
364
+
365
+ function x$2(d) {
366
+ return d.x + d.vx;
367
+ }
368
+
369
+ function y$2(d) {
370
+ return d.y + d.vy;
371
+ }
372
+
373
+ function collide(radius) {
374
+ var nodes,
375
+ radii,
376
+ strength = 1,
377
+ iterations = 1;
378
+
379
+ if (typeof radius !== "function") radius = constant$1(radius == null ? 1 : +radius);
380
+
381
+ function force() {
382
+ var i, n = nodes.length,
383
+ tree,
384
+ node,
385
+ xi,
386
+ yi,
387
+ ri,
388
+ ri2;
389
+
390
+ for (var k = 0; k < iterations; ++k) {
391
+ tree = quadtree(nodes, x$2, y$2).visitAfter(prepare);
392
+ for (i = 0; i < n; ++i) {
393
+ node = nodes[i];
394
+ ri = radii[node.index], ri2 = ri * ri;
395
+ xi = node.x + node.vx;
396
+ yi = node.y + node.vy;
397
+ tree.visit(apply);
398
+ }
399
+ }
400
+
401
+ function apply(quad, x0, y0, x1, y1) {
402
+ var data = quad.data, rj = quad.r, r = ri + rj;
403
+ if (data) {
404
+ if (data.index > node.index) {
405
+ var x = xi - data.x - data.vx,
406
+ y = yi - data.y - data.vy,
407
+ l = x * x + y * y;
408
+ if (l < r * r) {
409
+ if (x === 0) x = jiggle(), l += x * x;
410
+ if (y === 0) y = jiggle(), l += y * y;
411
+ l = (r - (l = Math.sqrt(l))) / l * strength;
412
+ node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
413
+ node.vy += (y *= l) * r;
414
+ data.vx -= x * (r = 1 - r);
415
+ data.vy -= y * r;
416
+ }
417
+ }
418
+ return;
419
+ }
420
+ return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
421
+ }
422
+ }
423
+
424
+ function prepare(quad) {
425
+ if (quad.data) return quad.r = radii[quad.data.index];
426
+ for (var i = quad.r = 0; i < 4; ++i) {
427
+ if (quad[i] && quad[i].r > quad.r) {
428
+ quad.r = quad[i].r;
429
+ }
430
+ }
431
+ }
432
+
433
+ function initialize() {
434
+ if (!nodes) return;
435
+ var i, n = nodes.length, node;
436
+ radii = new Array(n);
437
+ for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
438
+ }
439
+
440
+ force.initialize = function(_) {
441
+ nodes = _;
442
+ initialize();
443
+ };
444
+
445
+ force.iterations = function(_) {
446
+ return arguments.length ? (iterations = +_, force) : iterations;
447
+ };
448
+
449
+ force.strength = function(_) {
450
+ return arguments.length ? (strength = +_, force) : strength;
451
+ };
452
+
453
+ force.radius = function(_) {
454
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : radius;
455
+ };
456
+
457
+ return force;
458
+ }
459
+
460
+ function index(d) {
461
+ return d.index;
462
+ }
463
+
464
+ function find(nodeById, nodeId) {
465
+ var node = nodeById.get(nodeId);
466
+ if (!node) throw new Error("missing: " + nodeId);
467
+ return node;
468
+ }
469
+
470
+ function link(links) {
471
+ var id = index,
472
+ strength = defaultStrength,
473
+ strengths,
474
+ distance = constant$1(30),
475
+ distances,
476
+ nodes,
477
+ count,
478
+ bias,
479
+ iterations = 1;
480
+
481
+ if (links == null) links = [];
482
+
483
+ function defaultStrength(link) {
484
+ return 1 / Math.min(count[link.source.index], count[link.target.index]);
485
+ }
486
+
487
+ function force(alpha) {
488
+ for (var k = 0, n = links.length; k < iterations; ++k) {
489
+ for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
490
+ link = links[i], source = link.source, target = link.target;
491
+ x = target.x + target.vx - source.x - source.vx || jiggle();
492
+ y = target.y + target.vy - source.y - source.vy || jiggle();
493
+ l = Math.sqrt(x * x + y * y);
494
+ l = (l - distances[i]) / l * alpha * strengths[i];
495
+ x *= l, y *= l;
496
+ target.vx -= x * (b = bias[i]);
497
+ target.vy -= y * b;
498
+ source.vx += x * (b = 1 - b);
499
+ source.vy += y * b;
500
+ }
501
+ }
502
+ }
503
+
504
+ function initialize() {
505
+ if (!nodes) return;
506
+
507
+ var i,
508
+ n = nodes.length,
509
+ m = links.length,
510
+ nodeById = map(nodes, id),
511
+ link;
512
+
513
+ for (i = 0, count = new Array(n); i < m; ++i) {
514
+ link = links[i], link.index = i;
515
+ if (typeof link.source !== "object") link.source = find(nodeById, link.source);
516
+ if (typeof link.target !== "object") link.target = find(nodeById, link.target);
517
+ count[link.source.index] = (count[link.source.index] || 0) + 1;
518
+ count[link.target.index] = (count[link.target.index] || 0) + 1;
519
+ }
520
+
521
+ for (i = 0, bias = new Array(m); i < m; ++i) {
522
+ link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
523
+ }
524
+
525
+ strengths = new Array(m), initializeStrength();
526
+ distances = new Array(m), initializeDistance();
527
+ }
528
+
529
+ function initializeStrength() {
530
+ if (!nodes) return;
531
+
532
+ for (var i = 0, n = links.length; i < n; ++i) {
533
+ strengths[i] = +strength(links[i], i, links);
534
+ }
535
+ }
536
+
537
+ function initializeDistance() {
538
+ if (!nodes) return;
539
+
540
+ for (var i = 0, n = links.length; i < n; ++i) {
541
+ distances[i] = +distance(links[i], i, links);
542
+ }
543
+ }
544
+
545
+ force.initialize = function(_) {
546
+ nodes = _;
547
+ initialize();
548
+ };
549
+
550
+ force.links = function(_) {
551
+ return arguments.length ? (links = _, initialize(), force) : links;
552
+ };
553
+
554
+ force.id = function(_) {
555
+ return arguments.length ? (id = _, force) : id;
556
+ };
557
+
558
+ force.iterations = function(_) {
559
+ return arguments.length ? (iterations = +_, force) : iterations;
560
+ };
561
+
562
+ force.strength = function(_) {
563
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initializeStrength(), force) : strength;
564
+ };
565
+
566
+ force.distance = function(_) {
567
+ return arguments.length ? (distance = typeof _ === "function" ? _ : constant$1(+_), initializeDistance(), force) : distance;
568
+ };
569
+
570
+ return force;
571
+ }
572
+
573
+ function x$1(d) {
574
+ return d.x;
575
+ }
576
+
577
+ function y$1(d) {
578
+ return d.y;
579
+ }
580
+
581
+ var initialRadius = 10,
582
+ initialAngle = Math.PI * (3 - Math.sqrt(5));
583
+
584
+ function simulation(nodes) {
585
+ var simulation,
586
+ alpha = 1,
587
+ alphaMin = 0.001,
588
+ alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
589
+ alphaTarget = 0,
590
+ velocityDecay = 0.6,
591
+ forces = map(),
592
+ stepper = timer(step),
593
+ event = dispatch("tick", "end");
594
+
595
+ if (nodes == null) nodes = [];
596
+
597
+ function step() {
598
+ tick();
599
+ event.call("tick", simulation);
600
+ if (alpha < alphaMin) {
601
+ stepper.stop();
602
+ event.call("end", simulation);
603
+ }
604
+ }
605
+
606
+ function tick(iterations) {
607
+ var i, n = nodes.length, node;
608
+
609
+ if (iterations === undefined) iterations = 1;
610
+
611
+ for (var k = 0; k < iterations; ++k) {
612
+ alpha += (alphaTarget - alpha) * alphaDecay;
613
+
614
+ forces.each(function (force) {
615
+ force(alpha);
616
+ });
617
+
618
+ for (i = 0; i < n; ++i) {
619
+ node = nodes[i];
620
+ if (node.fx == null) node.x += node.vx *= velocityDecay;
621
+ else node.x = node.fx, node.vx = 0;
622
+ if (node.fy == null) node.y += node.vy *= velocityDecay;
623
+ else node.y = node.fy, node.vy = 0;
624
+ }
625
+ }
626
+
627
+ return simulation;
628
+ }
629
+
630
+ function initializeNodes() {
631
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
632
+ node = nodes[i], node.index = i;
633
+ if (node.fx != null) node.x = node.fx;
634
+ if (node.fy != null) node.y = node.fy;
635
+ if (isNaN(node.x) || isNaN(node.y)) {
636
+ var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
637
+ node.x = radius * Math.cos(angle);
638
+ node.y = radius * Math.sin(angle);
639
+ }
640
+ if (isNaN(node.vx) || isNaN(node.vy)) {
641
+ node.vx = node.vy = 0;
642
+ }
643
+ }
644
+ }
645
+
646
+ function initializeForce(force) {
647
+ if (force.initialize) force.initialize(nodes);
648
+ return force;
649
+ }
650
+
651
+ initializeNodes();
652
+
653
+ return simulation = {
654
+ tick: tick,
655
+
656
+ restart: function() {
657
+ return stepper.restart(step), simulation;
658
+ },
659
+
660
+ stop: function() {
661
+ return stepper.stop(), simulation;
662
+ },
663
+
664
+ nodes: function(_) {
665
+ return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
666
+ },
667
+
668
+ alpha: function(_) {
669
+ return arguments.length ? (alpha = +_, simulation) : alpha;
670
+ },
671
+
672
+ alphaMin: function(_) {
673
+ return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
674
+ },
675
+
676
+ alphaDecay: function(_) {
677
+ return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
678
+ },
679
+
680
+ alphaTarget: function(_) {
681
+ return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
682
+ },
683
+
684
+ velocityDecay: function(_) {
685
+ return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
686
+ },
687
+
688
+ force: function(name, _) {
689
+ return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
690
+ },
691
+
692
+ find: function(x, y, radius) {
693
+ var i = 0,
694
+ n = nodes.length,
695
+ dx,
696
+ dy,
697
+ d2,
698
+ node,
699
+ closest;
700
+
701
+ if (radius == null) radius = Infinity;
702
+ else radius *= radius;
703
+
704
+ for (i = 0; i < n; ++i) {
705
+ node = nodes[i];
706
+ dx = x - node.x;
707
+ dy = y - node.y;
708
+ d2 = dx * dx + dy * dy;
709
+ if (d2 < radius) closest = node, radius = d2;
710
+ }
711
+
712
+ return closest;
713
+ },
714
+
715
+ on: function(name, _) {
716
+ return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
717
+ }
718
+ };
719
+ }
720
+
721
+ function manyBody() {
722
+ var nodes,
723
+ node,
724
+ alpha,
725
+ strength = constant$1(-30),
726
+ strengths,
727
+ distanceMin2 = 1,
728
+ distanceMax2 = Infinity,
729
+ theta2 = 0.81;
730
+
731
+ function force(_) {
732
+ var i, n = nodes.length, tree = quadtree(nodes, x$1, y$1).visitAfter(accumulate);
733
+ for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
734
+ }
735
+
736
+ function initialize() {
737
+ if (!nodes) return;
738
+ var i, n = nodes.length, node;
739
+ strengths = new Array(n);
740
+ for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
741
+ }
742
+
743
+ function accumulate(quad) {
744
+ var strength = 0, q, c, weight = 0, x, y, i;
745
+
746
+ // For internal nodes, accumulate forces from child quadrants.
747
+ if (quad.length) {
748
+ for (x = y = i = 0; i < 4; ++i) {
749
+ if ((q = quad[i]) && (c = Math.abs(q.value))) {
750
+ strength += q.value, weight += c, x += c * q.x, y += c * q.y;
751
+ }
752
+ }
753
+ quad.x = x / weight;
754
+ quad.y = y / weight;
755
+ }
756
+
757
+ // For leaf nodes, accumulate forces from coincident quadrants.
758
+ else {
759
+ q = quad;
760
+ q.x = q.data.x;
761
+ q.y = q.data.y;
762
+ do strength += strengths[q.data.index];
763
+ while (q = q.next);
764
+ }
765
+
766
+ quad.value = strength;
767
+ }
768
+
769
+ function apply(quad, x1, _, x2) {
770
+ if (!quad.value) return true;
771
+
772
+ var x = quad.x - node.x,
773
+ y = quad.y - node.y,
774
+ w = x2 - x1,
775
+ l = x * x + y * y;
776
+
777
+ // Apply the Barnes-Hut approximation if possible.
778
+ // Limit forces for very close nodes; randomize direction if coincident.
779
+ if (w * w / theta2 < l) {
780
+ if (l < distanceMax2) {
781
+ if (x === 0) x = jiggle(), l += x * x;
782
+ if (y === 0) y = jiggle(), l += y * y;
783
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
784
+ node.vx += x * quad.value * alpha / l;
785
+ node.vy += y * quad.value * alpha / l;
786
+ }
787
+ return true;
788
+ }
789
+
790
+ // Otherwise, process points directly.
791
+ else if (quad.length || l >= distanceMax2) return;
792
+
793
+ // Limit forces for very close nodes; randomize direction if coincident.
794
+ if (quad.data !== node || quad.next) {
795
+ if (x === 0) x = jiggle(), l += x * x;
796
+ if (y === 0) y = jiggle(), l += y * y;
797
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
798
+ }
799
+
800
+ do if (quad.data !== node) {
801
+ w = strengths[quad.data.index] * alpha / l;
802
+ node.vx += x * w;
803
+ node.vy += y * w;
804
+ } while (quad = quad.next);
805
+ }
806
+
807
+ force.initialize = function(_) {
808
+ nodes = _;
809
+ initialize();
810
+ };
811
+
812
+ force.strength = function(_) {
813
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
814
+ };
815
+
816
+ force.distanceMin = function(_) {
817
+ return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
818
+ };
819
+
820
+ force.distanceMax = function(_) {
821
+ return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
822
+ };
823
+
824
+ force.theta = function(_) {
825
+ return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
826
+ };
827
+
828
+ return force;
829
+ }
830
+
831
+ function radial(radius, x, y) {
832
+ var nodes,
833
+ strength = constant$1(0.1),
834
+ strengths,
835
+ radiuses;
836
+
837
+ if (typeof radius !== "function") radius = constant$1(+radius);
838
+ if (x == null) x = 0;
839
+ if (y == null) y = 0;
840
+
841
+ function force(alpha) {
842
+ for (var i = 0, n = nodes.length; i < n; ++i) {
843
+ var node = nodes[i],
844
+ dx = node.x - x || 1e-6,
845
+ dy = node.y - y || 1e-6,
846
+ r = Math.sqrt(dx * dx + dy * dy),
847
+ k = (radiuses[i] - r) * strengths[i] * alpha / r;
848
+ node.vx += dx * k;
849
+ node.vy += dy * k;
850
+ }
851
+ }
852
+
853
+ function initialize() {
854
+ if (!nodes) return;
855
+ var i, n = nodes.length;
856
+ strengths = new Array(n);
857
+ radiuses = new Array(n);
858
+ for (i = 0; i < n; ++i) {
859
+ radiuses[i] = +radius(nodes[i], i, nodes);
860
+ strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
861
+ }
862
+ }
863
+
864
+ force.initialize = function(_) {
865
+ nodes = _, initialize();
866
+ };
867
+
868
+ force.strength = function(_) {
869
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
870
+ };
871
+
872
+ force.radius = function(_) {
873
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : radius;
874
+ };
875
+
876
+ force.x = function(_) {
877
+ return arguments.length ? (x = +_, force) : x;
878
+ };
879
+
880
+ force.y = function(_) {
881
+ return arguments.length ? (y = +_, force) : y;
882
+ };
883
+
884
+ return force;
885
+ }
886
+
887
+ function x(x) {
888
+ var strength = constant$1(0.1),
889
+ nodes,
890
+ strengths,
891
+ xz;
892
+
893
+ if (typeof x !== "function") x = constant$1(x == null ? 0 : +x);
894
+
895
+ function force(alpha) {
896
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
897
+ node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
898
+ }
899
+ }
900
+
901
+ function initialize() {
902
+ if (!nodes) return;
903
+ var i, n = nodes.length;
904
+ strengths = new Array(n);
905
+ xz = new Array(n);
906
+ for (i = 0; i < n; ++i) {
907
+ strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
908
+ }
909
+ }
910
+
911
+ force.initialize = function(_) {
912
+ nodes = _;
913
+ initialize();
914
+ };
915
+
916
+ force.strength = function(_) {
917
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
918
+ };
919
+
920
+ force.x = function(_) {
921
+ return arguments.length ? (x = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : x;
922
+ };
923
+
924
+ return force;
925
+ }
926
+
927
+ function y(y) {
928
+ var strength = constant$1(0.1),
929
+ nodes,
930
+ strengths,
931
+ yz;
932
+
933
+ if (typeof y !== "function") y = constant$1(y == null ? 0 : +y);
934
+
935
+ function force(alpha) {
936
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
937
+ node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
938
+ }
939
+ }
940
+
941
+ function initialize() {
942
+ if (!nodes) return;
943
+ var i, n = nodes.length;
944
+ strengths = new Array(n);
945
+ yz = new Array(n);
946
+ for (i = 0; i < n; ++i) {
947
+ strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
948
+ }
949
+ }
950
+
951
+ force.initialize = function(_) {
952
+ nodes = _;
953
+ initialize();
954
+ };
955
+
956
+ force.strength = function(_) {
957
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
958
+ };
959
+
960
+ force.y = function(_) {
961
+ return arguments.length ? (y = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : y;
962
+ };
963
+
964
+ return force;
965
+ }
966
+
967
+ function constant(x) {
968
+ return function() {
969
+ return x;
970
+ };
971
+ }
972
+
973
+ function ZoomEvent(target, type, transform) {
974
+ this.target = target;
975
+ this.type = type;
976
+ this.transform = transform;
977
+ }
978
+
979
+ function nopropagation() {
980
+ event.stopImmediatePropagation();
981
+ }
982
+
983
+ function noevent() {
984
+ event.preventDefault();
985
+ event.stopImmediatePropagation();
986
+ }
987
+
988
+ // Ignore right-click, since that should open the context menu.
989
+ function defaultFilter() {
990
+ return !event.ctrlKey && !event.button;
991
+ }
992
+
993
+ function defaultExtent() {
994
+ var e = this;
995
+ if (e instanceof SVGElement) {
996
+ e = e.ownerSVGElement || e;
997
+ if (e.hasAttribute("viewBox")) {
998
+ e = e.viewBox.baseVal;
999
+ return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
1000
+ }
1001
+ return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
1002
+ }
1003
+ return [[0, 0], [e.clientWidth, e.clientHeight]];
1004
+ }
1005
+
1006
+ function defaultTransform() {
1007
+ return this.__zoom || identity;
1008
+ }
1009
+
1010
+ function defaultWheelDelta() {
1011
+ return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);
1012
+ }
1013
+
1014
+ function defaultTouchable() {
1015
+ return navigator.maxTouchPoints || ("ontouchstart" in this);
1016
+ }
1017
+
1018
+ function defaultConstrain(transform, extent, translateExtent) {
1019
+ var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
1020
+ dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
1021
+ dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
1022
+ dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
1023
+ return transform.translate(
1024
+ dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
1025
+ dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
1026
+ );
1027
+ }
1028
+
1029
+ function zoom() {
1030
+ var filter = defaultFilter,
1031
+ extent = defaultExtent,
1032
+ constrain = defaultConstrain,
1033
+ wheelDelta = defaultWheelDelta,
1034
+ touchable = defaultTouchable,
1035
+ scaleExtent = [0, Infinity],
1036
+ translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
1037
+ duration = 250,
1038
+ interpolate = interpolateZoom,
1039
+ listeners = dispatch("start", "zoom", "end"),
1040
+ touchstarting,
1041
+ touchending,
1042
+ touchDelay = 500,
1043
+ wheelDelay = 150,
1044
+ clickDistance2 = 0;
1045
+
1046
+ function zoom(selection) {
1047
+ selection
1048
+ .property("__zoom", defaultTransform)
1049
+ .on("wheel.zoom", wheeled)
1050
+ .on("mousedown.zoom", mousedowned)
1051
+ .on("dblclick.zoom", dblclicked)
1052
+ .filter(touchable)
1053
+ .on("touchstart.zoom", touchstarted)
1054
+ .on("touchmove.zoom", touchmoved)
1055
+ .on("touchend.zoom touchcancel.zoom", touchended)
1056
+ .style("touch-action", "none")
1057
+ .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
1058
+ }
1059
+
1060
+ zoom.transform = function(collection, transform, point) {
1061
+ var selection = collection.selection ? collection.selection() : collection;
1062
+ selection.property("__zoom", defaultTransform);
1063
+ if (collection !== selection) {
1064
+ schedule(collection, transform, point);
1065
+ } else {
1066
+ selection.interrupt().each(function() {
1067
+ gesture(this, arguments)
1068
+ .start()
1069
+ .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
1070
+ .end();
1071
+ });
1072
+ }
1073
+ };
1074
+
1075
+ zoom.scaleBy = function(selection, k, p) {
1076
+ zoom.scaleTo(selection, function() {
1077
+ var k0 = this.__zoom.k,
1078
+ k1 = typeof k === "function" ? k.apply(this, arguments) : k;
1079
+ return k0 * k1;
1080
+ }, p);
1081
+ };
1082
+
1083
+ zoom.scaleTo = function(selection, k, p) {
1084
+ zoom.transform(selection, function() {
1085
+ var e = extent.apply(this, arguments),
1086
+ t0 = this.__zoom,
1087
+ p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
1088
+ p1 = t0.invert(p0),
1089
+ k1 = typeof k === "function" ? k.apply(this, arguments) : k;
1090
+ return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
1091
+ }, p);
1092
+ };
1093
+
1094
+ zoom.translateBy = function(selection, x, y) {
1095
+ zoom.transform(selection, function() {
1096
+ return constrain(this.__zoom.translate(
1097
+ typeof x === "function" ? x.apply(this, arguments) : x,
1098
+ typeof y === "function" ? y.apply(this, arguments) : y
1099
+ ), extent.apply(this, arguments), translateExtent);
1100
+ });
1101
+ };
1102
+
1103
+ zoom.translateTo = function(selection, x, y, p) {
1104
+ zoom.transform(selection, function() {
1105
+ var e = extent.apply(this, arguments),
1106
+ t = this.__zoom,
1107
+ p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
1108
+ return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(
1109
+ typeof x === "function" ? -x.apply(this, arguments) : -x,
1110
+ typeof y === "function" ? -y.apply(this, arguments) : -y
1111
+ ), e, translateExtent);
1112
+ }, p);
1113
+ };
1114
+
1115
+ function scale(transform, k) {
1116
+ k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
1117
+ return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
1118
+ }
1119
+
1120
+ function translate(transform, p0, p1) {
1121
+ var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
1122
+ return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
1123
+ }
1124
+
1125
+ function centroid(extent) {
1126
+ return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
1127
+ }
1128
+
1129
+ function schedule(transition, transform, point) {
1130
+ transition
1131
+ .on("start.zoom", function() { gesture(this, arguments).start(); })
1132
+ .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
1133
+ .tween("zoom", function() {
1134
+ var that = this,
1135
+ args = arguments,
1136
+ g = gesture(that, args),
1137
+ e = extent.apply(that, args),
1138
+ p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
1139
+ w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
1140
+ a = that.__zoom,
1141
+ b = typeof transform === "function" ? transform.apply(that, args) : transform,
1142
+ i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
1143
+ return function(t) {
1144
+ if (t === 1) t = b; // Avoid rounding error on end.
1145
+ else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
1146
+ g.zoom(null, t);
1147
+ };
1148
+ });
1149
+ }
1150
+
1151
+ function gesture(that, args, clean) {
1152
+ return (!clean && that.__zooming) || new Gesture(that, args);
1153
+ }
1154
+
1155
+ function Gesture(that, args) {
1156
+ this.that = that;
1157
+ this.args = args;
1158
+ this.active = 0;
1159
+ this.extent = extent.apply(that, args);
1160
+ this.taps = 0;
1161
+ }
1162
+
1163
+ Gesture.prototype = {
1164
+ start: function() {
1165
+ if (++this.active === 1) {
1166
+ this.that.__zooming = this;
1167
+ this.emit("start");
1168
+ }
1169
+ return this;
1170
+ },
1171
+ zoom: function(key, transform) {
1172
+ if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
1173
+ if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
1174
+ if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
1175
+ this.that.__zoom = transform;
1176
+ this.emit("zoom");
1177
+ return this;
1178
+ },
1179
+ end: function() {
1180
+ if (--this.active === 0) {
1181
+ delete this.that.__zooming;
1182
+ this.emit("end");
1183
+ }
1184
+ return this;
1185
+ },
1186
+ emit: function(type) {
1187
+ customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
1188
+ }
1189
+ };
1190
+
1191
+ function wheeled() {
1192
+ if (!filter.apply(this, arguments)) return;
1193
+ var g = gesture(this, arguments),
1194
+ t = this.__zoom,
1195
+ k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
1196
+ p = mouse(this);
1197
+
1198
+ // If the mouse is in the same location as before, reuse it.
1199
+ // If there were recent wheel events, reset the wheel idle timeout.
1200
+ if (g.wheel) {
1201
+ if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
1202
+ g.mouse[1] = t.invert(g.mouse[0] = p);
1203
+ }
1204
+ clearTimeout(g.wheel);
1205
+ }
1206
+
1207
+ // If this wheel event won’t trigger a transform change, ignore it.
1208
+ else if (t.k === k) return;
1209
+
1210
+ // Otherwise, capture the mouse point and location at the start.
1211
+ else {
1212
+ g.mouse = [p, t.invert(p)];
1213
+ interrupt(this);
1214
+ g.start();
1215
+ }
1216
+
1217
+ noevent();
1218
+ g.wheel = setTimeout(wheelidled, wheelDelay);
1219
+ g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
1220
+
1221
+ function wheelidled() {
1222
+ g.wheel = null;
1223
+ g.end();
1224
+ }
1225
+ }
1226
+
1227
+ function mousedowned() {
1228
+ if (touchending || !filter.apply(this, arguments)) return;
1229
+ var g = gesture(this, arguments, true),
1230
+ v = d3Select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
1231
+ p = mouse(this),
1232
+ x0 = event.clientX,
1233
+ y0 = event.clientY;
1234
+
1235
+ dragDisable(event.view);
1236
+ nopropagation();
1237
+ g.mouse = [p, this.__zoom.invert(p)];
1238
+ interrupt(this);
1239
+ g.start();
1240
+
1241
+ function mousemoved() {
1242
+ noevent();
1243
+ if (!g.moved) {
1244
+ var dx = event.clientX - x0, dy = event.clientY - y0;
1245
+ g.moved = dx * dx + dy * dy > clickDistance2;
1246
+ }
1247
+ g.zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));
1248
+ }
1249
+
1250
+ function mouseupped() {
1251
+ v.on("mousemove.zoom mouseup.zoom", null);
1252
+ yesdrag(event.view, g.moved);
1253
+ noevent();
1254
+ g.end();
1255
+ }
1256
+ }
1257
+
1258
+ function dblclicked() {
1259
+ if (!filter.apply(this, arguments)) return;
1260
+ var t0 = this.__zoom,
1261
+ p0 = mouse(this),
1262
+ p1 = t0.invert(p0),
1263
+ k1 = t0.k * (event.shiftKey ? 0.5 : 2),
1264
+ t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);
1265
+
1266
+ noevent();
1267
+ if (duration > 0) d3Select(this).transition().duration(duration).call(schedule, t1, p0);
1268
+ else d3Select(this).call(zoom.transform, t1);
1269
+ }
1270
+
1271
+ function touchstarted() {
1272
+ if (!filter.apply(this, arguments)) return;
1273
+ var touches = event.touches,
1274
+ n = touches.length,
1275
+ g = gesture(this, arguments, event.changedTouches.length === n),
1276
+ started, i, t, p;
1277
+
1278
+ nopropagation();
1279
+ for (i = 0; i < n; ++i) {
1280
+ t = touches[i], p = touch(this, touches, t.identifier);
1281
+ p = [p, this.__zoom.invert(p), t.identifier];
1282
+ if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
1283
+ else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
1284
+ }
1285
+
1286
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
1287
+
1288
+ if (started) {
1289
+ if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
1290
+ interrupt(this);
1291
+ g.start();
1292
+ }
1293
+ }
1294
+
1295
+ function touchmoved() {
1296
+ if (!this.__zooming) return;
1297
+ var g = gesture(this, arguments),
1298
+ touches = event.changedTouches,
1299
+ n = touches.length, i, t, p, l;
1300
+
1301
+ noevent();
1302
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
1303
+ g.taps = 0;
1304
+ for (i = 0; i < n; ++i) {
1305
+ t = touches[i], p = touch(this, touches, t.identifier);
1306
+ if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
1307
+ else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
1308
+ }
1309
+ t = g.that.__zoom;
1310
+ if (g.touch1) {
1311
+ var p0 = g.touch0[0], l0 = g.touch0[1],
1312
+ p1 = g.touch1[0], l1 = g.touch1[1],
1313
+ dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
1314
+ dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
1315
+ t = scale(t, Math.sqrt(dp / dl));
1316
+ p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
1317
+ l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
1318
+ }
1319
+ else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
1320
+ else return;
1321
+ g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
1322
+ }
1323
+
1324
+ function touchended() {
1325
+ if (!this.__zooming) return;
1326
+ var g = gesture(this, arguments),
1327
+ touches = event.changedTouches,
1328
+ n = touches.length, i, t;
1329
+
1330
+ nopropagation();
1331
+ if (touchending) clearTimeout(touchending);
1332
+ touchending = setTimeout(function() { touchending = null; }, touchDelay);
1333
+ for (i = 0; i < n; ++i) {
1334
+ t = touches[i];
1335
+ if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
1336
+ else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
1337
+ }
1338
+ if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
1339
+ if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
1340
+ else {
1341
+ g.end();
1342
+ // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
1343
+ if (g.taps === 2) {
1344
+ var p = d3Select(this).on("dblclick.zoom");
1345
+ if (p) p.apply(this, arguments);
1346
+ }
1347
+ }
1348
+ }
1349
+
1350
+ zoom.wheelDelta = function(_) {
1351
+ return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
1352
+ };
1353
+
1354
+ zoom.filter = function(_) {
1355
+ return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
1356
+ };
1357
+
1358
+ zoom.touchable = function(_) {
1359
+ return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
1360
+ };
1361
+
1362
+ zoom.extent = function(_) {
1363
+ return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
1364
+ };
1365
+
1366
+ zoom.scaleExtent = function(_) {
1367
+ return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
1368
+ };
1369
+
1370
+ zoom.translateExtent = function(_) {
1371
+ return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
1372
+ };
1373
+
1374
+ zoom.constrain = function(_) {
1375
+ return arguments.length ? (constrain = _, zoom) : constrain;
1376
+ };
1377
+
1378
+ zoom.duration = function(_) {
1379
+ return arguments.length ? (duration = +_, zoom) : duration;
1380
+ };
1381
+
1382
+ zoom.interpolate = function(_) {
1383
+ return arguments.length ? (interpolate = _, zoom) : interpolate;
1384
+ };
1385
+
1386
+ zoom.on = function() {
1387
+ var value = listeners.on.apply(listeners, arguments);
1388
+ return value === listeners ? zoom : value;
1389
+ };
1390
+
1391
+ zoom.clickDistance = function(_) {
1392
+ return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
1393
+ };
1394
+
1395
+ return zoom;
1396
+ }
1397
+
1398
+ var css_248z = ".SNA {\n overflow: hidden;\n object-fit: contain;\n position: relative;\n font-size: 0.75rem;\n width: 100%;\n}\n.SNA--smallSize .node {\n padding-top: 8px;\n font-size: 0.75rem;\n width: 3rem;\n height: 3rem;\n overflow: hidden;\n white-space: pre-wrap;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.SNA .node {\n background-color: #4a4e69;\n border-radius: 50%;\n color: #fff;\n font-size: 20px;\n font-weight: 500;\n height: 54px;\n width: 54px;\n padding-top: 15px;\n position: absolute;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: grab;\n}\n.SNA .links line {\n stroke: #c7bfb4;\n stroke-width: 2;\n}\n.SNA .mainNode {\n fill: #4e3a16;\n}\n.SNA .person {\n fill: #867b3a;\n}\n.SNA .publication {\n fill: #825c0d;\n}\n.SNA .article {\n fill: #afafaf;\n}\n.SNA .keyword {\n fill: #fcfae8;\n}\n.SNA .org {\n fill: #000000;\n}\n.SNA #network-graph svg {\n width: 100%;\n height: 100%;\n}\n\n@media only screen and (max-width: 484px) {\n .SNA {\n margin-left: 0px;\n }\n .SNA .node {\n background-color: #4a4e69;\n border-radius: 50%;\n color: #fff;\n font-size: 1px;\n font-weight: 500;\n height: 44px;\n width: 44px;\n padding-top: 12px;\n position: absolute;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: grab;\n }\n}\n@media only screen and (max-width: 484px) {\n .SNA {\n margin-left: 0px;\n }\n}";
1399
+ styleInject(css_248z);
1400
+
1401
+ /* eslint-disable indent */
1402
+ var SNA = function SNA(props) {
1403
+ // common
1404
+ var className = props.className,
1405
+ intl = props.intl,
1406
+ exclude = props.exclude,
1407
+ distance = props.distance,
1408
+ SNAData = props.SNAData,
1409
+ handleClickNodeGoto = props.handleClickNodeGoto,
1410
+ DownloadExcel = props.DownloadExcel;
1411
+ // styles
1412
+ var width = props.width,
1413
+ height = props.height,
1414
+ fontColor = props.fontColor,
1415
+ backgroundColor = props.backgroundColor,
1416
+ iconColor = props.iconColor;
1417
+ var g;
1418
+ if (!SNAData || SNAData.nodes.length === 0) {
1419
+ return /*#__PURE__*/React__default.createElement("div", {
1420
+ className: "noData"
1421
+ }, intl ? intl.formatMessage({
1422
+ id: 'common.noData'
1423
+ }) : '暫無資料');
1424
+ }
1425
+ var contentWidth = useMemo(function () {
1426
+ return screen.width > 1050 ? width : screen.width - 80;
1427
+ }, [screen.width]);
1428
+ var contentHeight = useMemo(function () {
1429
+ return screen.width > 1050 ? height : screen.height - 300;
1430
+ }, [screen.width]);
1431
+ var translateType = function translateType(type) {
1432
+ switch (type) {
1433
+ case 'mainNode':
1434
+ // 主要搜尋中心
1435
+ return intl ? intl.formatMessage({
1436
+ id: 'SNA.search.center'
1437
+ }) : '主要搜尋中心';
1438
+ case 'organization':
1439
+ // 組織
1440
+ return intl ? intl.formatMessage({
1441
+ id: 'SNA.organization'
1442
+ }) : '組織';
1443
+ case 'person':
1444
+ // 作家
1445
+ return intl ? intl.formatMessage({
1446
+ id: 'SNA.author'
1447
+ }) : '作家';
1448
+ case 'publication':
1449
+ // 著作
1450
+ return intl ? intl.formatMessage({
1451
+ id: 'SNA.publication'
1452
+ }) : '作家';
1453
+ case 'article':
1454
+ // 單篇作品
1455
+ return intl ? intl.formatMessage({
1456
+ id: 'SNA.article'
1457
+ }) : '單篇作品';
1458
+ case 'keyword':
1459
+ // 關鍵字
1460
+ return intl ? intl.formatMessage({
1461
+ id: 'SNA.keyword'
1462
+ }) : '關鍵字';
1463
+ case 'event':
1464
+ // 事件
1465
+ return intl ? intl.formatMessage({
1466
+ id: 'SNA.event'
1467
+ }) : '事件';
1468
+ default:
1469
+ return '';
1470
+ }
1471
+ };
1472
+ var drag$1 = function drag$1(simulation) {
1473
+ function dragstarted(d) {
1474
+ if (!event.active) simulation.alphaTarget(0.3).restart();
1475
+ d.fx = d.x;
1476
+ d.fy = d.y;
1477
+ }
1478
+ function dragged(d) {
1479
+ d.fx = event.x > contentWidth - 10 || event.x < 20 ? d.x : event.x;
1480
+ d.fy = event.y > contentHeight - 10 || event.y < 20 ? d.y : event.y;
1481
+ }
1482
+ return drag().on('start', dragstarted).on('drag', dragged);
1483
+ };
1484
+ var calculateCurve = function calculateCurve(source, target, curveLen) {
1485
+ var mx = (target.x + source.x) * 0.5;
1486
+ var my = (target.y + source.y) * 0.5;
1487
+ var tsx = target.x - source.x;
1488
+ var tsy = target.y - source.y;
1489
+ var L = Math.pow(Math.pow(tsx, 2) + Math.pow(tsy, 2), 0.5);
1490
+ var qx = mx - tsy * curveLen / L;
1491
+ var qy = my + tsx * curveLen / L;
1492
+ return {
1493
+ qx: qx,
1494
+ qy: qy
1495
+ };
1496
+ };
1497
+ var getLineCurve = function getLineCurve(source, target, curveLen) {
1498
+ var _calculateCurve = calculateCurve(source, target, curveLen),
1499
+ qx = _calculateCurve.qx,
1500
+ qy = _calculateCurve.qy;
1501
+ if (isNaN(qx)) {
1502
+ return "M".concat(source.x, ", ").concat(source.y, " Q0 0 ").concat(target.x, " ").concat(target.y);
1503
+ }
1504
+ return "M".concat(source.x, ", ").concat(source.y, " Q").concat(qx, " ").concat(qy, " ").concat(target.x, " ").concat(target.y);
1505
+ };
1506
+ var init = function init(networkData) {
1507
+ var edgeLabelSize = '10px';
1508
+ var lineRaduis = 30;
1509
+ var nodeStroke = 1.5;
1510
+ var nodeRadius = 10 - nodeStroke;
1511
+ var mainNodeRadius = 15 - nodeStroke;
1512
+ var arrowPercent = 0.8;
1513
+ var arrowViewBox = "-0 -".concat(nodeRadius, " ").concat(nodeRadius * 2, " ").concat(nodeRadius * 2);
1514
+ var arrowPath = "M 0,-".concat(nodeRadius * arrowPercent, " L ").concat(nodeRadius * arrowPercent * 2, " ,0 L 0,").concat(nodeRadius * arrowPercent);
1515
+ var color = ordinal(category10);
1516
+ var links = networkData.links.map(function (d) {
1517
+ return Object.create(d);
1518
+ });
1519
+ var nodes = networkData.nodes.map(function (d) {
1520
+ return Object.create(d);
1521
+ });
1522
+ var simulation$1 = simulation(nodes).force('link', link(links).id(function (d) {
1523
+ return d.index;
1524
+ }).distance(50)).force('charge', manyBody().strength(-200).distanceMax(1000)).force('center', center(contentWidth / 2, contentHeight / 2)).force('collide', collide().radius(function () {
1525
+ return nodeRadius + 5;
1526
+ }).strength(1).iterations(10)).force('x', x(contentWidth / 2)).force('y', y(contentHeight / 2)).force('radial', radial(100, contentWidth / 1.5, contentHeight / 1.5));
1527
+ var svg = d3Select('#sna-graph').append('svg').attr('viewBox', [0, 0, contentWidth, contentHeight]).style('background-color', backgroundColor);
1528
+ svg.append('defs').append('marker').attr('id', 'arrowhead').attr('viewBox', arrowViewBox).attr('refX', nodeRadius * 2 + nodeRadius * arrowPercent).attr('refY', 0).attr('orient', 'auto').attr('markerWidth', nodeRadius * (1 + arrowPercent)).attr('markerHeight', nodeRadius * (1 + arrowPercent)).attr('xoverflow', 'visible').append('svg:path').attr('d', arrowPath).attr('fill', '#999').style('stroke', 'none');
1529
+ // 增加一層g用來包住所有的物件,並對此g加入縮放功能
1530
+ g = svg.append('g');
1531
+ var zoomActions = function zoomActions() {
1532
+ g.attr('transform', event.transform);
1533
+ };
1534
+ var zoomHandler = zoom().scaleExtent([0.5, 20]).extent([[0, 0], [contentWidth, contentHeight]]).on('zoom', zoomActions);
1535
+ zoomHandler(svg);
1536
+ var link$1 = g.append('g').attr('stroke', '#999').attr('stroke-opacity', 0.6).selectAll('line').data(links).join('path').attr('fill', 'none').attr('stroke-dasharray', function (d) {
1537
+ return d.ontology === 'protege' ? '2,5,3' : '';
1538
+ }).attr('key', function (d) {
1539
+ return d.type;
1540
+ });
1541
+ var node = g.append('g').attr('stroke', '#fff').attr('stroke-width', nodeStroke).selectAll('circle').data(nodes).join('circle').attr('r', function (d) {
1542
+ return d.type === 'mainNode' ? mainNodeRadius : nodeRadius;
1543
+ }).attr('fill', function (d) {
1544
+ return color(d.type);
1545
+ }).attr('key', function (d) {
1546
+ return d.type;
1547
+ }).attr('class', function (d) {
1548
+ return "node node-".concat(d.id, " ").concat(d.type && d.type === 'organization' ? 'org' : d.type === 'person' ? 'person' : d.type === 'publication' ? 'publication' : d.type === 'mainNode' ? 'mainNode' : d.type === 'article' ? 'article' : d.type === 'keyword' ? 'keyword' : d.type === 'event' ? 'event' : '');
1549
+ }).on('click', function (d) {
1550
+ return d.hasClick ? handleClickNodeGoto({
1551
+ name: d.name,
1552
+ id: d.id,
1553
+ type: d.type
1554
+ }) : null;
1555
+ }).call(drag$1(simulation$1));
1556
+ node.append('title').text(function (d) {
1557
+ return "".concat(d.name, "-").concat(translateType(d.type));
1558
+ });
1559
+ var nodeLabel = g.append('g').selectAll('text').data(nodes).join('text').attr('fill', fontColor).attr('text-anchor', 'middle').attr('key', function (d) {
1560
+ return d.type;
1561
+ }).style('color', '#fff').style('font-size', '14px').text(function (d) {
1562
+ return d.name;
1563
+ });
1564
+ var edgepaths = g.selectAll('.edgepath').data(links).enter().append('path').attr('class', 'edgepath').attr('fill-opacity', 0).attr('stroke-opacity', 0).attr('id', function (d, i) {
1565
+ return "edgepath".concat(i);
1566
+ }).style('pointer-events', 'none');
1567
+ var edgelabels = g.selectAll('.edgelabel').data(links).enter().append('text').style('pointer-events', 'none').attr('class', 'edgelabel').attr('font-size', edgeLabelSize).attr('fill', '#aaa').attr('visibility', 'visible').attr('key', function (d) {
1568
+ return d.type;
1569
+ }).attr('id', function (d, i) {
1570
+ return "edgelabel".concat(i);
1571
+ });
1572
+ edgelabels.append('textPath').attr('xlink:href', function (d, i) {
1573
+ return "#edgepath".concat(i);
1574
+ }).style('text-anchor', 'middle').style('pointer-events', 'none').attr('startOffset', '50%').text(function (d) {
1575
+ return d.property;
1576
+ });
1577
+ simulation$1.on('tick', function () {
1578
+ nodes.forEach(function (d) {
1579
+ // x軸 超過寬度380,回彈到380座標軸區域位置。 ——作用爲:超出範圍的回彈到視圖寬度範圍內
1580
+ if (d.x >= contentWidth - 20) {
1581
+ d.x = contentWidth - 20;
1582
+ }
1583
+ // y軸 超過高度280,回彈到280座標軸區域位置。 ——作用爲:超出範圍的回彈到視圖高度範圍內
1584
+ if (d.y >= contentHeight - 20) {
1585
+ d.y = contentHeight - 20;
1586
+ }
1587
+ if (d.x <= 20) {
1588
+ d.x = 20;
1589
+ }
1590
+ if (d.y <= 20) {
1591
+ d.y = 20;
1592
+ }
1593
+ });
1594
+ link$1.attr('d', function (d) {
1595
+ return getLineCurve(d.source, d.target, lineRaduis);
1596
+ });
1597
+ node.attr('cx', function (d) {
1598
+ return d.x;
1599
+ }).attr('cy', function (d) {
1600
+ return d.y;
1601
+ });
1602
+ nodeLabel.attr('x', function (d) {
1603
+ return d.x;
1604
+ }).attr('y', function (d) {
1605
+ return d.y - nodeRadius;
1606
+ });
1607
+ edgepaths.attr('d', function (d) {
1608
+ return getLineCurve(d.source, d.target, lineRaduis);
1609
+ });
1610
+ });
1611
+ };
1612
+ var renderSNA = function renderSNA() {
1613
+ if (SNAData && SNAData.nodes && SNAData.nodes.length > 0) {
1614
+ var div = document.getElementById('sna-graph');
1615
+ if (div && div.childNodes[0]) {
1616
+ div.removeChild(div.childNodes[0]);
1617
+ }
1618
+ init(SNAData);
1619
+ }
1620
+ };
1621
+
1622
+ // 資料異動或全螢幕切換,重新渲染網絡圖
1623
+ useEffect(function () {
1624
+ renderSNA();
1625
+ }, [SNAData]);
1626
+ return /*#__PURE__*/React__default.createElement("div", {
1627
+ className: classNames('SNA', {
1628
+ 'SNA--smallSize': distance < 200
1629
+ }, className),
1630
+ style: {
1631
+ contentWidth: contentWidth,
1632
+ contentHeight: contentHeight,
1633
+ backgroundColor: backgroundColor
1634
+ }
1635
+ }, /*#__PURE__*/React__default.createElement(ExtraTools, {
1636
+ data: SNAData,
1637
+ iconColor: iconColor,
1638
+ domToImageId: "sna-graph",
1639
+ FontSizeTargets: ['#sna-graph svg g text'],
1640
+ exclude: exclude,
1641
+ DownloadExcel: DownloadExcel,
1642
+ fullscreenDomId: "sna-graph",
1643
+ renderSNA: renderSNA
1644
+ }), /*#__PURE__*/React__default.createElement("div", {
1645
+ id: "sna-graph"
1646
+ }));
1647
+ };
1648
+ SNA.defaultProps = {
1649
+ className: undefined,
1650
+ intl: undefined,
1651
+ width: 1050,
1652
+ height: 600,
1653
+ distance: 400,
1654
+ SNAData: null,
1655
+ fontColor: '#000000',
1656
+ backgroundColor: '#FFFFFF',
1657
+ iconColor: '#825c0d',
1658
+ exclude: ['downloadXls', 'downloadTsv'],
1659
+ handleClickNodeGoto: null,
1660
+ DownloadExcel: undefined
1661
+ };
1662
+
1663
+ /* Write props detail information and 'npm run updateStory' will help you generate stories's argTypes */
1664
+ SNA.propTypes = {
1665
+ /** Css Name */
1666
+ className: PropTypes.string,
1667
+ /** 語言 */
1668
+ intl: PropTypes.objectOf(PropTypes.any),
1669
+ /** 寬度 */
1670
+ width: PropTypes.number,
1671
+ /** 高度 */
1672
+ height: PropTypes.number,
1673
+ /** 點跟點之間的距離 */
1674
+ distance: PropTypes.number,
1675
+ /** 資料 */
1676
+ SNAData: PropTypes.objectOf(PropTypes.any),
1677
+ /** 網絡圖文字顏色 */
1678
+ fontColor: PropTypes.string,
1679
+ /** 網絡圖背景顏色 */
1680
+ backgroundColor: PropTypes.string,
1681
+ /** icon顏色 */
1682
+ iconColor: PropTypes.string,
1683
+ /** 不顯示的按鈕 ['share', 'downloadImage', 'downloadTsv', 'downloadXls', 'fullscreen', 'fontSizeChanger'] */
1684
+ exclude: PropTypes.arrayOf(PropTypes.string),
1685
+ /** 按下點後要轉址的功能 */
1686
+ handleClickNodeGoto: PropTypes.func,
1687
+ /** Download元件, 由外部傳入的原因是需要環境設定 */
1688
+ DownloadExcel: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
1689
+ };
1690
+
1691
+ export { SNA as default };