@plaso-infi/whiteboard-sdk 0.9.9-alpha1.1 → 0.9.10-alpha1.2

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 (85) hide show
  1. package/dist/esm/arc-f453aa24-001bbdd5.js +1 -0
  2. package/dist/esm/blockDiagram-38ab4fdb-5054d111-916200b0.js +1 -0
  3. package/dist/esm/c4Diagram-3d4e48cf-5c418a03-d69b6a9c.js +1 -0
  4. package/dist/esm/channel-d0c23f49-f259a6d1.js +1 -0
  5. package/dist/esm/classDiagram-70f12bd4-491ee226-467aef5f.js +1 -0
  6. package/dist/esm/classDiagram-v2-f2320105-e90ceb2f-abf81ed0.js +1 -0
  7. package/dist/esm/clone-f55b0cc7-e67cd753.js +1 -0
  8. package/dist/esm/createText-2e5e7dd3-dcc34ae8-3c64ca2d.js +1 -0
  9. package/dist/esm/edges-e0da2a9e-8abaed90-a3e3f930.js +1 -0
  10. package/dist/esm/erDiagram-9861fffd-20c9cea5-06108c89.js +1 -0
  11. package/dist/esm/{flowDb-956e92f1-05858601-f0b0a431.js → flowDb-956e92f1-3b9320a7-67f62d02.js} +1 -1
  12. package/dist/esm/flowDiagram-66a62f08-08a6f0e7-acbc8998.js +1 -0
  13. package/dist/esm/flowDiagram-v2-96b9c2cf-6b10acd5-d6f5b177.js +1 -0
  14. package/dist/esm/flowchart-elk-definition-4a651766-e5b3ba00-a86e3534.js +1 -0
  15. package/dist/esm/ganttDiagram-c361ad54-be9f4bb3-9fd6d707.js +1 -0
  16. package/dist/esm/{gitGraphDiagram-72cf32ee-6962610d-ce66735c.js → gitGraphDiagram-72cf32ee-a0e338f3-fedb2c3a.js} +1 -1
  17. package/dist/esm/graph-afe27007-8e18cc75.js +1 -0
  18. package/dist/esm/hls-8060cc31-cbc4e4b4.js +1 -0
  19. package/dist/esm/{index-0c25c9f2.js → index-167f08a0.js} +10 -10
  20. package/dist/esm/index-3862675e-87ca6a66-f6d07d04.js +1 -0
  21. package/dist/esm/index-43b715ff-0a40eb86.js +7 -0
  22. package/dist/esm/index.css +27675 -31377
  23. package/dist/esm/index.d.ts +6 -143
  24. package/dist/esm/index.js +1 -1
  25. package/dist/esm/{infoDiagram-f8f76790-ff02a986-1c2bb5a5.js → infoDiagram-f8f76790-4379e779-22c1733f.js} +1 -1
  26. package/dist/esm/journeyDiagram-49397b02-2cca535b-67946860.js +1 -0
  27. package/dist/esm/layout-ae3a065f-6e640144.js +1 -0
  28. package/dist/esm/{line-8bf27c33-c9dee662.js → line-7161536c-1eab81ab.js} +1 -1
  29. package/dist/esm/linear-5dc481fe-05c0f51e.js +1 -0
  30. package/dist/esm/lottie-e933e82b-ded8d0d3.js +1 -0
  31. package/dist/esm/mindmap-definition-fc14e90a-5dcd2e6e-eef8a18b.js +9 -0
  32. package/dist/esm/{ordinal-9e8754c0-c9285688.js → ordinal-03018387-faf5bec3.js} +1 -1
  33. package/dist/esm/pdf_lib-55fc68be-7c552411.js +1 -0
  34. package/dist/esm/{pieDiagram-8a3498a8-95075175-f271e7e0.js → pieDiagram-8a3498a8-6c705dfb-ac29777a.js} +1 -1
  35. package/dist/esm/quadrantDiagram-120e2f19-ce717132-2ca6a80f.js +1 -0
  36. package/dist/esm/{requirementDiagram-deff3bca-29300a5c-74399573.js → requirementDiagram-deff3bca-94ff9b49-53ba3062.js} +1 -1
  37. package/dist/esm/sankeyDiagram-04a897e0-7f5565ac-73d22dce.js +1 -0
  38. package/dist/esm/sequenceDiagram-704730f1-65919a25-99547f7a.js +1 -0
  39. package/dist/esm/stateDiagram-587899a1-2d298c91-69f94d43.js +1 -0
  40. package/dist/esm/stateDiagram-v2-d93cdb3a-d0d0a3cb-c5f54ac0.js +1 -0
  41. package/dist/esm/{styles-6aaf32cf-27c06757-9924063a.js → styles-6aaf32cf-9dfc64a7-73ae2457.js} +1 -1
  42. package/dist/esm/{styles-9a916d00-db7a32f0-40cad9b3.js → styles-9a916d00-f70df3fd-82031337.js} +1 -1
  43. package/dist/esm/styles-c10674c1-9ccf4241-d16c7c7b.js +1 -0
  44. package/dist/esm/{svgDrawCommon-08f97a94-12aefbff-7bed41c9.js → svgDrawCommon-08f97a94-6a32c869-fc129345.js} +1 -1
  45. package/dist/esm/{timeline-definition-85554ec2-475c323b-17118daa.js → timeline-definition-85554ec2-0d0b57da-737d18f2.js} +1 -1
  46. package/dist/esm/web-pinyin-dbdcf553.js +1 -0
  47. package/dist/esm/xychartDiagram-e933f94c-d01b914a-f5a15a41.js +1 -0
  48. package/package.json +2 -6
  49. package/dist/esm/arc-0fffff1f-cb15888d.js +0 -1
  50. package/dist/esm/blockDiagram-38ab4fdb-b22c3166-94cafbe4.js +0 -1
  51. package/dist/esm/c4Diagram-3d4e48cf-ab3a2217-04f37a60.js +0 -1
  52. package/dist/esm/channel-ff3e58f7-441d1956.js +0 -1
  53. package/dist/esm/classDiagram-70f12bd4-b7cecb7d-02f67aec.js +0 -1
  54. package/dist/esm/classDiagram-v2-f2320105-88330ff5-f9e02a46.js +0 -1
  55. package/dist/esm/clone-e72fc4b8-e0d9c611.js +0 -1
  56. package/dist/esm/createText-2e5e7dd3-3d197991-1dc23da3.js +0 -1
  57. package/dist/esm/edges-e0da2a9e-fba3c3a7-06d257f8.js +0 -1
  58. package/dist/esm/erDiagram-9861fffd-3dedc17c-b3410b98.js +0 -1
  59. package/dist/esm/export_as_markdown-b48293a8-00bd7ea7.js +0 -1
  60. package/dist/esm/flowDiagram-66a62f08-b3c97779-70248993.js +0 -1
  61. package/dist/esm/flowDiagram-v2-96b9c2cf-58d3ab5f-20c5bbe1.js +0 -1
  62. package/dist/esm/flowchart-elk-definition-4a651766-4ec085d8-a42f0ee1.js +0 -1
  63. package/dist/esm/ganttDiagram-c361ad54-25aec23c-d8a3f436.js +0 -1
  64. package/dist/esm/graph-a2efb7be-713af9a6.js +0 -1
  65. package/dist/esm/hls-2930c8f9-d0274088.js +0 -1
  66. package/dist/esm/index-069d79ba-7af162da.js +0 -7
  67. package/dist/esm/index-3862675e-b2881445-8d90f1dc.js +0 -1
  68. package/dist/esm/journeyDiagram-49397b02-8ee31d6c-be9e21a6.js +0 -1
  69. package/dist/esm/layout-f41a9481-b65a914c.js +0 -1
  70. package/dist/esm/linear-bf7a4ead-aef02647.js +0 -1
  71. package/dist/esm/lottie-b2af09ef-63710b41.js +0 -1
  72. package/dist/esm/mindmap-definition-fc14e90a-5d304050-073c89e4.js +0 -9
  73. package/dist/esm/pdf_lib-759c3824-5535ffeb.js +0 -1
  74. package/dist/esm/quadrantDiagram-120e2f19-8bb878d9-47628e3e.js +0 -1
  75. package/dist/esm/sankeyDiagram-04a897e0-8e1ff3ae-7e61ab0d.js +0 -1
  76. package/dist/esm/sequenceDiagram-704730f1-6a89eb72-b6d29a75.js +0 -1
  77. package/dist/esm/stateDiagram-587899a1-615f787b-70f1fbc3.js +0 -1
  78. package/dist/esm/stateDiagram-v2-d93cdb3a-0da1e02b-9d5b2272.js +0 -1
  79. package/dist/esm/styles-c10674c1-3e724aac-5b3a371b.js +0 -1
  80. package/dist/esm/web-pinyin-cc77b789.js +0 -1
  81. package/dist/esm/xychartDiagram-e933f94c-43d0ec04-d4af0981.js +0 -1
  82. /package/dist/esm/{Tableau10-0d093dcf-a3138301.js → Tableau10-e8b1eccc-4cef513c.js} +0 -0
  83. /package/dist/esm/{array-75b204b6-7055adac.js → array-5c028890-e9486e2e.js} +0 -0
  84. /package/dist/esm/{init-7e0ff151-92a0ac09.js → init-426b8023-e9aac3aa.js} +0 -0
  85. /package/dist/esm/{path-5bb65086-3ae6d6fa.js → path-a3e377ce-ded30e71.js} +0 -0
