@techdocs/cli 1.4.1-next.3 → 1.4.1

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 (51) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/embedded-app/index.html +1 -1
  3. package/dist/embedded-app/static/{1032.94c986d1.chunk.js → 1032.16924053.chunk.js} +2 -2
  4. package/dist/embedded-app/static/{1032.94c986d1.chunk.js.map → 1032.16924053.chunk.js.map} +1 -1
  5. package/dist/embedded-app/static/1049.dd1f0d99.chunk.js +7 -0
  6. package/dist/embedded-app/static/1049.dd1f0d99.chunk.js.map +1 -0
  7. package/dist/embedded-app/static/{1105.facb65a8.chunk.js → 1105.0b45e765.chunk.js} +2 -2
  8. package/dist/embedded-app/static/{1105.facb65a8.chunk.js.map → 1105.0b45e765.chunk.js.map} +1 -1
  9. package/dist/embedded-app/static/{184.c1c44877.chunk.js → 184.90489ed7.chunk.js} +2 -2
  10. package/dist/embedded-app/static/{184.c1c44877.chunk.js.map → 184.90489ed7.chunk.js.map} +1 -1
  11. package/dist/embedded-app/static/{2440.e147b5dc.chunk.js → 2440.fa0c12ae.chunk.js} +2 -2
  12. package/dist/embedded-app/static/{2440.e147b5dc.chunk.js.map → 2440.fa0c12ae.chunk.js.map} +1 -1
  13. package/dist/embedded-app/static/{5458.742cd271.chunk.js → 5458.fe2a0a6d.chunk.js} +2 -2
  14. package/dist/embedded-app/static/{5458.742cd271.chunk.js.map → 5458.fe2a0a6d.chunk.js.map} +1 -1
  15. package/dist/embedded-app/static/6051.56a76749.chunk.js +4 -0
  16. package/dist/embedded-app/static/6051.56a76749.chunk.js.map +1 -0
  17. package/dist/embedded-app/static/{732.b2dac5c3.chunk.js → 732.e935fc39.chunk.js} +2 -2
  18. package/dist/embedded-app/static/{732.b2dac5c3.chunk.js.map → 732.e935fc39.chunk.js.map} +1 -1
  19. package/dist/embedded-app/static/{7560.4cfb6ad7.chunk.js → 7560.bb8f0386.chunk.js} +2 -2
  20. package/dist/embedded-app/static/{7560.4cfb6ad7.chunk.js.map → 7560.bb8f0386.chunk.js.map} +1 -1
  21. package/dist/embedded-app/static/{7670.d2126c9e.chunk.js → 7670.ae73207b.chunk.js} +2 -2
  22. package/dist/embedded-app/static/{7670.d2126c9e.chunk.js.map → 7670.ae73207b.chunk.js.map} +1 -1
  23. package/dist/embedded-app/static/{7750.7cd64666.chunk.js → 7750.6fd0ac0b.chunk.js} +2 -2
  24. package/dist/embedded-app/static/{7750.7cd64666.chunk.js.map → 7750.6fd0ac0b.chunk.js.map} +1 -1
  25. package/dist/embedded-app/static/{9323.0aa3540d.chunk.js → 9323.4703a3d8.chunk.js} +2 -2
  26. package/dist/embedded-app/static/{9323.0aa3540d.chunk.js.map → 9323.4703a3d8.chunk.js.map} +1 -1
  27. package/dist/embedded-app/static/{9545.fab4c42c.chunk.js → 9545.b25a5c55.chunk.js} +2 -2
  28. package/dist/embedded-app/static/{9545.fab4c42c.chunk.js.map → 9545.b25a5c55.chunk.js.map} +1 -1
  29. package/dist/embedded-app/static/{9770.b5b411d2.chunk.js → 9770.d2ae96e3.chunk.js} +2 -2
  30. package/dist/embedded-app/static/{9770.b5b411d2.chunk.js.map → 9770.d2ae96e3.chunk.js.map} +1 -1
  31. package/dist/embedded-app/static/main.7f000815.js +508 -0
  32. package/dist/embedded-app/static/main.7f000815.js.map +1 -0
  33. package/dist/embedded-app/static/module-luxon.ee277e4b.js +3 -0
  34. package/dist/embedded-app/static/module-luxon.ee277e4b.js.map +1 -0
  35. package/dist/embedded-app/static/{module-material-ui.1f3c23cb.js → module-material-ui.821488a0.js} +1 -1
  36. package/dist/embedded-app/static/{module-material-ui.1f3c23cb.js.map → module-material-ui.821488a0.js.map} +1 -1
  37. package/dist/embedded-app/static/{runtime.0f1c16cc.js → runtime.7f000815.js} +2 -2
  38. package/dist/embedded-app/static/{runtime.0f1c16cc.js.map → runtime.7f000815.js.map} +1 -1
  39. package/dist/embedded-app/static/{vendor.0f1c16cc.js → vendor.7f000815.js} +44 -44
  40. package/dist/embedded-app/static/vendor.7f000815.js.map +1 -0
  41. package/dist/index.cjs.js +1 -1
  42. package/package.json +5 -5
  43. package/dist/embedded-app/static/6051.bd9f4d48.chunk.js +0 -4
  44. package/dist/embedded-app/static/6051.bd9f4d48.chunk.js.map +0 -1
  45. package/dist/embedded-app/static/6174.55ddb654.chunk.js +0 -3
  46. package/dist/embedded-app/static/6174.55ddb654.chunk.js.map +0 -1
  47. package/dist/embedded-app/static/main.0f1c16cc.js +0 -508
  48. package/dist/embedded-app/static/main.0f1c16cc.js.map +0 -1
  49. package/dist/embedded-app/static/module-luxon.f096b58d.js +0 -3
  50. package/dist/embedded-app/static/module-luxon.f096b58d.js.map +0 -1
  51. package/dist/embedded-app/static/vendor.0f1c16cc.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -205,7 +205,7 @@ function lazy(getActionFunc) {
205
205
  };
206
206
  }
207
207
 
208
- var version = "1.4.1-next.3";
208
+ var version = "1.4.1";
209
209
 
210
210
  const main = (argv) => {
211
211
  commander.program.name("techdocs-cli").version(version);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@techdocs/cli",
3
3
  "description": "Utility CLI for managing TechDocs sites in Backstage.",
4
- "version": "1.4.1-next.3",
4
+ "version": "1.4.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -36,7 +36,7 @@
36
36
  "techdocs-cli": "bin/techdocs-cli"
37
37
  },
38
38
  "devDependencies": {
39
- "@backstage/cli": "^0.22.6-next.3",
39
+ "@backstage/cli": "^0.22.6",
40
40
  "@frsource/cypress-plugin-visual-regression-diff": "^3.2.8",
41
41
  "@types/commander": "^2.12.2",
42
42
  "@types/fs-extra": "^9.0.6",
@@ -60,11 +60,11 @@
60
60
  "ext": "ts"
61
61
  },
