@perses-dev/trace-table-plugin 0.6.0

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 (108) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +41 -0
  3. package/__mf/css/async/341.3d4493d2.css +1 -0
  4. package/__mf/css/async/759.3d4493d2.css +1 -0
  5. package/__mf/font/lato-all-300-normal.322bdf14.woff +0 -0
  6. package/__mf/font/lato-all-400-normal.63513b00.woff +0 -0
  7. package/__mf/font/lato-all-700-normal.bb27db94.woff +0 -0
  8. package/__mf/font/lato-all-900-normal.a27049a3.woff +0 -0
  9. package/__mf/font/lato-latin-300-normal.c5195215.woff2 +0 -0
  10. package/__mf/font/lato-latin-400-normal.b7ffde23.woff2 +0 -0
  11. package/__mf/font/lato-latin-700-normal.d5eb20bc.woff2 +0 -0
  12. package/__mf/font/lato-latin-900-normal.d884a71c.woff2 +0 -0
  13. package/__mf/font/lato-latin-ext-300-normal.abcc64a9.woff2 +0 -0
  14. package/__mf/font/lato-latin-ext-400-normal.6ebed106.woff2 +0 -0
  15. package/__mf/font/lato-latin-ext-700-normal.8697d1d5.woff2 +0 -0
  16. package/__mf/font/lato-latin-ext-900-normal.20a2b415.woff2 +0 -0
  17. package/__mf/js/152.cad35107.js +5 -0
  18. package/__mf/js/TraceTable.80656031.js +5 -0
  19. package/__mf/js/async/129.6a1a1c7d.js +147 -0
  20. package/__mf/js/async/129.6a1a1c7d.js.LICENSE.txt +27 -0
  21. package/__mf/js/async/156.525f3a44.js +1 -0
  22. package/__mf/js/async/173.f0db00ba.js +2 -0
  23. package/__mf/js/async/173.f0db00ba.js.LICENSE.txt +19 -0
  24. package/__mf/js/async/377.d6e7ba1a.js +2 -0
  25. package/__mf/js/async/377.d6e7ba1a.js.LICENSE.txt +32 -0
  26. package/__mf/js/async/559.b30e0b88.js +29 -0
  27. package/__mf/js/async/559.b30e0b88.js.LICENSE.txt +84 -0
  28. package/__mf/js/async/620.006d05f8.js +2 -0
  29. package/__mf/js/async/620.006d05f8.js.LICENSE.txt +9 -0
  30. package/__mf/js/async/651.4fdbe698.js +1 -0
  31. package/__mf/js/async/694.3c3c415f.js +1 -0
  32. package/__mf/js/async/740.fe5d3770.js +1 -0
  33. package/__mf/js/async/75.c1d82ca8.js +1 -0
  34. package/__mf/js/async/770.6cac4f4b.js +1 -0
  35. package/__mf/js/async/835.2f07f9d8.js +80 -0
  36. package/__mf/js/async/835.2f07f9d8.js.LICENSE.txt +9 -0
  37. package/__mf/js/async/960.dc16b984.js +2 -0
  38. package/__mf/js/async/960.dc16b984.js.LICENSE.txt +8 -0
  39. package/__mf/js/async/964.01c67113.js +2 -0
  40. package/__mf/js/async/964.01c67113.js.LICENSE.txt +9 -0
  41. package/__mf/js/async/__federation_expose_TraceTable.0f16deca.js +1 -0
  42. package/__mf/js/main.57cf0123.js +1 -0
  43. package/lib/DataTable.d.ts +15 -0
  44. package/lib/DataTable.d.ts.map +1 -0
  45. package/lib/DataTable.js +240 -0
  46. package/lib/DataTable.js.map +1 -0
  47. package/lib/TraceTable.d.ts +8 -0
  48. package/lib/TraceTable.d.ts.map +1 -0
  49. package/lib/TraceTable.js +25 -0
  50. package/lib/TraceTable.js.map +1 -0
  51. package/lib/TraceTablePanel.d.ts +19 -0
  52. package/lib/TraceTablePanel.d.ts.map +1 -0
  53. package/lib/TraceTablePanel.js +55 -0
  54. package/lib/TraceTablePanel.js.map +1 -0
  55. package/lib/bootstrap.d.ts +2 -0
  56. package/lib/bootstrap.d.ts.map +1 -0
  57. package/lib/bootstrap.js +19 -0
  58. package/lib/bootstrap.js.map +1 -0
  59. package/lib/cjs/DataTable.js +253 -0
  60. package/lib/cjs/TraceTable.js +31 -0
  61. package/lib/cjs/TraceTablePanel.js +71 -0
  62. package/lib/cjs/bootstrap.js +26 -0
  63. package/lib/cjs/env.d.js +14 -0
  64. package/lib/cjs/getPluginModule.js +27 -0
  65. package/lib/cjs/index-federation.js +55 -0
  66. package/lib/cjs/index.js +28 -0
  67. package/lib/cjs/setup-tests.js +19 -0
  68. package/lib/cjs/test/mock-trace-data.js +130 -0
  69. package/lib/cjs/trace-table-model.js +28 -0
  70. package/lib/cjs/utils/palette.js +83 -0
  71. package/lib/cjs/utils/utils.js +40 -0
  72. package/lib/env.d.js +15 -0
  73. package/lib/env.d.js.map +1 -0
  74. package/lib/getPluginModule.d.ts +6 -0
  75. package/lib/getPluginModule.d.ts.map +1 -0
  76. package/lib/getPluginModule.js +16 -0
  77. package/lib/getPluginModule.js.map +1 -0
  78. package/lib/index-federation.d.ts +1 -0
  79. package/lib/index-federation.d.ts.map +1 -0
  80. package/lib/index-federation.js +15 -0
  81. package/lib/index-federation.js.map +1 -0
  82. package/lib/index.d.ts +6 -0
  83. package/lib/index.d.ts.map +1 -0
  84. package/lib/index.js +7 -0
  85. package/lib/index.js.map +1 -0
  86. package/lib/setup-tests.d.ts +2 -0
  87. package/lib/setup-tests.d.ts.map +1 -0
  88. package/lib/setup-tests.js +17 -0
  89. package/lib/setup-tests.js.map +1 -0
  90. package/lib/test/mock-trace-data.d.ts +73 -0
  91. package/lib/test/mock-trace-data.d.ts.map +1 -0
  92. package/lib/test/mock-trace-data.js +114 -0
  93. package/lib/test/mock-trace-data.js.map +1 -0
  94. package/lib/trace-table-model.d.ts +17 -0
  95. package/lib/trace-table-model.d.ts.map +1 -0
  96. package/lib/trace-table-model.js +22 -0
  97. package/lib/trace-table-model.js.map +1 -0
  98. package/lib/utils/palette.d.ts +6 -0
  99. package/lib/utils/palette.d.ts.map +1 -0
  100. package/lib/utils/palette.js +64 -0
  101. package/lib/utils/palette.js.map +1 -0
  102. package/lib/utils/utils.d.ts +4 -0
  103. package/lib/utils/utils.d.ts.map +1 -0
  104. package/lib/utils/utils.js +32 -0
  105. package/lib/utils/utils.js.map +1 -0
  106. package/mf-manifest.json +235 -0
  107. package/mf-stats.json +271 -0
  108. package/package.json +56 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license React