@@ -0,0 +1 @@
1
+ import{y as e,N as t}from"./graph-afe27007-8e18cc75.js";import{u as n,V as r}from"./layout-ae3a065f-6e640144.js";import{a as i}from"./clone-f55b0cc7-e67cd753.js";import{c as a,$ as o,U as d,g as s,E as c,C as l,A as h,R as g,P as f,G as u,q as w,y as p,b as v}from"./edges-e0da2a9e-8abaed90-a3e3f930.js";import{b as y,a as m,m as x,z as b}from"./index-167f08a0.js";import{s as N}from"./createText-2e5e7dd3-dcc34ae8-3c64ca2d.js";function E(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:X(t),edges:C(t)};return e(t.graph())||(n.value=i(t.graph())),n}function X(t){return n(t.nodes(),(function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e(r)||(a.value=r),e(i)||(a.parent=i),a}))}function C(t){return n(t.edges(),(function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e(n.name)||(i.name=n.name),e(r)||(i.value=r),i}))}let S={},T={},B={};const D=(e,t)=>(y.trace("In isDescendant",t," ",e," = ",T[t].includes(e)),!!T[t].includes(e)),O=(e,t,n,r)=>{y.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),y.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach((i=>{if(t.children(i).length>0)O(i,t,n,r);else{const a=t.node(i);y.info("cp ",i," to ",r," with parent ",e),n.setNode(i,a),r!==t.parent(i)&&(y.warn("Setting parent",i,t.parent(i)),n.setParent(i,t.parent(i))),e!==r&&i!==e?(y.debug("Setting parent",i,e),n.setParent(i,e)):(y.info("In copy ",e,"root",r,"data",t.node(e),r),y.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==r,"node!==clusterId",i!==e));const o=t.edges(i);y.debug("Copying Edges",o),o.forEach((i=>{y.info("Edge",i);const a=t.edge(i.v,i.w,i.name);y.info("Edge data",a,r);try{((e,t)=>(y.info("Descendants of ",t," is ",T[t]),y.info("Edge is ",e),e.v!==t&&e.w!==t&&(T[t]?T[t].includes(e.v)||D(e.v,t)||D(e.w,t)||T[t].includes(e.w):(y.debug("Tilt, ",t,",not in descendants"),!1))))(i,r)?(y.info("Copying as ",i.v,i.w,a,i.name),n.setEdge(i.v,i.w,a,i.name),y.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):y.info("Skipping copy of edge ",i.v,"--\x3e",i.w," rootId: ",r," clusterId:",e)}catch(e){y.error(e)}}))}y.debug("Removing node",i),t.removeNode(i)}))},J=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)B[i]=e,r=[...r,...J(i,t)];return r},G=(e,t)=>{y.trace("Searching",e);const n=t.children(e);if(y.trace("Searching children of id ",e,n),n.length<1)return y.trace("This is a valid node",e),e;for(const r of n){const n=G(r,t);if(n)return y.trace("Found replacement for",e," => ",n),n}},R=e=>S[e]&&S[e].externalConnections&&S[e]?S[e].id:e,I=(e,n)=>{if(y.warn("extractor - ",n,E(e),e.children("D")),n>10)return void y.error("Bailing out");let r=e.nodes(),i=!1;for(const t of r){const n=e.children(t);i=i||n.length>0}if(i){y.debug("Nodes = ",r,n);for(const i of r)if(y.debug("Extracting node",i,S,S[i]&&!S[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",n),S[i])if(!S[i].externalConnections&&e.children(i)&&e.children(i).length>0){y.warn("Cluster without external connections, without a parent and with children",i,n);let r="TB"===e.graph().rankdir?"LR":"TB";S[i]&&S[i].clusterData&&S[i].clusterData.dir&&(r=S[i].clusterData.dir,y.warn("Fixing dir",S[i].clusterData.dir,r));const a=new t({multigraph:!0,compound:!0}).setGraph({rankdir:r,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));y.warn("Old graph before copy",E(e)),O(i,e,a,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:S[i].clusterData,labelText:S[i].labelText,graph:a}),y.warn("New graph after copy node: (",i,")",E(a)),y.debug("Old graph after copy",E(e))}else y.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!S[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),n),y.debug(S);else y.debug("Not a cluster",i,n);r=e.nodes(),y.warn("New list of nodes",r);for(const t of r){const r=e.node(t);y.warn(" Now next level",t,r),r.clusterNode&&I(r.graph,n+1)}}else y.debug("Done, no node has children",e.nodes())},j=(e,t)=>{if(0===t.length)return[];let n=Object.assign(t);return t.forEach((t=>{const r=e.children(t),i=j(e,r);n=[...n,...i]})),n},L={rect:(e,t)=>{y.info("Creating subgraph rect for ",t.id,t);const n=m(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=x(n.flowchart.htmlLabels),o=r.insert("g").attr("class","cluster-label"),d="markdown"===t.labelType?N(o,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):o.node().appendChild(p(t.labelText,t.labelStyle,void 0,!0));let s=d.getBBox();if(x(n.flowchart.htmlLabels)){const e=d.children[0],t=b(d);s=e.getBoundingClientRect(),t.attr("width",s.width),t.attr("height",s.height)}const c=0*t.padding,l=c/2,h=t.width<=s.width+c?s.width+c:t.width;t.width<=s.width+c?t.diff=(s.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,y.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-h/2).attr("y",t.y-t.height/2-l).attr("width",h).attr("height",t.height+c);const{subGraphTitleTopMargin:f}=g(n);a?o.attr("transform",`translate(${t.x-s.width/2}, ${t.y-t.height/2+f})`):o.attr("transform",`translate(${t.x}, ${t.y-t.height/2+f})`);const u=i.node().getBBox();return t.width=u.width,t.height=u.height,t.intersect=function(e){return v(t,e)},r},roundedWithTitle:(e,t)=>{const n=m(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),o=r.append("rect"),d=a.node().appendChild(p(t.labelText,t.labelStyle,void 0,!0));let s=d.getBBox();if(x(n.flowchart.htmlLabels)){const e=d.children[0],t=b(d);s=e.getBoundingClientRect(),t.attr("width",s.width),t.attr("height",s.height)}s=d.getBBox();const c=0*t.padding,l=c/2,h=t.width<=s.width+t.padding?s.width+t.padding:t.width;t.width<=s.width+t.padding?t.diff=(s.width+0*t.padding-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-h/2-l).attr("y",t.y-t.height/2-l).attr("width",h+c).attr("height",t.height+c),o.attr("class","inner").attr("x",t.x-h/2-l).attr("y",t.y-t.height/2-l+s.height-1).attr("width",h+c).attr("height",t.height+c-s.height-3);const{subGraphTitleTopMargin:f}=g(n);a.attr("transform",`translate(${t.x-s.width/2}, ${t.y-t.height/2-t.padding/3+(x(n.flowchart.htmlLabels)?5:3)+f})`);const u=i.node().getBBox();return t.height=u.height,t.intersect=function(e){return v(t,e)},r},noteGroup:(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const o=r.node().getBBox();return t.width=o.width,t.height=o.height,t.intersect=function(e){return v(t,e)},n},divider:(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const o=r.node().getBBox();return t.width=o.width,t.height=o.height,t.diff=-t.padding/2,t.intersect=function(e){return v(t,e)},n}};let k={};const F=async(e,t,n,i,a,o)=>{y.info("Graph in recursive render: XXX",E(t),a);const d=t.graph().rankdir;y.trace("Dir in recursive render - dir:",d);const p=e.insert("g").attr("class","root");t.nodes()?y.info("Recursive render XXX",t.nodes()):y.info("No nodes found for",t),t.edges().length>0&&y.trace("Recursive edges",t.edge(t.edges()[0]));const v=p.insert("g").attr("class","clusters"),m=p.insert("g").attr("class","edgePaths"),x=p.insert("g").attr("class","edgeLabels"),b=p.insert("g").attr("class","nodes");await Promise.all(t.nodes().map((async function(e){const r=t.node(e);if(void 0!==a){const n=JSON.parse(JSON.stringify(a.clusterData));y.info("Setting data for cluster XXX (",e,") ",n,a),t.setNode(a.id,n),t.parent(e)||(y.trace("Setting parent",e,a.id),t.setParent(e,a.id,n))}if(y.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),r&&r.clusterNode){y.info("Cluster identified",e,r.width,t.node(e));const a=await F(b,r.graph,n,i,t.node(e),o),d=a.elem;s(r,d),r.diff=a.diff||0,y.info("Node bounds (abc123)",e,r,r.width,r.x,r.y),c(d,r),y.warn("Recursive render complete ",d,r)}else t.children(e).length>0?(y.info("Cluster - the non recursive path XXX",e,r.id,r,t),y.info(G(r.id,t)),S[r.id]={id:G(r.id,t),node:r}):(y.info("Node - the non recursive path",e,r.id,r),await l(b,t.node(e),d))}))),t.edges().forEach((function(e){const n=t.edge(e.v,e.w,e.name);y.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),y.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),y.info("Fix",S,"ids:",e.v,e.w,"Translating: ",S[e.v],S[e.w]),h(x,n)})),t.edges().forEach((function(e){y.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e))})),y.info("#############################################"),y.info("### Layout ###"),y.info("#############################################"),y.info(t),r(t),y.info("Graph after layout:",E(t));let N=0;const{subGraphTitleTotalMargin:X}=g(o);return(e=>j(e,e.children()))(t).forEach((function(e){const n=t.node(e);y.info("Position "+e+": "+JSON.stringify(t.node(e))),y.info("Position "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?(n.y+=X,f(n)):t.children(e).length>0?(n.height+=X,((e,t)=>{y.trace("Inserting cluster");const n=t.shape||"rect";k[t.id]=L[n](e,t)})(v,n),S[n.id].node=n):(n.y+=X/2,f(n))})),t.edges().forEach((function(e){const r=t.edge(e);y.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r),r),r.points.forEach((e=>e.y+=X/2));const a=u(m,e,r,S,n,t,i);w(r,a)})),t.nodes().forEach((function(e){const n=t.node(e);y.info(e,n.type,n.diff),"group"===n.type&&(N=n.diff)})),{elem:p,diff:N}},P=async(e,t,n,r,i)=>{a(e,n,r,i),o(),d(),k={},T={},B={},S={},y.warn("Graph at first:",JSON.stringify(E(t))),((e,t)=>{if(e){y.debug("Opting in, graph "),e.nodes().forEach((function(t){e.children(t).length>0&&(y.warn("Cluster identified",t," Replacement id in edges: ",G(t,e)),T[t]=J(t,e),S[t]={id:G(t,e),clusterData:e.node(t)})})),e.nodes().forEach((function(t){const n=e.children(t),r=e.edges();n.length>0?(y.debug("Cluster identified",t,T),r.forEach((e=>{e.v!==t&&e.w!==t&&D(e.v,t)^D(e.w,t)&&(y.warn("Edge: ",e," leaves cluster ",t),y.warn("Descendants of XXX ",t,": ",T[t]),S[t].externalConnections=!0)}))):y.debug("Not a cluster ",t,T)}));for(let t of Object.keys(S)){const n=S[t].id,r=e.parent(n);r!==t&&S[r]&&!S[r].externalConnections&&(S[t].id=r)}e.edges().forEach((function(t){const n=e.edge(t);y.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),y.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(y.warn("Fix XXX",S,"ids:",t.v,t.w,"Translating: ",S[t.v]," --- ",S[t.w]),S[t.v]&&S[t.w]&&S[t.v]===S[t.w]){y.warn("Fixing and trixing link to self - removing XXX",t.v,t.w,t.name),y.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=R(t.v),i=R(t.w),e.removeEdge(t.v,t.w,t.name);const a=t.w+"---"+t.v;e.setNode(a,{domId:a,id:a,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const o=structuredClone(n),d=structuredClone(n);o.label="",o.arrowTypeEnd="none",d.label="",o.fromCluster=t.v,d.toCluster=t.v,e.setEdge(r,a,o,t.name+"-cyclic-special"),e.setEdge(a,i,d,t.name+"-cyclic-special")}else if(S[t.v]||S[t.w]){if(y.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=R(t.v),i=R(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){const i=e.parent(r);S[i].externalConnections=!0,n.fromCluster=t.v}if(i!==t.w){const r=e.parent(i);S[r].externalConnections=!0,n.toCluster=t.w}y.warn("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,n,t.name)}})),y.warn("Adjusted Graph",E(e)),I(e,0),y.trace(S)}else y.debug("Opting out, no graph ")})(t),y.warn("Graph after:",JSON.stringify(E(t)));const s=m();await F(e,t,r,i,void 0,s)};export{P};
@@ -0,0 +1,7 @@
1
+ import{C as t}from"./index-167f08a0.js";import"react";import"react-dom";import"stream";const e={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},r={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},s={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},i={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},o={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class n{static getFirstMatch(t,e){const r=e.match(t);return r&&r.length>0&&r[1]||""}static getSecondMatch(t,e){const r=e.match(t);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(t,e,r){if(t.test(e))return r}static getWindowsVersionName(t){switch(t){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(t){const e=t.split(".").splice(0,2).map((t=>parseInt(t,10)||0));if(e.push(0),10===e[0])switch(e[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(t){const e=t.split(".").splice(0,2).map((t=>parseInt(t,10)||0));if(e.push(0),!(1===e[0]&&e[1]<5))return 1===e[0]&&e[1]<6?"Cupcake":1===e[0]&&e[1]>=6?"Donut":2===e[0]&&e[1]<2?"Eclair":2===e[0]&&2===e[1]?"Froyo":2===e[0]&&e[1]>2?"Gingerbread":3===e[0]?"Honeycomb":4===e[0]&&e[1]<1?"Ice Cream Sandwich":4===e[0]&&e[1]<4?"Jelly Bean":4===e[0]&&e[1]>=4?"KitKat":5===e[0]?"Lollipop":6===e[0]?"Marshmallow":7===e[0]?"Nougat":8===e[0]?"Oreo":9===e[0]?"Pie":void 0}static getVersionPrecision(t){return t.split(".").length}static compareVersions(t,e,r=!1){const s=n.getVersionPrecision(t),i=n.getVersionPrecision(e);let o=Math.max(s,i),a=0;const d=n.map([t,e],(t=>{const e=o-n.getVersionPrecision(t),r=t+new Array(e+1).join(".0");return n.map(r.split("."),(t=>new Array(20-t.length).join("0")+t)).reverse()}));for(r&&(a=o-Math.min(s,i)),o-=1;o>=a;){if(d[0][o]>d[1][o])return 1;if(d[0][o]===d[1][o]){if(o===a)return 0;o-=1}else if(d[0][o]<d[1][o])return-1}}static map(t,e){const r=[];let s;if(Array.prototype.map)return Array.prototype.map.call(t,e);for(s=0;s<t.length;s+=1)r.push(e(t[s]));return r}static find(t,e){let r,s;if(Array.prototype.find)return Array.prototype.find.call(t,e);for(r=0,s=t.length;r<s;r+=1){const s=t[r];if(e(s,r))return s}}static assign(t,...e){const r=t;let s,i;if(Object.assign)return Object.assign(t,...e);for(s=0,i=e.length;s<i;s+=1){const t=e[s];"object"==typeof t&&null!==t&&Object.keys(t).forEach((e=>{r[e]=t[e]}))}return t}static getBrowserAlias(t){return e[t]}static getBrowserTypeByAlias(t){return r[t]||""}}const a=/version\/(\d+(\.?_?\d+)+)/i,d=[{test:[/googlebot/i],describe(t){const e={name:"Googlebot"},r=n.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/opera/i],describe(t){const e={name:"Opera"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/opr\/|opios/i],describe(t){const e={name:"Opera"},r=n.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/SamsungBrowser/i],describe(t){const e={name:"Samsung Internet for Android"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/Whale/i],describe(t){const e={name:"NAVER Whale Browser"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/MZBrowser/i],describe(t){const e={name:"MZ Browser"},r=n.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/focus/i],describe(t){const e={name:"Focus"},r=n.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/swing/i],describe(t){const e={name:"Swing"},r=n.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/coast/i],describe(t){const e={name:"Opera Coast"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(t){const e={name:"Opera Touch"},r=n.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/yabrowser/i],describe(t){const e={name:"Yandex Browser"},r=n.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/ucbrowser/i],describe(t){const e={name:"UC Browser"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/Maxthon|mxios/i],describe(t){const e={name:"Maxthon"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/epiphany/i],describe(t){const e={name:"Epiphany"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/puffin/i],describe(t){const e={name:"Puffin"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/sleipnir/i],describe(t){const e={name:"Sleipnir"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/k-meleon/i],describe(t){const e={name:"K-Meleon"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/micromessenger/i],describe(t){const e={name:"WeChat"},r=n.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/qqbrowser/i],describe(t){const e={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},r=n.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/msie|trident/i],describe(t){const e={name:"Internet Explorer"},r=n.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/\sedg\//i],describe(t){const e={name:"Microsoft Edge"},r=n.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/edg([ea]|ios)/i],describe(t){const e={name:"Microsoft Edge"},r=n.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/vivaldi/i],describe(t){const e={name:"Vivaldi"},r=n.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/seamonkey/i],describe(t){const e={name:"SeaMonkey"},r=n.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/sailfish/i],describe(t){const e={name:"Sailfish"},r=n.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return r&&(e.version=r),e}},{test:[/silk/i],describe(t){const e={name:"Amazon Silk"},r=n.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/phantom/i],describe(t){const e={name:"PhantomJS"},r=n.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/slimerjs/i],describe(t){const e={name:"SlimerJS"},r=n.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e={name:"BlackBerry"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/(web|hpw)[o0]s/i],describe(t){const e={name:"WebOS Browser"},r=n.getFirstMatch(a,t)||n.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/bada/i],describe(t){const e={name:"Bada"},r=n.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/tizen/i],describe(t){const e={name:"Tizen"},r=n.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/qupzilla/i],describe(t){const e={name:"QupZilla"},r=n.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/firefox|iceweasel|fxios/i],describe(t){const e={name:"Firefox"},r=n.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/electron/i],describe(t){const e={name:"Electron"},r=n.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/MiuiBrowser/i],describe(t){const e={name:"Miui"},r=n.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/chromium/i],describe(t){const e={name:"Chromium"},r=n.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/chrome|crios|crmo/i],describe(t){const e={name:"Chrome"},r=n.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/GSA/i],describe(t){const e={name:"Google Search"},r=n.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test(t){const e=!t.test(/like android/i),r=t.test(/android/i);return e&&r},describe(t){const e={name:"Android Browser"},r=n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/playstation 4/i],describe(t){const e={name:"PlayStation 4"},r=n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/safari|applewebkit/i],describe(t){const e={name:"Safari"},r=n.getFirstMatch(a,t);return r&&(e.version=r),e}},{test:[/.*/i],describe(t){const e=-1!==t.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:n.getFirstMatch(e,t),version:n.getSecondMatch(e,t)}}}];var c=[{test:[/Roku\/DVP/],describe(t){const e=n.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:i.Roku,version:e}}},{test:[/windows phone/i],describe(t){const e=n.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:i.WindowsPhone,version:e}}},{test:[/windows /i],describe(t){const e=n.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),r=n.getWindowsVersionName(e);return{name:i.Windows,version:e,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(t){const e={name:i.iOS},r=n.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return r&&(e.version=r),e}},{test:[/macintosh/i],describe(t){const e=n.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),r=n.getMacOSVersionName(e),s={name:i.MacOS,version:e};return r&&(s.versionName=r),s}},{test:[/(ipod|iphone|ipad)/i],describe(t){const e=n.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:i.iOS,version:e}}},{test(t){const e=!t.test(/like android/i),r=t.test(/android/i);return e&&r},describe(t){const e=n.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),r=n.getAndroidVersionName(e),s={name:i.Android,version:e};return r&&(s.versionName=r),s}},{test:[/(web|hpw)[o0]s/i],describe(t){const e=n.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),r={name:i.WebOS};return e&&e.length&&(r.version=e),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e=n.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||n.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||n.getFirstMatch(/\bbb(\d+)/i,t);return{name:i.BlackBerry,version:e}}},{test:[/bada/i],describe(t){const e=n.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:i.Bada,version:e}}},{test:[/tizen/i],describe(t){const e=n.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:i.Tizen,version:e}}},{test:[/linux/i],describe:()=>({name:i.Linux})},{test:[/CrOS/],describe:()=>({name:i.ChromeOS})},{test:[/PlayStation 4/],describe(t){const e=n.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:i.PlayStation4,version:e}}}],u=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(t){const e=n.getFirstMatch(/(can-l01)/i,t)&&"Nova",r={type:s.mobile,vendor:"Huawei"};return e&&(r.model=e),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:s.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:s.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:s.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:s.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:s.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:s.tablet})},{test(t){const e=t.test(/ipod|iphone/i),r=t.test(/like (ipod|iphone)/i);return e&&!r},describe(t){const e=n.getFirstMatch(/(ipod|iphone)/i,t);return{type:s.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:s.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:s.mobile})},{test:t=>"blackberry"===t.getBrowserName(!0),describe:()=>({type:s.mobile,vendor:"BlackBerry"})},{test:t=>"bada"===t.getBrowserName(!0),describe:()=>({type:s.mobile})},{test:t=>"windows phone"===t.getBrowserName(),describe:()=>({type:s.mobile,vendor:"Microsoft"})},{test(t){const e=Number(String(t.getOSVersion()).split(".")[0]);return"android"===t.getOSName(!0)&&e>=3},describe:()=>({type:s.tablet})},{test:t=>"android"===t.getOSName(!0),describe:()=>({type:s.mobile})},{test:t=>"macos"===t.getOSName(!0),describe:()=>({type:s.desktop,vendor:"Apple"})},{test:t=>"windows"===t.getOSName(!0),describe:()=>({type:s.desktop})},{test:t=>"linux"===t.getOSName(!0),describe:()=>({type:s.desktop})},{test:t=>"playstation 4"===t.getOSName(!0),describe:()=>({type:s.tv})},{test:t=>"roku"===t.getOSName(!0),describe:()=>({type:s.tv})}],l=[{test:t=>"microsoft edge"===t.getBrowserName(!0),describe(t){if(/\sedg\//i.test(t))return{name:o.Blink};const e=n.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:o.EdgeHTML,version:e}}},{test:[/trident/i],describe(t){const e={name:o.Trident},r=n.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:t=>t.test(/presto/i),describe(t){const e={name:o.Presto},r=n.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test(t){const e=t.test(/gecko/i),r=t.test(/like gecko/i);return e&&!r},describe(t){const e={name:o.Gecko},r=n.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:o.Blink})},{test:[/(apple)?webkit/i],describe(t){const e={name:o.WebKit},r=n.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}}];class _{constructor(t,e=!1){if(null==t||""===t)throw new Error("UserAgent parameter can't be empty");this._ua=t,this.parsedResult={},!0!==e&&this.parse()}getUA(){return this._ua}test(t){return t.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const t=n.find(d,(t=>{if("function"==typeof t.test)return t.test(this);if(t.test instanceof Array)return t.test.some((t=>this.test(t)));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(t){return t?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const t=n.find(c,(t=>{if("function"==typeof t.test)return t.test(this);if(t.test instanceof Array)return t.test.some((t=>this.test(t)));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os}getOSName(t){const{name:e}=this.getOS();return t?String(e).toLowerCase()||"":e||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(t=!1){const{type:e}=this.getPlatform();return t?String(e).toLowerCase()||"":e||""}parsePlatform(){this.parsedResult.platform={};const t=n.find(u,(t=>{if("function"==typeof t.test)return t.test(this);if(t.test instanceof Array)return t.test.some((t=>this.test(t)));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(t){return t?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const t=n.find(l,(t=>{if("function"==typeof t.test)return t.test(this);if(t.test instanceof Array)return t.test.some((t=>this.test(t)));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return n.assign({},this.parsedResult)}satisfies(t){const e={};let r=0;const s={};let i=0;if(Object.keys(t).forEach((o=>{const n=t[o];"string"==typeof n?(s[o]=n,i+=1):"object"==typeof n&&(e[o]=n,r+=1)})),r>0){const t=Object.keys(e),r=n.find(t,(t=>this.isOS(t)));if(r){const t=this.satisfies(e[r]);if(void 0!==t)return t}const s=n.find(t,(t=>this.isPlatform(t)));if(s){const t=this.satisfies(e[s]);if(void 0!==t)return t}}if(i>0){const t=Object.keys(s),e=n.find(t,(t=>this.isBrowser(t,!0)));if(void 0!==e)return this.compareVersion(s[e])}}isBrowser(t,e=!1){const r=this.getBrowserName().toLowerCase();let s=t.toLowerCase();const i=n.getBrowserTypeByAlias(s);return e&&i&&(s=i.toLowerCase()),s===r}compareVersion(t){let e=[0],r=t,s=!1;const i=this.getBrowserVersion();if("string"==typeof i)return">"===t[0]||"<"===t[0]?(r=t.substr(1),"="===t[1]?(s=!0,r=t.substr(2)):e=[],">"===t[0]?e.push(1):e.push(-1)):"="===t[0]?r=t.substr(1):"~"===t[0]&&(s=!0,r=t.substr(1)),e.indexOf(n.compareVersions(i,r,s))>-1}isOS(t){return this.getOSName(!0)===String(t).toLowerCase()}isPlatform(t){return this.getPlatformType(!0)===String(t).toLowerCase()}isEngine(t){return this.getEngineName(!0)===String(t).toLowerCase()}is(t,e=!1){return this.isBrowser(t,e)||this.isOS(t)||this.isPlatform(t)}some(t=[]){return t.some((t=>this.is(t)))}}
2
+ /*!
3
+ * Bowser - a browser detector
4
+ * https://github.com/lancedikson/bowser
5
+ * MIT License | (c) Dustin Diaz 2012-2015
6
+ * MIT License | (c) Denis Demchenko 2015-2019
7
+ */var h=[{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"054c-05c4-Wireless Controller",friendlyName:"PS4",browser:"Firefox",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Microsoft Edge",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Opera",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Chrome",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox One Wired Controller (STANDARD GAMEPAD Vendor: 045e Product: 02d1)",friendlyName:"Xbox One",browser:"Chrome",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"45e-2d1-Xbox One Wired Controller",friendlyName:"Xbox One",browser:"Firefox",os:"macOS",buttons:{button_1:11,button_2:12,button_3:13,button_4:14,shoulder_top_left:8,shoulder_top_right:9,select:5,start:4,stick_button_left:6,stick_button_right:7,d_pad_up:0,d_pad_down:1,d_pad_left:2,d_pad_right:3,vendor:10}},{id:"xinput",friendlyName:"Xbox One",browser:"Firefox",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Microsoft Edge",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"Xbox One Wired Controller (STANDARD GAMEPAD Vendor: 045e Product: 02d1)",friendlyName:"Xbox One",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Opera",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"45e-2d1-Xbox One Wired Controller",friendlyName:"Xbox One",browser:"Safari",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,select:9,start:8,stick_button_left:6,stick_button_right:7,d_pad_up:11,d_pad_down:12,d_pad_left:13,d_pad_right:14,vendor:10}}],b=class{static getParser(t,e=!1){if("string"!=typeof t)throw new Error("UserAgent should be a string");return new _(t,e)}static parse(t){return new _(t).getResult()}static get BROWSER_MAP(){return r}static get ENGINE_MAP(){return o}static get OS_MAP(){return i}static get PLATFORMS_MAP(){return s}}.getParser(window.navigator.userAgent),p=function(){var e=this;this._requestAnimation=0,this._previousGamepadsState=[],this.listeners=[],this.start=function(){e._requestAnimation=window.requestAnimationFrame(e.tick)},this.stop=function(){window.cancelAnimationFrame(e._requestAnimation)},this.on=function(t,r,s){e.listeners[e.listeners.length]={type:t,id:r,callback:s}},this.off=function(t,r){e.listeners[e.listeners.length].splice(e.listeners.findIndex((function(e){return e.type===t&&e.id===r})),1)},this.tick=function(){var r=[].slice.call(window.navigator.getGamepads()).filter((function(t){return t})).map((function(e){var r=e.id,s=e.index,i=e.buttons,o=e.axes,n=h.find((function(t){return t.id===r&&t.browser===b.getBrowserName()&&t.os===b.getOSName()}));if(!n)throw new Error("".concat(r," not supported by gamepad.js"));return{id:r,index:s,buttons:Object.keys(n.buttons).reduce((function(e,r){var s;return t(t({},e),((s={})[r]=i[n.buttons[r]],s))}),{}),axes:o,mapping:n}}));r.map((function(t){var r=e._previousGamepadsState.find((function(e){var r=e.index;return t.index===r}));e.listeners.filter((function(e){var r=e.id;return t.buttons[r]})).filter((function(e){var s=e.type,i=e.id;switch(s){case"pressed":return t.buttons[i].pressed&&(!r||!r.buttons[i].pressed);case"held":return t.buttons[i].pressed;case"released":return!t.buttons[i].pressed&&r&&r.buttons[i].pressed;default:return!1}})).map((function(e){var r=e.callback,s=e.id;return r({id:s,gamepadIndex:t.index,value:t.buttons[s].value})}))})),r.map((function(t){e.listeners.filter((function(t){return"axes"===t.type})).filter((function(e){var r=e.id;return Math.abs(t.axes[r])>.1})).map((function(e){var r=e.callback,s=e.id;return r({id:s,gamepadIndex:t.index,value:t.axes[s]})}))})),e._previousGamepadsState=r,e._requestAnimation=window.requestAnimationFrame(e.tick)}};export{p as Gamepad};