62
62
  "dependencies": {
63
- "@backstage/backend-common": "^0.18.4-next.2",
64
- "@backstage/catalog-model": "^1.3.0-next.0",
63
+ "@backstage/backend-common": "^0.18.4",
64
+ "@backstage/catalog-model": "^1.3.0",
65
65
  "@backstage/cli-common": "^0.1.12",
66
66
  "@backstage/config": "^1.0.7",
67
- "@backstage/plugin-techdocs-node": "^1.6.1-next.3",
67
+ "@backstage/plugin-techdocs-node": "^1.7.0",
68
68
  "@types/dockerode": "^3.3.0",
69
69
  "commander": "^9.1.0",
70
70
  "dockerode": "^3.3.1",
@@ -1,4 +0,0 @@
1
- "use strict";(()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[6051],{76051:function(fe,b,d){d.r(b),d.d(b,{RealLogViewer:function(){return he}});var h=d(52322),C=d(95544),k=d(61837),W=d(19353),D=d(72779),L=d.n(D),g=d(2784),G=d(73557),P=d(63399),$=d(50166),v=d(87612),Y=d(46212);const B=(0,Y.Z)(),I=/\n\r?/g,R=Object.fromEntries(Object.entries({1:e=>({...e,bold:!0}),3:e=>({...e,italic:!0}),4:e=>({...e,underline:!0}),22:({bold:e,...t})=>t,23:({italic:e,...t})=>t,24:({underline:e,...t})=>t,30:e=>({...e,foreground:"black"}),31:e=>({...e,foreground:"red"}),32:e=>({...e,foreground:"green"}),33:e=>({...e,foreground:"yellow"}),34:e=>({...e,foreground:"blue"}),35:e=>({...e,foreground:"magenta"}),36:e=>({...e,foreground:"cyan"}),37:e=>({...e,foreground:"white"}),39:({foreground:e,...t})=>t,90:e=>({...e,foreground:"grey"}),40:e=>({...e,background:"black"}),41:e=>({...e,background:"red"}),42:e=>({...e,background:"green"}),43:e=>({...e,background:"yellow"}),44:e=>({...e,background:"blue"}),45:e=>({...e,background:"magenta"}),46:e=>({...e,background:"cyan"}),47:e=>({...e,background:"white"}),49:({background:e,...t})=>t}).map(([e,t])=>[`\x1B[${e}m`,t]));class j{lastChunk(){return this.chunks[this.chunks.length-1]}replaceLastChunk(t){t&&(this.chunks.splice(this.chunks.length-1,1,...t),this.text=this.chunks.map(n=>n.text).join("").toLocaleLowerCase("en-US"))}constructor(t=1,n=[]){(0,v._)(this,"lineNumber",void 0),(0,v._)(this,"chunks",void 0),(0,v._)(this,"text",void 0),this.lineNumber=t,this.chunks=n,this.text=n.map(s=>s.text).join("").toLocaleLowerCase("en-US")}}class J{process(t){if(this.text===t)return this.lines;if(t.startsWith(this.text)){var n;const r=this.lines.length>0?this.lines.length-1:0;var s;const i=(s=this.lines[r])!==null&&s!==void 0?s:new j,c=i.lastChunk();var o;const l=this.processLines(((o=c==null?void 0:c.text)!==null&&o!==void 0?o:"")+t.slice(this.text.length),c==null?void 0:c.modifiers,i==null?void 0:i.lineNumber);i.replaceLastChunk((n=l[0])===null||n===void 0?void 0:n.chunks),this.lines[r]=i,this.lines.push(...l.slice(1))}else this.lines=this.processLines(t);return this.text=t,this.lines}constructor(){(0,v._)(this,"text",""),(0,v._)(this,"lines",[]),(0,v._)(this,"processLines",(t,n={},s=1)=>{const o=[];let r=n,i=s,c=0;for(I.lastIndex=0;;){const u=I.exec(t);if(!u){const m=this.processText(t.slice(c),r);return o.push(new j(i,m)),o}const a=t.slice(c,u.index);c=u.index+u[0].length;const f=this.processText(a,r);o.push(new j(i,f));var l;r=(l=f[f.length-1].modifiers)!==null&&l!==void 0?l:r,i+=1}}),(0,v._)(this,"processText",(t,n)=>{const s=[];let o=n,r=0;for(B.lastIndex=0;;){const i=B.exec(t);if(!i)return s.push({text:t.slice(r),modifiers:o}),s;const c=t.slice(r,i.index);s.push({text:c,modifiers:o}),r=i.index+i[0].length,o=this.processCode(i[0],o)}}),(0,v._)(this,"processCode",(t,n)=>{var s,o;return(o=(s=R[t])===null||s===void 0?void 0:s.call(R,n))!==null&&o!==void 0?o:n})}}var Q=d(74600),F=d.n(Q);function X(e,t){const n=new Array;if(t.bold&&n.push(e.modifierBold),t.italic&&n.push(e.modifierItalic),t.underline&&n.push(e.modifierUnderline),t.foreground){const s=`modifierForeground${F()(t.foreground)}`;n.push(e[s])}if(t.background){const s=`modifierBackground${F()(t.background)}`;n.push(e[s])}return n.length>0?n.join(" "):void 0}function w(e,t){if(!t||!e.includes(t))return;const n=new Array;let s=0;for(;;){const o=e.indexOf(t,s);if(o===-1)break;const r=o+t.length;n.push({start:o,end:r}),s=r}return n}function q(e,t){const n=w(e.text,t);if(!n)return e.chunks;const s=new Array;let o=0,r=0,i=n[r];for(const c of e.chunks){const{text:l,modifiers:u}=c;if(!i||o+l.length<i.start){s.push(c),o+=l.length;continue}let a=0;for(;i;){const m=Math.max(i.start-o,0);if(m>l.length)break;const p=Math.min(i.end-o,l.length);if(m>a&&s.push({text:l.slice(a,m),modifiers:u}),p>m&&s.push({modifiers:u,highlight:r,text:l.slice(m,p)}),a=p,i.end-o===p)r+=1,i=n[r];else break}a<l.length&&s.push({text:l.slice(a),modifiers:u}),o+=l.length}return s}function _({line:e,classes:t,searchText:n,highlightResultIndex:s}){const o=(0,g.useMemo)(()=>q(e,n),[e,n]),r=(0,g.useMemo)(()=>o.map(({text:i,modifiers:c,highlight:l},u)=>(0,h.jsx)("span",{className:L()(X(t,c),l!==void 0&&(l===s?t.textSelectedHighlight:t.textHighlight)),children:i},u)),[o,s,t]);return(0,h.jsx)(h.Fragment,{children:r})}var ee=d(86619),te=d(90436),ne=d(48049),oe=d(51209),M=d(36444);function se(e){const{resultCount:t,resultIndexStep:n,toggleShouldFilter:s}=e;var o;const r=(o=e.resultIndex)!==null&&o!==void 0?o:0,i=c=>{c.key==="Enter"&&(c.metaKey||c.ctrlKey||c.altKey?s():n(c.shiftKey))};return(0,h.jsxs)(h.Fragment,{children:[t!==void 0&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(k.Z,{size:"small",onClick:()=>n(!0),children:(0,h.jsx)(ne.Z,{})}),(0,h.jsxs)(te.Z,{children:[Math.min(r+1,t),"/",t]}),(0,h.jsx)(k.Z,{size:"small",onClick:()=>n(),children:(0,h.jsx)(oe.Z,{})})]}),(0,h.jsx)(ee.Z,{size:"small",variant:"standard",placeholder:"Search",value:e.searchInput,onKeyPress:i,onChange:c=>e.setSearchInput(c.target.value)}),(0,h.jsx)(k.Z,{size:"small",onClick:s,children:e.shouldFilter?(0,h.jsx)(M.Z,{color:"primary"}):(0,h.jsx)(M.Z,{color:"disabled"})})]})}var re=d(79692),N=d(41128),S=d(31754),T=d(66054),z=d(81463),A=d(34505),E=d(57186),K=d(32720),H=d(92901),O=d(45410);const V=40,ie=(0,re.Z)(e=>({root:{background:e.palette.background.paper},header:{height:V,display:"flex",alignItems:"center",justifyContent:"flex-end"},log:{fontFamily:'"Monaco", monospace',fontSize:e.typography.pxToRem(12)},line:{position:"relative",whiteSpace:"pre","&:hover":{background:e.palette.action.hover}},lineSelected:{background:e.palette.action.selected,"&:hover":{background:e.palette.action.selected}},lineCopyButton:{position:"absolute",paddingTop:0,paddingBottom:0},lineNumber:{display:"inline-block",textAlign:"end",width:60,marginRight:e.spacing(1),cursor:"pointer"},textHighlight:{background:(0,N.Fq)(e.palette.info.main,.15)},textSelectedHighlight:{background:(0,N.Fq)(e.palette.info.main,.4)},modifierBold:{fontWeight:e.typography.fontWeightBold},modifierItalic:{fontStyle:"italic"},modifierUnderline:{textDecoration:"underline"},modifierForegroundBlack:{color:S.Z.black},modifierForegroundRed:{color:T.Z[500]},modifierForegroundGreen:{color:z.Z[500]},modifierForegroundYellow:{color:A.Z[500]},modifierForegroundBlue:{color:E.Z[500]},modifierForegroundMagenta:{color:K.Z[500]},modifierForegroundCyan:{color:H.Z[500]},modifierForegroundWhite:{color:S.Z.white},modifierForegroundGrey:{color:O.Z[500]},modifierBackgroundBlack:{background:S.Z.black},modifierBackgroundRed:{background:T.Z[500]},modifierBackgroundGreen:{background:z.Z[500]},modifierBackgroundYellow:{background:A.Z[500]},modifierBackgroundBlue:{background:E.Z[500]},modifierBackgroundMagenta:{background:K.Z[500]},modifierBackgroundCyan:{background:H.Z[500]},modifierBackgroundWhite:{background:S.Z.white},modifierBackgroundGrey:{background:O.Z[500]}}),{name:"BackstageLogViewer"});var le=d(96686);function ce(e,t){if(!t)return{lines:e};const n=[],s=[];for(const o of e)if(o.text.includes(t)){n.push(o);let r=0,i=0;for(;;){const c=o.text.indexOf(t,r);if(c===-1)break;s.push({lineNumber:o.lineNumber,lineIndex:i++}),r=c+t.length}}return{lines:n,results:s}}function de(e){var t;const[n,s]=(0,g.useState)(""),o=n.toLocaleLowerCase("en-US"),[r,i]=(0,g.useState)(0),[c,l]=(0,le.O)(!1),u=(0,g.useMemo)(()=>ce(e,o),[e,o]),a=u.results?u.results[Math.min(r,u.results.length-1)]:void 0,f=(t=u.results)===null||t===void 0?void 0:t.length,m=p=>{if(p){if(f!==void 0){const x=Math.min(r-1,f-2);i(x<0?f-1:x)}}else if(f!==void 0){const x=r+1;i(x>=f?0:x)}};return{lines:c?u.lines:e,searchText:o,searchInput:n,setSearchInput:s,shouldFilter:c,toggleShouldFilter:l,resultCount:f,resultIndex:r,resultIndexStep:m,resultLine:a==null?void 0:a.lineNumber,resultLineIndex:a==null?void 0:a.lineIndex}}var U=d(60871),ae=d(95074);function ue(e){const t=(0,U.h_)(U.VE),[n,s]=(0,g.useState)(),o=n?Math.min(n.start,n.end):void 0,r=n?Math.max(n.start,n.end):void 0,[{error:i},c]=(0,ae.Z)();return(0,g.useEffect)(()=>{i&&t.post(i)},[i,t]),{shouldShowButton(l){return o===l||r===l},isSelected(l){return n?o<=l&&l<=r:!1},setSelection(l,u){s(u?a=>a?{start:a.start,end:l}:{start:l,end:l}:a=>(a==null?void 0:a.start)===l&&(a==null?void 0:a.end)===l?void 0:{start:l,end:l})},copySelection(){if(n){const l=e.slice(Math.min(n.start,n.end)-1,Math.max(n.start,n.end)).map(u=>u.chunks.map(a=>a.text).join("")).join(`
2
- `);c(l),s(void 0)}}}}function he(e){const t=ie({classes:e.classes}),n=(0,g.useRef)(null),o=(0,g.useMemo)(()=>new J,[]).process(e.text),r=de(o),i=ue(o),c=(0,G.TH)();(0,g.useEffect)(()=>{r.resultLine!==void 0&&n.current&&n.current.scrollToItem(r.resultLine-1,"center")},[r.resultLine]),(0,g.useEffect)(()=>{if(c.hash){const u=parseInt(c.hash.replace(/\D/g,""),10);i.setSelection(u,!1)}},[]);const l=(u,a)=>{i.setSelection(u,a.shiftKey)};return(0,h.jsx)(P.Z,{children:({height:u,width:a})=>(0,h.jsxs)(C.Z,{style:{width:a,height:u},className:t.root,children:[(0,h.jsx)(C.Z,{className:t.header,children:(0,h.jsx)(se,{...r})}),(0,h.jsx)($.t7,{ref:n,className:t.log,height:(u||480)-V,width:a||640,itemData:r.lines,itemSize:20,itemCount:r.lines.length,children:({index:f,style:m,data:p})=>{const x=p[f],{lineNumber:y}=x;return(0,h.jsxs)(C.Z,{style:{...m},className:L()(t.line,{[t.lineSelected]:i.isSelected(y)}),children:[i.shouldShowButton(y)&&(0,h.jsx)(k.Z,{"data-testid":"copy-button",size:"small",className:t.lineCopyButton,onClick:()=>i.copySelection(),children:(0,h.jsx)(W.Z,{fontSize:"inherit"})}),(0,h.jsx)("a",{role:"row",target:"_self",href:`#line-${y}`,className:t.lineNumber,onClick:Z=>l(y,Z),onKeyPress:Z=>l(y,Z),children:y}),(0,h.jsx)(_,{line:x,classes:t,searchText:r.searchText,highlightResultIndex:r.resultLine===y?r.resultLineIndex:void 0})]})}})]})})}}}]);})();
3
-
4
- //# sourceMappingURL=6051.bd9f4d48.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/6051.bd9f4d48.chunk.js","mappings":"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","sources":["webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/AnsiProcessor.ts","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/LogLine.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/LogViewerControls.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/styles.ts","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/useLogViewerSearch.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/useLogViewerSelection.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/RealLogViewer.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport ansiRegexMaker from 'ansi-regex';\n\nconst ansiRegex = ansiRegexMaker();\nconst newlineRegex = /\\n\\r?/g;\n\n// A mapping of how each escape code changes the modifiers\nconst codeModifiers = Object.fromEntries(\n Object.entries({\n 1: m => ({ ...m, bold: true }),\n 3: m => ({ ...m, italic: true }),\n 4: m => ({ ...m, underline: true }),\n 22: ({ bold: _, ...m }) => m,\n 23: ({ italic: _, ...m }) => m,\n 24: ({ underline: _, ...m }) => m,\n 30: m => ({ ...m, foreground: 'black' }),\n 31: m => ({ ...m, foreground: 'red' }),\n 32: m => ({ ...m, foreground: 'green' }),\n 33: m => ({ ...m, foreground: 'yellow' }),\n 34: m => ({ ...m, foreground: 'blue' }),\n 35: m => ({ ...m, foreground: 'magenta' }),\n 36: m => ({ ...m, foreground: 'cyan' }),\n 37: m => ({ ...m, foreground: 'white' }),\n 39: ({ foreground: _, ...m }) => m,\n 90: m => ({ ...m, foreground: 'grey' }),\n 40: m => ({ ...m, background: 'black' }),\n 41: m => ({ ...m, background: 'red' }),\n 42: m => ({ ...m, background: 'green' }),\n 43: m => ({ ...m, background: 'yellow' }),\n 44: m => ({ ...m, background: 'blue' }),\n 45: m => ({ ...m, background: 'magenta' }),\n 46: m => ({ ...m, background: 'cyan' }),\n 47: m => ({ ...m, background: 'white' }),\n 49: ({ background: _, ...m }) => m,\n } as Record<string, (m: ChunkModifiers) => ChunkModifiers>).map(\n ([code, modifier]) => [`\\x1b[${code}m`, modifier],\n ),\n);\n\nexport type AnsiColor =\n | 'black'\n | 'red'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'magenta'\n | 'cyan'\n | 'white'\n | 'grey';\n\nexport interface ChunkModifiers {\n foreground?: AnsiColor;\n background?: AnsiColor;\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n}\n\nexport interface AnsiChunk {\n text: string;\n modifiers: ChunkModifiers;\n}\n\nexport class AnsiLine {\n text: string;\n\n constructor(\n readonly lineNumber: number = 1,\n readonly chunks: AnsiChunk[] = [],\n ) {\n this.text = chunks\n .map(c => c.text)\n .join('')\n .toLocaleLowerCase('en-US');\n }\n\n lastChunk(): AnsiChunk | undefined {\n return this.chunks[this.chunks.length - 1];\n }\n\n replaceLastChunk(newChunks?: AnsiChunk[]) {\n if (newChunks) {\n this.chunks.splice(this.chunks.length - 1, 1, ...newChunks);\n this.text = this.chunks\n .map(c => c.text)\n .join('')\n .toLocaleLowerCase('en-US');\n }\n }\n}\n\nexport class AnsiProcessor {\n private text: string = '';\n private lines: AnsiLine[] = [];\n\n /**\n * Processes a chunk of text while keeping internal state that optimizes\n * subsequent processing that appends to the text.\n */\n process(text: string): AnsiLine[] {\n if (this.text === text) {\n return this.lines;\n }\n\n if (text.startsWith(this.text)) {\n const lastLineIndex = this.lines.length > 0 ? this.lines.length - 1 : 0;\n const lastLine = this.lines[lastLineIndex] ?? new AnsiLine();\n const lastChunk = lastLine.lastChunk();\n\n const newLines = this.processLines(\n (lastChunk?.text ?? '') + text.slice(this.text.length),\n lastChunk?.modifiers,\n lastLine?.lineNumber,\n );\n lastLine.replaceLastChunk(newLines[0]?.chunks);\n\n this.lines[lastLineIndex] = lastLine;\n this.lines.push(...newLines.slice(1));\n } else {\n this.lines = this.processLines(text);\n }\n this.text = text;\n\n return this.lines;\n }\n\n // Split a chunk of text up into lines and process each line individually\n private processLines = (\n text: string,\n modifiers: ChunkModifiers = {},\n startingLineNumber: number = 1,\n ): AnsiLine[] => {\n const lines: AnsiLine[] = [];\n\n let currentModifiers = modifiers;\n let currentLineNumber = startingLineNumber;\n\n let prevIndex = 0;\n newlineRegex.lastIndex = 0;\n for (;;) {\n const match = newlineRegex.exec(text);\n if (!match) {\n const chunks = this.processText(\n text.slice(prevIndex),\n currentModifiers,\n );\n lines.push(new AnsiLine(currentLineNumber, chunks));\n return lines;\n }\n\n const line = text.slice(prevIndex, match.index);\n prevIndex = match.index + match[0].length;\n\n const chunks = this.processText(line, currentModifiers);\n lines.push(new AnsiLine(currentLineNumber, chunks));\n\n // Modifiers that are active in the last chunk are carried over to the next line\n currentModifiers =\n chunks[chunks.length - 1].modifiers ?? currentModifiers;\n currentLineNumber += 1;\n }\n };\n\n // Processing of a one individual text chunk\n private processText = (\n fullText: string,\n modifiers: ChunkModifiers,\n ): AnsiChunk[] => {\n const chunks: AnsiChunk[] = [];\n\n let currentModifiers = modifiers;\n\n let prevIndex = 0;\n ansiRegex.lastIndex = 0;\n for (;;) {\n const match = ansiRegex.exec(fullText);\n if (!match) {\n chunks.push({\n text: fullText.slice(prevIndex),\n modifiers: currentModifiers,\n });\n return chunks;\n }\n\n const text = fullText.slice(prevIndex, match.index);\n chunks.push({ text, modifiers: currentModifiers });\n\n // For every escape code that we encounter we keep track of where the\n // next chunk of text starts, and what modifiers it has\n prevIndex = match.index + match[0].length;\n currentModifiers = this.processCode(match[0], currentModifiers);\n }\n };\n\n private processCode = (\n code: string,\n modifiers: ChunkModifiers,\n ): ChunkModifiers => {\n return codeModifiers[code]?.(modifiers) ?? modifiers;\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport React, { useMemo } from 'react';\nimport { AnsiChunk, AnsiLine, ChunkModifiers } from './AnsiProcessor';\nimport startCase from 'lodash/startCase';\nimport classnames from 'classnames';\nimport { useStyles } from './styles';\n\nexport function getModifierClasses(\n classes: ReturnType<typeof useStyles>,\n modifiers: ChunkModifiers,\n) {\n const classNames = new Array<string>();\n if (modifiers.bold) {\n classNames.push(classes.modifierBold);\n }\n if (modifiers.italic) {\n classNames.push(classes.modifierItalic);\n }\n if (modifiers.underline) {\n classNames.push(classes.modifierUnderline);\n }\n if (modifiers.foreground) {\n const key = `modifierForeground${startCase(\n modifiers.foreground,\n )}` as keyof typeof classes;\n classNames.push(classes[key]);\n }\n if (modifiers.background) {\n const key = `modifierBackground${startCase(\n modifiers.background,\n )}` as keyof typeof classes;\n classNames.push(classes[key]);\n }\n return classNames.length > 0 ? classNames.join(' ') : undefined;\n}\n\nexport function findSearchResults(text: string, searchText: string) {\n if (!searchText || !text.includes(searchText)) {\n return undefined;\n }\n const searchResults = new Array<{ start: number; end: number }>();\n let offset = 0;\n for (;;) {\n const start = text.indexOf(searchText, offset);\n if (start === -1) {\n break;\n }\n const end = start + searchText.length;\n searchResults.push({ start, end });\n offset = end;\n }\n return searchResults;\n}\n\nexport interface HighlightAnsiChunk extends AnsiChunk {\n highlight?: number;\n}\n\nexport function calculateHighlightedChunks(\n line: AnsiLine,\n searchText: string,\n): HighlightAnsiChunk[] {\n const results = findSearchResults(line.text, searchText);\n if (!results) {\n return line.chunks;\n }\n\n const chunks = new Array<HighlightAnsiChunk>();\n\n let lineOffset = 0;\n let resultIndex = 0;\n let result = results[resultIndex];\n for (const chunk of line.chunks) {\n const { text, modifiers } = chunk;\n if (!result || lineOffset + text.length < result.start) {\n chunks.push(chunk);\n lineOffset += text.length;\n continue;\n }\n\n let localOffset = 0;\n while (result) {\n const localStart = Math.max(result.start - lineOffset, 0);\n if (localStart > text.length) {\n break; // The next result is not in this chunk\n }\n\n const localEnd = Math.min(result.end - lineOffset, text.length);\n\n const hasTextBeforeResult = localStart > localOffset;\n if (hasTextBeforeResult) {\n chunks.push({ text: text.slice(localOffset, localStart), modifiers });\n }\n const hasResultText = localEnd > localStart;\n if (hasResultText) {\n chunks.push({\n modifiers,\n highlight: resultIndex,\n text: text.slice(localStart, localEnd),\n });\n }\n\n localOffset = localEnd;\n\n const foundCompleteResult = result.end - lineOffset === localEnd;\n if (foundCompleteResult) {\n resultIndex += 1;\n result = results[resultIndex];\n } else {\n break; // The rest of the result is in the following chunks\n }\n }\n\n const hasTextAfterResult = localOffset < text.length;\n if (hasTextAfterResult) {\n chunks.push({ text: text.slice(localOffset), modifiers });\n }\n\n lineOffset += text.length;\n }\n\n return chunks;\n}\n\nexport interface LogLineProps {\n line: AnsiLine;\n classes: ReturnType<typeof useStyles>;\n searchText: string;\n highlightResultIndex?: number;\n}\n\nexport function LogLine({\n line,\n classes,\n searchText,\n highlightResultIndex,\n}: LogLineProps) {\n const chunks = useMemo(\n () => calculateHighlightedChunks(line, searchText),\n [line, searchText],\n );\n\n const elements = useMemo(\n () =>\n chunks.map(({ text, modifiers, highlight }, index) => (\n // eslint-disable-next-line react/forbid-elements\n <span\n key={index}\n className={classnames(\n getModifierClasses(classes, modifiers),\n highlight !== undefined &&\n (highlight === highlightResultIndex\n ? classes.textSelectedHighlight\n : classes.textHighlight),\n )}\n >\n {text}\n </span>\n )),\n [chunks, highlightResultIndex, classes],\n );\n\n return <>{elements}</>;\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport React from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport { LogViewerSearch } from './useLogViewerSearch';\n\nexport interface LogViewerControlsProps extends LogViewerSearch {}\n\nexport function LogViewerControls(props: LogViewerControlsProps) {\n const { resultCount, resultIndexStep, toggleShouldFilter } = props;\n const resultIndex = props.resultIndex ?? 0;\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if (event.metaKey || event.ctrlKey || event.altKey) {\n toggleShouldFilter();\n } else {\n resultIndexStep(event.shiftKey);\n }\n }\n };\n\n return (\n <>\n {resultCount !== undefined && (\n <>\n <IconButton size=\"small\" onClick={() => resultIndexStep(true)}>\n <ChevronLeftIcon />\n </IconButton>\n <Typography>\n {Math.min(resultIndex + 1, resultCount)}/{resultCount}\n </Typography>\n <IconButton size=\"small\" onClick={() => resultIndexStep()}>\n <ChevronRightIcon />\n </IconButton>\n </>\n )}\n <TextField\n size=\"small\"\n variant=\"standard\"\n placeholder=\"Search\"\n value={props.searchInput}\n onKeyPress={handleKeyPress}\n onChange={e => props.setSearchInput(e.target.value)}\n />\n <IconButton size=\"small\" onClick={toggleShouldFilter}>\n {props.shouldFilter ? (\n <FilterListIcon color=\"primary\" />\n ) : (\n <FilterListIcon color=\"disabled\" />\n )}\n </IconButton>\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport { alpha, makeStyles } from '@material-ui/core/styles';\nimport * as colors from '@material-ui/core/colors';\n\nexport const HEADER_SIZE = 40;\n\n/** @public Class keys for overriding LogViewer styles */\nexport type LogViewerClassKey =\n | 'root'\n | 'header'\n | 'log'\n | 'line'\n | 'lineSelected'\n | 'lineCopyButton'\n | 'lineNumber'\n | 'textHighlight'\n | 'textSelectedHighlight'\n | 'modifierBold'\n | 'modifierItalic'\n | 'modifierUnderline'\n | 'modifierForegroundBlack'\n | 'modifierForegroundRed'\n | 'modifierForegroundGreen'\n | 'modifierForegroundYellow'\n | 'modifierForegroundBlue'\n | 'modifierForegroundMagenta'\n | 'modifierForegroundCyan'\n | 'modifierForegroundWhite'\n | 'modifierForegroundGrey'\n | 'modifierBackgroundBlack'\n | 'modifierBackgroundRed'\n | 'modifierBackgroundGreen'\n | 'modifierBackgroundYellow'\n | 'modifierBackgroundBlue'\n | 'modifierBackgroundMagenta'\n | 'modifierBackgroundCyan'\n | 'modifierBackgroundWhite'\n | 'modifierBackgroundGrey';\n\nexport const useStyles = makeStyles(\n theme => ({\n root: {\n background: theme.palette.background.paper,\n },\n header: {\n height: HEADER_SIZE,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n log: {\n fontFamily: '\"Monaco\", monospace',\n fontSize: theme.typography.pxToRem(12),\n },\n line: {\n position: 'relative',\n whiteSpace: 'pre',\n\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n lineSelected: {\n background: theme.palette.action.selected,\n\n '&:hover': {\n background: theme.palette.action.selected,\n },\n },\n lineCopyButton: {\n position: 'absolute',\n paddingTop: 0,\n paddingBottom: 0,\n },\n lineNumber: {\n display: 'inline-block',\n textAlign: 'end',\n width: 60,\n marginRight: theme.spacing(1),\n cursor: 'pointer',\n },\n textHighlight: {\n background: alpha(theme.palette.info.main, 0.15),\n },\n textSelectedHighlight: {\n background: alpha(theme.palette.info.main, 0.4),\n },\n modifierBold: {\n fontWeight: theme.typography.fontWeightBold,\n },\n modifierItalic: {\n fontStyle: 'italic',\n },\n modifierUnderline: {\n textDecoration: 'underline',\n },\n modifierForegroundBlack: {\n color: colors.common.black,\n },\n modifierForegroundRed: {\n color: colors.red[500],\n },\n modifierForegroundGreen: {\n color: colors.green[500],\n },\n modifierForegroundYellow: {\n color: colors.yellow[500],\n },\n modifierForegroundBlue: {\n color: colors.blue[500],\n },\n modifierForegroundMagenta: {\n color: colors.purple[500],\n },\n modifierForegroundCyan: {\n color: colors.cyan[500],\n },\n modifierForegroundWhite: {\n color: colors.common.white,\n },\n modifierForegroundGrey: {\n color: colors.grey[500],\n },\n modifierBackgroundBlack: {\n background: colors.common.black,\n },\n modifierBackgroundRed: {\n background: colors.red[500],\n },\n modifierBackgroundGreen: {\n background: colors.green[500],\n },\n modifierBackgroundYellow: {\n background: colors.yellow[500],\n },\n modifierBackgroundBlue: {\n background: colors.blue[500],\n },\n modifierBackgroundMagenta: {\n background: colors.purple[500],\n },\n modifierBackgroundCyan: {\n background: colors.cyan[500],\n },\n modifierBackgroundWhite: {\n background: colors.common.white,\n },\n modifierBackgroundGrey: {\n background: colors.grey[500],\n },\n }),\n { name: 'BackstageLogViewer' },\n);\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport { useMemo, useState } from 'react';\nimport { useToggle } from '@react-hookz/web';\nimport { AnsiLine } from './AnsiProcessor';\n\nexport function applySearchFilter(lines: AnsiLine[], searchText: string) {\n if (!searchText) {\n return { lines };\n }\n\n const matchingLines = [];\n const searchResults = [];\n for (const line of lines) {\n if (line.text.includes(searchText)) {\n matchingLines.push(line);\n\n let offset = 0;\n let lineResultIndex = 0;\n for (;;) {\n const start = line.text.indexOf(searchText, offset);\n if (start === -1) {\n break;\n }\n searchResults.push({\n lineNumber: line.lineNumber,\n lineIndex: lineResultIndex++,\n });\n offset = start + searchText.length;\n }\n }\n }\n\n return {\n lines: matchingLines,\n results: searchResults,\n };\n}\n\nexport interface LogViewerSearch {\n lines: AnsiLine[];\n\n searchText: string;\n searchInput: string;\n setSearchInput: (searchInput: string) => void;\n\n shouldFilter: boolean;\n toggleShouldFilter: () => void;\n\n resultCount: number | undefined;\n resultIndex: number | undefined;\n resultIndexStep: (decrement?: boolean) => void;\n\n resultLine: number | undefined;\n resultLineIndex: number | undefined;\n}\n\nexport function useLogViewerSearch(lines: AnsiLine[]): LogViewerSearch {\n const [searchInput, setSearchInput] = useState('');\n const searchText = searchInput.toLocaleLowerCase('en-US');\n\n const [resultIndex, setResultIndex] = useState<number>(0);\n\n const [shouldFilter, toggleShouldFilter] = useToggle(false);\n\n const filter = useMemo(\n () => applySearchFilter(lines, searchText),\n [lines, searchText],\n );\n\n const searchResult = filter.results\n ? filter.results[Math.min(resultIndex, filter.results.length - 1)]\n : undefined;\n const resultCount = filter.results?.length;\n\n const resultIndexStep = (decrement?: boolean) => {\n if (decrement) {\n if (resultCount !== undefined) {\n const next = Math.min(resultIndex - 1, resultCount - 2);\n setResultIndex(next < 0 ? resultCount - 1 : next);\n }\n } else {\n if (resultCount !== undefined) {\n const next = resultIndex + 1;\n setResultIndex(next >= resultCount ? 0 : next);\n }\n }\n };\n\n return {\n lines: shouldFilter ? filter.lines : lines,\n searchText,\n searchInput,\n setSearchInput,\n shouldFilter,\n toggleShouldFilter,\n resultCount,\n resultIndex,\n resultIndexStep,\n resultLine: searchResult?.lineNumber,\n resultLineIndex: searchResult?.lineIndex,\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 */\n\nimport { errorApiRef, useApi } from '@backstage/core-plugin-api';\nimport { useEffect, useState } from 'react';\nimport useCopyToClipboard from 'react-use/lib/useCopyToClipboard';\nimport { AnsiLine } from './AnsiProcessor';\n\nexport function useLogViewerSelection(lines: AnsiLine[]) {\n const errorApi = useApi(errorApiRef);\n const [sel, setSelection] = useState<{ start: number; end: number }>();\n const start = sel ? Math.min(sel.start, sel.end) : undefined;\n const end = sel ? Math.max(sel.start, sel.end) : undefined;\n\n const [{ error }, copyToClipboard] = useCopyToClipboard();\n\n useEffect(() => {\n if (error) {\n errorApi.post(error);\n }\n }, [error, errorApi]);\n\n return {\n shouldShowButton(line: number) {\n return start === line || end === line;\n },\n isSelected(line: number) {\n if (!sel) {\n return false;\n }\n return start! <= line && line <= end!;\n },\n setSelection(line: number, add: boolean) {\n if (add) {\n setSelection(s =>\n s ? { start: s.start, end: line } : { start: line, end: line },\n );\n } else {\n setSelection(s =>\n s?.start === line && s?.end === line\n ? undefined\n : { start: line, end: line },\n );\n }\n },\n copySelection() {\n if (sel) {\n const copyText = lines\n .slice(Math.min(sel.start, sel.end) - 1, Math.max(sel.start, sel.end))\n .map(l => l.chunks.map(c => c.text).join(''))\n .join('\\n');\n copyToClipboard(copyText);\n setSelection(undefined);\n }\n },\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\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 Box from '@material-ui/core/Box';\nimport IconButton from '@material-ui/core/IconButton';\nimport CopyIcon from '@material-ui/icons/FileCopy';\nimport classnames from 'classnames';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { FixedSizeList } from 'react-window';\n\nimport { AnsiProcessor } from './AnsiProcessor';\nimport { LogLine } from './LogLine';\nimport { LogViewerControls } from './LogViewerControls';\nimport { HEADER_SIZE, useStyles } from './styles';\nimport { useLogViewerSearch } from './useLogViewerSearch';\nimport { useLogViewerSelection } from './useLogViewerSelection';\n\nexport interface RealLogViewerProps {\n text: string;\n classes?: { root?: string };\n}\n\nexport function RealLogViewer(props: RealLogViewerProps) {\n const classes = useStyles({ classes: props.classes });\n const listRef = useRef<FixedSizeList | null>(null);\n\n // The processor keeps state that optimizes appending to the text\n const processor = useMemo(() => new AnsiProcessor(), []);\n const lines = processor.process(props.text);\n\n const search = useLogViewerSearch(lines);\n const selection = useLogViewerSelection(lines);\n const location = useLocation();\n\n useEffect(() => {\n if (search.resultLine !== undefined && listRef.current) {\n listRef.current.scrollToItem(search.resultLine - 1, 'center');\n }\n }, [search.resultLine]);\n\n useEffect(() => {\n if (location.hash) {\n // #line-6 -> 6\n const line = parseInt(location.hash.replace(/\\D/g, ''), 10);\n selection.setSelection(line, false);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleSelectLine = (\n line: number,\n event: { shiftKey: boolean; preventDefault: () => void },\n ) => {\n selection.setSelection(line, event.shiftKey);\n };\n\n return (\n <AutoSizer>\n {({ height, width }) => (\n <Box style={{ width, height }} className={classes.root}>\n <Box className={classes.header}>\n <LogViewerControls {...search} />\n </Box>\n <FixedSizeList\n ref={listRef}\n className={classes.log}\n height={(height || 480) - HEADER_SIZE}\n width={width || 640}\n itemData={search.lines}\n itemSize={20}\n itemCount={search.lines.length}\n >\n {({ index, style, data }) => {\n const line = data[index];\n const { lineNumber } = line;\n return (\n <Box\n style={{ ...style }}\n className={classnames(classes.line, {\n [classes.lineSelected]: selection.isSelected(lineNumber),\n })}\n >\n {selection.shouldShowButton(lineNumber) && (\n <IconButton\n data-testid=\"copy-button\"\n size=\"small\"\n className={classes.lineCopyButton}\n onClick={() => selection.copySelection()}\n >\n <CopyIcon fontSize=\"inherit\" />\n </IconButton>\n )}\n <a\n role=\"row\"\n target=\"_self\"\n href={`#line-${lineNumber}`}\n className={classes.lineNumber}\n onClick={event => handleSelectLine(lineNumber, event)}\n onKeyPress={event => handleSelectLine(lineNumber, event)}\n >\n {lineNumber}\n </a>\n <LogLine\n line={line}\n classes={classes}\n searchText={search.searchText}\n highlightResultIndex={\n search.resultLine === lineNumber\n ? search.resultLineIndex\n : undefined\n }\n />\n </Box>\n );\n }}\n </FixedSizeList>\n </Box>\n )}\n </AutoSizer>\n );\n}\n"],"names":["ansiRegex","ansiRegexMaker","newlineRegex","codeModifiers","Object","fromEntries","entries","m","bold","italic","underline","_","foreground","background","map","code","modifier","AnsiLine","lastChunk","chunks","length","replaceLastChunk","newChunks","splice","text","c","join","toLocaleLowerCase","constructor","lineNumber","AnsiProcessor","process","lines","startsWith","newLines","lastLineIndex","lastLine","processLines","slice","modifiers","push","startingLineNumber","currentModifiers","currentLineNumber","prevIndex","lastIndex","match","exec","processText","line","index","fullText","processCode","getModifierClasses","classes","classNames","Array","modifierBold","modifierItalic","modifierUnderline","key","startCase","undefined","findSearchResults","searchText","includes","searchResults","offset","start","indexOf","end","calculateHighlightedChunks","results","lineOffset","resultIndex","result","chunk","localOffset","localStart","Math","max","localEnd","min","highlight","LogLine","highlightResultIndex","useMemo","elements","span","className","classnames","textSelectedHighlight","textHighlight","LogViewerControls","props","resultCount","resultIndexStep","toggleShouldFilter","handleKeyPress","event","metaKey","ctrlKey","altKey","shiftKey","IconButton","size","onClick","ChevronLeftIcon","Typography","ChevronRightIcon","TextField","variant","placeholder","value","searchInput","onKeyPress","onChange","e","setSearchInput","target","shouldFilter","FilterListIcon","color","HEADER_SIZE","useStyles","makeStyles","theme","root","palette","paper","header","height","display","alignItems","justifyContent","log","fontFamily","fontSize","typography","pxToRem","position","whiteSpace","action","hover","lineSelected","selected","lineCopyButton","paddingTop","paddingBottom","textAlign","width","marginRight","spacing","cursor","alpha","info","main","fontWeight","fontWeightBold","fontStyle","textDecoration","modifierForegroundBlack","colors","modifierForegroundRed","modifierForegroundGreen","modifierForegroundYellow","modifierForegroundBlue","modifierForegroundMagenta","modifierForegroundCyan","modifierForegroundWhite","modifierForegroundGrey","modifierBackgroundBlack","modifierBackgroundRed","modifierBackgroundGreen","modifierBackgroundYellow","modifierBackgroundBlue","modifierBackgroundMagenta","modifierBackgroundCyan","modifierBackgroundWhite","modifierBackgroundGrey","name","applySearchFilter","matchingLines","lineResultIndex","lineIndex","useLogViewerSearch","filter","useState","setResultIndex","useToggle","searchResult","decrement","next","resultLine","resultLineIndex","useLogViewerSelection","errorApi","useApi","errorApiRef","sel","setSelection","error","copyToClipboard","useCopyToClipboard","useEffect","post","shouldShowButton","isSelected","add","s","copySelection","copyText","l","RealLogViewer","listRef","useRef","search","selection","location","useLocation","current","scrollToItem","hash","parseInt","replace","handleSelectLine","AutoSizer","Box","style","FixedSizeList","ref","itemData","itemSize","itemCount","data","data-testid","CopyIcon","a","role","href"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- "use strict";(()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[6174],{96686:function(ye,ve,q){q.d(ve,{O:function(){return pe}});var Y=q(2784);function se(Z){var H=(0,Y.useRef)(Z);return H.current=Z,(0,Y.useMemo)(function(){return Object.freeze({get current(){return H.current}})},[])}var fe=q(29862);function N(Z){var H=(0,Y.useState)(Z),le=H[0],ie=H[1],ce=(0,fe.t)(!0);return[le,(0,Y.useCallback)(function(re){ce()&&ie(re)},[])]}function Q(Z,H){return typeof Z=="function"?Z(H):Z}function pe(Z,H){Z===void 0&&(Z=!1),H===void 0&&(H=!0);var le=N(Z),ie=le[0],ce=le[1],re=se(H);return[ie,(0,Y.useCallback)(function(K){ce(function(Me){return K===void 0||re.current&&typeof K=="object"&&(K.constructor.name==="SyntheticBaseEvent"||typeof K._reactName=="string")?!Me:Boolean(Q(K,Me))})},[])]}},63399:function(ye,ve,q){q.d(ve,{Z:function(){return We}});var Y=q(2784),se=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof q.g!="undefined"?q.g:{},fe={};let N;typeof window!="undefined"?N=window:typeof self!="undefined"?N=self:N=se;let Q=null,pe=null;const Z=20,H=N.clearTimeout,le=N.setTimeout,ie=N.cancelAnimationFrame||N.mozCancelAnimationFrame||N.webkitCancelAnimationFrame,ce=N.requestAnimationFrame||N.mozRequestAnimationFrame||N.webkitRequestAnimationFrame;ie==null||ce==null?(Q=H,pe=function(R){return le(R,Z)}):(Q=function([R,b]){ie(R),H(b)},pe=function(R){const b=ce(function(){H(V),R()}),V=le(function(){ie(b),R()},Z);return[b,V]});function re(D){let R,b,V,ee,de,k,oe;const te=typeof document!="undefined"&&document.attachEvent;if(!te){k=function($){const B=$.__resizeTriggers__,G=B.firstElementChild,Ie=B.lastElementChild,_e=G.firstElementChild;Ie.scrollLeft=Ie.scrollWidth,Ie.scrollTop=Ie.scrollHeight,_e.style.width=G.offsetWidth+1+"px",_e.style.height=G.offsetHeight+1+"px",G.scrollLeft=G.scrollWidth,G.scrollTop=G.scrollHeight},de=function($){return $.offsetWidth!==$.__resizeLast__.width||$.offsetHeight!==$.__resizeLast__.height},oe=function($){if($.target.className&&typeof $.target.className.indexOf=="function"&&$.target.className.indexOf("contract-trigger")<0&&$.target.className.indexOf("expand-trigger")<0)return;const B=this;k(this),this.__resizeRAF__&&Q(this.__resizeRAF__),this.__resizeRAF__=pe(function(){de(B)&&(B.__resizeLast__.width=B.offsetWidth,B.__resizeLast__.height=B.offsetHeight,B.__resizeListeners__.forEach(function(_e){_e.call(B,$)}))})};let g=!1,P="";V="animationstart";const U="Webkit Moz O ms".split(" ");let j="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),he="";{const $=document.createElement("fakeelement");if($.style.animationName!==void 0&&(g=!0),g===!1){for(let B=0;B<U.length;B++)if($.style[U[B]+"AnimationName"]!==void 0){he=U[B],P="-"+he.toLowerCase()+"-",V=j[B],g=!0;break}}}b="resizeanim",R="@"+P+"keyframes "+b+" { from { opacity: 0; } to { opacity: 0; } } ",ee=P+"animation: 1ms "+b+"; "}const me=function(g){if(!g.getElementById("detectElementResize")){const P=(R||"")+".resize-triggers { "+(ee||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',U=g.head||g.getElementsByTagName("head")[0],j=g.createElement("style");j.id="detectElementResize",j.type="text/css",D!=null&&j.setAttribute("nonce",D),j.styleSheet?j.styleSheet.cssText=P:j.appendChild(g.createTextNode(P)),U.appendChild(j)}};return{addResizeListener:function(g,P){if(te)g.attachEvent("onresize",P);else{if(!g.__resizeTriggers__){const U=g.ownerDocument,j=N.getComputedStyle(g);j&&j.position==="static"&&(g.style.position="relative"),me(U),g.__resizeLast__={},g.__resizeListeners__=[],(g.__resizeTriggers__=U.createElement("div")).className="resize-triggers";const he=U.createElement("div");he.className="expand-trigger",he.appendChild(U.createElement("div"));const $=U.createElement("div");$.className="contract-trigger",g.__resizeTriggers__.appendChild(he),g.__resizeTriggers__.appendChild($),g.appendChild(g.__resizeTriggers__),k(g),g.addEventListener("scroll",oe,!0),V&&(g.__resizeTriggers__.__animationListener__=function(G){G.animationName===b&&k(g)},g.__resizeTriggers__.addEventListener(V,g.__resizeTriggers__.__animationListener__))}g.__resizeListeners__.push(P)}},removeResizeListener:function(g,P){if(te)g.detachEvent("onresize",P);else if(g.__resizeListeners__.splice(g.__resizeListeners__.indexOf(P),1),!g.__resizeListeners__.length){g.removeEventListener("scroll",oe,!0),g.__resizeTriggers__.__animationListener__&&(g.__resizeTriggers__.removeEventListener(V,g.__resizeTriggers__.__animationListener__),g.__resizeTriggers__.__animationListener__=null);try{g.__resizeTriggers__=!g.removeChild(g.__resizeTriggers__)}catch{}}}}}fe={createDetectElementResize:re};function K(D,R,b){return R=Me(R),R in D?Object.defineProperty(D,R,{value:b,enumerable:!0,configurable:!0,writable:!0}):D[R]=b,D}function Me(D){var R=be(D,"string");return typeof R=="symbol"?R:String(R)}function be(D,R){if(typeof D!="object"||D===null)return D;var b=D[Symbol.toPrimitive];if(b!==void 0){var V=b.call(D,R||"default");if(typeof V!="object")return V;throw new TypeError("@@toPrimitive must return a primitive value.")}return(R==="string"?String:Number)(D)}class Oe extends Y.Component{constructor(...R){super(...R),K(this,"state",{height:this.props.defaultHeight||0,width:this.props.defaultWidth||0}),K(this,"_parentNode",null),K(this,"_autoSizer",null),K(this,"_detectElementResize",null),K(this,"_onResize",()=>{const{disableHeight:b,disableWidth:V,onResize:ee}=this.props;if(this._parentNode){const de=this._parentNode.getBoundingClientRect(),k=de.height||0,oe=de.width||0,te=window.getComputedStyle(this._parentNode)||{},me=parseInt(te.paddingLeft,10)||0,ge=parseInt(te.paddingRight,10)||0,Se=parseInt(te.paddingTop,10)||0,g=parseInt(te.paddingBottom,10)||0,P=k-Se-g,U=oe-me-ge;(!b&&this.state.height!==P||!V&&this.state.width!==U)&&(this.setState({height:k-Se-g,width:oe-me-ge}),typeof ee=="function"&&ee({height:k,width:oe}))}}),K(this,"_setRef",b=>{this._autoSizer=b})}componentDidMount(){const{nonce:R}=this.props;if(this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement){this._parentNode=this._autoSizer.parentNode;const b=(0,fe.createDetectElementResize)(R);b.addResizeListener(this._parentNode,this._onResize),this._detectElementResize=b,this._onResize()}}componentWillUnmount(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}render(){const{children:R,defaultHeight:b,defaultWidth:V,disableHeight:ee,disableWidth:de,nonce:k,onResize:oe,style:te,tagName:me="div",...ge}=this.props,{height:Se,width:g}=this.state,P={overflow:"visible"},U={};let j=!1;return ee||(Se===0&&(j=!0),P.height=0,U.height=Se),de||(g===0&&(j=!0),P.width=0,U.width=g),(0,Y.createElement)(me,{ref:this._setRef,style:{...P,...te},...ge},!j&&R(U))}}K(Oe,"defaultProps",{onResize:()=>{},disableHeight:!1,disableWidth:!1,style:{}});var We=Oe},50166:function(ye,ve,q){q.d(ve,{t7:function(){return De}});var Y=q(7896),se=q(80753),fe=q(81665),N=q(36631),Q=q(2784),pe=typeof performance=="object"&&typeof performance.now=="function",Z=pe?function(){return performance.now()}:function(){return Date.now()};function H(a){cancelAnimationFrame(a.id)}function le(a,e){var t=Z();function r(){Z()-t>=e?a.call(null):i.id=requestAnimationFrame(r)}var i={id:requestAnimationFrame(r)};return i}var ie=-1;function ce(a){if(a===void 0&&(a=!1),ie===-1||a){var e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",document.body.appendChild(e),ie=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return ie}var re=null;function K(a){if(a===void 0&&(a=!1),re===null||a){var e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";var r=document.createElement("div"),i=r.style;return i.width="100px",i.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?re="positive-descending":(e.scrollLeft=1,e.scrollLeft===0?re="negative":re="positive-ascending"),document.body.removeChild(e),re}return re}var Me=150,be=function(e){var t=e.columnIndex,r=e.data,i=e.rowIndex;return i+":"+t},Oe=null,We=null,D=null;function R(a){var e,t=a.getColumnOffset,r=a.getColumnStartIndexForOffset,i=a.getColumnStopIndexForStartIndex,l=a.getColumnWidth,s=a.getEstimatedTotalHeight,c=a.getEstimatedTotalWidth,d=a.getOffsetForColumnAndAlignment,p=a.getOffsetForRowAndAlignment,m=a.getRowHeight,_=a.getRowOffset,S=a.getRowStartIndexForOffset,x=a.getRowStopIndexForStartIndex,E=a.initInstanceProps,o=a.shouldResetStyleCacheOnItemSizeChange,h=a.validateProps;return e=function(v){(0,fe.Z)(z,v);function z(T){var n;return n=v.call(this,T)||this,n._instanceProps=E(n.props,(0,se.Z)(n)),n._resetIsScrollingTimeoutId=null,n._outerRef=void 0,n.state={instance:(0,se.Z)(n),isScrolling:!1,horizontalScrollDirection:"forward",scrollLeft:typeof n.props.initialScrollLeft=="number"?n.props.initialScrollLeft:0,scrollTop:typeof n.props.initialScrollTop=="number"?n.props.initialScrollTop:0,scrollUpdateWasRequested:!1,verticalScrollDirection:"forward"},n._callOnItemsRendered=void 0,n._callOnItemsRendered=(0,N.Z)(function(u,f,I,M,w,y,W,A){return n.props.onItemsRendered({overscanColumnStartIndex:u,overscanColumnStopIndex:f,overscanRowStartIndex:I,overscanRowStopIndex:M,visibleColumnStartIndex:w,visibleColumnStopIndex:y,visibleRowStartIndex:W,visibleRowStopIndex:A})}),n._callOnScroll=void 0,n._callOnScroll=(0,N.Z)(function(u,f,I,M,w){return n.props.onScroll({horizontalScrollDirection:I,scrollLeft:u,scrollTop:f,verticalScrollDirection:M,scrollUpdateWasRequested:w})}),n._getItemStyle=void 0,n._getItemStyle=function(u,f){var I=n.props,M=I.columnWidth,w=I.direction,y=I.rowHeight,W=n._getItemStyleCache(o&&M,o&&w,o&&y),A=u+":"+f,L;if(W.hasOwnProperty(A))L=W[A];else{var F=t(n.props,f,n._instanceProps),O=w==="rtl";W[A]=L={position:"absolute",left:O?void 0:F,right:O?F:void 0,top:_(n.props,u,n._instanceProps),height:m(n.props,u,n._instanceProps),width:l(n.props,f,n._instanceProps)}}return L},n._getItemStyleCache=void 0,n._getItemStyleCache=(0,N.Z)(function(u,f,I){return{}}),n._onScroll=function(u){var f=u.currentTarget,I=f.clientHeight,M=f.clientWidth,w=f.scrollLeft,y=f.scrollTop,W=f.scrollHeight,A=f.scrollWidth;n.setState(function(L){if(L.scrollLeft===w&&L.scrollTop===y)return null;var F=n.props.direction,O=w;if(F==="rtl")switch(K()){case"negative":O=-w;break;case"positive-descending":O=A-M-w;break}O=Math.max(0,Math.min(O,A-M));var J=Math.max(0,Math.min(y,W-I));return{isScrolling:!0,horizontalScrollDirection:L.scrollLeft<w?"forward":"backward",scrollLeft:O,scrollTop:J,verticalScrollDirection:L.scrollTop<y?"forward":"backward",scrollUpdateWasRequested:!1}},n._resetIsScrollingDebounced)},n._outerRefSetter=function(u){var f=n.props.outerRef;n._outerRef=u,typeof f=="function"?f(u):f!=null&&typeof f=="object"&&f.hasOwnProperty("current")&&(f.current=u)},n._resetIsScrollingDebounced=function(){n._resetIsScrollingTimeoutId!==null&&H(n._resetIsScrollingTimeoutId),n._resetIsScrollingTimeoutId=le(n._resetIsScrolling,Me)},n._resetIsScrolling=function(){n._resetIsScrollingTimeoutId=null,n.setState({isScrolling:!1},function(){n._getItemStyleCache(-1)})},n}z.getDerivedStateFromProps=function(n,u){return b(n,u),h(n),null};var C=z.prototype;return C.scrollTo=function(n){var u=n.scrollLeft,f=n.scrollTop;u!==void 0&&(u=Math.max(0,u)),f!==void 0&&(f=Math.max(0,f)),this.setState(function(I){return u===void 0&&(u=I.scrollLeft),f===void 0&&(f=I.scrollTop),I.scrollLeft===u&&I.scrollTop===f?null:{horizontalScrollDirection:I.scrollLeft<u?"forward":"backward",scrollLeft:u,scrollTop:f,scrollUpdateWasRequested:!0,verticalScrollDirection:I.scrollTop<f?"forward":"backward"}},this._resetIsScrollingDebounced)},C.scrollToItem=function(n){var u=n.align,f=u===void 0?"auto":u,I=n.columnIndex,M=n.rowIndex,w=this.props,y=w.columnCount,W=w.height,A=w.rowCount,L=w.width,F=this.state,O=F.scrollLeft,J=F.scrollTop,X=ce();I!==void 0&&(I=Math.max(0,Math.min(I,y-1))),M!==void 0&&(M=Math.max(0,Math.min(M,A-1)));var ae=s(this.props,this._instanceProps),ne=c(this.props,this._instanceProps),we=ne>L?X:0,Ce=ae>W?X:0;this.scrollTo({scrollLeft:I!==void 0?d(this.props,I,f,O,this._instanceProps,Ce):O,scrollTop:M!==void 0?p(this.props,M,f,J,this._instanceProps,we):J})},C.componentDidMount=function(){var n=this.props,u=n.initialScrollLeft,f=n.initialScrollTop;if(this._outerRef!=null){var I=this._outerRef;typeof u=="number"&&(I.scrollLeft=u),typeof f=="number"&&(I.scrollTop=f)}this._callPropsCallbacks()},C.componentDidUpdate=function(){var n=this.props.direction,u=this.state,f=u.scrollLeft,I=u.scrollTop,M=u.scrollUpdateWasRequested;if(M&&this._outerRef!=null){var w=this._outerRef;if(n==="rtl")switch(K()){case"negative":w.scrollLeft=-f;break;case"positive-ascending":w.scrollLeft=f;break;default:var y=w.clientWidth,W=w.scrollWidth;w.scrollLeft=W-y-f;break}else w.scrollLeft=Math.max(0,f);w.scrollTop=Math.max(0,I)}this._callPropsCallbacks()},C.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&H(this._resetIsScrollingTimeoutId)},C.render=function(){var n=this.props,u=n.children,f=n.className,I=n.columnCount,M=n.direction,w=n.height,y=n.innerRef,W=n.innerElementType,A=n.innerTagName,L=n.itemData,F=n.itemKey,O=F===void 0?be:F,J=n.outerElementType,X=n.outerTagName,ae=n.rowCount,ne=n.style,we=n.useIsScrolling,Ce=n.width,ze=this.state.isScrolling,ue=this._getHorizontalRangeToRender(),Re=ue[0],ke=ue[1],Fe=this._getVerticalRangeToRender(),Ue=Fe[0],Be=Fe[1],Ae=[];if(I>0&&ae)for(var Te=Ue;Te<=Be;Te++)for(var xe=Re;xe<=ke;xe++)Ae.push((0,Q.createElement)(u,{columnIndex:xe,data:L,isScrolling:we?ze:void 0,key:O({columnIndex:xe,data:L,rowIndex:Te}),rowIndex:Te,style:this._getItemStyle(Te,xe)}));var Ze=s(this.props,this._instanceProps),Ke=c(this.props,this._instanceProps);return(0,Q.createElement)(J||X||"div",{className:f,onScroll:this._onScroll,ref:this._outerRefSetter,style:(0,Y.Z)({position:"relative",height:w,width:Ce,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:M},ne)},(0,Q.createElement)(W||A||"div",{children:Ae,ref:y,style:{height:Ze,pointerEvents:ze?"none":void 0,width:Ke}}))},C._callPropsCallbacks=function(){var n=this.props,u=n.columnCount,f=n.onItemsRendered,I=n.onScroll,M=n.rowCount;if(typeof f=="function"&&u>0&&M>0){var w=this._getHorizontalRangeToRender(),y=w[0],W=w[1],A=w[2],L=w[3],F=this._getVerticalRangeToRender(),O=F[0],J=F[1],X=F[2],ae=F[3];this._callOnItemsRendered(y,W,O,J,A,L,X,ae)}if(typeof I=="function"){var ne=this.state,we=ne.horizontalScrollDirection,Ce=ne.scrollLeft,ze=ne.scrollTop,ue=ne.scrollUpdateWasRequested,Re=ne.verticalScrollDirection;this._callOnScroll(Ce,ze,we,Re,ue)}},C._getHorizontalRangeToRender=function(){var n=this.props,u=n.columnCount,f=n.overscanColumnCount,I=n.overscanColumnsCount,M=n.overscanCount,w=n.rowCount,y=this.state,W=y.horizontalScrollDirection,A=y.isScrolling,L=y.scrollLeft,F=f||I||M||1;if(u===0||w===0)return[0,0,0,0];var O=r(this.props,L,this._instanceProps),J=i(this.props,O,L,this._instanceProps),X=!A||W==="backward"?Math.max(1,F):1,ae=!A||W==="forward"?Math.max(1,F):1;return[Math.max(0,O-X),Math.max(0,Math.min(u-1,J+ae)),O,J]},C._getVerticalRangeToRender=function(){var n=this.props,u=n.columnCount,f=n.overscanCount,I=n.overscanRowCount,M=n.overscanRowsCount,w=n.rowCount,y=this.state,W=y.isScrolling,A=y.verticalScrollDirection,L=y.scrollTop,F=I||M||f||1;if(u===0||w===0)return[0,0,0,0];var O=S(this.props,L,this._instanceProps),J=x(this.props,O,L,this._instanceProps),X=!W||A==="backward"?Math.max(1,F):1,ae=!W||A==="forward"?Math.max(1,F):1;return[Math.max(0,O-X),Math.max(0,Math.min(w-1,J+ae)),O,J]},z}(Q.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,useIsScrolling:!1},e}var b=function(e,t){var r=e.children,i=e.direction,l=e.height,s=e.innerTagName,c=e.outerTagName,d=e.overscanColumnsCount,p=e.overscanCount,m=e.overscanRowsCount,_=e.width,S=t.instance},V=50,ee=function(e,t){var r=e.rowCount,i=t.rowMetadataMap,l=t.estimatedRowHeight,s=t.lastMeasuredRowIndex,c=0;if(s>=r&&(s=r-1),s>=0){var d=i[s];c=d.offset+d.size}var p=r-s-1,m=p*l;return c+m},de=function(e,t){var r=e.columnCount,i=t.columnMetadataMap,l=t.estimatedColumnWidth,s=t.lastMeasuredColumnIndex,c=0;if(s>=r&&(s=r-1),s>=0){var d=i[s];c=d.offset+d.size}var p=r-s-1,m=p*l;return c+m},k=function(e,t,r,i){var l,s,c;if(e==="column"?(l=i.columnMetadataMap,s=t.columnWidth,c=i.lastMeasuredColumnIndex):(l=i.rowMetadataMap,s=t.rowHeight,c=i.lastMeasuredRowIndex),r>c){var d=0;if(c>=0){var p=l[c];d=p.offset+p.size}for(var m=c+1;m<=r;m++){var _=s(m);l[m]={offset:d,size:_},d+=_}e==="column"?i.lastMeasuredColumnIndex=r:i.lastMeasuredRowIndex=r}return l[r]},oe=function(e,t,r,i){var l,s;e==="column"?(l=r.columnMetadataMap,s=r.lastMeasuredColumnIndex):(l=r.rowMetadataMap,s=r.lastMeasuredRowIndex);var c=s>0?l[s].offset:0;return c>=i?te(e,t,r,s,0,i):me(e,t,r,Math.max(0,s),i)},te=function(e,t,r,i,l,s){for(;l<=i;){var c=l+Math.floor((i-l)/2),d=k(e,t,c,r).offset;if(d===s)return c;d<s?l=c+1:d>s&&(i=c-1)}return l>0?l-1:0},me=function(e,t,r,i,l){for(var s=e==="column"?t.columnCount:t.rowCount,c=1;i<s&&k(e,t,i,r).offset<l;)i+=c,c*=2;return te(e,t,r,Math.min(i,s-1),Math.floor(i/2),l)},ge=function(e,t,r,i,l,s,c){var d=e==="column"?t.width:t.height,p=k(e,t,r,s),m=e==="column"?de(t,s):ee(t,s),_=Math.max(0,Math.min(m-d,p.offset)),S=Math.max(0,p.offset-d+c+p.size);switch(i==="smart"&&(l>=S-d&&l<=_+d?i="auto":i="center"),i){case"start":return _;case"end":return S;case"center":return Math.round(S+(_-S)/2);case"auto":default:return l>=S&&l<=_?l:S>_||l<S?S:_}},Se=R({getColumnOffset:function(e,t,r){return k("column",e,t,r).offset},getColumnStartIndexForOffset:function(e,t,r){return oe("column",e,r,t)},getColumnStopIndexForStartIndex:function(e,t,r,i){for(var l=e.columnCount,s=e.width,c=k("column",e,t,i),d=r+s,p=c.offset+c.size,m=t;m<l-1&&p<d;)m++,p+=k("column",e,m,i).size;return m},getColumnWidth:function(e,t,r){return r.columnMetadataMap[t].size},getEstimatedTotalHeight:ee,getEstimatedTotalWidth:de,getOffsetForColumnAndAlignment:function(e,t,r,i,l,s){return ge("column",e,t,r,i,l,s)},getOffsetForRowAndAlignment:function(e,t,r,i,l,s){return ge("row",e,t,r,i,l,s)},getRowOffset:function(e,t,r){return k("row",e,t,r).offset},getRowHeight:function(e,t,r){return r.rowMetadataMap[t].size},getRowStartIndexForOffset:function(e,t,r){return oe("row",e,r,t)},getRowStopIndexForStartIndex:function(e,t,r,i){for(var l=e.rowCount,s=e.height,c=k("row",e,t,i),d=r+s,p=c.offset+c.size,m=t;m<l-1&&p<d;)m++,p+=k("row",e,m,i).size;return m},initInstanceProps:function(e,t){var r=e,i=r.estimatedColumnWidth,l=r.estimatedRowHeight,s={columnMetadataMap:{},estimatedColumnWidth:i||V,estimatedRowHeight:l||V,lastMeasuredColumnIndex:-1,lastMeasuredRowIndex:-1,rowMetadataMap:{}};return t.resetAfterColumnIndex=function(c,d){d===void 0&&(d=!0),t.resetAfterIndices({columnIndex:c,shouldForceUpdate:d})},t.resetAfterRowIndex=function(c,d){d===void 0&&(d=!0),t.resetAfterIndices({rowIndex:c,shouldForceUpdate:d})},t.resetAfterIndices=function(c){var d=c.columnIndex,p=c.rowIndex,m=c.shouldForceUpdate,_=m===void 0?!0:m;typeof d=="number"&&(s.lastMeasuredColumnIndex=Math.min(s.lastMeasuredColumnIndex,d-1)),typeof p=="number"&&(s.lastMeasuredRowIndex=Math.min(s.lastMeasuredRowIndex,p-1)),t._getItemStyleCache(-1),_&&t.forceUpdate()},s},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.columnWidth,r=e.rowHeight}}),g=150,P=function(e,t){return e},U=null,j=null;function he(a){var e,t=a.getItemOffset,r=a.getEstimatedTotalSize,i=a.getItemSize,l=a.getOffsetForIndexAndAlignment,s=a.getStartIndexForOffset,c=a.getStopIndexForStartIndex,d=a.initInstanceProps,p=a.shouldResetStyleCacheOnItemSizeChange,m=a.validateProps;return e=function(_){(0,fe.Z)(S,_);function S(E){var o;return o=_.call(this,E)||this,o._instanceProps=d(o.props,(0,se.Z)(o)),o._outerRef=void 0,o._resetIsScrollingTimeoutId=null,o.state={instance:(0,se.Z)(o),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof o.props.initialScrollOffset=="number"?o.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},o._callOnItemsRendered=void 0,o._callOnItemsRendered=(0,N.Z)(function(h,v,z,C){return o.props.onItemsRendered({overscanStartIndex:h,overscanStopIndex:v,visibleStartIndex:z,visibleStopIndex:C})}),o._callOnScroll=void 0,o._callOnScroll=(0,N.Z)(function(h,v,z){return o.props.onScroll({scrollDirection:h,scrollOffset:v,scrollUpdateWasRequested:z})}),o._getItemStyle=void 0,o._getItemStyle=function(h){var v=o.props,z=v.direction,C=v.itemSize,T=v.layout,n=o._getItemStyleCache(p&&C,p&&T,p&&z),u;if(n.hasOwnProperty(h))u=n[h];else{var f=t(o.props,h,o._instanceProps),I=i(o.props,h,o._instanceProps),M=z==="horizontal"||T==="horizontal",w=z==="rtl",y=M?f:0;n[h]=u={position:"absolute",left:w?void 0:y,right:w?y:void 0,top:M?0:f,height:M?"100%":I,width:M?I:"100%"}}return u},o._getItemStyleCache=void 0,o._getItemStyleCache=(0,N.Z)(function(h,v,z){return{}}),o._onScrollHorizontal=function(h){var v=h.currentTarget,z=v.clientWidth,C=v.scrollLeft,T=v.scrollWidth;o.setState(function(n){if(n.scrollOffset===C)return null;var u=o.props.direction,f=C;if(u==="rtl")switch(K()){case"negative":f=-C;break;case"positive-descending":f=T-z-C;break}return f=Math.max(0,Math.min(f,T-z)),{isScrolling:!0,scrollDirection:n.scrollOffset<C?"forward":"backward",scrollOffset:f,scrollUpdateWasRequested:!1}},o._resetIsScrollingDebounced)},o._onScrollVertical=function(h){var v=h.currentTarget,z=v.clientHeight,C=v.scrollHeight,T=v.scrollTop;o.setState(function(n){if(n.scrollOffset===T)return null;var u=Math.max(0,Math.min(T,C-z));return{isScrolling:!0,scrollDirection:n.scrollOffset<u?"forward":"backward",scrollOffset:u,scrollUpdateWasRequested:!1}},o._resetIsScrollingDebounced)},o._outerRefSetter=function(h){var v=o.props.outerRef;o._outerRef=h,typeof v=="function"?v(h):v!=null&&typeof v=="object"&&v.hasOwnProperty("current")&&(v.current=h)},o._resetIsScrollingDebounced=function(){o._resetIsScrollingTimeoutId!==null&&H(o._resetIsScrollingTimeoutId),o._resetIsScrollingTimeoutId=le(o._resetIsScrolling,g)},o._resetIsScrolling=function(){o._resetIsScrollingTimeoutId=null,o.setState({isScrolling:!1},function(){o._getItemStyleCache(-1,null)})},o}S.getDerivedStateFromProps=function(o,h){return $(o,h),m(o),null};var x=S.prototype;return x.scrollTo=function(o){o=Math.max(0,o),this.setState(function(h){return h.scrollOffset===o?null:{scrollDirection:h.scrollOffset<o?"forward":"backward",scrollOffset:o,scrollUpdateWasRequested:!0}},this._resetIsScrollingDebounced)},x.scrollToItem=function(o,h){h===void 0&&(h="auto");var v=this.props,z=v.itemCount,C=v.layout,T=this.state.scrollOffset;o=Math.max(0,Math.min(o,z-1));var n=0;if(this._outerRef){var u=this._outerRef;C==="vertical"?n=u.scrollWidth>u.clientWidth?ce():0:n=u.scrollHeight>u.clientHeight?ce():0}this.scrollTo(l(this.props,o,h,T,this._instanceProps,n))},x.componentDidMount=function(){var o=this.props,h=o.direction,v=o.initialScrollOffset,z=o.layout;if(typeof v=="number"&&this._outerRef!=null){var C=this._outerRef;h==="horizontal"||z==="horizontal"?C.scrollLeft=v:C.scrollTop=v}this._callPropsCallbacks()},x.componentDidUpdate=function(){var o=this.props,h=o.direction,v=o.layout,z=this.state,C=z.scrollOffset,T=z.scrollUpdateWasRequested;if(T&&this._outerRef!=null){var n=this._outerRef;if(h==="horizontal"||v==="horizontal")if(h==="rtl")switch(K()){case"negative":n.scrollLeft=-C;break;case"positive-ascending":n.scrollLeft=C;break;default:var u=n.clientWidth,f=n.scrollWidth;n.scrollLeft=f-u-C;break}else n.scrollLeft=C;else n.scrollTop=C}this._callPropsCallbacks()},x.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&H(this._resetIsScrollingTimeoutId)},x.render=function(){var o=this.props,h=o.children,v=o.className,z=o.direction,C=o.height,T=o.innerRef,n=o.innerElementType,u=o.innerTagName,f=o.itemCount,I=o.itemData,M=o.itemKey,w=M===void 0?P:M,y=o.layout,W=o.outerElementType,A=o.outerTagName,L=o.style,F=o.useIsScrolling,O=o.width,J=this.state.isScrolling,X=z==="horizontal"||y==="horizontal",ae=X?this._onScrollHorizontal:this._onScrollVertical,ne=this._getRangeToRender(),we=ne[0],Ce=ne[1],ze=[];if(f>0)for(var ue=we;ue<=Ce;ue++)ze.push((0,Q.createElement)(h,{data:I,key:w(ue,I),index:ue,isScrolling:F?J:void 0,style:this._getItemStyle(ue)}));var Re=r(this.props,this._instanceProps);return(0,Q.createElement)(W||A||"div",{className:v,onScroll:ae,ref:this._outerRefSetter,style:(0,Y.Z)({position:"relative",height:C,width:O,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:z},L)},(0,Q.createElement)(n||u||"div",{children:ze,ref:T,style:{height:X?"100%":Re,pointerEvents:J?"none":void 0,width:X?Re:"100%"}}))},x._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var o=this.props.itemCount;if(o>0){var h=this._getRangeToRender(),v=h[0],z=h[1],C=h[2],T=h[3];this._callOnItemsRendered(v,z,C,T)}}if(typeof this.props.onScroll=="function"){var n=this.state,u=n.scrollDirection,f=n.scrollOffset,I=n.scrollUpdateWasRequested;this._callOnScroll(u,f,I)}},x._getRangeToRender=function(){var o=this.props,h=o.itemCount,v=o.overscanCount,z=this.state,C=z.isScrolling,T=z.scrollDirection,n=z.scrollOffset;if(h===0)return[0,0,0,0];var u=s(this.props,n,this._instanceProps),f=c(this.props,u,n,this._instanceProps),I=!C||T==="backward"?Math.max(1,v):1,M=!C||T==="forward"?Math.max(1,v):1;return[Math.max(0,u-I),Math.max(0,Math.min(h-1,f+M)),u,f]},S}(Q.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},e}var $=function(e,t){var r=e.children,i=e.direction,l=e.height,s=e.layout,c=e.innerTagName,d=e.outerTagName,p=e.width,m=t.instance;if(!1)var _},B=50,G=function(e,t,r){var i=e,l=i.itemSize,s=r.itemMetadataMap,c=r.lastMeasuredIndex;if(t>c){var d=0;if(c>=0){var p=s[c];d=p.offset+p.size}for(var m=c+1;m<=t;m++){var _=l(m);s[m]={offset:d,size:_},d+=_}r.lastMeasuredIndex=t}return s[t]},Ie=function(e,t,r){var i=t.itemMetadataMap,l=t.lastMeasuredIndex,s=l>0?i[l].offset:0;return s>=r?_e(e,t,l,0,r):Ne(e,t,Math.max(0,l),r)},_e=function(e,t,r,i,l){for(;i<=r;){var s=i+Math.floor((r-i)/2),c=G(e,s,t).offset;if(c===l)return s;c<l?i=s+1:c>l&&(r=s-1)}return i>0?i-1:0},Ne=function(e,t,r,i){for(var l=e.itemCount,s=1;r<l&&G(e,r,t).offset<i;)r+=s,s*=2;return _e(e,t,Math.min(r,l-1),Math.floor(r/2),i)},Le=function(e,t){var r=e.itemCount,i=t.itemMetadataMap,l=t.estimatedItemSize,s=t.lastMeasuredIndex,c=0;if(s>=r&&(s=r-1),s>=0){var d=i[s];c=d.offset+d.size}var p=r-s-1,m=p*l;return c+m},qe=he({getItemOffset:function(e,t,r){return G(e,t,r).offset},getItemSize:function(e,t,r){return r.itemMetadataMap[t].size},getEstimatedTotalSize:Le,getOffsetForIndexAndAlignment:function(e,t,r,i,l,s){var c=e.direction,d=e.height,p=e.layout,m=e.width,_=c==="horizontal"||p==="horizontal",S=_?m:d,x=G(e,t,l),E=Le(e,l),o=Math.max(0,Math.min(E-S,x.offset)),h=Math.max(0,x.offset-S+x.size+s);switch(r==="smart"&&(i>=h-S&&i<=o+S?r="auto":r="center"),r){case"start":return o;case"end":return h;case"center":return Math.round(h+(o-h)/2);case"auto":default:return i>=h&&i<=o?i:i<h?h:o}},getStartIndexForOffset:function(e,t,r){return Ie(e,r,t)},getStopIndexForStartIndex:function(e,t,r,i){for(var l=e.direction,s=e.height,c=e.itemCount,d=e.layout,p=e.width,m=l==="horizontal"||d==="horizontal",_=m?p:s,S=G(e,t,i),x=r+_,E=S.offset+S.size,o=t;o<c-1&&E<x;)o++,E+=G(e,o,i).size;return o},initInstanceProps:function(e,t){var r=e,i=r.estimatedItemSize,l={itemMetadataMap:{},estimatedItemSize:i||B,lastMeasuredIndex:-1};return t.resetAfterIndex=function(s,c){c===void 0&&(c=!0),l.lastMeasuredIndex=Math.min(l.lastMeasuredIndex,s-1),t._getItemStyleCache(-1),c&&t.forceUpdate()},l},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.itemSize}}),Ve=R({getColumnOffset:function(e,t){var r=e.columnWidth;return t*r},getColumnWidth:function(e,t){var r=e.columnWidth;return r},getRowOffset:function(e,t){var r=e.rowHeight;return t*r},getRowHeight:function(e,t){var r=e.rowHeight;return r},getEstimatedTotalHeight:function(e){var t=e.rowCount,r=e.rowHeight;return r*t},getEstimatedTotalWidth:function(e){var t=e.columnCount,r=e.columnWidth;return r*t},getOffsetForColumnAndAlignment:function(e,t,r,i,l,s){var c=e.columnCount,d=e.columnWidth,p=e.width,m=Math.max(0,c*d-p),_=Math.min(m,t*d),S=Math.max(0,t*d-p+s+d);switch(r==="smart"&&(i>=S-p&&i<=_+p?r="auto":r="center"),r){case"start":return _;case"end":return S;case"center":var x=Math.round(S+(_-S)/2);return x<Math.ceil(p/2)?0:x>m+Math.floor(p/2)?m:x;case"auto":default:return i>=S&&i<=_?i:S>_||i<S?S:_}},getOffsetForRowAndAlignment:function(e,t,r,i,l,s){var c=e.rowHeight,d=e.height,p=e.rowCount,m=Math.max(0,p*c-d),_=Math.min(m,t*c),S=Math.max(0,t*c-d+s+c);switch(r==="smart"&&(i>=S-d&&i<=_+d?r="auto":r="center"),r){case"start":return _;case"end":return S;case"center":var x=Math.round(S+(_-S)/2);return x<Math.ceil(d/2)?0:x>m+Math.floor(d/2)?m:x;case"auto":default:return i>=S&&i<=_?i:S>_||i<S?S:_}},getColumnStartIndexForOffset:function(e,t){var r=e.columnWidth,i=e.columnCount;return Math.max(0,Math.min(i-1,Math.floor(t/r)))},getColumnStopIndexForStartIndex:function(e,t,r){var i=e.columnWidth,l=e.columnCount,s=e.width,c=t*i,d=Math.ceil((s+r-c)/i);return Math.max(0,Math.min(l-1,t+d-1))},getRowStartIndexForOffset:function(e,t){var r=e.rowHeight,i=e.rowCount;return Math.max(0,Math.min(i-1,Math.floor(t/r)))},getRowStopIndexForStartIndex:function(e,t,r){var i=e.rowHeight,l=e.rowCount,s=e.height,c=t*i,d=Math.ceil((s+r-c)/i);return Math.max(0,Math.min(l-1,t+d-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){var t=e.columnWidth,r=e.rowHeight}}),De=he({getItemOffset:function(e,t){var r=e.itemSize;return t*r},getItemSize:function(e,t){var r=e.itemSize;return r},getEstimatedTotalSize:function(e){var t=e.itemCount,r=e.itemSize;return r*t},getOffsetForIndexAndAlignment:function(e,t,r,i,l,s){var c=e.direction,d=e.height,p=e.itemCount,m=e.itemSize,_=e.layout,S=e.width,x=c==="horizontal"||_==="horizontal",E=x?S:d,o=Math.max(0,p*m-E),h=Math.min(o,t*m),v=Math.max(0,t*m-E+m+s);switch(r==="smart"&&(i>=v-E&&i<=h+E?r="auto":r="center"),r){case"start":return h;case"end":return v;case"center":{var z=Math.round(v+(h-v)/2);return z<Math.ceil(E/2)?0:z>o+Math.floor(E/2)?o:z}case"auto":default:return i>=v&&i<=h?i:i<v?v:h}},getStartIndexForOffset:function(e,t){var r=e.itemCount,i=e.itemSize;return Math.max(0,Math.min(r-1,Math.floor(t/i)))},getStopIndexForStartIndex:function(e,t,r){var i=e.direction,l=e.height,s=e.itemCount,c=e.itemSize,d=e.layout,p=e.width,m=i==="horizontal"||d==="horizontal",_=t*c,S=m?p:l,x=Math.ceil((S+r-_)/c);return Math.max(0,Math.min(s-1,t+x-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){var t=e.itemSize}});function Ee(a,e){for(var t in a)if(!(t in e))return!0;for(var r in e)if(a[r]!==e[r])return!0;return!1}var He=null,Pe=null;function $e(a,e){var t=a.style,r=_objectWithoutPropertiesLoose(a,He),i=e.style,l=_objectWithoutPropertiesLoose(e,Pe);return!Ee(t,i)&&!Ee(r,l)}function je(a,e){return!$e(this.props,a)||Ee(this.state,e)}},46212:function(ye,ve,q){q.d(ve,{Z:function(){return Y}});function Y({onlyFirst:se=!1}={}){const fe=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(fe,se?void 0:"g")}}}]);})();
2
-
3
- //# sourceMappingURL=6174.55ddb654.chunk.js.map