@daoyi/nmtl-ui 2.0.1-beta.13 → 2.0.1-beta.130

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/lib/components/Autocomplete-3b418e5f.js +494 -0
  2. package/lib/components/Autocomplete.js +20 -1
  3. package/lib/components/Avatar.js +59 -1
  4. package/lib/components/BackTop.js +124 -1
  5. package/lib/components/BarChart.js +764 -1
  6. package/lib/components/Breadcrumbs.js +122 -1
  7. package/lib/components/Button-7bd5aa09.js +114 -0
  8. package/lib/components/Button.js +7 -1
  9. package/lib/components/Carousel.js +4654 -1
  10. package/lib/components/Checkbox.js +37 -1
  11. package/lib/components/CollapseContent.js +180 -1
  12. package/lib/components/ContactModal-7e5b14e8.js +12188 -0
  13. package/lib/components/ContactModal.js +24 -3
  14. package/lib/components/Drawer-629e59c7.js +176 -0
  15. package/lib/components/Drawer.js +17 -1
  16. package/lib/components/Dropdown.js +134 -1
  17. package/lib/components/Empty-c6a44967.js +46 -0
  18. package/lib/components/Empty.js +5 -1
  19. package/lib/components/ExportButton.js +128 -1
  20. package/lib/components/ExtraTools-2691c13e.js +3676 -0
  21. package/lib/components/ExtraTools.js +11 -22
  22. package/lib/components/Filter.js +821 -12
  23. package/lib/components/Footer.js +317 -1
  24. package/lib/components/ForwardLink-5fbd2705.js +184 -0
  25. package/lib/components/ForwardLink.js +10 -0
  26. package/lib/components/Header.js +233 -1
  27. package/lib/components/Image.js +61 -1
  28. package/lib/components/Input.js +89 -1
  29. package/lib/components/InputMethod.js +33949 -12
  30. package/lib/components/KeywordSearch-fec33a2c.js +156 -0
  31. package/lib/components/KeywordSearch.js +22 -1
  32. package/lib/components/KeywordTicker.js +224 -1
  33. package/lib/components/Keywords.js +383 -1
  34. package/lib/components/Loading.js +32 -1
  35. package/lib/components/MUITheme.js +2657 -1
  36. package/lib/components/Modal-e04532fa.js +127 -0
  37. package/lib/components/Modal.js +11 -1
  38. package/lib/components/MoreButton-19055e07.js +148 -0
  39. package/lib/components/MoreButton.js +8 -1
  40. package/lib/components/Pagination.js +3702 -0
  41. package/lib/components/Radio.js +83 -1
  42. package/lib/components/SNA.js +1755 -22
  43. package/lib/components/Select-cb3e1ba1.js +189 -0
  44. package/lib/components/Select.js +14 -1
  45. package/lib/components/Spin-8f87eadc.js +79 -0
  46. package/lib/components/Spin.js +7 -1
  47. package/lib/components/Table.js +51 -1
  48. package/lib/components/Tooltip-6ebfa9c1.js +70 -0
  49. package/lib/components/Tooltip.js +7 -1
  50. package/lib/components/_commonjsHelpers-70de2c37.js +28 -0
  51. package/lib/components/_rollupPluginBabelHelpers-a52356f6.js +142 -0
  52. package/lib/components/createSvgIcon-e3803ee1.js +576 -0
  53. package/lib/components/dataExport-a9e3fae1.js +91 -0
  54. package/lib/components/debounce-127da66c.js +355 -0
  55. package/lib/components/defaultTheme-ed7746fe.js +1661 -0
  56. package/lib/components/globalConfig.js +423 -0
  57. package/lib/components/hoist-non-react-statics.cjs-3f408ad2.js +105 -0
  58. package/lib/components/index-b47819f3.js +481 -0
  59. package/lib/components/index-b76a85f4.js +61 -0
  60. package/lib/components/isObjectLike-e111475d.js +190 -0
  61. package/lib/components/style-inject.es-1f59c1d0.js +28 -1
  62. package/lib/components/toConsumableArray-dbe8af76.js +19 -0
  63. package/lib/components/transform-849a452c.js +5475 -0
  64. package/lib/components/useTheme-d16d02d9.js +11 -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 +5 -1
  70. package/lib/index.js +5 -1
  71. package/lib/utils/_rollupPluginBabelHelpers-9802e640.js +121 -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 +221 -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 +134 -128
  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,1755 @@
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 J=Math.SQRT2;function K(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)/J,n=function(e){return[o+e*s,i+e*f,a*Math.exp(J*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)/J,n=function(e){var t=e*r,n=K(y),l=a/(2*d)*(n*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(J*t+y)-function(e){return((e=Math.exp(e))-1/e)/2}(y));return[o+l*s,i+l*f,a*n/K(J*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,Je,Ke=(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"},(Je=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},Je),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(Ke,{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)}}),[JSON.stringify(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-b76a85f4.js';
4
+ import { s as select, c as creator, e as event, d as dispatch, a 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-849a452c.js';
5
+ import { E as ExtraTools } from './ExtraTools-2691c13e.js';
6
+ import { getIntl } from './globalConfig';
7
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
8
+ import './_rollupPluginBabelHelpers-a52356f6.js';
9
+ import './_commonjsHelpers-70de2c37.js';
10
+ import '@material-ui/core';
11
+ import './Tooltip-6ebfa9c1.js';
12
+ import './dataExport-a9e3fae1.js';
13
+
14
+ function d3Create(name) {
15
+ return select(creator(name).call(document.documentElement));
16
+ }
17
+
18
+ function sourceEvent() {
19
+ var current = event, source;
20
+ while (source = current.sourceEvent) current = source;
21
+ return current;
22
+ }
23
+
24
+ function point(node, event) {
25
+ var svg = node.ownerSVGElement || node;
26
+
27
+ if (svg.createSVGPoint) {
28
+ var point = svg.createSVGPoint();
29
+ point.x = event.clientX, point.y = event.clientY;
30
+ point = point.matrixTransform(node.getScreenCTM().inverse());
31
+ return [point.x, point.y];
32
+ }
33
+
34
+ var rect = node.getBoundingClientRect();
35
+ return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
36
+ }
37
+
38
+ function mouse(node) {
39
+ var event = sourceEvent();
40
+ if (event.changedTouches) event = event.changedTouches[0];
41
+ return point(node, event);
42
+ }
43
+
44
+ function touch(node, touches, identifier) {
45
+ if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;
46
+
47
+ for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
48
+ if ((touch = touches[i]).identifier === identifier) {
49
+ return point(node, touch);
50
+ }
51
+ }
52
+
53
+ return null;
54
+ }
55
+
56
+ function nopropagation$1() {
57
+ event.stopImmediatePropagation();
58
+ }
59
+
60
+ function noevent$1() {
61
+ event.preventDefault();
62
+ event.stopImmediatePropagation();
63
+ }
64
+
65
+ function dragDisable(view) {
66
+ var root = view.document.documentElement,
67
+ selection = select(view).on("dragstart.drag", noevent$1, true);
68
+ if ("onselectstart" in root) {
69
+ selection.on("selectstart.drag", noevent$1, true);
70
+ } else {
71
+ root.__noselect = root.style.MozUserSelect;
72
+ root.style.MozUserSelect = "none";
73
+ }
74
+ }
75
+
76
+ function yesdrag(view, noclick) {
77
+ var root = view.document.documentElement,
78
+ selection = select(view).on("dragstart.drag", null);
79
+ if (noclick) {
80
+ selection.on("click.drag", noevent$1, true);
81
+ setTimeout(function() { selection.on("click.drag", null); }, 0);
82
+ }
83
+ if ("onselectstart" in root) {
84
+ selection.on("selectstart.drag", null);
85
+ } else {
86
+ root.style.MozUserSelect = root.__noselect;
87
+ delete root.__noselect;
88
+ }
89
+ }
90
+
91
+ function constant$2(x) {
92
+ return function() {
93
+ return x;
94
+ };
95
+ }
96
+
97
+ // Ignore right-click, since that should open the context menu.
98
+ function defaultFilter$1() {
99
+ return !event.ctrlKey && !event.button;
100
+ }
101
+
102
+ function defaultContainer() {
103
+ return this.parentNode;
104
+ }
105
+
106
+ function defaultSubject(d) {
107
+ return d == null ? {x: event.x, y: event.y} : d;
108
+ }
109
+
110
+ function defaultTouchable$1() {
111
+ return navigator.maxTouchPoints || ("ontouchstart" in this);
112
+ }
113
+
114
+ function drag() {
115
+ var filter = defaultFilter$1,
116
+ container = defaultContainer,
117
+ subject = defaultSubject,
118
+ touchable = defaultTouchable$1,
119
+ gestures = {},
120
+ listeners = dispatch("start", "drag", "end"),
121
+ active = 0,
122
+ mousedownx,
123
+ mousedowny,
124
+ mousemoving,
125
+ touchending,
126
+ clickDistance2 = 0;
127
+
128
+ function drag(selection) {
129
+ selection
130
+ .on("mousedown.drag", mousedowned)
131
+ .filter(touchable)
132
+ .on("touchstart.drag", touchstarted)
133
+ .on("touchmove.drag", touchmoved)
134
+ .on("touchend.drag touchcancel.drag", touchended)
135
+ .style("touch-action", "none")
136
+ .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
137
+ }
138
+
139
+ function mousedowned() {
140
+ if (touchending || !filter.apply(this, arguments)) return;
141
+ var gesture = beforestart("mouse", container.apply(this, arguments), mouse, this, arguments);
142
+ if (!gesture) return;
143
+ select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true);
144
+ dragDisable(event.view);
145
+ nopropagation$1();
146
+ mousemoving = false;
147
+ mousedownx = event.clientX;
148
+ mousedowny = event.clientY;
149
+ gesture("start");
150
+ }
151
+
152
+ function mousemoved() {
153
+ noevent$1();
154
+ if (!mousemoving) {
155
+ var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
156
+ mousemoving = dx * dx + dy * dy > clickDistance2;
157
+ }
158
+ gestures.mouse("drag");
159
+ }
160
+
161
+ function mouseupped() {
162
+ select(event.view).on("mousemove.drag mouseup.drag", null);
163
+ yesdrag(event.view, mousemoving);
164
+ noevent$1();
165
+ gestures.mouse("end");
166
+ }
167
+
168
+ function touchstarted() {
169
+ if (!filter.apply(this, arguments)) return;
170
+ var touches = event.changedTouches,
171
+ c = container.apply(this, arguments),
172
+ n = touches.length, i, gesture;
173
+
174
+ for (i = 0; i < n; ++i) {
175
+ if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {
176
+ nopropagation$1();
177
+ gesture("start");
178
+ }
179
+ }
180
+ }
181
+
182
+ function touchmoved() {
183
+ var touches = event.changedTouches,
184
+ n = touches.length, i, gesture;
185
+
186
+ for (i = 0; i < n; ++i) {
187
+ if (gesture = gestures[touches[i].identifier]) {
188
+ noevent$1();
189
+ gesture("drag");
190
+ }
191
+ }
192
+ }
193
+
194
+ function touchended() {
195
+ var touches = event.changedTouches,
196
+ n = touches.length, i, gesture;
197
+
198
+ if (touchending) clearTimeout(touchending);
199
+ touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
200
+ for (i = 0; i < n; ++i) {
201
+ if (gesture = gestures[touches[i].identifier]) {
202
+ nopropagation$1();
203
+ gesture("end");
204
+ }
205
+ }
206
+ }
207
+
208
+ function beforestart(id, container, point, that, args) {
209
+ var p = point(container, id), s, dx, dy,
210
+ sublisteners = listeners.copy();
211
+
212
+ if (!customEvent(new DragEvent(drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {
213
+ if ((event.subject = s = subject.apply(that, args)) == null) return false;
214
+ dx = s.x - p[0] || 0;
215
+ dy = s.y - p[1] || 0;
216
+ return true;
217
+ })) return;
218
+
219
+ return function gesture(type) {
220
+ var p0 = p, n;
221
+ switch (type) {
222
+ case "start": gestures[id] = gesture, n = active++; break;
223
+ case "end": delete gestures[id], --active; // nobreak
224
+ case "drag": p = point(container, id), n = active; break;
225
+ }
226
+ 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]);
227
+ };
228
+ }
229
+
230
+ drag.filter = function(_) {
231
+ return arguments.length ? (filter = typeof _ === "function" ? _ : constant$2(!!_), drag) : filter;
232
+ };
233
+
234
+ drag.container = function(_) {
235
+ return arguments.length ? (container = typeof _ === "function" ? _ : constant$2(_), drag) : container;
236
+ };
237
+
238
+ drag.subject = function(_) {
239
+ return arguments.length ? (subject = typeof _ === "function" ? _ : constant$2(_), drag) : subject;
240
+ };
241
+
242
+ drag.touchable = function(_) {
243
+ return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$2(!!_), drag) : touchable;
244
+ };
245
+
246
+ drag.on = function() {
247
+ var value = listeners.on.apply(listeners, arguments);
248
+ return value === listeners ? drag : value;
249
+ };
250
+
251
+ drag.clickDistance = function(_) {
252
+ return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
253
+ };
254
+
255
+ return drag;
256
+ }
257
+
258
+ var rho = Math.SQRT2,
259
+ rho2 = 2,
260
+ rho4 = 4,
261
+ epsilon2 = 1e-12;
262
+
263
+ function cosh(x) {
264
+ return ((x = Math.exp(x)) + 1 / x) / 2;
265
+ }
266
+
267
+ function sinh(x) {
268
+ return ((x = Math.exp(x)) - 1 / x) / 2;
269
+ }
270
+
271
+ function tanh(x) {
272
+ return ((x = Math.exp(2 * x)) - 1) / (x + 1);
273
+ }
274
+
275
+ // p0 = [ux0, uy0, w0]
276
+ // p1 = [ux1, uy1, w1]
277
+ function interpolateZoom(p0, p1) {
278
+ var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
279
+ ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
280
+ dx = ux1 - ux0,
281
+ dy = uy1 - uy0,
282
+ d2 = dx * dx + dy * dy,
283
+ i,
284
+ S;
285
+
286
+ // Special case for u0 ≅ u1.
287
+ if (d2 < epsilon2) {
288
+ S = Math.log(w1 / w0) / rho;
289
+ i = function(t) {
290
+ return [
291
+ ux0 + t * dx,
292
+ uy0 + t * dy,
293
+ w0 * Math.exp(rho * t * S)
294
+ ];
295
+ };
296
+ }
297
+
298
+ // General case.
299
+ else {
300
+ var d1 = Math.sqrt(d2),
301
+ b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
302
+ b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
303
+ r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
304
+ r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
305
+ S = (r1 - r0) / rho;
306
+ i = function(t) {
307
+ var s = t * S,
308
+ coshr0 = cosh(r0),
309
+ u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
310
+ return [
311
+ ux0 + u * dx,
312
+ uy0 + u * dy,
313
+ w0 * coshr0 / cosh(rho * s + r0)
314
+ ];
315
+ };
316
+ }
317
+
318
+ i.duration = S * 1000;
319
+
320
+ return i;
321
+ }
322
+
323
+ function center(x, y) {
324
+ var nodes;
325
+
326
+ if (x == null) x = 0;
327
+ if (y == null) y = 0;
328
+
329
+ function force() {
330
+ var i,
331
+ n = nodes.length,
332
+ node,
333
+ sx = 0,
334
+ sy = 0;
335
+
336
+ for (i = 0; i < n; ++i) {
337
+ node = nodes[i], sx += node.x, sy += node.y;
338
+ }
339
+
340
+ for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
341
+ node = nodes[i], node.x -= sx, node.y -= sy;
342
+ }
343
+ }
344
+
345
+ force.initialize = function(_) {
346
+ nodes = _;
347
+ };
348
+
349
+ force.x = function(_) {
350
+ return arguments.length ? (x = +_, force) : x;
351
+ };
352
+
353
+ force.y = function(_) {
354
+ return arguments.length ? (y = +_, force) : y;
355
+ };
356
+
357
+ return force;
358
+ }
359
+
360
+ function constant$1(x) {
361
+ return function() {
362
+ return x;
363
+ };
364
+ }
365
+
366
+ function jiggle() {
367
+ return (Math.random() - 0.5) * 1e-6;
368
+ }
369
+
370
+ function x$2(d) {
371
+ return d.x + d.vx;
372
+ }
373
+
374
+ function y$2(d) {
375
+ return d.y + d.vy;
376
+ }
377
+
378
+ function collide(radius) {
379
+ var nodes,
380
+ radii,
381
+ strength = 1,
382
+ iterations = 1;
383
+
384
+ if (typeof radius !== "function") radius = constant$1(radius == null ? 1 : +radius);
385
+
386
+ function force() {
387
+ var i, n = nodes.length,
388
+ tree,
389
+ node,
390
+ xi,
391
+ yi,
392
+ ri,
393
+ ri2;
394
+
395
+ for (var k = 0; k < iterations; ++k) {
396
+ tree = quadtree(nodes, x$2, y$2).visitAfter(prepare);
397
+ for (i = 0; i < n; ++i) {
398
+ node = nodes[i];
399
+ ri = radii[node.index], ri2 = ri * ri;
400
+ xi = node.x + node.vx;
401
+ yi = node.y + node.vy;
402
+ tree.visit(apply);
403
+ }
404
+ }
405
+
406
+ function apply(quad, x0, y0, x1, y1) {
407
+ var data = quad.data, rj = quad.r, r = ri + rj;
408
+ if (data) {
409
+ if (data.index > node.index) {
410
+ var x = xi - data.x - data.vx,
411
+ y = yi - data.y - data.vy,
412
+ l = x * x + y * y;
413
+ if (l < r * r) {
414
+ if (x === 0) x = jiggle(), l += x * x;
415
+ if (y === 0) y = jiggle(), l += y * y;
416
+ l = (r - (l = Math.sqrt(l))) / l * strength;
417
+ node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
418
+ node.vy += (y *= l) * r;
419
+ data.vx -= x * (r = 1 - r);
420
+ data.vy -= y * r;
421
+ }
422
+ }
423
+ return;
424
+ }
425
+ return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
426
+ }
427
+ }
428
+
429
+ function prepare(quad) {
430
+ if (quad.data) return quad.r = radii[quad.data.index];
431
+ for (var i = quad.r = 0; i < 4; ++i) {
432
+ if (quad[i] && quad[i].r > quad.r) {
433
+ quad.r = quad[i].r;
434
+ }
435
+ }
436
+ }
437
+
438
+ function initialize() {
439
+ if (!nodes) return;
440
+ var i, n = nodes.length, node;
441
+ radii = new Array(n);
442
+ for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
443
+ }
444
+
445
+ force.initialize = function(_) {
446
+ nodes = _;
447
+ initialize();
448
+ };
449
+
450
+ force.iterations = function(_) {
451
+ return arguments.length ? (iterations = +_, force) : iterations;
452
+ };
453
+
454
+ force.strength = function(_) {
455
+ return arguments.length ? (strength = +_, force) : strength;
456
+ };
457
+
458
+ force.radius = function(_) {
459
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : radius;
460
+ };
461
+
462
+ return force;
463
+ }
464
+
465
+ function index(d) {
466
+ return d.index;
467
+ }
468
+
469
+ function find(nodeById, nodeId) {
470
+ var node = nodeById.get(nodeId);
471
+ if (!node) throw new Error("missing: " + nodeId);
472
+ return node;
473
+ }
474
+
475
+ function link(links) {
476
+ var id = index,
477
+ strength = defaultStrength,
478
+ strengths,
479
+ distance = constant$1(30),
480
+ distances,
481
+ nodes,
482
+ count,
483
+ bias,
484
+ iterations = 1;
485
+
486
+ if (links == null) links = [];
487
+
488
+ function defaultStrength(link) {
489
+ return 1 / Math.min(count[link.source.index], count[link.target.index]);
490
+ }
491
+
492
+ function force(alpha) {
493
+ for (var k = 0, n = links.length; k < iterations; ++k) {
494
+ for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
495
+ link = links[i], source = link.source, target = link.target;
496
+ x = target.x + target.vx - source.x - source.vx || jiggle();
497
+ y = target.y + target.vy - source.y - source.vy || jiggle();
498
+ l = Math.sqrt(x * x + y * y);
499
+ l = (l - distances[i]) / l * alpha * strengths[i];
500
+ x *= l, y *= l;
501
+ target.vx -= x * (b = bias[i]);
502
+ target.vy -= y * b;
503
+ source.vx += x * (b = 1 - b);
504
+ source.vy += y * b;
505
+ }
506
+ }
507
+ }
508
+
509
+ function initialize() {
510
+ if (!nodes) return;
511
+
512
+ var i,
513
+ n = nodes.length,
514
+ m = links.length,
515
+ nodeById = map(nodes, id),
516
+ link;
517
+
518
+ for (i = 0, count = new Array(n); i < m; ++i) {
519
+ link = links[i], link.index = i;
520
+ if (typeof link.source !== "object") link.source = find(nodeById, link.source);
521
+ if (typeof link.target !== "object") link.target = find(nodeById, link.target);
522
+ count[link.source.index] = (count[link.source.index] || 0) + 1;
523
+ count[link.target.index] = (count[link.target.index] || 0) + 1;
524
+ }
525
+
526
+ for (i = 0, bias = new Array(m); i < m; ++i) {
527
+ link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
528
+ }
529
+
530
+ strengths = new Array(m), initializeStrength();
531
+ distances = new Array(m), initializeDistance();
532
+ }
533
+
534
+ function initializeStrength() {
535
+ if (!nodes) return;
536
+
537
+ for (var i = 0, n = links.length; i < n; ++i) {
538
+ strengths[i] = +strength(links[i], i, links);
539
+ }
540
+ }
541
+
542
+ function initializeDistance() {
543
+ if (!nodes) return;
544
+
545
+ for (var i = 0, n = links.length; i < n; ++i) {
546
+ distances[i] = +distance(links[i], i, links);
547
+ }
548
+ }
549
+
550
+ force.initialize = function(_) {
551
+ nodes = _;
552
+ initialize();
553
+ };
554
+
555
+ force.links = function(_) {
556
+ return arguments.length ? (links = _, initialize(), force) : links;
557
+ };
558
+
559
+ force.id = function(_) {
560
+ return arguments.length ? (id = _, force) : id;
561
+ };
562
+
563
+ force.iterations = function(_) {
564
+ return arguments.length ? (iterations = +_, force) : iterations;
565
+ };
566
+
567
+ force.strength = function(_) {
568
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initializeStrength(), force) : strength;
569
+ };
570
+
571
+ force.distance = function(_) {
572
+ return arguments.length ? (distance = typeof _ === "function" ? _ : constant$1(+_), initializeDistance(), force) : distance;
573
+ };
574
+
575
+ return force;
576
+ }
577
+
578
+ function x$1(d) {
579
+ return d.x;
580
+ }
581
+
582
+ function y$1(d) {
583
+ return d.y;
584
+ }
585
+
586
+ var initialRadius = 10,
587
+ initialAngle = Math.PI * (3 - Math.sqrt(5));
588
+
589
+ function simulation(nodes) {
590
+ var simulation,
591
+ alpha = 1,
592
+ alphaMin = 0.001,
593
+ alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
594
+ alphaTarget = 0,
595
+ velocityDecay = 0.6,
596
+ forces = map(),
597
+ stepper = timer(step),
598
+ event = dispatch("tick", "end");
599
+
600
+ if (nodes == null) nodes = [];
601
+
602
+ function step() {
603
+ tick();
604
+ event.call("tick", simulation);
605
+ if (alpha < alphaMin) {
606
+ stepper.stop();
607
+ event.call("end", simulation);
608
+ }
609
+ }
610
+
611
+ function tick(iterations) {
612
+ var i, n = nodes.length, node;
613
+
614
+ if (iterations === undefined) iterations = 1;
615
+
616
+ for (var k = 0; k < iterations; ++k) {
617
+ alpha += (alphaTarget - alpha) * alphaDecay;
618
+
619
+ forces.each(function (force) {
620
+ force(alpha);
621
+ });
622
+
623
+ for (i = 0; i < n; ++i) {
624
+ node = nodes[i];
625
+ if (node.fx == null) node.x += node.vx *= velocityDecay;
626
+ else node.x = node.fx, node.vx = 0;
627
+ if (node.fy == null) node.y += node.vy *= velocityDecay;
628
+ else node.y = node.fy, node.vy = 0;
629
+ }
630
+ }
631
+
632
+ return simulation;
633
+ }
634
+
635
+ function initializeNodes() {
636
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
637
+ node = nodes[i], node.index = i;
638
+ if (node.fx != null) node.x = node.fx;
639
+ if (node.fy != null) node.y = node.fy;
640
+ if (isNaN(node.x) || isNaN(node.y)) {
641
+ var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
642
+ node.x = radius * Math.cos(angle);
643
+ node.y = radius * Math.sin(angle);
644
+ }
645
+ if (isNaN(node.vx) || isNaN(node.vy)) {
646
+ node.vx = node.vy = 0;
647
+ }
648
+ }
649
+ }
650
+
651
+ function initializeForce(force) {
652
+ if (force.initialize) force.initialize(nodes);
653
+ return force;
654
+ }
655
+
656
+ initializeNodes();
657
+
658
+ return simulation = {
659
+ tick: tick,
660
+
661
+ restart: function() {
662
+ return stepper.restart(step), simulation;
663
+ },
664
+
665
+ stop: function() {
666
+ return stepper.stop(), simulation;
667
+ },
668
+
669
+ nodes: function(_) {
670
+ return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
671
+ },
672
+
673
+ alpha: function(_) {
674
+ return arguments.length ? (alpha = +_, simulation) : alpha;
675
+ },
676
+
677
+ alphaMin: function(_) {
678
+ return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
679
+ },
680
+
681
+ alphaDecay: function(_) {
682
+ return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
683
+ },
684
+
685
+ alphaTarget: function(_) {
686
+ return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
687
+ },
688
+
689
+ velocityDecay: function(_) {
690
+ return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
691
+ },
692
+
693
+ force: function(name, _) {
694
+ return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
695
+ },
696
+
697
+ find: function(x, y, radius) {
698
+ var i = 0,
699
+ n = nodes.length,
700
+ dx,
701
+ dy,
702
+ d2,
703
+ node,
704
+ closest;
705
+
706
+ if (radius == null) radius = Infinity;
707
+ else radius *= radius;
708
+
709
+ for (i = 0; i < n; ++i) {
710
+ node = nodes[i];
711
+ dx = x - node.x;
712
+ dy = y - node.y;
713
+ d2 = dx * dx + dy * dy;
714
+ if (d2 < radius) closest = node, radius = d2;
715
+ }
716
+
717
+ return closest;
718
+ },
719
+
720
+ on: function(name, _) {
721
+ return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
722
+ }
723
+ };
724
+ }
725
+
726
+ function manyBody() {
727
+ var nodes,
728
+ node,
729
+ alpha,
730
+ strength = constant$1(-30),
731
+ strengths,
732
+ distanceMin2 = 1,
733
+ distanceMax2 = Infinity,
734
+ theta2 = 0.81;
735
+
736
+ function force(_) {
737
+ var i, n = nodes.length, tree = quadtree(nodes, x$1, y$1).visitAfter(accumulate);
738
+ for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
739
+ }
740
+
741
+ function initialize() {
742
+ if (!nodes) return;
743
+ var i, n = nodes.length, node;
744
+ strengths = new Array(n);
745
+ for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
746
+ }
747
+
748
+ function accumulate(quad) {
749
+ var strength = 0, q, c, weight = 0, x, y, i;
750
+
751
+ // For internal nodes, accumulate forces from child quadrants.
752
+ if (quad.length) {
753
+ for (x = y = i = 0; i < 4; ++i) {
754
+ if ((q = quad[i]) && (c = Math.abs(q.value))) {
755
+ strength += q.value, weight += c, x += c * q.x, y += c * q.y;
756
+ }
757
+ }
758
+ quad.x = x / weight;
759
+ quad.y = y / weight;
760
+ }
761
+
762
+ // For leaf nodes, accumulate forces from coincident quadrants.
763
+ else {
764
+ q = quad;
765
+ q.x = q.data.x;
766
+ q.y = q.data.y;
767
+ do strength += strengths[q.data.index];
768
+ while (q = q.next);
769
+ }
770
+
771
+ quad.value = strength;
772
+ }
773
+
774
+ function apply(quad, x1, _, x2) {
775
+ if (!quad.value) return true;
776
+
777
+ var x = quad.x - node.x,
778
+ y = quad.y - node.y,
779
+ w = x2 - x1,
780
+ l = x * x + y * y;
781
+
782
+ // Apply the Barnes-Hut approximation if possible.
783
+ // Limit forces for very close nodes; randomize direction if coincident.
784
+ if (w * w / theta2 < l) {
785
+ if (l < distanceMax2) {
786
+ if (x === 0) x = jiggle(), l += x * x;
787
+ if (y === 0) y = jiggle(), l += y * y;
788
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
789
+ node.vx += x * quad.value * alpha / l;
790
+ node.vy += y * quad.value * alpha / l;
791
+ }
792
+ return true;
793
+ }
794
+
795
+ // Otherwise, process points directly.
796
+ else if (quad.length || l >= distanceMax2) return;
797
+
798
+ // Limit forces for very close nodes; randomize direction if coincident.
799
+ if (quad.data !== node || quad.next) {
800
+ if (x === 0) x = jiggle(), l += x * x;
801
+ if (y === 0) y = jiggle(), l += y * y;
802
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
803
+ }
804
+
805
+ do if (quad.data !== node) {
806
+ w = strengths[quad.data.index] * alpha / l;
807
+ node.vx += x * w;
808
+ node.vy += y * w;
809
+ } while (quad = quad.next);
810
+ }
811
+
812
+ force.initialize = function(_) {
813
+ nodes = _;
814
+ initialize();
815
+ };
816
+
817
+ force.strength = function(_) {
818
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
819
+ };
820
+
821
+ force.distanceMin = function(_) {
822
+ return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
823
+ };
824
+
825
+ force.distanceMax = function(_) {
826
+ return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
827
+ };
828
+
829
+ force.theta = function(_) {
830
+ return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
831
+ };
832
+
833
+ return force;
834
+ }
835
+
836
+ function radial(radius, x, y) {
837
+ var nodes,
838
+ strength = constant$1(0.1),
839
+ strengths,
840
+ radiuses;
841
+
842
+ if (typeof radius !== "function") radius = constant$1(+radius);
843
+ if (x == null) x = 0;
844
+ if (y == null) y = 0;
845
+
846
+ function force(alpha) {
847
+ for (var i = 0, n = nodes.length; i < n; ++i) {
848
+ var node = nodes[i],
849
+ dx = node.x - x || 1e-6,
850
+ dy = node.y - y || 1e-6,
851
+ r = Math.sqrt(dx * dx + dy * dy),
852
+ k = (radiuses[i] - r) * strengths[i] * alpha / r;
853
+ node.vx += dx * k;
854
+ node.vy += dy * k;
855
+ }
856
+ }
857
+
858
+ function initialize() {
859
+ if (!nodes) return;
860
+ var i, n = nodes.length;
861
+ strengths = new Array(n);
862
+ radiuses = new Array(n);
863
+ for (i = 0; i < n; ++i) {
864
+ radiuses[i] = +radius(nodes[i], i, nodes);
865
+ strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
866
+ }
867
+ }
868
+
869
+ force.initialize = function(_) {
870
+ nodes = _, initialize();
871
+ };
872
+
873
+ force.strength = function(_) {
874
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
875
+ };
876
+
877
+ force.radius = function(_) {
878
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : radius;
879
+ };
880
+
881
+ force.x = function(_) {
882
+ return arguments.length ? (x = +_, force) : x;
883
+ };
884
+
885
+ force.y = function(_) {
886
+ return arguments.length ? (y = +_, force) : y;
887
+ };
888
+
889
+ return force;
890
+ }
891
+
892
+ function x(x) {
893
+ var strength = constant$1(0.1),
894
+ nodes,
895
+ strengths,
896
+ xz;
897
+
898
+ if (typeof x !== "function") x = constant$1(x == null ? 0 : +x);
899
+
900
+ function force(alpha) {
901
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
902
+ node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
903
+ }
904
+ }
905
+
906
+ function initialize() {
907
+ if (!nodes) return;
908
+ var i, n = nodes.length;
909
+ strengths = new Array(n);
910
+ xz = new Array(n);
911
+ for (i = 0; i < n; ++i) {
912
+ strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
913
+ }
914
+ }
915
+
916
+ force.initialize = function(_) {
917
+ nodes = _;
918
+ initialize();
919
+ };
920
+
921
+ force.strength = function(_) {
922
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
923
+ };
924
+
925
+ force.x = function(_) {
926
+ return arguments.length ? (x = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : x;
927
+ };
928
+
929
+ return force;
930
+ }
931
+
932
+ function y(y) {
933
+ var strength = constant$1(0.1),
934
+ nodes,
935
+ strengths,
936
+ yz;
937
+
938
+ if (typeof y !== "function") y = constant$1(y == null ? 0 : +y);
939
+
940
+ function force(alpha) {
941
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
942
+ node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
943
+ }
944
+ }
945
+
946
+ function initialize() {
947
+ if (!nodes) return;
948
+ var i, n = nodes.length;
949
+ strengths = new Array(n);
950
+ yz = new Array(n);
951
+ for (i = 0; i < n; ++i) {
952
+ strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
953
+ }
954
+ }
955
+
956
+ force.initialize = function(_) {
957
+ nodes = _;
958
+ initialize();
959
+ };
960
+
961
+ force.strength = function(_) {
962
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : strength;
963
+ };
964
+
965
+ force.y = function(_) {
966
+ return arguments.length ? (y = typeof _ === "function" ? _ : constant$1(+_), initialize(), force) : y;
967
+ };
968
+
969
+ return force;
970
+ }
971
+
972
+ function constant(x) {
973
+ return function() {
974
+ return x;
975
+ };
976
+ }
977
+
978
+ function ZoomEvent(target, type, transform) {
979
+ this.target = target;
980
+ this.type = type;
981
+ this.transform = transform;
982
+ }
983
+
984
+ function nopropagation() {
985
+ event.stopImmediatePropagation();
986
+ }
987
+
988
+ function noevent() {
989
+ event.preventDefault();
990
+ event.stopImmediatePropagation();
991
+ }
992
+
993
+ // Ignore right-click, since that should open the context menu.
994
+ function defaultFilter() {
995
+ return !event.ctrlKey && !event.button;
996
+ }
997
+
998
+ function defaultExtent() {
999
+ var e = this;
1000
+ if (e instanceof SVGElement) {
1001
+ e = e.ownerSVGElement || e;
1002
+ if (e.hasAttribute("viewBox")) {
1003
+ e = e.viewBox.baseVal;
1004
+ return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
1005
+ }
1006
+ return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
1007
+ }
1008
+ return [[0, 0], [e.clientWidth, e.clientHeight]];
1009
+ }
1010
+
1011
+ function defaultTransform() {
1012
+ return this.__zoom || identity;
1013
+ }
1014
+
1015
+ function defaultWheelDelta() {
1016
+ return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);
1017
+ }
1018
+
1019
+ function defaultTouchable() {
1020
+ return navigator.maxTouchPoints || ("ontouchstart" in this);
1021
+ }
1022
+
1023
+ function defaultConstrain(transform, extent, translateExtent) {
1024
+ var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
1025
+ dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
1026
+ dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
1027
+ dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
1028
+ return transform.translate(
1029
+ dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
1030
+ dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
1031
+ );
1032
+ }
1033
+
1034
+ function zoom() {
1035
+ var filter = defaultFilter,
1036
+ extent = defaultExtent,
1037
+ constrain = defaultConstrain,
1038
+ wheelDelta = defaultWheelDelta,
1039
+ touchable = defaultTouchable,
1040
+ scaleExtent = [0, Infinity],
1041
+ translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
1042
+ duration = 250,
1043
+ interpolate = interpolateZoom,
1044
+ listeners = dispatch("start", "zoom", "end"),
1045
+ touchstarting,
1046
+ touchending,
1047
+ touchDelay = 500,
1048
+ wheelDelay = 150,
1049
+ clickDistance2 = 0;
1050
+
1051
+ function zoom(selection) {
1052
+ selection
1053
+ .property("__zoom", defaultTransform)
1054
+ .on("wheel.zoom", wheeled)
1055
+ .on("mousedown.zoom", mousedowned)
1056
+ .on("dblclick.zoom", dblclicked)
1057
+ .filter(touchable)
1058
+ .on("touchstart.zoom", touchstarted)
1059
+ .on("touchmove.zoom", touchmoved)
1060
+ .on("touchend.zoom touchcancel.zoom", touchended)
1061
+ .style("touch-action", "none")
1062
+ .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
1063
+ }
1064
+
1065
+ zoom.transform = function(collection, transform, point) {
1066
+ var selection = collection.selection ? collection.selection() : collection;
1067
+ selection.property("__zoom", defaultTransform);
1068
+ if (collection !== selection) {
1069
+ schedule(collection, transform, point);
1070
+ } else {
1071
+ selection.interrupt().each(function() {
1072
+ gesture(this, arguments)
1073
+ .start()
1074
+ .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
1075
+ .end();
1076
+ });
1077
+ }
1078
+ };
1079
+
1080
+ zoom.scaleBy = function(selection, k, p) {
1081
+ zoom.scaleTo(selection, function() {
1082
+ var k0 = this.__zoom.k,
1083
+ k1 = typeof k === "function" ? k.apply(this, arguments) : k;
1084
+ return k0 * k1;
1085
+ }, p);
1086
+ };
1087
+
1088
+ zoom.scaleTo = function(selection, k, p) {
1089
+ zoom.transform(selection, function() {
1090
+ var e = extent.apply(this, arguments),
1091
+ t0 = this.__zoom,
1092
+ p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
1093
+ p1 = t0.invert(p0),
1094
+ k1 = typeof k === "function" ? k.apply(this, arguments) : k;
1095
+ return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
1096
+ }, p);
1097
+ };
1098
+
1099
+ zoom.translateBy = function(selection, x, y) {
1100
+ zoom.transform(selection, function() {
1101
+ return constrain(this.__zoom.translate(
1102
+ typeof x === "function" ? x.apply(this, arguments) : x,
1103
+ typeof y === "function" ? y.apply(this, arguments) : y
1104
+ ), extent.apply(this, arguments), translateExtent);
1105
+ });
1106
+ };
1107
+
1108
+ zoom.translateTo = function(selection, x, y, p) {
1109
+ zoom.transform(selection, function() {
1110
+ var e = extent.apply(this, arguments),
1111
+ t = this.__zoom,
1112
+ p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
1113
+ return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(
1114
+ typeof x === "function" ? -x.apply(this, arguments) : -x,
1115
+ typeof y === "function" ? -y.apply(this, arguments) : -y
1116
+ ), e, translateExtent);
1117
+ }, p);
1118
+ };
1119
+
1120
+ function scale(transform, k) {
1121
+ k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
1122
+ return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
1123
+ }
1124
+
1125
+ function translate(transform, p0, p1) {
1126
+ var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
1127
+ return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
1128
+ }
1129
+
1130
+ function centroid(extent) {
1131
+ return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
1132
+ }
1133
+
1134
+ function schedule(transition, transform, point) {
1135
+ transition
1136
+ .on("start.zoom", function() { gesture(this, arguments).start(); })
1137
+ .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
1138
+ .tween("zoom", function() {
1139
+ var that = this,
1140
+ args = arguments,
1141
+ g = gesture(that, args),
1142
+ e = extent.apply(that, args),
1143
+ p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
1144
+ w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
1145
+ a = that.__zoom,
1146
+ b = typeof transform === "function" ? transform.apply(that, args) : transform,
1147
+ i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
1148
+ return function(t) {
1149
+ if (t === 1) t = b; // Avoid rounding error on end.
1150
+ else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
1151
+ g.zoom(null, t);
1152
+ };
1153
+ });
1154
+ }
1155
+
1156
+ function gesture(that, args, clean) {
1157
+ return (!clean && that.__zooming) || new Gesture(that, args);
1158
+ }
1159
+
1160
+ function Gesture(that, args) {
1161
+ this.that = that;
1162
+ this.args = args;
1163
+ this.active = 0;
1164
+ this.extent = extent.apply(that, args);
1165
+ this.taps = 0;
1166
+ }
1167
+
1168
+ Gesture.prototype = {
1169
+ start: function() {
1170
+ if (++this.active === 1) {
1171
+ this.that.__zooming = this;
1172
+ this.emit("start");
1173
+ }
1174
+ return this;
1175
+ },
1176
+ zoom: function(key, transform) {
1177
+ if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
1178
+ if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
1179
+ if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
1180
+ this.that.__zoom = transform;
1181
+ this.emit("zoom");
1182
+ return this;
1183
+ },
1184
+ end: function() {
1185
+ if (--this.active === 0) {
1186
+ delete this.that.__zooming;
1187
+ this.emit("end");
1188
+ }
1189
+ return this;
1190
+ },
1191
+ emit: function(type) {
1192
+ customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
1193
+ }
1194
+ };
1195
+
1196
+ function wheeled() {
1197
+ if (!filter.apply(this, arguments)) return;
1198
+ var g = gesture(this, arguments),
1199
+ t = this.__zoom,
1200
+ k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
1201
+ p = mouse(this);
1202
+
1203
+ // If the mouse is in the same location as before, reuse it.
1204
+ // If there were recent wheel events, reset the wheel idle timeout.
1205
+ if (g.wheel) {
1206
+ if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
1207
+ g.mouse[1] = t.invert(g.mouse[0] = p);
1208
+ }
1209
+ clearTimeout(g.wheel);
1210
+ }
1211
+
1212
+ // If this wheel event won’t trigger a transform change, ignore it.
1213
+ else if (t.k === k) return;
1214
+
1215
+ // Otherwise, capture the mouse point and location at the start.
1216
+ else {
1217
+ g.mouse = [p, t.invert(p)];
1218
+ interrupt(this);
1219
+ g.start();
1220
+ }
1221
+
1222
+ noevent();
1223
+ g.wheel = setTimeout(wheelidled, wheelDelay);
1224
+ g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
1225
+
1226
+ function wheelidled() {
1227
+ g.wheel = null;
1228
+ g.end();
1229
+ }
1230
+ }
1231
+
1232
+ function mousedowned() {
1233
+ if (touchending || !filter.apply(this, arguments)) return;
1234
+ var g = gesture(this, arguments, true),
1235
+ v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
1236
+ p = mouse(this),
1237
+ x0 = event.clientX,
1238
+ y0 = event.clientY;
1239
+
1240
+ dragDisable(event.view);
1241
+ nopropagation();
1242
+ g.mouse = [p, this.__zoom.invert(p)];
1243
+ interrupt(this);
1244
+ g.start();
1245
+
1246
+ function mousemoved() {
1247
+ noevent();
1248
+ if (!g.moved) {
1249
+ var dx = event.clientX - x0, dy = event.clientY - y0;
1250
+ g.moved = dx * dx + dy * dy > clickDistance2;
1251
+ }
1252
+ g.zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));
1253
+ }
1254
+
1255
+ function mouseupped() {
1256
+ v.on("mousemove.zoom mouseup.zoom", null);
1257
+ yesdrag(event.view, g.moved);
1258
+ noevent();
1259
+ g.end();
1260
+ }
1261
+ }
1262
+
1263
+ function dblclicked() {
1264
+ if (!filter.apply(this, arguments)) return;
1265
+ var t0 = this.__zoom,
1266
+ p0 = mouse(this),
1267
+ p1 = t0.invert(p0),
1268
+ k1 = t0.k * (event.shiftKey ? 0.5 : 2),
1269
+ t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);
1270
+
1271
+ noevent();
1272
+ if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);
1273
+ else select(this).call(zoom.transform, t1);
1274
+ }
1275
+
1276
+ function touchstarted() {
1277
+ if (!filter.apply(this, arguments)) return;
1278
+ var touches = event.touches,
1279
+ n = touches.length,
1280
+ g = gesture(this, arguments, event.changedTouches.length === n),
1281
+ started, i, t, p;
1282
+
1283
+ nopropagation();
1284
+ for (i = 0; i < n; ++i) {
1285
+ t = touches[i], p = touch(this, touches, t.identifier);
1286
+ p = [p, this.__zoom.invert(p), t.identifier];
1287
+ if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
1288
+ else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
1289
+ }
1290
+
1291
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
1292
+
1293
+ if (started) {
1294
+ if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
1295
+ interrupt(this);
1296
+ g.start();
1297
+ }
1298
+ }
1299
+
1300
+ function touchmoved() {
1301
+ if (!this.__zooming) return;
1302
+ var g = gesture(this, arguments),
1303
+ touches = event.changedTouches,
1304
+ n = touches.length, i, t, p, l;
1305
+
1306
+ noevent();
1307
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
1308
+ g.taps = 0;
1309
+ for (i = 0; i < n; ++i) {
1310
+ t = touches[i], p = touch(this, touches, t.identifier);
1311
+ if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
1312
+ else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
1313
+ }
1314
+ t = g.that.__zoom;
1315
+ if (g.touch1) {
1316
+ var p0 = g.touch0[0], l0 = g.touch0[1],
1317
+ p1 = g.touch1[0], l1 = g.touch1[1],
1318
+ dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
1319
+ dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
1320
+ t = scale(t, Math.sqrt(dp / dl));
1321
+ p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
1322
+ l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
1323
+ }
1324
+ else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
1325
+ else return;
1326
+ g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
1327
+ }
1328
+
1329
+ function touchended() {
1330
+ if (!this.__zooming) return;
1331
+ var g = gesture(this, arguments),
1332
+ touches = event.changedTouches,
1333
+ n = touches.length, i, t;
1334
+
1335
+ nopropagation();
1336
+ if (touchending) clearTimeout(touchending);
1337
+ touchending = setTimeout(function() { touchending = null; }, touchDelay);
1338
+ for (i = 0; i < n; ++i) {
1339
+ t = touches[i];
1340
+ if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
1341
+ else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
1342
+ }
1343
+ if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
1344
+ if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
1345
+ else {
1346
+ g.end();
1347
+ // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
1348
+ if (g.taps === 2) {
1349
+ var p = select(this).on("dblclick.zoom");
1350
+ if (p) p.apply(this, arguments);
1351
+ }
1352
+ }
1353
+ }
1354
+
1355
+ zoom.wheelDelta = function(_) {
1356
+ return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
1357
+ };
1358
+
1359
+ zoom.filter = function(_) {
1360
+ return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
1361
+ };
1362
+
1363
+ zoom.touchable = function(_) {
1364
+ return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
1365
+ };
1366
+
1367
+ zoom.extent = function(_) {
1368
+ return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
1369
+ };
1370
+
1371
+ zoom.scaleExtent = function(_) {
1372
+ return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
1373
+ };
1374
+
1375
+ zoom.translateExtent = function(_) {
1376
+ 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]]];
1377
+ };
1378
+
1379
+ zoom.constrain = function(_) {
1380
+ return arguments.length ? (constrain = _, zoom) : constrain;
1381
+ };
1382
+
1383
+ zoom.duration = function(_) {
1384
+ return arguments.length ? (duration = +_, zoom) : duration;
1385
+ };
1386
+
1387
+ zoom.interpolate = function(_) {
1388
+ return arguments.length ? (interpolate = _, zoom) : interpolate;
1389
+ };
1390
+
1391
+ zoom.on = function() {
1392
+ var value = listeners.on.apply(listeners, arguments);
1393
+ return value === listeners ? zoom : value;
1394
+ };
1395
+
1396
+ zoom.clickDistance = function(_) {
1397
+ return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
1398
+ };
1399
+
1400
+ return zoom;
1401
+ }
1402
+
1403
+ var css_248z = "@charset \"UTF-8\";\n.SNA {\n overflow: hidden;\n object-fit: contain;\n position: relative;\n font-size: 0.75rem;\n width: 100%;\n /* 效能:MUI CssBaseline 的全域規則 `*, *::before, *::after { box-sizing: inherit }` 用了 inherit,\n Chrome 對帶 inherit 的樣式無法重用快取;模擬每個 tick 改寫上千個 SVG 元素的 cx/cy/x/y/d,\n 每個元素都得完整重算樣式(ra 1,427 節點每格繪製約 2–4 秒)。\n box-sizing 對 SVG 內部元素沒有作用,這裡改成固定值蓋掉 inherit,畫面不變、每格降到約 70 ms(micro-bench 實測) */\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: 1.25rem;\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.SNA #sna-graph svg * {\n box-sizing: content-box;\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: 0.0625rem;\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}";
1404
+ styleInject(css_248z);
1405
+
1406
+ /* eslint-disable indent */
1407
+
1408
+ /* 每張 svg 對應的 force simulation:重設、資料變更、卸載時要停掉,
1409
+ 否則舊圖已移除,simulation 仍在背景 tick(原本 renderSNA 從未停止舊的) */
1410
+ var simulations = new WeakMap();
1411
+ var stopSimulation = function stopSimulation(svgNode) {
1412
+ var simulation = svgNode && simulations.get(svgNode);
1413
+ if (simulation) simulation.stop();
1414
+ };
1415
+ var SNA = function SNA(props) {
1416
+ // common
1417
+ var className = props.className,
1418
+ intl = props.intl,
1419
+ exclude = props.exclude,
1420
+ distance = props.distance,
1421
+ SNAData = props.SNAData,
1422
+ handleClickNodeGoto = props.handleClickNodeGoto,
1423
+ DownloadExcel = props.DownloadExcel,
1424
+ nodeAriaHint = props.nodeAriaHint,
1425
+ exportFileName = props.exportFileName;
1426
+ // styles
1427
+ var width = props.width,
1428
+ height = props.height,
1429
+ fontColor = props.fontColor,
1430
+ backgroundColor = props.backgroundColor,
1431
+ iconColor = props.iconColor;
1432
+ var g;
1433
+ /* 元件內部字串:有傳 intl 就沿用,沒傳就走套件自帶的 getIntl();原本沒傳時落在寫死的中文(nmtl-web i18n 盤點 D3) */
1434
+ var translateText = function translateText(id) {
1435
+ return intl ? intl.formatMessage({
1436
+ id: id
1437
+ }) : getIntl().formatMessage({
1438
+ id: id
1439
+ });
1440
+ };
1441
+ if (!SNAData || SNAData.nodes.length === 0) {
1442
+ return /*#__PURE__*/React__default.createElement("div", {
1443
+ className: "noData"
1444
+ }, translateText('common.noData'));
1445
+ }
1446
+ var contentWidth = useMemo(function () {
1447
+ return screen.width > 1050 ? width : screen.width - 80;
1448
+ }, [screen.width]);
1449
+ var contentHeight = useMemo(function () {
1450
+ return screen.width > 1050 ? height : screen.height - 300;
1451
+ }, [screen.width]);
1452
+ var translateType = function translateType(type) {
1453
+ switch (type) {
1454
+ case 'mainNode':
1455
+ // 主要搜尋中心
1456
+ return translateText('SNA.search.center');
1457
+ case 'organization':
1458
+ // 組織
1459
+ return translateText('SNA.organization');
1460
+ case 'person':
1461
+ // 作家
1462
+ return translateText('SNA.author');
1463
+ case 'publication':
1464
+ // 著作
1465
+ return translateText('SNA.publication');
1466
+ case 'article':
1467
+ // 單篇作品
1468
+ return translateText('SNA.article');
1469
+ case 'keyword':
1470
+ // 關鍵字
1471
+ return translateText('SNA.keyword');
1472
+ case 'event':
1473
+ // 事件
1474
+ return translateText('SNA.event');
1475
+ default:
1476
+ return '';
1477
+ }
1478
+ };
1479
+ var drag$1 = function drag$1(simulation) {
1480
+ function dragstarted(d) {
1481
+ if (!event.active) simulation.alphaTarget(0.3).restart();
1482
+ d.fx = d.x;
1483
+ d.fy = d.y;
1484
+ }
1485
+ function dragged(d) {
1486
+ d.fx = event.x > contentWidth - 10 || event.x < 20 ? d.x : event.x;
1487
+ d.fy = event.y > contentHeight - 10 || event.y < 20 ? d.y : event.y;
1488
+ }
1489
+
1490
+ /* 效能:拖曳結束讓模擬降溫停下(d3 慣例);節點仍固定在放開的位置(fx/fy 不清除,維持原行為)。
1491
+ 原本沒有 end:alphaTarget 停在 0.3,拖過一次模擬就永遠不會結束,每個 tick 持續重排整張圖 */
1492
+ function dragended() {
1493
+ if (!event.active) simulation.alphaTarget(0);
1494
+ }
1495
+ return drag().on('start', dragstarted).on('drag', dragged).on('end', dragended);
1496
+ };
1497
+ var calculateCurve = function calculateCurve(source, target, curveLen) {
1498
+ var mx = (target.x + source.x) * 0.5;
1499
+ var my = (target.y + source.y) * 0.5;
1500
+ var tsx = target.x - source.x;
1501
+ var tsy = target.y - source.y;
1502
+ var L = Math.pow(Math.pow(tsx, 2) + Math.pow(tsy, 2), 0.5);
1503
+ var qx = mx - tsy * curveLen / L;
1504
+ var qy = my + tsx * curveLen / L;
1505
+ return {
1506
+ qx: qx,
1507
+ qy: qy
1508
+ };
1509
+ };
1510
+ var getLineCurve = function getLineCurve(source, target, curveLen) {
1511
+ var _calculateCurve = calculateCurve(source, target, curveLen),
1512
+ qx = _calculateCurve.qx,
1513
+ qy = _calculateCurve.qy;
1514
+ if (isNaN(qx)) {
1515
+ return "M".concat(source.x, ", ").concat(source.y, " Q0 0 ").concat(target.x, " ").concat(target.y);
1516
+ }
1517
+ return "M".concat(source.x, ", ").concat(source.y, " Q").concat(qx, " ").concat(qy, " ").concat(target.x, " ").concat(target.y);
1518
+ };
1519
+ var init = function init(networkData) {
1520
+ /* WCAG 1.4.4 / Freego CS2140401C:SVG 文字字型尺寸改相對單位(10px→0.625rem) */
1521
+ var edgeLabelSize = '0.625rem';
1522
+ var lineRaduis = 30;
1523
+ var nodeStroke = 1.5;
1524
+ var nodeRadius = 10 - nodeStroke;
1525
+ var mainNodeRadius = 15 - nodeStroke;
1526
+ var arrowPercent = 0.8;
1527
+ var arrowViewBox = "-0 -".concat(nodeRadius, " ").concat(nodeRadius * 2, " ").concat(nodeRadius * 2);
1528
+ var arrowPath = "M 0,-".concat(nodeRadius * arrowPercent, " L ").concat(nodeRadius * arrowPercent * 2, " ,0 L 0,").concat(nodeRadius * arrowPercent);
1529
+ var color = ordinal(category10);
1530
+ var links = networkData.links.map(function (d) {
1531
+ return Object.create(d);
1532
+ });
1533
+ var nodes = networkData.nodes.map(function (d) {
1534
+ return Object.create(d);
1535
+ });
1536
+ var simulation$1 = simulation(nodes).force('link', link(links).id(function (d) {
1537
+ return d.index;
1538
+ }).distance(50)).force('charge', manyBody().strength(-200).distanceMax(1000)).force('center', center(contentWidth / 2, contentHeight / 2)).force('collide', collide().radius(function () {
1539
+ return nodeRadius + 5;
1540
+ }).strength(1).iterations(10)).force('x', x(contentWidth / 2)).force('y', y(contentHeight / 2)).force('radial', radial(100, contentWidth / 1.5, contentHeight / 1.5));
1541
+
1542
+ /* 效能:SVG 先建在未掛上文件的節點,全部節點/標籤/連線建好後才一次掛進 #sna-graph(見 init 結尾)。
1543
+ Adobe Fonts 動態子集 kit(目前實際只有 ra 的 index.html 載入)在 body 掛 MutationObserver,
1544
+ 每筆 mutation 都用 TreeWalker 重掃目標整棵子樹收集文字;d3 逐一 append 進 live DOM 時,
1545
+ 每加一個節點就產生一筆以父層 <g> 為目標的紀錄 → O(n²),ra 1,428 個節點首次載入主執行緒凍結 39–73 秒。
1546
+ 離線建好再掛上,kit 只收到一筆紀錄、只掃一次 */
1547
+ var svg = d3Create('svg').attr('viewBox', [0, 0, contentWidth, contentHeight]).style('background-color', backgroundColor);
1548
+ 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');
1549
+ // 增加一層g用來包住所有的物件,並對此g加入縮放功能
1550
+ g = svg.append('g');
1551
+ var zoomActions = function zoomActions() {
1552
+ g.attr('transform', event.transform);
1553
+ };
1554
+ var zoomHandler = zoom().scaleExtent([0.5, 20]).extent([[0, 0], [contentWidth, contentHeight]]).on('zoom', zoomActions);
1555
+ zoomHandler(svg);
1556
+ 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) {
1557
+ return d.ontology === 'protege' ? '2,5,3' : '';
1558
+ }).attr('key', function (d) {
1559
+ return d.type;
1560
+ });
1561
+ var node = g.append('g').attr('stroke', '#fff').attr('stroke-width', nodeStroke).selectAll('circle').data(nodes).join('circle').attr('r', function (d) {
1562
+ return d.type === 'mainNode' ? mainNodeRadius : nodeRadius;
1563
+ }).attr('fill', function (d) {
1564
+ return color(d.type);
1565
+ }).attr('key', function (d) {
1566
+ return d.type;
1567
+ }).attr('class', function (d) {
1568
+ 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' : '');
1569
+ }).on('click', function (d) {
1570
+ return d.hasClick ? handleClickNodeGoto({
1571
+ name: d.name,
1572
+ id: d.id,
1573
+ type: d.type
1574
+ }) : null;
1575
+ })
1576
+ /* WCAG 2.1.1/2.4.7 可互動節點支援鍵盤(實測回饋 R11):tabindex 可聚焦
1577
+ (焦點框由各專案全域 :focus-visible 提供)、role=link+aria-label 報讀、Enter 觸發 */.attr('tabindex', function (d) {
1578
+ return d.hasClick ? 0 : null;
1579
+ }).attr('role', function (d) {
1580
+ return d.hasClick ? 'link' : null;
1581
+ })
1582
+ /* 報讀提示點選後行為(實測回饋 R15-29):提示文字由消費端提供(是否另開新視窗依專案 handleClickNodeGoto 而定) */.attr('aria-label', function (d) {
1583
+ return d.hasClick ? "".concat(d.name, "-").concat(translateType(d.type)).concat(nodeAriaHint || '') : null;
1584
+ }).on('keydown', function (d) {
1585
+ if (d.hasClick && event && event.key === 'Enter') {
1586
+ event.preventDefault();
1587
+ handleClickNodeGoto({
1588
+ name: d.name,
1589
+ id: d.id,
1590
+ type: d.type
1591
+ });
1592
+ }
1593
+ }).call(drag$1(simulation$1));
1594
+ node.append('title').text(function (d) {
1595
+ return "".concat(d.name, "-").concat(translateType(d.type));
1596
+ });
1597
+ var nodeLabel = g.append('g').selectAll('text').data(nodes).join('text').attr('fill', fontColor).attr('text-anchor', 'middle').attr('key', function (d) {
1598
+ return d.type;
1599
+ }).style('color', '#fff')
1600
+ /* WCAG 1.4.4 / Freego CS2140401C:SVG 文字字型尺寸改相對單位(14px→0.875rem) */.style('font-size', '0.875rem').text(function (d) {
1601
+ return d.name;
1602
+ });
1603
+
1604
+ /* 效能:邊標籤(textPath)只為有文字的連線建立。edgepath 的 d 每個 tick 都重寫,瀏覽器就得重排所有參照它的 textPath;
1605
+ 各站組出的連線多半沒有 property(ra 預設 1,437 條全空),原本每個 tick 白白重排上千個空標籤 */
1606
+ var labeledLinks = links.filter(function (d) {
1607
+ return d.property !== undefined && d.property !== null && "".concat(d.property).trim() !== '';
1608
+ });
1609
+ var edgepaths = g.selectAll('.edgepath').data(labeledLinks).enter().append('path').attr('class', 'edgepath').attr('fill-opacity', 0).attr('stroke-opacity', 0).attr('id', function (d, i) {
1610
+ return "edgepath".concat(i);
1611
+ }).style('pointer-events', 'none');
1612
+ var edgelabels = g.selectAll('.edgelabel').data(labeledLinks).enter().append('text').style('pointer-events', 'none').attr('class', 'edgelabel')
1613
+ /* rem 需以 style 設定(SVG presentation attribute 對 rem 支援不一致) */.style('font-size', edgeLabelSize).attr('fill', '#aaa').attr('visibility', 'visible').attr('key', function (d) {
1614
+ return d.type;
1615
+ }).attr('id', function (d, i) {
1616
+ return "edgelabel".concat(i);
1617
+ });
1618
+ edgelabels.append('textPath').attr('xlink:href', function (d, i) {
1619
+ return "#edgepath".concat(i);
1620
+ }).style('text-anchor', 'middle').style('pointer-events', 'none').attr('startOffset', '50%').text(function (d) {
1621
+ return d.property;
1622
+ });
1623
+ simulation$1.on('tick', function () {
1624
+ nodes.forEach(function (d) {
1625
+ // x軸 超過寬度380,回彈到380座標軸區域位置。 ——作用爲:超出範圍的回彈到視圖寬度範圍內
1626
+ if (d.x >= contentWidth - 20) {
1627
+ d.x = contentWidth - 20;
1628
+ }
1629
+ // y軸 超過高度280,回彈到280座標軸區域位置。 ——作用爲:超出範圍的回彈到視圖高度範圍內
1630
+ if (d.y >= contentHeight - 20) {
1631
+ d.y = contentHeight - 20;
1632
+ }
1633
+ if (d.x <= 20) {
1634
+ d.x = 20;
1635
+ }
1636
+ if (d.y <= 20) {
1637
+ d.y = 20;
1638
+ }
1639
+ });
1640
+ link$1.attr('d', function (d) {
1641
+ return getLineCurve(d.source, d.target, lineRaduis);
1642
+ });
1643
+ node.attr('cx', function (d) {
1644
+ return d.x;
1645
+ }).attr('cy', function (d) {
1646
+ return d.y;
1647
+ });
1648
+ nodeLabel.attr('x', function (d) {
1649
+ return d.x;
1650
+ }).attr('y', function (d) {
1651
+ return d.y - nodeRadius;
1652
+ });
1653
+ edgepaths.attr('d', function (d) {
1654
+ return getLineCurve(d.source, d.target, lineRaduis);
1655
+ });
1656
+ });
1657
+
1658
+ // 一次掛上(原因見上方建立 svg 處);simulation 的 tick 由 d3-timer 排在之後的 frame,掛上前不會跑
1659
+ simulations.set(svg.node(), simulation$1);
1660
+ var container = document.getElementById('sna-graph');
1661
+ if (container) container.appendChild(svg.node());
1662
+ };
1663
+ var renderSNA = function renderSNA() {
1664
+ if (SNAData && SNAData.nodes && SNAData.nodes.length > 0) {
1665
+ var div = document.getElementById('sna-graph');
1666
+ if (div && div.childNodes[0]) {
1667
+ stopSimulation(div.childNodes[0]);
1668
+ div.removeChild(div.childNodes[0]);
1669
+ }
1670
+ init(SNAData);
1671
+ }
1672
+ };
1673
+
1674
+ // 資料異動或全螢幕切換,重新渲染網絡圖
1675
+ useEffect(function () {
1676
+ renderSNA();
1677
+ var div = document.getElementById('sna-graph');
1678
+ // 卸載或資料變更前停掉目前這張圖的 simulation(重設按鈕換過的 svg 也在同一個容器內)
1679
+ return function () {
1680
+ return stopSimulation(div && div.firstChild);
1681
+ };
1682
+ }, [SNAData]);
1683
+ return /*#__PURE__*/React__default.createElement("div", {
1684
+ className: classNames('SNA', {
1685
+ 'SNA--smallSize': distance < 200
1686
+ }, className),
1687
+ style: {
1688
+ contentWidth: contentWidth,
1689
+ contentHeight: contentHeight,
1690
+ backgroundColor: backgroundColor
1691
+ }
1692
+ }, /*#__PURE__*/React__default.createElement(ExtraTools, {
1693
+ data: SNAData,
1694
+ iconColor: iconColor,
1695
+ domToImageId: "sna-graph",
1696
+ FontSizeTargets: ['#sna-graph svg g text'],
1697
+ exclude: exclude,
1698
+ DownloadExcel: DownloadExcel,
1699
+ fullscreenDomId: "sna-graph",
1700
+ renderSNA: renderSNA,
1701
+ exportFileName: exportFileName
1702
+ }), /*#__PURE__*/React__default.createElement("div", {
1703
+ id: "sna-graph"
1704
+ }));
1705
+ };
1706
+ SNA.defaultProps = {
1707
+ nodeAriaHint: '',
1708
+ className: undefined,
1709
+ intl: undefined,
1710
+ width: 1050,
1711
+ height: 600,
1712
+ distance: 400,
1713
+ SNAData: null,
1714
+ fontColor: '#000000',
1715
+ backgroundColor: '#FFFFFF',
1716
+ iconColor: '#825c0d',
1717
+ exclude: ['downloadXls', 'downloadTsv'],
1718
+ handleClickNodeGoto: null,
1719
+ DownloadExcel: undefined,
1720
+ exportFileName: 'output'
1721
+ };
1722
+
1723
+ /* Write props detail information and 'npm run updateStory' will help you generate stories's argTypes */
1724
+ SNA.propTypes = {
1725
+ /** 可互動節點 aria-label 的行為提示後綴(例:,點選後開啟對應頁面(另開新視窗)) */
1726
+ nodeAriaHint: PropTypes.string,
1727
+ /** Css Name */
1728
+ className: PropTypes.string,
1729
+ /** 語言 */
1730
+ intl: PropTypes.objectOf(PropTypes.any),
1731
+ /** 寬度 */
1732
+ width: PropTypes.number,
1733
+ /** 高度 */
1734
+ height: PropTypes.number,
1735
+ /** 點跟點之間的距離 */
1736
+ distance: PropTypes.number,
1737
+ /** 資料 */
1738
+ SNAData: PropTypes.objectOf(PropTypes.any),
1739
+ /** 網絡圖文字顏色 */
1740
+ fontColor: PropTypes.string,
1741
+ /** 網絡圖背景顏色 */
1742
+ backgroundColor: PropTypes.string,
1743
+ /** icon顏色 */
1744
+ iconColor: PropTypes.string,
1745
+ /** 不顯示的按鈕 ['share', 'downloadImage', 'downloadTsv', 'downloadXls', 'fullscreen', 'fontSizeChanger'] */
1746
+ exclude: PropTypes.arrayOf(PropTypes.string),
1747
+ /** 按下點後要轉址的功能 */
1748
+ handleClickNodeGoto: PropTypes.func,
1749
+ /** Download元件, 由外部傳入的原因是需要環境設定 */
1750
+ DownloadExcel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
1751
+ /** 匯出檔名前綴(下載圖片/Tsv 檔名=前綴_YYYY-MM-DD) */
1752
+ exportFileName: PropTypes.string
1753
+ };
1754
+
1755
+ export { SNA as default };