3
+ * use-sync-external-store-shim.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 960.dc16b984.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkTraceTable=self.webpackChunkTraceTable||[]).push([["960"],{6434:function(e,t,r){r.r(t),r.d(t,{ClassNames:()=>e$,ThemeContext:()=>ea,createElement:()=>ey,css:()=>em,keyframes:()=>ev,ThemeProvider:()=>eo,useTheme:()=>es,withEmotionCache:()=>en,CacheProvider:()=>et,Global:()=>ed,__unsafe_useEmotionCache:()=>er,jsx:()=>ey,withTheme:()=>ei});var n,a,s=r(4538),c=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){if(this.ctr%(this.isSpeedy?65e3:1)==0){var t;this._insertTag(((t=document.createElement("style")).setAttribute("data-emotion",this.key),void 0!==this.nonce&&t.setAttribute("nonce",this.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t))}var r=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(r);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else r.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach(function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)}),this.tags=[],this.ctr=0},e}(),o=Math.abs,i=String.fromCharCode,u=Object.assign;function f(e,t,r){return e.replace(t,r)}function l(e,t){return e.indexOf(t)}function p(e,t){return 0|e.charCodeAt(t)}function h(e,t,r){return e.slice(t,r)}function y(e){return e.length}function d(e,t){return t.push(e),e}var m=1,v=1,g=0,b=0,$=0,k="";function w(e,t,r,n,a,s,c){return{value:e,root:t,parent:r,type:n,props:a,children:s,line:m,column:v,length:c,return:""}}function x(e,t){return u(w("",null,null,"",null,null,0),e,{length:-e.length},t)}function S(){return $=b<g?p(k,b++):0,v++,10===$&&(v=1,m++),$}function C(){return p(k,b)}function E(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function P(e){return m=v=1,g=y(k=e),b=0,[]}function T(e){var t,r;return(t=b-1,r=function e(t){for(;S();)switch($){case t:return b;case 34:case 39:34!==t&&39!==t&&e($);break;case 40:41===t&&e(t);break;case 92:S()}return b}(91===e?e+2:40===e?e+1:e),h(k,t,r)).trim()}var A="-ms-",O="-moz-",_="-webkit-",M="comm",j="rule",N="decl",z="@keyframes";function F(e,t){for(var r="",n=e.length,a=0;a<n;a++)r+=t(e[a],a,e,t)||"";return r}function L(e,t,r,n){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case N:return e.return=e.return||e.value;case M:return"";case z:return e.return=e.value+"{"+F(e.children,n)+"}";case j:e.value=e.props.join(",")}return y(r=F(e.children,n))?e.return=e.value+"{"+r+"}":""}function R(e,t,r,n,a,s,c,i,u,l,p){for(var y=a-1,d=0===a?s:[""],m=d.length,v=0,g=0,b=0;v<n;++v)for(var $=0,k=h(e,y+1,y=o(g=c[v])),x=e;$<m;++$)(x=(g>0?d[$]+" "+k:f(k,/&\f/g,d[$])).trim())&&(u[b++]=x);return w(e,t,r,0===a?j:i,u,l,p)}function D(e,t,r,n){return w(e,t,r,N,h(e,0,n),h(e,n+1,-1),n)}var q=function(e,t,r){for(var n=0,a=0;n=a,a=C(),38===n&&12===a&&(t[r]=1),!E(a);)S();return h(k,e,b)},I=function(e,t){var r=-1,n=44;do switch(E(n)){case 0:38===n&&12===C()&&(t[r]=1),e[r]+=q(b-1,t,r);break;case 2:e[r]+=T(n);break;case 4:if(44===n){e[++r]=58===C()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=i(n)}while(n=S());return e},W=function(e,t){var r;return r=I(P(e),t),k="",r},J=new WeakMap,X=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,r=e.parent,n=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(r))&&!n){J.set(e,!0);for(var a=[],s=W(t,a),c=r.props,o=0,i=0;o<s.length;o++)for(var u=0;u<c.length;u++,i++)e.props[i]=a[o]?s[o].replace(/&\f/g,c[u]):c[u]+" "+s[o]}}},Z=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},B=[function(e,t,r,n){if(e.length>-1&&!e.return)switch(e.type){case N:e.return=function e(t,r){switch(45^p(t,0)?(((r<<2^p(t,0))<<2^p(t,1))<<2^p(t,2))<<2^p(t,3):0){case 5103:return _+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return _+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return _+t+O+t+A+t+t;case 6828:case 4268:return _+t+A+t+t;case 6165:return _+t+A+"flex-"+t+t;case 5187:return _+t+f(t,/(\w+).+(:[^]+)/,_+"box-$1$2"+A+"flex-$1$2")+t;case 5443:return _+t+A+"flex-item-"+f(t,/flex-|-self/,"")+t;case 4675:return _+t+A+"flex-line-pack"+f(t,/align-content|flex-|-self/,"")+t;case 5548:return _+t+A+f(t,"shrink","negative")+t;case 5292:return _+t+A+f(t,"basis","preferred-size")+t;case 6060:return _+"box-"+f(t,"-grow","")+_+t+A+f(t,"grow","positive")+t;case 4554:return _+f(t,/([^-])(transform)/g,"$1"+_+"$2")+t;case 6187:return f(f(f(t,/(zoom-|grab)/,_+"$1"),/(image-set)/,_+"$1"),t,"")+t;case 5495:case 3959:return f(t,/(image-set\([^]*)/,_+"$1$`$1");case 4968:return f(f(t,/(.+:)(flex-)?(.*)/,_+"box-pack:$3"+A+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+_+t+t;case 4095:case 3583:case 4068:case 2532:return f(t,/(.+)-inline(.+)/,_+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(y(t)-1-r>6)switch(p(t,r+1)){case 109:if(45!==p(t,r+4))break;case 102:return f(t,/(.+:)(.+)-([^]+)/,"$1"+_+"$2-$3$1"+O+(108==p(t,r+3)?"$3":"$2-$3"))+t;case 115:return~l(t,"stretch")?e(f(t,"stretch","fill-available"),r)+t:t}break;case 4949:if(115!==p(t,r+1))break;case 6444:switch(p(t,y(t)-3-(~l(t,"!important")&&10))){case 107:return f(t,":",":"+_)+t;case 101:return f(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+_+(45===p(t,14)?"inline-":"")+"box$3$1"+_+"$2$3$1"+A+"$2box$3")+t}break;case 5936:switch(p(t,r+11)){case 114:return _+t+A+f(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return _+t+A+f(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return _+t+A+f(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return _+t+A+t+t}return t}(e.value,e.length);break;case z:return F([x(e,{value:f(e.value,"@","@"+_)})],n);case j:if(e.length){var a,s;return a=e.props,s=function(t){var r;switch(r=t,(r=/(::plac\w+|:read-\w+)/.exec(r))?r[0]:r){case":read-only":case":read-write":return F([x(e,{props:[f(t,/:(read-\w+)/,":"+O+"$1")]})],n);case"::placeholder":return F([x(e,{props:[f(t,/:(plac\w+)/,":"+_+"input-$1")]}),x(e,{props:[f(t,/:(plac\w+)/,":"+O+"$1")]}),x(e,{props:[f(t,/:(plac\w+)/,A+"input-$1")]})],n)}return""},a.map(s).join("")}}}],G=r(252),H=function(e){var t=new WeakMap;return function(r){if(t.has(r))return t.get(r);var n=e(r);return t.set(r,n),n}},U=r(5839),V=r.n(U),Y=r(3211),K=r(2747),Q=r(7164),ee=s.createContext("undefined"!=typeof HTMLElement?function(e){var t,r,n,a,s,o,u=e.key;if("css"===u){var g=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(g,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var x=e.stylisPlugins||B,A={},O=[];r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+u+' "]'),function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r<t.length;r++)A[t[r]]=!0;O.push(e)});var _=(o=(s=[X,Z].concat(x,[L,(t=function(e){a.insert(e)},function(e){!e.root&&(e=e.return)&&t(e)})])).length,function(e,t,r,n){for(var a="",c=0;c<o;c++)a+=s[c](e,t,r,n)||"";return a}),j=function(e){var t,r;return F((r=function e(t,r,n,a,s,c,o,u,g){for(var x,P=0,A=0,O=o,_=0,j=0,N=0,z=1,F=1,L=1,q=0,I="",W=s,J=c,X=a,Z=I;F;)switch(N=q,q=S()){case 40:if(108!=N&&58==p(Z,O-1)){-1!=l(Z+=f(T(q),"&","&\f"),"&\f")&&(L=-1);break}case 34:case 39:case 91:Z+=T(q);break;case 9:case 10:case 13:case 32:Z+=function(e){for(;$=C();)if($<33)S();else break;return E(e)>2||E($)>3?"":" "}(N);break;case 92:Z+=function(e,t){for(var r;--t&&S()&&!($<48)&&!($>102)&&(!($>57)||!($<65))&&(!($>70)||!($<97)););return r=b+(t<6&&32==C()&&32==S()),h(k,e,r)}(b-1,7);continue;case 47:switch(C()){case 42:case 47:d((x=function(e,t){for(;S();)if(e+$===57)break;else if(e+$===84&&47===C())break;return"/*"+h(k,t,b-1)+"*"+i(47===e?e:S())}(S(),b),w(x,r,n,M,i($),h(x,2,-2),0)),g);break;default:Z+="/"}break;case 123*z:u[P++]=y(Z)*L;case 125*z:case 59:case 0:switch(q){case 0:case 125:F=0;case 59+A:-1==L&&(Z=f(Z,/\f/g,"")),j>0&&y(Z)-O&&d(j>32?D(Z+";",a,n,O-1):D(f(Z," ","")+";",a,n,O-2),g);break;case 59:Z+=";";default:if(d(X=R(Z,r,n,P,A,s,u,I,W=[],J=[],O),c),123===q){if(0===A)e(Z,r,X,X,W,c,O,u,J);else switch(99===_&&110===p(Z,3)?100:_){case 100:case 108:case 109:case 115:e(t,X,X,a&&d(R(t,X,X,0,0,s,u,I,s,W=[],O),J),s,J,O,u,a?W:J);break;default:e(Z,X,X,X,[""],J,0,u,J)}}}P=A=j=0,z=L=1,I=Z="",O=o;break;case 58:O=1+y(Z),j=N;default:if(z<1){if(123==q)--z;else if(125==q&&0==z++&&125==($=b>0?p(k,--b):0,v--,10===$&&(v=1,m--),$))continue}switch(Z+=i(q),q*z){case 38:L=A>0?1:(Z+="\f",-1);break;case 44:u[P++]=(y(Z)-1)*L,L=1;break;case 64:45===C()&&(Z+=T(S())),_=C(),A=O=y(I=Z+=function(e){for(;!E(C());)S();return h(k,e,b)}(b)),q++;break;case 45:45===N&&2==y(Z)&&(z=0)}}return c}("",null,null,null,[""],t=P(t=e),0,[0],t),k="",r),_)};n=function(e,t,r,n){a=r,j(e?e+"{"+t.styles+"}":t.styles),n&&(N.inserted[t.name]=!0)};var N={key:u,sheet:new c({key:u,container:r,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:A,registered:{},insert:n};return N.sheet.hydrate(O),N}({key:"css"}):null),et=ee.Provider,er=function(){return(0,s.useContext)(ee)},en=function(e){return(0,s.forwardRef)(function(t,r){return e(t,(0,s.useContext)(ee),r)})},ea=s.createContext({}),es=function(){return s.useContext(ea)},ec=H(function(e){return H(function(t){return"function"==typeof t?t(e):(0,G.Z)({},e,t)})}),eo=function(e){var t=s.useContext(ea);return e.theme!==t&&(t=ec(t)(e.theme)),s.createElement(ea.Provider,{value:t},e.children)};function ei(e){var t=e.displayName||e.name||"Component",r=s.forwardRef(function(t,r){var n=s.useContext(ea);return s.createElement(e,(0,G.Z)({theme:n,ref:r},t))});return r.displayName="WithTheme("+t+")",V()(r,e)}var eu={}.hasOwnProperty,ef="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",el=function(e,t){var r={};for(var n in t)eu.call(t,n)&&(r[n]=t[n]);return r[ef]=e,r},ep=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return(0,Y.hC)(t,r,n),(0,Q.L)(function(){return(0,Y.My)(t,r,n)}),null},eh=en(function(e,t,r){var n=e.css;"string"==typeof n&&void 0!==t.registered[n]&&(n=t.registered[n]);var a=e[ef],c=[n],o="";"string"==typeof e.className?o=(0,Y.fp)(t.registered,c,e.className):null!=e.className&&(o=e.className+" ");var i=(0,K.O)(c,void 0,s.useContext(ea));o+=t.key+"-"+i.name;var u={};for(var f in e)eu.call(e,f)&&"css"!==f&&f!==ef&&(u[f]=e[f]);return u.className=o,r&&(u.ref=r),s.createElement(s.Fragment,null,s.createElement(ep,{cache:t,serialized:i,isStringTag:"string"==typeof a}),s.createElement(a,u))}),ey=function(e,t){var r=arguments;if(null==t||!eu.call(t,"css"))return s.createElement.apply(void 0,r);var n=r.length,a=Array(n);a[0]=eh,a[1]=el(e,t);for(var c=2;c<n;c++)a[c]=r[c];return s.createElement.apply(null,a)};n=ey||(ey={}),a||(a=n.JSX||(n.JSX={}));var ed=en(function(e,t){var r=e.styles,n=(0,K.O)([r],void 0,s.useContext(ea)),a=s.useRef();return(0,Q.j)(function(){var e=t.key+"-global",r=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),s=!1,c=document.querySelector('style[data-emotion="'+e+" "+n.name+'"]');return t.sheet.tags.length&&(r.before=t.sheet.tags[0]),null!==c&&(s=!0,c.setAttribute("data-emotion",e),r.hydrate([c])),a.current=[r,s],function(){r.flush()}},[t]),(0,Q.j)(function(){var e=a.current,r=e[0];if(e[1]){e[1]=!1;return}if(void 0!==n.next&&(0,Y.My)(t,n.next,!0),r.tags.length){var s=r.tags[r.tags.length-1].nextElementSibling;r.before=s,r.flush()}t.insert("",n,r,!1)},[t,n.name]),null});function em(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,K.O)(t)}function ev(){var e=em.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}var eg=function e(t){for(var r=t.length,n=0,a="";n<r;n++){var s=t[n];if(null!=s){var c=void 0;switch(typeof s){case"boolean":break;case"object":if(Array.isArray(s))c=e(s);else for(var o in c="",s)s[o]&&o&&(c&&(c+=" "),c+=o);break;default:c=s}c&&(a&&(a+=" "),a+=c)}}return a},eb=function(e){var t=e.cache,r=e.serializedArr;return(0,Q.L)(function(){for(var e=0;e<r.length;e++)(0,Y.My)(t,r[e],!1)}),null},e$=en(function(e,t){var r=!1,n=[],a=function(){for(var e=arguments.length,r=Array(e),a=0;a<e;a++)r[a]=arguments[a];var s=(0,K.O)(r,t.registered);return n.push(s),(0,Y.hC)(t,s,!1),t.key+"-"+s.name},c={css:a,cx:function(){for(var e,r,n,s,c=arguments.length,o=Array(c),i=0;i<c;i++)o[i]=arguments[i];return e=t.registered,r=eg(o),n=[],s=(0,Y.fp)(e,n,r),n.length<2?r:s+a(n)},theme:s.useContext(ea)},o=e.children(c);return s.createElement(s.Fragment,null,s.createElement(eb,{cache:t,serializedArr:n}),o)})},7164:function(e,t,r){r.d(t,{L:()=>s,j:()=>c});var n=r(4538),a=!!n.useInsertionEffect&&n.useInsertionEffect,s=a||function(e){return e()},c=a||n.useLayoutEffect},3211:function(e,t,r){function n(e,t,r){var n="";return r.split(" ").forEach(function(r){void 0!==e[r]?t.push(e[r]+";"):r&&(n+=r+" ")}),n}r.d(t,{My:()=>s,fp:()=>n,hC:()=>a});var a=function(e,t,r){var n=e.key+"-"+t.name;!1===r&&void 0===e.registered[n]&&(e.registered[n]=t.styles)},s=function(e,t,r){a(e,t,r);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var s=t;do e.insert(t===s?"."+n:"",s,e.sheet,!0),s=s.next;while(void 0!==s)}}},5839:function(e,t,r){var n=r(2097),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},c={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},o={};function i(e){return n.isMemo(e)?c:o[e.$$typeof]||a}o[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o[n.Memo]=c;var u=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,y=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(y){var a=h(r);a&&a!==y&&e(t,a,n)}var c=f(r);l&&(c=c.concat(l(r)));for(var o=i(t),d=i(r),m=0;m<c.length;++m){var v=c[m];if(!s[v]&&!(n&&n[v])&&!(d&&d[v])&&!(o&&o[v])){var g=p(r,v);try{u(t,v,g)}catch(e){}}}}return t}},4173:function(e,t){var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,a=r?Symbol.for("react.portal"):60106,s=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,o=r?Symbol.for("react.profiler"):60114,i=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,l=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,y=r?Symbol.for("react.suspense_list"):60120,d=r?Symbol.for("react.memo"):60115,m=r?Symbol.for("react.lazy"):60116,v=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,$=r?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case f:case l:case s:case o:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case m:case d:case i:return e;default:return t}}case a:return t}}}function w(e){return k(e)===l}t.AsyncMode=f,t.ConcurrentMode=l,t.ContextConsumer=u,t.ContextProvider=i,t.Element=n,t.ForwardRef=p,t.Fragment=s,t.Lazy=m,t.Memo=d,t.Portal=a,t.Profiler=o,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return w(e)||k(e)===f},t.isConcurrentMode=w,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===i},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===s},t.isLazy=function(e){return k(e)===m},t.isMemo=function(e){return k(e)===d},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===o},t.isStrictMode=function(e){return k(e)===c},t.isSuspense=function(e){return k(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===l||e===o||e===c||e===h||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===d||e.$$typeof===i||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===$||e.$$typeof===v)},t.typeOf=k},2097:function(e,t,r){e.exports=r(4173)}}]);
@@ -0,0 +1,8 @@
1
+ /** @license React v16.13.1
2
+ * react-is.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 964.01c67113.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkTraceTable=self.webpackChunkTraceTable||[]).push([["964"],{1535:function(e,t){var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),i=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),s=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.iterator,d={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,_={};function b(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||d}function m(){}function v(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||d}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=b.prototype;var S=v.prototype=new m;S.constructor=v,h(S,b.prototype),S.isPureReactComponent=!0;var k=Array.isArray,w=Object.prototype.hasOwnProperty,E={current:null},$={key:!0,ref:!0,__self:!0,__source:!0};function R(e,t,n){var o,u={},a=null,c=null;if(null!=t)for(o in void 0!==t.ref&&(c=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,o)&&!$.hasOwnProperty(o)&&(u[o]=t[o]);var i=arguments.length-2;if(1===i)u.children=n;else if(1<i){for(var f=Array(i),l=0;l<i;l++)f[l]=arguments[l+2];u.children=f}if(e&&e.defaultProps)for(o in i=e.defaultProps)void 0===u[o]&&(u[o]=i[o]);return{$$typeof:r,type:e,key:a,ref:c,props:u,_owner:E.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var g=/\/+/g;function j(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function O(e,t,o){if(null==e)return e;var u=[],a=0;return!function e(t,o,u,a,c){var i,f,l,s=typeof t;("undefined"===s||"boolean"===s)&&(t=null);var p=!1;if(null===t)p=!0;else switch(s){case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case r:case n:p=!0}}if(p)return c=c(p=t),t=""===a?"."+j(p,0):a,k(c)?(u="",null!=t&&(u=t.replace(g,"$&/")+"/"),e(c,o,u,"",function(e){return e})):null!=c&&(C(c)&&(i=c,f=u+(!c.key||p&&p.key===c.key?"":(""+c.key).replace(g,"$&/")+"/")+t,c={$$typeof:r,type:i.type,key:f,ref:i.ref,props:i.props,_owner:i._owner}),o.push(c)),1;if(p=0,a=""===a?".":a+":",k(t))for(var d=0;d<t.length;d++){var h=a+j(s=t[d],d);p+=e(s,o,u,h,c)}else if("function"==typeof(h=null===(l=t)||"object"!=typeof l?null:"function"==typeof(l=y&&l[y]||l["@@iterator"])?l:null))for(t=h.call(t),d=0;!(s=t.next()).done;)h=a+j(s=s.value,d++),p+=e(s,o,u,h,c);else if("object"===s)throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(o=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":o)+"). If you meant to render a collection of children, use an array instead.");return p}(e,u,"","",function(e){return t.call(o,e,a++)}),u}function x(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},T={transition:null};function I(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:O,forEach:function(e,t,r){O(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=a,t.PureComponent=v,t.StrictMode=u,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:T,ReactCurrentOwner:E},t.act=I,t.cloneElement=function(e,t,n){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=h({},e.props),u=e.key,a=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,c=E.current),void 0!==t.key&&(u=""+t.key),e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(f in t)w.call(t,f)&&!$.hasOwnProperty(f)&&(o[f]=void 0===t[f]&&void 0!==i?i[f]:t[f])}var f=arguments.length-2;if(1===f)o.children=n;else if(1<f){i=Array(f);for(var l=0;l<f;l++)i[l]=arguments[l+2];o.children=i}return{$$typeof:r,type:e.type,key:u,ref:a,props:o,_owner:c}},t.createContext=function(e){return(e={$$typeof:i,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=R,t.createFactory=function(e){var t=R.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:f,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:x}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=T.transition;T.transition={};try{e()}finally{T.transition=t}},t.unstable_act=I,t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,r){return P.current.useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,r){return P.current.useReducer(e,t,r)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,r){return P.current.useSyncExternalStore(e,t,r)},t.useTransition=function(){return P.current.useTransition()},t.version="18.3.1"},7378:function(e,t,r){e.exports=r(1535)}}]);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license React
3
+ * react.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkTraceTable=self.webpackChunkTraceTable||[]).push([["671"],{2520:function(e,t,r){r.r(t),r.d(t,{TraceTable:()=>Z});var n=r(4246),l=r(6372),a=r(3941),i=r(4776),o=r(2054),s=r(2889),d=r(2964),c=r(886),u=r(2469),m=r(9085),p=r(4045),h=r(2026),f=r(8276),x=r(4538),g=r(3915);let v=new g.Z({hue:{min:20,max:360}}),y=new g.Z({hue:{min:0,max:20}}),j={},C=new Intl.DateTimeFormat(void 0,{dateStyle:"long",timeStyle:"medium"}).format,T=new Intl.DateTimeFormat(void 0,{dateStyle:"long",timeStyle:"long",timeZone:"UTC"}).format;function b(e){var t,r,c;let{options:u,result:p,traceLink:g}=e,b=(0,i.Z)(),N=(0,a.useChartsTheme)(),Z=null===(r=u.visual)||void 0===r?void 0:null===(t=r.palette)||void 0===t?void 0:t.mode,k=(0,x.useCallback)(e=>(function(e,t,r,n){let l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return"categorical"===r?function(e,t,r,n){let l=t?n:r;if(0===l.length)return console.warn("getConsistentCategoricalColor() called with empty color palette, fallback to #000"),"#000";let a=0;for(let t=0;t<e.length;t++)a=e.charCodeAt(t)+((a<<5)-a);return l[Math.abs(a)%l.length]??"#000"}(n,l,t.echartsTheme.color,[e.palette.error.light,e.palette.error.main,e.palette.error.dark]):function(e,t){let r=`${e}_____${t}`,n=j[r];return n||(n=function(e,t){let[r,n,l]=t?y.hsl(e):v.hsl(e),a=`${(100*n).toFixed(0)}%`,i=`${(100*l).toFixed(0)}%`;return`hsla(${r.toFixed(2)},${a},${i},0.9)`}(e,t),j[r]=n),n}(n,l)})(b,N,Z,e),[b,N,Z]),$=[];for(let e of p)for(let t of(null===(c=e.data)||void 0===c?void 0:c.searchResult)||[])$.push({...t,id:t.traceId,traceLink:null==g?void 0:g({query:e.definition,traceId:t.traceId})});let O=(0,x.useMemo)(()=>[{field:"name",headerName:"Trace name",type:"string",flex:4,display:"flex",valueGetter:(e,t)=>`${t.rootServiceName}: ${t.rootTraceName}`,renderCell:e=>{let{row:t}=e;return(0,n.jsxs)(l.Z,{sx:{my:1},children:[(0,n.jsx)(S,{row:t}),(0,n.jsx)("br",{}),Object.entries(t.serviceStats).map(e=>{let[t,r]=e;return(0,n.jsx)(w,{serviceName:t,stats:r,serviceColor:k(t)},t)})]})}},{field:"spanCount",headerName:"Spans",type:"number",headerAlign:"left",align:"left",flex:2,minWidth:145,display:"flex",valueGetter:(e,t)=>Object.values(t.serviceStats).reduce((e,t)=>e+t.spanCount,0),renderCell:e=>{let{row:t}=e,r=0,l=0;for(let e of Object.values(t.serviceStats))r+=e.spanCount,l+=e.errorCount??0;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o.Z,{display:"inline",children:[r," spans"]}),l>0&&(0,n.jsx)(s.Z,{label:`${l} error${1===l?"":"s"}`,sx:{marginLeft:"5px"},icon:(0,n.jsx)(h.default,{}),variant:"outlined",size:"small",color:"error"})]})}},{field:"durationMs",headerName:"Duration",type:"number",headerAlign:"left",align:"left",flex:1,minWidth:70,display:"flex",renderCell:e=>{let{row:t}=e;return(0,n.jsx)(o.Z,{display:"inline",children:t.durationMs<1?"<1ms":(0,m.LU)((0,m.oK)(t.durationMs))})}},{field:"startTimeUnixMs",headerName:"Start time",type:"number",headerAlign:"left",align:"left",flex:3,minWidth:240,display:"flex",renderCell:e=>{let{row:t}=e;return(0,n.jsx)(d.Z,{title:T(new Date(t.startTimeUnixMs)),placement:"top",arrow:!0,children:(0,n.jsx)(o.Z,{display:"inline",children:C(new Date(t.startTimeUnixMs))},`st-${t.traceId}`)})}}],[k]);return(0,n.jsx)(f._,{sx:{borderWidth:0},columns:O,rows:$,getRowHeight:()=>"auto",getEstimatedRowHeight:()=>66,disableRowSelectionOnClick:!0,pageSizeOptions:[10,20,50,100],initialState:{pagination:{paginationModel:{pageSize:20}}}})}function S(e){let{row:t}=e;return t.traceLink?(0,n.jsxs)(c.Z,{variant:"body1",color:"inherit",underline:"hover",component:p.Link,to:t.traceLink,children:[(0,n.jsxs)("strong",{children:[t.rootServiceName,":"]})," ",t.rootTraceName]}):(0,n.jsxs)(o.Z,{display:"inline",children:[(0,n.jsxs)("strong",{children:[t.rootServiceName,":"]})," ",t.rootTraceName]})}function w(e){let{serviceName:t,stats:r,serviceColor:l}=e;return(0,n.jsx)(s.Z,{label:t,variant:"outlined",size:"small",style:{"--service-color":l},sx:{marginTop:"5px",marginRight:"5px",borderColor:"var(--service-color)"},avatar:(0,n.jsx)(u.Z,{sx:{minWidth:"fit-content",padding:"6px",backgroundColor:"var(--service-color)",fontSize:"0.65rem",fontWeight:"bold",textShadow:"0 0 5px #fff"},children:r.spanCount})})}function N(e){let{query:t,traceId:r}=e,n=JSON.parse(JSON.stringify(t));n.spec.plugin.spec.query=r;let l=new URLSearchParams({explorer:"Tempo-TempoExplorer",data:JSON.stringify({queries:[n]})});return`/explore?${l}`}let Z={PanelComponent:function(e){let{spec:t,queryResults:r,traceLink:i}=e,o=(0,a.useChartsTheme)().container.padding.default;return r.some(e=>{var t;return((null===(t=e.data)||void 0===t?void 0:t.searchResult)??[]).length>0})?(0,n.jsx)(l.Z,{sx:{height:"100%",padding:`${o}px`,overflowY:"auto"},children:(0,n.jsx)(b,{options:t,result:r,traceLink:null===i?void 0:i??N})}):(0,n.jsx)(a.NoDataOverlay,{resource:"traces"})},supportedQueryTypes:["TraceQuery"],createInitialOptions:function(){return{}}}}}]);
@@ -0,0 +1 @@
1
+ (()=>{var e={5311:function(e,r,t){Promise.all([t.e("677"),t.e("179"),t.e("620")]).then(t.bind(t,9161))}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=e,t.c=r,t.federation||(t.federation={chunkMatcher:function(e){return!/^((15|26|67)7|179|376|494|759)$/.test(e)}}),t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,n)=>(t.f[n](e,r),r),[])),t.u=e=>"__mf/js/async/"+e+"."+({129:"6a1a1c7d",156:"525f3a44",173:"f0db00ba",377:"d6e7ba1a",559:"b30e0b88",620:"006d05f8",651:"4fdbe698",694:"3c3c415f",740:"fe5d3770",75:"c1d82ca8",770:"6cac4f4b",960:"dc16b984",964:"01c67113"})[e]+".js",t.miniCssF=e=>"__mf/css/async/"+e+".3d4493d2.css",t.h=()=>"d8a86f9f435cda90",(()=>{t.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})()})(),t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={},r="TraceTable:";t.l=function(n,o,a,i){if(e[n]){e[n].push(o);return}if(void 0!==a)for(var s,l,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==n||u.getAttribute("data-webpack")==r+a){s=u;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,t.nc&&s.setAttribute("nonce",t.nc),s.setAttribute("data-webpack",r+a),s.src=n),e[n]=[o];var f=function(r,t){s.onerror=s.onload=null,clearTimeout(h);var o=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach(function(e){return e(t)}),r)return r(t)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),l&&document.head.appendChild(s)}})(),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.nc=void 0,(()=>{var e=[];t.O=(r,n,o,a)=>{if(n){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[n,o,a];return}for(var s=1/0,i=0;i<e.length;i++){for(var[n,o,a]=e[i],l=!0,c=0;c<n.length;c++)(!1&a||s>=a)&&Object.keys(t.O).every(e=>t.O[e](n[c]))?n.splice(c--,1):(l=!1,a<s&&(s=a));if(l){e.splice(i--,1);var d=o();void 0!==d&&(r=d)}}return r}})(),t.p="/plugins/TraceTable/",t.rv=()=>"1.2.8",t.j="909",t.S={},t.initializeSharingData={scopeToSharingDataMapping:{default:[{name:"@emotion/react",version:"11.14.0",factory:()=>Promise.all([t.e("960"),t.e("677"),t.e("651")]).then(()=>()=>t(6434)),eager:0,singleton:1,requiredVersion:"^11.11.3"},{name:"@emotion/styled",version:"11.14.0",factory:()=>Promise.all([t.e("677"),t.e("157"),t.e("770")]).then(()=>()=>t(1958)),eager:0,singleton:1},{name:"@perses-dev/components",version:"0.51.0-beta.1",factory:()=>Promise.all([t.e("156"),t.e("559"),t.e("129"),t.e("677"),t.e("179"),t.e("157"),t.e("376"),t.e("267"),t.e("759")]).then(()=>()=>t(9225)),eager:0,singleton:1},{name:"date-fns",version:"4.1.0",factory:()=>Promise.all([t.e("156"),t.e("75")]).then(()=>()=>t(9657)),eager:0,singleton:1},{name:"react-dom",version:"18.3.1",factory:()=>Promise.all([t.e("173"),t.e("677")]).then(()=>()=>t(2652)),eager:0,singleton:1,requiredVersion:"18.2.0"},{name:"react-router-dom",version:"6.30.0",factory:()=>Promise.all([t.e("377"),t.e("677"),t.e("179")]).then(()=>()=>t(5895)),eager:0,singleton:1},{name:"react",version:"18.3.1",factory:()=>t.e("964").then(()=>()=>t(7378)),eager:0,singleton:1,requiredVersion:"18.2.0"}]},uniqueName:"TraceTable"},t.I=t.I||function(){throw Error("should have __webpack_require__.I")},t.consumesLoadingData={chunkMapping:{267:["4665"],494:["7871"],179:["6085"],157:["2116"],376:["5913","461"],677:["4538"]},moduleIdToConsumeDataMapping:{5913:{shareScope:"default",shareKey:"@emotion/styled",import:"@emotion/styled",requiredVersion:"^11.3.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("694").then(()=>()=>t(1958))},461:{shareScope:"default",shareKey:"date-fns",import:"date-fns",requiredVersion:"^4.1.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("156"),t.e("75")]).then(()=>()=>t(9657))},4538:{shareScope:"default",shareKey:"react",import:"react",requiredVersion:"18.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("964").then(()=>()=>t(7378))},4665:{shareScope:"default",shareKey:"date-fns-tz",import:"date-fns-tz",requiredVersion:"^3.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("740"),t.e("494")]).then(()=>()=>t(8872))},7871:{shareScope:"default",shareKey:"date-fns",import:"date-fns",requiredVersion:"^3.0.0 || ^4.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("75").then(()=>()=>t(9657))},6085:{shareScope:"default",shareKey:"react-dom",import:"react-dom",requiredVersion:"18.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("173").then(()=>()=>t(2652))},2116:{shareScope:"default",shareKey:"@emotion/react",import:"@emotion/react",requiredVersion:"^11.11.3",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("960").then(()=>()=>t(6434))}},initialConsumes:[]},t.f.consumes=t.f.consumes||function(){throw Error("should have __webpack_require__.f.consumes")},(()=>{if("undefined"!=typeof document){var e=function(e,r,n,o,a){var i=document.createElement("link");return i.rel="stylesheet",i.type="text/css",t.nc&&(i.nonce=t.nc),i.onerror=i.onload=function(t){if(i.onerror=i.onload=null,"load"===t.type)o();else{var n=t&&("load"===t.type?"missing":t.type),s=t&&t.target&&t.target.href||r,l=Error("Loading CSS chunk "+e+" failed.\\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=n,l.request=s,i.parentNode&&i.parentNode.removeChild(i),a(l)}},i.href=r,n?n.parentNode.insertBefore(i,n.nextSibling):document.head.appendChild(i),i},r=function(e,r){for(var t=document.getElementsByTagName("link"),n=0;n<t.length;n++){var o=t[n],a=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(a===e||a===r))return o}for(var i=document.getElementsByTagName("style"),n=0;n<i.length;n++){var o=i[n],a=o.getAttribute("data-href");if(a===e||a===r)return o}},n={909:0};t.f.miniCss=function(o,a){if(n[o])a.push(n[o]);else if(0!==n[o]&&({759:1})[o])a.push(n[o]=new Promise(function(n,a){var i=t.miniCssF(o),s=t.p+i;if(r(i,s))return n();e(o,s,null,n,a)}).then(function(){n[o]=0},function(e){throw delete n[o],e}))}}})(),(()=>{var e={909:0};t.f.j=function(r,n){var o=t.o(e,r)?e[r]:void 0;if(0!==o){if(o)n.push(o[2]);else if(/^((15|26|67)7|179|376|494|759)$/.test(r))e[r]=0;else{var a=new Promise((t,n)=>o=e[r]=[t,n]);n.push(o[2]=a);var i=t.p+t.u(r),s=Error();t.l(i,function(n){if(t.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;s.message="Loading chunk "+r+" failed.\n("+a+": "+i+")",s.name="ChunkLoadError",s.type=a,s.request=i,o[1](s)}},"chunk-"+r,r)}}},t.O.j=r=>0===e[r];var r=(r,n)=>{var o,a,[i,s,l]=n,c=0;if(i.some(r=>0!==e[r])){for(o in s)t.o(s,o)&&(t.m[o]=s[o]);if(l)var d=l(t)}for(r&&r(n);c<i.length;c++)a=i[c],t.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return t.O(d)},n=self.webpackChunkTraceTable=self.webpackChunkTraceTable||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),t.ruid="bundler=rspack@1.2.8",t.O(void 0,["152"],function(){return t(8922)});var n=t.O(void 0,["152"],function(){return t(5311)});n=t.O(n)})();
@@ -0,0 +1,15 @@
1
+ import { QueryDefinition, TraceData } from '@perses-dev/core';
2
+ import { PanelData } from '@perses-dev/plugin-system';
3
+ import { ReactElement } from 'react';
4
+ import { TraceTableOptions } from './trace-table-model';
5
+ export type TraceLink = (params: {
6
+ query: QueryDefinition;
7
+ traceId: string;
8
+ }) => string;
9
+ export interface DataTableProps {
10
+ options: TraceTableOptions;
11
+ result: Array<PanelData<TraceData>>;
12
+ traceLink?: TraceLink;
13
+ }
14
+ export declare function DataTable(props: DataTableProps): ReactElement;
15
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/DataTable.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,eAAe,EAEf,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKtD,OAAO,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAOD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAkI7D"}
@@ -0,0 +1,240 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
+ import { Avatar, Box, Chip, Link, Tooltip, Typography, useTheme } from '@mui/material';
15
+ import { formatDuration, msToPrometheusDuration } from '@perses-dev/core';
16
+ import { Link as RouterLink } from 'react-router-dom';
17
+ import InformationIcon from 'mdi-material-ui/Information';
18
+ import { useChartsTheme } from '@perses-dev/components';
19
+ import { DataGrid } from '@mui/x-data-grid';
20
+ import { useCallback, useMemo } from 'react';
21
+ import { getServiceColor } from './utils/utils';
22
+ const DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {
23
+ dateStyle: 'long',
24
+ timeStyle: 'medium'
25
+ }).format;
26
+ const UTC_DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {
27
+ dateStyle: 'long',
28
+ timeStyle: 'long',
29
+ timeZone: 'UTC'
30
+ }).format;
31
+ export function DataTable(props) {
32
+ const { options, result, traceLink } = props;
33
+ const muiTheme = useTheme();
34
+ const chartsTheme = useChartsTheme();
35
+ const paletteMode = options.visual?.palette?.mode;
36
+ const serviceColorGenerator = useCallback((serviceName)=>getServiceColor(muiTheme, chartsTheme, paletteMode, serviceName), [
37
+ muiTheme,
38
+ chartsTheme,
39
+ paletteMode
40
+ ]);
41
+ const rows = [];
42
+ for (const query of result){
43
+ for (const trace of query.data?.searchResult || []){
44
+ rows.push({
45
+ ...trace,
46
+ id: trace.traceId,
47
+ traceLink: traceLink?.({
48
+ query: query.definition,
49
+ traceId: trace.traceId
50
+ })
51
+ });
52
+ }
53
+ }
54
+ const columns = useMemo(()=>[
55
+ {
56
+ field: 'name',
57
+ headerName: 'Trace name',
58
+ type: 'string',
59
+ flex: 4,
60
+ display: 'flex',
61
+ valueGetter: (_, trace)=>`${trace.rootServiceName}: ${trace.rootTraceName}`,
62
+ renderCell: ({ row })=>/*#__PURE__*/ _jsxs(Box, {
63
+ sx: {
64
+ my: 1
65
+ },
66
+ children: [
67
+ /*#__PURE__*/ _jsx(TraceName, {
68
+ row: row
69
+ }),
70
+ /*#__PURE__*/ _jsx("br", {}),
71
+ Object.entries(row.serviceStats).map(([serviceName, stats])=>/*#__PURE__*/ _jsx(ServiceChip, {
72
+ serviceName: serviceName,
73
+ stats: stats,
74
+ serviceColor: serviceColorGenerator(serviceName)
75
+ }, serviceName))
76
+ ]
77
+ })
78
+ },
79
+ {
80
+ field: 'spanCount',
81
+ headerName: 'Spans',
82
+ type: 'number',
83
+ headerAlign: 'left',
84
+ align: 'left',
85
+ flex: 2,
86
+ minWidth: 145,
87
+ display: 'flex',
88
+ valueGetter: (_, trace)=>Object.values(trace.serviceStats).reduce((acc, val)=>acc + val.spanCount, 0),
89
+ renderCell: ({ row })=>{
90
+ let totalSpanCount = 0;
91
+ let totalErrorCount = 0;
92
+ for (const stats of Object.values(row.serviceStats)){
93
+ totalSpanCount += stats.spanCount;
94
+ totalErrorCount += stats.errorCount ?? 0;
95
+ }
96
+ return /*#__PURE__*/ _jsxs(_Fragment, {
97
+ children: [
98
+ /*#__PURE__*/ _jsxs(Typography, {
99
+ display: "inline",
100
+ children: [
101
+ totalSpanCount,
102
+ " spans"
103
+ ]
104
+ }),
105
+ totalErrorCount > 0 && /*#__PURE__*/ _jsx(Chip, {
106
+ label: `${totalErrorCount} error${totalErrorCount === 1 ? '' : 's'}`,
107
+ sx: {
108
+ marginLeft: '5px'
109
+ },
110
+ icon: /*#__PURE__*/ _jsx(InformationIcon, {}),
111
+ variant: "outlined",
112
+ size: "small",
113
+ color: "error"
114
+ })
115
+ ]
116
+ });
117
+ }
118
+ },
119
+ {
120
+ field: 'durationMs',
121
+ headerName: 'Duration',
122
+ type: 'number',
123
+ headerAlign: 'left',
124
+ align: 'left',
125
+ flex: 1,
126
+ minWidth: 70,
127
+ display: 'flex',
128
+ renderCell: ({ row })=>/*#__PURE__*/ _jsx(Typography, {
129
+ display: "inline",
130
+ children: row.durationMs < 1 ? '<1ms' : formatDuration(msToPrometheusDuration(row.durationMs))
131
+ })
132
+ },
133
+ {
134
+ field: 'startTimeUnixMs',
135
+ headerName: 'Start time',
136
+ type: 'number',
137
+ headerAlign: 'left',
138
+ align: 'left',
139
+ flex: 3,
140
+ minWidth: 240,
141
+ display: 'flex',
142
+ renderCell: ({ row })=>/*#__PURE__*/ _jsx(Tooltip, {
143
+ title: UTC_DATE_FORMATTER(new Date(row.startTimeUnixMs)),
144
+ placement: "top",
145
+ arrow: true,
146
+ children: /*#__PURE__*/ _jsx(Typography, {
147
+ display: "inline",
148
+ children: DATE_FORMATTER(new Date(row.startTimeUnixMs))
149
+ }, `st-${row.traceId}`)
150
+ })
151
+ }
152
+ ], [
153
+ serviceColorGenerator
154
+ ]);
155
+ return /*#__PURE__*/ _jsx(DataGrid, {
156
+ sx: {
157
+ borderWidth: 0
158
+ },
159
+ columns: columns,
160
+ rows: rows,
161
+ getRowHeight: ()=>'auto',
162
+ getEstimatedRowHeight: ()=>66,
163
+ disableRowSelectionOnClick: true,
164
+ pageSizeOptions: [
165
+ 10,
166
+ 20,
167
+ 50,
168
+ 100
169
+ ],
170
+ initialState: {
171
+ pagination: {
172
+ paginationModel: {
173
+ pageSize: 20
174
+ }
175
+ }
176
+ }
177
+ });
178
+ }
179
+ function TraceName({ row: trace }) {
180
+ if (trace.traceLink) {
181
+ return /*#__PURE__*/ _jsxs(Link, {
182
+ variant: "body1",
183
+ color: "inherit",
184
+ underline: "hover",
185
+ component: RouterLink,
186
+ to: trace.traceLink,
187
+ children: [
188
+ /*#__PURE__*/ _jsxs("strong", {
189
+ children: [
190
+ trace.rootServiceName,
191
+ ":"
192
+ ]
193
+ }),
194
+ " ",
195
+ trace.rootTraceName
196
+ ]
197
+ });
198
+ }
199
+ return /*#__PURE__*/ _jsxs(Typography, {
200
+ display: "inline",
201
+ children: [
202
+ /*#__PURE__*/ _jsxs("strong", {
203
+ children: [
204
+ trace.rootServiceName,
205
+ ":"
206
+ ]
207
+ }),
208
+ " ",
209
+ trace.rootTraceName
210
+ ]
211
+ });
212
+ }
213
+ function ServiceChip({ serviceName, stats, serviceColor }) {
214
+ return /*#__PURE__*/ _jsx(Chip, {
215
+ label: serviceName,
216
+ variant: "outlined",
217
+ size: "small",
218
+ style: {
219
+ ['--service-color']: serviceColor
220
+ },
221
+ sx: {
222
+ marginTop: '5px',
223
+ marginRight: '5px',
224
+ borderColor: 'var(--service-color)'
225
+ },
226
+ avatar: /*#__PURE__*/ _jsx(Avatar, {
227
+ sx: {
228
+ minWidth: 'fit-content',
229
+ padding: '6px',
230
+ backgroundColor: 'var(--service-color)',
231
+ fontSize: '0.65rem',
232
+ fontWeight: 'bold',
233
+ textShadow: '0 0 5px #fff'
234
+ },
235
+ children: stats.spanCount
236
+ })
237
+ });
238
+ }
239
+
240
+ //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/DataTable.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Avatar, Box, Chip, Link, Tooltip, Typography, useTheme } from '@mui/material';\nimport {\n QueryDefinition,\n ServiceStats,\n TraceData,\n TraceSearchResult,\n formatDuration,\n msToPrometheusDuration,\n} from '@perses-dev/core';\nimport { PanelData } from '@perses-dev/plugin-system';\nimport { Link as RouterLink } from 'react-router-dom';\nimport InformationIcon from 'mdi-material-ui/Information';\nimport { useChartsTheme } from '@perses-dev/components';\nimport { DataGrid, GridColDef } from '@mui/x-data-grid';\nimport { ReactElement, useCallback, useMemo } from 'react';\nimport { getServiceColor } from './utils/utils';\nimport { TraceTableOptions } from './trace-table-model';\n\nconst DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'medium',\n}).format;\nconst UTC_DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'long',\n timeZone: 'UTC',\n}).format;\n\nexport type TraceLink = (params: { query: QueryDefinition; traceId: string }) => string;\n\nexport interface DataTableProps {\n options: TraceTableOptions;\n result: Array<PanelData<TraceData>>;\n traceLink?: TraceLink;\n}\n\ninterface Row extends TraceSearchResult {\n id: string;\n traceLink?: string;\n}\n\nexport function DataTable(props: DataTableProps): ReactElement {\n const { options, result, traceLink } = props;\n const muiTheme = useTheme();\n const chartsTheme = useChartsTheme();\n\n const paletteMode = options.visual?.palette?.mode;\n const serviceColorGenerator = useCallback(\n (serviceName: string) => getServiceColor(muiTheme, chartsTheme, paletteMode, serviceName),\n [muiTheme, chartsTheme, paletteMode]\n );\n\n const rows: Row[] = [];\n for (const query of result) {\n for (const trace of query.data?.searchResult || []) {\n rows.push({\n ...trace,\n id: trace.traceId,\n traceLink: traceLink?.({ query: query.definition, traceId: trace.traceId }),\n });\n }\n }\n\n const columns = useMemo<Array<GridColDef<Row>>>(\n () => [\n {\n field: 'name',\n headerName: 'Trace name',\n type: 'string',\n flex: 4,\n display: 'flex',\n valueGetter: (_, trace): string => `${trace.rootServiceName}: ${trace.rootTraceName}`,\n renderCell: ({ row }): ReactElement => (\n <Box sx={{ my: 1 }}>\n <TraceName row={row} />\n <br />\n {Object.entries(row.serviceStats).map(([serviceName, stats]) => (\n <ServiceChip\n key={serviceName}\n serviceName={serviceName}\n stats={stats}\n serviceColor={serviceColorGenerator(serviceName)}\n />\n ))}\n </Box>\n ),\n },\n {\n field: 'spanCount',\n headerName: 'Spans',\n type: 'number',\n headerAlign: 'left',\n align: 'left',\n flex: 2,\n minWidth: 145,\n display: 'flex',\n valueGetter: (_, trace) => Object.values(trace.serviceStats).reduce((acc, val) => acc + val.spanCount, 0),\n renderCell: ({ row }): ReactElement => {\n let totalSpanCount = 0;\n let totalErrorCount = 0;\n for (const stats of Object.values(row.serviceStats)) {\n totalSpanCount += stats.spanCount;\n totalErrorCount += stats.errorCount ?? 0;\n }\n return (\n <>\n <Typography display=\"inline\">{totalSpanCount} spans</Typography>\n {totalErrorCount > 0 && (\n <Chip\n label={`${totalErrorCount} error${totalErrorCount === 1 ? '' : 's'}`}\n sx={{ marginLeft: '5px' }}\n icon={<InformationIcon />}\n variant=\"outlined\"\n size=\"small\"\n color=\"error\"\n />\n )}\n </>\n );\n },\n },\n {\n field: 'durationMs',\n headerName: 'Duration',\n type: 'number',\n headerAlign: 'left',\n align: 'left',\n flex: 1,\n minWidth: 70,\n display: 'flex',\n renderCell: ({ row }) => (\n <Typography display=\"inline\">\n {row.durationMs < 1 ? '<1ms' : formatDuration(msToPrometheusDuration(row.durationMs))}\n </Typography>\n ),\n },\n {\n field: 'startTimeUnixMs',\n headerName: 'Start time',\n type: 'number',\n headerAlign: 'left',\n align: 'left',\n flex: 3,\n minWidth: 240,\n display: 'flex',\n renderCell: ({ row }) => (\n <Tooltip title={UTC_DATE_FORMATTER(new Date(row.startTimeUnixMs))} placement=\"top\" arrow>\n <Typography display=\"inline\" key={`st-${row.traceId}`}>\n {DATE_FORMATTER(new Date(row.startTimeUnixMs))}\n </Typography>\n </Tooltip>\n ),\n },\n ],\n [serviceColorGenerator]\n );\n\n return (\n <DataGrid\n sx={{ borderWidth: 0 }}\n columns={columns}\n rows={rows}\n getRowHeight={() => 'auto'}\n getEstimatedRowHeight={() => 66}\n disableRowSelectionOnClick={true}\n pageSizeOptions={[10, 20, 50, 100]}\n initialState={{\n pagination: { paginationModel: { pageSize: 20 } },\n }}\n />\n );\n}\n\ninterface TraceNameProps {\n row: Row;\n}\n\nfunction TraceName({ row: trace }: TraceNameProps): ReactElement {\n if (trace.traceLink) {\n return (\n <Link variant=\"body1\" color=\"inherit\" underline=\"hover\" component={RouterLink} to={trace.traceLink}>\n <strong>{trace.rootServiceName}:</strong> {trace.rootTraceName}\n </Link>\n );\n }\n\n return (\n <Typography display=\"inline\">\n <strong>{trace.rootServiceName}:</strong> {trace.rootTraceName}\n </Typography>\n );\n}\n\ninterface ServiceChipProps {\n serviceName: string;\n stats: ServiceStats;\n serviceColor: string;\n}\n\nfunction ServiceChip({ serviceName, stats, serviceColor }: ServiceChipProps): ReactElement {\n return (\n <Chip\n label={serviceName}\n variant=\"outlined\"\n size=\"small\"\n style={{ ['--service-color' as string]: serviceColor }}\n sx={{ marginTop: '5px', marginRight: '5px', borderColor: 'var(--service-color)' }}\n avatar={\n <Avatar\n sx={{\n minWidth: 'fit-content', // by default width is fixed to 18px, which is not enough for multi-digit span counts\n padding: '6px',\n backgroundColor: 'var(--service-color)',\n fontSize: '0.65rem',\n fontWeight: 'bold',\n textShadow: '0 0 5px #fff',\n }}\n >\n {stats.spanCount}\n </Avatar>\n }\n />\n );\n}\n"],"names":["Avatar","Box","Chip","Link","Tooltip","Typography","useTheme","formatDuration","msToPrometheusDuration","RouterLink","InformationIcon","useChartsTheme","DataGrid","useCallback","useMemo","getServiceColor","DATE_FORMATTER","Intl","DateTimeFormat","undefined","dateStyle","timeStyle","format","UTC_DATE_FORMATTER","timeZone","DataTable","props","options","result","traceLink","muiTheme","chartsTheme","paletteMode","visual","palette","mode","serviceColorGenerator","serviceName","rows","query","trace","data","searchResult","push","id","traceId","definition","columns","field","headerName","type","flex","display","valueGetter","_","rootServiceName","rootTraceName","renderCell","row","sx","my","TraceName","br","Object","entries","serviceStats","map","stats","ServiceChip","serviceColor","headerAlign","align","minWidth","values","reduce","acc","val","spanCount","totalSpanCount","totalErrorCount","errorCount","label","marginLeft","icon","variant","size","color","durationMs","title","Date","startTimeUnixMs","placement","arrow","borderWidth","getRowHeight","getEstimatedRowHeight","disableRowSelectionOnClick","pageSizeOptions","initialState","pagination","paginationModel","pageSize","underline","component","to","strong","style","marginTop","marginRight","borderColor","avatar","padding","backgroundColor","fontSize","fontWeight","textShadow"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { PanelPlugin } from '@perses-dev/plugin-system';
2
+ import { TraceTablePanelProps } from './TraceTablePanel';
3
+ import { TraceTableOptions } from './trace-table-model';
4
+ /**
5
+ * The core TraceTable panel plugin for Perses.
6
+ */
7
+ export declare const TraceTable: PanelPlugin<TraceTableOptions, TraceTablePanelProps>;
8
+ //# sourceMappingURL=TraceTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceTable.d.ts","sourceRoot":"","sources":["../../src/TraceTable.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAkC,MAAM,qBAAqB,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,oBAAoB,CAI3E,CAAC"}
@@ -0,0 +1,25 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { TraceTablePanel } from './TraceTablePanel';
14
+ import { createInitialTraceTableOptions } from './trace-table-model';
15
+ /**
16
+ * The core TraceTable panel plugin for Perses.
17
+ */ export const TraceTable = {
18
+ PanelComponent: TraceTablePanel,
19
+ supportedQueryTypes: [
20
+ 'TraceQuery'
21
+ ],
22
+ createInitialOptions: createInitialTraceTableOptions
23
+ };
24
+
25
+ //# sourceMappingURL=TraceTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/TraceTable.ts"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelPlugin } from '@perses-dev/plugin-system';\nimport { TraceTablePanel, TraceTablePanelProps } from './TraceTablePanel';\nimport { TraceTableOptions, createInitialTraceTableOptions } from './trace-table-model';\n\n/**\n * The core TraceTable panel plugin for Perses.\n */\nexport const TraceTable: PanelPlugin<TraceTableOptions, TraceTablePanelProps> = {\n PanelComponent: TraceTablePanel,\n supportedQueryTypes: ['TraceQuery'],\n createInitialOptions: createInitialTraceTableOptions,\n};\n"],"names":["TraceTablePanel","createInitialTraceTableOptions","TraceTable","PanelComponent","supportedQueryTypes","createInitialOptions"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAASA,eAAe,QAA8B,oBAAoB;AAC1E,SAA4BC,8BAA8B,QAAQ,sBAAsB;AAExF;;CAEC,GACD,OAAO,MAAMC,aAAmE;IAC9EC,gBAAgBH;IAChBI,qBAAqB;QAAC;KAAa;IACnCC,sBAAsBJ;AACxB,EAAE"}
@@ -0,0 +1,19 @@
1
+ import { PanelProps } from '@perses-dev/plugin-system';
2
+ import { QueryDefinition, TraceData } from '@perses-dev/core';
3
+ import { ReactElement } from 'react';
4
+ import { TraceLink } from './DataTable';
5
+ import { TraceTableOptions } from './trace-table-model';
6
+ export interface TraceTablePanelProps extends PanelProps<TraceTableOptions, TraceData> {
7
+ /**
8
+ * Specify a link for the traces in the table.
9
+ * If this field is unset or undefined, a link to the Gantt chart on the explore page is configured.
10
+ * Set this field explicitly to null to disable creating a link.
11
+ */
12
+ traceLink?: TraceLink | null;
13
+ }
14
+ export declare function defaultTraceLink({ query: originalQuery, traceId, }: {
15
+ query: QueryDefinition;
16
+ traceId: string;
17
+ }): string;
18
+ export declare function TraceTablePanel(props: TraceTablePanelProps): ReactElement;
19
+ //# sourceMappingURL=TraceTablePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceTablePanel.d.ts","sourceRoot":"","sources":["../../src/TraceTablePanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAa,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,oBAAqB,SAAQ,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACpF;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EAAE,aAAa,EACpB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAWT;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAoBzE"}
@@ -0,0 +1,55 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { Box } from '@mui/material';
15
+ import { NoDataOverlay, useChartsTheme } from '@perses-dev/components';
16
+ import { DataTable } from './DataTable';
17
+ export function defaultTraceLink({ query: originalQuery, traceId }) {
18
+ // clone the original query spec (including the datasource) and replace the query value with the trace id
19
+ const query = JSON.parse(JSON.stringify(originalQuery));
20
+ query.spec.plugin.spec.query = traceId;
21
+ const traceLinkParams = new URLSearchParams({
22
+ explorer: 'Tempo-TempoExplorer',
23
+ data: JSON.stringify({
24
+ queries: [
25
+ query
26
+ ]
27
+ })
28
+ });
29
+ return `/explore?${traceLinkParams}`;
30
+ }
31
+ export function TraceTablePanel(props) {
32
+ const { spec, queryResults, traceLink } = props;
33
+ const chartsTheme = useChartsTheme();
34
+ const contentPadding = chartsTheme.container.padding.default;
35
+ const tracesFound = queryResults.some((traceData)=>(traceData.data?.searchResult ?? []).length > 0);
36
+ if (!tracesFound) {
37
+ return /*#__PURE__*/ _jsx(NoDataOverlay, {
38
+ resource: "traces"
39
+ });
40
+ }
41
+ return /*#__PURE__*/ _jsx(Box, {
42
+ sx: {
43
+ height: '100%',
44
+ padding: `${contentPadding}px`,
45
+ overflowY: 'auto'
46
+ },
47
+ children: /*#__PURE__*/ _jsx(DataTable, {
48
+ options: spec,
49
+ result: queryResults,
50
+ traceLink: traceLink === null ? undefined : traceLink ?? defaultTraceLink
51
+ })
52
+ });
53
+ }
54
+
55
+ //# sourceMappingURL=TraceTablePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/TraceTablePanel.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelProps } from '@perses-dev/plugin-system';\nimport { Box } from '@mui/material';\nimport { NoDataOverlay, useChartsTheme } from '@perses-dev/components';\nimport { QueryDefinition, TraceData } from '@perses-dev/core';\nimport { ReactElement } from 'react';\nimport { DataTable, TraceLink } from './DataTable';\nimport { TraceTableOptions } from './trace-table-model';\n\nexport interface TraceTablePanelProps extends PanelProps<TraceTableOptions, TraceData> {\n /**\n * Specify a link for the traces in the table.\n * If this field is unset or undefined, a link to the Gantt chart on the explore page is configured.\n * Set this field explicitly to null to disable creating a link.\n */\n traceLink?: TraceLink | null;\n}\n\nexport function defaultTraceLink({\n query: originalQuery,\n traceId,\n}: {\n query: QueryDefinition;\n traceId: string;\n}): string {\n // clone the original query spec (including the datasource) and replace the query value with the trace id\n const query: QueryDefinition = JSON.parse(JSON.stringify(originalQuery));\n query.spec.plugin.spec.query = traceId;\n\n const traceLinkParams = new URLSearchParams({\n explorer: 'Tempo-TempoExplorer',\n data: JSON.stringify({ queries: [query] }),\n });\n\n return `/explore?${traceLinkParams}`;\n}\n\nexport function TraceTablePanel(props: TraceTablePanelProps): ReactElement {\n const { spec, queryResults, traceLink } = props;\n\n const chartsTheme = useChartsTheme();\n const contentPadding = chartsTheme.container.padding.default;\n\n const tracesFound = queryResults.some((traceData) => (traceData.data?.searchResult ?? []).length > 0);\n if (!tracesFound) {\n return <NoDataOverlay resource=\"traces\" />;\n }\n\n return (\n <Box sx={{ height: '100%', padding: `${contentPadding}px`, overflowY: 'auto' }}>\n <DataTable\n options={spec}\n result={queryResults}\n traceLink={traceLink === null ? undefined : (traceLink ?? defaultTraceLink)}\n />\n </Box>\n );\n}\n"],"names":["Box","NoDataOverlay","useChartsTheme","DataTable","defaultTraceLink","query","originalQuery","traceId","JSON","parse","stringify","spec","plugin","traceLinkParams","URLSearchParams","explorer","data","queries","TraceTablePanel","props","queryResults","traceLink","chartsTheme","contentPadding","container","padding","default","tracesFound","some","traceData","searchResult","length","resource","sx","height","overflowY","options","result","undefined"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,aAAa,EAAEC,cAAc,QAAQ,yBAAyB;AAGvE,SAASC,SAAS,QAAmB,cAAc;AAYnD,OAAO,SAASC,iBAAiB,EAC/BC,OAAOC,aAAa,EACpBC,OAAO,EAIR;IACC,yGAAyG;IACzG,MAAMF,QAAyBG,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACJ;IACzDD,MAAMM,IAAI,CAACC,MAAM,CAACD,IAAI,CAACN,KAAK,GAAGE;IAE/B,MAAMM,kBAAkB,IAAIC,gBAAgB;QAC1CC,UAAU;QACVC,MAAMR,KAAKE,SAAS,CAAC;YAAEO,SAAS;gBAACZ;aAAM;QAAC;IAC1C;IAEA,OAAO,CAAC,SAAS,EAAEQ,iBAAiB;AACtC;AAEA,OAAO,SAASK,gBAAgBC,KAA2B;IACzD,MAAM,EAAER,IAAI,EAAES,YAAY,EAAEC,SAAS,EAAE,GAAGF;IAE1C,MAAMG,cAAcpB;IACpB,MAAMqB,iBAAiBD,YAAYE,SAAS,CAACC,OAAO,CAACC,OAAO;IAE5D,MAAMC,cAAcP,aAAaQ,IAAI,CAAC,CAACC,YAAc,AAACA,CAAAA,UAAUb,IAAI,EAAEc,gBAAgB,EAAE,AAAD,EAAGC,MAAM,GAAG;IACnG,IAAI,CAACJ,aAAa;QAChB,qBAAO,KAAC1B;YAAc+B,UAAS;;IACjC;IAEA,qBACE,KAAChC;QAAIiC,IAAI;YAAEC,QAAQ;YAAQT,SAAS,GAAGF,eAAe,EAAE,CAAC;YAAEY,WAAW;QAAO;kBAC3E,cAAA,KAAChC;YACCiC,SAASzB;YACT0B,QAAQjB;YACRC,WAAWA,cAAc,OAAOiB,YAAajB,aAAajB;;;AAIlE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import React from 'react';
15
+ import ReactDOM from 'react-dom/client';
16
+ const root = ReactDOM.createRoot(document.getElementById('root'));
17
+ root.render(/*#__PURE__*/ _jsx(React.StrictMode, {}));
18
+
19
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bootstrap.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nconst root = ReactDOM.createRoot(document.getElementById('root')!);\nroot.render(<React.StrictMode></React.StrictMode>);\n"],"names":["React","ReactDOM","root","createRoot","document","getElementById","render","StrictMode"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,OAAOA,WAAW,QAAQ;AAC1B,OAAOC,cAAc,mBAAmB;AAExC,MAAMC,OAAOD,SAASE,UAAU,CAACC,SAASC,cAAc,CAAC;AACzDH,KAAKI,MAAM,eAAC,KAACN,MAAMO,UAAU"}