@ytsaurus/ui 1.103.0 → 1.103.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 (60) hide show
  1. package/dist/public/build/assets-manifest.json +40 -40
  2. package/dist/public/build/css/default-subject-link.b01c2230.chunk.css +2 -0
  3. package/dist/public/build/css/default-subject-link.b01c2230.chunk.css.map +1 -0
  4. package/dist/public/build/css/{main.d1987746.css → main.23e8d0fd.css} +2 -2
  5. package/dist/public/build/css/main.23e8d0fd.css.map +1 -0
  6. package/dist/public/build/js/6157.6786c942.chunk.js +2 -0
  7. package/dist/public/build/js/6157.6786c942.chunk.js.map +1 -0
  8. package/dist/public/build/js/6983.a2b31b33.chunk.js +2 -0
  9. package/dist/public/build/js/6983.a2b31b33.chunk.js.map +1 -0
  10. package/dist/public/build/js/8165.9684f49e.chunk.js +2 -0
  11. package/dist/public/build/js/8165.9684f49e.chunk.js.map +1 -0
  12. package/dist/public/build/js/{accounts.aaa21eca.chunk.js → accounts.f328f823.chunk.js} +2 -2
  13. package/dist/public/build/js/accounts.f328f823.chunk.js.map +1 -0
  14. package/dist/public/build/js/acl.556f2525.chunk.js +2 -0
  15. package/dist/public/build/js/acl.556f2525.chunk.js.map +1 -0
  16. package/dist/public/build/js/{bundles.b851f32c.chunk.js → bundles.0ab2d6f4.chunk.js} +2 -2
  17. package/dist/public/build/js/{bundles.b851f32c.chunk.js.map → bundles.0ab2d6f4.chunk.js.map} +1 -1
  18. package/dist/public/build/js/cluster-page-wrapper.a5c05070.chunk.js +2 -0
  19. package/dist/public/build/js/{cluster-page-wrapper.45436df6.chunk.js.map → cluster-page-wrapper.a5c05070.chunk.js.map} +1 -1
  20. package/dist/public/build/js/dashboard.efdd63a2.chunk.js +3 -0
  21. package/dist/public/build/js/{dashboard.234b8062.chunk.js.map → dashboard.efdd63a2.chunk.js.map} +1 -1
  22. package/dist/public/build/js/main.a89bac74.js +3 -0
  23. package/dist/public/build/js/main.a89bac74.js.map +1 -0
  24. package/dist/public/build/js/{navigation-flow.a79a25f5.chunk.js → navigation-flow.1d83e216.chunk.js} +2 -2
  25. package/dist/public/build/js/{navigation-flow.a79a25f5.chunk.js.map → navigation-flow.1d83e216.chunk.js.map} +1 -1
  26. package/dist/public/build/js/{navigation.b91a7a0b.chunk.js → navigation.0aff5a3a.chunk.js} +2 -2
  27. package/dist/public/build/js/{navigation.b91a7a0b.chunk.js.map → navigation.0aff5a3a.chunk.js.map} +1 -1
  28. package/dist/public/build/js/{query-tracker.5a0d626f.chunk.js → query-tracker.b7334a6f.chunk.js} +2 -2
  29. package/dist/public/build/js/{query-tracker.5a0d626f.chunk.js.map → query-tracker.b7334a6f.chunk.js.map} +1 -1
  30. package/dist/public/build/js/{runtime.8a460b23.js → runtime.d583e98e.js} +2 -2
  31. package/dist/public/build/js/{runtime.8a460b23.js.map → runtime.d583e98e.js.map} +1 -1
  32. package/dist/public/build/js/users.aec1e380.chunk.js +2 -0
  33. package/dist/public/build/js/users.aec1e380.chunk.js.map +1 -0
  34. package/dist/public/build/js/yt-df-dialog.1d05b0a5.chunk.js +3 -0
  35. package/dist/public/build/js/yt-df-dialog.1d05b0a5.chunk.js.map +1 -0
  36. package/dist/public/build/manifest.json +34 -34
  37. package/package.json +4 -3
  38. package/dist/public/build/css/default-subject-link.4dc8a973.chunk.css +0 -2
  39. package/dist/public/build/css/default-subject-link.4dc8a973.chunk.css.map +0 -1
  40. package/dist/public/build/css/main.d1987746.css.map +0 -1
  41. package/dist/public/build/js/2009.8121a60e.chunk.js +0 -2
  42. package/dist/public/build/js/2009.8121a60e.chunk.js.map +0 -1
  43. package/dist/public/build/js/6157.92170346.chunk.js +0 -2
  44. package/dist/public/build/js/6157.92170346.chunk.js.map +0 -1
  45. package/dist/public/build/js/6960.8b7e01c6.chunk.js +0 -2
  46. package/dist/public/build/js/6960.8b7e01c6.chunk.js.map +0 -1
  47. package/dist/public/build/js/accounts.aaa21eca.chunk.js.map +0 -1
  48. package/dist/public/build/js/acl.1ad3d494.chunk.js +0 -2
  49. package/dist/public/build/js/acl.1ad3d494.chunk.js.map +0 -1
  50. package/dist/public/build/js/cluster-page-wrapper.45436df6.chunk.js +0 -2
  51. package/dist/public/build/js/dashboard.234b8062.chunk.js +0 -3
  52. package/dist/public/build/js/main.aa6a17d8.js +0 -3
  53. package/dist/public/build/js/main.aa6a17d8.js.map +0 -1
  54. package/dist/public/build/js/users.a0dc610f.chunk.js +0 -2
  55. package/dist/public/build/js/users.a0dc610f.chunk.js.map +0 -1
  56. package/dist/public/build/js/yt-df-dialog.acab4eb0.chunk.js +0 -3
  57. package/dist/public/build/js/yt-df-dialog.acab4eb0.chunk.js.map +0 -1
  58. /package/dist/public/build/js/{dashboard.234b8062.chunk.js.LICENSE.txt → dashboard.efdd63a2.chunk.js.LICENSE.txt} +0 -0
  59. /package/dist/public/build/js/{main.aa6a17d8.js.LICENSE.txt → main.a89bac74.js.LICENSE.txt} +0 -0
  60. /package/dist/public/build/js/{yt-df-dialog.acab4eb0.chunk.js.LICENSE.txt → yt-df-dialog.1d05b0a5.chunk.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/navigation-flow.a79a25f5.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevrons-right.svg","webpack://@ytsaurus/ui/./src/ui/components/ExpandButton/ExpandButton.tsx","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/superPropGet.js","webpack://@ytsaurus/ui/./node_modules/colord/index.mjs","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/status.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/status.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/filters.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/layout.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/layout.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowLayout/FlowLayout.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/specs.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/specs.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/PipelineSpec/PipelineSpec.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/clock.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file-code.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/receipt.svg","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/FlowGraphRenderer.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/FlowMeta.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Computation.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Stream.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/cpu.svg","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/ComputationCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/StreamCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/utils/FlowGroupBlock.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/ComputationGroupCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Sink.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/SinkCanvas.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/FlowGraph.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/Flow.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./node_modules/rbush/rbush.min.js","webpack://@ytsaurus/ui/./src/ui/components/StatusLabel/StatusLabel.tsx","webpack://@ytsaurus/ui/./src/ui/utils/get-css-color.ts","webpack://@ytsaurus/ui/./node_modules/colord/plugins/names.mjs"],"sourcesContent":["const SvgChevronsRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M3.47 10.97a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L6.44 8zm5 0a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L11.44 8z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronsRight;","import React, {FC} from 'react';\nimport {Button, ButtonProps, Icon} from '@gravity-ui/uikit';\nimport shevronRightSvg from '@gravity-ui/icons/svgs/chevron-right.svg';\nimport doubleShevronRightSvg from '@gravity-ui/icons/svgs/chevrons-right.svg';\nimport cn from 'bem-cn-lite';\nimport './ExpandButton.scss';\n\nconst block = cn('yt-expanded-button');\n\ntype Props = {\n className?: string;\n expanded: boolean;\n toggleExpanded: () => void;\n inline?: boolean;\n all?: boolean;\n showText?: boolean;\n qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n qa,\n}) => {\n const titleExpanded = all ? 'Collapse All' : 'Collapse';\n const titleCollapsed = all ? 'Expand All' : 'Expand';\n return (\n <Button\n className={block({inline}, className)}\n view=\"flat-secondary\"\n title={expanded ? titleExpanded : titleCollapsed}\n onClick={toggleExpanded}\n qa={qa}\n >\n {showText && (expanded ? titleExpanded : titleCollapsed) + ' '}\n <Icon\n className={block('expand', {expanded})}\n data={all ? doubleShevronRightSvg : shevronRightSvg}\n size={16}\n />\n </Button>\n );\n};\n","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import get from \"./get.js\";\nimport getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropGet(t, o, e, r) {\n var p = get(getPrototypeOf(1 & r ? t.prototype : t), o, e);\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(e, t);\n } : p;\n}\nexport { _superPropGet as default };","var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?\"0\"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,p=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s+([+-]?\\d*\\.?\\d+)%\\s+([+-]?\\d*\\.?\\d+)%\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,v=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,m=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},\"hex\"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},\"rgb\"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u=\"deg\"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},\"hsl\"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},\"rgb\"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},\"hsl\"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},\"hsv\"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return\"string\"==typeof r?N(r.trim(),y.string):\"object\"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):\"\",\"#\"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?\"rgba(\"+t+\", \"+n+\", \"+e+\", \"+u+\")\":\"rgb(\"+t+\", \"+n+\", \"+e+\")\";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?\"hsla(\"+t+\", \"+n+\"%, \"+e+\"%, \"+u+\")\":\"hsl(\"+t+\", \"+n+\"%, \"+e+\"%)\";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return\"number\"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return\"number\"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};export{j as Colord,w as colord,k as extend,I as getFormat,E as random};\n","import {RootState} from '../../reducers';\n\nexport const getFlowStatusData = (state: RootState) => state.flow.status.data;\nexport const getFlowStatusPipelinePath = (state: RootState) => state.flow.status.pipeline_path;\nexport const getFlowStatusError = (state: RootState) => state.flow.status.error;\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {getFlowStatusPipelinePath} from '../../../store/selectors/flow/status';\nimport {flowStatusActions} from '../../reducers/flow/status';\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function loadFlowStatus(pipeline_path: string): AsyncAction<Promise<void>> {\n return (dispatch) => {\n dispatch(flowStatusActions.onRequest({pipeline_path}));\n\n return ytApiV4\n .getPipelineState({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data) => {\n dispatch(flowStatusActions.onSuccess({data}));\n },\n (error) => {\n if (!isCancelled(error)) {\n dispatch(flowStatusActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowState({\n pipeline_path,\n state,\n}: {\n pipeline_path: string;\n state: 'start' | 'stop' | 'pause';\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n const method = `${state}Pipeline` as const;\n return ytApiV4[method]({pipeline_path}).then(() => {\n const path = getFlowStatusPipelinePath(getState());\n if (path === pipeline_path) {\n dispatch(loadFlowStatus(pipeline_path));\n }\n });\n };\n}\n","import {RootState} from '../../../store/reducers';\n\nexport const getFlowViewMode = (state: RootState) => state.flow.filters.flowViewMode;\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flowLayoutActions} from '../../../store/reducers/flow/layout';\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function loadFlowLayout(pipeline_path: string): AsyncAction<Promise<void>> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onRequest({pipeline_path}));\n\n return ytApiV4\n .getFlowView({\n parameters: {pipeline_path, ...{annotate_with_types: true}},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data) => {\n dispatch(flowLayoutActions.onSuccess({data}));\n },\n (error) => {\n if (!isCancelled(error)) {\n dispatch(flowLayoutActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function expandFlowLayoutComputation({\n computation_id,\n}: {\n computation_id: string;\n}): AsyncAction<void> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onExpandComputation({computation_id}));\n };\n}\n\nexport function expandFlowLayoutWorker({\n worker_address,\n}: {\n worker_address: string;\n}): AsyncAction<void> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onExpandWorker({worker_address}));\n };\n}\n","import {createSelector} from 'reselect';\nimport map_ from 'lodash/map';\nimport forEach_ from 'lodash/forEach';\n\nimport {RootState} from '../../../store/reducers';\n\nexport const getFlowLayoutPipelinePath = (state: RootState) => state.flow.layout.pipeline_path;\nexport const getFlowLayoutError = (state: RootState) => state.flow.layout.error;\nconst getFlowLayoutExpandedComputations = (state: RootState) =>\n state.flow.layout.expandedComputations;\nconst getFlowLayoutExpandedWorkers = (state: RootState) => state.flow.layout.expandedWorkers;\n\nconst getFlowLayoutRawData = (state: RootState) => state.flow.layout.data;\n\ntype RowData = Pick<\n ReturnType<typeof getFlowLayoutPartitions>[number],\n 'job' | 'partition' | 'worker'\n>;\ntype LayoutExpandable = {\n $value: Array<Exclude<FlowLayoutDataItem, LayoutExpandable>>;\n $attributes: {\n name: string;\n expanded: boolean;\n job_count: number;\n worker_count: number;\n partition_count: number;\n };\n};\n\nexport type FlowLayoutDataItem = {[K in keyof RowData]: RowData[K] | null} | LayoutExpandable;\n\nexport const getFlowLayoutData = createSelector(\n [getFlowLayoutRawData, getFlowLayoutExpandedComputations, getFlowLayoutExpandedWorkers],\n (data, expandedComputations, expandedWorkers) => {\n return (mode: 'computations' | 'workers') => {\n return mode === 'computations'\n ? handleExpandedNames(getFlowLayoutPartitions(data), expandedComputations)\n : handleExpandedNames(getFlowLayoutWorkers(data), expandedWorkers);\n };\n },\n);\n\nfunction getFlowLayoutPartitions(data: ReturnType<typeof getFlowLayoutRawData>) {\n const {jobs = {}, partitions} = data?.execution_spec?.layout?.value ?? {};\n return map_(partitions, (item) => {\n const job = jobs[item.current_job_id!];\n const {worker_address} = job ?? {};\n const worker = data?.workers[worker_address];\n return {\n name: item.computation_id,\n partition: (item as typeof item | undefined) ?? null,\n job: (job as typeof job | undefined) ?? null,\n worker: worker ?? null,\n };\n });\n}\n\nfunction getFlowLayoutWorkers(data: ReturnType<typeof getFlowLayoutRawData>) {\n const {jobs, partitions} = data?.execution_spec?.layout?.value ?? {};\n\n const res: ReturnType<typeof getFlowLayoutPartitions> = [];\n const visitedWorkers = new Set<string>();\n\n forEach_(jobs, (job) => {\n const {worker_address, partition_id} = job;\n const partition = partitions?.[partition_id];\n const worker = data?.workers[worker_address];\n res.push({\n name: worker_address,\n partition: partition ?? null,\n job: job ?? null,\n worker: worker ?? null,\n });\n\n visitedWorkers.add(worker_address);\n });\n forEach_(data?.workers, (item) => {\n const {address} = item;\n if (!visitedWorkers.has(address)) {\n res.push({name: address, partition: null, job: null, worker: null});\n }\n });\n\n return res;\n}\n\nfunction handleExpandedNames(\n rows: Array<RowData & {name: string}>,\n expandedNames: Record<string, true>,\n) {\n const expanded = new Set(Object.keys(expandedNames));\n const groups: Array<LayoutExpandable> = [];\n const groupsByName = new Map<string, LayoutExpandable>();\n rows.forEach((item) => {\n const {name, ...rest} = item;\n let dst = groupsByName.get(name);\n if (!dst) {\n dst = {\n $attributes: {\n name: name,\n expanded: expanded.has(name),\n job_count: 0,\n worker_count: 0,\n partition_count: 0,\n },\n $value: [],\n };\n groupsByName.set(name, dst!);\n groups.push(dst!);\n }\n if (item.job) {\n ++dst!.$attributes.job_count;\n }\n if (item.worker) {\n ++dst!.$attributes.worker_count;\n }\n if (item.partition) {\n ++dst!.$attributes.partition_count;\n }\n dst!.$value?.push(rest);\n });\n\n if (!expanded.size) {\n return groups;\n }\n\n let res: Array<FlowLayoutDataItem> = [];\n for (const item of groups) {\n const {name} = item.$attributes;\n if (expanded.has(name)) {\n res = res.concat(item, item.$value);\n } else {\n res.push(item);\n }\n }\n\n return res;\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Column} from '@gravity-ui/react-data-table';\n\nimport format from '../../../../../common/hammer/format';\n\nimport ClickableAttributesButton from '../../../../../components/AttributesButton/ClickableAttributesButton';\nimport ClipboardButton from '../../../../../components/ClipboardButton/ClipboardButton';\nimport DataTableYT, {\n DATA_TABLE_YT_SETTINGS,\n} from '../../../../../components/DataTableYT/DataTableYT';\nimport {YTErrorBlock} from '../../../../../components/Error/Error';\nimport {ExpandButton} from '../../../../../components/ExpandButton';\n\nimport {useUpdater} from '../../../../../hooks/use-updater';\nimport {\n expandFlowLayoutComputation,\n expandFlowLayoutWorker,\n loadFlowLayout,\n} from '../../../../../store/actions/flow/layout';\nimport {\n FlowLayoutDataItem,\n getFlowLayoutData,\n getFlowLayoutError,\n getFlowLayoutPipelinePath,\n} from '../../../../../store/selectors/flow/layout';\n\nimport './FlowLayout.scss';\n\nconst block = cn('yt-navigation-flow-layout');\n\nexport function FlowLayout({path, viewMode}: {path: string; viewMode: 'computations' | 'workers'}) {\n const dispatch = useDispatch();\n\n const pipeline_path = useSelector(getFlowLayoutPipelinePath);\n const error = useSelector(getFlowLayoutError);\n const getData = useSelector(getFlowLayoutData);\n\n const data = React.useMemo(() => {\n return getData(viewMode);\n }, [viewMode, getData]);\n\n const samePath = path === pipeline_path;\n const columns = useFlowLayoutColumn(viewMode);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowLayout(path));\n }, [path, dispatch]);\n useUpdater(updateFn);\n\n if (!samePath) {\n return null;\n }\n\n return (\n <div className={block()}>\n {Boolean(error) && <YTErrorBlock error={error!} />}\n <DataTableYT\n settings={DATA_TABLE_YT_SETTINGS}\n columns={columns}\n data={data}\n useThemeYT\n />\n </div>\n );\n}\n\nfunction useFlowLayoutColumn(type: 'computations' | 'workers') {\n const dispatch = useDispatch();\n\n const res = React.useMemo(() => {\n const isComputations = type === 'computations';\n const columns: Array<Column<FlowLayoutDataItem>> = [\n {\n name: isComputations\n ? 'Computation / Partition Id'\n : 'Worker address / Partition Id',\n className: block('td-name'),\n render({row}) {\n let content;\n if ('$attributes' in row) {\n const {\n $attributes: {name, expanded},\n } = row;\n content = (\n <>\n <ExpandButton\n className={block('expand', {hidden: row.$value.length === 0})}\n expanded={expanded}\n toggleExpanded={() => {\n dispatch(\n isComputations\n ? expandFlowLayoutComputation({\n computation_id: name,\n })\n : expandFlowLayoutWorker({worker_address: name}),\n );\n requestAnimationFrame(() => {\n window.dispatchEvent(new Event('resize'));\n });\n }}\n />\n <span className={block('name-title')}>\n {name}{' '}\n <ClipboardButton\n view=\"flat-secondary\"\n text={name}\n inlineMargins\n visibleOnRowHover\n />\n </span>\n </>\n );\n } else {\n content = (\n <span className={block('name-title', {level: '1'})}>\n {row.partition?.partition_id}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.partition?.partition_id}\n inlineMargins\n visibleOnRowHover\n />\n </span>\n );\n }\n return <div className={block('name')}>{content}</div>;\n },\n },\n {\n name: 'Partition state',\n render({row}) {\n return 'partition' in row\n ? row.partition?.state\n : format.Number(row.$value.length);\n },\n width: 120,\n },\n {\n name: 'Job Id',\n render({row}) {\n return 'partition' in row ? (\n <>\n {row.partition?.current_job_id}{' '}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.partition?.current_job_id}\n inlineMargins\n visibleOnRowHover\n />\n </>\n ) : (\n format.Number(row.$attributes.job_count)\n );\n },\n width: 400,\n },\n isComputations\n ? {\n name: 'Worker address',\n render({row}) {\n return 'job' in row ? (\n <>\n {row.job?.worker_address}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.job?.worker_address}\n inlineMargins\n visibleOnRowHover\n />\n </>\n ) : (\n format.Number(row.$attributes.worker_count)\n );\n },\n width: 400,\n }\n : {\n name: 'Computation',\n render({row}) {\n return 'partition' in row\n ? row.partition?.computation_id\n : format.Number(row.$attributes.partition_count);\n },\n width: 400,\n },\n {\n name: 'actions',\n header: null,\n render({row}) {\n return (\n <ClickableAttributesButton\n className={block('show-attributes')}\n title={'Details'}\n attributes={row}\n withTooltip={false}\n />\n );\n },\n width: 50,\n },\n ];\n return columns;\n }, [type]);\n return res;\n}\n","import {RootState} from '../../../store/reducers';\n\nexport const getFlowStaticSpecData = (state: RootState) => state.flow.staticSpec.data;\nexport const getFlowStaticSpecPath = (state: RootState) => state.flow.staticSpec.pipeline_path;\nexport const getFlowStaticSpecError = (state: RootState) => state.flow.staticSpec.error;\nexport const getFlowStaticSpecFirstLoading = (state: RootState) => {\n const {loading, loaded} = state.flow.staticSpec;\n return !loaded && loading;\n};\n\nexport const getFlowDynamicSpecData = (state: RootState) => state.flow.dynamicSpec.data;\nexport const getFlowDynamicSpecPath = (state: RootState) => state.flow.dynamicSpec.pipeline_path;\nexport const getFlowDynamicSpecError = (state: RootState) => state.flow.dynamicSpec.error;\nexport const getFlowDynamicSpecFirstLoading = (state: RootState) => {\n const {loading, loaded} = state.flow.dynamicSpec;\n return !loaded && loading;\n};\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {\n FlowSpecState,\n dynamicSpecActions,\n staticSpecActions,\n} from '../../../store/reducers/flow/specs';\nimport {getFlowDynamicSpecPath, getFlowStaticSpecPath} from '../../../store/selectors/flow/specs';\n\nconst cancelHelper = new CancelHelper();\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nexport function loadFlowStaticSpec(pipeline_path: string): AsyncAction {\n return (dispatch) => {\n dispatch(staticSpecActions.onRequest({pipeline_path}));\n return ytApiV4\n .getPipelineSpec({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data: FlowSpecState['data']) => {\n dispatch(staticSpecActions.onSuccess({data}));\n },\n (error: any) => {\n if (!isCancelled(error)) {\n dispatch(staticSpecActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowStaticSpec({\n data,\n path,\n}: {\n data: FlowSpecState['data'];\n path: string;\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n return ytApiV4\n .setPipelineSpec({pipeline_path: path, expected_version: data?.version}, data?.spec)\n .then(() => {\n const pipeline_path = getFlowStaticSpecPath(getState());\n if (pipeline_path && pipeline_path === path) {\n dispatch(loadFlowStaticSpec(path));\n }\n });\n };\n}\n\nexport function loadFlowDynamicSpec(pipeline_path: string): AsyncAction {\n return (dispatch) => {\n dispatch(dynamicSpecActions.onRequest({pipeline_path}));\n return ytApiV4\n .getPipelineDynamicSpec({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data: FlowSpecState['data']) => {\n dispatch(dynamicSpecActions.onSuccess({data}));\n },\n (error: any) => {\n if (!isCancelled(error)) {\n dispatch(dynamicSpecActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowDynamicSpec({\n data,\n path,\n}: {\n data: FlowSpecState['data'];\n path: string;\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n return ytApiV4\n .setPipelineDynamicSpec(\n {pipeline_path: path, expected_version: data?.version},\n data?.spec,\n )\n .then(() => {\n const pipline_path = getFlowDynamicSpecPath(getState());\n if (path === pipline_path) {\n dispatch(loadFlowDynamicSpec(path));\n }\n });\n };\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport {YTError} from '../../../../../../@types/types';\n\nimport {useUpdater} from '../../../../../hooks/use-updater';\n\nimport {useThunkDispatch} from '../../../../../store/thunkDispatch';\nimport {\n loadFlowDynamicSpec,\n loadFlowStaticSpec,\n updateFlowDynamicSpec,\n updateFlowStaticSpec,\n} from '../../../../../store/actions/flow/specs';\nimport {\n getFlowDynamicSpecData,\n getFlowDynamicSpecFirstLoading,\n getFlowStaticSpecData,\n getFlowStaticSpecError,\n getFlowStaticSpecFirstLoading,\n} from '../../../../../store/selectors/flow/specs';\nimport {getFlowSpecYsonSettings} from '../../../../../store/selectors/thor/unipika';\nimport {FlowSpecState} from '../../../../../store/reducers/flow/specs';\n\nimport Yson from '../../../../../components/Yson/Yson';\nimport Icon from '../../../../../components/Icon/Icon';\nimport {YTDFDialog, makeErrorFields} from '../../../../../components/Dialog';\nimport {YTErrorBlock} from '../../../../../components/Block/Block';\nimport Loader from '../../../../../components/Loader/Loader';\nimport {UnipikaSettings} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\n\nimport './PipelineSpec.scss';\nimport {YsonDownloadButton} from '../../../../../components/DownloadAttributesButton';\nimport {pathToFileName} from '../../../helpers/pathToFileName';\n\nconst block = cn('yt-pipeline-spec');\n\ntype PipelineSpecProps = {\n path: string;\n error: YTError | undefined;\n data: FlowSpecState['data'];\n name: string;\n onSave: (data: PipelineSpecProps['data']) => Promise<void>;\n};\n\nfunction PipelineSpec({path, data, error, name, onSave}: PipelineSpecProps) {\n const [showEdit, setShowEdit] = React.useState(false);\n\n const settings = useSelector(getFlowSpecYsonSettings);\n\n return (\n <React.Fragment>\n {Boolean(error) && <YTErrorBlock error={error} />}\n <Yson\n value={data}\n settings={settings}\n virtualized\n folding\n extraTools={\n <React.Fragment>\n <YsonDownloadButton\n value={data}\n settings={settings}\n name={`pipeline_spec_${pathToFileName(path)}`}\n />\n <Button view=\"outlined\" onClick={() => setShowEdit(true)}>\n <Icon awesome=\"pencil\" />\n Edit {name}\n </Button>\n </React.Fragment>\n }\n />\n <EditSpecDialog\n path={path}\n name={name}\n visible={showEdit}\n onSpecApply={(spec) => onSave({...data!, spec})}\n onClose={() => setShowEdit(false)}\n spec={data?.spec}\n settings={settings}\n />\n </React.Fragment>\n );\n}\n\ntype FormValues = {\n text: {value?: string};\n path: string;\n};\n\nfunction EditSpecDialog({\n path,\n visible,\n spec,\n onClose,\n onSpecApply,\n name,\n settings,\n}: Pick<PipelineSpecProps, 'name' | 'path'> & {\n spec?: unknown;\n visible: boolean;\n onClose: () => void;\n settings: UnipikaSettings;\n onSpecApply: (spec: unknown) => Promise<void>;\n}) {\n const [error, setError] = React.useState<YTError | undefined>();\n\n const text = React.useMemo(() => {\n return {value: JSON.stringify(spec, null, 4)};\n }, [spec]);\n\n return (\n visible && (\n <YTDFDialog<FormValues>\n visible\n size=\"l\"\n onClose={onClose}\n initialValues={{text, path}}\n headerProps={{\n title: `Edit ${name}`,\n }}\n onAdd={async (f) => {\n setError(undefined);\n const {text} = f.getState().values;\n if (text.value) {\n try {\n return await onSpecApply(JSON.parse(text.value));\n } catch (e: any) {\n setError(e);\n return Promise.reject(e);\n }\n } else {\n return Promise.resolve();\n }\n }}\n fields={[\n {\n caption: 'Pipeline path',\n name: 'path',\n type: 'plain',\n },\n {\n name: 'text',\n caption: 'Specification',\n type: 'json',\n fullWidth: true,\n extras: {\n className: block('editor'),\n initialShowPreview: false,\n unipikaSettings: settings,\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n )\n );\n}\n\nexport function FlowStaticSpec({pipeline_path: path}: {pipeline_path: string}) {\n const dispatch = useThunkDispatch();\n\n const data = useSelector(getFlowStaticSpecData);\n const error = useSelector(getFlowStaticSpecError);\n const firstLoading = useSelector(getFlowStaticSpecFirstLoading);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowStaticSpec(path));\n }, [dispatch, path]);\n useUpdater(updateFn);\n\n const onEdit = React.useCallback(\n (newData: typeof data) => {\n return dispatch(updateFlowStaticSpec({path, data: newData}));\n },\n [path, dispatch],\n );\n\n return firstLoading ? (\n <Loader />\n ) : (\n <PipelineSpec\n path={path}\n data={data}\n error={error}\n name=\"static specification\"\n onSave={onEdit}\n />\n );\n}\n\nexport function FlowDynamicSpec({pipeline_path: path}: {pipeline_path: string}) {\n const dispatch = useThunkDispatch();\n\n const data = useSelector(getFlowDynamicSpecData);\n const error = useSelector(getFlowStaticSpecError);\n const firstLoading = useSelector(getFlowDynamicSpecFirstLoading);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowDynamicSpec(path));\n }, [dispatch, path]);\n useUpdater(updateFn);\n\n const onEdit = React.useCallback(\n (newData: typeof data) => {\n return dispatch(updateFlowDynamicSpec({path, data: newData}));\n },\n [path, dispatch],\n );\n\n return firstLoading ? (\n <Loader />\n ) : (\n <PipelineSpec\n path={path}\n data={data}\n error={error}\n name=\"dynamic specification\"\n onSave={onEdit}\n />\n );\n}\n","const SvgClock = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0M8.75 4.5a.75.75 0 0 0-1.5 0V8a.75.75 0 0 0 .3.6l2 1.5a.75.75 0 1 0 .9-1.2l-1.7-1.275z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgClock;","const SvgFileCode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5 13.5h6a1.5 1.5 0 0 0 1.5-1.5V7.243a1.5 1.5 0 0 0-.44-1.061L8.819 2.939a1.5 1.5 0 0 0-1.06-.439H5A1.5 1.5 0 0 0 3.5 4v8A1.5 1.5 0 0 0 5 13.5m9-6.257a3 3 0 0 0-.879-2.122L9.88 1.88A3 3 0 0 0 7.757 1H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3zM8.72 10.53a.75.75 0 0 1 0-1.06l.97-.97-.97-.97a.75.75 0 0 1 1.06-1.06l1.5 1.5a.75.75 0 0 1 0 1.06l-1.5 1.5a.75.75 0 0 1-1.06 0m-1.44-3a.75.75 0 0 0-1.06-1.06l-1.5 1.5a.75.75 0 0 0 0 1.06l1.5 1.5a.75.75 0 1 0 1.06-1.06l-.97-.97z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgFileCode;","const SvgReceipt = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M6.3 2 3.9.5 2 2v13.5l1.5-.776L4.9 14l2.4 1.5L9.7 14l2.4 1.5L14 14V.5l-1.5.776L11.1 2 8.7.5zm2.4.269L7.095 3.272l-.795.497-.795-.497-1.504-.94-.501.395v10.308l.71-.367.76-.393.725.453L7.3 13.731l1.605-1.003.795-.497.795.497 1.504.94.501-.395V2.965l-.71.367-.76.393-.725-.453zM5 6.5a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 5 6.5m.75 2.25a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgReceipt;","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Dialog, Flex, Icon, Text} from '@gravity-ui/uikit';\nimport {SVGIconSvgrData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\n\nimport {FlowMessage, FlowNodeStatus} from '../../../../../../../shared/yt-types';\n\nimport format from '../../../../../../common/hammer/format';\nimport {ExpandButton} from '../../../../../../components/ExpandButton';\nimport {YTErrorBlock} from '../../../../../../components/Block/Block';\nimport Yson from '../../../../../../components/Yson/Yson';\nimport {\n ClickableText,\n ClickableTextProps,\n} from '../../../../../../components/ClickableText/ClickableText';\n\nimport './FlowGraphRenderer.scss';\n\nconst block = cn('yt-flow-graph-renderer');\n\nexport const STATUS_TO_BG_THEME: Partial<\n Record<FlowNodeStatus, 'success' | 'info' | 'warning' | 'danger'>\n> = {\n warning: 'warning',\n alert: 'warning',\n error: 'danger',\n fatal: 'danger',\n maximum: 'danger',\n};\n\nexport function FlowIcon({data}: {data?: SVGIconSvgrData}) {\n return !data ? null : (\n <Flex shrink={0}>\n <Icon className={block('icon')} data={data} />\n </Flex>\n );\n}\n\nexport function FlowCaption2({\n text,\n children,\n}: {\n text?: React.ReactNode;\n children?: React.ReactNode;\n}) {\n return (\n <Text variant=\"inherit\" style={{lineHeight: '17px'}} ellipsis>\n {text}\n {children}\n </Text>\n );\n}\n\nexport function FlowCaption1({text}: {text: React.ReactNode}) {\n return (\n <Text variant=\"caption-2\" color=\"secondary\" ellipsis>\n {text}\n </Text>\n );\n}\n\ntype FlowMessagesProps = {data?: Array<FlowMessage>};\n\nexport function FlowMessages({data}: FlowMessagesProps) {\n const [visible, setVisible] = React.useState(false);\n\n const color = React.useMemo(() => {\n return data?.reduce(\n (acc, {level}) => {\n const theme = STATUS_TO_BG_THEME[level];\n if (theme === 'danger') {\n return theme;\n }\n if (theme === 'warning') {\n return theme;\n }\n return acc;\n },\n undefined as ClickableTextProps['color'],\n );\n }, [data]);\n\n return !data?.length ? null : (\n <div className={block('messages')}>\n <ClickableText color={color} onClick={() => setVisible(true)}>\n Messages ({data.length})\n </ClickableText>\n {visible && <FlowMessagesDialog data={data} onClose={() => setVisible(false)} />}\n </div>\n );\n}\n\nfunction FlowMessagesDialog({data, onClose}: FlowMessagesProps & {onClose(): void}) {\n return (\n <Dialog open={true} onClose={onClose}>\n <Dialog.Header caption=\"Messages\" />\n <Dialog.Body className={block('messages-body')}>\n {data?.map((item, index) => (\n <FlowMessageItem item={item} key={index} />\n ))}\n </Dialog.Body>\n </Dialog>\n );\n}\n\nfunction FlowMessageItem({item}: {item: FlowMessage}) {\n const {level, yson, error} = item;\n const theme = STATUS_TO_BG_THEME[level];\n return (\n <div className={block('message', {theme})}>\n {!error && !yson ? (\n item.text\n ) : (\n <FlowMessageItemExpandable\n item={item}\n errorType={theme === 'warning' ? 'alert' : undefined}\n />\n )}\n </div>\n );\n}\n\nfunction FlowMessageItemExpandable({item, errorType}: {item: FlowMessage; errorType?: 'alert'}) {\n const [expanded, setExpanded] = React.useState(false);\n\n const toggleExpand = () => setExpanded(!expanded);\n\n const {yson, error, text} = item;\n return (\n <Flex gap={1} alignItems=\"baseline\">\n <ExpandButton expanded={expanded} toggleExpanded={toggleExpand} />\n <div>\n <span onClick={toggleExpand} style={{cursor: 'pointer'}}>\n {text ?? format.NO_VALUE}\n </span>\n {expanded && (\n <React.Fragment>\n {Boolean(yson) && <Yson value={yson} />}\n {Boolean(error) && <YTErrorBlock error={error} type={errorType} />}\n </React.Fragment>\n )}\n </div>\n </Flex>\n );\n}\n","import React from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {FlowCaption1, FlowCaption2} from './FlowGraphRenderer';\n\nexport function FlowMeta({\n items,\n className,\n}: {\n className?: string;\n items: Array<{label: string; value: React.ReactNode}>;\n}) {\n return (\n <Flex className={className} gap={2}>\n {items.map(({label, value}, index) => {\n return (\n <Flex\n key={index}\n grow={index < items.length - 1 ? 1 : 0}\n direction=\"column\"\n shrink={1}\n style={{overflow: 'hidden'}}\n >\n <FlowCaption1 text={label} />\n <FlowCaption2 text={value} />\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Progress, ProgressTheme, Text} from '@gravity-ui/uikit';\n\nimport {FlowComputation} from '../../../../../../../shared/yt-types';\n\nimport format from '../../../../../../common/hammer/format';\nimport MetaTable from '../../../../../../components/MetaTable/MetaTable';\nimport {addProgressStackSpacers} from '../../../../../../utils/progress';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nimport {FlowCaption1, FlowCaption2, FlowMessages} from './FlowGraphRenderer';\nimport {FlowMeta} from './FlowMeta';\n\nimport './Computation.scss';\n\nconst block = cn('yt-flow-computation');\n\ntype ComputationProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: Omit<FlowGraphBlockItem<'computation'>, 'is'>;\n};\n\nexport function Computation({detailed, item, className}: ComputationProps) {\n const {cpu_usage_current, memory_usage_current} = item.meta?.metrics ?? {};\n\n return (\n <div className={block(null, className)}>\n <Flex className={block('name')} gap={4} alignItems=\"baseline\">\n <Flex grow={1} overflow=\"hidden\">\n <FlowCaption2 text={item.name} />\n </Flex>\n <Flex grow={1} overflow=\"hidden\">\n <FlowCaption1 text={item.meta?.group_by_schema_str} />\n </Flex>\n </Flex>\n <FlowMeta\n className={block('meta')}\n items={[\n {\n label: 'CPU Usage',\n value: format.Number(cpu_usage_current, {\n digits: cpu_usage_current! > 1 ? 1 : 2,\n }),\n },\n {\n label: 'RAM Usage',\n value: format.Bytes(memory_usage_current),\n },\n {\n label: 'Epoch, pcs/s',\n value: format.Number(item.meta?.epoch_per_second),\n },\n ]}\n />\n <ComputaionProgress stats={item.meta?.partitions_stats} />\n {detailed && <ComputationDetails item={item} />}\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n\ntype ComputationProgressProps = {\n stats?: FlowComputation['partitions_stats'];\n};\n\ntype FlowComputationPartitionStates = keyof Required<\n Required<FlowComputation>['partitions_stats']\n>['count_by_state'];\nconst STATE_TO_THEME: Record<FlowComputationPartitionStates, ProgressTheme> = {\n completed: 'info',\n transient: 'warning',\n executing: 'success',\n interrupted: 'default',\n};\n\nfunction ComputaionProgress({stats}: ComputationProgressProps) {\n const {count = NaN, count_by_state} = stats ?? {};\n const {stack, history} = React.useMemo(() => {\n const history: ComputationProgressHistoryProps['data'] = [];\n const stack = Object.keys(count_by_state ?? {}).map((k) => {\n const key = k as keyof Exclude<typeof count_by_state, undefined>;\n const v = count_by_state?.[key] ?? NaN;\n const theme = STATE_TO_THEME[key] ?? 'default';\n history.push({value: v, type: key});\n\n return {value: (v / count) * 100, theme};\n });\n return {stack: addProgressStackSpacers(stack), history};\n }, [stats, count]);\n\n return (\n <div>\n <Progress className={block('progress')} stack={stack} size=\"xs\" />\n <Flex style={{paddingTop: '8px'}} alignItems=\"baseline\" gap={2}>\n <FlowCaption2>\n {format.Number(count)}{' '}\n <Text color=\"secondary\" variant=\"inherit\">\n partitions\n </Text>\n </FlowCaption2>\n <ComputationProgressHistory data={history} />\n </Flex>\n </div>\n );\n}\n\ntype ComputationProgressHistoryProps = {\n data: Array<{value?: number; type: FlowComputationPartitionStates}>;\n};\n\nfunction ComputationProgressHistory({data}: ComputationProgressHistoryProps) {\n return (\n <Flex alignItems=\"baseline\" grow={1} gap={2} justifyContent=\"end\">\n {data.map(({value, type}, index) => {\n return <ComputationProgressHistoryItem key={index} value={value} type={type} />;\n })}\n </Flex>\n );\n}\n\nfunction ComputationProgressHistoryItem({\n value,\n type,\n}: {\n value?: number;\n type: FlowComputationPartitionStates;\n}) {\n return !value ? null : (\n <Flex alignItems=\"baseline\">\n <div>\n <div\n className={block('progress-history-item-color', {\n theme: STATE_TO_THEME[type] ?? 'default',\n })}\n />\n </div>\n <FlowCaption2>{value}</FlowCaption2>\n </Flex>\n );\n}\n\nfunction ComputationDetails({item}: Pick<ComputationProps, 'item'>) {\n const {cpu_usage_current: _cpu, memory_usage_current: _mem, ...rest} = item.meta?.metrics ?? {};\n return (\n <MetaTable\n className={block('details')}\n items={[\n Object.entries(rest).map(([key, value]) => {\n const fmt = key.startsWith('memory_') ? format.Bytes : format.Number;\n return {\n key,\n value: fmt(value, {digits: 2}),\n };\n }),\n ]}\n />\n );\n}\n","import React from 'react';\n\nimport {Flex, Text} from '@gravity-ui/uikit';\n\nimport format from '../../../../../../common/hammer/format';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nimport {FlowMeta} from './FlowMeta';\n\nimport {FlowCaption2, FlowIcon, FlowMessages} from './FlowGraphRenderer';\n\ntype StreamProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: FlowGraphBlockItem<'stream'>;\n};\n\nexport function Stream({item, detailed, className}: StreamProps) {\n return (\n <div className={className}>\n <Flex gap={1} alignItems=\"center\" style={{paddingBottom: '10px'}} overflow=\"hidden\">\n <FlowIcon data={item.icon} />\n <FlowCaption2 text={item.name} />\n </Flex>\n <FlowMeta\n items={[\n {\n label: 'Messages',\n value: (\n <Flex direction=\"column\">\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Number(item.meta?.messages_per_second)} pcs/s\n </Text>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Bytes(item.meta?.bytes_per_second, {\n digits: detailed ? 2 : 0,\n }) + '/s'}\n </Text>\n </Flex>\n ),\n },\n {\n label: 'Inflight rows',\n value: (\n <Flex direction=\"column\" style={{overflow: 'hidden'}}>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Number(item.meta?.inflight_rows)}\n </Text>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Bytes(item.meta?.inflight_bytes, {\n digits: detailed ? 2 : 0,\n })}\n </Text>\n </Flex>\n ),\n },\n ]}\n />\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n","const SvgCpu = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M7 1.25a.75.75 0 0 0-1.5 0V2.5a3 3 0 0 0-3 3H1.25a.75.75 0 0 0 0 1.5H2.5v2H1.25a.75.75 0 0 0 0 1.5H2.5a3 3 0 0 0 3 3v1.25a.75.75 0 0 0 1.5 0V13.5h2v1.25a.75.75 0 0 0 1.5 0V13.5a3 3 0 0 0 3-3h1.25a.75.75 0 0 0 0-1.5H13.5V7h1.25a.75.75 0 0 0 0-1.5H13.5a3 3 0 0 0-3-3V1.25a.75.75 0 0 0-1.5 0V2.5H7zM10.5 4h-5A1.5 1.5 0 0 0 4 5.5v5A1.5 1.5 0 0 0 5.5 12h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 10.5 4m0 2.25a.75.75 0 0 0-.75-.75h-3.5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 .75.75h3.5a.75.75 0 0 0 .75-.75zM7 7h2v2H7z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCpu;","import CpuIcon from '@gravity-ui/icons/svgs/cpu.svg';\n\nimport {TAnchor} from '@gravity-ui/graph/build';\n\nimport format from '../../../../../../common/hammer/format';\nimport {\n NoopComponent,\n YTGraphCanvasBlock,\n YTGraphFontSize,\n} from '../../../../../../components/YTGraph';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nexport class ComputationCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>> {\n PADDING = 15;\n\n getComputationFontSize(): YTGraphFontSize {\n return 'header' as const;\n }\n\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: CpuIcon, size: 50});\n } else {\n this.renderHeader();\n this.renderMeta();\n }\n }\n\n renderHeader() {\n const {count, count_by_state: {executing} = {}} = this.state.meta.partitions_stats ?? {};\n\n const textWidth = this.drawInnerText({\n yPos: this.PADDING,\n xPos: this.PADDING,\n text: this.state.name,\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n\n const counts: Array<string> = [];\n if (Number.isFinite(count) && Number.isFinite(executing)) {\n counts.push(String(executing));\n if (count !== executing) {\n counts.push(String(count));\n }\n\n this.drawInnerText({\n yPos: this.PADDING,\n xPos: this.PADDING * 2 + textWidth!,\n text: counts.join('/'),\n color: 'secondary',\n padding: this.PADDING,\n fontSize: this.getComputationFontSize(),\n align: 'right',\n });\n }\n }\n\n renderMeta() {\n const {height, width} = this.state;\n const {\n metrics: {cpu_usage_current, memory_usage_current},\n } = this.state.meta;\n\n const maxWidth = Math.round((width - this.PADDING * 3) / 2);\n const yPos = Math.round(height / 2.1);\n\n this.drawMetaItem({\n xPos: this.PADDING,\n yPos,\n maxWidth,\n label: 'CPU',\n value: format.Number(cpu_usage_current, {digits: 1}),\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n\n const value = format.Bytes(memory_usage_current, {digits: 1});\n this.drawMetaItem({\n xPos: this.PADDING * 1.5 + maxWidth,\n yPos,\n maxWidth,\n label: 'RAM',\n value,\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n }\n\n getAnchorPosition({index = 0}: TAnchor) {\n const {length = 0} = this.state.anchors;\n\n const {width, height} = this.getGeometry();\n const step = width / (length + 1);\n\n return {y: height, x: step * (index + 1)};\n }\n\n renderAnchor: YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>>['renderAnchor'] = () => {\n return NoopComponent.create();\n };\n}\n","import {TAnchor} from '@gravity-ui/graph';\n\nimport format from '../../../../../../common/hammer/format';\n\nimport {NoopComponent, YTGraphCanvasBlock} from '../../../../../../components/YTGraph';\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 10;\n\nexport class StreamCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'stream'>> {\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: this.state.icon});\n } else {\n this.renderHeader();\n }\n }\n\n renderHeader() {\n const w = 24;\n\n this.drawInnerIcon({\n src: this.state.icon,\n xPos: PADDING,\n yPos: PADDING,\n w,\n h: w,\n });\n\n const yPos = PADDING + 4;\n const xPos = PADDING + w + 2;\n\n this.drawInnerText({\n yPos,\n xPos,\n text: this.state.name,\n fontSize: 'header',\n padding: PADDING,\n oneLine: true,\n });\n\n this.drawInnerText({\n yPos: yPos + 35,\n xPos,\n text: format.Bytes(this.state.meta.bytes_per_second, {digits: 0}) + '/s',\n align: 'right',\n fontSize: 'header',\n });\n }\n\n getAnchorPosition({index = 0}: TAnchor) {\n const {length = 0} = this.state.anchors;\n\n const {width} = this.getGeometry();\n const step = width / (length + 1);\n\n return {y: 0, x: step * (index + 1)};\n }\n\n renderAnchor: YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>>['renderAnchor'] = () => {\n return NoopComponent.create();\n };\n}\n","import {FlowComputation, FlowComputationStreamType} from '../../../../../../../shared/yt-types';\n\nimport {YTGraphBlock} from '../../../../../../components/YTGraph';\nimport {rumLogError} from '../../../../../../rum/rum-counter';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 50;\n\ntype Size = {width: number; height: number};\n\nexport class FlowGroupBlock implements YTGraphBlock<'computation-group', FlowComputation> {\n meta: FlowComputation;\n id: string;\n name: string;\n\n is = 'computation-group' as const;\n x = 0;\n y = 0;\n width = 0;\n height = 0;\n selected = false;\n anchors = [];\n\n backgroundTheme?: YTGraphBlock<'computation-group', FlowComputation>['backgroundTheme'];\n\n sizes: {stream: Size; computation: Size};\n\n constructor({\n id,\n computation,\n streamSize,\n computationSize,\n backgroundTheme,\n }: {\n id: string;\n computation: FlowComputation;\n streamSize: Size;\n computationSize: Size;\n backgroundTheme: YTGraphBlock<'computation-group', FlowComputation>['backgroundTheme'];\n }) {\n this.id = id;\n this.meta = computation;\n this.name = computation.id;\n this.backgroundTheme = backgroundTheme;\n\n this.sizes = {stream: streamSize, computation: computationSize};\n\n Object.assign(this, this.recalcSize());\n }\n\n recalcSize() {\n const {stream, computation} = this.sizes;\n\n const res = {\n width: computation.width + PADDING * 2,\n height: computation.height + PADDING * 2,\n };\n\n const {source_streams, timer_streams, output_streams} = this.meta;\n\n const extraHeight = Math.max(\n 0,\n (source_streams?.length ?? 0) * (PADDING + stream.height),\n (timer_streams?.length ?? 0) * (PADDING + stream.height),\n (output_streams?.length ?? 0) * (PADDING + stream.height) - computation.height,\n );\n\n let extraWidth = 0;\n\n if (source_streams?.length > 0) {\n extraWidth += stream.width + PADDING;\n }\n\n if (output_streams?.length > 0) {\n extraWidth += stream.width + PADDING;\n }\n\n return {\n width: res.width + extraWidth,\n height: res.height + extraHeight,\n };\n }\n\n updateBlockPosition<T extends FlowComputationStreamType | 'computation'>(\n type: T,\n block: FlowGraphBlockItem<'stream'> | FlowGraphBlockItem<'computation'>,\n ) {\n if (block.groupId !== this.id) {\n rumLogError(\n {\n additional: {\n id: this.id,\n 'block.id': block.id,\n 'block.groupId': block.groupId,\n },\n },\n new Error('Unexpected behaviour: block.groupId is mismatched with this.id'),\n );\n return block;\n }\n\n const {width, height} = this.sizes.stream;\n\n let index = 0;\n if (type !== 'computation') {\n const t = type as Exclude<typeof type, 'computation'>;\n index = this.meta[t]?.indexOf(block.id);\n if (index === -1) {\n rumLogError(\n {\n additional: {\n type,\n id: this.id,\n 'block.id': block.id,\n [`meta.${type}`]: this.meta[t].join(','),\n },\n },\n new Error(\n `Unexpected behaviour: block.id = ${block.id} should be found in meta.${type}`,\n ),\n );\n return block;\n }\n }\n\n const {computation, stream} = this.sizes;\n\n const byIndex = {width: index * (width + PADDING), height: index * (height + PADDING)};\n\n block.y =\n type === 'output_streams' || type === 'computation'\n ? PADDING + byIndex.height\n : PADDING * 2 + computation.height + byIndex.height;\n\n if (type === 'source_streams') {\n block.x = PADDING;\n } else if (type === 'timer_streams') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = hasSources ? PADDING * 2 + width + byIndex.width : PADDING;\n } else if (type === 'output_streams') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = 2 * PADDING + computation.width;\n if (hasSources) {\n block.x += PADDING + width;\n }\n block.y += (computation.height - stream.height) / 2;\n } else if (type === 'computation') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = PADDING;\n if (hasSources) {\n block.x += PADDING + width;\n }\n }\n\n return {...block, x: block.x + this.x, y: block.y + this.y};\n }\n}\n","import {YTGraphFontSize} from '../../../../../../components/YTGraph';\nimport {ComputationCanvasBlock} from './ComputationCanvas';\n\nexport class ComputationGroupCanvasBlock extends ComputationCanvasBlock {\n constructor(...args: ConstructorParameters<typeof ComputationCanvasBlock>) {\n super(...args);\n\n this.PADDING = 50;\n }\n\n override getComputationFontSize(): YTGraphFontSize {\n return 'header2';\n }\n\n override renderBlock() {\n super.renderBlock('schematic');\n }\n}\n","import React from 'react';\n\nimport {Flex} from '@gravity-ui/uikit';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\nimport {FlowCaption1, FlowCaption2, FlowIcon, FlowMessages} from './FlowGraphRenderer';\n\ntype SinknProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: FlowGraphBlockItem<'sink'>;\n};\n\nexport function Sink({className, item, detailed}: SinknProps) {\n return (\n <div className={className}>\n <Flex gap={1} alignItems=\"center\" style={{paddingBottom: '10px'}} overflow=\"hidden\">\n <FlowIcon data={item.icon} />\n <FlowCaption2 text={item.name} />\n </Flex>\n\n <FlowCaption1 text={item.meta.description} />\n\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n","import {YTGraphCanvasBlock} from '../../../../../../components/YTGraph';\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 10;\n\nexport class SinkCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'sink'>> {\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: this.state.icon});\n } else {\n this.renderHeader();\n }\n }\n\n renderHeader() {\n const w = 24;\n\n this.drawInnerIcon({\n src: this.state.icon,\n xPos: PADDING,\n yPos: PADDING,\n w,\n h: w,\n });\n\n const yPos = PADDING + 4;\n const xPos = PADDING + w + 2;\n\n this.drawInnerText({\n yPos,\n xPos,\n text: this.state.name,\n fontSize: 'header',\n padding: PADDING,\n oneLine: true,\n });\n }\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport partition_ from 'lodash/partition';\n\nimport {ECameraScaleLevel, TAnchor, TBlock, TBlockId, TConnection} from '@gravity-ui/graph';\nimport {Flex} from '@gravity-ui/uikit';\nimport {SVGIconSvgrData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\n\nimport {\n FlowComputation,\n FlowComputationStreamType,\n FlowSink,\n FlowStream,\n} from '../../../../../../shared/yt-types';\n\nimport ClockIcon from '@gravity-ui/icons/svgs/clock.svg';\nimport FileCodeIcon from '@gravity-ui/icons/svgs/file-code.svg';\nimport ReceiptIcon from '@gravity-ui/icons/svgs/receipt.svg';\n\nimport Yson from '../../../../../components/Yson/Yson';\nimport {\n YTGraph,\n YTGraphBlock,\n YTGraphData,\n useConfig,\n useElkLayout,\n useGraphScale,\n} from '../../../../../components/YTGraph';\nimport Loader from '../../../../../components/Loader/Loader';\nimport {NoContent} from '../../../../../components/NoContent/NoContent';\nimport {YTErrorBlock} from '../../../../../components/Error/Error';\n\nimport {getCluster} from '../../../../../store/selectors/global/cluster';\n\nimport {useFlowExecuteQuery} from '../../../../../store/api/yt';\n\nimport {Computation} from './renderers/Computation';\nimport {Stream} from './renderers/Stream';\nimport {ComputationCanvasBlock} from './renderers/ComputationCanvas';\nimport {StreamCanvasBlock} from './renderers/StreamCanvas';\n\nimport './FlowGraph.scss';\nimport {FlowGroupBlock} from './utils/FlowGroupBlock';\nimport {ComputationGroupCanvasBlock} from './renderers/ComputationGroupCanvas';\nimport {Sink} from './renderers/Sink';\nimport {FlowMessages, STATUS_TO_BG_THEME} from './renderers/FlowGraphRenderer';\nimport {SinkCanvasBlock} from './renderers/SinkCanvas';\n\nconst block = cn('yt-flow-graph');\n\nexport function FlowGraph({yson, pipeline_path}: {pipeline_path: string; yson: boolean}) {\n const {error, data, isLoading} = useFlowGraphLoadedData({pipeline_path});\n\n if (isLoading) {\n return <Loader visible centered />;\n }\n\n if (error) {\n return <YTErrorBlock error={error} />;\n }\n\n return (\n <div className={block()}>\n {yson ? (\n <Yson value={data} folding virtualized />\n ) : (\n <FlowGraphImpl pipeline_path={pipeline_path} />\n )}\n </div>\n );\n}\n\nexport type FlowGraphBlock =\n | (YTGraphBlock<'computation-group', FlowComputation> & {stream_type?: never})\n | (YTGraphBlock<'computation', FlowComputation> & {stream_type?: never})\n | (YTGraphBlock<'stream', FlowStream> & {\n icon?: SVGIconSvgrData;\n stream_type?: FlowComputationStreamType;\n })\n | (YTGraphBlock<'sink', FlowSink> & {icon?: SVGIconSvgrData; stream_type?: never});\n\nexport type FlowGraphBlockItem<T extends FlowGraphBlock['is']> = FlowGraphBlock & {is: T};\n\nexport function FlowGraphImpl({pipeline_path}: {pipeline_path: string}) {\n const {scale, setScale} = useGraphScale();\n const useGroups = scale === ECameraScaleLevel.Minimalistic;\n\n const config = useConfig<FlowGraphBlock>(\n {\n computation: ComputationCanvasBlock,\n stream: StreamCanvasBlock,\n 'computation-group': ComputationGroupCanvasBlock,\n sink: SinkCanvasBlock,\n },\n {useDefaultConnection: !useGroups},\n );\n\n const {isEmpty, isLoading, data, groups, groupBlocks, messages} = useFlowGraphData({\n pipeline_path,\n });\n\n if (isLoading) {\n return <Loader visible centered />;\n }\n\n if (isEmpty) {\n return <NoContent warning=\"The graph is empty\" />;\n }\n\n return (\n <div className={block()}>\n <div className={block('graph-messages')}>\n <FlowMessages data={messages} />\n </div>\n <YTGraph\n className={block('graph')}\n setScale={setScale}\n {...config}\n data={useGroups ? groups : data}\n renderBlock={({className, style, data}) => {\n return (\n <Flex className={block('item-container', className)} style={style}>\n {renderContent({item: data})}\n </Flex>\n );\n }}\n renderPopup={({data}) => {\n return (\n <div className={block('item-popup', {type: data.is})}>\n {renderContent({item: data, detailed: true})}\n </div>\n );\n }}\n customGroups={groupBlocks}\n />\n </div>\n );\n}\n\nfunction renderContent({item, ...rest}: {item: FlowGraphBlock; detailed?: boolean}) {\n switch (item.is) {\n case 'computation':\n return <Computation className={block('item')} item={item} {...rest} />;\n case 'stream':\n return <Stream className={block('item')} item={item} {...rest} />;\n case 'computation-group':\n return <Computation className={block('item')} item={item} {...rest} />;\n case 'sink':\n return <Sink className={block('item')} item={item} {...rest} />;\n }\n}\n\nconst ICON_BY_TYPE: Record<\n FlowComputationStreamType,\n Pick<FlowGraphBlockItem<'stream'>, 'icon'>\n> = {\n input_streams: {icon: FileCodeIcon},\n output_streams: {icon: FileCodeIcon},\n source_streams: {icon: FileCodeIcon},\n timer_streams: {icon: ClockIcon},\n};\n\nconst COMPUTATION_SIZE = {width: 320, height: 130};\nconst STREAM_SIZE = {width: 240, height: 100};\nconst SINK_SIZE = {width: 200, height: 80};\n\nfunction useFlowGraphLoadedData({pipeline_path}: {pipeline_path: string}) {\n const cluster = useSelector(getCluster);\n return useFlowExecuteQuery({\n cluster,\n parameters: {pipeline_path, flow_command: 'describe-pipeline'},\n });\n}\n\nfunction useFlowGraphData(params: {pipeline_path: string}) {\n const {data: loadedData} = useFlowGraphLoadedData(params);\n\n type FlowData = YTGraphData<FlowGraphBlock, TConnection>;\n\n const data: {data: FlowData; groups: FlowData; groupById: Map<string, FlowGroupBlock>} =\n React.useMemo(() => {\n const {computations = {}, streams = {}, sinks = {}, sources = {}} = loadedData ?? {};\n\n const res: typeof data = {\n data: {blocks: [], connections: []},\n groups: {blocks: [], connections: []},\n groupById: new Map<string, FlowGroupBlock>(),\n };\n\n const blockById: Map<TBlockId, FlowGraphBlock> = new Map();\n\n function addConnection<AnthorType extends string>(\n connections: FlowData['connections'],\n sourceBlockId: string,\n targetBlockId: string,\n {anchorType}: {anchorType?: AnthorType} = {},\n ) {\n const c: (typeof connections)[number] = {sourceBlockId, targetBlockId};\n connections.push(c);\n if (anchorType) {\n const src = blockById.get(sourceBlockId)!;\n const dst = blockById.get(targetBlockId)!;\n\n makeTimerAnchors(anchorType, src, dst, c);\n }\n }\n\n // Collect streams\n Object.values(streams).forEach((stream) => {\n const streamBlock = makeBlock('stream', stream, {\n name: stream.name,\n ...STREAM_SIZE,\n });\n\n blockById.set(streamBlock.id, streamBlock);\n res.data.blocks.push(streamBlock);\n });\n\n // Collect computations and their groups\n Object.entries(computations).forEach(([name, computation]) => {\n const groupId = `\\n\\n__group(${computation.id})__\\n\\n`;\n\n const groupBlock = new FlowGroupBlock({\n id: groupId,\n computation,\n streamSize: STREAM_SIZE,\n computationSize: COMPUTATION_SIZE,\n backgroundTheme: STATUS_TO_BG_THEME[computation.status],\n });\n\n res.groups.blocks.push(groupBlock);\n res.groupById.set(groupId, groupBlock);\n\n const computationBlock: (typeof res)['data']['blocks'][number] = makeBlock(\n 'computation',\n computation,\n {\n name,\n groupId,\n backgroundTheme: STATUS_TO_BG_THEME[computation.status],\n ...COMPUTATION_SIZE,\n },\n );\n blockById.set(computationBlock.id, computationBlock);\n res.data.blocks.push(computationBlock);\n\n function collectStreams<K extends FlowComputationStreamType>(\n key: K,\n options?: {groupId: string},\n ) {\n const streams = computation[key] ?? [];\n\n streams.forEach((id) => {\n if (key === 'input_streams' || key === 'source_streams') {\n addConnection(res.data.connections, id, computation.id);\n } else if (key === 'output_streams') {\n addConnection(res.data.connections, computation.id, id);\n } else if (key === 'timer_streams') {\n addConnection(res.data.connections, computation.id, id, {\n anchorType: key,\n });\n addConnection(res.data.connections, id, computation.id, {\n anchorType: key,\n });\n }\n\n if (options?.groupId) {\n Object.assign(blockById.get(id)!, {\n stream_type: key,\n ...options,\n ...ICON_BY_TYPE[key],\n });\n }\n });\n }\n\n collectStreams('input_streams');\n collectStreams('output_streams', {groupId});\n collectStreams('source_streams', {groupId});\n collectStreams('timer_streams', {groupId});\n });\n\n // Collect sinks\n Object.entries(sinks).forEach(([_key, item]) => {\n const sink = makeBlock('sink', item, {...SINK_SIZE, icon: ReceiptIcon});\n addConnection(res.data.connections, item.stream_id, item.id);\n blockById.set(sink.id, sink);\n\n res.data.blocks.push(sink);\n res.groups.blocks.push(sink);\n });\n\n // Collect sources\n Object.entries(sources).forEach(([_key, item]) => {\n const source = makeBlock('sink', item, {...SINK_SIZE, icon: FileCodeIcon});\n addConnection(res.data.connections, item.id, item.stream_id);\n blockById.set(item.id, source);\n\n res.data.blocks.push(source);\n res.groups.blocks.push(source);\n });\n\n // Transform connections to group connections\n const connectionIds = new Set<string>();\n res.data.connections.forEach((item) => {\n const {sourceBlockId, targetBlockId} = item;\n const src = blockById.get(sourceBlockId)!;\n const dst = blockById.get(targetBlockId)!;\n\n let source: string | undefined;\n let target: string | undefined;\n\n if (src.groupId && dst.groupId) {\n if (src.groupId !== dst.groupId) {\n source = src.groupId;\n target = dst.groupId;\n }\n } else if (src.groupId) {\n source = src.groupId;\n target = dst.id;\n } else if (dst.groupId) {\n source = src.id;\n target = dst.groupId;\n }\n\n if (source && target) {\n const id = `_${source}->${target}_`;\n if (!connectionIds.has(id)) {\n connectionIds.add(id);\n addConnection(res.groups.connections, source, target);\n }\n }\n });\n\n return res;\n }, [loadedData]);\n\n const elkRes = useElkLayout(data.groups);\n const res = React.useMemo(() => {\n const {blocks, connections} = elkRes.data;\n\n blocks.forEach(({id, x, y}) => {\n const group = data.groupById.get(id);\n if (group) {\n Object.assign(group, {x, y});\n }\n });\n\n const [_groups, other] = partition_(blocks, ({is}) => is === 'computation-group');\n\n return {\n data: {\n blocks: [\n ...data.data.blocks.map((item) => {\n const group = data.groupById.get(item.groupId!);\n if (!group) {\n return item;\n }\n\n if (item.is === 'computation') {\n return group.updateBlockPosition('computation', item);\n }\n\n if (item.stream_type) {\n return group.updateBlockPosition(item.stream_type, item);\n }\n return item;\n }),\n ...other,\n ],\n connections: data.data.connections,\n },\n groups: {\n blocks,\n connections,\n },\n groupBlocks: blocks.filter(({is}) => is === 'computation-group'),\n };\n }, [elkRes.isLoading, elkRes.data, data]);\n\n return {\n isEmpty: !data.data.blocks.length,\n ...elkRes,\n ...res,\n messages: loadedData?.messages,\n };\n}\n\nfunction makeBlock<\n T extends FlowGraphBlock['is'],\n D extends FlowGraphBlockItem<T>,\n O extends Partial<D>,\n>(type: T, item: D['meta'], options: O) {\n return {\n id: item.id,\n is: type,\n name: item.id,\n selected: false,\n anchors: [],\n ...options,\n meta: item,\n // the values should be overriden by layout process\n x: 0,\n y: 0,\n };\n}\n\nfunction makeTimerAnchors<T extends string>(type: T, src: TBlock, dst: TBlock, c: TConnection) {\n const srcAnchor: TAnchor = {\n id: `anchor:out:${src.id as string}:${dst.id as string}:`,\n blockId: src.id,\n type,\n };\n const dstAnchor: TAnchor = {\n id: `anchor:in:${src.id as string}:${dst.id as string}:`,\n blockId: dst.id,\n type,\n };\n\n src.anchors.push({...srcAnchor, index: src.anchors.length});\n dst.anchors.push({...dstAnchor, index: dst.anchors.length});\n\n c.targetAnchorId = dstAnchor.id;\n c.sourceAnchorId = srcAnchor.id;\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Button, Flex, Link, RadioButton, Text} from '@gravity-ui/uikit';\n\nimport {YTAlertBlock} from '../../../../components/Alert/Alert';\nimport ClipboardButton from '../../../../components/ClipboardButton/ClipboardButton';\nimport format from '../../../../common/hammer/format';\nimport Icon from '../../../../components/Icon/Icon';\nimport MetaTable from '../../../../components/MetaTable/MetaTable';\nimport StatusLabel from '../../../../components/StatusLabel/StatusLabel';\nimport {useUpdater} from '../../../../hooks/use-updater';\nimport {useThunkDispatch} from '../../../../store/thunkDispatch';\nimport {loadFlowStatus, updateFlowState} from '../../../../store/actions/flow/status';\nimport {getFlowViewMode} from '../../../../store/selectors/flow/filters';\nimport {getFlowStatusData} from '../../../../store/selectors/flow/status';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getAttributes, getPath} from '../../../../store/selectors/navigation';\nimport {\n FLOW_VIEW_MODES,\n FlowViewMode,\n setFlowViewMode,\n} from '../../../../store/reducers/flow/filters';\nimport UIFactory from '../../../../UIFactory';\nimport {formatByParams} from '../../../../utils/format';\n\nimport {FlowLayout} from './FlowLayout/FlowLayout';\nimport {FlowDynamicSpec, FlowStaticSpec} from './PipelineSpec/PipelineSpec';\nimport './Flow.scss';\nimport {FlowGraph} from './FlowGraph/FlowGraph';\n\nconst block = cn('yt-navigation-flow');\n\nfunction useViewModeOptions() {\n const res = React.useMemo(() => {\n const {urlTemplate, component} = UIFactory.getMonitoringComponentForNavigationFlow() ?? {};\n const options =\n component || urlTemplate\n ? FLOW_VIEW_MODES\n : FLOW_VIEW_MODES.filter((item) => item !== 'monitoring');\n\n return options.map((value) => {\n return {value, content: format.ReadableField(value)};\n });\n }, []);\n return res;\n}\n\nexport function Flow() {\n const dispatch = useDispatch();\n const viewMode = useSelector(getFlowViewMode);\n\n const options = useViewModeOptions();\n\n return (\n <div className={block()}>\n <FlowState />\n <Flex className={block('toolbar')}>\n <RadioButton<FlowViewMode>\n options={options}\n value={viewMode}\n onUpdate={(value) => dispatch(setFlowViewMode(value))}\n />\n </Flex>\n <div className={block('content', {view: viewMode})}>\n <FlowContent viewMode={viewMode} />\n </div>\n </div>\n );\n}\n\nfunction FlowContent({viewMode}: {viewMode: FlowViewMode}) {\n const path = useSelector(getPath);\n\n if (!path) {\n return null;\n }\n\n switch (viewMode) {\n case 'static_spec':\n return <FlowStaticSpec pipeline_path={path} />;\n case 'dynamic_spec':\n return <FlowDynamicSpec pipeline_path={path} />;\n case 'monitoring':\n return <FlowMonitoring />;\n case 'workers':\n case 'computations':\n return <FlowLayout path={path} viewMode={viewMode} />;\n case 'graph':\n case 'graph_data':\n return <FlowGraph pipeline_path={path} yson={viewMode === 'graph_data'} />;\n\n default:\n return (\n <YTAlertBlock\n header=\"Unexpected behaviour\"\n error={new Error(`'${viewMode}' view mode is not implemented`)}\n />\n );\n }\n}\n\nfunction FlowStatusToolbar() {\n const dispatch = useThunkDispatch();\n\n const pipeline_path = useSelector(getPath);\n\n const updateFn = React.useCallback(() => {\n return dispatch(loadFlowStatus(pipeline_path));\n }, [pipeline_path, dispatch]);\n\n useUpdater(updateFn);\n\n const {onStart, onStop, onPause} = React.useMemo(() => {\n return {\n onStart: () => dispatch(updateFlowState({pipeline_path, state: 'start'})),\n onStop: () => dispatch(updateFlowState({pipeline_path, state: 'stop'})),\n onPause: () => dispatch(updateFlowState({pipeline_path, state: 'pause'})),\n };\n }, [dispatch, pipeline_path]);\n\n return (\n <Flex className={block('status-toolbar')} alignItems=\"center\" gap={2}>\n <Button view=\"outlined\" onClick={onStart}>\n <Icon awesome=\"play-circle\" /> Start\n </Button>\n <Button view=\"outlined\" onClick={onPause}>\n <Icon awesome=\"pause-circle\" /> Pause\n </Button>\n <Button view=\"outlined\" onClick={onStop}>\n <Icon awesome=\"stop-circle\" /> Stop\n </Button>\n </Flex>\n );\n}\n\nfunction FlowState() {\n const value = useSelector(getFlowStatusData);\n const {leader_controller_address} = useSelector(getAttributes);\n return (\n <React.Fragment>\n <Flex className={block('state')} alignItems=\"center\" gap={2}>\n <Text variant=\"header-1\">Processing catalog </Text>\n <FlowStatusToolbar />\n </Flex>\n <MetaTable\n items={[\n [{key: 'status', value: <StatusLabel label={value} />}],\n [\n {\n key: 'leader_controller_address',\n value: (\n <>\n {leader_controller_address}\n <ClipboardButton\n view=\"flat-secondary\"\n text={leader_controller_address}\n inlineMargins\n />\n </>\n ),\n className: block('meta-item'),\n },\n ],\n ]}\n />\n </React.Fragment>\n );\n}\n\nfunction FlowMonitoring() {\n const {\n component: Component,\n title,\n urlTemplate,\n } = UIFactory.getMonitoringComponentForNavigationFlow() ?? {};\n const attributes = useSelector(getAttributes);\n const {monitoring_cluster, monitoring_project} = attributes;\n const cluster = useSelector(getCluster);\n\n if (Component) {\n return (\n <Component\n cluster={cluster}\n monitoring_cluster={monitoring_cluster}\n monitoring_project={monitoring_project}\n attributes={attributes}\n />\n );\n } else if (urlTemplate) {\n return (\n <Link\n target=\"_blank\"\n href={formatByParams(urlTemplate, {\n ytCluster: cluster,\n monitoring_cluster,\n monitoring_project,\n })}\n >\n {title || 'Monitoring'}\n </Link>\n );\n } else {\n return null;\n }\n}\n","const SvgChevronRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronRight;","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d<x;){for(i(n,d,x),d++,x--;h(n[d],p)<0;)d++;for(;h(n[x],p)>0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return t<i?-1:t>i?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r<i.length;r++)if(n(t,i[r]))return r;return-1}function a(t,i){h(t,0,t.children.length,i,t)}function h(t,i,n,r,e){e||(e=p(null)),e.minX=1/0,e.minY=1/0,e.maxX=-1/0,e.maxY=-1/0;for(var a=i;a<n;a++){var h=t.children[a];o(e,t.leaf?r(h):h)}return e}function o(t,i){return t.minX=Math.min(t.minX,i.minX),t.minY=Math.min(t.minY,i.minY),t.maxX=Math.max(t.maxX,i.maxX),t.maxY=Math.max(t.maxY,i.maxY),t}function s(t,i){return t.minX-i.minX}function l(t,i){return t.minY-i.minY}function f(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function u(t){return t.maxX-t.minX+(t.maxY-t.minY)}function m(t,i){return t.minX<=i.minX&&t.minY<=i.minY&&i.maxX<=t.maxX&&i.maxY<=t.maxY}function c(t,i){return i.minX<=t.maxX&&i.minY<=t.maxY&&i.maxX>=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a<i.children.length;a++){var h=i.children[a],o=i.leaf?r(h):h;c(t,o)&&(i.leaf?n.push(h):m(t,o)?this._all(h,n):e.push(h))}i=e.pop()}return n},r.prototype.collides=function(t){var i=this.data;if(!c(t,i))return!1;for(var n=[];i;){for(var r=0;r<i.children.length;r++){var e=i.children[r],a=i.leaf?this.toBBox(e):e;if(c(t,a)){if(i.leaf||m(t,a))return!0;n.push(e)}}i=n.pop()}return!1},r.prototype.load=function(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(var i=0;i<t.length;i++)this.insert(t[i]);return this}var n=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},r.prototype.insert=function(t){return t&&this._insert(t,this.data.height-1),this},r.prototype.clear=function(){return this.data=p([]),this},r.prototype.remove=function(t,i){if(!t)return this;for(var n,r,a,h=this.data,o=this.toBBox(t),s=[],l=[];h||s.length;){if(h||(h=s.pop(),r=s[s.length-1],n=l.pop(),a=!0),h.leaf){var f=e(t,h.children,i);if(-1!==f)return h.children.splice(f,1),s.push(h),this._condense(s),this}a||h.leaf||!m(h,o)?r?(n++,h=r.children[n],a=!1):h=null:(s.push(h),l.push(n),n=0,r=h,h=h.children[0])}return this},r.prototype.toBBox=function(t){return t},r.prototype.compareMinX=function(t,i){return t.minX-i.minX},r.prototype.compareMinY=function(t,i){return t.minY-i.minY},r.prototype.toJSON=function(){return this.data},r.prototype.fromJSON=function(t){return this.data=t,this},r.prototype._all=function(t,i){for(var n=[];t;)t.leaf?i.push.apply(i,t.children):n.push.apply(n,t.children),t=n.pop();return i},r.prototype._build=function(t,i,n,r){var e,h=n-i+1,o=this._maxEntries;if(h<=o)return a(e=p(t.slice(i,n+1)),this.toBBox),e;r||(r=Math.ceil(Math.log(h)/Math.log(o)),o=Math.ceil(h/Math.pow(o,r-1))),(e=p([])).leaf=!1,e.height=r;var s=Math.ceil(h/o),l=s*Math.ceil(Math.sqrt(o));d(t,i,n,l,this.compareMinX);for(var f=i;f<=n;f+=l){var u=Math.min(f+l-1,n);d(t,f,u,s,this.compareMinY);for(var m=f;m<=u;m+=s){var c=Math.min(m+s-1,u);e.children.push(this._build(t,m,c,r-1))}}return a(e,this.toBBox),e},r.prototype._chooseSubtree=function(t,i,n,r){for(;r.push(i),!i.leaf&&r.length-1!==n;){for(var e=1/0,a=1/0,h=void 0,o=0;o<i.children.length;o++){var s=i.children[o],l=f(s),u=(m=t,c=s,(Math.max(c.maxX,m.maxX)-Math.min(c.minX,m.minX))*(Math.max(c.maxY,m.maxY)-Math.min(c.minY,m.minY))-l);u<a?(a=u,e=l<e?l:e,h=s):u===a&&l<e&&(e=l,h=s)}i=h||i.children[0]}var m,c;return i},r.prototype._insert=function(t,i,n){var r=n?t:this.toBBox(t),e=[],a=this._chooseSubtree(r,this.data,i,e);for(a.children.push(t),o(a,r);i>=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v<m?(m=v,r=p,c=M<c?M:c):v===m&&M<c&&(c=M,r=p)}return r||n-i},r.prototype._chooseSplitAxis=function(t,i,n){var r=t.leaf?this.compareMinX:s,e=t.leaf?this.compareMinY:l;this._allDistMargin(t,i,n,r)<this._allDistMargin(t,i,n,e)&&t.children.sort(r)},r.prototype._allDistMargin=function(t,i,n,r){t.children.sort(r);for(var e=this.toBBox,a=h(t,0,i,e),s=h(t,n-i,n,e),l=u(a)+u(s),f=i;f<n-i;f++){var m=t.children[f];o(a,t.leaf?e(m):m),l+=u(a)}for(var c=n-i-1;c>=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport hammer from '../../common/hammer';\nimport Icon, {IconName} from '../Icon/Icon';\n\nimport {NavigationFlowState, StatusLabelState} from '../../types/common/states';\n\nimport './StatusLabel.scss';\n\nfunction getViewState(label?: StatusLabelProps['label']): ViewState {\n const states: Record<Exclude<typeof label, undefined>, ViewState> = {\n // preparing states\n materializing: 'preparing',\n initializing: 'preparing',\n preparing: 'preparing',\n pending: 'preparing',\n starting: 'preparing',\n\n // running states\n running: 'running',\n completing: 'running',\n failing: 'running',\n aborting: 'running',\n reviving: 'running',\n suspended: 'suspended',\n\n // final states\n failed: 'failed',\n completed: 'completed',\n aborted: 'aborted',\n\n // NavigationFlowState\n Unknown: 'unknown',\n Stopped: 'suspended',\n Paused: 'suspended',\n Working: 'running',\n Draining: 'running',\n Pausing: 'running',\n Completed: 'completed',\n };\n\n return states[label!] ?? 'unknown';\n}\n\nexport type ViewState =\n | 'preparing'\n | 'running'\n | 'failed'\n | 'aborted'\n | 'completed'\n | 'suspended'\n | 'unknown';\n\nfunction getIcon(state: ViewState) {\n const iconsByViewState: Record<ViewState, IconName> = {\n preparing: 'clock',\n running: 'play-circle',\n suspended: 'pause-circle',\n failed: 'times-circle',\n completed: 'check-circle',\n aborted: 'times-circle',\n unknown: 'question-circle',\n };\n return iconsByViewState[state];\n}\n\nconst b = block('status-label');\n\nexport type StatusLabelProps = {\n className?: string;\n label?: StatusLabelState | NavigationFlowState;\n renderPlaque?: boolean;\n text?: string;\n state?: ViewState;\n iconState?: ViewState;\n};\n\nexport default function StatusLabel({\n className,\n label,\n renderPlaque,\n text,\n state,\n iconState,\n}: StatusLabelProps) {\n const mappedState = getViewState(label);\n const icon = getIcon(iconState ?? mappedState);\n const mods = {state: state ?? mappedState};\n\n return !label && !(text || state) ? (\n <span />\n ) : (\n <span className={b(null, renderPlaque ? b('plaque', mods, className) : b(mods, className))}>\n <Icon awesome={icon} />\n <span>{text ?? hammer.format['ReadableField'](label)}</span>\n </span>\n );\n}\n","import {colord, extend} from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\nextend([namesPlugin]);\n\ntype Options<T extends boolean | undefined> = {\n container?: HTMLElement | null;\n} & AllowUndefined<T>;\n\ntype AllowUndefined<T> = T extends boolean ? {allowUndefined: T} : {allowUndefined?: undefined};\n\ntype Result<R, T> = T extends {allowUndefined: true} ? R | undefined : R;\n\nexport function getCSSPropertyValue(name: string, element = document.body) {\n const styles = getComputedStyle(element);\n return styles.getPropertyValue(name);\n}\n\nexport function getHEXColor<O extends undefined | Options<boolean | undefined> = undefined>(\n color: string,\n options?: O,\n): Result<string, typeof options> {\n if (!color && options?.allowUndefined) {\n return undefined as any;\n }\n return colord(color).toHex() as any;\n}\n\nexport function getCssColor<O extends undefined | Options<boolean | undefined> = undefined>(\n name: string,\n options?: O,\n) {\n return getHEXColor(getCSSPropertyValue(name, document.body ?? options?.container), options);\n}\n","export default function(e,f){var a={white:\"#ffffff\",bisque:\"#ffe4c4\",blue:\"#0000ff\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",azure:\"#f0ffff\",whitesmoke:\"#f5f5f5\",papayawhip:\"#ffefd5\",plum:\"#dda0dd\",blanchedalmond:\"#ffebcd\",black:\"#000000\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",cornsilk:\"#fff8dc\",cornflowerblue:\"#6495ed\",burlywood:\"#deb887\",aquamarine:\"#7fffd4\",beige:\"#f5f5dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkkhaki:\"#bdb76b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",peachpuff:\"#ffdab9\",darkmagenta:\"#8b008b\",darkred:\"#8b0000\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkslateblue:\"#483d8b\",gray:\"#808080\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",wheat:\"#f5deb3\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",ghostwhite:\"#f8f8ff\",darkviolet:\"#9400d3\",magenta:\"#ff00ff\",green:\"#008000\",dodgerblue:\"#1e90ff\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",blueviolet:\"#8a2be2\",forestgreen:\"#228b22\",lawngreen:\"#7cfc00\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",fuchsia:\"#ff00ff\",brown:\"#a52a2a\",maroon:\"#800000\",mediumblue:\"#0000cd\",lightcoral:\"#f08080\",darkturquoise:\"#00ced1\",lightcyan:\"#e0ffff\",ivory:\"#fffff0\",lightyellow:\"#ffffe0\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",linen:\"#faf0e6\",mediumaquamarine:\"#66cdaa\",lemonchiffon:\"#fffacd\",lime:\"#00ff00\",khaki:\"#f0e68c\",mediumseagreen:\"#3cb371\",limegreen:\"#32cd32\",mediumspringgreen:\"#00fa9a\",lightskyblue:\"#87cefa\",lightblue:\"#add8e6\",midnightblue:\"#191970\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",mintcream:\"#f5fffa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",navajowhite:\"#ffdead\",navy:\"#000080\",mediumvioletred:\"#c71585\",powderblue:\"#b0e0e6\",palegoldenrod:\"#eee8aa\",oldlace:\"#fdf5e6\",paleturquoise:\"#afeeee\",mediumturquoise:\"#48d1cc\",mediumorchid:\"#ba55d3\",rebeccapurple:\"#663399\",lightsteelblue:\"#b0c4de\",mediumslateblue:\"#7b68ee\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",orchid:\"#da70d6\",mediumpurple:\"#9370db\",purple:\"#800080\",pink:\"#ffc0cb\",skyblue:\"#87ceeb\",springgreen:\"#00ff7f\",palegreen:\"#98fb98\",red:\"#ff0000\",yellow:\"#ffff00\",slateblue:\"#6a5acd\",lavenderblush:\"#fff0f5\",peru:\"#cd853f\",palevioletred:\"#db7093\",violet:\"#ee82ee\",teal:\"#008080\",slategray:\"#708090\",slategrey:\"#708090\",aliceblue:\"#f0f8ff\",darkseagreen:\"#8fbc8f\",darkolivegreen:\"#556b2f\",greenyellow:\"#adff2f\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",tomato:\"#ff6347\",silver:\"#c0c0c0\",sienna:\"#a0522d\",lavender:\"#e6e6fa\",lightgreen:\"#90ee90\",orange:\"#ffa500\",orangered:\"#ff4500\",steelblue:\"#4682b4\",royalblue:\"#4169e1\",turquoise:\"#40e0d0\",yellowgreen:\"#9acd32\",salmon:\"#fa8072\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",darksalmon:\"#e9967a\",lightgoldenrodyellow:\"#fafad2\",snow:\"#fffafa\",lightgrey:\"#d3d3d3\",lightgray:\"#d3d3d3\",dimgray:\"#696969\",dimgrey:\"#696969\",olivedrab:\"#6b8e23\",olive:\"#808000\"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return\"transparent\";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b=\"black\";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d=\"transparent\"===r?\"#0000\":a[r];return d?new e(d).toRgb():null},\"name\"])}\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","block","cn","ExpandButton","_ref","className","expanded","inline","toggleExpanded","all","showText","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","title","onClick","Icon","data","doubleShevronRightSvg","shevronRightSvg","size","_get","Reflect","get","bind","e","t","r","p","o","hasOwnProperty","call","getPrototypeOf","n","Object","getOwnPropertyDescriptor","arguments","length","value","apply","_superPropGet","prototype","grad","turn","rad","Math","PI","pow","round","u","isFinite","a","g","b","i","s","toString","h","max","min","v","floor","l","f","c","m","y","string","exec","parseInt","substr","Number","object","N","M","H","$","j","this","parsed","trim","x","rgba","isValid","brightness","isDark","isLight","toHex","toRgb","toRgbString","toHsl","toHslString","toHsv","invert","w","saturate","desaturate","grayscale","lighten","darken","rotate","hue","alpha","isEqual","S","k","forEach","indexOf","push","getFlowStatusData","state","flow","status","getFlowStatusPipelinePath","pipeline_path","cancelHelper","CancelHelper","loadFlowStatus","dispatch","flowStatusActions","onRequest","ytApiV4","getPipelineState","parameters","cancellation","removeAllAndSave","then","onSuccess","error","isCancelled","onError","updateFlowState","getState","method","concat","getFlowViewMode","filters","flowViewMode","getFlowLayoutPipelinePath","layout","getFlowLayoutError","getFlowLayoutData","createSelector","expandedComputations","expandedWorkers","mode","handleExpandedNames","_data$execution_spec$","_data$execution_spec","execution_spec","_ref$jobs","jobs","partitions","map_","item","_ref3","_ref4","job","current_job_id","worker_address","worker","workers","name","computation_id","partition","getFlowLayoutPartitions","_data$execution_spec$2","_data$execution_spec2","_ref5","res","visitedWorkers","Set","forEach_","partition_id","add","address","has","getFlowLayoutWorkers","rows","expandedNames","keys","groups","groupsByName","Map","_$value","rest","_objectWithoutProperties","_excluded","dst","$attributes","job_count","worker_count","partition_count","$value","set","_i","_groups","FlowLayout","path","viewMode","useDispatch","useSelector","getData","React","samePath","columns","type","isComputations","render","_ref2","content","row","_row$$attributes","_Fragment","hidden","flowLayoutActions","onExpandComputation","expandFlowLayoutComputation","onExpandWorker","expandFlowLayoutWorker","requestAnimationFrame","window","dispatchEvent","Event","ClipboardButton","text","inlineMargins","visibleOnRowHover","_row$partition","_row$partition2","level","_row$partition3","format","width","_row$partition4","_row$partition5","_row$job","_row$job2","_ref6","_row$partition6","header","_ref7","ClickableAttributesButton","attributes","withTooltip","useFlowLayoutColumn","updateFn","getFlowView","annotate_with_types","loadFlowLayout","useUpdater","Boolean","YTErrorBlock","DataTableYT","settings","DATA_TABLE_YT_SETTINGS","useThemeYT","getFlowStaticSpecData","staticSpec","getFlowStaticSpecPath","getFlowStaticSpecError","getFlowStaticSpecFirstLoading","_state$flow$staticSpe","loading","loaded","getFlowDynamicSpecData","dynamicSpec","getFlowDynamicSpecPath","getFlowDynamicSpecFirstLoading","_state$flow$dynamicSp","loadFlowStaticSpec","staticSpecActions","getPipelineSpec","loadFlowDynamicSpec","dynamicSpecActions","getPipelineDynamicSpec","PipelineSpec","onSave","_React$useState","_React$useState2","_slicedToArray","showEdit","setShowEdit","getFlowSpecYsonSettings","Yson","virtualized","folding","extraTools","YsonDownloadButton","pathToFileName","awesome","EditSpecDialog","visible","onSpecApply","spec","onClose","_React$useState3","_React$useState4","setError","JSON","stringify","YTDFDialog","initialValues","headerProps","onAdd","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","undefined","values","parse","abrupt","sent","t0","Promise","reject","resolve","stop","_x","fields","caption","fullWidth","extras","initialShowPreview","unipikaSettings","_toConsumableArray","makeErrorFields","FlowStaticSpec","useThunkDispatch","firstLoading","onEdit","newData","setPipelineSpec","expected_version","version","updateFlowStaticSpec","Loader","FlowDynamicSpec","setPipelineDynamicSpec","pipline_path","updateFlowDynamicSpec","STATUS_TO_BG_THEME","warning","alert","fatal","maximum","FlowIcon","Flex","shrink","FlowCaption2","Text","variant","style","lineHeight","ellipsis","FlowCaption1","color","FlowMessages","setVisible","reduce","acc","theme","ClickableText","FlowMessagesDialog","Dialog","open","Header","Body","map","index","FlowMessageItem","yson","FlowMessageItemExpandable","errorType","_ref8","setExpanded","toggleExpand","gap","alignItems","cursor","NO_VALUE","FlowMeta","items","label","grow","direction","overflow","Computation","_item$meta$metrics","_item$meta","_item$meta2","_item$meta3","_item$meta4","detailed","meta","metrics","cpu_usage_current","memory_usage_current","group_by_schema_str","digits","Bytes","epoch_per_second","ComputaionProgress","stats","partitions_stats","ComputationDetails","messages","STATE_TO_THEME","completed","transient","executing","interrupted","_ref4$count","count","NaN","count_by_state","_React$useMemo","history","stack","_count_by_state$key","_STATE_TO_THEME$key","key","addProgressStackSpacers","Progress","paddingTop","ComputationProgressHistory","justifyContent","ComputationProgressHistoryItem","_STATE_TO_THEME$type","_item$meta$metrics2","_item$meta5","_ref9","MetaTable","entries","_ref0","_ref1","fmt","startsWith","Stream","paddingBottom","icon","whiteSpace","messages_per_second","bytes_per_second","inflight_rows","inflight_bytes","ComputationCanvasBlock","_YTGraphCanvasBlock","_this","_classCallCheck","_len","args","Array","_key","_callSuper","PADDING","renderAnchor","NoopComponent","create","_inherits","_createClass","drawBorder","backgroundTheme","drawCenteredIcon","src","CpuIcon","renderHeader","renderMeta","_this$state$meta$part","_ref$count_by_state","textWidth","drawInnerText","yPos","xPos","fontSize","getComputationFontSize","padding","counts","String","join","align","_this$state","height","_this$state$meta$metr","maxWidth","drawMetaItem","_ref2$index","_this$state$anchors$l","anchors","_this$getGeometry","getGeometry","YTGraphCanvasBlock","StreamCanvasBlock","drawInnerIcon","oneLine","_ref$index","FlowGroupBlock","id","computation","streamSize","computationSize","is","selected","sizes","stream","assign","recalcSize","_source_streams$lengt","_timer_streams$length","_output_streams$lengt","_this$sizes","_this$meta","source_streams","timer_streams","output_streams","extraHeight","extraWidth","groupId","rumLogError","additional","Error","_this$sizes$stream","_this$meta$t","_defineProperty","_this$sizes2","byIndex","_this$meta$source_str","hasSources","_this$meta$source_str2","_this$meta$source_str3","ComputationGroupCanvasBlock","_ComputationCanvasBlo","Sink","description","SinkCanvasBlock","FlowGraph","_useFlowGraphLoadedDa","useFlowGraphLoadedData","isLoading","centered","FlowGraphImpl","_useGraphScale","useGraphScale","scale","setScale","useGroups","ECameraScaleLevel","Minimalistic","config","useConfig","sink","useDefaultConnection","_useFlowGraphData","params","loadedData","_ref7$computations","computations","_ref7$streams","streams","_ref7$sinks","sinks","_ref7$sources","sources","blocks","connections","groupById","blockById","addConnection","sourceBlockId","targetBlockId","anchorType","srcAnchor","blockId","dstAnchor","targetAnchorId","sourceAnchorId","makeTimerAnchors","streamBlock","makeBlock","STREAM_SIZE","groupBlock","COMPUTATION_SIZE","computationBlock","collectStreams","options","_computation$key","stream_type","ICON_BY_TYPE","_ref10","SINK_SIZE","ReceiptIcon","stream_id","_ref11","_ref12","source","FileCodeIcon","connectionIds","target","elkRes","useElkLayout","_elkRes$data","_ref13","group","_partition_","partition_","_ref14","_partition_2","other","updateBlockPosition","groupBlocks","filter","_ref15","isEmpty","useFlowGraphData","NoContent","YTGraph","renderBlock","renderContent","renderPopup","customGroups","input_streams","cluster","getCluster","useFlowExecuteQuery","flow_command","Flow","_UIFactory$getMonitor","UIFactory","getMonitoringComponentForNavigationFlow","urlTemplate","component","FLOW_VIEW_MODES","ReadableField","FlowState","RadioButton","onUpdate","setFlowViewMode","FlowContent","getPath","FlowMonitoring","YTAlertBlock","FlowStatusToolbar","onStart","onStop","onPause","leader_controller_address","getAttributes","StatusLabel","_UIFactory$getMonitor2","Component","monitoring_cluster","monitoring_project","Link","href","formatByParams","ytCluster","module","exports","log","exp","sqrt","_maxEntries","_minEntries","ceil","clear","minX","minY","maxX","maxY","leaf","pop","_all","search","toBBox","collides","load","insert","_build","slice","_splitRoot","_insert","remove","splice","_condense","compareMinX","compareMinY","toJSON","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","sort","renderPlaque","iconState","mappedState","_states","materializing","initializing","preparing","pending","starting","running","completing","failing","aborting","reviving","suspended","failed","aborted","Unknown","Stopped","Paused","Working","Draining","Pausing","Completed","getViewState","unknown","getIcon","mods","hammer","getCSSPropertyValue","element","document","body","getComputedStyle","getPropertyValue","getCssColor","_document$body","allowUndefined","colord","getHEXColor","container","extend","white","bisque","blue","cadetblue","chartreuse","chocolate","coral","antiquewhite","aqua","azure","whitesmoke","papayawhip","plum","blanchedalmond","black","gold","goldenrod","gainsboro","cornsilk","cornflowerblue","burlywood","aquamarine","beige","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkkhaki","darkgray","darkgreen","darkgrey","peachpuff","darkmagenta","darkred","darkorchid","darkorange","darkslateblue","gray","darkslategray","darkslategrey","deeppink","deepskyblue","wheat","firebrick","floralwhite","ghostwhite","darkviolet","magenta","green","dodgerblue","grey","honeydew","hotpink","blueviolet","forestgreen","lawngreen","indianred","indigo","fuchsia","brown","maroon","mediumblue","lightcoral","darkturquoise","lightcyan","ivory","lightyellow","lightsalmon","lightseagreen","linen","mediumaquamarine","lemonchiffon","lime","khaki","mediumseagreen","limegreen","mediumspringgreen","lightskyblue","lightblue","midnightblue","lightpink","mistyrose","moccasin","mintcream","lightslategray","lightslategrey","navajowhite","navy","mediumvioletred","powderblue","palegoldenrod","oldlace","paleturquoise","mediumturquoise","mediumorchid","rebeccapurple","lightsteelblue","mediumslateblue","thistle","tan","orchid","mediumpurple","purple","pink","skyblue","springgreen","palegreen","red","yellow","slateblue","lavenderblush","peru","palevioletred","violet","teal","slategray","slategrey","aliceblue","darkseagreen","darkolivegreen","greenyellow","seagreen","seashell","tomato","silver","sienna","lavender","lightgreen","orange","orangered","steelblue","royalblue","turquoise","yellowgreen","salmon","saddlebrown","sandybrown","rosybrown","darksalmon","lightgoldenrodyellow","snow","lightgrey","lightgray","dimgray","dimgrey","olivedrab","olive","toName","closest","toLowerCase"],"sourceRoot":""}
1
+ {"version":3,"file":"js/navigation-flow.1d83e216.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevrons-right.svg","webpack://@ytsaurus/ui/./src/ui/components/ExpandButton/ExpandButton.tsx","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://@ytsaurus/ui/./node_modules/@babel/runtime/helpers/esm/superPropGet.js","webpack://@ytsaurus/ui/./node_modules/colord/index.mjs","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/status.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/status.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/filters.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/layout.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/layout.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowLayout/FlowLayout.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/flow/specs.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/flow/specs.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/PipelineSpec/PipelineSpec.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/clock.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file-code.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/receipt.svg","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/FlowGraphRenderer.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/FlowMeta.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Computation.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Stream.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/cpu.svg","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/ComputationCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/StreamCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/utils/FlowGroupBlock.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/ComputationGroupCanvas.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/Sink.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/renderers/SinkCanvas.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/FlowGraph/FlowGraph.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/Flow/Flow.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./node_modules/rbush/rbush.min.js","webpack://@ytsaurus/ui/./src/ui/components/StatusLabel/StatusLabel.tsx","webpack://@ytsaurus/ui/./src/ui/utils/get-css-color.ts","webpack://@ytsaurus/ui/./node_modules/colord/plugins/names.mjs"],"sourcesContent":["const SvgChevronsRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M3.47 10.97a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L6.44 8zm5 0a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L11.44 8z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronsRight;","import React, {FC} from 'react';\nimport {Button, ButtonProps, Icon} from '@gravity-ui/uikit';\nimport shevronRightSvg from '@gravity-ui/icons/svgs/chevron-right.svg';\nimport doubleShevronRightSvg from '@gravity-ui/icons/svgs/chevrons-right.svg';\nimport cn from 'bem-cn-lite';\nimport './ExpandButton.scss';\n\nconst block = cn('yt-expanded-button');\n\ntype Props = {\n className?: string;\n expanded: boolean;\n toggleExpanded: () => void;\n inline?: boolean;\n all?: boolean;\n showText?: boolean;\n qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n qa,\n}) => {\n const titleExpanded = all ? 'Collapse All' : 'Collapse';\n const titleCollapsed = all ? 'Expand All' : 'Expand';\n return (\n <Button\n className={block({inline}, className)}\n view=\"flat-secondary\"\n title={expanded ? titleExpanded : titleCollapsed}\n onClick={toggleExpanded}\n qa={qa}\n >\n {showText && (expanded ? titleExpanded : titleCollapsed) + ' '}\n <Icon\n className={block('expand', {expanded})}\n data={all ? doubleShevronRightSvg : shevronRightSvg}\n size={16}\n />\n </Button>\n );\n};\n","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import get from \"./get.js\";\nimport getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropGet(t, o, e, r) {\n var p = get(getPrototypeOf(1 & r ? t.prototype : t), o, e);\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(e, t);\n } : p;\n}\nexport { _superPropGet as default };","var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?\"0\"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,p=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s+([+-]?\\d*\\.?\\d+)%\\s+([+-]?\\d*\\.?\\d+)%\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,v=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,m=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},\"hex\"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},\"rgb\"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u=\"deg\"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},\"hsl\"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},\"rgb\"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},\"hsl\"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},\"hsv\"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return\"string\"==typeof r?N(r.trim(),y.string):\"object\"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):\"\",\"#\"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?\"rgba(\"+t+\", \"+n+\", \"+e+\", \"+u+\")\":\"rgb(\"+t+\", \"+n+\", \"+e+\")\";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?\"hsla(\"+t+\", \"+n+\"%, \"+e+\"%, \"+u+\")\":\"hsl(\"+t+\", \"+n+\"%, \"+e+\"%)\";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return\"number\"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return\"number\"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};export{j as Colord,w as colord,k as extend,I as getFormat,E as random};\n","import {RootState} from '../../reducers';\n\nexport const getFlowStatusData = (state: RootState) => state.flow.status.data;\nexport const getFlowStatusPipelinePath = (state: RootState) => state.flow.status.pipeline_path;\nexport const getFlowStatusError = (state: RootState) => state.flow.status.error;\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {getFlowStatusPipelinePath} from '../../../store/selectors/flow/status';\nimport {flowStatusActions} from '../../reducers/flow/status';\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function loadFlowStatus(pipeline_path: string): AsyncAction<Promise<void>> {\n return (dispatch) => {\n dispatch(flowStatusActions.onRequest({pipeline_path}));\n\n return ytApiV4\n .getPipelineState({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data) => {\n dispatch(flowStatusActions.onSuccess({data}));\n },\n (error) => {\n if (!isCancelled(error)) {\n dispatch(flowStatusActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowState({\n pipeline_path,\n state,\n}: {\n pipeline_path: string;\n state: 'start' | 'stop' | 'pause';\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n const method = `${state}Pipeline` as const;\n return ytApiV4[method]({pipeline_path}).then(() => {\n const path = getFlowStatusPipelinePath(getState());\n if (path === pipeline_path) {\n dispatch(loadFlowStatus(pipeline_path));\n }\n });\n };\n}\n","import {RootState} from '../../../store/reducers';\n\nexport const getFlowViewMode = (state: RootState) => state.flow.filters.flowViewMode;\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flowLayoutActions} from '../../../store/reducers/flow/layout';\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function loadFlowLayout(pipeline_path: string): AsyncAction<Promise<void>> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onRequest({pipeline_path}));\n\n return ytApiV4\n .getFlowView({\n parameters: {pipeline_path, ...{annotate_with_types: true}},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data) => {\n dispatch(flowLayoutActions.onSuccess({data}));\n },\n (error) => {\n if (!isCancelled(error)) {\n dispatch(flowLayoutActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function expandFlowLayoutComputation({\n computation_id,\n}: {\n computation_id: string;\n}): AsyncAction<void> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onExpandComputation({computation_id}));\n };\n}\n\nexport function expandFlowLayoutWorker({\n worker_address,\n}: {\n worker_address: string;\n}): AsyncAction<void> {\n return (dispatch) => {\n dispatch(flowLayoutActions.onExpandWorker({worker_address}));\n };\n}\n","import {createSelector} from 'reselect';\nimport map_ from 'lodash/map';\nimport forEach_ from 'lodash/forEach';\n\nimport {RootState} from '../../../store/reducers';\n\nexport const getFlowLayoutPipelinePath = (state: RootState) => state.flow.layout.pipeline_path;\nexport const getFlowLayoutError = (state: RootState) => state.flow.layout.error;\nconst getFlowLayoutExpandedComputations = (state: RootState) =>\n state.flow.layout.expandedComputations;\nconst getFlowLayoutExpandedWorkers = (state: RootState) => state.flow.layout.expandedWorkers;\n\nconst getFlowLayoutRawData = (state: RootState) => state.flow.layout.data;\n\ntype RowData = Pick<\n ReturnType<typeof getFlowLayoutPartitions>[number],\n 'job' | 'partition' | 'worker'\n>;\ntype LayoutExpandable = {\n $value: Array<Exclude<FlowLayoutDataItem, LayoutExpandable>>;\n $attributes: {\n name: string;\n expanded: boolean;\n job_count: number;\n worker_count: number;\n partition_count: number;\n };\n};\n\nexport type FlowLayoutDataItem = {[K in keyof RowData]: RowData[K] | null} | LayoutExpandable;\n\nexport const getFlowLayoutData = createSelector(\n [getFlowLayoutRawData, getFlowLayoutExpandedComputations, getFlowLayoutExpandedWorkers],\n (data, expandedComputations, expandedWorkers) => {\n return (mode: 'computations' | 'workers') => {\n return mode === 'computations'\n ? handleExpandedNames(getFlowLayoutPartitions(data), expandedComputations)\n : handleExpandedNames(getFlowLayoutWorkers(data), expandedWorkers);\n };\n },\n);\n\nfunction getFlowLayoutPartitions(data: ReturnType<typeof getFlowLayoutRawData>) {\n const {jobs = {}, partitions} = data?.execution_spec?.layout?.value ?? {};\n return map_(partitions, (item) => {\n const job = jobs[item.current_job_id!];\n const {worker_address} = job ?? {};\n const worker = data?.workers[worker_address];\n return {\n name: item.computation_id,\n partition: (item as typeof item | undefined) ?? null,\n job: (job as typeof job | undefined) ?? null,\n worker: worker ?? null,\n };\n });\n}\n\nfunction getFlowLayoutWorkers(data: ReturnType<typeof getFlowLayoutRawData>) {\n const {jobs, partitions} = data?.execution_spec?.layout?.value ?? {};\n\n const res: ReturnType<typeof getFlowLayoutPartitions> = [];\n const visitedWorkers = new Set<string>();\n\n forEach_(jobs, (job) => {\n const {worker_address, partition_id} = job;\n const partition = partitions?.[partition_id];\n const worker = data?.workers[worker_address];\n res.push({\n name: worker_address,\n partition: partition ?? null,\n job: job ?? null,\n worker: worker ?? null,\n });\n\n visitedWorkers.add(worker_address);\n });\n forEach_(data?.workers, (item) => {\n const {address} = item;\n if (!visitedWorkers.has(address)) {\n res.push({name: address, partition: null, job: null, worker: null});\n }\n });\n\n return res;\n}\n\nfunction handleExpandedNames(\n rows: Array<RowData & {name: string}>,\n expandedNames: Record<string, true>,\n) {\n const expanded = new Set(Object.keys(expandedNames));\n const groups: Array<LayoutExpandable> = [];\n const groupsByName = new Map<string, LayoutExpandable>();\n rows.forEach((item) => {\n const {name, ...rest} = item;\n let dst = groupsByName.get(name);\n if (!dst) {\n dst = {\n $attributes: {\n name: name,\n expanded: expanded.has(name),\n job_count: 0,\n worker_count: 0,\n partition_count: 0,\n },\n $value: [],\n };\n groupsByName.set(name, dst!);\n groups.push(dst!);\n }\n if (item.job) {\n ++dst!.$attributes.job_count;\n }\n if (item.worker) {\n ++dst!.$attributes.worker_count;\n }\n if (item.partition) {\n ++dst!.$attributes.partition_count;\n }\n dst!.$value?.push(rest);\n });\n\n if (!expanded.size) {\n return groups;\n }\n\n let res: Array<FlowLayoutDataItem> = [];\n for (const item of groups) {\n const {name} = item.$attributes;\n if (expanded.has(name)) {\n res = res.concat(item, item.$value);\n } else {\n res.push(item);\n }\n }\n\n return res;\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Column} from '@gravity-ui/react-data-table';\n\nimport format from '../../../../../common/hammer/format';\n\nimport ClickableAttributesButton from '../../../../../components/AttributesButton/ClickableAttributesButton';\nimport ClipboardButton from '../../../../../components/ClipboardButton/ClipboardButton';\nimport DataTableYT, {\n DATA_TABLE_YT_SETTINGS,\n} from '../../../../../components/DataTableYT/DataTableYT';\nimport {YTErrorBlock} from '../../../../../components/Error/Error';\nimport {ExpandButton} from '../../../../../components/ExpandButton';\n\nimport {useUpdater} from '../../../../../hooks/use-updater';\nimport {\n expandFlowLayoutComputation,\n expandFlowLayoutWorker,\n loadFlowLayout,\n} from '../../../../../store/actions/flow/layout';\nimport {\n FlowLayoutDataItem,\n getFlowLayoutData,\n getFlowLayoutError,\n getFlowLayoutPipelinePath,\n} from '../../../../../store/selectors/flow/layout';\n\nimport './FlowLayout.scss';\n\nconst block = cn('yt-navigation-flow-layout');\n\nexport function FlowLayout({path, viewMode}: {path: string; viewMode: 'computations' | 'workers'}) {\n const dispatch = useDispatch();\n\n const pipeline_path = useSelector(getFlowLayoutPipelinePath);\n const error = useSelector(getFlowLayoutError);\n const getData = useSelector(getFlowLayoutData);\n\n const data = React.useMemo(() => {\n return getData(viewMode);\n }, [viewMode, getData]);\n\n const samePath = path === pipeline_path;\n const columns = useFlowLayoutColumn(viewMode);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowLayout(path));\n }, [path, dispatch]);\n useUpdater(updateFn);\n\n if (!samePath) {\n return null;\n }\n\n return (\n <div className={block()}>\n {Boolean(error) && <YTErrorBlock error={error!} />}\n <DataTableYT\n settings={DATA_TABLE_YT_SETTINGS}\n columns={columns}\n data={data}\n useThemeYT\n />\n </div>\n );\n}\n\nfunction useFlowLayoutColumn(type: 'computations' | 'workers') {\n const dispatch = useDispatch();\n\n const res = React.useMemo(() => {\n const isComputations = type === 'computations';\n const columns: Array<Column<FlowLayoutDataItem>> = [\n {\n name: isComputations\n ? 'Computation / Partition Id'\n : 'Worker address / Partition Id',\n className: block('td-name'),\n render({row}) {\n let content;\n if ('$attributes' in row) {\n const {\n $attributes: {name, expanded},\n } = row;\n content = (\n <>\n <ExpandButton\n className={block('expand', {hidden: row.$value.length === 0})}\n expanded={expanded}\n toggleExpanded={() => {\n dispatch(\n isComputations\n ? expandFlowLayoutComputation({\n computation_id: name,\n })\n : expandFlowLayoutWorker({worker_address: name}),\n );\n requestAnimationFrame(() => {\n window.dispatchEvent(new Event('resize'));\n });\n }}\n />\n <span className={block('name-title')}>\n {name}{' '}\n <ClipboardButton\n view=\"flat-secondary\"\n text={name}\n inlineMargins\n visibleOnRowHover\n />\n </span>\n </>\n );\n } else {\n content = (\n <span className={block('name-title', {level: '1'})}>\n {row.partition?.partition_id}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.partition?.partition_id}\n inlineMargins\n visibleOnRowHover\n />\n </span>\n );\n }\n return <div className={block('name')}>{content}</div>;\n },\n },\n {\n name: 'Partition state',\n render({row}) {\n return 'partition' in row\n ? row.partition?.state\n : format.Number(row.$value.length);\n },\n width: 120,\n },\n {\n name: 'Job Id',\n render({row}) {\n return 'partition' in row ? (\n <>\n {row.partition?.current_job_id}{' '}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.partition?.current_job_id}\n inlineMargins\n visibleOnRowHover\n />\n </>\n ) : (\n format.Number(row.$attributes.job_count)\n );\n },\n width: 400,\n },\n isComputations\n ? {\n name: 'Worker address',\n render({row}) {\n return 'job' in row ? (\n <>\n {row.job?.worker_address}\n <ClipboardButton\n view=\"flat-secondary\"\n text={row.job?.worker_address}\n inlineMargins\n visibleOnRowHover\n />\n </>\n ) : (\n format.Number(row.$attributes.worker_count)\n );\n },\n width: 400,\n }\n : {\n name: 'Computation',\n render({row}) {\n return 'partition' in row\n ? row.partition?.computation_id\n : format.Number(row.$attributes.partition_count);\n },\n width: 400,\n },\n {\n name: 'actions',\n header: null,\n render({row}) {\n return (\n <ClickableAttributesButton\n className={block('show-attributes')}\n title={'Details'}\n attributes={row}\n withTooltip={false}\n />\n );\n },\n width: 50,\n },\n ];\n return columns;\n }, [type]);\n return res;\n}\n","import {RootState} from '../../../store/reducers';\n\nexport const getFlowStaticSpecData = (state: RootState) => state.flow.staticSpec.data;\nexport const getFlowStaticSpecPath = (state: RootState) => state.flow.staticSpec.pipeline_path;\nexport const getFlowStaticSpecError = (state: RootState) => state.flow.staticSpec.error;\nexport const getFlowStaticSpecFirstLoading = (state: RootState) => {\n const {loading, loaded} = state.flow.staticSpec;\n return !loaded && loading;\n};\n\nexport const getFlowDynamicSpecData = (state: RootState) => state.flow.dynamicSpec.data;\nexport const getFlowDynamicSpecPath = (state: RootState) => state.flow.dynamicSpec.pipeline_path;\nexport const getFlowDynamicSpecError = (state: RootState) => state.flow.dynamicSpec.error;\nexport const getFlowDynamicSpecFirstLoading = (state: RootState) => {\n const {loading, loaded} = state.flow.dynamicSpec;\n return !loaded && loading;\n};\n","import {ThunkAction} from 'redux-thunk';\n\nimport {ytApiV4} from '../../../rum/rum-wrap-api';\nimport {RootState} from '../../../store/reducers';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {\n FlowSpecState,\n dynamicSpecActions,\n staticSpecActions,\n} from '../../../store/reducers/flow/specs';\nimport {getFlowDynamicSpecPath, getFlowStaticSpecPath} from '../../../store/selectors/flow/specs';\n\nconst cancelHelper = new CancelHelper();\n\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, any>;\n\nexport function loadFlowStaticSpec(pipeline_path: string): AsyncAction {\n return (dispatch) => {\n dispatch(staticSpecActions.onRequest({pipeline_path}));\n return ytApiV4\n .getPipelineSpec({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data: FlowSpecState['data']) => {\n dispatch(staticSpecActions.onSuccess({data}));\n },\n (error: any) => {\n if (!isCancelled(error)) {\n dispatch(staticSpecActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowStaticSpec({\n data,\n path,\n}: {\n data: FlowSpecState['data'];\n path: string;\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n return ytApiV4\n .setPipelineSpec({pipeline_path: path, expected_version: data?.version}, data?.spec)\n .then(() => {\n const pipeline_path = getFlowStaticSpecPath(getState());\n if (pipeline_path && pipeline_path === path) {\n dispatch(loadFlowStaticSpec(path));\n }\n });\n };\n}\n\nexport function loadFlowDynamicSpec(pipeline_path: string): AsyncAction {\n return (dispatch) => {\n dispatch(dynamicSpecActions.onRequest({pipeline_path}));\n return ytApiV4\n .getPipelineDynamicSpec({\n parameters: {pipeline_path},\n cancellation: cancelHelper.removeAllAndSave,\n })\n .then(\n (data: FlowSpecState['data']) => {\n dispatch(dynamicSpecActions.onSuccess({data}));\n },\n (error: any) => {\n if (!isCancelled(error)) {\n dispatch(dynamicSpecActions.onError({error}));\n }\n },\n );\n };\n}\n\nexport function updateFlowDynamicSpec({\n data,\n path,\n}: {\n data: FlowSpecState['data'];\n path: string;\n}): AsyncAction<Promise<void>> {\n return (dispatch, getState) => {\n return ytApiV4\n .setPipelineDynamicSpec(\n {pipeline_path: path, expected_version: data?.version},\n data?.spec,\n )\n .then(() => {\n const pipline_path = getFlowDynamicSpecPath(getState());\n if (path === pipline_path) {\n dispatch(loadFlowDynamicSpec(path));\n }\n });\n };\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport {YTError} from '../../../../../../@types/types';\n\nimport {useUpdater} from '../../../../../hooks/use-updater';\n\nimport {useThunkDispatch} from '../../../../../store/thunkDispatch';\nimport {\n loadFlowDynamicSpec,\n loadFlowStaticSpec,\n updateFlowDynamicSpec,\n updateFlowStaticSpec,\n} from '../../../../../store/actions/flow/specs';\nimport {\n getFlowDynamicSpecData,\n getFlowDynamicSpecFirstLoading,\n getFlowStaticSpecData,\n getFlowStaticSpecError,\n getFlowStaticSpecFirstLoading,\n} from '../../../../../store/selectors/flow/specs';\nimport {getFlowSpecYsonSettings} from '../../../../../store/selectors/thor/unipika';\nimport {FlowSpecState} from '../../../../../store/reducers/flow/specs';\n\nimport Yson from '../../../../../components/Yson/Yson';\nimport Icon from '../../../../../components/Icon/Icon';\nimport {YTDFDialog, makeErrorFields} from '../../../../../components/Dialog';\nimport {YTErrorBlock} from '../../../../../components/Block/Block';\nimport Loader from '../../../../../components/Loader/Loader';\nimport {UnipikaSettings} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\n\nimport './PipelineSpec.scss';\nimport {YsonDownloadButton} from '../../../../../components/DownloadAttributesButton';\nimport {pathToFileName} from '../../../helpers/pathToFileName';\n\nconst block = cn('yt-pipeline-spec');\n\ntype PipelineSpecProps = {\n path: string;\n error: YTError | undefined;\n data: FlowSpecState['data'];\n name: string;\n onSave: (data: PipelineSpecProps['data']) => Promise<void>;\n};\n\nfunction PipelineSpec({path, data, error, name, onSave}: PipelineSpecProps) {\n const [showEdit, setShowEdit] = React.useState(false);\n\n const settings = useSelector(getFlowSpecYsonSettings);\n\n return (\n <React.Fragment>\n {Boolean(error) && <YTErrorBlock error={error} />}\n <Yson\n value={data}\n settings={settings}\n virtualized\n folding\n extraTools={\n <React.Fragment>\n <YsonDownloadButton\n value={data}\n settings={settings}\n name={`pipeline_spec_${pathToFileName(path)}`}\n />\n <Button view=\"outlined\" onClick={() => setShowEdit(true)}>\n <Icon awesome=\"pencil\" />\n Edit {name}\n </Button>\n </React.Fragment>\n }\n />\n <EditSpecDialog\n path={path}\n name={name}\n visible={showEdit}\n onSpecApply={(spec) => onSave({...data!, spec})}\n onClose={() => setShowEdit(false)}\n spec={data?.spec}\n settings={settings}\n />\n </React.Fragment>\n );\n}\n\ntype FormValues = {\n text: {value?: string};\n path: string;\n};\n\nfunction EditSpecDialog({\n path,\n visible,\n spec,\n onClose,\n onSpecApply,\n name,\n settings,\n}: Pick<PipelineSpecProps, 'name' | 'path'> & {\n spec?: unknown;\n visible: boolean;\n onClose: () => void;\n settings: UnipikaSettings;\n onSpecApply: (spec: unknown) => Promise<void>;\n}) {\n const [error, setError] = React.useState<YTError | undefined>();\n\n const text = React.useMemo(() => {\n return {value: JSON.stringify(spec, null, 4)};\n }, [spec]);\n\n return (\n visible && (\n <YTDFDialog<FormValues>\n visible\n size=\"l\"\n onClose={onClose}\n initialValues={{text, path}}\n headerProps={{\n title: `Edit ${name}`,\n }}\n onAdd={async (f) => {\n setError(undefined);\n const {text} = f.getState().values;\n if (text.value) {\n try {\n return await onSpecApply(JSON.parse(text.value));\n } catch (e: any) {\n setError(e);\n return Promise.reject(e);\n }\n } else {\n return Promise.resolve();\n }\n }}\n fields={[\n {\n caption: 'Pipeline path',\n name: 'path',\n type: 'plain',\n },\n {\n name: 'text',\n caption: 'Specification',\n type: 'json',\n fullWidth: true,\n extras: {\n className: block('editor'),\n initialShowPreview: false,\n unipikaSettings: settings,\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n )\n );\n}\n\nexport function FlowStaticSpec({pipeline_path: path}: {pipeline_path: string}) {\n const dispatch = useThunkDispatch();\n\n const data = useSelector(getFlowStaticSpecData);\n const error = useSelector(getFlowStaticSpecError);\n const firstLoading = useSelector(getFlowStaticSpecFirstLoading);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowStaticSpec(path));\n }, [dispatch, path]);\n useUpdater(updateFn);\n\n const onEdit = React.useCallback(\n (newData: typeof data) => {\n return dispatch(updateFlowStaticSpec({path, data: newData}));\n },\n [path, dispatch],\n );\n\n return firstLoading ? (\n <Loader />\n ) : (\n <PipelineSpec\n path={path}\n data={data}\n error={error}\n name=\"static specification\"\n onSave={onEdit}\n />\n );\n}\n\nexport function FlowDynamicSpec({pipeline_path: path}: {pipeline_path: string}) {\n const dispatch = useThunkDispatch();\n\n const data = useSelector(getFlowDynamicSpecData);\n const error = useSelector(getFlowStaticSpecError);\n const firstLoading = useSelector(getFlowDynamicSpecFirstLoading);\n\n const updateFn = React.useCallback(() => {\n dispatch(loadFlowDynamicSpec(path));\n }, [dispatch, path]);\n useUpdater(updateFn);\n\n const onEdit = React.useCallback(\n (newData: typeof data) => {\n return dispatch(updateFlowDynamicSpec({path, data: newData}));\n },\n [path, dispatch],\n );\n\n return firstLoading ? (\n <Loader />\n ) : (\n <PipelineSpec\n path={path}\n data={data}\n error={error}\n name=\"dynamic specification\"\n onSave={onEdit}\n />\n );\n}\n","const SvgClock = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0M8.75 4.5a.75.75 0 0 0-1.5 0V8a.75.75 0 0 0 .3.6l2 1.5a.75.75 0 1 0 .9-1.2l-1.7-1.275z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgClock;","const SvgFileCode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5 13.5h6a1.5 1.5 0 0 0 1.5-1.5V7.243a1.5 1.5 0 0 0-.44-1.061L8.819 2.939a1.5 1.5 0 0 0-1.06-.439H5A1.5 1.5 0 0 0 3.5 4v8A1.5 1.5 0 0 0 5 13.5m9-6.257a3 3 0 0 0-.879-2.122L9.88 1.88A3 3 0 0 0 7.757 1H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3zM8.72 10.53a.75.75 0 0 1 0-1.06l.97-.97-.97-.97a.75.75 0 0 1 1.06-1.06l1.5 1.5a.75.75 0 0 1 0 1.06l-1.5 1.5a.75.75 0 0 1-1.06 0m-1.44-3a.75.75 0 0 0-1.06-1.06l-1.5 1.5a.75.75 0 0 0 0 1.06l1.5 1.5a.75.75 0 1 0 1.06-1.06l-.97-.97z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgFileCode;","const SvgReceipt = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M6.3 2 3.9.5 2 2v13.5l1.5-.776L4.9 14l2.4 1.5L9.7 14l2.4 1.5L14 14V.5l-1.5.776L11.1 2 8.7.5zm2.4.269L7.095 3.272l-.795.497-.795-.497-1.504-.94-.501.395v10.308l.71-.367.76-.393.725.453L7.3 13.731l1.605-1.003.795-.497.795.497 1.504.94.501-.395V2.965l-.71.367-.76.393-.725-.453zM5 6.5a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 5 6.5m.75 2.25a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgReceipt;","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Dialog, Flex, Icon, Text} from '@gravity-ui/uikit';\nimport {SVGIconSvgrData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\n\nimport {FlowMessage, FlowNodeStatus} from '../../../../../../../shared/yt-types';\n\nimport format from '../../../../../../common/hammer/format';\nimport {ExpandButton} from '../../../../../../components/ExpandButton';\nimport {YTErrorBlock} from '../../../../../../components/Block/Block';\nimport Yson from '../../../../../../components/Yson/Yson';\nimport {\n ClickableText,\n ClickableTextProps,\n} from '../../../../../../components/ClickableText/ClickableText';\n\nimport './FlowGraphRenderer.scss';\n\nconst block = cn('yt-flow-graph-renderer');\n\nexport const STATUS_TO_BG_THEME: Partial<\n Record<FlowNodeStatus, 'success' | 'info' | 'warning' | 'danger'>\n> = {\n warning: 'warning',\n alert: 'warning',\n error: 'danger',\n fatal: 'danger',\n maximum: 'danger',\n};\n\nexport function FlowIcon({data}: {data?: SVGIconSvgrData}) {\n return !data ? null : (\n <Flex shrink={0}>\n <Icon className={block('icon')} data={data} />\n </Flex>\n );\n}\n\nexport function FlowCaption2({\n text,\n children,\n}: {\n text?: React.ReactNode;\n children?: React.ReactNode;\n}) {\n return (\n <Text variant=\"inherit\" style={{lineHeight: '17px'}} ellipsis>\n {text}\n {children}\n </Text>\n );\n}\n\nexport function FlowCaption1({text}: {text: React.ReactNode}) {\n return (\n <Text variant=\"caption-2\" color=\"secondary\" ellipsis>\n {text}\n </Text>\n );\n}\n\ntype FlowMessagesProps = {data?: Array<FlowMessage>};\n\nexport function FlowMessages({data}: FlowMessagesProps) {\n const [visible, setVisible] = React.useState(false);\n\n const color = React.useMemo(() => {\n return data?.reduce(\n (acc, {level}) => {\n const theme = STATUS_TO_BG_THEME[level];\n if (theme === 'danger') {\n return theme;\n }\n if (theme === 'warning') {\n return theme;\n }\n return acc;\n },\n undefined as ClickableTextProps['color'],\n );\n }, [data]);\n\n return !data?.length ? null : (\n <div className={block('messages')}>\n <ClickableText color={color} onClick={() => setVisible(true)}>\n Messages ({data.length})\n </ClickableText>\n {visible && <FlowMessagesDialog data={data} onClose={() => setVisible(false)} />}\n </div>\n );\n}\n\nfunction FlowMessagesDialog({data, onClose}: FlowMessagesProps & {onClose(): void}) {\n return (\n <Dialog open={true} onClose={onClose}>\n <Dialog.Header caption=\"Messages\" />\n <Dialog.Body className={block('messages-body')}>\n {data?.map((item, index) => (\n <FlowMessageItem item={item} key={index} />\n ))}\n </Dialog.Body>\n </Dialog>\n );\n}\n\nfunction FlowMessageItem({item}: {item: FlowMessage}) {\n const {level, yson, error} = item;\n const theme = STATUS_TO_BG_THEME[level];\n return (\n <div className={block('message', {theme})}>\n {!error && !yson ? (\n item.text\n ) : (\n <FlowMessageItemExpandable\n item={item}\n errorType={theme === 'warning' ? 'alert' : undefined}\n />\n )}\n </div>\n );\n}\n\nfunction FlowMessageItemExpandable({item, errorType}: {item: FlowMessage; errorType?: 'alert'}) {\n const [expanded, setExpanded] = React.useState(false);\n\n const toggleExpand = () => setExpanded(!expanded);\n\n const {yson, error, text} = item;\n return (\n <Flex gap={1} alignItems=\"baseline\">\n <ExpandButton expanded={expanded} toggleExpanded={toggleExpand} />\n <div>\n <span onClick={toggleExpand} style={{cursor: 'pointer'}}>\n {text ?? format.NO_VALUE}\n </span>\n {expanded && (\n <React.Fragment>\n {Boolean(yson) && <Yson value={yson} />}\n {Boolean(error) && <YTErrorBlock error={error} type={errorType} />}\n </React.Fragment>\n )}\n </div>\n </Flex>\n );\n}\n","import React from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {FlowCaption1, FlowCaption2} from './FlowGraphRenderer';\n\nexport function FlowMeta({\n items,\n className,\n}: {\n className?: string;\n items: Array<{label: string; value: React.ReactNode}>;\n}) {\n return (\n <Flex className={className} gap={2}>\n {items.map(({label, value}, index) => {\n return (\n <Flex\n key={index}\n grow={index < items.length - 1 ? 1 : 0}\n direction=\"column\"\n shrink={1}\n style={{overflow: 'hidden'}}\n >\n <FlowCaption1 text={label} />\n <FlowCaption2 text={value} />\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Progress, ProgressTheme, Text} from '@gravity-ui/uikit';\n\nimport {FlowComputation} from '../../../../../../../shared/yt-types';\n\nimport format from '../../../../../../common/hammer/format';\nimport MetaTable from '../../../../../../components/MetaTable/MetaTable';\nimport {addProgressStackSpacers} from '../../../../../../utils/progress';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nimport {FlowCaption1, FlowCaption2, FlowMessages} from './FlowGraphRenderer';\nimport {FlowMeta} from './FlowMeta';\n\nimport './Computation.scss';\n\nconst block = cn('yt-flow-computation');\n\ntype ComputationProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: Omit<FlowGraphBlockItem<'computation'>, 'is'>;\n};\n\nexport function Computation({detailed, item, className}: ComputationProps) {\n const {cpu_usage_current, memory_usage_current} = item.meta?.metrics ?? {};\n\n return (\n <div className={block(null, className)}>\n <Flex className={block('name')} gap={4} alignItems=\"baseline\">\n <Flex grow={1} overflow=\"hidden\">\n <FlowCaption2 text={item.name} />\n </Flex>\n <Flex grow={1} overflow=\"hidden\">\n <FlowCaption1 text={item.meta?.group_by_schema_str} />\n </Flex>\n </Flex>\n <FlowMeta\n className={block('meta')}\n items={[\n {\n label: 'CPU Usage',\n value: format.Number(cpu_usage_current, {\n digits: cpu_usage_current! > 1 ? 1 : 2,\n }),\n },\n {\n label: 'RAM Usage',\n value: format.Bytes(memory_usage_current),\n },\n {\n label: 'Epoch, pcs/s',\n value: format.Number(item.meta?.epoch_per_second),\n },\n ]}\n />\n <ComputaionProgress stats={item.meta?.partitions_stats} />\n {detailed && <ComputationDetails item={item} />}\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n\ntype ComputationProgressProps = {\n stats?: FlowComputation['partitions_stats'];\n};\n\ntype FlowComputationPartitionStates = keyof Required<\n Required<FlowComputation>['partitions_stats']\n>['count_by_state'];\nconst STATE_TO_THEME: Record<FlowComputationPartitionStates, ProgressTheme> = {\n completed: 'info',\n transient: 'warning',\n executing: 'success',\n interrupted: 'default',\n};\n\nfunction ComputaionProgress({stats}: ComputationProgressProps) {\n const {count = NaN, count_by_state} = stats ?? {};\n const {stack, history} = React.useMemo(() => {\n const history: ComputationProgressHistoryProps['data'] = [];\n const stack = Object.keys(count_by_state ?? {}).map((k) => {\n const key = k as keyof Exclude<typeof count_by_state, undefined>;\n const v = count_by_state?.[key] ?? NaN;\n const theme = STATE_TO_THEME[key] ?? 'default';\n history.push({value: v, type: key});\n\n return {value: (v / count) * 100, theme};\n });\n return {stack: addProgressStackSpacers(stack), history};\n }, [stats, count]);\n\n return (\n <div>\n <Progress className={block('progress')} stack={stack} size=\"xs\" />\n <Flex style={{paddingTop: '8px'}} alignItems=\"baseline\" gap={2}>\n <FlowCaption2>\n {format.Number(count)}{' '}\n <Text color=\"secondary\" variant=\"inherit\">\n partitions\n </Text>\n </FlowCaption2>\n <ComputationProgressHistory data={history} />\n </Flex>\n </div>\n );\n}\n\ntype ComputationProgressHistoryProps = {\n data: Array<{value?: number; type: FlowComputationPartitionStates}>;\n};\n\nfunction ComputationProgressHistory({data}: ComputationProgressHistoryProps) {\n return (\n <Flex alignItems=\"baseline\" grow={1} gap={2} justifyContent=\"end\">\n {data.map(({value, type}, index) => {\n return <ComputationProgressHistoryItem key={index} value={value} type={type} />;\n })}\n </Flex>\n );\n}\n\nfunction ComputationProgressHistoryItem({\n value,\n type,\n}: {\n value?: number;\n type: FlowComputationPartitionStates;\n}) {\n return !value ? null : (\n <Flex alignItems=\"baseline\">\n <div>\n <div\n className={block('progress-history-item-color', {\n theme: STATE_TO_THEME[type] ?? 'default',\n })}\n />\n </div>\n <FlowCaption2>{value}</FlowCaption2>\n </Flex>\n );\n}\n\nfunction ComputationDetails({item}: Pick<ComputationProps, 'item'>) {\n const {cpu_usage_current: _cpu, memory_usage_current: _mem, ...rest} = item.meta?.metrics ?? {};\n return (\n <MetaTable\n className={block('details')}\n items={[\n Object.entries(rest).map(([key, value]) => {\n const fmt = key.startsWith('memory_') ? format.Bytes : format.Number;\n return {\n key,\n value: fmt(value, {digits: 2}),\n };\n }),\n ]}\n />\n );\n}\n","import React from 'react';\n\nimport {Flex, Text} from '@gravity-ui/uikit';\n\nimport format from '../../../../../../common/hammer/format';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nimport {FlowMeta} from './FlowMeta';\n\nimport {FlowCaption2, FlowIcon, FlowMessages} from './FlowGraphRenderer';\n\ntype StreamProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: FlowGraphBlockItem<'stream'>;\n};\n\nexport function Stream({item, detailed, className}: StreamProps) {\n return (\n <div className={className}>\n <Flex gap={1} alignItems=\"center\" style={{paddingBottom: '10px'}} overflow=\"hidden\">\n <FlowIcon data={item.icon} />\n <FlowCaption2 text={item.name} />\n </Flex>\n <FlowMeta\n items={[\n {\n label: 'Messages',\n value: (\n <Flex direction=\"column\">\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Number(item.meta?.messages_per_second)} pcs/s\n </Text>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Bytes(item.meta?.bytes_per_second, {\n digits: detailed ? 2 : 0,\n }) + '/s'}\n </Text>\n </Flex>\n ),\n },\n {\n label: 'Inflight rows',\n value: (\n <Flex direction=\"column\" style={{overflow: 'hidden'}}>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Number(item.meta?.inflight_rows)}\n </Text>\n <Text variant=\"inherit\" whiteSpace=\"nowrap\" ellipsis>\n {format.Bytes(item.meta?.inflight_bytes, {\n digits: detailed ? 2 : 0,\n })}\n </Text>\n </Flex>\n ),\n },\n ]}\n />\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n","const SvgCpu = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M7 1.25a.75.75 0 0 0-1.5 0V2.5a3 3 0 0 0-3 3H1.25a.75.75 0 0 0 0 1.5H2.5v2H1.25a.75.75 0 0 0 0 1.5H2.5a3 3 0 0 0 3 3v1.25a.75.75 0 0 0 1.5 0V13.5h2v1.25a.75.75 0 0 0 1.5 0V13.5a3 3 0 0 0 3-3h1.25a.75.75 0 0 0 0-1.5H13.5V7h1.25a.75.75 0 0 0 0-1.5H13.5a3 3 0 0 0-3-3V1.25a.75.75 0 0 0-1.5 0V2.5H7zM10.5 4h-5A1.5 1.5 0 0 0 4 5.5v5A1.5 1.5 0 0 0 5.5 12h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 10.5 4m0 2.25a.75.75 0 0 0-.75-.75h-3.5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 .75.75h3.5a.75.75 0 0 0 .75-.75zM7 7h2v2H7z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCpu;","import CpuIcon from '@gravity-ui/icons/svgs/cpu.svg';\n\nimport {TAnchor} from '@gravity-ui/graph/build';\n\nimport format from '../../../../../../common/hammer/format';\nimport {\n NoopComponent,\n YTGraphCanvasBlock,\n YTGraphFontSize,\n} from '../../../../../../components/YTGraph';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nexport class ComputationCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>> {\n PADDING = 15;\n\n getComputationFontSize(): YTGraphFontSize {\n return 'header' as const;\n }\n\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: CpuIcon, size: 50});\n } else {\n this.renderHeader();\n this.renderMeta();\n }\n }\n\n renderHeader() {\n const {count, count_by_state: {executing} = {}} = this.state.meta.partitions_stats ?? {};\n\n const textWidth = this.drawInnerText({\n yPos: this.PADDING,\n xPos: this.PADDING,\n text: this.state.name,\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n\n const counts: Array<string> = [];\n if (Number.isFinite(count) && Number.isFinite(executing)) {\n counts.push(String(executing));\n if (count !== executing) {\n counts.push(String(count));\n }\n\n this.drawInnerText({\n yPos: this.PADDING,\n xPos: this.PADDING * 2 + textWidth!,\n text: counts.join('/'),\n color: 'secondary',\n padding: this.PADDING,\n fontSize: this.getComputationFontSize(),\n align: 'right',\n });\n }\n }\n\n renderMeta() {\n const {height, width} = this.state;\n const {\n metrics: {cpu_usage_current, memory_usage_current},\n } = this.state.meta;\n\n const maxWidth = Math.round((width - this.PADDING * 3) / 2);\n const yPos = Math.round(height / 2.1);\n\n this.drawMetaItem({\n xPos: this.PADDING,\n yPos,\n maxWidth,\n label: 'CPU',\n value: format.Number(cpu_usage_current, {digits: 1}),\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n\n const value = format.Bytes(memory_usage_current, {digits: 1});\n this.drawMetaItem({\n xPos: this.PADDING * 1.5 + maxWidth,\n yPos,\n maxWidth,\n label: 'RAM',\n value,\n fontSize: this.getComputationFontSize(),\n padding: this.PADDING,\n });\n }\n\n getAnchorPosition({index = 0}: TAnchor) {\n const {length = 0} = this.state.anchors;\n\n const {width, height} = this.getGeometry();\n const step = width / (length + 1);\n\n return {y: height, x: step * (index + 1)};\n }\n\n renderAnchor: YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>>['renderAnchor'] = () => {\n return NoopComponent.create();\n };\n}\n","import {TAnchor} from '@gravity-ui/graph';\n\nimport format from '../../../../../../common/hammer/format';\n\nimport {NoopComponent, YTGraphCanvasBlock} from '../../../../../../components/YTGraph';\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 10;\n\nexport class StreamCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'stream'>> {\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: this.state.icon});\n } else {\n this.renderHeader();\n }\n }\n\n renderHeader() {\n const w = 24;\n\n this.drawInnerIcon({\n src: this.state.icon,\n xPos: PADDING,\n yPos: PADDING,\n w,\n h: w,\n });\n\n const yPos = PADDING + 4;\n const xPos = PADDING + w + 2;\n\n this.drawInnerText({\n yPos,\n xPos,\n text: this.state.name,\n fontSize: 'header',\n padding: PADDING,\n oneLine: true,\n });\n\n this.drawInnerText({\n yPos: yPos + 35,\n xPos,\n text: format.Bytes(this.state.meta.bytes_per_second, {digits: 0}) + '/s',\n align: 'right',\n fontSize: 'header',\n });\n }\n\n getAnchorPosition({index = 0}: TAnchor) {\n const {length = 0} = this.state.anchors;\n\n const {width} = this.getGeometry();\n const step = width / (length + 1);\n\n return {y: 0, x: step * (index + 1)};\n }\n\n renderAnchor: YTGraphCanvasBlock<FlowGraphBlockItem<'computation'>>['renderAnchor'] = () => {\n return NoopComponent.create();\n };\n}\n","import {FlowComputation, FlowComputationStreamType} from '../../../../../../../shared/yt-types';\n\nimport {YTGraphBlock} from '../../../../../../components/YTGraph';\nimport {rumLogError} from '../../../../../../rum/rum-counter';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 50;\n\ntype Size = {width: number; height: number};\n\nexport class FlowGroupBlock implements YTGraphBlock<'computation-group', FlowComputation> {\n meta: FlowComputation;\n id: string;\n name: string;\n\n is = 'computation-group' as const;\n x = 0;\n y = 0;\n width = 0;\n height = 0;\n selected = false;\n anchors = [];\n\n backgroundTheme?: YTGraphBlock<'computation-group', FlowComputation>['backgroundTheme'];\n\n sizes: {stream: Size; computation: Size};\n\n constructor({\n id,\n computation,\n streamSize,\n computationSize,\n backgroundTheme,\n }: {\n id: string;\n computation: FlowComputation;\n streamSize: Size;\n computationSize: Size;\n backgroundTheme: YTGraphBlock<'computation-group', FlowComputation>['backgroundTheme'];\n }) {\n this.id = id;\n this.meta = computation;\n this.name = computation.id;\n this.backgroundTheme = backgroundTheme;\n\n this.sizes = {stream: streamSize, computation: computationSize};\n\n Object.assign(this, this.recalcSize());\n }\n\n recalcSize() {\n const {stream, computation} = this.sizes;\n\n const res = {\n width: computation.width + PADDING * 2,\n height: computation.height + PADDING * 2,\n };\n\n const {source_streams, timer_streams, output_streams} = this.meta;\n\n const extraHeight = Math.max(\n 0,\n (source_streams?.length ?? 0) * (PADDING + stream.height),\n (timer_streams?.length ?? 0) * (PADDING + stream.height),\n (output_streams?.length ?? 0) * (PADDING + stream.height) - computation.height,\n );\n\n let extraWidth = 0;\n\n if (source_streams?.length > 0) {\n extraWidth += stream.width + PADDING;\n }\n\n if (output_streams?.length > 0) {\n extraWidth += stream.width + PADDING;\n }\n\n return {\n width: res.width + extraWidth,\n height: res.height + extraHeight,\n };\n }\n\n updateBlockPosition<T extends FlowComputationStreamType | 'computation'>(\n type: T,\n block: FlowGraphBlockItem<'stream'> | FlowGraphBlockItem<'computation'>,\n ) {\n if (block.groupId !== this.id) {\n rumLogError(\n {\n additional: {\n id: this.id,\n 'block.id': block.id,\n 'block.groupId': block.groupId,\n },\n },\n new Error('Unexpected behaviour: block.groupId is mismatched with this.id'),\n );\n return block;\n }\n\n const {width, height} = this.sizes.stream;\n\n let index = 0;\n if (type !== 'computation') {\n const t = type as Exclude<typeof type, 'computation'>;\n index = this.meta[t]?.indexOf(block.id);\n if (index === -1) {\n rumLogError(\n {\n additional: {\n type,\n id: this.id,\n 'block.id': block.id,\n [`meta.${type}`]: this.meta[t].join(','),\n },\n },\n new Error(\n `Unexpected behaviour: block.id = ${block.id} should be found in meta.${type}`,\n ),\n );\n return block;\n }\n }\n\n const {computation, stream} = this.sizes;\n\n const byIndex = {width: index * (width + PADDING), height: index * (height + PADDING)};\n\n block.y =\n type === 'output_streams' || type === 'computation'\n ? PADDING + byIndex.height\n : PADDING * 2 + computation.height + byIndex.height;\n\n if (type === 'source_streams') {\n block.x = PADDING;\n } else if (type === 'timer_streams') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = hasSources ? PADDING * 2 + width + byIndex.width : PADDING;\n } else if (type === 'output_streams') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = 2 * PADDING + computation.width;\n if (hasSources) {\n block.x += PADDING + width;\n }\n block.y += (computation.height - stream.height) / 2;\n } else if (type === 'computation') {\n const hasSources = this.meta.source_streams?.length > 0;\n block.x = PADDING;\n if (hasSources) {\n block.x += PADDING + width;\n }\n }\n\n return {...block, x: block.x + this.x, y: block.y + this.y};\n }\n}\n","import {YTGraphFontSize} from '../../../../../../components/YTGraph';\nimport {ComputationCanvasBlock} from './ComputationCanvas';\n\nexport class ComputationGroupCanvasBlock extends ComputationCanvasBlock {\n constructor(...args: ConstructorParameters<typeof ComputationCanvasBlock>) {\n super(...args);\n\n this.PADDING = 50;\n }\n\n override getComputationFontSize(): YTGraphFontSize {\n return 'header2';\n }\n\n override renderBlock() {\n super.renderBlock('schematic');\n }\n}\n","import React from 'react';\n\nimport {Flex} from '@gravity-ui/uikit';\n\nimport {FlowGraphBlockItem} from '../FlowGraph';\nimport {FlowCaption1, FlowCaption2, FlowIcon, FlowMessages} from './FlowGraphRenderer';\n\ntype SinknProps = {\n className?: string;\n\n detailed?: boolean;\n\n item: FlowGraphBlockItem<'sink'>;\n};\n\nexport function Sink({className, item, detailed}: SinknProps) {\n return (\n <div className={className}>\n <Flex gap={1} alignItems=\"center\" style={{paddingBottom: '10px'}} overflow=\"hidden\">\n <FlowIcon data={item.icon} />\n <FlowCaption2 text={item.name} />\n </Flex>\n\n <FlowCaption1 text={item.meta.description} />\n\n {detailed && <FlowMessages data={item.meta.messages} />}\n </div>\n );\n}\n","import {YTGraphCanvasBlock} from '../../../../../../components/YTGraph';\nimport {FlowGraphBlockItem} from '../FlowGraph';\n\nconst PADDING = 10;\n\nexport class SinkCanvasBlock extends YTGraphCanvasBlock<FlowGraphBlockItem<'sink'>> {\n renderBlock(mode: 'minimalistic' | 'schematic'): void {\n this.drawBorder({backgroundTheme: this.state.backgroundTheme});\n\n if (mode === 'minimalistic') {\n this.drawCenteredIcon({src: this.state.icon});\n } else {\n this.renderHeader();\n }\n }\n\n renderHeader() {\n const w = 24;\n\n this.drawInnerIcon({\n src: this.state.icon,\n xPos: PADDING,\n yPos: PADDING,\n w,\n h: w,\n });\n\n const yPos = PADDING + 4;\n const xPos = PADDING + w + 2;\n\n this.drawInnerText({\n yPos,\n xPos,\n text: this.state.name,\n fontSize: 'header',\n padding: PADDING,\n oneLine: true,\n });\n }\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport partition_ from 'lodash/partition';\n\nimport {ECameraScaleLevel, TAnchor, TBlock, TBlockId, TConnection} from '@gravity-ui/graph';\nimport {Flex} from '@gravity-ui/uikit';\nimport {SVGIconSvgrData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\n\nimport {\n FlowComputation,\n FlowComputationStreamType,\n FlowSink,\n FlowStream,\n} from '../../../../../../shared/yt-types';\n\nimport ClockIcon from '@gravity-ui/icons/svgs/clock.svg';\nimport FileCodeIcon from '@gravity-ui/icons/svgs/file-code.svg';\nimport ReceiptIcon from '@gravity-ui/icons/svgs/receipt.svg';\n\nimport Yson from '../../../../../components/Yson/Yson';\nimport {\n YTGraph,\n YTGraphBlock,\n YTGraphData,\n useConfig,\n useElkLayout,\n useGraphScale,\n} from '../../../../../components/YTGraph';\nimport Loader from '../../../../../components/Loader/Loader';\nimport {NoContent} from '../../../../../components/NoContent/NoContent';\nimport {YTErrorBlock} from '../../../../../components/Error/Error';\n\nimport {getCluster} from '../../../../../store/selectors/global/cluster';\n\nimport {useFlowExecuteQuery} from '../../../../../store/api/yt';\n\nimport {Computation} from './renderers/Computation';\nimport {Stream} from './renderers/Stream';\nimport {ComputationCanvasBlock} from './renderers/ComputationCanvas';\nimport {StreamCanvasBlock} from './renderers/StreamCanvas';\n\nimport './FlowGraph.scss';\nimport {FlowGroupBlock} from './utils/FlowGroupBlock';\nimport {ComputationGroupCanvasBlock} from './renderers/ComputationGroupCanvas';\nimport {Sink} from './renderers/Sink';\nimport {FlowMessages, STATUS_TO_BG_THEME} from './renderers/FlowGraphRenderer';\nimport {SinkCanvasBlock} from './renderers/SinkCanvas';\n\nconst block = cn('yt-flow-graph');\n\nexport function FlowGraph({yson, pipeline_path}: {pipeline_path: string; yson: boolean}) {\n const {error, data, isLoading} = useFlowGraphLoadedData({pipeline_path});\n\n if (isLoading) {\n return <Loader visible centered />;\n }\n\n if (error) {\n return <YTErrorBlock error={error} />;\n }\n\n return (\n <div className={block()}>\n {yson ? (\n <Yson value={data} folding virtualized />\n ) : (\n <FlowGraphImpl pipeline_path={pipeline_path} />\n )}\n </div>\n );\n}\n\nexport type FlowGraphBlock =\n | (YTGraphBlock<'computation-group', FlowComputation> & {stream_type?: never})\n | (YTGraphBlock<'computation', FlowComputation> & {stream_type?: never})\n | (YTGraphBlock<'stream', FlowStream> & {\n icon?: SVGIconSvgrData;\n stream_type?: FlowComputationStreamType;\n })\n | (YTGraphBlock<'sink', FlowSink> & {icon?: SVGIconSvgrData; stream_type?: never});\n\nexport type FlowGraphBlockItem<T extends FlowGraphBlock['is']> = FlowGraphBlock & {is: T};\n\nexport function FlowGraphImpl({pipeline_path}: {pipeline_path: string}) {\n const {scale, setScale} = useGraphScale();\n const useGroups = scale === ECameraScaleLevel.Minimalistic;\n\n const config = useConfig<FlowGraphBlock>(\n {\n computation: ComputationCanvasBlock,\n stream: StreamCanvasBlock,\n 'computation-group': ComputationGroupCanvasBlock,\n sink: SinkCanvasBlock,\n },\n {useDefaultConnection: !useGroups},\n );\n\n const {isEmpty, isLoading, data, groups, groupBlocks, messages} = useFlowGraphData({\n pipeline_path,\n });\n\n if (isLoading) {\n return <Loader visible centered />;\n }\n\n if (isEmpty) {\n return <NoContent warning=\"The graph is empty\" />;\n }\n\n return (\n <div className={block()}>\n <div className={block('graph-messages')}>\n <FlowMessages data={messages} />\n </div>\n <YTGraph\n className={block('graph')}\n setScale={setScale}\n {...config}\n data={useGroups ? groups : data}\n renderBlock={({className, style, data}) => {\n return (\n <Flex className={block('item-container', className)} style={style}>\n {renderContent({item: data})}\n </Flex>\n );\n }}\n renderPopup={({data}) => {\n return (\n <div className={block('item-popup', {type: data.is})}>\n {renderContent({item: data, detailed: true})}\n </div>\n );\n }}\n customGroups={groupBlocks}\n />\n </div>\n );\n}\n\nfunction renderContent({item, ...rest}: {item: FlowGraphBlock; detailed?: boolean}) {\n switch (item.is) {\n case 'computation':\n return <Computation className={block('item')} item={item} {...rest} />;\n case 'stream':\n return <Stream className={block('item')} item={item} {...rest} />;\n case 'computation-group':\n return <Computation className={block('item')} item={item} {...rest} />;\n case 'sink':\n return <Sink className={block('item')} item={item} {...rest} />;\n }\n}\n\nconst ICON_BY_TYPE: Record<\n FlowComputationStreamType,\n Pick<FlowGraphBlockItem<'stream'>, 'icon'>\n> = {\n input_streams: {icon: FileCodeIcon},\n output_streams: {icon: FileCodeIcon},\n source_streams: {icon: FileCodeIcon},\n timer_streams: {icon: ClockIcon},\n};\n\nconst COMPUTATION_SIZE = {width: 320, height: 130};\nconst STREAM_SIZE = {width: 240, height: 100};\nconst SINK_SIZE = {width: 200, height: 80};\n\nfunction useFlowGraphLoadedData({pipeline_path}: {pipeline_path: string}) {\n const cluster = useSelector(getCluster);\n return useFlowExecuteQuery({\n cluster,\n parameters: {pipeline_path, flow_command: 'describe-pipeline'},\n });\n}\n\nfunction useFlowGraphData(params: {pipeline_path: string}) {\n const {data: loadedData} = useFlowGraphLoadedData(params);\n\n type FlowData = YTGraphData<FlowGraphBlock, TConnection>;\n\n const data: {data: FlowData; groups: FlowData; groupById: Map<string, FlowGroupBlock>} =\n React.useMemo(() => {\n const {computations = {}, streams = {}, sinks = {}, sources = {}} = loadedData ?? {};\n\n const res: typeof data = {\n data: {blocks: [], connections: []},\n groups: {blocks: [], connections: []},\n groupById: new Map<string, FlowGroupBlock>(),\n };\n\n const blockById: Map<TBlockId, FlowGraphBlock> = new Map();\n\n function addConnection<AnthorType extends string>(\n connections: FlowData['connections'],\n sourceBlockId: string,\n targetBlockId: string,\n {anchorType}: {anchorType?: AnthorType} = {},\n ) {\n const c: (typeof connections)[number] = {sourceBlockId, targetBlockId};\n connections.push(c);\n if (anchorType) {\n const src = blockById.get(sourceBlockId)!;\n const dst = blockById.get(targetBlockId)!;\n\n makeTimerAnchors(anchorType, src, dst, c);\n }\n }\n\n // Collect streams\n Object.values(streams).forEach((stream) => {\n const streamBlock = makeBlock('stream', stream, {\n name: stream.name,\n ...STREAM_SIZE,\n });\n\n blockById.set(streamBlock.id, streamBlock);\n res.data.blocks.push(streamBlock);\n });\n\n // Collect computations and their groups\n Object.entries(computations).forEach(([name, computation]) => {\n const groupId = `\\n\\n__group(${computation.id})__\\n\\n`;\n\n const groupBlock = new FlowGroupBlock({\n id: groupId,\n computation,\n streamSize: STREAM_SIZE,\n computationSize: COMPUTATION_SIZE,\n backgroundTheme: STATUS_TO_BG_THEME[computation.status],\n });\n\n res.groups.blocks.push(groupBlock);\n res.groupById.set(groupId, groupBlock);\n\n const computationBlock: (typeof res)['data']['blocks'][number] = makeBlock(\n 'computation',\n computation,\n {\n name,\n groupId,\n backgroundTheme: STATUS_TO_BG_THEME[computation.status],\n ...COMPUTATION_SIZE,\n },\n );\n blockById.set(computationBlock.id, computationBlock);\n res.data.blocks.push(computationBlock);\n\n function collectStreams<K extends FlowComputationStreamType>(\n key: K,\n options?: {groupId: string},\n ) {\n const streams = computation[key] ?? [];\n\n streams.forEach((id) => {\n if (key === 'input_streams' || key === 'source_streams') {\n addConnection(res.data.connections, id, computation.id);\n } else if (key === 'output_streams') {\n addConnection(res.data.connections, computation.id, id);\n } else if (key === 'timer_streams') {\n addConnection(res.data.connections, computation.id, id, {\n anchorType: key,\n });\n addConnection(res.data.connections, id, computation.id, {\n anchorType: key,\n });\n }\n\n if (options?.groupId) {\n Object.assign(blockById.get(id)!, {\n stream_type: key,\n ...options,\n ...ICON_BY_TYPE[key],\n });\n }\n });\n }\n\n collectStreams('input_streams');\n collectStreams('output_streams', {groupId});\n collectStreams('source_streams', {groupId});\n collectStreams('timer_streams', {groupId});\n });\n\n // Collect sinks\n Object.entries(sinks).forEach(([_key, item]) => {\n const sink = makeBlock('sink', item, {...SINK_SIZE, icon: ReceiptIcon});\n addConnection(res.data.connections, item.stream_id, item.id);\n blockById.set(sink.id, sink);\n\n res.data.blocks.push(sink);\n res.groups.blocks.push(sink);\n });\n\n // Collect sources\n Object.entries(sources).forEach(([_key, item]) => {\n const source = makeBlock('sink', item, {...SINK_SIZE, icon: FileCodeIcon});\n addConnection(res.data.connections, item.id, item.stream_id);\n blockById.set(item.id, source);\n\n res.data.blocks.push(source);\n res.groups.blocks.push(source);\n });\n\n // Transform connections to group connections\n const connectionIds = new Set<string>();\n res.data.connections.forEach((item) => {\n const {sourceBlockId, targetBlockId} = item;\n const src = blockById.get(sourceBlockId)!;\n const dst = blockById.get(targetBlockId)!;\n\n let source: string | undefined;\n let target: string | undefined;\n\n if (src.groupId && dst.groupId) {\n if (src.groupId !== dst.groupId) {\n source = src.groupId;\n target = dst.groupId;\n }\n } else if (src.groupId) {\n source = src.groupId;\n target = dst.id;\n } else if (dst.groupId) {\n source = src.id;\n target = dst.groupId;\n }\n\n if (source && target) {\n const id = `_${source}->${target}_`;\n if (!connectionIds.has(id)) {\n connectionIds.add(id);\n addConnection(res.groups.connections, source, target);\n }\n }\n });\n\n return res;\n }, [loadedData]);\n\n const elkRes = useElkLayout(data.groups);\n const res = React.useMemo(() => {\n const {blocks, connections} = elkRes.data;\n\n blocks.forEach(({id, x, y}) => {\n const group = data.groupById.get(id);\n if (group) {\n Object.assign(group, {x, y});\n }\n });\n\n const [_groups, other] = partition_(blocks, ({is}) => is === 'computation-group');\n\n return {\n data: {\n blocks: [\n ...data.data.blocks.map((item) => {\n const group = data.groupById.get(item.groupId!);\n if (!group) {\n return item;\n }\n\n if (item.is === 'computation') {\n return group.updateBlockPosition('computation', item);\n }\n\n if (item.stream_type) {\n return group.updateBlockPosition(item.stream_type, item);\n }\n return item;\n }),\n ...other,\n ],\n connections: data.data.connections,\n },\n groups: {\n blocks,\n connections,\n },\n groupBlocks: blocks.filter(({is}) => is === 'computation-group'),\n };\n }, [elkRes.isLoading, elkRes.data, data]);\n\n return {\n isEmpty: !data.data.blocks.length,\n ...elkRes,\n ...res,\n messages: loadedData?.messages,\n };\n}\n\nfunction makeBlock<\n T extends FlowGraphBlock['is'],\n D extends FlowGraphBlockItem<T>,\n O extends Partial<D>,\n>(type: T, item: D['meta'], options: O) {\n return {\n id: item.id,\n is: type,\n name: item.id,\n selected: false,\n anchors: [],\n ...options,\n meta: item,\n // the values should be overriden by layout process\n x: 0,\n y: 0,\n };\n}\n\nfunction makeTimerAnchors<T extends string>(type: T, src: TBlock, dst: TBlock, c: TConnection) {\n const srcAnchor: TAnchor = {\n id: `anchor:out:${src.id as string}:${dst.id as string}:`,\n blockId: src.id,\n type,\n };\n const dstAnchor: TAnchor = {\n id: `anchor:in:${src.id as string}:${dst.id as string}:`,\n blockId: dst.id,\n type,\n };\n\n src.anchors.push({...srcAnchor, index: src.anchors.length});\n dst.anchors.push({...dstAnchor, index: dst.anchors.length});\n\n c.targetAnchorId = dstAnchor.id;\n c.sourceAnchorId = srcAnchor.id;\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Button, Flex, Link, RadioButton, Text} from '@gravity-ui/uikit';\n\nimport {YTAlertBlock} from '../../../../components/Alert/Alert';\nimport ClipboardButton from '../../../../components/ClipboardButton/ClipboardButton';\nimport format from '../../../../common/hammer/format';\nimport Icon from '../../../../components/Icon/Icon';\nimport MetaTable from '../../../../components/MetaTable/MetaTable';\nimport StatusLabel from '../../../../components/StatusLabel/StatusLabel';\nimport {useUpdater} from '../../../../hooks/use-updater';\nimport {useThunkDispatch} from '../../../../store/thunkDispatch';\nimport {loadFlowStatus, updateFlowState} from '../../../../store/actions/flow/status';\nimport {getFlowViewMode} from '../../../../store/selectors/flow/filters';\nimport {getFlowStatusData} from '../../../../store/selectors/flow/status';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getAttributes, getPath} from '../../../../store/selectors/navigation';\nimport {\n FLOW_VIEW_MODES,\n FlowViewMode,\n setFlowViewMode,\n} from '../../../../store/reducers/flow/filters';\nimport UIFactory from '../../../../UIFactory';\nimport {formatByParams} from '../../../../utils/format';\n\nimport {FlowLayout} from './FlowLayout/FlowLayout';\nimport {FlowDynamicSpec, FlowStaticSpec} from './PipelineSpec/PipelineSpec';\nimport './Flow.scss';\nimport {FlowGraph} from './FlowGraph/FlowGraph';\n\nconst block = cn('yt-navigation-flow');\n\nfunction useViewModeOptions() {\n const res = React.useMemo(() => {\n const {urlTemplate, component} = UIFactory.getMonitoringComponentForNavigationFlow() ?? {};\n const options =\n component || urlTemplate\n ? FLOW_VIEW_MODES\n : FLOW_VIEW_MODES.filter((item) => item !== 'monitoring');\n\n return options.map((value) => {\n return {value, content: format.ReadableField(value)};\n });\n }, []);\n return res;\n}\n\nexport function Flow() {\n const dispatch = useDispatch();\n const viewMode = useSelector(getFlowViewMode);\n\n const options = useViewModeOptions();\n\n return (\n <div className={block()}>\n <FlowState />\n <Flex className={block('toolbar')}>\n <RadioButton<FlowViewMode>\n options={options}\n value={viewMode}\n onUpdate={(value) => dispatch(setFlowViewMode(value))}\n />\n </Flex>\n <div className={block('content', {view: viewMode})}>\n <FlowContent viewMode={viewMode} />\n </div>\n </div>\n );\n}\n\nfunction FlowContent({viewMode}: {viewMode: FlowViewMode}) {\n const path = useSelector(getPath);\n\n if (!path) {\n return null;\n }\n\n switch (viewMode) {\n case 'static_spec':\n return <FlowStaticSpec pipeline_path={path} />;\n case 'dynamic_spec':\n return <FlowDynamicSpec pipeline_path={path} />;\n case 'monitoring':\n return <FlowMonitoring />;\n case 'workers':\n case 'computations':\n return <FlowLayout path={path} viewMode={viewMode} />;\n case 'graph':\n case 'graph_data':\n return <FlowGraph pipeline_path={path} yson={viewMode === 'graph_data'} />;\n\n default:\n return (\n <YTAlertBlock\n header=\"Unexpected behaviour\"\n error={new Error(`'${viewMode}' view mode is not implemented`)}\n />\n );\n }\n}\n\nfunction FlowStatusToolbar() {\n const dispatch = useThunkDispatch();\n\n const pipeline_path = useSelector(getPath);\n\n const updateFn = React.useCallback(() => {\n return dispatch(loadFlowStatus(pipeline_path));\n }, [pipeline_path, dispatch]);\n\n useUpdater(updateFn);\n\n const {onStart, onStop, onPause} = React.useMemo(() => {\n return {\n onStart: () => dispatch(updateFlowState({pipeline_path, state: 'start'})),\n onStop: () => dispatch(updateFlowState({pipeline_path, state: 'stop'})),\n onPause: () => dispatch(updateFlowState({pipeline_path, state: 'pause'})),\n };\n }, [dispatch, pipeline_path]);\n\n return (\n <Flex className={block('status-toolbar')} alignItems=\"center\" gap={2}>\n <Button view=\"outlined\" onClick={onStart}>\n <Icon awesome=\"play-circle\" /> Start\n </Button>\n <Button view=\"outlined\" onClick={onPause}>\n <Icon awesome=\"pause-circle\" /> Pause\n </Button>\n <Button view=\"outlined\" onClick={onStop}>\n <Icon awesome=\"stop-circle\" /> Stop\n </Button>\n </Flex>\n );\n}\n\nfunction FlowState() {\n const value = useSelector(getFlowStatusData);\n const {leader_controller_address} = useSelector(getAttributes);\n return (\n <React.Fragment>\n <Flex className={block('state')} alignItems=\"center\" gap={2}>\n <Text variant=\"header-1\">Processing catalog </Text>\n <FlowStatusToolbar />\n </Flex>\n <MetaTable\n items={[\n [{key: 'status', value: <StatusLabel label={value} />}],\n [\n {\n key: 'leader_controller_address',\n value: (\n <>\n {leader_controller_address}\n <ClipboardButton\n view=\"flat-secondary\"\n text={leader_controller_address}\n inlineMargins\n />\n </>\n ),\n className: block('meta-item'),\n },\n ],\n ]}\n />\n </React.Fragment>\n );\n}\n\nfunction FlowMonitoring() {\n const {\n component: Component,\n title,\n urlTemplate,\n } = UIFactory.getMonitoringComponentForNavigationFlow() ?? {};\n const attributes = useSelector(getAttributes);\n const {monitoring_cluster, monitoring_project} = attributes;\n const cluster = useSelector(getCluster);\n\n if (Component) {\n return (\n <Component\n cluster={cluster}\n monitoring_cluster={monitoring_cluster}\n monitoring_project={monitoring_project}\n attributes={attributes}\n />\n );\n } else if (urlTemplate) {\n return (\n <Link\n target=\"_blank\"\n href={formatByParams(urlTemplate, {\n ytCluster: cluster,\n monitoring_cluster,\n monitoring_project,\n })}\n >\n {title || 'Monitoring'}\n </Link>\n );\n } else {\n return null;\n }\n}\n","const SvgChevronRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronRight;","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d<x;){for(i(n,d,x),d++,x--;h(n[d],p)<0;)d++;for(;h(n[x],p)>0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return t<i?-1:t>i?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r<i.length;r++)if(n(t,i[r]))return r;return-1}function a(t,i){h(t,0,t.children.length,i,t)}function h(t,i,n,r,e){e||(e=p(null)),e.minX=1/0,e.minY=1/0,e.maxX=-1/0,e.maxY=-1/0;for(var a=i;a<n;a++){var h=t.children[a];o(e,t.leaf?r(h):h)}return e}function o(t,i){return t.minX=Math.min(t.minX,i.minX),t.minY=Math.min(t.minY,i.minY),t.maxX=Math.max(t.maxX,i.maxX),t.maxY=Math.max(t.maxY,i.maxY),t}function s(t,i){return t.minX-i.minX}function l(t,i){return t.minY-i.minY}function f(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function u(t){return t.maxX-t.minX+(t.maxY-t.minY)}function m(t,i){return t.minX<=i.minX&&t.minY<=i.minY&&i.maxX<=t.maxX&&i.maxY<=t.maxY}function c(t,i){return i.minX<=t.maxX&&i.minY<=t.maxY&&i.maxX>=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a<i.children.length;a++){var h=i.children[a],o=i.leaf?r(h):h;c(t,o)&&(i.leaf?n.push(h):m(t,o)?this._all(h,n):e.push(h))}i=e.pop()}return n},r.prototype.collides=function(t){var i=this.data;if(!c(t,i))return!1;for(var n=[];i;){for(var r=0;r<i.children.length;r++){var e=i.children[r],a=i.leaf?this.toBBox(e):e;if(c(t,a)){if(i.leaf||m(t,a))return!0;n.push(e)}}i=n.pop()}return!1},r.prototype.load=function(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(var i=0;i<t.length;i++)this.insert(t[i]);return this}var n=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},r.prototype.insert=function(t){return t&&this._insert(t,this.data.height-1),this},r.prototype.clear=function(){return this.data=p([]),this},r.prototype.remove=function(t,i){if(!t)return this;for(var n,r,a,h=this.data,o=this.toBBox(t),s=[],l=[];h||s.length;){if(h||(h=s.pop(),r=s[s.length-1],n=l.pop(),a=!0),h.leaf){var f=e(t,h.children,i);if(-1!==f)return h.children.splice(f,1),s.push(h),this._condense(s),this}a||h.leaf||!m(h,o)?r?(n++,h=r.children[n],a=!1):h=null:(s.push(h),l.push(n),n=0,r=h,h=h.children[0])}return this},r.prototype.toBBox=function(t){return t},r.prototype.compareMinX=function(t,i){return t.minX-i.minX},r.prototype.compareMinY=function(t,i){return t.minY-i.minY},r.prototype.toJSON=function(){return this.data},r.prototype.fromJSON=function(t){return this.data=t,this},r.prototype._all=function(t,i){for(var n=[];t;)t.leaf?i.push.apply(i,t.children):n.push.apply(n,t.children),t=n.pop();return i},r.prototype._build=function(t,i,n,r){var e,h=n-i+1,o=this._maxEntries;if(h<=o)return a(e=p(t.slice(i,n+1)),this.toBBox),e;r||(r=Math.ceil(Math.log(h)/Math.log(o)),o=Math.ceil(h/Math.pow(o,r-1))),(e=p([])).leaf=!1,e.height=r;var s=Math.ceil(h/o),l=s*Math.ceil(Math.sqrt(o));d(t,i,n,l,this.compareMinX);for(var f=i;f<=n;f+=l){var u=Math.min(f+l-1,n);d(t,f,u,s,this.compareMinY);for(var m=f;m<=u;m+=s){var c=Math.min(m+s-1,u);e.children.push(this._build(t,m,c,r-1))}}return a(e,this.toBBox),e},r.prototype._chooseSubtree=function(t,i,n,r){for(;r.push(i),!i.leaf&&r.length-1!==n;){for(var e=1/0,a=1/0,h=void 0,o=0;o<i.children.length;o++){var s=i.children[o],l=f(s),u=(m=t,c=s,(Math.max(c.maxX,m.maxX)-Math.min(c.minX,m.minX))*(Math.max(c.maxY,m.maxY)-Math.min(c.minY,m.minY))-l);u<a?(a=u,e=l<e?l:e,h=s):u===a&&l<e&&(e=l,h=s)}i=h||i.children[0]}var m,c;return i},r.prototype._insert=function(t,i,n){var r=n?t:this.toBBox(t),e=[],a=this._chooseSubtree(r,this.data,i,e);for(a.children.push(t),o(a,r);i>=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v<m?(m=v,r=p,c=M<c?M:c):v===m&&M<c&&(c=M,r=p)}return r||n-i},r.prototype._chooseSplitAxis=function(t,i,n){var r=t.leaf?this.compareMinX:s,e=t.leaf?this.compareMinY:l;this._allDistMargin(t,i,n,r)<this._allDistMargin(t,i,n,e)&&t.children.sort(r)},r.prototype._allDistMargin=function(t,i,n,r){t.children.sort(r);for(var e=this.toBBox,a=h(t,0,i,e),s=h(t,n-i,n,e),l=u(a)+u(s),f=i;f<n-i;f++){var m=t.children[f];o(a,t.leaf?e(m):m),l+=u(a)}for(var c=n-i-1;c>=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport hammer from '../../common/hammer';\nimport Icon, {IconName} from '../Icon/Icon';\n\nimport {NavigationFlowState, StatusLabelState} from '../../types/common/states';\n\nimport './StatusLabel.scss';\n\nfunction getViewState(label?: StatusLabelProps['label']): ViewState {\n const states: Record<Exclude<typeof label, undefined>, ViewState> = {\n // preparing states\n materializing: 'preparing',\n initializing: 'preparing',\n preparing: 'preparing',\n pending: 'preparing',\n starting: 'preparing',\n\n // running states\n running: 'running',\n completing: 'running',\n failing: 'running',\n aborting: 'running',\n reviving: 'running',\n suspended: 'suspended',\n\n // final states\n failed: 'failed',\n completed: 'completed',\n aborted: 'aborted',\n\n // NavigationFlowState\n Unknown: 'unknown',\n Stopped: 'suspended',\n Paused: 'suspended',\n Working: 'running',\n Draining: 'running',\n Pausing: 'running',\n Completed: 'completed',\n };\n\n return states[label!] ?? 'unknown';\n}\n\nexport type ViewState =\n | 'preparing'\n | 'running'\n | 'failed'\n | 'aborted'\n | 'completed'\n | 'suspended'\n | 'unknown';\n\nfunction getIcon(state: ViewState) {\n const iconsByViewState: Record<ViewState, IconName> = {\n preparing: 'clock',\n running: 'play-circle',\n suspended: 'pause-circle',\n failed: 'times-circle',\n completed: 'check-circle',\n aborted: 'times-circle',\n unknown: 'question-circle',\n };\n return iconsByViewState[state];\n}\n\nconst b = block('status-label');\n\nexport type StatusLabelProps = {\n className?: string;\n label?: StatusLabelState | NavigationFlowState;\n renderPlaque?: boolean;\n text?: string;\n state?: ViewState;\n iconState?: ViewState;\n};\n\nexport default function StatusLabel({\n className,\n label,\n renderPlaque,\n text,\n state,\n iconState,\n}: StatusLabelProps) {\n const mappedState = getViewState(label);\n const icon = getIcon(iconState ?? mappedState);\n const mods = {state: state ?? mappedState};\n\n return !label && !(text || state) ? (\n <span />\n ) : (\n <span className={b(null, renderPlaque ? b('plaque', mods, className) : b(mods, className))}>\n <Icon awesome={icon} />\n <span>{text ?? hammer.format['ReadableField'](label)}</span>\n </span>\n );\n}\n","import {colord, extend} from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\nextend([namesPlugin]);\n\ntype Options<T extends boolean | undefined> = {\n container?: HTMLElement | null;\n} & AllowUndefined<T>;\n\ntype AllowUndefined<T> = T extends boolean ? {allowUndefined: T} : {allowUndefined?: undefined};\n\ntype Result<R, T> = T extends {allowUndefined: true} ? R | undefined : R;\n\nexport function getCSSPropertyValue(name: string, element = document.body) {\n const styles = getComputedStyle(element);\n return styles.getPropertyValue(name);\n}\n\nexport function getHEXColor<O extends undefined | Options<boolean | undefined> = undefined>(\n color: string,\n options?: O,\n): Result<string, typeof options> {\n if (!color && options?.allowUndefined) {\n return undefined as any;\n }\n return colord(color).toHex() as any;\n}\n\nexport function getCssColor<O extends undefined | Options<boolean | undefined> = undefined>(\n name: string,\n options?: O,\n) {\n return getHEXColor(getCSSPropertyValue(name, document.body ?? options?.container), options);\n}\n","export default function(e,f){var a={white:\"#ffffff\",bisque:\"#ffe4c4\",blue:\"#0000ff\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",azure:\"#f0ffff\",whitesmoke:\"#f5f5f5\",papayawhip:\"#ffefd5\",plum:\"#dda0dd\",blanchedalmond:\"#ffebcd\",black:\"#000000\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",cornsilk:\"#fff8dc\",cornflowerblue:\"#6495ed\",burlywood:\"#deb887\",aquamarine:\"#7fffd4\",beige:\"#f5f5dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkkhaki:\"#bdb76b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",peachpuff:\"#ffdab9\",darkmagenta:\"#8b008b\",darkred:\"#8b0000\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkslateblue:\"#483d8b\",gray:\"#808080\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",wheat:\"#f5deb3\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",ghostwhite:\"#f8f8ff\",darkviolet:\"#9400d3\",magenta:\"#ff00ff\",green:\"#008000\",dodgerblue:\"#1e90ff\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",blueviolet:\"#8a2be2\",forestgreen:\"#228b22\",lawngreen:\"#7cfc00\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",fuchsia:\"#ff00ff\",brown:\"#a52a2a\",maroon:\"#800000\",mediumblue:\"#0000cd\",lightcoral:\"#f08080\",darkturquoise:\"#00ced1\",lightcyan:\"#e0ffff\",ivory:\"#fffff0\",lightyellow:\"#ffffe0\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",linen:\"#faf0e6\",mediumaquamarine:\"#66cdaa\",lemonchiffon:\"#fffacd\",lime:\"#00ff00\",khaki:\"#f0e68c\",mediumseagreen:\"#3cb371\",limegreen:\"#32cd32\",mediumspringgreen:\"#00fa9a\",lightskyblue:\"#87cefa\",lightblue:\"#add8e6\",midnightblue:\"#191970\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",mintcream:\"#f5fffa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",navajowhite:\"#ffdead\",navy:\"#000080\",mediumvioletred:\"#c71585\",powderblue:\"#b0e0e6\",palegoldenrod:\"#eee8aa\",oldlace:\"#fdf5e6\",paleturquoise:\"#afeeee\",mediumturquoise:\"#48d1cc\",mediumorchid:\"#ba55d3\",rebeccapurple:\"#663399\",lightsteelblue:\"#b0c4de\",mediumslateblue:\"#7b68ee\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",orchid:\"#da70d6\",mediumpurple:\"#9370db\",purple:\"#800080\",pink:\"#ffc0cb\",skyblue:\"#87ceeb\",springgreen:\"#00ff7f\",palegreen:\"#98fb98\",red:\"#ff0000\",yellow:\"#ffff00\",slateblue:\"#6a5acd\",lavenderblush:\"#fff0f5\",peru:\"#cd853f\",palevioletred:\"#db7093\",violet:\"#ee82ee\",teal:\"#008080\",slategray:\"#708090\",slategrey:\"#708090\",aliceblue:\"#f0f8ff\",darkseagreen:\"#8fbc8f\",darkolivegreen:\"#556b2f\",greenyellow:\"#adff2f\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",tomato:\"#ff6347\",silver:\"#c0c0c0\",sienna:\"#a0522d\",lavender:\"#e6e6fa\",lightgreen:\"#90ee90\",orange:\"#ffa500\",orangered:\"#ff4500\",steelblue:\"#4682b4\",royalblue:\"#4169e1\",turquoise:\"#40e0d0\",yellowgreen:\"#9acd32\",salmon:\"#fa8072\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",darksalmon:\"#e9967a\",lightgoldenrodyellow:\"#fafad2\",snow:\"#fffafa\",lightgrey:\"#d3d3d3\",lightgray:\"#d3d3d3\",dimgray:\"#696969\",dimgrey:\"#696969\",olivedrab:\"#6b8e23\",olive:\"#808000\"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return\"transparent\";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b=\"black\";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d=\"transparent\"===r?\"#0000\":a[r];return d?new e(d).toRgb():null},\"name\"])}\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","block","cn","ExpandButton","_ref","className","expanded","inline","toggleExpanded","all","showText","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","title","onClick","Icon","data","doubleShevronRightSvg","shevronRightSvg","size","_get","Reflect","get","bind","e","t","r","p","o","hasOwnProperty","call","getPrototypeOf","n","Object","getOwnPropertyDescriptor","arguments","length","value","apply","_superPropGet","prototype","grad","turn","rad","Math","PI","pow","round","u","isFinite","a","g","b","i","s","toString","h","max","min","v","floor","l","f","c","m","y","string","exec","parseInt","substr","Number","object","N","M","H","$","j","this","parsed","trim","x","rgba","isValid","brightness","isDark","isLight","toHex","toRgb","toRgbString","toHsl","toHslString","toHsv","invert","w","saturate","desaturate","grayscale","lighten","darken","rotate","hue","alpha","isEqual","S","k","forEach","indexOf","push","getFlowStatusData","state","flow","status","getFlowStatusPipelinePath","pipeline_path","cancelHelper","CancelHelper","loadFlowStatus","dispatch","flowStatusActions","onRequest","ytApiV4","getPipelineState","parameters","cancellation","removeAllAndSave","then","onSuccess","error","isCancelled","onError","updateFlowState","getState","method","concat","getFlowViewMode","filters","flowViewMode","getFlowLayoutPipelinePath","layout","getFlowLayoutError","getFlowLayoutData","createSelector","expandedComputations","expandedWorkers","mode","handleExpandedNames","_data$execution_spec$","_data$execution_spec","execution_spec","_ref$jobs","jobs","partitions","map_","item","_ref3","_ref4","job","current_job_id","worker_address","worker","workers","name","computation_id","partition","getFlowLayoutPartitions","_data$execution_spec$2","_data$execution_spec2","_ref5","res","visitedWorkers","Set","forEach_","partition_id","add","address","has","getFlowLayoutWorkers","rows","expandedNames","keys","groups","groupsByName","Map","_$value","rest","_objectWithoutProperties","_excluded","dst","$attributes","job_count","worker_count","partition_count","$value","set","_i","_groups","FlowLayout","path","viewMode","useDispatch","useSelector","getData","React","samePath","columns","type","isComputations","render","_ref2","content","row","_row$$attributes","_Fragment","hidden","flowLayoutActions","onExpandComputation","expandFlowLayoutComputation","onExpandWorker","expandFlowLayoutWorker","requestAnimationFrame","window","dispatchEvent","Event","ClipboardButton","text","inlineMargins","visibleOnRowHover","_row$partition","_row$partition2","level","_row$partition3","format","width","_row$partition4","_row$partition5","_row$job","_row$job2","_ref6","_row$partition6","header","_ref7","ClickableAttributesButton","attributes","withTooltip","useFlowLayoutColumn","updateFn","getFlowView","annotate_with_types","loadFlowLayout","useUpdater","Boolean","YTErrorBlock","DataTableYT","settings","DATA_TABLE_YT_SETTINGS","useThemeYT","getFlowStaticSpecData","staticSpec","getFlowStaticSpecPath","getFlowStaticSpecError","getFlowStaticSpecFirstLoading","_state$flow$staticSpe","loading","loaded","getFlowDynamicSpecData","dynamicSpec","getFlowDynamicSpecPath","getFlowDynamicSpecFirstLoading","_state$flow$dynamicSp","loadFlowStaticSpec","staticSpecActions","getPipelineSpec","loadFlowDynamicSpec","dynamicSpecActions","getPipelineDynamicSpec","PipelineSpec","onSave","_React$useState","_React$useState2","_slicedToArray","showEdit","setShowEdit","getFlowSpecYsonSettings","Yson","virtualized","folding","extraTools","YsonDownloadButton","pathToFileName","awesome","EditSpecDialog","visible","onSpecApply","spec","onClose","_React$useState3","_React$useState4","setError","JSON","stringify","YTDFDialog","initialValues","headerProps","onAdd","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","undefined","values","parse","abrupt","sent","t0","Promise","reject","resolve","stop","_x","fields","caption","fullWidth","extras","initialShowPreview","unipikaSettings","_toConsumableArray","makeErrorFields","FlowStaticSpec","useThunkDispatch","firstLoading","onEdit","newData","setPipelineSpec","expected_version","version","updateFlowStaticSpec","Loader","FlowDynamicSpec","setPipelineDynamicSpec","pipline_path","updateFlowDynamicSpec","STATUS_TO_BG_THEME","warning","alert","fatal","maximum","FlowIcon","Flex","shrink","FlowCaption2","Text","variant","style","lineHeight","ellipsis","FlowCaption1","color","FlowMessages","setVisible","reduce","acc","theme","ClickableText","FlowMessagesDialog","Dialog","open","Header","Body","map","index","FlowMessageItem","yson","FlowMessageItemExpandable","errorType","_ref8","setExpanded","toggleExpand","gap","alignItems","cursor","NO_VALUE","FlowMeta","items","label","grow","direction","overflow","Computation","_item$meta$metrics","_item$meta","_item$meta2","_item$meta3","_item$meta4","detailed","meta","metrics","cpu_usage_current","memory_usage_current","group_by_schema_str","digits","Bytes","epoch_per_second","ComputaionProgress","stats","partitions_stats","ComputationDetails","messages","STATE_TO_THEME","completed","transient","executing","interrupted","_ref4$count","count","NaN","count_by_state","_React$useMemo","history","stack","_count_by_state$key","_STATE_TO_THEME$key","key","addProgressStackSpacers","Progress","paddingTop","ComputationProgressHistory","justifyContent","ComputationProgressHistoryItem","_STATE_TO_THEME$type","_item$meta$metrics2","_item$meta5","_ref9","MetaTable","entries","_ref0","_ref1","fmt","startsWith","Stream","paddingBottom","icon","whiteSpace","messages_per_second","bytes_per_second","inflight_rows","inflight_bytes","ComputationCanvasBlock","_YTGraphCanvasBlock","_this","_classCallCheck","_len","args","Array","_key","_callSuper","PADDING","renderAnchor","NoopComponent","create","_inherits","_createClass","drawBorder","backgroundTheme","drawCenteredIcon","src","CpuIcon","renderHeader","renderMeta","_this$state$meta$part","_ref$count_by_state","textWidth","drawInnerText","yPos","xPos","fontSize","getComputationFontSize","padding","counts","String","join","align","_this$state","height","_this$state$meta$metr","maxWidth","drawMetaItem","_ref2$index","_this$state$anchors$l","anchors","_this$getGeometry","getGeometry","YTGraphCanvasBlock","StreamCanvasBlock","drawInnerIcon","oneLine","_ref$index","FlowGroupBlock","id","computation","streamSize","computationSize","is","selected","sizes","stream","assign","recalcSize","_source_streams$lengt","_timer_streams$length","_output_streams$lengt","_this$sizes","_this$meta","source_streams","timer_streams","output_streams","extraHeight","extraWidth","groupId","rumLogError","additional","Error","_this$sizes$stream","_this$meta$t","_defineProperty","_this$sizes2","byIndex","_this$meta$source_str","hasSources","_this$meta$source_str2","_this$meta$source_str3","ComputationGroupCanvasBlock","_ComputationCanvasBlo","Sink","description","SinkCanvasBlock","FlowGraph","_useFlowGraphLoadedDa","useFlowGraphLoadedData","isLoading","centered","FlowGraphImpl","_useGraphScale","useGraphScale","scale","setScale","useGroups","ECameraScaleLevel","Minimalistic","config","useConfig","sink","useDefaultConnection","_useFlowGraphData","params","loadedData","_ref7$computations","computations","_ref7$streams","streams","_ref7$sinks","sinks","_ref7$sources","sources","blocks","connections","groupById","blockById","addConnection","sourceBlockId","targetBlockId","anchorType","srcAnchor","blockId","dstAnchor","targetAnchorId","sourceAnchorId","makeTimerAnchors","streamBlock","makeBlock","STREAM_SIZE","groupBlock","COMPUTATION_SIZE","computationBlock","collectStreams","options","_computation$key","stream_type","ICON_BY_TYPE","_ref10","SINK_SIZE","ReceiptIcon","stream_id","_ref11","_ref12","source","FileCodeIcon","connectionIds","target","elkRes","useElkLayout","_elkRes$data","_ref13","group","_partition_","partition_","_ref14","_partition_2","other","updateBlockPosition","groupBlocks","filter","_ref15","isEmpty","useFlowGraphData","NoContent","YTGraph","renderBlock","renderContent","renderPopup","customGroups","input_streams","cluster","getCluster","useFlowExecuteQuery","flow_command","Flow","_UIFactory$getMonitor","UIFactory","getMonitoringComponentForNavigationFlow","urlTemplate","component","FLOW_VIEW_MODES","ReadableField","FlowState","RadioButton","onUpdate","setFlowViewMode","FlowContent","getPath","FlowMonitoring","YTAlertBlock","FlowStatusToolbar","onStart","onStop","onPause","leader_controller_address","getAttributes","StatusLabel","_UIFactory$getMonitor2","Component","monitoring_cluster","monitoring_project","Link","href","formatByParams","ytCluster","module","exports","log","exp","sqrt","_maxEntries","_minEntries","ceil","clear","minX","minY","maxX","maxY","leaf","pop","_all","search","toBBox","collides","load","insert","_build","slice","_splitRoot","_insert","remove","splice","_condense","compareMinX","compareMinY","toJSON","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","sort","renderPlaque","iconState","mappedState","_states","materializing","initializing","preparing","pending","starting","running","completing","failing","aborting","reviving","suspended","failed","aborted","Unknown","Stopped","Paused","Working","Draining","Pausing","Completed","getViewState","unknown","getIcon","mods","hammer","getCSSPropertyValue","element","document","body","getComputedStyle","getPropertyValue","getCssColor","_document$body","allowUndefined","colord","getHEXColor","container","extend","white","bisque","blue","cadetblue","chartreuse","chocolate","coral","antiquewhite","aqua","azure","whitesmoke","papayawhip","plum","blanchedalmond","black","gold","goldenrod","gainsboro","cornsilk","cornflowerblue","burlywood","aquamarine","beige","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkkhaki","darkgray","darkgreen","darkgrey","peachpuff","darkmagenta","darkred","darkorchid","darkorange","darkslateblue","gray","darkslategray","darkslategrey","deeppink","deepskyblue","wheat","firebrick","floralwhite","ghostwhite","darkviolet","magenta","green","dodgerblue","grey","honeydew","hotpink","blueviolet","forestgreen","lawngreen","indianred","indigo","fuchsia","brown","maroon","mediumblue","lightcoral","darkturquoise","lightcyan","ivory","lightyellow","lightsalmon","lightseagreen","linen","mediumaquamarine","lemonchiffon","lime","khaki","mediumseagreen","limegreen","mediumspringgreen","lightskyblue","lightblue","midnightblue","lightpink","mistyrose","moccasin","mintcream","lightslategray","lightslategrey","navajowhite","navy","mediumvioletred","powderblue","palegoldenrod","oldlace","paleturquoise","mediumturquoise","mediumorchid","rebeccapurple","lightsteelblue","mediumslateblue","thistle","tan","orchid","mediumpurple","purple","pink","skyblue","springgreen","palegreen","red","yellow","slateblue","lavenderblush","peru","palevioletred","violet","teal","slategray","slategrey","aliceblue","darkseagreen","darkolivegreen","greenyellow","seagreen","seashell","tomato","silver","sienna","lavender","lightgreen","orange","orangered","steelblue","royalblue","turquoise","yellowgreen","salmon","saddlebrown","sandybrown","rosybrown","darksalmon","lightgoldenrodyellow","snow","lightgrey","lightgray","dimgray","dimgrey","olivedrab","olive","toName","closest","toLowerCase"],"sourceRoot":""}