@ytsaurus/ui 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +20 -20
- package/dist/public/build/js/1422.2980037b.chunk.js +2 -0
- package/dist/public/build/js/1422.2980037b.chunk.js.map +1 -0
- package/dist/public/build/js/{4253.1e48a7d8.chunk.js → 4253.9c5e22a8.chunk.js} +3 -3
- package/dist/public/build/js/4253.9c5e22a8.chunk.js.map +1 -0
- package/dist/public/build/js/{cluster-page-wrapper.d9f0e479.chunk.js → cluster-page-wrapper.7ee2ebb7.chunk.js} +2 -2
- package/dist/public/build/js/{cluster-page-wrapper.d9f0e479.chunk.js.map → cluster-page-wrapper.7ee2ebb7.chunk.js.map} +1 -1
- package/dist/public/build/js/{main.910247d4.js → main.83f42e63.js} +3 -3
- package/dist/public/build/js/{main.910247d4.js.map → main.83f42e63.js.map} +1 -1
- package/dist/public/build/js/query-tracker.2a1efcb7.chunk.js +2 -0
- package/dist/public/build/js/query-tracker.2a1efcb7.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.ff41a284.js → runtime.42f2261f.js} +2 -2
- package/dist/public/build/js/{runtime.ff41a284.js.map → runtime.42f2261f.js.map} +1 -1
- package/dist/public/build/js/{scheduling.43b30898.chunk.js → scheduling.893e96af.chunk.js} +2 -2
- package/dist/public/build/js/{scheduling.43b30898.chunk.js.map → scheduling.893e96af.chunk.js.map} +1 -1
- package/dist/public/build/js/yt-queries-list.3fb2ae8e.chunk.js +2 -0
- package/dist/public/build/js/yt-queries-list.3fb2ae8e.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +16 -16
- package/package.json +2 -2
- package/dist/public/build/js/2142.27bbbca6.chunk.js +0 -2
- package/dist/public/build/js/2142.27bbbca6.chunk.js.map +0 -1
- package/dist/public/build/js/4253.1e48a7d8.chunk.js.map +0 -1
- package/dist/public/build/js/query-tracker.17719828.chunk.js +0 -2
- package/dist/public/build/js/query-tracker.17719828.chunk.js.map +0 -1
- package/dist/public/build/js/yt-queries-list.0737c4ce.chunk.js +0 -2
- package/dist/public/build/js/yt-queries-list.0737c4ce.chunk.js.map +0 -1
- /package/dist/public/build/js/{4253.1e48a7d8.chunk.js.LICENSE.txt → 4253.9c5e22a8.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.910247d4.js.LICENSE.txt → main.83f42e63.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[5670],{10559:(e,t,n)=>{n.d(t,{A:()=>r});var s=n(40319),i=n(64922);const r=function(e){return(0,i.jsx)("svg",(0,s.A)((0,s.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,i.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z",clipRule:"evenodd"})}))}},13609:(e,t,n)=>{n.d(t,{D:()=>v,o:()=>g}),n(77810);var s=n(1435),i=n(1335),r=n(45760),a=n(87111),o=n(92611);const l=JSON.parse('{"context_tooltip":"AI chat","action_button":"Ask AI"}'),c=JSON.parse('{"context_tooltip":"AI чат","action_button":"Спросить AI"}'),u=(0,o.Kc)("yt:ai.chat.toggle-button",{en:l,ru:c});var d=n(14371),h=n(51404),m=n(83205),f=function(){var e=(0,d.w)();return{isConfigured:(0,d.d)(h.ly),toggle:function(){e((0,m.iJ)())}}},p=n(64922),v=function(e){var t=e.hideText,n=f(),o=n.isConfigured,l=n.toggle;return o?(0,p.jsx)(s.m,{content:u("context_tooltip"),children:(0,p.jsxs)(i.$,{view:"outlined-utility",size:"l",onClick:l,children:[(0,p.jsx)(r.I,{data:a.A,size:16}),!t&&u("action_button")]})}):null},x=n(28477),g=function(e){var t=e.compact,n=f(),s=n.isConfigured,i=n.toggle;return s?(0,p.jsx)(x.F,{compact:t,item:{id:"ai-chat",title:u("context_tooltip"),icon:a.A,onItemClick:i}},"ai-chat"):null}},33559:(e,t,n)=>{n.d(t,{r:()=>D});var s=n(64922),i=n(77810),r=n(49528),a=n(91689),o=n(1335),l=n(45760);const c=(0,n(47999).om)("dropdown-menu"),u=i.createContext({toggle(){},data:void 0});u.displayName="DropdownMenu.Context";var d=n(51741),h=n(70940),m=n(97012),f=n(73314),p=n(43904);function v(e,t,n=1,s){const i=(e.length+t-n%e.length)%e.length;return s&&s(e[i])?v(e,i,1,s):i}function x(e,t,n=1,s){const i=(t+n)%e.length;return s&&s(e[i])?x(e,i,1,s):i}var g=n(21211);const b=[],A=i.createContext({activeMenuPath:b,setActiveMenuPath:()=>{},anchorRef:{current:null}}),w=({anchorRef:e,children:t,disabled:n})=>{const[r,a]=i.useState(b);i.useEffect((()=>{n&&a(b)}),[n]);const o=i.useMemo((()=>({activeMenuPath:r,setActiveMenuPath:a,anchorRef:e})),[r,e]);return(0,s.jsx)(A.Provider,{value:o,children:t})},j={text:"",action:()=>{},path:[]};function k(e){return e===j}function y(e){return e.disabled||k(e)}function C(e){return e?.join(" ")??""}const S=({items:e,open:t,anchorRef:n,onClose:r,size:a,menuProps:o,children:l,popupProps:d,path:h=[]})=>{const{toggle:f,data:b}=i.useContext(u),{activeMenuPath:w,setActiveMenuPath:j,anchorRef:S}=i.useContext(A),N=h.length>0,I=i.useCallback((()=>{j(h.slice(0,h.length-1))}),[j,h]),P=i.useCallback((()=>{j(h)}),[h,j]),D=i.useCallback((()=>{I()}),[I]),M=i.useCallback(((e,t)=>{e.items&&e.path?j(e.path):(e.action?.(t,b),f(!1))}),[b,j,f]),R=i.useCallback(((t,n)=>{switch(n.key){case p.D.ESCAPE:return N&&(n.stopPropagation(),I?.()),!1;case p.D.ENTER:case p.D.SPACEBAR:{const s=e[t],i=s?.items;return(N||i)&&(n.stopPropagation(),n.preventDefault()),s&&M(s,n),!1}}return!0}),[I,M,N,e]),z=t&&C(h)===C(w),{activeItemIndex:B,setActiveItemIndex:L,reset:O}=function({items:e,skip:t,pageSize:n,processHomeKey:s=!0,processEndKey:r=!0,anchorRef:a,disabled:o=!1,initialValue:l=-1,onAnchorKeyDown:c}){const[u,d]=i.useState(l),h=i.useCallback((()=>{d(l)}),[l]);return i.useEffect((()=>{e&&h()}),[e,h]),i.useLayoutEffect((()=>{if(o)return;if(!e.some((e=>!t?.(e))))return;const i=a?.current;if(!i)return;const l=i=>{const a=c?.(u,i);if(!1!==a)switch(i.key){case p.D.ARROW_DOWN:i.preventDefault(),d((n=>x(e,n,1,t)));break;case p.D.ARROW_UP:i.preventDefault(),d((n=>v(e,n,1,t)));break;case p.D.PAGE_DOWN:if(!n)return;i.preventDefault(),d((s=>x(e,s,n,t)));break;case p.D.PAGE_UP:if(!n)return;i.preventDefault(),d((s=>v(e,s,n,t)));break;case p.D.HOME:if(!s)return;i.preventDefault(),d((n=>v(e,n,n,t)));break;case p.D.END:if(!r)return;i.preventDefault(),d((n=>v(e,n,n+1,t)))}};return i.addEventListener("keydown",l),()=>{i.removeEventListener("keydown",l)}}),[u,a,o,e,c,n,r,s,t]),{activeItemIndex:u,setActiveItemIndex:d,reset:h}}({items:e,skip:y,anchorRef:S,onAnchorKeyDown:R,disabled:!z,initialValue:N?0:-1});return i.useEffect((()=>{t||O()}),[t,O]),(0,s.jsx)(g.z,{open:t,anchorRef:n,onClose:r,placement:"bottom-start",...d,children:(0,s.jsx)("div",{onMouseEnter:P,onMouseLeave:D,className:c("popup-content"),children:l||(0,s.jsx)(m.W,{className:c("menu"),size:a,...o,children:e.map(((e,n)=>{const i=z&&B===n,o=t&&!i&&0!==w.length&&C(e.path)===C(w.slice(0,e.path.length)),l={...e.extraProps,onMouseEnter:()=>L(n)};return(0,s.jsx)(E,{size:a,className:c("menu-item",{separator:k(e),"active-parent":o,"with-submenu":Boolean(e.items?.length)},e.className),selected:i,popupProps:d,closeMenu:r,...e,extraProps:l},n)}))})})})};function N(e,t){return e?.every(((e,n)=>e===t?.[n]))??!1}function I({items:e,path:t}){const{activeMenuPath:n,setActiveMenuPath:s}=i.useContext(A),r=Boolean(t)&&Boolean(e?.length),a=i.useCallback((()=>{t&&s(t.slice(0,t.length-1))}),[t,s]),o=i.useCallback((()=>{t&&s(t)}),[t,s]);return{hasSubmenu:r,isSubmenuOpen:N(t,n),openSubmenu:o,closeSubmenu:a}}const E=({text:e,action:t,items:n,popupProps:r,closeMenu:a,children:o,path:p,size:v,...x})=>{const{toggle:g,data:b}=i.useContext(u),A=i.useRef(null),w=(0,f.j)(),{hasSubmenu:j,isSubmenuOpen:k,closeSubmenu:y,openSubmenu:C}=I({items:n,path:p}),N=i.useCallback((()=>{const e=()=>{a?a():g(!1)};j?(y(),requestAnimationFrame(e)):e()}),[a,y,j,g]),E=i.useCallback((e=>{j||(t?.(e,b),N())}),[t,b,N,j]),P=i.useMemo((()=>({...x.extraProps,onMouseEnter:e=>{x.extraProps?.onMouseEnter?.(e),j&&C()},onMouseLeave:e=>{x.extraProps?.onMouseLeave?.(e),j&&y()}})),[x.extraProps,y,j,C]),D=i.useMemo((()=>"rtl"===w?["left-start","right-start"]:["right-start","left-start"]),[w]),M=i.useMemo((()=>j?(0,s.jsx)(l.I,{data:"rtl"===w?d.A:h.A,size:10,className:c("sub-menu-arrow")}):x.iconEnd),[j,w,x.iconEnd]);return(0,s.jsxs)(i.Fragment,{children:[(0,s.jsx)(m.W.Item,{ref:A,...x,extraProps:P,onClick:E,iconEnd:M,children:e||o}),j&&n&&(0,s.jsx)(S,{popupProps:{...r,className:c("sub-menu",r?.className),placement:D},size:v,items:n,path:p,open:k,anchorRef:A,onClose:N})]})};function P(e,t,n=[],s=0){const i=[];let r=!1,a=s;for(const s of e)if(Array.isArray(s)){const e=P(s,t,n,a);0!==i.length&&i.push(t),i.push(...e),a+=e.length,r=!0}else{if(s.hidden)continue;r&&i.push(t);const e={...s,path:[...n,a++]};s.items&&(e.items=P(s.items,t,e.path)),i.push(e),r=!1}return i}const D=Object.assign((({items:e=[],size:t="m",icon:n=(0,s.jsx)(l.I,{data:r.A}),open:d,onOpenToggle:h,hideOnScroll:m=!0,data:f,disabled:p,switcher:v,renderSwitcher:x,switcherWrapperClassName:g,defaultSwitcherProps:b,defaultSwitcherClassName:A,onSwitcherClick:k,menuProps:y,popupProps:C,children:N})=>{const I=i.useRef(null),{isPopupShown:E,togglePopup:D,closePopup:M}=function(e,t,n){const[s,r]=function(e,t,n,s=void 0!==e&&void 0!==t){const r=function(e,t){const[n,s]=i.useState(e);return[n,i.useCallback((e=>{"function"==typeof e?s((n=>{const s=e(n);return t?.(s),s})):(t?.(e),s(e))}),[t])]}(e||n,t);return s?[e,t]:r}(e,t,!1),a=i.useCallback((e=>{r((t=>"boolean"==typeof e?e:!t))}),[r]),o=i.useCallback((()=>{r(!1)}),[r]);return i.useEffect((()=>{n&&s&&o()}),[o,n,s]),{isPopupShown:s,togglePopup:a,closePopup:o}}(d,h,p);!function(e,t,n){i.useEffect((()=>{if(n)return;const s=n=>{n.target.contains(t.current)&&e(n)};return document.addEventListener("scroll",s,!0),()=>{document.removeEventListener("scroll",s,!0)}}),[t,e,n])}(M,I,!E||!m);const R=i.useMemo((()=>({toggle:D,data:f})),[f,D]),z=i.useMemo((()=>P(e,j)),[e]),B=i.useCallback((e=>{p||(k?.(e),D())}),[p,k,D]),{onKeyDown:L}=(0,a.N)(B),O=i.useMemo((()=>({onClick:B,onKeyDown:L})),[B,L]);return(0,s.jsxs)(u.Provider,{value:R,children:[(0,s.jsx)("div",{ref:I,className:c("switcher-wrapper",g),...x?{}:O,children:x?.(O)||v||(0,s.jsx)(o.$,{view:"flat",size:t,...b,className:c("switcher-button",A),disabled:p,children:n})}),(0,s.jsx)(w,{anchorRef:I,disabled:!E,children:(0,s.jsx)(S,{items:z,open:E,size:t,menuProps:y,anchorRef:I,onClose:M,popupProps:C,children:N})})]})}),{Item:E})},48526:(e,t,n)=>{function s(e){return function(e){return/image\/.*/.test(e)}(e)||function(e){return/video\/.*/.test(e)}(e)}n.d(t,{F_:()=>s})},51741:(e,t,n)=>{n.d(t,{A:()=>i});var s=n(77810);const i=e=>s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),s.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.53 2.97a.75.75 0 0 1 0 1.06L6.56 8l3.97 3.97a.75.75 0 1 1-1.06 1.06l-4.5-4.5a.75.75 0 0 1 0-1.06l4.5-4.5a.75.75 0 0 1 1.06 0",clipRule:"evenodd"}))},54286:(e,t,n)=>{n.r(t),n.d(t,{QueryTracker:()=>te,QueryTrackerTopRow:()=>Ae});var s=n(9736),i=n(40319),r=n(77810),a=n(14371),o=n(64965),l=n(40295),c=n(35788),u=n(80886),d=n(30996),h=n(52142),m=function(e){var t=e.shouldListen,n=(0,r.useCallback)((function(e){e.preventDefault(),e.returnValue=!0}),[]);(0,r.useEffect)((function(){return t&&window.addEventListener("beforeunload",n),function(){return window.removeEventListener("beforeunload",n)}}),[t])},f=n(59028),p=n(18472),v=n(95942),x=(0,p.Mz)(v.u,(function(e){return Boolean(e["global::queryTracker::queriesListSidebarVisibilityMode"])})),g=function(){var e=(0,a.w)(),t=(0,a.d)(x);return{isQueriesListSidebarVisible:t,toggleQueriesListSideBarToggle:function(){e((0,f.rw)("global::queryTracker::queriesListSidebarVisibilityMode",!t))}}},b=n(29970),A=n(53775),w=n(28407),j=(0,n(33882).A)(r.lazy((0,w.A)((0,A.A)().mark((function e(){return(0,A.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all([n.e(8096),n.e(355),n.e(1286),n.e(6808),n.e(7700)]).then(n.bind(n,66911));case 2:return e.t0=e.sent.QueriesList,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)}))))),k=n(3035),y=n(82785),C=n(76872),S=n(78369),N=n(87575),I=n(24686),E=n(61033),P=n(57660),D=n(30469),M=n(28099),R=n(64922);const z=function(e){return(0,R.jsx)("svg",(0,i.A)((0,i.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,R.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M8.75 3.5H12A1.5 1.5 0 0 1 13.5 5v6a1.5 1.5 0 0 1-1.5 1.5H8.75zm-1.5 0H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h3.25zM1 5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3z",clipRule:"evenodd"})}))};var B=n(45760),L=n(3962),O=n(1335),q=n(76866),_=(0,C.A)("file-editor"),F={fontSize:14,language:"plaintext",renderWhitespace:"boundary",minimap:{enabled:!0}},T=function(){var e=(0,a.w)(),t=(0,a.d)(I.M7),n=t.fileEditor,s=t.file,o=(0,r.useRef)();return s?(0,R.jsxs)("div",{className:_(),children:[(0,R.jsxs)("div",{className:_("header"),children:[(0,R.jsxs)("div",{className:_("header-side"),children:[(0,R.jsx)(B.I,{data:P.A,size:16}),(0,R.jsx)(L.E,{variant:"subheader-1",ellipsis:!0,children:s.name})]}),(0,R.jsxs)("div",{className:_("header-side"),children:[(0,R.jsx)(O.$,{view:"flat",onClick:function(){e((0,N.QH)((0,i.A)((0,i.A)({},n),{},{isFullWidth:!n.isFullWidth})))},children:(0,R.jsx)(B.I,{data:n.isFullWidth?z:M.A,size:16})}),(0,R.jsx)(O.$,{view:"flat",onClick:function(){e((0,N.QH)((0,i.A)((0,i.A)({},n),{},{isOpen:!1,isFullWidth:!1})))},children:(0,R.jsx)(B.I,{data:D.A,size:16})})]})]}),(0,R.jsx)(q.A,{className:_("editor"),editorRef:o,value:s.content||"",language:"plaintext",onChange:function(t){s&&e((0,E.Ro)((0,i.A)((0,i.A)({},s),{},{content:t})))},monacoConfig:F})]}):null},Q=[50,50],H=function(e){var t=e.fileEditorFullWidth,n=e.fileEditorVisible,i=e.onStartQuery,a=(0,r.useState)(Q),o=(0,s.A)(a,2),c=o[0],u=o[1],d=!(n&&t);return(0,R.jsxs)(l.A,{direction:l.A.HORIZONTAL,onResizeEnd:u,getInitialSizes:function(){return c},children:[d&&(0,R.jsx)(S.w,{onStartQuery:i,showStatusInTitle:!0}),n&&(0,R.jsx)(T,{})]})},V=n(47001),W=n(89494),$=n(34206),K=n(20361),U=function(e){var t=e.title,n=e.message,i=e.ignoreSamePath,a=void 0===i||i,l=(0,r.useState)(!1),c=(0,s.A)(l,2),u=c[0],d=c[1],h=(0,o.W6)(),m=(0,r.useRef)(!1),f=(0,r.useRef)(),p=(0,r.useCallback)((function(e){var t=window.location.pathname===e.pathname&&a;if(!m.current&&!t)return f.current=e,d(!0),!1}),[a]),v=function(){var e=(0,w.A)((0,A.A)().mark((function e(){return(0,A.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:d(!1),f.current&&(m.current=!0,h.push(f.current.pathname));case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,r.useEffect)((function(){var e=h.block(p);return function(){return e()}}),[h,p]),(0,R.jsx)(K.yZ,{visible:u,pristineSubmittable:!0,headerProps:{title:t},fields:[{type:"block",name:"message",extras:{children:n}}],onAdd:v,onClose:function(){d(!1)}})},J=n(94383),Z=(0,C.A)("query-tracker-page"),G=[20,80],Y=380;function X(){var e,t=(0,a.w)(),n=(0,a.d)(b.Jg),s=(0,a.d)(V.rS),o=null!==(e=(0,a.d)(J.Xq))&&void 0!==e?e:d.d.YQL;return(0,r.useEffect)((function(){var e=n.engine&&(0,u.p7)(n.engine)?n.engine:o;n.cluster&&n.path?(n.useDraft&&t({type:$.ZD,data:{params:(0,i.A)((0,i.A)({},n),{},{useDraft:void 0})}}),t((0,h.I2)(e,n.cluster,n.path,{useDraft:!0}))):t((0,h.cQ)()),s&&t((0,f.rw)("global::queryTracker::queriesListSidebarVisibilityMode",!0))}),[t]),null}function ee(e){var t=(0,a.w)();return(0,r.useEffect)((function(){t({type:$.ZD,data:{params:{}}}),e.match.params.queryId?t((0,h.rc)(e.match.params.queryId)):t((0,h.cQ)())}),[t,e.match.params.queryId]),null}function te(e){var t=e.match,n=g(),i=n.isQueriesListSidebarVisible,u=n.toggleQueriesListSideBarToggle,d=(0,a.d)(b.xs),f=(0,a.d)(I.gU);m({shouldListen:d});var p=(0,r.useState)(G),v=(0,s.A)(p,2),x=v[0],A=v[1],w=(0,r.useMemo)((function(){return function(){return x}}),[x]),C=(0,a.w)(),S=(0,k.t)().loadQueryTrackerInfo,N=(0,r.useCallback)((function(e){return C((0,h.wu)(e)),!0}),[C]);return(0,r.useEffect)((function(){new URLSearchParams(window.location.search).get("listMode")&&!i&&u(),S()}),[]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(o.dO,{children:[(0,R.jsx)(o.qh,{exact:!0,path:t.path,component:X}),(0,R.jsx)(o.qh,{path:"".concat(t.path,"/:queryId"),component:ee})]}),(0,R.jsx)(y.P.Provider,{value:new Map,children:(0,R.jsx)(c.Z,{children:(0,R.jsxs)(l.A,{className:Z("container"),direction:l.A.HORIZONTAL,onResizeEnd:A,minSize:Y,getInitialSizes:w,children:[i?(0,R.jsx)(j,{}):null,(0,R.jsx)(H,{fileEditorFullWidth:f.isFullWidth,fileEditorVisible:f.isOpen,onStartQuery:N})]})})}),(0,R.jsx)(W.A,{}),d&&(0,R.jsx)(U,{title:"Unsaved changes",message:"You have unsaved changes in this query. Do you want to continue and lose them?"})]})}var ne=n(64859),se=n(19314),ie=n(88787);function re(){var e=g(),t=e.isQueriesListSidebarVisible,n=e.toggleQueriesListSideBarToggle;return(0,R.jsx)(O.$,{view:"outlined",size:"l",title:"".concat(t?"Hide":"Show"," queries list"),onClick:n,children:(0,R.jsx)(ie.A,{awesome:"layout-side-content",size:16})})}var ae=n(95910),oe=n(55339),le=n(13609),ce=function(e){var t=e.onQueryCreate;return(0,R.jsxs)(oe.s,{gap:2,children:[(0,R.jsx)(re,{}),(0,R.jsx)(le.D,{}),(0,R.jsx)(ae.f,{onClick:t})]})},ue=n(42599),de=n(1435),he=n(37068),me=n(23069),fe=n(36612),pe=n(12094),ve=n(68987),xe=n(14855),ge=n(64735),be=(0,C.A)("query-tracker-top-row");const Ae=function(){var e=(0,a.w)(),t=function(){var e=(0,r.useState)(!1),t=(0,s.A)(e,2),n=t[0],i=t[1];return(0,r.useEffect)((function(){var e=function(){i(window.matchMedia("(min-width: 1280px)").matches)};return e(),window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),n}(),n=(0,a.d)(b.sh),i=n.annotations,o=n.settings,l=(0,r.useState)(!1),c=(0,s.A)(l,2),u=c[0],d=c[1],m=(0,r.useCallback)((function(t){e((0,h.D4)(t)),e((0,f.rw)("global::queryTracker::lastEngine",t)),e((0,h.VR)())}),[e]),p=(0,r.useCallback)((function(){e((0,h.IH)())}),[e]),v=(0,r.useCallback)((function(t){e((0,h.Bn)({annotations:{title:t}}))}),[e]),x=(0,r.useCallback)((function(t){return e((0,h.Bn)({settings:t}))}),[e]),g=(null==i?void 0:i.title)||"No name";return(0,R.jsxs)(ne.K,{page:se.YW.QUERIES,className:be(),children:[(0,R.jsxs)(oe.s,{alignItems:"center",gap:4,grow:1,children:[(0,R.jsx)(ve.c,{className:be("name-input"),onChange:v,size:"l",text:null==i?void 0:i.title,cancelOnClose:!0,withControls:!0,openOnClick:!0,onModeChange:d,saveButtonView:"action",cancelButtonView:"outlined",children:(0,R.jsx)(de.m,{content:g,children:(0,R.jsx)(L.E,{ellipsis:!0,children:g})})}),!u&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ue.d,{}),(0,R.jsx)(xe.s,{}),(0,R.jsx)(he.u,{isDesktop:t,onChange:m}),(0,R.jsx)(pe.y,{}),(0,R.jsxs)(oe.s,{gap:2,children:[(0,R.jsx)(me.g,{settings:o,onChange:x}),(0,R.jsx)(fe.y,{}),(0,R.jsx)(ge._3,{})]})]})]}),(0,R.jsx)(ce,{onQueryCreate:p})]})}},57486:(e,t,n)=>{n.d(t,{A:()=>x});var s=n(29121),i=n(12937),r=n(66134),a=n(10785),o=n(68175),l=n(77810),c=n(76872),u=n(64772),d=n(88787),h=n(19410),m=n(44458),f=n(64922),p=(0,c.A)("sort-icon"),v=(0,o.A)((0,o.A)((0,o.A)((0,o.A)((0,o.A)((0,o.A)((0,o.A)({},"","sort"),"asc","sort-up"),"desc","sort-down"),"asc-undefined","arrow-to-bottom"),"desc-undefined","arrow-from-bottom"),"undefined-asc","arrow-from-top"),"undefined-desc","arrow-to-top"),x=function(e){function t(){var e;(0,s.A)(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return(e=(0,r.A)(this,t,[].concat(i))).onClick=function(){var t=e.props,n=t.order,s=t.onChange,i=t.allowUnordered,r=t.withUndefined;s&&s((0,m.$N)(n,i,r))},e}return(0,a.A)(t,e),(0,i.A)(t,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.label,s=e.order,i=e.hidden,r=v[s||""];return(0,f.jsxs)("span",{className:p({hidden:i},t),onClick:this.onClick,children:[n&&(0,f.jsx)("span",{className:p("label"),children:n}),(0,f.jsx)(h.m,{className:p("icon"),content:s?u.A.ReadableField(s):"Unordered",children:(0,f.jsx)(d.A,{awesome:r,face:"solid"})})]})}}])}(l.Component)},64735:(e,t,n)=>{n.d(t,{_3:()=>u,mT:()=>c,rJ:()=>l});var s=n(53775),i=n(28407),r=n(77810),a=n(33882);function o(){return Promise.all([n.e(7954),n.e(4108),n.e(2701),n.e(3996),n.e(2113),n.e(2431)]).then(n.bind(n,72136))}var l=(0,a.A)(r.lazy((0,i.A)((0,s.A)().mark((function e(){return(0,s.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o();case 2:return e.t0=e.sent.AddQueryTokenFormButton,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)}))))),c=(0,a.A)(r.lazy((0,i.A)((0,s.A)().mark((function e(){return(0,s.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o();case 2:return e.t0=e.sent.QueryTokenTable,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)}))))),u=(0,a.A)(r.lazy((0,i.A)((0,s.A)().mark((function e(){return(0,s.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o();case 2:return e.t0=e.sent.QueryTokenButton,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))))},68987:(e,t,n)=>{n.d(t,{c:()=>d});var s=n(9736),i=n(77810),r=n(76872),a=n(69764),o=n(88787),l=n(58299),c=n(64922),u=(0,r.A)("editable-as-text");function d(e){var t=e.children,n=e.onChange,r=e.text,d=e.className,h=e.withControls,m=e.size,f=e.disableEdit,p=e.cancelOnClose,v=e.renderEditor,x=e.renderContent,g=e.onModeChange,b=e.saveButtonView,A=void 0===b?"normal":b,w=e.cancelButtonView,j=void 0===w?"normal":w,k=i.useState(!1),y=(0,s.A)(k,2),C=y[0],S=y[1],N=i.useState(r||""),I=(0,s.A)(N,2),E=I[0],P=I[1];(0,i.useEffect)((function(){P(r||"")}),[r]);var D=(0,i.useCallback)((function(e){g&&g(e),S(e)}),[g]),M=i.useCallback((function(){D(!1),p&&P(r||"")}),[p,D,r]),R=(0,i.useCallback)((function(){D(!0)}),[D]),z=i.useCallback((function(e){return P(null!=e?e:"")}),[P]),B=(0,i.useCallback)((function(){D(!1),n(E)}),[n,D,E]),L=(0,i.useCallback)((function(){D(!1),P(r||"")}),[D,r]),O=(0,i.useCallback)((function(e){D(!1),n(e)}),[D,n]),q=i.useCallback((function(e){"Enter"===e.key&&B(),"Escape"===e.key&&L()}),[B,L]),_=m||"m";return(0,c.jsx)(c.Fragment,{children:C?(0,c.jsxs)("div",{className:u({edit:!f,controls:Boolean(h)},d),children:[v?v({value:E,onChange:z,className:u("control"),onBlur:M,onApply:O}):(0,c.jsx)(a.k,{className:u("control"),autoFocus:!0,size:_,value:E,onUpdate:z,onKeyDown:q,onBlur:M}),h&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(l.A,{className:u("control"),view:A,extraProps:{onMouseDown:B},size:_,children:(0,c.jsx)(o.A,{awesome:"check",size:_})}),(0,c.jsx)(l.A,{className:u("control"),view:j,extraProps:{onMouseDown:L},size:_,children:(0,c.jsx)(o.A,{awesome:"times",size:_})})]})]}):x?x({renderEditButton:function(){return(0,c.jsx)(c.Fragment,{children:!f&&(0,c.jsx)(l.A,{className:u("control",{type:"edit"}),view:"outlined",onClick:R,size:_,qa:"edit-text-button",children:(0,c.jsx)(o.A,{awesome:"pencil",size:_})})})},className:u(null,d)}):(0,c.jsxs)("div",{className:u(null,d),children:[t,!f&&(0,c.jsx)(l.A,{className:u("control",{type:"edit"}),view:"outlined",onClick:R,size:_,qa:"edit-text-button",children:(0,c.jsx)(o.A,{awesome:"pencil",size:_})})]})})}},70940:(e,t,n)=>{n.d(t,{A:()=>i});var s=n(77810);const i=e=>s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),s.createElement("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"}))},77648:(e,t,n)=>{n.d(t,{A:()=>H,Y:()=>_});var s=n(9736),i=n(13322),r=n(29121),a=n(12937),o=n(66134),l=n(10785),c=n(40319),u=n(77810),d=n(75826),h=n.n(d),m=n(76872),f=n(43676),p=n(25147),v=n.n(p),x=n(15757),g=n.n(x),b=n(45098),A=n.n(b),w=n(49214),j=n.n(w),k=n(27528),y=n.n(k),C=n(90636),S=n.n(C),N=n(75414),I=n.n(N),E=n(69764),P=n(88787),D=n(98840),M=n(58299),R=n(92611);const z=JSON.parse('{"search":"Search..."}'),B=JSON.parse('{"search":"Найти..."}'),L=(0,R.Kc)("yt:Columnselector",{en:z,ru:B});var O=n(64922),q=(0,m.A)("column-selector");function _(e){return y()(e,(function(e){return(0,c.A)({},e)}))}var F=(0,f.ni)((function(){return(0,O.jsx)("div",{className:q("drag-handle"),children:(0,O.jsx)(P.A,{face:"solid",awesome:"list"})})})),T=(0,f.HK)((function(e){var t=e.item,n=e.isSortable,s=e.isSelectable,i=e.isDisabled,r=e.itemRenderer,a=e.onCheckBoxChange,o=!i&&!t.disabled,l=q("list-item",{selected:t.checked&&o&&"yes",selectable:s&&o&&"yes",disabled:!o&&"yes"}),c=!0;return t.checked&&(c=!("isDeletable"in t)||t.isDeletable),(0,O.jsxs)("div",{className:l,children:[n&&t.checked&&(0,O.jsx)(F,{}),(0,O.jsxs)("div",{className:q("list-item-name"),children:[t.keyColumn&&(0,O.jsx)(P.A,{awesome:"key"}),r(t)]}),o&&c&&(0,O.jsx)("span",{className:q("list-item-check"),onClick:a,"data-item":t.name,children:(0,O.jsx)(P.A,{awesome:"check"})}),!o&&(0,O.jsx)(P.A,{className:q("list-item-lock"),awesome:"lock"})]})})),Q=(0,f.SG)((function(e){var t=e.items,n=e.isSortable,s=e.isDisabled,i=e.itemRenderer,r=e.onCheckBoxChange,a=e.isSelectable,o=e.useStaticSize,l=n?"simple":"uniform",c={"static-size":o};return(0,O.jsx)("div",{className:q("list",c),children:(0,O.jsx)(v(),{itemRenderer:function(e,o){var l=t[e];return(0,O.jsx)(T,{index:e,item:l,disabled:!n,isSortable:n,isDisabled:s,isSelectable:a,itemRenderer:i,onCheckBoxChange:r},o)},length:t.length,type:l})})})),H=function(e){function t(e){var n;(0,r.A)(this,t);var a=e.items,l=e.isHeadless,u=e.showSelectedOnly;(n=(0,o.A)(this,t,[e])).toggleItem=function(e){n.withActualItems((function(t){var n=t.items,s=(n=(0,i.A)(n)).findIndex((function(t){return t.name===e})),r=n[s];return n[s]=(0,c.A)((0,c.A)({},r),{},{checked:!r.checked}),{items:n}}))},n.selectAllItems=function(){n.withActualItems((function(e){var t=e.items,s=n.getVisibleItemsMap();return t=(0,i.A)(t),g()(t,(function(e,n){s[e.name]&&(e.checked||e.disabled||(t[n]=(0,c.A)((0,c.A)({},e),{},{checked:!0})))})),{items:t}}))},n.deselectAllItems=function(){n.withActualItems((function(e){var t=e.items,s=n.getVisibleItemsMap();return t=(0,i.A)(t),g()(t,(function(e,n){var i;s[e.name]&&(!e.checked||e.disabled||null!==(i=e.isDeletable)&&void 0!==i&&!i||(t[n]=(0,c.A)((0,c.A)({},e),{},{checked:!1})))})),{items:t}}))},n.invertItems=function(){n.withActualItems((function(e){var t=e.items,s=n.getVisibleItemsMap();return t=(0,i.A)(t),g()(t,(function(e,n){s[e.name]&&(e.disabled||(t[n]=(0,c.A)((0,c.A)({},e),{},{checked:!e.checked})))})),{items:t}}))},n._handleCheckBoxChange=function(e){n.toggleItem(e.currentTarget.getAttribute("data-item"))},n._handleSortEnd=function(e){var t=e.oldIndex,r=e.newIndex;t!==r&&n.withActualItems((function(e){var a=e.items;a=(0,i.A)(a);var o=n.getVisibleItems().items,l=a.findIndex((function(e){return e.name===o[t].name})),c=a.findIndex((function(e){return e.name===o[r].name})),u=a.splice(l,1),d=(0,s.A)(u,1)[0];return a.splice(c,0,d),{items:a}}))},n._handleDefaultSort=function(){n.withActualItems((function(e){return{items:e.items.sort((function(e,t){var n=e.caption||e.name,s=t.caption||t.name;return n.localeCompare(s)}))}}))},n._toggleShownItems=function(){n.setState((function(e){return{showSelectedOnly:!e.showSelectedOnly}}))},n._changeFilter=function(e){n.setState({filter:e})};var d={showSelectedOnly:u,filter:""};return l&&Object.assign(d,{items:_(a)}),n.state=d,n}return(0,l.A)(t,e),(0,a.A)(t,[{key:"items",get:function(){return this.props.isHeadless?this.state.items:this.props.items}},{key:"buttonALLisDisabled",get:function(){return this.items.every((function(e){return e.checked}))}},{key:"buttonNONEisDisabled",get:function(){return!this.items.some((function(e){return e.checked}))}},{key:"withActualItems",value:function(e){var t=this,n=this.props.onChange;if(this.props.isHeadless){var s=e({items:this.state.items||[]}).items;this.setState({items:s},(function(){n({items:(0,i.A)(t.state.items)})}))}else{var r=e({items:this.props.items||[]}).items;n({items:(0,i.A)(r)})}}},{key:"renderSearchBox",value:function(){return(0,O.jsx)(E.k,{placeholder:L("search"),onUpdate:this._changeFilter,value:this.state.filter,hasClear:!0})}},{key:"renderControls",value:function(){var e=this.props,t=e.isFilterable,n=e.isSelectable,s=e.isSortable,i=e.isHeadless,r={size:"m",className:q("controls-item")};return(0,O.jsxs)("div",{className:q("controls"),children:[t&&this.renderSearchBox(),i&&(0,O.jsxs)(M.A,(0,c.A)((0,c.A)({},r),{},{onClick:this._toggleShownItems,children:["Selected ",(0,O.jsx)("span",{className:"elements-secondary-text",children:j()(this.items,(function(e){return e.checked})).length})]})),n&&(0,O.jsx)(M.A,(0,c.A)((0,c.A)({},r),{},{disabled:this.buttonALLisDisabled,onClick:this.selectAllItems,children:"Add all"})),n&&(0,O.jsx)(M.A,(0,c.A)((0,c.A)({},r),{},{onClick:this.invertItems,children:"Invert list"})),!n&&(0,O.jsx)(M.A,(0,c.A)((0,c.A)({},r),{},{disabled:this.buttonNONEisDisabled,onClick:this.deselectAllItems,children:"Remove all"})),s&&(0,O.jsx)(M.A,(0,c.A)((0,c.A)({},r),{},{onClick:this._handleDefaultSort,children:"Default sort"}))]})}},{key:"filterItemsByName",value:function(e){var t=new RegExp(A()(this.state.filter),"i");return j()(e,(function(e){return t.test(e.name)}))}},{key:"filterItems",value:function(e){e=this.props.showDisabledItems?e:j()(e,(function(e){return!e.disabled}));var t=this.filterItemsByName(e);return this.state.showSelectedOnly?j()(t,(function(e){return e.checked})):t}},{key:"getVisibleItems",value:function(){var e=this.filterItems(this.items),t=S()(e,(function(e){return e.keyColumn})),n=(0,s.A)(t,2),i=n[0];return{items:n[1],keyItems:i}}},{key:"getVisibleItemsMap",value:function(){return I()(this.filterItems(this.items),(function(e,t){return e[t.name]=t,e}),{})}},{key:"renderList",value:function(){var e=this.props,t=e.isSortable,n=e.isSelectable,s=e.itemRenderer,i=e.children,r=e.isHeadless,a=this.getVisibleItems(),o=a.items,l=a.keyItems,c=q("content",{headless:r?void 0:"no",empty:o.length?void 0:"yes"},"pretty-scroll");return(0,O.jsxs)("div",{className:c,children:[l.length>0&&(0,O.jsxs)(u.Fragment,{children:[(0,O.jsx)(Q,{lockAxis:"y",isDisabled:!1,isSortable:!1,isSelectable:n,items:l,itemRenderer:s,helperClass:q("list-item",{helper:"yes"}),onCheckBoxChange:this._handleCheckBoxChange}),o.length>0&&(0,O.jsx)("div",{className:q("separator")})]}),o.length>0&&(0,O.jsx)(Q,{items:o,isSelectable:n,isSortable:t,itemRenderer:s,lockAxis:"y",helperClass:q("list-item",{helper:"yes"}),onSortEnd:this._handleSortEnd,onCheckBoxChange:this._handleCheckBoxChange,useDragHandle:!0}),!l.length&&!o.length&&i]})}},{key:"render",value:function(){var e=this.props,t=e.isHeadless,n=e.isSortable,s=e.className,i=q({headless:t?"yes":void 0,sortable:n?void 0:"no"},s);return(0,O.jsxs)("div",{className:i,children:[this.renderControls(),this.renderList()]})}}])}(u.Component);H.itemsProps=h().arrayOf(h().shape({name:h().string.isRequired,checked:h().bool.isRequired,keyColumn:h().bool,caption:h().string,disabled:h().bool})),H.defaultProps={itemRenderer:function(e){var t=e.name,n=e.caption,s=void 0===n?t:n;return(0,D.S5)(s,{asHTML:!1})},isSortable:!1,isHeadless:!1,isSelectable:!0,isFilterable:!0,showSelectedOnly:!1}},89494:(e,t,n)=>{n.d(t,{A:()=>j}),n(77810);var s=n(14371),i=n(55339),r=n(3962),a=n(63366),o=function(e){return e.navigation.modals.cellPreviewModal.visible},l=function(e){return e.navigation.modals.cellPreviewModal.loading},c=function(e){return e.navigation.modals.cellPreviewModal.data},u=function(e){return e.navigation.modals.cellPreviewModal.ytCliDownloadCommand},d=function(e){return e.navigation.modals.cellPreviewModal.noticeText},h=function(e){return e.navigation.modals.cellPreviewModal.error},m=n(44131),f=n(76872),p=n(78519),v=n(8208),x=n(4386),g=n(75566),b=n(48526),A=n(64922),w=(0,f.A)("cell-preview-modal"),j=function(){var e=(0,s.w)(),t=(0,s.d)(l),n=(0,s.d)(c),f=(0,s.d)(o),p=(0,s.d)(u),b=(0,s.d)(d),j=(0,s.d)(h),y=(0,s.d)(x.fj);return(0,A.jsx)(a.A,{title:"Preview",visible:f,loading:t,onCancel:function(){return e((0,g.dW)())},wrapperClassName:w("wrapper"),children:(0,A.jsxs)(i.s,{qa:"cell-preview-modal-content",className:w("content"),gap:2,direction:"column",children:[(0,A.jsxs)(i.s,{gap:2,direction:"column",children:[(0,A.jsx)(r.E,{variant:"subheader-3",color:"secondary",children:b}),p?(0,A.jsx)("code",{className:w("command-wrapper"),children:(0,A.jsxs)("div",{className:w("command"),children:[(0,A.jsx)("div",{"data-qa":"cell-preview-command",className:w("command-content"),title:p,children:p}),(0,A.jsx)(m.A,{view:"flat-secondary",text:p,size:"s"})]})}):null]}),j?(0,A.jsx)(v.z,{error:j}):(0,A.jsx)(k,{data:n,unipikaSettings:y})]})})};function k(e){var t=e.data,n=e.unipikaSettings;return"yql.string"===(null==t?void 0:t.$type)||"yql.json"===(null==t?void 0:t.$type)?(0,A.jsx)("pre",{className:"elements-code",children:null==t?void 0:t.$value}):"yql.tagged"===(null==t?void 0:t.$type)&&t.$tag&&(0,b.F_)(t.$tag)?(0,A.jsx)("img",{src:"data:".concat(t.$tag,";base64,").concat(null==t?void 0:t.$value),alt:"image-preview"}):(0,A.jsx)(p.A,{className:w("yson-container"),folding:!0,value:null==t?void 0:t.$value,tableSettings:{dynamicRenderScrollParentGetter:void 0},settings:n,customLayout:function(e){var t=e.toolbar,n=e.content;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{className:w("toolbar"),children:t}),n]})}})}},97012:(e,t,n)=>{n.d(t,{W:()=>p});var s=n(64922),i=n(77810),r=n(47999),a=n(56854),o=n(49533);const l=(0,r.om)("menu"),c=i.forwardRef((function({label:e,children:t,style:n,className:i,qa:r},a){const c=(0,o.u)();return(0,s.jsx)("li",{ref:a,className:l("list-group-item"),children:(0,s.jsxs)("div",{style:n,className:l("group",i),"data-qa":r,children:[e&&(0,s.jsx)("div",{id:c,className:l("group-label"),children:e}),(0,s.jsx)("ul",{role:"group","aria-labelledby":c,className:l("group-list"),children:t})]})})}));var u=n(91689),d=n(5770);const h=(0,r.om)("menu"),m=i.forwardRef((function({iconStart:e,iconEnd:t,title:n,disabled:r,active:a,selected:o,href:l,target:c,rel:m,onClick:f,style:p,className:v,contentClassName:x,theme:g,extraProps:b,children:A,qa:w},j){const{onKeyDown:k}=(0,u.N)(f),y=i.useCallback((e=>{d.o.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),C={role:"menuitem",onKeyDown:f&&!r?k:void 0},S={title:n,onClick:r?void 0:f,onClickCapture:r?void 0:y,style:p,tabIndex:r?-1:0,className:h("item",{disabled:r,active:a,selected:o,theme:g,interactive:Boolean(f)||Boolean(l)},v),"data-qa":w},N=[e&&(0,s.jsx)("div",{className:h("item-icon"),children:e},"icon-start"),(0,s.jsx)("div",{className:h("item-content",x),children:A},"content"),t&&(0,s.jsx)("div",{className:h("item-icon-end"),children:t},"icon-end")];let I;return I=l?(0,s.jsx)("a",{...C,...b,...S,href:l,target:c,rel:m,children:N}):(0,s.jsx)("div",{...C,...b,...S,children:N}),(0,s.jsx)("li",{ref:j,className:h("list-item"),children:I})})),f=(0,r.om)("menu"),p=i.forwardRef((function({size:e="m",children:t,style:n,className:i,qa:r,...o},l){return(0,s.jsx)("ul",{...(0,a.$)(o,{labelable:!0}),ref:l,role:"menu",style:n,className:f({size:e},i),"data-qa":r,children:t})}));p.Item=m,p.Group=c}}]);
|
|
2
|
-
//# sourceMappingURL=query-tracker.17719828.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/query-tracker.17719828.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg","webpack://@ytsaurus/ui/./src/ui/containers/AiChat/ChatToggleButton/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/containers/AiChat/ChatToggleButton/useChatToggle.ts","webpack://@ytsaurus/ui/./src/ui/containers/AiChat/ChatToggleButton/ChatToggleButton.tsx","webpack://@ytsaurus/ui/./src/ui/containers/AiChat/ChatToggleButton/ChatToggleFooterButton.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenu.classname.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenuContext.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/hooks/useListNavigation/moveBack.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/hooks/useListNavigation/moveForward.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenuNavigationContext.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/constants.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/utils/isSeparator.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/utils/shouldSkipItemNavigation.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/utils/stringifyNavigationPath.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenuPopup.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/hooks/useListNavigation/useListNavigation.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/utils/isSubmenuOpen.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/hooks/useSubmenu.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenuItem.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/utils/toItemList.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/DropdownMenu.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/hooks/usePopupVisibility.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/hooks/private/useConditionallyControlledState/useConditionallyControlledState.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/hooks/private/useStateWithCallback/useStateWithCallback.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/utils/typeCheckers.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/DropdownMenu/hooks/useScrollHandler.ts","webpack://@ytsaurus/ui/./src/ui/utils/yql-types.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ChevronLeft.js","webpack://@ytsaurus/ui/./src/ui/hooks/use-prevent-unload.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/query-tracker/settings.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/QueriesList/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/lazy.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/layout-columns.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/FileEditor/FileEditor.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryEditorSplit.tsx","webpack://@ytsaurus/ui/./src/ui/components/RedirectConfirmModal/RedirectConfirmModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryTracker.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/RightButtonsGroup.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/index.tsx","webpack://@ytsaurus/ui/./src/ui/hooks/useIsDesktop.ts","webpack://@ytsaurus/ui/./src/ui/components/SortIcon/SortIcon.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryToken/lazy.ts","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ChevronRight.js","webpack://@ytsaurus/ui/./src/ui/components/ColumnSelector/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/components/ColumnSelector/ColumnSelector.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/modals/cell-preview.ts","webpack://@ytsaurus/ui/./src/ui/containers/CellPreviewModal/CellPreviewModal.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Menu/MenuGroup.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Menu/MenuItem.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Menu/Menu.tsx"],"sourcesContent":["const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;","import {addI18Keysets} from '../../../../i18n';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:ai.chat.toggle-button', {en, ru});\n","import {useDispatch, useSelector} from '../../../store/redux-hooks';\nimport {selectAiChatConfigured} from '../../../store/selectors/ai/chat';\nimport {toggleChatSidePanel} from '../../../store/actions/ai/chat';\n\nexport const useChatToggle = () => {\n const dispatch = useDispatch();\n const isConfigured = useSelector(selectAiChatConfigured);\n\n const handleToggle = () => {\n dispatch(toggleChatSidePanel());\n };\n\n return {\n isConfigured,\n toggle: handleToggle,\n };\n};\n","import React, {FC} from 'react';\nimport {Button, Icon, Tooltip} from '@gravity-ui/uikit';\nimport AiIcon from '../../../assets/img/svg/icons/ai-chat-icon.svg';\nimport i18n from './i18n';\nimport {useChatToggle} from './useChatToggle';\n\ntype Props = {\n hideText?: boolean;\n};\n\nexport const ChatToggleButton: FC<Props> = ({hideText}) => {\n const {isConfigured, toggle} = useChatToggle();\n\n if (!isConfigured) return null;\n\n return (\n <Tooltip content={i18n('context_tooltip')}>\n <Button view=\"outlined-utility\" size=\"l\" onClick={toggle}>\n <Icon data={AiIcon} size={16} />\n {!hideText && i18n('action_button')}\n </Button>\n </Tooltip>\n );\n};\n","import React, {FC} from 'react';\nimport {FooterItem} from '@gravity-ui/navigation';\nimport AiIcon from '../../../assets/img/svg/icons/ai-chat-icon.svg';\nimport i18n from './i18n';\nimport {useChatToggle} from './useChatToggle';\n\ntype Props = {\n compact: boolean;\n};\n\nexport const ChatToggleFooterButton: FC<Props> = ({compact}) => {\n const {isConfigured, toggle} = useChatToggle();\n\n if (!isConfigured) return null;\n\n return (\n <FooterItem\n key=\"ai-chat\"\n compact={compact}\n item={{\n id: 'ai-chat',\n title: i18n('context_tooltip'),\n icon: AiIcon,\n onItemClick: toggle,\n }}\n />\n );\n};\n","import {block} from '../utils/cn';\n\nexport const cnDropdownMenu = block('dropdown-menu');\n","'use client';\nimport * as React from 'react';\n\ninterface Context<T> {\n toggle(open?: boolean): void;\n data: T | undefined;\n}\n\nexport const DropdownMenuContext = React.createContext<Context<unknown>>({\n toggle() {},\n data: undefined,\n});\n\nDropdownMenuContext.displayName = 'DropdownMenu.Context';\n","export function moveBack<T>(\n items: T[],\n activeItemIndex: number,\n steps = 1,\n skip?: (item: T) => boolean,\n): number {\n const newActiveItemIndex =\n (items.length + activeItemIndex - (steps % items.length)) % items.length;\n\n if (skip && skip(items[newActiveItemIndex])) {\n return moveBack(items, newActiveItemIndex, 1, skip);\n }\n\n return newActiveItemIndex;\n}\n","export function moveForward<T>(\n items: T[],\n activeItemIndex: number,\n steps = 1,\n skip?: (item: T) => boolean,\n): number {\n const newActiveItemIndex = (activeItemIndex + steps) % items.length;\n\n if (skip && skip(items[newActiveItemIndex])) {\n return moveForward(items, newActiveItemIndex, 1, skip);\n }\n\n return newActiveItemIndex;\n}\n","'use client';\n\nimport * as React from 'react';\n\nexport type DropdownMenuNavigationContextType = {\n activeMenuPath: number[];\n setActiveMenuPath: (path: number[]) => void;\n anchorRef: React.RefObject<HTMLDivElement>;\n};\n\nconst rootMenuPath: number[] = [];\n\nexport const DropdownMenuNavigationContext = React.createContext<DropdownMenuNavigationContextType>(\n {\n activeMenuPath: rootMenuPath,\n setActiveMenuPath: () => {},\n anchorRef: {current: null},\n },\n);\n\nexport type DropdownMenuNavigationContextProviderProps = {\n anchorRef: React.RefObject<HTMLDivElement>;\n children: React.ReactNode;\n disabled: boolean;\n};\n\nexport const DropdownMenuNavigationContextProvider = ({\n anchorRef,\n children,\n disabled,\n}: DropdownMenuNavigationContextProviderProps) => {\n const [activeMenuPath, setActiveMenuPath] = React.useState<number[]>(rootMenuPath);\n\n React.useEffect(() => {\n if (disabled) {\n setActiveMenuPath(rootMenuPath);\n }\n }, [disabled]);\n\n const contextValue = React.useMemo(\n () => ({\n activeMenuPath,\n setActiveMenuPath,\n anchorRef,\n }),\n [activeMenuPath, anchorRef],\n );\n\n return (\n <DropdownMenuNavigationContext.Provider value={contextValue}>\n {children}\n </DropdownMenuNavigationContext.Provider>\n );\n};\n","import type {DropdownMenuListItem} from './types';\n\nexport const dropdownMenuSeparator: DropdownMenuListItem = {text: '', action: () => {}, path: []};\n","import {dropdownMenuSeparator} from '../constants';\nimport type {DropdownMenuListItem} from '../types';\n\nexport function isSeparator<T>(item: DropdownMenuListItem<T>) {\n return item === dropdownMenuSeparator;\n}\n","import type {DropdownMenuListItem} from '../types';\n\nimport {isSeparator} from './isSeparator';\n\nexport function shouldSkipItemNavigation<T>(item: DropdownMenuListItem<T>) {\n return item.disabled || isSeparator(item);\n}\n","export function stringifyNavigationPath(path?: number[]) {\n return path?.join(' ') ?? '';\n}\n","'use client';\n\nimport * as React from 'react';\n\nimport {KeyCode} from '../../constants';\nimport {useListNavigation} from '../../hooks';\nimport {Menu} from '../Menu';\nimport type {MenuProps} from '../Menu';\nimport {Popup} from '../Popup';\nimport type {PopupProps} from '../Popup';\n\nimport {cnDropdownMenu} from './DropdownMenu.classname';\nimport {DropdownMenuContext} from './DropdownMenuContext';\nimport {DropdownMenuItem} from './DropdownMenuItem';\nimport {DropdownMenuNavigationContext} from './DropdownMenuNavigationContext';\nimport type {DropdownMenuListItem, DropdownMenuSize} from './types';\nimport {isSeparator} from './utils/isSeparator';\nimport {shouldSkipItemNavigation} from './utils/shouldSkipItemNavigation';\nimport {stringifyNavigationPath} from './utils/stringifyNavigationPath';\n\nexport type DropdownMenuPopupProps<T> = {\n items: DropdownMenuListItem<T>[];\n open: boolean;\n anchorRef: React.RefObject<HTMLDivElement>;\n onClose?: () => void;\n size?: DropdownMenuSize;\n menuProps?: MenuProps;\n children?: React.ReactNode;\n popupProps?: Partial<PopupProps>;\n path?: number[];\n};\n\nexport const DropdownMenuPopup = <T,>({\n items,\n open,\n anchorRef,\n onClose,\n size,\n menuProps,\n children,\n popupProps,\n path = [],\n}: DropdownMenuPopupProps<T>) => {\n const {toggle, data} = React.useContext(DropdownMenuContext);\n\n const {\n activeMenuPath,\n setActiveMenuPath,\n anchorRef: navigationAnchorRef,\n } = React.useContext(DropdownMenuNavigationContext);\n\n const isSubmenu = path.length > 0;\n\n const activateParent = React.useCallback(() => {\n setActiveMenuPath(path.slice(0, path.length - 1));\n }, [setActiveMenuPath, path]);\n\n const handleMouseEnter = React.useCallback(() => {\n setActiveMenuPath(path);\n }, [path, setActiveMenuPath]);\n\n const handleMouseLeave = React.useCallback(() => {\n activateParent();\n }, [activateParent]);\n\n const handleSelect = React.useCallback(\n (activeItem: DropdownMenuListItem<T>, event: KeyboardEvent) => {\n if (activeItem.items && activeItem.path) {\n setActiveMenuPath(activeItem.path);\n } else {\n activeItem.action?.(event, data as unknown as T);\n toggle(false);\n }\n },\n [data, setActiveMenuPath, toggle],\n );\n\n const handleKeydown = React.useCallback(\n (activeItemIndex: number, event: KeyboardEvent) => {\n switch (event.key) {\n case KeyCode.ESCAPE: {\n if (isSubmenu) {\n event.stopPropagation();\n activateParent?.();\n }\n\n return false;\n }\n case KeyCode.ENTER:\n case KeyCode.SPACEBAR: {\n const activeItem = items[activeItemIndex];\n const isSubmenuToggleActive = activeItem?.items;\n\n if (isSubmenu || isSubmenuToggleActive) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (activeItem) {\n handleSelect(activeItem, event);\n }\n\n return false;\n }\n }\n\n return true;\n },\n [activateParent, handleSelect, isSubmenu, items],\n );\n\n const isNavigationActive =\n open && stringifyNavigationPath(path) === stringifyNavigationPath(activeMenuPath);\n\n const {\n activeItemIndex,\n setActiveItemIndex,\n reset: resetNavigation,\n } = useListNavigation<DropdownMenuListItem<T>, HTMLDivElement>({\n items,\n skip: shouldSkipItemNavigation,\n anchorRef: navigationAnchorRef,\n onAnchorKeyDown: handleKeydown,\n disabled: !isNavigationActive,\n initialValue: isSubmenu ? 0 : -1,\n });\n\n React.useEffect(() => {\n if (!open) {\n resetNavigation();\n }\n }, [open, resetNavigation]);\n\n return (\n <Popup\n open={open}\n anchorRef={anchorRef}\n onClose={onClose}\n placement=\"bottom-start\"\n {...popupProps}\n >\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={cnDropdownMenu('popup-content')}\n >\n {children || (\n <Menu className={cnDropdownMenu('menu')} size={size} {...menuProps}>\n {items.map((item, index) => {\n const isActive = isNavigationActive && activeItemIndex === index;\n const activate = () => setActiveItemIndex(index);\n\n const isActiveParent =\n open &&\n !isActive &&\n activeMenuPath.length !== 0 &&\n stringifyNavigationPath(item.path) ===\n stringifyNavigationPath(\n activeMenuPath.slice(0, item.path.length),\n );\n\n const extraProps = {\n ...item.extraProps,\n onMouseEnter: activate,\n };\n\n return (\n <DropdownMenuItem\n key={index}\n size={size}\n className={cnDropdownMenu(\n 'menu-item',\n {\n separator: isSeparator(item),\n 'active-parent': isActiveParent,\n 'with-submenu': Boolean(item.items?.length),\n },\n item.className,\n )}\n selected={isActive}\n popupProps={popupProps}\n closeMenu={onClose}\n {...item}\n extraProps={extraProps}\n />\n );\n })}\n </Menu>\n )}\n </div>\n </Popup>\n );\n};\n","import * as React from 'react';\n\nimport {KeyCode} from '../../constants';\n\nimport {moveBack} from './moveBack';\nimport {moveForward} from './moveForward';\n\nexport type UseListNavigationProps<ItemType, AnchorType> = {\n items: ItemType[];\n skip?: (item: ItemType) => boolean;\n pageSize?: number;\n processHomeKey?: boolean;\n processEndKey?: boolean;\n disabled?: boolean;\n initialValue?: number;\n anchorRef?: React.RefObject<AnchorType>;\n onAnchorKeyDown?: (activeItemIndex: number, event: KeyboardEvent) => void | boolean;\n};\n\nexport type UseListNavigationResult = {\n activeItemIndex: number;\n setActiveItemIndex: React.Dispatch<React.SetStateAction<number>>;\n reset: () => void;\n};\n\nexport function useListNavigation<ItemType, AnchorType extends HTMLElement>({\n items,\n skip,\n pageSize,\n processHomeKey = true,\n processEndKey = true,\n anchorRef,\n disabled = false,\n initialValue = -1,\n onAnchorKeyDown,\n}: UseListNavigationProps<ItemType, AnchorType>): UseListNavigationResult {\n const [activeItemIndex, setActiveItemIndex] = React.useState<number>(initialValue);\n\n const reset = React.useCallback(() => {\n setActiveItemIndex(initialValue);\n }, [initialValue]);\n\n React.useEffect(() => {\n if (items) {\n reset();\n }\n }, [items, reset]);\n\n React.useLayoutEffect(() => {\n if (disabled) {\n return undefined;\n }\n\n const canNavigate = items.some((item) => !skip?.(item));\n if (!canNavigate) {\n return undefined;\n }\n\n const anchor = anchorRef?.current;\n if (!anchor) {\n return undefined;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const shouldProcessKeydown = onAnchorKeyDown?.(activeItemIndex, event);\n if (shouldProcessKeydown === false) {\n return;\n }\n\n switch (event.key) {\n case KeyCode.ARROW_DOWN: {\n event.preventDefault();\n\n // Go 1 step forward\n setActiveItemIndex((previousActiveItemIndex) =>\n moveForward(items, previousActiveItemIndex, 1, skip),\n );\n\n break;\n }\n case KeyCode.ARROW_UP: {\n event.preventDefault();\n\n // Go 1 step back\n setActiveItemIndex((previousActiveItemIndex) =>\n moveBack(items, previousActiveItemIndex, 1, skip),\n );\n\n break;\n }\n case KeyCode.PAGE_DOWN: {\n if (!pageSize) {\n return;\n }\n\n event.preventDefault();\n\n // Go pageSize steps forward\n setActiveItemIndex((previousActiveItemIndex) =>\n moveForward(items, previousActiveItemIndex, pageSize, skip),\n );\n\n break;\n }\n case KeyCode.PAGE_UP: {\n if (!pageSize) {\n return;\n }\n\n event.preventDefault();\n\n // Go pageSize steps back\n setActiveItemIndex((previousActiveItemIndex) =>\n moveBack(items, previousActiveItemIndex, pageSize, skip),\n );\n\n break;\n }\n case KeyCode.HOME: {\n if (!processHomeKey) {\n return;\n }\n\n event.preventDefault();\n\n // Go to the start of the list\n setActiveItemIndex((previousActiveItemIndex) =>\n moveBack(items, previousActiveItemIndex, previousActiveItemIndex, skip),\n );\n\n break;\n }\n case KeyCode.END: {\n if (!processEndKey) {\n return;\n }\n\n event.preventDefault();\n\n // Go to the end of the list\n setActiveItemIndex((previousActiveItemIndex) =>\n moveBack(items, previousActiveItemIndex, previousActiveItemIndex + 1, skip),\n );\n\n break;\n }\n }\n };\n\n anchor.addEventListener('keydown', handleKeyDown);\n\n return () => {\n anchor.removeEventListener('keydown', handleKeyDown);\n };\n }, [\n activeItemIndex,\n anchorRef,\n disabled,\n items,\n onAnchorKeyDown,\n pageSize,\n processEndKey,\n processHomeKey,\n skip,\n ]);\n\n return {\n activeItemIndex,\n setActiveItemIndex,\n reset,\n };\n}\n","export function isSubmenuOpen(path?: number[], activeMenuPath?: number[]) {\n return path?.every((item, index) => item === activeMenuPath?.[index]) ?? false;\n}\n","import * as React from 'react';\n\nimport {DropdownMenuNavigationContext} from '../DropdownMenuNavigationContext';\nimport type {DropdownMenuListItem} from '../types';\nimport {isSubmenuOpen} from '../utils/isSubmenuOpen';\n\nexport type UseSubmenuProps<T> = {\n items?: DropdownMenuListItem<T>[];\n path?: number[];\n};\n\nexport function useSubmenu<T>({items, path}: UseSubmenuProps<T>) {\n const {activeMenuPath, setActiveMenuPath} = React.useContext(DropdownMenuNavigationContext);\n\n const hasSubmenu = Boolean(path) && Boolean(items?.length);\n\n const closeSubmenu = React.useCallback(() => {\n if (!path) {\n return;\n }\n\n setActiveMenuPath(path.slice(0, path.length - 1));\n }, [path, setActiveMenuPath]);\n\n const openSubmenu = React.useCallback(() => {\n if (!path) {\n return;\n }\n\n setActiveMenuPath(path);\n }, [path, setActiveMenuPath]);\n\n return {\n hasSubmenu,\n isSubmenuOpen: isSubmenuOpen(path, activeMenuPath),\n openSubmenu,\n closeSubmenu,\n };\n}\n","'use client';\n\nimport * as React from 'react';\n\nimport {ChevronLeft, ChevronRight} from '@gravity-ui/icons';\n\nimport {Icon} from '../Icon';\nimport {Menu} from '../Menu';\nimport type {PopupPlacement, PopupProps} from '../Popup';\nimport {useDirection} from '../theme';\n\nimport {cnDropdownMenu} from './DropdownMenu.classname';\nimport {DropdownMenuContext} from './DropdownMenuContext';\nimport {DropdownMenuPopup} from './DropdownMenuPopup';\nimport {useSubmenu} from './hooks/useSubmenu';\nimport type {DropdownMenuListItem, DropdownMenuSize} from './types';\n\nexport type DropdownMenuItemProps<T> = Omit<DropdownMenuListItem<T>, 'path'> & {\n popupProps?: Partial<PopupProps>;\n closeMenu?: () => void;\n children?: React.ReactNode;\n path?: number[];\n size?: DropdownMenuSize;\n};\n\nexport const DropdownMenuItem = <T,>({\n text,\n action,\n items: subMenuItems,\n popupProps,\n closeMenu,\n children,\n path,\n size,\n ...props\n}: DropdownMenuItemProps<T>) => {\n const {toggle, data} = React.useContext(DropdownMenuContext);\n const menuItemRef = React.useRef(null);\n const direction = useDirection();\n\n const {hasSubmenu, isSubmenuOpen, closeSubmenu, openSubmenu} = useSubmenu({\n items: subMenuItems,\n path,\n });\n\n const handleCloseMenu = React.useCallback(() => {\n const close = () => {\n if (closeMenu) {\n closeMenu();\n } else {\n toggle(false);\n }\n };\n\n if (hasSubmenu) {\n closeSubmenu();\n // Wait for submenu to close\n requestAnimationFrame(close);\n } else {\n close();\n }\n }, [closeMenu, closeSubmenu, hasSubmenu, toggle]);\n\n const handleMenuItemClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (hasSubmenu) {\n return;\n }\n\n action?.(event, data as unknown as T);\n handleCloseMenu();\n },\n [action, data, handleCloseMenu, hasSubmenu],\n );\n\n const extraProps = React.useMemo(() => {\n return {\n ...props.extraProps,\n onMouseEnter: (\n event: React.MouseEvent<HTMLDivElement, MouseEvent> &\n React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n props.extraProps?.onMouseEnter?.(event);\n if (hasSubmenu) {\n openSubmenu();\n }\n },\n onMouseLeave: (\n event: React.MouseEvent<HTMLDivElement, MouseEvent> &\n React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n props.extraProps?.onMouseLeave?.(event);\n if (hasSubmenu) {\n closeSubmenu();\n }\n },\n };\n }, [props.extraProps, closeSubmenu, hasSubmenu, openSubmenu]);\n\n const subMenuPlacement = React.useMemo<PopupPlacement>(\n () => (direction === 'rtl' ? ['left-start', 'right-start'] : ['right-start', 'left-start']),\n [direction],\n );\n\n const iconEnd = React.useMemo(\n () =>\n hasSubmenu ? (\n <Icon\n data={direction === 'rtl' ? ChevronLeft : ChevronRight}\n size={10}\n className={cnDropdownMenu('sub-menu-arrow')}\n />\n ) : (\n props.iconEnd\n ),\n [hasSubmenu, direction, props.iconEnd],\n );\n\n return (\n <React.Fragment>\n <Menu.Item\n ref={menuItemRef}\n {...props}\n extraProps={extraProps}\n onClick={handleMenuItemClick}\n iconEnd={iconEnd}\n >\n {text || children}\n </Menu.Item>\n {hasSubmenu && subMenuItems && (\n <DropdownMenuPopup\n popupProps={{\n ...popupProps,\n className: cnDropdownMenu('sub-menu', popupProps?.className),\n placement: subMenuPlacement,\n }}\n size={size}\n items={subMenuItems}\n path={path}\n open={isSubmenuOpen}\n anchorRef={menuItemRef}\n onClose={handleCloseMenu}\n />\n )}\n </React.Fragment>\n );\n};\n","export function toItemList<\n Item extends {hidden?: boolean; items?: (Item | Item[])[]},\n ListItem extends {items?: ListItem[]; path: number[]},\n>(items: (Item | Item[])[], separator: ListItem, path: number[] = [], startIndex = 0): ListItem[] {\n const updatedItems: ListItem[] = [];\n let addedGroup = false;\n let index = startIndex;\n\n for (const item of items) {\n if (Array.isArray(item)) {\n const groupItems = toItemList(item, separator, path, index);\n\n if (updatedItems.length !== 0) {\n updatedItems.push(separator);\n }\n\n updatedItems.push(...groupItems);\n index += groupItems.length;\n addedGroup = true;\n } else {\n if (item.hidden) {\n continue;\n }\n\n if (addedGroup) {\n updatedItems.push(separator);\n }\n\n const updatedItem = {\n ...item,\n path: [...path, index++],\n } as unknown as ListItem;\n\n if (item.items) {\n updatedItem.items = toItemList<Item, ListItem>(\n item.items,\n separator,\n updatedItem.path,\n );\n }\n\n updatedItems.push(updatedItem);\n addedGroup = false;\n }\n }\n\n return updatedItems;\n}\n","'use client';\n\nimport * as React from 'react';\n\nimport {Ellipsis} from '@gravity-ui/icons';\n\nimport {useActionHandlers} from '../../hooks/useActionHandlers';\nimport {Button} from '../Button';\nimport type {ButtonProps} from '../Button';\nimport {Icon} from '../Icon';\nimport type {MenuProps} from '../Menu';\nimport type {PopupProps} from '../Popup';\n\nimport {cnDropdownMenu} from './DropdownMenu.classname';\nimport {DropdownMenuContext} from './DropdownMenuContext';\nimport {DropdownMenuItem as DropdownMenuItemComponent} from './DropdownMenuItem';\nimport {DropdownMenuNavigationContextProvider} from './DropdownMenuNavigationContext';\nimport {DropdownMenuPopup} from './DropdownMenuPopup';\nimport {dropdownMenuSeparator} from './constants';\nimport {usePopupVisibility} from './hooks/usePopupVisibility';\nimport {useScrollHandler} from './hooks/useScrollHandler';\nimport type {\n DropdownMenuItem,\n DropdownMenuItemAction,\n DropdownMenuItemMixed,\n DropdownMenuListItem,\n DropdownMenuSize,\n} from './types';\nimport {toItemList} from './utils/toItemList';\n\nimport './DropdownMenu.scss';\n\ntype SwitcherProps = {\n onKeyDown: React.KeyboardEventHandler<HTMLElement>;\n onClick: React.MouseEventHandler<HTMLElement>;\n};\n\nexport type DropdownMenuProps<T> = {\n /**\n * Array of items.\n * Nested arrays of items represent visually separated groups.\n */\n items?: (DropdownMenuItem<T> | DropdownMenuItem<T>[])[];\n /**\n * Switcher icon.\n */\n icon?: React.ReactNode;\n open?: boolean;\n onOpenToggle?: (open: boolean) => void;\n hideOnScroll?: boolean;\n /**\n * Applied for the switcher and the menu.\n */\n size?: DropdownMenuSize;\n /**\n * A payload passed to the actions called from the menu.\n * (Can be useful for context menus.)\n */\n data?: T;\n /**\n * Setting this prop to `true` disables the switcher button\n * and prevents the menu from being opened.\n */\n disabled?: boolean;\n /**\n * Menu toggle control.\n * @deprecated Use renderSwitcher instead\n */\n switcher?: React.ReactNode;\n /**\n * Menu toggle control.\n */\n renderSwitcher?: (props: SwitcherProps) => React.ReactNode;\n switcherWrapperClassName?: string;\n /**\n * Overrides the default switcher button props.\n */\n defaultSwitcherProps?: ButtonProps;\n defaultSwitcherClassName?: string;\n onSwitcherClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Overrides the default dropdown menu props.\n */\n menuProps?: Partial<MenuProps>;\n /**\n * Overrides the default dropdown popup props.\n */\n popupProps?: Partial<PopupProps>;\n /**\n * Custom content inside the menu popup.\n */\n children?: React.ReactNode;\n};\n\nexport type ControlledDropdownMenuProps<T> = DropdownMenuProps<T> & {\n open: boolean;\n onOpenToggle: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nconst DropdownMenu = <T,>({\n items = [],\n size = 'm',\n icon = <Icon data={Ellipsis} />,\n open,\n onOpenToggle,\n hideOnScroll = true,\n data,\n disabled,\n switcher,\n renderSwitcher,\n switcherWrapperClassName,\n defaultSwitcherProps,\n defaultSwitcherClassName,\n onSwitcherClick,\n menuProps,\n popupProps,\n children,\n}: DropdownMenuProps<T> | ControlledDropdownMenuProps<T>) => {\n const anchorRef = React.useRef<HTMLDivElement | null>(null);\n\n const {isPopupShown, togglePopup, closePopup} = usePopupVisibility(\n open,\n onOpenToggle,\n disabled,\n );\n\n useScrollHandler(closePopup, anchorRef, !isPopupShown || !hideOnScroll);\n\n const contextValue = React.useMemo(\n () => ({\n toggle: togglePopup,\n data,\n }),\n [data, togglePopup],\n );\n\n const itemsList = React.useMemo(\n () =>\n toItemList<DropdownMenuItem<T>, DropdownMenuListItem<T>>(items, dropdownMenuSeparator),\n [items],\n );\n\n const handleSwitcherClick = React.useCallback<React.MouseEventHandler<HTMLElement>>(\n (event) => {\n if (disabled) {\n return;\n }\n\n onSwitcherClick?.(event);\n\n togglePopup();\n },\n [disabled, onSwitcherClick, togglePopup],\n );\n\n const {onKeyDown: handleSwitcherKeyDown} = useActionHandlers(handleSwitcherClick);\n\n const switcherProps = React.useMemo<SwitcherProps>(\n () => ({\n onClick: handleSwitcherClick,\n onKeyDown: handleSwitcherKeyDown,\n }),\n [handleSwitcherClick, handleSwitcherKeyDown],\n );\n\n return (\n <DropdownMenuContext.Provider value={contextValue}>\n {/* FIXME remove switcher prop and this wrapper */}\n <div\n ref={anchorRef}\n className={cnDropdownMenu('switcher-wrapper', switcherWrapperClassName)}\n {...(renderSwitcher ? {} : switcherProps)}\n >\n {renderSwitcher?.(switcherProps) || switcher || (\n <Button\n view=\"flat\"\n size={size}\n // FIXME remove switcher prop and uncomment onClick handler\n // onClick={handleSwitcherClick}\n {...defaultSwitcherProps}\n className={cnDropdownMenu('switcher-button', defaultSwitcherClassName)}\n disabled={disabled}\n >\n {icon}\n </Button>\n )}\n </div>\n <DropdownMenuNavigationContextProvider anchorRef={anchorRef} disabled={!isPopupShown}>\n <DropdownMenuPopup\n items={itemsList}\n open={isPopupShown}\n size={size}\n menuProps={menuProps}\n anchorRef={anchorRef}\n onClose={closePopup}\n popupProps={popupProps}\n >\n {children}\n </DropdownMenuPopup>\n </DropdownMenuNavigationContextProvider>\n </DropdownMenuContext.Provider>\n );\n};\n\nconst DropdownMenuExport = Object.assign(DropdownMenu, {Item: DropdownMenuItemComponent});\nexport {DropdownMenuExport as DropdownMenu};\n\nexport type {DropdownMenuItem, DropdownMenuItemMixed, DropdownMenuItemAction};\n","import * as React from 'react';\n\nimport {useConditionallyControlledState} from '../../../hooks/private';\n\nexport function usePopupVisibility(\n visible?: boolean,\n onChangeVisibility?:\n | React.Dispatch<React.SetStateAction<boolean>>\n | ((visible: boolean) => void),\n disabled?: boolean,\n) {\n const [isPopupShown, setPopupShown] = useConditionallyControlledState<boolean>(\n visible,\n onChangeVisibility,\n false,\n );\n\n const togglePopup = React.useCallback(\n (open?: boolean) => {\n setPopupShown((isShown) => {\n if (typeof open === 'boolean') {\n return open;\n }\n\n return !isShown;\n });\n },\n [setPopupShown],\n );\n\n const closePopup = React.useCallback(() => {\n setPopupShown(false);\n }, [setPopupShown]);\n\n React.useEffect(() => {\n if (disabled && isPopupShown) {\n closePopup();\n }\n }, [closePopup, disabled, isPopupShown]);\n\n return {\n isPopupShown,\n togglePopup,\n closePopup,\n };\n}\n","import {useStateWithCallback} from '../useStateWithCallback';\n\nexport type UseConditionallyControlledStateResult<T extends unknown> = [\n T,\n React.Dispatch<React.SetStateAction<T>>,\n];\n\nexport function useConditionallyControlledState<T>(\n property?: T,\n setProperty?: React.Dispatch<React.SetStateAction<T>> | ((value: T) => void),\n initialState?: T | (() => T),\n isControlled = property !== undefined && setProperty !== undefined,\n): UseConditionallyControlledStateResult<T> {\n const state = useStateWithCallback<T>((property || initialState) as T, setProperty);\n\n if (isControlled) {\n return [property, setProperty] as UseConditionallyControlledStateResult<T>;\n }\n\n return state;\n}\n","import * as React from 'react';\n\nimport {isFunction} from '../../../components/utils/typeCheckers';\n\nexport function useStateWithCallback<T>(\n initialValue: T,\n callback?: (value: T) => void,\n): [T, (nextValue: T | ((prevValue: T) => T)) => void] {\n const [state, setState] = React.useState(initialValue);\n\n const setWithCallback = React.useCallback(\n (nextValue: T | ((value: T) => T)) => {\n if (isFunction(nextValue)) {\n setState((previousState: T) => {\n const newState = nextValue(previousState);\n callback?.(newState);\n return newState;\n });\n } else {\n callback?.(nextValue);\n setState(nextValue);\n }\n },\n [callback],\n );\n\n return [state, setWithCallback];\n}\n","export const isFunction = (value: unknown): value is Function => typeof value === 'function';\n","import * as React from 'react';\n\nexport function useScrollHandler(\n onScroll: (event: Event) => void,\n anchorRef: React.RefObject<HTMLDivElement>,\n disabled?: boolean,\n) {\n React.useEffect(() => {\n if (disabled) {\n return undefined;\n }\n\n const handleScroll = (event: Event) => {\n if ((event.target as Node).contains(anchorRef.current)) {\n onScroll(event);\n }\n };\n\n document.addEventListener('scroll', handleScroll, true);\n\n return () => {\n document.removeEventListener('scroll', handleScroll, true);\n };\n }, [anchorRef, onScroll, disabled]);\n}\n","export function isImageTag(value: string) {\n return /image\\/.*/.test(value);\n}\n\nexport function isVideoTag(value: string) {\n return /video\\/.*/.test(value);\n}\n\nexport function isMediaTag(value: string) {\n return isImageTag(value) || isVideoTag(value);\n}\n","import * as React from 'react';\nconst ChevronLeft = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.createElement(\"path\", { fill: \"currentColor\", fillRule: \"evenodd\", d: \"M10.53 2.97a.75.75 0 0 1 0 1.06L6.56 8l3.97 3.97a.75.75 0 1 1-1.06 1.06l-4.5-4.5a.75.75 0 0 1 0-1.06l4.5-4.5a.75.75 0 0 1 1.06 0\", clipRule: \"evenodd\" })));\nexport default ChevronLeft;\n","import {useCallback, useEffect} from 'react';\n\nexport const usePreventUnload = ({shouldListen}: {shouldListen: boolean}) => {\n const beforeUnloadHandler = useCallback((e: BeforeUnloadEvent) => {\n e.preventDefault();\n\n // Included for legacy support, e.g. Chrome/Edge < 119\n e.returnValue = true;\n }, []);\n\n useEffect(() => {\n if (shouldListen) {\n window.addEventListener('beforeunload', beforeUnloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', beforeUnloadHandler);\n }, [shouldListen]);\n};\n","import {createSelector} from 'reselect';\nimport {getSettingsData} from '../settings/settings-base';\n\nexport const getSettingQueryTrackerQueriesListSidebarVisibilityMode = createSelector(\n getSettingsData,\n (settings) => Boolean(settings['global::queryTracker::queriesListSidebarVisibilityMode']),\n);\n","import {useDispatch, useSelector} from '../../../../store/redux-hooks';\nimport {setSettingByKey} from '../../../../store/actions/settings';\nimport {getSettingQueryTrackerQueriesListSidebarVisibilityMode} from '../../../../store/selectors/query-tracker/settings';\n\nexport const useQueriesListSidebarToggle = () => {\n const dispatch = useDispatch();\n const isQueriesListSidebarVisible = useSelector(\n getSettingQueryTrackerQueriesListSidebarVisibilityMode,\n );\n\n const toggleQueriesListSideBarToggle = () => {\n dispatch(\n setSettingByKey(\n 'global::queryTracker::queriesListSidebarVisibilityMode',\n !isQueriesListSidebarVisible,\n ),\n );\n };\n\n return {\n isQueriesListSidebarVisible,\n toggleQueriesListSideBarToggle,\n };\n};\n","import React from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importComponents() {\n return import(/* webpackChunkName: \"yt-queries-list\" */ './index');\n}\n\nexport const LazyQueriesList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importComponents()).QueriesList};\n }),\n);\n","const SvgLayoutColumns = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8.75 3.5H12A1.5 1.5 0 0 1 13.5 5v6a1.5 1.5 0 0 1-1.5 1.5H8.75zm-1.5 0H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h3.25zM1 5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgLayoutColumns;","import React, {FC, useRef} from 'react';\nimport {setFileEditor} from '../../../store/reducers/query-tracker/queryFilesFormSlice';\nimport {selectFileEditorConfig} from '../../../store/selectors/query-tracker/queryFilesForm';\nimport {changeQueryFile} from '../../../store/actions/query-tracker/queryFilesForm';\nimport {useDispatch, useSelector} from '../../../store/redux-hooks';\nimport FileIcon from '@gravity-ui/icons/svgs/file.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\nimport SquareIcon from '@gravity-ui/icons/svgs/square.svg';\nimport LayoutColumnsIcon from '@gravity-ui/icons/svgs/layout-columns.svg';\nimport {Button, Icon, Text} from '@gravity-ui/uikit';\nimport './FileEditor.scss';\nimport cn from 'bem-cn-lite';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor';\nimport * as monaco from 'monaco-editor';\n\nconst block = cn('file-editor');\n\nconst MONACO_CONFIG: MonacoEditorConfig = {\n fontSize: 14,\n language: 'plaintext',\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n};\n\nexport const FileEditor: FC = () => {\n const dispatch = useDispatch();\n const {fileEditor, file} = useSelector(selectFileEditorConfig);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const handleOnChange = (content: string) => {\n if (!file) return;\n dispatch(changeQueryFile({...file, content}));\n };\n\n const handleOnClose = () => {\n dispatch(setFileEditor({...fileEditor, isOpen: false, isFullWidth: false}));\n };\n\n const handleOnWidthToggle = () => {\n dispatch(setFileEditor({...fileEditor, isFullWidth: !fileEditor.isFullWidth}));\n };\n\n if (!file) return null;\n\n return (\n <div className={block()}>\n <div className={block('header')}>\n <div className={block('header-side')}>\n <Icon data={FileIcon} size={16} />\n <Text variant=\"subheader-1\" ellipsis>\n {file.name}\n </Text>\n </div>\n <div className={block('header-side')}>\n <Button view=\"flat\" onClick={handleOnWidthToggle}>\n <Icon\n data={fileEditor.isFullWidth ? LayoutColumnsIcon : SquareIcon}\n size={16}\n />\n </Button>\n <Button view=\"flat\" onClick={handleOnClose}>\n <Icon data={XmarkIcon} size={16} />\n </Button>\n </div>\n </div>\n <MonacoEditor\n className={block('editor')}\n editorRef={editorRef}\n value={file.content || ''}\n language=\"plaintext\"\n onChange={handleOnChange}\n monacoConfig={MONACO_CONFIG}\n />\n </div>\n );\n};\n","import React, {FC, useState} from 'react';\nimport {QueryEditor} from '../QueryEditor';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {FileEditor} from '../FileEditor';\n\nconst EDITOR_INITIAL_SIZE = [50, 50];\n\ntype Props = {\n fileEditorFullWidth: boolean;\n fileEditorVisible: boolean;\n onStartQuery: (queryId: string) => void;\n};\n\nexport const QueryEditorSplit: FC<Props> = ({\n fileEditorFullWidth,\n fileEditorVisible,\n onStartQuery,\n}) => {\n const [sizes, setSize] = useState(EDITOR_INITIAL_SIZE);\n const hideQueryEditor = !(fileEditorVisible && fileEditorFullWidth);\n\n return (\n <FlexSplitPane\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n getInitialSizes={() => sizes}\n >\n {hideQueryEditor && <QueryEditor onStartQuery={onStartQuery} showStatusInTitle />}\n {fileEditorVisible && <FileEditor />}\n </FlexSplitPane>\n );\n};\n","import {useHistory} from 'react-router-dom';\nimport React, {FC, useCallback, useEffect, useRef, useState} from 'react';\nimport {Location, TransitionPromptHook} from 'history';\nimport {YTDFDialog} from '../Dialog';\n\ntype Props = {\n title: string;\n message: string;\n ignoreSamePath?: boolean;\n};\n\nexport const RedirectConfirmModal: FC<Props> = ({title, message, ignoreSamePath = true}) => {\n const [showModal, setShowModal] = useState(false);\n const history = useHistory();\n const skipRef = useRef(false);\n const locationRef = useRef<Location>();\n\n const handleNavigation = useCallback<TransitionPromptHook<unknown>>(\n (location) => {\n const samePath = window.location.pathname === location.pathname && ignoreSamePath;\n if (skipRef.current || samePath) return;\n\n locationRef.current = location;\n setShowModal(true);\n return false;\n },\n [ignoreSamePath],\n );\n\n const handleConfirm = async () => {\n setShowModal(false);\n if (locationRef.current) {\n skipRef.current = true;\n history.push(locationRef.current.pathname);\n }\n };\n\n const handleCancel = () => {\n setShowModal(false);\n };\n\n useEffect(() => {\n const unblock = history.block(handleNavigation);\n return () => unblock();\n }, [history, handleNavigation]);\n\n return (\n <YTDFDialog\n visible={showModal}\n pristineSubmittable\n headerProps={{title}}\n fields={[\n {\n type: 'block',\n name: 'message',\n extras: {\n children: message,\n },\n },\n ]}\n onAdd={handleConfirm}\n onClose={handleCancel}\n />\n );\n};\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from '../../../store/redux-hooks';\nimport {Route, Switch} from 'react-router';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueriesPooling} from '../hooks/QueriesPooling/context';\nimport {isEngine} from '../../../types/query-tracker/api';\nimport {QueryEngine} from '../../../../shared/constants/engines';\nimport {\n createEmptyQuery,\n createQueryFromTablePath,\n goToQuery,\n loadQuery,\n} from '../../../store/actions/query-tracker/query';\nimport {usePreventUnload} from '../../../hooks/use-prevent-unload';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\nimport {\n getDirtySinceLastSubmit,\n getQueryGetParams,\n} from '../../../store/selectors/query-tracker/query';\nimport {LazyQueriesList} from '../QueriesList/lazy';\nimport {useQueryACO} from '../QueryACO/useQueryACO';\nimport {MonacoContext} from '../context/MonacoContext';\n\nimport cn from 'bem-cn-lite';\n\nimport './QueryTracker.scss';\nimport {QueryEditorSplit} from './QueryEditorSplit';\nimport {selectFileEditor} from '../../../store/selectors/query-tracker/queryFilesForm';\nimport {selectNavigationCluster} from '../../../store/selectors/query-tracker/queryNavigation';\nimport {setSettingByKey} from '../../../store/actions/settings';\nimport {CellPreviewModal} from '../../../containers/CellPreviewModal/CellPreviewModal';\nimport {SET_QUERY_PARAMS} from '../../../store/reducers/query-tracker/query-tracker-contants';\nimport {RedirectConfirmModal} from '../../../components/RedirectConfirmModal';\nimport {getLastUserChoiceQueryEngine} from '../../../store/selectors/settings/settings-queries';\n\nconst b = cn('query-tracker-page');\n\ntype Props = {\n match: {\n path: string;\n params: {\n queryId?: string;\n };\n };\n location: {\n search: string;\n };\n};\n\nconst initialSizes = [20, 80];\nconst minSize = 380; // see history list's cells size\n\nfunction QueryPageDraft() {\n const dispatch = useDispatch();\n const routeParams = useSelector(getQueryGetParams);\n const cluster = useSelector(selectNavigationCluster);\n const favoriteEngine = useSelector(getLastUserChoiceQueryEngine) ?? QueryEngine.YQL;\n\n useEffect(() => {\n const engine =\n routeParams.engine && isEngine(routeParams.engine)\n ? (routeParams.engine as QueryEngine)\n : favoriteEngine;\n if (routeParams.cluster && routeParams.path) {\n if (routeParams.useDraft) {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {\n ...routeParams,\n useDraft: undefined,\n },\n },\n });\n }\n dispatch(\n createQueryFromTablePath(engine, routeParams.cluster, routeParams.path, {\n useDraft: true,\n }),\n );\n } else {\n dispatch(createEmptyQuery());\n }\n if (cluster) {\n dispatch(\n setSettingByKey('global::queryTracker::queriesListSidebarVisibilityMode', true),\n );\n }\n }, [dispatch]);\n return null;\n}\n\nfunction QueryPage(props: Props) {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {},\n },\n });\n if (props.match.params.queryId) {\n dispatch(loadQuery(props.match.params.queryId));\n } else {\n dispatch(createEmptyQuery());\n }\n }, [dispatch, props.match.params.queryId]);\n return null;\n}\n\nexport default function QueryTracker({match}: Props) {\n const {isQueriesListSidebarVisible, toggleQueriesListSideBarToggle} =\n useQueriesListSidebarToggle();\n const isQueryStateDirty = useSelector(getDirtySinceLastSubmit);\n const fileEditor = useSelector(selectFileEditor);\n usePreventUnload({shouldListen: isQueryStateDirty});\n const [sizes, setSize] = useState(initialSizes);\n const getSize = useMemo(() => {\n return () => sizes;\n }, [sizes]);\n const dispatch = useDispatch();\n const {loadQueryTrackerInfo} = useQueryACO();\n\n const goToCreatedQuery = useCallback(\n (queryId: string) => {\n dispatch(goToQuery(queryId));\n return true;\n },\n [dispatch],\n );\n\n useEffect(() => {\n const search = new URLSearchParams(window.location.search);\n if (search.get('listMode') && !isQueriesListSidebarVisible) {\n toggleQueriesListSideBarToggle();\n }\n loadQueryTrackerInfo();\n }, []);\n\n return (\n <>\n <Switch>\n <Route exact path={match.path} component={QueryPageDraft} />\n <Route path={`${match.path}/:queryId`} component={QueryPage} />\n </Switch>\n <MonacoContext.Provider value={new Map()}>\n <QueriesPooling>\n <FlexSplitPane\n className={b('container')}\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n minSize={minSize}\n getInitialSizes={getSize}\n >\n {isQueriesListSidebarVisible ? <LazyQueriesList /> : null}\n <QueryEditorSplit\n fileEditorFullWidth={fileEditor.isFullWidth}\n fileEditorVisible={fileEditor.isOpen}\n onStartQuery={goToCreatedQuery}\n />\n </FlexSplitPane>\n </QueriesPooling>\n </MonacoContext.Provider>\n <CellPreviewModal />\n {isQueryStateDirty && (\n <RedirectConfirmModal\n title=\"Unsaved changes\"\n message=\"You have unsaved changes in this query. Do you want to continue and lose them?\"\n />\n )}\n </>\n );\n}\n","import React from 'react';\nimport {Button} from '@gravity-ui/uikit';\nimport Icon from '../../../components/Icon/Icon';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\n\nexport function QueriesListSidebarToggleButton() {\n const {isQueriesListSidebarVisible, toggleQueriesListSideBarToggle} =\n useQueriesListSidebarToggle();\n\n return (\n <Button\n view=\"outlined\"\n size=\"l\"\n title={`${isQueriesListSidebarVisible ? 'Hide' : 'Show'} queries list`}\n onClick={toggleQueriesListSideBarToggle}\n >\n <Icon awesome=\"layout-side-content\" size={16} />\n </Button>\n );\n}\n","import React, {FC} from 'react';\nimport {QueriesListSidebarToggleButton} from '../QueriesListSidebarToggleButton/QueriesListSidebarToggleButton';\nimport {NewQueryButton} from '../NewQueryButton';\nimport {Flex} from '@gravity-ui/uikit';\nimport {ChatToggleButton} from '../../../containers/AiChat/ChatToggleButton';\n\ntype Props = {\n onQueryCreate: () => void;\n};\n\nexport const RightButtonsGroup: FC<Props> = ({onQueryCreate}) => {\n return (\n <Flex gap={2}>\n <QueriesListSidebarToggleButton />\n <ChatToggleButton />\n <NewQueryButton onClick={onQueryCreate} />\n </Flex>\n );\n};\n","import React, {FC, useCallback, useState} from 'react';\nimport {useDispatch, useSelector} from '../../../store/redux-hooks';\nimport {RowWithName} from '../../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../../../shared/constants/settings';\nimport {getQueryDraft} from '../../../store/selectors/query-tracker/query';\nimport {\n resetQueryTracker,\n setQueryEngine,\n setUserLastChoice,\n updateQueryDraft,\n} from '../../../store/actions/query-tracker/query';\nimport {RightButtonsGroup} from './RightButtonsGroup';\nimport {HeadSpacer} from '../../../containers/ClusterPageHeader/HeadSpacer';\nimport {Flex, Text, Tooltip} from '@gravity-ui/uikit';\nimport {QueryEngineSelector} from './QueryEngineSelector';\nimport {QuerySettingsButton} from '../QuerySettingsButton';\nimport {QueryFilesButton} from '../QueryFilesButton';\nimport {QuerySelectorsByEngine} from './QuerySelectorsByEngine';\nimport {QueryEngine} from '../../../../shared/constants/engines';\nimport './QueryTrackerTopRow.scss';\nimport cn from 'bem-cn-lite';\nimport {EditableAsText} from '../../../components/EditableAsText/EditableAsText';\nimport {setSettingByKey} from '../../../store/actions/settings';\nimport {useIsDesktop} from '../../../hooks/useIsDesktop';\nimport {QueryClusterSelector} from './QueryClusterSelector';\nimport {LazyQueryTokenButton} from '../QueryToken/lazy';\n\nconst NAME_PLACEHOLDER = 'No name';\nconst block = cn('query-tracker-top-row');\n\nconst QueryTrackerTopRow: FC = () => {\n const dispatch = useDispatch();\n const isDesktop = useIsDesktop();\n const {annotations, settings} = useSelector(getQueryDraft);\n const [nameEdit, setNameEdit] = useState(false);\n\n const handleChangeEngine = useCallback(\n (newEngine: QueryEngine) => {\n dispatch(setQueryEngine(newEngine));\n dispatch(setSettingByKey(`global::queryTracker::lastEngine`, newEngine));\n dispatch(setUserLastChoice());\n },\n [dispatch],\n );\n\n const handleCreateNewQuery = useCallback(() => {\n dispatch(resetQueryTracker());\n }, [dispatch]);\n\n const handleNameChange = useCallback(\n (title: string | undefined) => {\n dispatch(updateQueryDraft({annotations: {title}}));\n },\n [dispatch],\n );\n\n const handleSettingsChange = useCallback(\n (newSettings: Record<string, string>) =>\n dispatch(updateQueryDraft({settings: newSettings})),\n [dispatch],\n );\n\n const name = annotations?.title || NAME_PLACEHOLDER;\n\n return (\n <RowWithName page={Page.QUERIES} className={block()}>\n <Flex alignItems=\"center\" gap={4} grow={1}>\n <EditableAsText\n className={block('name-input')}\n onChange={handleNameChange}\n size=\"l\"\n text={annotations?.title}\n cancelOnClose\n withControls\n openOnClick\n onModeChange={setNameEdit}\n saveButtonView=\"action\"\n cancelButtonView=\"outlined\"\n >\n <Tooltip content={name}>\n <Text ellipsis>{name}</Text>\n </Tooltip>\n </EditableAsText>\n {!nameEdit && (\n <>\n <HeadSpacer />\n <QueryClusterSelector />\n <QueryEngineSelector isDesktop={isDesktop} onChange={handleChangeEngine} />\n <QuerySelectorsByEngine />\n <Flex gap={2}>\n <QuerySettingsButton\n settings={settings}\n onChange={handleSettingsChange}\n />\n <QueryFilesButton />\n <LazyQueryTokenButton />\n </Flex>\n </>\n )}\n </Flex>\n <RightButtonsGroup onQueryCreate={handleCreateNewQuery} />\n </RowWithName>\n );\n};\n\nexport default QueryTrackerTopRow;\n","import {useEffect, useState} from 'react';\nexport const useIsDesktop = () => {\n const [isDesktop, setIsDesktop] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsDesktop(window.matchMedia('(min-width: 1280px)').matches);\n };\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return isDesktop;\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport format from '../../common/hammer/format';\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {OrderType, nextSortOrderValue} from '../../utils/sort-helpers';\n\nimport './SortIcon.scss';\n\nconst block = cn('sort-icon');\n\nconst ICON_BY_TYPE = {\n ['']: 'sort',\n asc: 'sort-up',\n desc: 'sort-down',\n 'asc-undefined': 'arrow-to-bottom',\n 'desc-undefined': 'arrow-from-bottom',\n 'undefined-asc': 'arrow-from-top',\n 'undefined-desc': 'arrow-to-top',\n} as const;\n\ninterface Props {\n className?: string;\n label?: string;\n onChange?: (nextOrder: OrderType) => void;\n order?: OrderType;\n hidden?: boolean;\n allowUnordered?: boolean;\n withUndefined?: boolean;\n}\n\nexport default class SortIcon extends React.Component<Props> {\n onClick = () => {\n const {order, onChange, allowUnordered, withUndefined} = this.props;\n if (!onChange) {\n return;\n }\n\n const nextOrder = nextSortOrderValue(order, allowUnordered, withUndefined);\n onChange(nextOrder);\n };\n\n render() {\n const {className, label, order, hidden} = this.props;\n const icon = ICON_BY_TYPE[order || ''];\n\n return (\n <span className={block({hidden}, className)} onClick={this.onClick}>\n {label && <span className={block('label')}>{label}</span>}\n <Tooltip\n className={block('icon')}\n content={order ? format.ReadableField(order) : 'Unordered'}\n >\n <Icon awesome={icon} face=\"solid\" />\n </Tooltip>\n </span>\n );\n }\n}\n","import React from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importComponents() {\n return import(/* webpackChunkName: \"yt-query-token\" */ './index');\n}\n\nexport const LazyAddQueryTokenForm = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importComponents()).AddQueryTokenFormButton};\n }),\n);\n\nexport const LazyQueryTokenList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importComponents()).QueryTokenTable};\n }),\n);\n\nexport const LazyQueryTokenButton = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importComponents()).QueryTokenButton};\n }),\n);\n","import React, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\nexport interface EditableAsTextProps {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n renderContent?: (props: {\n renderEditButton: () => React.ReactNode;\n className?: string;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: EditableAsTextProps) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n renderEditor,\n renderContent,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <>\n {editMode ? (\n <div\n className={block(\n {edit: !disableEdit, controls: Boolean(withControls)},\n className,\n )}\n >\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </div>\n ) : renderContent ? (\n renderContent({\n renderEditButton: () => (\n <>\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n qa=\"edit-text-button\"\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </>\n ),\n className: block(null, className),\n })\n ) : (\n <div className={block(null, className)}>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n qa=\"edit-text-button\"\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </div>\n )}\n </>\n );\n}\n","import * as React from 'react';\nconst ChevronRight = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.createElement(\"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\" })));\nexport default ChevronRight;\n","import {addI18Keysets} from '../../../i18n/index';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:Columnselector', {en, ru});\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {sortableContainer, sortableElement, sortableHandle} from 'react-sortable-hoc';\nimport ReactList from 'react-list';\n\nimport each_ from 'lodash/each';\nimport escapeRegExp_ from 'lodash/escapeRegExp';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\nimport reduce_ from 'lodash/reduce';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../../components/Icon/Icon';\n\nimport {renderText} from '../../components/templates/utils';\nimport Button from '../Button/Button';\n\nimport i18n from './i18n';\n\nimport './ColumnSelector.scss';\n\nconst b = cn('column-selector');\n\nexport function makeItemsCopy(items) {\n return map_(items, (item) => {\n return {...item};\n });\n}\n\nconst DragHandle = sortableHandle(() => (\n <div className={b('drag-handle')}>\n <Icon face=\"solid\" awesome=\"list\" />\n </div>\n));\n\nconst SortableItem = sortableElement(\n ({item, isSortable, isSelectable, isDisabled, itemRenderer, onCheckBoxChange}) => {\n const active = !isDisabled && !item.disabled;\n const className = b('list-item', {\n selected: item.checked && active && 'yes',\n selectable: isSelectable && active && 'yes',\n disabled: !active && 'yes',\n });\n\n let showAction = true;\n if (item.checked) {\n showAction = 'isDeletable' in item ? item.isDeletable : true;\n }\n\n return (\n <div className={className}>\n {isSortable && item.checked && <DragHandle />}\n <div className={b('list-item-name')}>\n {item.keyColumn && <Icon awesome=\"key\" />}\n {itemRenderer(item)}\n </div>\n {active && showAction && (\n <span\n className={b('list-item-check')}\n onClick={onCheckBoxChange}\n data-item={item.name}\n >\n <Icon awesome=\"check\" />\n </span>\n )}\n {!active && <Icon className={b('list-item-lock')} awesome=\"lock\" />}\n </div>\n );\n },\n);\n\nconst SortableList = sortableContainer(\n ({\n items,\n isSortable,\n isDisabled,\n itemRenderer,\n onCheckBoxChange,\n isSelectable,\n useStaticSize,\n }) => {\n const renderer = (index, key) => {\n const item = items[index];\n return (\n <SortableItem\n key={key}\n index={index}\n item={item}\n disabled={!isSortable}\n isSortable={isSortable}\n isDisabled={isDisabled}\n isSelectable={isSelectable}\n itemRenderer={itemRenderer}\n onCheckBoxChange={onCheckBoxChange}\n />\n );\n };\n // Use 'simple' placement for draggable items because 'uniform' produces bugs when items are dragged outside the viewport\n const type = isSortable ? 'simple' : 'uniform';\n const mods = {'static-size': useStaticSize};\n\n return (\n <div className={b('list', mods)}>\n <ReactList itemRenderer={renderer} length={items.length} type={type} />\n </div>\n );\n },\n);\n\nexport default class ColumnSelector extends Component {\n static itemsProps = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n keyColumn: PropTypes.bool,\n caption: PropTypes.string,\n disabled: PropTypes.bool,\n }),\n );\n\n static propTypes = {\n className: PropTypes.string,\n items: ColumnSelector.itemsProps.isRequired,\n showDisabledItems: PropTypes.bool,\n isSortable: PropTypes.bool,\n isSelectable: PropTypes.bool,\n isFilterable: PropTypes.bool,\n showSelectedOnly: PropTypes.bool,\n isHeadless: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.node,\n itemRenderer: PropTypes.func,\n };\n\n static defaultProps = {\n itemRenderer: ({name, caption = name}) => renderText(caption, {asHTML: false}),\n isSortable: false,\n isHeadless: false,\n isSelectable: true,\n isFilterable: true,\n showSelectedOnly: false,\n };\n\n constructor(props) {\n const {items, isHeadless, showSelectedOnly} = props;\n super(props);\n\n const state = {\n showSelectedOnly,\n filter: '',\n };\n if (isHeadless) {\n Object.assign(state, {items: makeItemsCopy(items)});\n }\n this.state = state;\n }\n\n get items() {\n return this.props.isHeadless ? this.state.items : this.props.items;\n }\n\n get buttonALLisDisabled() {\n return this.items.every((item) => item.checked);\n }\n\n get buttonNONEisDisabled() {\n return !this.items.some((item) => item.checked);\n }\n\n /*\n Takes items from the proper place (props or state), modifies them and writes them back at the same place.\n */\n withActualItems(func) {\n const {onChange} = this.props;\n // headless widget keeps its state to itself, but calls onChange as a way of notifying caller about changes\n if (this.props.isHeadless) {\n const {items} = func({items: this.state.items || []});\n this.setState({items}, () => {\n onChange({items: [...this.state.items]});\n });\n } else {\n // widget inside modal passes all changes to the modal component where they are put into state\n const {items} = func({items: this.props.items || []});\n onChange({items: [...items]});\n }\n }\n\n toggleItem = (name) => {\n this.withActualItems(({items}) => {\n items = [...items];\n const index = items.findIndex((item) => item.name === name);\n const changedItem = items[index];\n items[index] = {...changedItem, checked: !changedItem.checked};\n\n return {items};\n });\n };\n\n selectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (!item.checked && !item.disabled) {\n items[index] = {...item, checked: true};\n }\n });\n\n return {items};\n });\n };\n\n deselectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (item.checked && !item.disabled && (item.isDeletable ?? true)) {\n items[index] = {...item, checked: false};\n }\n });\n\n return {items};\n });\n };\n\n invertItems = () => {\n this.withActualItems(({items}) => {\n const visibleItems = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleItems[item.name]) {\n return;\n }\n if (!item.disabled) {\n items[index] = {...item, checked: !item.checked};\n }\n });\n\n return {items};\n });\n };\n\n _handleCheckBoxChange = (event) => {\n this.toggleItem(event.currentTarget.getAttribute('data-item'));\n };\n\n _handleSortEnd = ({oldIndex, newIndex}) => {\n if (oldIndex === newIndex) {\n return;\n }\n\n this.withActualItems(({items}) => {\n items = [...items];\n\n const {items: visibleItems} = this.getVisibleItems();\n const fromIndex = items.findIndex((item) => item.name === visibleItems[oldIndex].name);\n const toIndex = items.findIndex((item) => item.name === visibleItems[newIndex].name);\n\n const [removed] = items.splice(fromIndex, 1);\n items.splice(toIndex, 0, removed);\n\n return {items};\n });\n };\n\n _handleDefaultSort = () => {\n this.withActualItems(({items}) => {\n return {\n items: items.sort((a, b) => {\n const aCaption = a.caption || a.name;\n const bCaption = b.caption || b.name;\n\n return aCaption.localeCompare(bCaption);\n }),\n };\n });\n };\n\n _toggleShownItems = () => {\n this.setState((prevState) => ({\n showSelectedOnly: !prevState.showSelectedOnly,\n }));\n };\n\n _changeFilter = (filter) => {\n this.setState({filter});\n };\n\n renderSearchBox() {\n return (\n <TextInput\n placeholder={i18n('search')}\n onUpdate={this._changeFilter}\n value={this.state.filter}\n hasClear={true}\n />\n );\n }\n\n renderControls() {\n const {isFilterable, isSelectable, isSortable, isHeadless} = this.props;\n const btnProps = {\n size: 'm',\n className: b('controls-item'),\n };\n\n return (\n <div className={b('controls')}>\n {isFilterable && this.renderSearchBox()}\n {isHeadless && (\n <Button {...btnProps} onClick={this._toggleShownItems}>\n Selected \n <span className=\"elements-secondary-text\">\n {filter_(this.items, (item) => item.checked).length}\n </span>\n </Button>\n )}\n {isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonALLisDisabled}\n onClick={this.selectAllItems}\n >\n Add all\n </Button>\n )}\n {isSelectable && (\n <Button {...btnProps} onClick={this.invertItems}>\n Invert list\n </Button>\n )}\n {!isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonNONEisDisabled}\n onClick={this.deselectAllItems}\n >\n Remove all\n </Button>\n )}\n {isSortable && (\n <Button {...btnProps} onClick={this._handleDefaultSort}>\n Default sort\n </Button>\n )}\n </div>\n );\n }\n\n filterItemsByName(items) {\n const re = new RegExp(escapeRegExp_(this.state.filter), 'i');\n return filter_(items, (item) => re.test(item.name));\n }\n\n filterItems(items) {\n const {showDisabledItems} = this.props;\n items = showDisabledItems ? items : filter_(items, (item) => !item.disabled);\n\n const visibleItems = this.filterItemsByName(items);\n return this.state.showSelectedOnly\n ? filter_(visibleItems, (item) => item.checked)\n : visibleItems;\n }\n\n getVisibleItems() {\n const toSplit = this.filterItems(this.items);\n const [keyItems, items] = partition_(toSplit, (item) => item.keyColumn);\n return {items, keyItems};\n }\n\n getVisibleItemsMap() {\n return reduce_(\n this.filterItems(this.items),\n (acc, item) => {\n acc[item.name] = item;\n return acc;\n },\n {},\n );\n }\n\n renderList() {\n const {isSortable, isSelectable, itemRenderer, children, isHeadless} = this.props;\n\n const {items, keyItems} = this.getVisibleItems();\n\n const className = b(\n 'content',\n {\n headless: isHeadless ? undefined : 'no',\n empty: items.length ? undefined : 'yes',\n },\n 'pretty-scroll',\n );\n\n return (\n <div className={className}>\n {keyItems.length > 0 && (\n <React.Fragment>\n <SortableList\n lockAxis=\"y\"\n isDisabled={false}\n isSortable={false}\n isSelectable={isSelectable}\n items={keyItems}\n itemRenderer={itemRenderer}\n helperClass={b('list-item', {helper: 'yes'})}\n onCheckBoxChange={this._handleCheckBoxChange}\n />\n {items.length > 0 && <div className={b('separator')} />}\n </React.Fragment>\n )}\n {items.length > 0 && (\n <SortableList\n items={items}\n isSelectable={isSelectable}\n isSortable={isSortable}\n itemRenderer={itemRenderer}\n lockAxis=\"y\"\n helperClass={b('list-item', {helper: 'yes'})}\n onSortEnd={this._handleSortEnd}\n onCheckBoxChange={this._handleCheckBoxChange}\n useDragHandle\n />\n )}\n {!keyItems.length && !items.length && children}\n </div>\n );\n }\n\n render() {\n const {isHeadless, isSortable, className} = this.props;\n const classNames = b(\n {\n headless: isHeadless ? 'yes' : undefined,\n sortable: isSortable ? undefined : 'no',\n },\n className,\n );\n return (\n <div className={classNames}>\n {this.renderControls()}\n {this.renderList()}\n </div>\n );\n }\n}\n","import type {RootState} from '../../reducers';\n\nexport const selectCellPreviewVisible = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.visible;\nexport const selectCellPreviewLoading = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.loading;\nexport const selectCellPreviewData = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.data;\nexport const selectCellPreviewYtCliDownloadCommand = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.ytCliDownloadCommand;\nexport const selectCellPreviewNoticeText = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.noticeText;\nexport const selectErrorPreviewCellPath = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.error;\n","import React from 'react';\n\nimport {useDispatch, useSelector} from '../../store/redux-hooks';\nimport {Flex, Text} from '@gravity-ui/uikit';\n\nimport SimpleModal from '../../components/Modal/SimpleModal';\nimport {\n selectCellPreviewData,\n selectCellPreviewLoading,\n selectCellPreviewNoticeText,\n selectCellPreviewVisible,\n selectCellPreviewYtCliDownloadCommand,\n selectErrorPreviewCellPath,\n} from '../../store/selectors/modals/cell-preview';\n\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport block from 'bem-cn-lite';\n\nimport Yson from '../../components/Yson/Yson';\nimport {YTErrorBlock} from '../../components/Error/Error';\nimport {type YsonSettings, getPreviewCellYsonSettings} from '../../store/selectors/thor/unipika';\nimport {closeCellPreviewAndCancelRequest} from '../../store/actions/modals/cell-preview';\nimport {isMediaTag} from '../../utils/yql-types';\n\nimport './CellPreviewModal.scss';\n\nconst b = block('cell-preview-modal');\n\nexport const CellPreviewModal: React.FC = () => {\n const dispatch = useDispatch();\n\n const loading = useSelector(selectCellPreviewLoading);\n const data = useSelector(selectCellPreviewData);\n const visible = useSelector(selectCellPreviewVisible);\n const ytCliDownloadCommand = useSelector(selectCellPreviewYtCliDownloadCommand);\n const noticeText = useSelector(selectCellPreviewNoticeText);\n const error = useSelector(selectErrorPreviewCellPath);\n\n const unipikaSettings = useSelector(getPreviewCellYsonSettings);\n\n return (\n <SimpleModal\n title=\"Preview\"\n visible={visible}\n loading={loading}\n onCancel={() => dispatch(closeCellPreviewAndCancelRequest())}\n wrapperClassName={b('wrapper')}\n >\n <Flex\n qa=\"cell-preview-modal-content\"\n className={b('content')}\n gap={2}\n direction=\"column\"\n >\n <Flex gap={2} direction=\"column\">\n <Text variant=\"subheader-3\" color=\"secondary\">\n {noticeText}\n </Text>\n {ytCliDownloadCommand ? (\n <code className={b('command-wrapper')}>\n <div className={b('command')}>\n <div\n data-qa=\"cell-preview-command\"\n className={b('command-content')}\n title={ytCliDownloadCommand}\n >\n {ytCliDownloadCommand}\n </div>\n <ClipboardButton\n view={'flat-secondary'}\n text={ytCliDownloadCommand}\n size={'s'}\n />\n </div>\n </code>\n ) : null}\n </Flex>\n {error ? (\n <YTErrorBlock error={error} />\n ) : (\n <PreviewContent data={data} unipikaSettings={unipikaSettings} />\n )}\n </Flex>\n </SimpleModal>\n );\n};\n\ntype PreviewContentProps = {\n data: {$type?: string; $value?: any; $tag?: string} | undefined;\n unipikaSettings: YsonSettings;\n};\n\nfunction PreviewContent(props: PreviewContentProps) {\n const {data, unipikaSettings} = props;\n\n if (data?.$type === 'yql.string' || data?.$type === 'yql.json') {\n return <pre className=\"elements-code\">{data?.$value}</pre>;\n }\n\n if (data?.$type === 'yql.tagged' && data.$tag && isMediaTag(data.$tag)) {\n return <img src={`data:${data.$tag};base64,${data?.$value}`} alt=\"image-preview\" />;\n }\n\n return (\n <Yson\n className={b('yson-container')}\n folding={true}\n value={data?.$value}\n tableSettings={{dynamicRenderScrollParentGetter: undefined}}\n settings={unipikaSettings}\n customLayout={({toolbar, content}) => {\n return (\n <>\n <div className={b('toolbar')}>{toolbar}</div>\n {content}\n </>\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport {useUniqId} from '../../hooks';\nimport type {DOMProps, QAProps} from '../types';\nimport {block} from '../utils/cn';\n\nconst b = block('menu');\n\nexport interface MenuGroupProps extends DOMProps, QAProps {\n label?: string;\n children?: React.ReactNode;\n}\n\nexport const MenuGroup = React.forwardRef<HTMLLIElement, MenuGroupProps>(function MenuGroup(\n {label, children, style, className, qa},\n ref,\n) {\n const labelId = useUniqId();\n\n return (\n <li ref={ref} className={b('list-group-item')}>\n <div style={style} className={b('group', className)} data-qa={qa}>\n {label && (\n <div id={labelId} className={b('group-label')}>\n {label}\n </div>\n )}\n <ul role=\"group\" aria-labelledby={labelId} className={b('group-list')}>\n {children}\n </ul>\n </div>\n </li>\n );\n});\n","'use client';\n\nimport * as React from 'react';\n\nimport {useActionHandlers} from '../../hooks';\nimport type {DOMProps, QAProps} from '../types';\nimport {block} from '../utils/cn';\nimport {eventBroker} from '../utils/event-broker';\n\nconst b = block('menu');\n\nexport interface MenuItemProps extends DOMProps, QAProps {\n iconStart?: React.ReactNode;\n iconEnd?: React.ReactNode;\n title?: string;\n disabled?: boolean;\n active?: boolean;\n selected?: boolean;\n href?: string;\n target?: string;\n contentClassName?: string;\n rel?: string;\n onClick?: React.MouseEventHandler<HTMLDivElement | HTMLAnchorElement>;\n theme?: 'normal' | 'danger';\n extraProps?:\n | React.HTMLAttributes<HTMLDivElement>\n | React.AnchorHTMLAttributes<HTMLAnchorElement>;\n children?: React.ReactNode;\n}\n\nexport const MenuItem = React.forwardRef<HTMLElement, MenuItemProps>(function MenuItem(\n {\n iconStart,\n iconEnd,\n title,\n disabled,\n active,\n selected,\n href,\n target,\n rel,\n onClick,\n style,\n className,\n contentClassName,\n theme,\n extraProps,\n children,\n qa,\n },\n ref,\n) {\n const {onKeyDown} = useActionHandlers(onClick);\n\n const handleClickCapture = React.useCallback((event: React.SyntheticEvent) => {\n eventBroker.publish({\n componentId: 'MenuItem',\n eventId: 'click',\n domEvent: event,\n });\n }, []);\n\n const defaultProps = {\n role: 'menuitem',\n onKeyDown: onClick && !disabled ? onKeyDown : undefined,\n };\n\n const commonProps = {\n title,\n onClick: disabled ? undefined : onClick,\n onClickCapture: disabled ? undefined : handleClickCapture,\n style,\n tabIndex: disabled ? -1 : 0,\n className: b(\n 'item',\n {disabled, active, selected, theme, interactive: Boolean(onClick) || Boolean(href)},\n className,\n ),\n 'data-qa': qa,\n };\n const content = [\n iconStart && (\n <div key=\"icon-start\" className={b('item-icon')}>\n {iconStart}\n </div>\n ),\n <div key=\"content\" className={b('item-content', contentClassName)}>\n {children}\n </div>,\n iconEnd && (\n <div key={'icon-end'} className={b('item-icon-end')}>\n {iconEnd}\n </div>\n ),\n ];\n let item;\n\n if (href) {\n item = (\n <a\n {...defaultProps}\n {...(extraProps as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n {...commonProps}\n href={href}\n target={target}\n rel={rel}\n >\n {content}\n </a>\n );\n } else {\n item = (\n <div\n {...defaultProps}\n {...(extraProps as React.HTMLAttributes<HTMLDivElement>)}\n {...commonProps}\n >\n {content}\n </div>\n );\n }\n\n return (\n <li ref={ref as React.ForwardedRef<HTMLLIElement>} className={b('list-item')}>\n {item}\n </li>\n );\n});\n","'use client';\n\nimport * as React from 'react';\n\nimport type {AriaLabelingProps, DOMProps, QAProps} from '../types';\nimport {block} from '../utils/cn';\nimport {filterDOMProps} from '../utils/filterDOMProps';\n\nimport {MenuGroup} from './MenuGroup';\nimport type {MenuGroupProps} from './MenuGroup';\nimport {MenuItem} from './MenuItem';\nimport type {MenuItemProps} from './MenuItem';\n\nimport './Menu.scss';\n\nconst b = block('menu');\n\nexport type MenuSize = 's' | 'm' | 'l' | 'xl';\n\nexport interface MenuProps extends AriaLabelingProps, DOMProps, QAProps {\n size?: MenuSize;\n children?: React.ReactNode;\n}\n\nexport type {MenuItemProps, MenuGroupProps};\n\ninterface MenuComponent\n extends React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLUListElement>> {\n Item: typeof MenuItem;\n Group: typeof MenuGroup;\n}\n\n// TODO: keyboard navigation, Up/Down arrows and Enter\nexport const Menu = React.forwardRef<HTMLUListElement, MenuProps>(function Menu(\n {size = 'm', children, style, className, qa, ...restProps},\n ref,\n) {\n return (\n <ul\n {...filterDOMProps(restProps, {labelable: true})}\n ref={ref}\n role=\"menu\"\n // tabIndex={0}\n style={style}\n className={b({size}, className)}\n data-qa={qa}\n >\n {children}\n </ul>\n );\n}) as MenuComponent;\n\nMenu.Item = MenuItem;\nMenu.Group = MenuGroup;\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","addI18Keysets","en","ru","useChatToggle","dispatch","useDispatch","isConfigured","useSelector","selectAiChatConfigured","toggle","toggleChatSidePanel","ChatToggleButton","_ref","hideText","_useChatToggle","Tooltip","content","i18n","_jsxs","Button","view","size","onClick","Icon","data","AiIcon","ChatToggleFooterButton","compact","FooterItem","item","id","title","icon","onItemClick","cnDropdownMenu","DropdownMenuContext","undefined","displayName","moveBack","items","activeItemIndex","steps","skip","newActiveItemIndex","length","moveForward","rootMenuPath","DropdownMenuNavigationContext","activeMenuPath","setActiveMenuPath","anchorRef","current","DropdownMenuNavigationContextProvider","disabled","contextValue","Provider","value","dropdownMenuSeparator","text","action","path","isSeparator","shouldSkipItemNavigation","stringifyNavigationPath","join","DropdownMenuPopup","open","onClose","menuProps","popupProps","navigationAnchorRef","isSubmenu","activateParent","slice","handleMouseEnter","handleMouseLeave","handleSelect","activeItem","event","handleKeydown","key","ESCAPE","stopPropagation","ENTER","SPACEBAR","isSubmenuToggleActive","preventDefault","isNavigationActive","setActiveItemIndex","reset","resetNavigation","pageSize","processHomeKey","processEndKey","initialValue","onAnchorKeyDown","some","anchor","handleKeyDown","shouldProcessKeydown","ARROW_DOWN","previousActiveItemIndex","ARROW_UP","PAGE_DOWN","PAGE_UP","HOME","END","addEventListener","removeEventListener","useListNavigation","Popup","placement","onMouseEnter","onMouseLeave","className","Menu","map","index","isActive","isActiveParent","extraProps","DropdownMenuItem","separator","Boolean","selected","closeMenu","isSubmenuOpen","every","useSubmenu","hasSubmenu","closeSubmenu","openSubmenu","subMenuItems","menuItemRef","direction","useDirection","handleCloseMenu","close","requestAnimationFrame","handleMenuItemClick","subMenuPlacement","iconEnd","I","ChevronLeft","ChevronRight","Item","ref","toItemList","startIndex","updatedItems","addedGroup","Array","isArray","groupItems","push","hidden","updatedItem","DropdownMenuExport","Object","assign","Ellipsis","onOpenToggle","hideOnScroll","switcher","renderSwitcher","switcherWrapperClassName","defaultSwitcherProps","defaultSwitcherClassName","onSwitcherClick","isPopupShown","togglePopup","closePopup","visible","onChangeVisibility","setPopupShown","property","setProperty","initialState","isControlled","state","callback","setState","nextValue","previousState","newState","useStateWithCallback","useConditionallyControlledState","isShown","usePopupVisibility","onScroll","handleScroll","target","contains","document","useScrollHandler","itemsList","handleSwitcherClick","onKeyDown","handleSwitcherKeyDown","useActionHandlers","switcherProps","isMediaTag","test","isImageTag","isVideoTag","width","height","usePreventUnload","shouldListen","beforeUnloadHandler","useCallback","e","returnValue","useEffect","window","getSettingQueryTrackerQueriesListSidebarVisibilityMode","createSelector","getSettingsData","settings","useQueriesListSidebarToggle","isQueriesListSidebarVisible","toggleQueriesListSideBarToggle","setSettingByKey","LazyQueriesList","withLazyLoading","React","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","t0","sent","QueriesList","abrupt","stop","block","cn","MONACO_CONFIG","fontSize","language","renderWhitespace","minimap","enabled","FileEditor","_useSelector","selectFileEditorConfig","fileEditor","file","editorRef","useRef","FileIcon","Text","variant","ellipsis","name","setFileEditor","isFullWidth","LayoutColumnsIcon","SquareIcon","isOpen","XmarkIcon","MonacoEditor","onChange","changeQueryFile","monacoConfig","EDITOR_INITIAL_SIZE","QueryEditorSplit","fileEditorFullWidth","fileEditorVisible","onStartQuery","_useState","useState","_useState2","_slicedToArray","sizes","setSize","hideQueryEditor","FlexSplitPane","HORIZONTAL","onResizeEnd","getInitialSizes","QueryEditor","showStatusInTitle","RedirectConfirmModal","message","_ref$ignoreSamePath","ignoreSamePath","showModal","setShowModal","history","useHistory","skipRef","locationRef","handleNavigation","location","samePath","pathname","handleConfirm","_ref2","apply","arguments","unblock","YTDFDialog","pristineSubmittable","headerProps","fields","type","extras","onAdd","b","initialSizes","minSize","QueryPageDraft","routeParams","getQueryGetParams","cluster","selectNavigationCluster","favoriteEngine","getLastUserChoiceQueryEngine","QueryEngine","YQL","engine","isEngine","useDraft","SET_QUERY_PARAMS","params","createQueryFromTablePath","createEmptyQuery","QueryPage","match","queryId","loadQuery","QueryTracker","_useQueriesListSideba","isQueryStateDirty","getDirtySinceLastSubmit","selectFileEditor","getSize","useMemo","loadQueryTrackerInfo","useQueryACO","goToCreatedQuery","goToQuery","URLSearchParams","search","get","_Fragment","Switch","Route","exact","component","concat","MonacoContext","Map","QueriesPooling","CellPreviewModal","QueriesListSidebarToggleButton","awesome","RightButtonsGroup","onQueryCreate","Flex","gap","NewQueryButton","isDesktop","setIsDesktop","handleResize","matchMedia","matches","useIsDesktop","getQueryDraft","annotations","nameEdit","setNameEdit","handleChangeEngine","newEngine","setQueryEngine","setUserLastChoice","handleCreateNewQuery","resetQueryTracker","handleNameChange","updateQueryDraft","handleSettingsChange","newSettings","RowWithName","page","Page","QUERIES","alignItems","grow","EditableAsText","cancelOnClose","withControls","openOnClick","onModeChange","saveButtonView","cancelButtonView","HeadSpacer","QueryClusterSelector","QueryEngineSelector","QuerySelectorsByEngine","QuerySettingsButton","QueryFilesButton","LazyQueryTokenButton","ICON_BY_TYPE","_defineProperty","SortIcon","_React$Component","_this","_classCallCheck","_len","args","_key","_callSuper","_this$props","order","allowUnordered","withUndefined","nextSortOrderValue","_inherits","_createClass","_this$props2","this","label","format","ReadableField","face","importComponents","LazyAddQueryTokenForm","AddQueryTokenFormButton","LazyQueryTokenList","_callee2","_context2","QueryTokenTable","_callee3","_context3","QueryTokenButton","disableEdit","renderEditor","renderContent","_props$saveButtonView","_props$cancelButtonVi","_React$useState","_React$useState2","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","handleChangeMode","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","evt","controlSize","edit","controls","onBlur","TextInput","autoFocus","onUpdate","onMouseDown","renderEditButton","qa","makeItemsCopy","map_","DragHandle","sortableHandle","SortableItem","sortableElement","isSortable","isSelectable","isDisabled","itemRenderer","onCheckBoxChange","active","checked","selectable","showAction","isDeletable","keyColumn","SortableList","sortableContainer","useStaticSize","mods","ReactList","ColumnSelector","_Component","isHeadless","showSelectedOnly","toggleItem","withActualItems","_ref3","_toConsumableArray","findIndex","changedItem","selectAllItems","_ref4","visibleMap","getVisibleItemsMap","each_","deselectAllItems","_ref5","_item$isDeletable","invertItems","_ref6","visibleItems","_handleCheckBoxChange","currentTarget","getAttribute","_handleSortEnd","_ref7","oldIndex","newIndex","_ref8","getVisibleItems","fromIndex","toIndex","_items$splice","splice","removed","_handleDefaultSort","_ref9","sort","a","aCaption","caption","bCaption","localeCompare","_toggleShownItems","prevState","_changeFilter","filter","func","_this2","placeholder","hasClear","isFilterable","btnProps","renderSearchBox","filter_","buttonALLisDisabled","buttonNONEisDisabled","re","RegExp","escapeRegExp_","showDisabledItems","filterItemsByName","toSplit","filterItems","_partition_","partition_","_partition_2","keyItems","reduce_","acc","_this$getVisibleItems2","headless","empty","lockAxis","helperClass","helper","onSortEnd","useDragHandle","_this$props3","classNames","sortable","renderControls","renderList","Component","itemsProps","PropTypes","isRequired","defaultProps","_ref0","_ref0$caption","renderText","asHTML","selectCellPreviewVisible","navigation","modals","cellPreviewModal","selectCellPreviewLoading","loading","selectCellPreviewData","selectCellPreviewYtCliDownloadCommand","ytCliDownloadCommand","selectCellPreviewNoticeText","noticeText","selectErrorPreviewCellPath","error","unipikaSettings","getPreviewCellYsonSettings","SimpleModal","onCancel","closeCellPreviewAndCancelRequest","wrapperClassName","color","ClipboardButton","YTErrorBlock","PreviewContent","$type","$value","$tag","src","alt","Yson","folding","tableSettings","dynamicRenderScrollParentGetter","customLayout","toolbar","MenuGroup","style","labelId","useUniqId","u","role","MenuItem","iconStart","href","rel","contentClassName","theme","handleClickCapture","publish","componentId","eventId","domEvent","commonProps","onClickCapture","tabIndex","interactive","restProps","filterDOMProps","labelable","Group"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[7700],{15034:(e,n,t)=>{t.d(n,{A:()=>p});var r=t(40319),o=t(29121),a=t(12937),s=t(66134),l=t(10785),i=t(77810),u=t(76872),c=t(52461),d=t(21211),f=t(64922),v=(0,u.A)("elements-dropdown"),h=function(e){function n(){var e;(0,o.A)(this,n);for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return(e=(0,s.A)(this,n,[].concat(r))).state={popupVisible:!1},e.anchor=i.createRef(),e.toggle=function(){return e.setState((function(e){return{popupVisible:!e.popupVisible}}))},e.open=function(){return e.setState({popupVisible:!0})},e.close=function(){return e.setState({popupVisible:!1})},e}return(0,l.A)(n,e),(0,a.A)(n,[{key:"renderButton",value:function(){var e=this.props,n=e.button,t=e.trigger,r={onClick:"click"===t?this.toggle:void 0,onMouseEnter:"hover"===t?this.open:void 0,onMouseLeave:"hover"===t?this.close:void 0};return i.cloneElement(n,r)}},{key:"renderTemplate",value:function(){var e=this.props.template,n=this.props.template,t=n.key,r=n.data,o=c.A.get(t).__default__;return i.isValidElement(e)?i.cloneElement(e):o.call(this,r)}},{key:"renderPopup",value:function(){var e=this,n=this.props,t=n.popup,o=n.directions;return(0,f.jsx)(d.z,(0,r.A)((0,r.A)({placement:(null==o?void 0:o[0])||"bottom",onOpenChange:function(n){n||e.close()},open:!0,anchorElement:this.anchor.current},t),{},{children:this.renderTemplate()}))}},{key:"render",value:function(){var e=this.props.className;return(0,f.jsxs)("span",{className:v(null,e),ref:this.anchor,children:[this.renderButton(),this.state.popupVisible&&this.renderPopup()]})}}])}(i.Component);h.defaultProps={zIndexGroupLevel:1,directions:["bottom-end","top-end"]};const p=h},21135:(e,n,t)=>{t.d(n,{P:()=>l});var r=t(77810),o=t(55339),a=t(56201),s=t(64922),l=function(e){var n=e.className,t=e.loading,l=e.onLoadMore,i=(0,r.useRef)(null);return(0,r.useEffect)((function(){var e=new IntersectionObserver((function(e){e.forEach((function(e){e.isIntersecting&&l()}))}),{root:null,threshold:.1});return i.current&&e.observe(i.current),function(){i.current&&e.unobserve(i.current)}}),[]),(0,s.jsx)(o.s,{className:n,ref:i,alignItems:"center",justifyContent:"center",children:t?(0,s.jsx)(a.a,{}):""})}},51856:(e,n,t)=>{t.d(n,{A:()=>v});var r=t(40319),o=t(9736),a=t(18801),s=t(77810),l=t(24503),i=t.n(l),u=t(69764),c=t(64922),d=["debounce","onUpdate","onBlur","value","onEnterKeyDown","onKeyDown"];function f(e){var n=e.debounce,t=void 0===n?400:n,l=e.onUpdate,f=void 0===l?function(){}:l,v=e.onBlur,h=e.value,p=e.onEnterKeyDown,m=e.onKeyDown,x=(0,a.A)(e,d),j=s.useState(),A=(0,o.A)(j,2),w=A[0],g=A[1],b=s.useMemo((function(){return i()(f,t)}),[t,f]),y=s.useCallback((function(e){g(e),b(e)}),[b,g]),C=s.useCallback((function(e){m&&m(e),"Enter"===e.key&&p&&p(e)}),[p,m]),N=s.useCallback((function(e){g(void 0),v&&v(e)}),[g,v]);return s.useEffect((function(){return function(){b.cancel()}}),[b]),(0,c.jsx)(u.k,(0,r.A)((0,r.A)({onUpdate:y},x),{},{value:void 0===w?h:w,onBlur:N,onKeyDown:C}))}const v=s.memo(f)},59578:(e,n,t)=>{t.d(n,{Qw:()=>v,dF:()=>d,jx:()=>f});var r=t(77810),o=t(14371),a=t(80676),s=t.n(a),l=t(88144),i=t.n(l),u=t(52797),c=t(53246);function d(){var e=(0,o.w)();r.useEffect((function(){e((0,c.uU)())}),[]);var n=(0,o.d)(u.mz);return{getFiltered:r.useCallback((function(e){var t=s()(n,e,(function(n){return n.substr(0,e.length)})),r=i()(n,e,(function(n){return n.substr(0,e.length)}));return n.slice(t,r)}),[n]),allNames:n}}function f(){var e=(0,o.w)();r.useEffect((function(){e((0,c.qR)())}),[])}function v(e){var n=e.children;return f(),null!=n?n:null}},66911:(e,n,t)=>{t.r(n),t.d(n,{QueriesList:()=>Oe});var r=t(68175),o=t(77810),a=t(76872),s=t(17581),l=t(38828),i=t(13051),u=t(2371),c=t(9736),d=t(14371),f=t(66944),v=t(79543),h=t(81379),p=t(64965),m=t(21003),x=t(52797),j=t(29970),A=function(){var e=(0,d.d)(j.$Z),n=(0,d.d)(x.dB),t=(0,d.d)(v.OP),r=(0,p.W6)(),a=(0,o.useCallback)((function(e){var o=(0,m.C)(n,e.id),a=new URLSearchParams(r.location.search);a.set("listMode",t),r.push("".concat(o,"?").concat(a.toString()))}),[n,r,t]);return[null==e?void 0:e.id,a]},w=t(13685),g=(t(43671),t(61422)),b=t(21135),y=t(34206),C=t(82140),N=t(64922),k=(0,a.A)("queries-history-list"),M=(0,a.A)("query-history-item"),I=function(e){return void 0!==e.header},R={displayIndices:!1,sortable:!1,stickyHead:f.Ay.MOVING,syncHeadOnResize:!0};function S(){var e=(0,d.w)(),n=o.useCallback((function(){e((0,g.et)({refresh:!0}))}),[e]);return(0,w.Tt)(n,{timeout:C.h}),null}function q(){var e=(0,d.w)(),n=(0,d.d)(v.kx),t=(0,d.d)(v.Vm),r=(0,d.d)(v.qO).columns,a=(0,d.d)(v.MD),s=A(),l=(0,c.A)(s,2),i=l[0],u=l[1],f=a&&n.length>0,p=(0,o.useCallback)((function(e){var n=I(e);return M({header:n?Boolean(e.header):void 0,selected:n?void 0:e.id===i})}),[i]);return(0,N.jsxs)("div",{className:k(),children:[(0,N.jsx)(S,{}),(0,N.jsxs)("div",{className:k("list-wrapper"),children:[(0,N.jsx)(h.Ay,{className:k("list"),loading:t,columns:r,data:n,useThemeYT:!0,rowKey:function(e){return I(e)?e.header:e.id},onRowClick:function(e){I(e)||u(e)},disableRightGap:!0,settings:R,rowClassName:p,getColSpansOfRow:function(e){var n=e.row;if(I(n))return{Name:r.length}}}),f&&(0,N.jsx)(b.P,{className:k("pagination"),loading:t,onLoadMore:function(){e((0,g.sZ)(y.cL.PAST))}})]})]})}var E=t(9178),L=t(45760),V=t(3962),z=t(14424),O=t(56201),P=t(40319);const U=function(e){return(0,N.jsx)("svg",(0,P.A)((0,P.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 14"},e),{},{children:(0,N.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M6.836 2.202 1.74 4.386a.396.396 0 0 0 0 .728l5.096 2.184a2.5 2.5 0 0 0 .985.202h.358a2.5 2.5 0 0 0 .985-.202l5.096-2.184a.396.396 0 0 0 0-.728L9.164 2.202A2.5 2.5 0 0 0 8.179 2h-.358a2.5 2.5 0 0 0-.985.202M1.5 6.642l1.5.644v3.228a2 2 0 0 0 1.106 1.789l.806.403a7 7 0 0 0 6.193.033l.909-.442a2 2 0 0 0 1.125-1.798V7.226l1.712-.734a1.896 1.896 0 0 0 0-3.484L9.755.823A4 4 0 0 0 8.179.5h-.358a4 4 0 0 0-1.576.323L1.15 3.008A1.9 1.9 0 0 0 0 4.75v4.5a.75.75 0 0 0 1.5 0zm3 3.872V7.929l1.745.748A4 4 0 0 0 7.821 9h.358a4 4 0 0 0 1.576-.323l1.884-.808v2.63a.5.5 0 0 1-.282.45l-.909.442a5.5 5.5 0 0 1-4.865-.027l-.807-.403a.5.5 0 0 1-.276-.447",clipRule:"evenodd"})}))};var _=(0,a.A)("query-tutorial-item"),K=(0,a.A)("queries-tutorial-list");function D(e){var n,t;return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(L.I,{className:_("icon"),data:U}),(0,N.jsx)(V.E,{className:_("text"),ellipsis:!0,title:null==e||null===(n=e.annotations)||void 0===n?void 0:n.title,children:(null==e||null===(t=e.annotations)||void 0===t?void 0:t.title)||"No name"})]})}function T(e){var n=e.className,t=(0,d.d)(v.h9),r=(0,d.d)(v.Vm),a=A(),s=(0,c.A)(a,2),l=s[0],i=s[1],u=(0,o.useMemo)((function(){return t.findIndex((function(e){return e.id===l}))}),[l,t]),f=(0,o.useMemo)((function(){return function(e){return function(n){var t;return(null==n||null===(t=n.annotations)||void 0===t||null===(t=t.title)||void 0===t?void 0:t.toLocaleLowerCase().includes(e.toLocaleLowerCase()))||!1}}}),[]);return(0,N.jsxs)("div",{className:K(null,n),children:[(0,N.jsx)(z.B,{className:K("list",{loading:r}),filterable:!0,filterClassName:K("filter"),filterPlaceholder:"Filter by name",filterItem:f,virtualized:!1,selectedItemIndex:u,sortable:!1,itemHeight:32,itemClassName:_(),items:r?[]:t,renderItem:D,onItemClick:i}),r&&(0,N.jsx)("div",{className:K("loader"),children:(0,N.jsx)(O.a,{size:"l"})})]})}var B=t(1435),$=t(79703);const Y=function(e){return(0,N.jsx)("svg",(0,P.A)((0,P.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,N.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.5 4c0 .174-.071.513-.885.888S9.538 5.5 8 5.5s-2.799-.237-3.615-.612C3.57 4.513 3.5 4.174 3.5 4s.071-.513.885-.888S6.462 2.5 8 2.5s2.799.237 3.615.612c.814.375.885.714.885.888m-1.448 2.66C10.158 6.888 9.115 7 8 7s-2.158-.113-3.052-.34l1.98 2.905c.21.308.322.672.322 1.044v3.37q.088.02.25.021c.422 0 .749-.14.95-.316.185-.162.3-.38.3-.684v-2.39c0-.373.112-.737.322-1.045zM8 1c3.314 0 6 1 6 3a3.24 3.24 0 0 1-.563 1.826l-3.125 4.584a.35.35 0 0 0-.062.2V13c0 1.5-1.25 2.5-2.75 2.5s-1.75-1-1.75-1v-3.89a.35.35 0 0 0-.061-.2L2.563 5.826A3.24 3.24 0 0 1 2 4c0-2 2.686-3 6-3m-.88 12.936q-.015-.008-.013-.01z",clipRule:"evenodd"})}))};var F=t(13322),H=t(73688),Q=t(80886),G=t(30996),Z="__all",W=[{value:Z,content:"All"}].concat((0,F.A)(Q.qS.map((function(e){return{value:e,content:G.i[e]}})))),J=function(){var e=(0,d.w)(),n=(0,d.d)(v.uc).engine,t=(0,o.useCallback)((function(n){var t=n[0];e((0,g.$h)({engine:t===Z?void 0:t}))}),[e]);return(0,N.jsx)(H.l,{options:W,value:[n||Z],onUpdate:t,placeholder:"Select engine"})},X=t(15034),ee=t(58299),ne=t(60111),te=t(77648),re=t(59028),oe=t(51856),ae=t(55339),se=t(1335),le=t(79988),ie=t(81594),ue=t(73822),ce="__all",de=[{value:ce,content:"All"}].concat((0,F.A)(Object.values(ie.RE).map((function(e){return{value:e,content:ue.A.format.Readable(e)}})))),fe=function(){var e=(0,d.w)(),n=(0,d.d)(v.uc).state,t=(0,o.useCallback)((function(n){var t=n[0],r=t===ce?void 0:t;e((0,g.$h)({state:r}))}),[e]);return(0,N.jsx)(H.l,{width:"max",options:de,value:[n||ce],onUpdate:t,placeholder:"Select status"})},ve=t(59578),he="__all",pe=function(){(0,ve.dF)();var e=(0,d.w)(),n=(0,d.d)(x.Le),t=(0,d.d)(x.ID),r=(0,d.d)(v.uc).user,a=(0,o.useMemo)((function(){return[{value:he,content:"All"}].concat((0,F.A)(n.map((function(e){return{value:e,content:e}}))))}),[n]),s=(0,o.useMemo)((function(){var e=r;return e||(e=he),e===E.AK.My&&(e=t),[e]}),[t,r]),l=(0,o.useCallback)((function(n){e((0,g.$h)({user:n[0]}))}),[e]);return(0,N.jsx)(H.l,{options:a,value:s,onUpdate:l,filterable:!0})},me=t(34427),xe=t(20542),je=function(){var e=(0,d.w)(),n=(0,d.d)(v.uc),t=n.from,r=n.to,a=(0,o.useMemo)((function(){return{from:function(n){e((0,g.$h)({from:n?n.valueOf():void 0}))},to:function(n){e((0,g.$h)({to:n?n.valueOf():void 0}))}}}),[e]);return(0,N.jsxs)(ae.s,{alignItems:"center",gap:1,children:[(0,N.jsx)(me.l,{placeholder:"Start date",format:"DD.MM.YYYY",value:t?(0,xe.bQ)({input:t}):null,onUpdate:a.from,hasClear:!0})," ","—",(0,N.jsx)(me.l,{placeholder:"End date",format:"DD.MM.YYYY",value:r?(0,xe.bQ)({input:r}):null,onUpdate:a.to,hasClear:!0})]})},Ae=(0,a.A)("yt-qt-filter-dropdown"),we=function(e){var n=e.title,t=e.children;return(0,N.jsxs)(ae.s,{direction:"column",gap:2,children:[(0,N.jsx)(V.E,{variant:"subheader-1",children:n}),t]})},ge=function(){var e=(0,d.w)(),n=(0,d.d)(v.$I),t=o.useCallback((function(){e((0,g.yL)())}),[e]);return(0,N.jsxs)(ae.s,{className:Ae(),direction:"column",gap:3,children:[(0,N.jsx)(we,{title:"Operation date",children:(0,N.jsx)(je,{})}),(0,N.jsx)(we,{title:"Operation owner",children:(0,N.jsx)(pe,{})}),(0,N.jsx)(we,{title:"Query state",children:(0,N.jsx)(fe,{})}),n&&(0,N.jsx)(ae.s,{justifyContent:"flex-end",children:(0,N.jsxs)(se.$,{view:"outlined",onClick:t,children:[(0,N.jsx)(L.I,{data:le.A,size:16})," Reset filters"]})})]})},be=t(54473),ye=[{value:E.AK.My,content:"My"},{value:E.AK.All,content:"All"}],Ce=function(){var e=(0,d.w)(),n=(0,d.d)(v.uc).user,t=(0,d.d)(x.ID),r=(0,o.useMemo)((function(){return E.AK.My===n||n===t?E.AK.My:E.AK.All}),[t,n]);return(0,N.jsx)(be.x,{options:ye,value:r,onUpdate:function(n){e((0,g.$h)({user:n}))}})},Ne=(0,a.A)("queries-history-filter");function ke(e){var n=e.className,t=(0,d.w)(),r=(0,d.d)(v.uc),o=(0,d.d)(v.OP),a=(0,d.d)(v.qO).allowedColumns,s=(0,d.d)(v.$I);return o===E.e8.History?(0,N.jsxs)("div",{className:Ne(null,n),children:[(0,N.jsxs)("div",{className:Ne("row"),children:[(0,N.jsx)(Ce,{}),(0,N.jsx)(J,{}),(0,N.jsx)(X.A,{trigger:"click",directions:["bottom"],button:(0,N.jsx)(ee.A,{view:s?"outlined-info":"outlined",tooltipProps:{content:"Additional filters"},withTooltip:!0,children:(0,N.jsx)(L.I,{data:Y,size:16})}),template:(0,N.jsx)(ge,{})}),(0,N.jsx)(X.A,{trigger:"click",directions:["bottom"],button:(0,N.jsx)(ee.A,{tooltipProps:{content:"Table column settings"},withTooltip:!0,children:(0,N.jsx)(L.I,{data:ne.A,size:16})}),template:(0,N.jsx)(te.A,{items:a,onChange:function(e){t((0,re.rw)("global::queryTracker::history::Columns",e.items.filter((function(e){return e.checked})).map((function(e){return e.name}))))}})})]}),(0,N.jsxs)("div",{className:Ne("row"),children:[(0,N.jsx)(oe.A,{placeholder:"Search in query name, body and access control",value:null==r?void 0:r.filter,onUpdate:function(e){t((0,g.$h)({filter:e}))}}),(0,N.jsx)(B.m,{content:(0,N.jsxs)(N.Fragment,{children:["Search in query text, annotations and access control",(0,N.jsx)("br",{}),'Use `"title"="test_name"` to search in query name',(0,N.jsx)("br",{}),"Use `aco:nobody` to search in query access control"]}),children:(0,N.jsx)(L.I,{data:$.A,size:16})})]})]}):(0,N.jsx)("div",{className:Ne(null,n),children:(0,N.jsx)("div",{className:Ne("row"),children:(0,N.jsx)(J,{})})})}var Me=t(53775),Ie=t(28407),Re=t(33882),Se=(0,Re.A)((0,o.lazy)((0,Ie.A)((0,Me.A)().mark((function e(){return(0,Me.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all([t.e(8096),t.e(9143),t.e(4665),t.e(4108),t.e(2494),t.e(5828),t.e(4533)]).then(t.bind(t,1993));case 2:return e.t0=e.sent.Vcs,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)}))))),qe=(0,Re.A)((0,o.lazy)((0,Ie.A)((0,Me.A)().mark((function e(){return(0,Me.A)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all([t.e(4665),t.e(5292),t.e(3536),t.e(2494),t.e(9641),t.e(7999),t.e(1745),t.e(4592),t.e(333),t.e(193),t.e(1682),t.e(1040)]).then(t.bind(t,56652));case 2:return e.t0=e.sent.Navigation,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)}))))),Ee=t(87410),Le=(0,a.A)("queries-list"),Ve=(0,r.A)((0,r.A)((0,r.A)((0,r.A)({},E.e8.History,"History"),E.e8.Tutorials,"Tutorials"),E.e8.VCS,"VCS"),E.e8.Navigation,"Navigation"),ze=(0,r.A)((0,r.A)((0,r.A)((0,r.A)({},E.e8.History,(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(ke,{className:Le("filter")}),(0,N.jsx)(q,{})]})),E.e8.Tutorials,(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(ke,{className:Le("filter")}),(0,N.jsx)(T,{className:Le("list-content")})]})),E.e8.VCS,(0,N.jsx)(Se,{})),E.e8.Navigation,(0,N.jsx)(qe,{}));function Oe(){var e=(0,d.w)(),n=(0,d.d)(v.OP),t=(0,d.d)(v.xK),r=(0,o.useRef)(!1);return(0,o.useEffect)((function(){r.current||(r.current=!0,e((0,Ee.R6)(E.e2[n])),e((0,g.et)({refresh:!0})))}),[e,n]),(0,N.jsx)("div",{className:Le(),children:(0,N.jsxs)(s.f,{value:n,onUpdate:function(n){e((0,g.wD)(n))},children:[(0,N.jsx)(l.w,{className:Le("tabs"),children:t.map((function(e){return(0,N.jsx)(i.o,{value:e,children:Ve[e]},e)}))}),(0,N.jsx)("div",{className:Le("content"),children:t.map((function(e){return(0,N.jsx)(u.K,{value:e,children:ze[e]},e)}))})]})})}},79703:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(40319),o=t(64922);const a=function(e){return(0,o.jsx)("svg",(0,r.A)((0,r.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,o.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14M6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.078.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.325.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.057-1.645.28-.196.4-.332.458-.426a.54.54 0 0 0 .075-.312c0-.3-.244-.641-.84-.641a1 1 0 0 0-.608.223c-.167.138-.231.287-.231.418a.75.75 0 0 1-1.5 0c0-.674.345-1.22.78-1.577M8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2",clipRule:"evenodd"})}))}},82140:(e,n,t)=>{t.d(n,{h:()=>r});var r=5e3}}]);
|
|
2
|
-
//# sourceMappingURL=yt-queries-list.0737c4ce.chunk.js.map
|