@ytsaurus/ui 1.12.0 → 1.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/cjs/server/controllers/login.js +1 -1
  2. package/build/cjs/server/controllers/login.js.map +1 -1
  3. package/build/cjs/ui/constants/docsUrls.d.ts +1 -0
  4. package/build/cjs/ui/constants/docsUrls.js +1 -0
  5. package/build/cjs/ui/constants/docsUrls.js.map +1 -1
  6. package/build/cjs/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js +19 -4
  7. package/build/cjs/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js.map +1 -1
  8. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +11 -7
  9. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  10. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  11. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  12. package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
  13. package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
  14. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
  15. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +16 -1
  16. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  17. package/build/esm/server/controllers/login.js +1 -1
  18. package/build/esm/server/controllers/login.js.map +1 -1
  19. package/build/esm/ui/constants/docsUrls.d.ts +1 -0
  20. package/build/esm/ui/constants/docsUrls.js +1 -0
  21. package/build/esm/ui/constants/docsUrls.js.map +1 -1
  22. package/build/esm/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js +19 -4
  23. package/build/esm/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js.map +1 -1
  24. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +12 -8
  25. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  26. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  27. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  28. package/build/esm/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
  29. package/build/esm/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
  30. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
  31. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +15 -0
  32. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  33. package/dist/public/build/assets-manifest.json +10 -10
  34. package/dist/public/build/js/869.c0b556ac.chunk.js +3 -0
  35. package/dist/public/build/js/869.c0b556ac.chunk.js.map +1 -0
  36. package/dist/public/build/js/main.f91e3651.js +3 -0
  37. package/dist/public/build/js/{main.69fdeec5.js.map → main.f91e3651.js.map} +1 -1
  38. package/dist/public/build/js/{runtime.9543184a.js → runtime.6c8d85d3.js} +2 -2
  39. package/dist/public/build/js/{runtime.9543184a.js.map → runtime.6c8d85d3.js.map} +1 -1
  40. package/dist/public/build/manifest.json +6 -6
  41. package/dist/server/controllers/login.js +1 -1
  42. package/package.json +2 -2
  43. package/dist/public/build/js/869.4b883a30.chunk.js +0 -3
  44. package/dist/public/build/js/869.4b883a30.chunk.js.map +0 -1
  45. package/dist/public/build/js/main.69fdeec5.js +0 -3
  46. /package/dist/public/build/js/{869.4b883a30.chunk.js.LICENSE.txt → 869.c0b556ac.chunk.js.LICENSE.txt} +0 -0
  47. /package/dist/public/build/js/{main.69fdeec5.js.LICENSE.txt → main.f91e3651.js.LICENSE.txt} +0 -0
@@ -79,7 +79,7 @@ async function handleLogout(req, res) {
79
79
  return throwAuthDisabled();
80
80
  }
81
81
  res.setHeader('set-cookie', `${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);
82
- res.sendStatus(401).send('Logout');
82
+ res.status(401).send('Logout');
83
83
  }
84
84
  catch (e) {
85
85
  (0, utils_1.sendAndLogError)(req.ctx, res, 500, e);
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_constants","_requestsSetup","_utils","_crypto","_javascriptWrapper","_clusterQueries","obj","__esModule","default","yt","ytLib","throwAuthDisabled","Error","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","ctx","config","abrupt","JSON","parse","body","getYTApiClusterSetup","concat","Buffer","from","toString","axios","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","undefined","removeSecureFlagIfOriginInsecure","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","stop","_x7","t0","sendAndLogError","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","YT_CYPRESS_COOKIE_NAME","replace","handleLogout","_x3","_x4","_handleLogout","_callee3","_callee3$","_context3","setHeader","sendStatus","send","handleChangePassword","_x5","_x6","_handleChangePassword","_callee4","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee4$","_context4","crypto","createHash","update","digest","getUserYTApiSetup","getXSRFToken","createOption","v4","setUserPassword","parameters","user","result","status","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\n\nconst yt = ytLib();\n\nfunction throwAuthDisabled() {\n throw new Error(\n 'Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.',\n );\n}\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers) => removeSecureFlagIfOriginInsecure(req, headers),\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleLogout(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n res.setHeader('set-cookie', `${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);\n res.sendStatus(401).send('Logout');\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AAGA,IAAAK,kBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AAA0D,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAF1D;;AAIA,IAAMG,EAAE,GAAG,IAAAC,0BAAK,EAAC,CAAC;AAElB,SAASC,iBAAiBA,CAAA,EAAG;EACzB,MAAM,IAAIC,KAAK,CACX,8FACJ,CAAC;AACL;AAEA,SAAsBC,WAAWA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,YAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAwChC,SAAAF,aAAA;EAAAA,YAAA,OAAAG,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAxCM,SAAAC,SAA2BC,GAAY,EAAEC,GAAa;IAAA,IAAAC,aAAA,EAAAC,IAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,SAAA;IAAA,OAAAZ,oBAAA,CAAAa,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UAAAF,SAAA,CAAAC,IAAA;UAE9CX,aAAa,GAAIF,GAAG,CAACe,GAAG,CAACC,MAAM,CAA/Bd,aAAa;UAAA,IACfA,aAAa;YAAAU,SAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,SAAA,CAAAK,MAAA,WACP7B,iBAAiB,CAAC,CAAC;QAAA;UAAAe,IAAA,GAGDe,IAAI,CAACC,KAAK,CAACnB,GAAG,CAACoB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAhDhB,QAAQ,GAAAD,IAAA,CAARC,QAAQ,EAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;UAAA,MACrB,CAACD,QAAQ,IAAI,CAACC,QAAQ;YAAAO,SAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MAChB,IAAIzB,KAAK,CAAC,yCAAyC,CAAC;QAAA;UAAAiB,qBAAA,GAGvC,IAAAe,mCAAoB,EAACnB,aAAa,CAAC,EAAnDK,YAAY,GAAAD,qBAAA,CAAZC,YAAY;UACbC,UAAU,MAAAc,MAAA,CAAMf,YAAY;UAE5BE,SAAS,GAAGc,MAAM,CAACC,IAAI,IAAAF,MAAA,CAAIlB,QAAQ,OAAAkB,MAAA,CAAIjB,QAAQ,CAAE,CAAC,CAACoB,QAAQ,CAAC,QAAQ,CAAC;UAAAb,SAAA,CAAAE,IAAA;UAAA,OAErEY,cAAK,CACNC,OAAO,CAAC;YACLC,GAAG,EAAEpB,UAAU;YACfqB,MAAM,EAAE7B,GAAG,CAAC6B,MAAa;YACzBC,OAAO,MAAAC,sBAAA,MAAAA,sBAAA,MAAM/B,GAAG,CAACe,GAAG,CAACiB,WAAW,CAAC,CAAC;cAAEC,aAAa,WAAAX,MAAA,CAAWb,SAAS;YAAE,EAAC;YACxEyB,OAAO,EAAE,KAAK;YACdC,YAAY,EAAE;UAClB,CAAC,CAAC,CACDC,IAAI;YAAA,IAAAC,KAAA,OAAAzC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAC,SAAAwC,QAAOC,QAAQ;cAAA,IAAAC,SAAA;cAAA,OAAA3C,oBAAA,CAAAa,IAAA,UAAA+B,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAA7B,IAAA,GAAA6B,QAAA,CAAA5B,IAAA;kBAAA;oBAAA4B,QAAA,CAAA5B,IAAA;oBAAA,OACO,IAAA6B,wBAAiB,EACrC3C,GAAG,CAACe,GAAG,EACPd,GAAG,EACHsC,QAAQ,EACRK,SAAS,EACT,UAACd,OAAO;sBAAA,OAAKe,gCAAgC,CAAC7C,GAAG,EAAE8B,OAAO,CAAC;oBAAA,CAC/D,CAAC;kBAAA;oBANKU,SAAS,GAAAE,QAAA,CAAAI,IAAA;oBAAA,IAOVN,SAAS;sBAAAE,QAAA,CAAA5B,IAAA;sBAAA;oBAAA;oBAAA,MACJ,IAAIzB,KAAK,CAAC0D,qCAA8B,CAAC;kBAAA;kBAAA;oBAAA,OAAAL,QAAA,CAAAM,IAAA;gBAAA;cAAA,GAAAV,OAAA;YAAA,CAEtD;YAAA,iBAAAW,GAAA;cAAA,OAAAZ,KAAA,CAAA3C,KAAA,OAAAC,SAAA;YAAA;UAAA,IAAC;QAAA;UAAAiB,SAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAsC,EAAA,GAAAtC,SAAA;UAEN,IAAAuC,sBAAe,EAACnD,GAAG,CAACe,GAAG,EAAEd,GAAG,EAAE,GAAG,EAAAW,SAAA,CAAAsC,EAAG,CAAC;QAAC;QAAA;UAAA,OAAAtC,SAAA,CAAAoC,IAAA;MAAA;IAAA,GAAAjD,QAAA;EAAA,CAE7C;EAAA,OAAAN,YAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAASkD,gCAAgCA,CACrC7C,GAAY,EACZ8B,OAA+C,EACjD;EACE,IAAOsB,mBAAmB,GAAIpD,GAAG,CAACe,GAAG,CAACC,MAAM,CAArCoC,mBAAmB;EAC1B,IAAOC,MAAM,GAAIrD,GAAG,CAAC8B,OAAO,CAArBuB,MAAM;EAEb,IAAI,CAACD,mBAAmB,IAAI,QAAQ,KAAK,OAAOC,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,CAAC,SAAS,CAAC,EAAE;IACrF,OAAOxB,OAAO;EAClB;EAEA,OAAO,IAAAyB,gBAAA,EACHzB,OAAO,EACP,UAAC0B,GAAG,EAAEC,CAAC,EAAEC,CAAC,EAAK;IACX,IAAIA,CAAC,KAAK,YAAY,EAAE;MACpBF,GAAG,CAACE,CAAC,CAAC,GAAGD,CAAC;IACd,CAAC,MAAM;MACH,IAAME,GAAG,GAAG,IAAAC,aAAA,EAAMH,CAAC,EAAmB,UAACI,IAAI,EAAK;QAC5C,IAAIA,IAAI,CAACP,UAAU,CAACQ,iCAAsB,CAAC,EAAE;UACzC,OAAOD,IAAI,CAACE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QACzC;QACA,OAAOF,IAAI;MACf,CAAC,CAAC;MACFL,GAAG,CAACE,CAAC,CAAC,GAAGC,GAAG;IAChB;IACA,OAAOH,GAAG;EACd,CAAC,EACD,CAAC,CACL,CAAC;AACL;AAEA,SAAsBQ,YAAYA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,aAAA,CAAAzE,KAAA,OAAAC,SAAA;AAAA;AAWjC,SAAAwE,cAAA;EAAAA,aAAA,OAAAvE,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAXM,SAAAsE,SAA4BpE,GAAY,EAAEC,GAAa;IAAA,IAAAC,aAAA;IAAA,OAAAL,oBAAA,CAAAa,IAAA,UAAA2D,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAzD,IAAA,GAAAyD,SAAA,CAAAxD,IAAA;QAAA;UAAAwD,SAAA,CAAAzD,IAAA;UAE/CX,aAAa,GAAIF,GAAG,CAACe,GAAG,CAACC,MAAM,CAA/Bd,aAAa;UAAA,IACfA,aAAa;YAAAoE,SAAA,CAAAxD,IAAA;YAAA;UAAA;UAAA,OAAAwD,SAAA,CAAArD,MAAA,WACP7B,iBAAiB,CAAC,CAAC;QAAA;UAE9Ba,GAAG,CAACsE,SAAS,CAAC,YAAY,KAAAjD,MAAA,CAAKwC,iCAAsB,iCAA8B,CAAC;UACpF7D,GAAG,CAACuE,UAAU,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,QAAQ,CAAC;UAACH,SAAA,CAAAxD,IAAA;UAAA;QAAA;UAAAwD,SAAA,CAAAzD,IAAA;UAAAyD,SAAA,CAAApB,EAAA,GAAAoB,SAAA;UAEnC,IAAAnB,sBAAe,EAACnD,GAAG,CAACe,GAAG,EAAEd,GAAG,EAAE,GAAG,EAAAqE,SAAA,CAAApB,EAAG,CAAC;QAAC;QAAA;UAAA,OAAAoB,SAAA,CAAAtB,IAAA;MAAA;IAAA,GAAAoB,QAAA;EAAA,CAE7C;EAAA,OAAAD,aAAA,CAAAzE,KAAA,OAAAC,SAAA;AAAA;AAED,SAAsB+E,oBAAoBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAnF,KAAA,OAAAC,SAAA;AAAA;AA+CzC,SAAAkF,sBAAA;EAAAA,qBAAA,OAAAjF,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CA/CM,SAAAgF,SAAoC9E,GAAY,EAAEC,GAAa;IAAA,IAAAC,aAAA,EAAA6E,KAAA,EAAAC,WAAA,EAAAC,eAAA,EAAAC,mBAAA,EAAAC,uBAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,mBAAA,EAAAC,KAAA,EAAAC,UAAA;IAAA,OAAA5F,oBAAA,CAAAa,IAAA,UAAAgF,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA9E,IAAA,GAAA8E,SAAA,CAAA7E,IAAA;QAAA;UAAA6E,SAAA,CAAA9E,IAAA;UAEvDX,aAAa,GAAIF,GAAG,CAACe,GAAG,CAACC,MAAM,CAA/Bd,aAAa;UAAA,IACfA,aAAa;YAAAyF,SAAA,CAAA7E,IAAA;YAAA;UAAA;UAAA,OAAA6E,SAAA,CAAA1E,MAAA,WACP7B,iBAAiB,CAAC,CAAC;QAAA;UAAA2F,KAAA,GAGS7D,IAAI,CAACC,KAAK,CAACnB,GAAG,CAACoB,IAAI,CAAC,IAAI,CAAC,CAAC,EAA1D4D,WAAW,GAAAD,KAAA,CAAXC,WAAW,EAAEC,eAAe,GAAAF,KAAA,CAAfE,eAAe;UAAA,MAC/B,CAACD,WAAW,IAAI,CAACC,eAAe;YAAAU,SAAA,CAAA7E,IAAA;YAAA;UAAA;UAAA,MAC1B,IAAIzB,KAAK,CAAC,4CAA4C,CAAC;QAAA;UAG3D6F,mBAAmB,GAAGU,eAAM,CAACC,UAAU,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACd,WAAW,CAAC,CAACe,MAAM,CAAC,KAAK,CAAC;UACnFZ,uBAAuB,GAAGS,eAAM,CACjCC,UAAU,CAAC,QAAQ,CAAC,CACpBC,MAAM,CAACb,eAAe,CAAC,CACvBc,MAAM,CAAC,KAAK,CAAC;UAAAJ,SAAA,CAAA9E,IAAA;UAIduE,GAAG,GAAG,IAAAY,gCAAiB,EAAC9F,aAAa,EAAEF,GAAG,CAAC;UAAC2F,SAAA,CAAA7E,IAAA;UAAA;QAAA;UAAA6E,SAAA,CAAA9E,IAAA;UAAA8E,SAAA,CAAAzC,EAAA,GAAAyC,SAAA;UAE5C,IAAAxC,sBAAe,EAACnD,GAAG,CAACe,GAAG,EAAEd,GAAG,EAAE,GAAG,EAAA0F,SAAA,CAAAzC,EAAG,CAAC;UAAC,OAAAyC,SAAA,CAAA1E,MAAA;QAAA;UAAAoE,IAAA,GAI1BD,GAAG,EAAZE,KAAK,GAAAD,IAAA,CAALC,KAAK;UAAAK,SAAA,CAAA7E,IAAA;UAAA,OACsB,IAAAmF,4BAAY,EAACjG,GAAG,EAAEoF,GAAG,CAAC;QAAA;UAAAG,mBAAA,GAAAI,SAAA,CAAA7C,IAAA;UAAjD0C,KAAK,GAAAD,mBAAA,CAALC,KAAK;UAAEC,UAAU,GAAAF,mBAAA,CAAVE,UAAU;UAExBvG,EAAE,CAACoG,KAAK,CAACY,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE;YAC9C,cAAc,EAAET;UACpB,CAAC,CAAC;UAACE,SAAA,CAAA7E,IAAA;UAAA,OAEG5B,EAAE,CAACiH,EAAE,CACNC,eAAe,CAAC;YACbd,KAAK,EAALA,KAAK;YACLe,UAAU,EAAE;cAACC,IAAI,EAAEd,KAAK;cAAEN,mBAAmB,EAAnBA,mBAAmB;cAAEC,uBAAuB,EAAvBA;YAAuB;UAC1E,CAAC,CAAC,CACD/C,IAAI,CAAC,UAACmE,MAAe,EAAK;YACvBtG,GAAG,CAACuG,MAAM,CAAC,GAAG,CAAC,CAAC/B,IAAI,CAAC;cAAC8B,MAAM,EAANA;YAAM,CAAC,CAAC;UAClC,CAAC,CAAC,SACI,CAAC,UAACE,GAAQ,EAAK;YACjB,IAAAtD,sBAAe,EAACnD,GAAG,CAACe,GAAG,EAAEd,GAAG,EAAE,GAAG,EAAEwG,GAAG,CAAC;UAC3C,CAAC,CAAC;QAAA;UAAAd,SAAA,CAAA7E,IAAA;UAAA;QAAA;UAAA6E,SAAA,CAAA9E,IAAA;UAAA8E,SAAA,CAAAe,EAAA,GAAAf,SAAA;UAEN,IAAAxC,sBAAe,EAACnD,GAAG,CAACe,GAAG,EAAEd,GAAG,EAAE,GAAG,EAAA0F,SAAA,CAAAe,EAAG,CAAC;QAAC;QAAA;UAAA,OAAAf,SAAA,CAAA3C,IAAA;MAAA;IAAA,GAAA8B,QAAA;EAAA,CAE7C;EAAA,OAAAD,qBAAA,CAAAnF,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_constants","_requestsSetup","_utils","_crypto","_javascriptWrapper","_clusterQueries","obj","__esModule","default","yt","ytLib","throwAuthDisabled","Error","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","ctx","config","abrupt","JSON","parse","body","getYTApiClusterSetup","concat","Buffer","from","toString","axios","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","undefined","removeSecureFlagIfOriginInsecure","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","stop","_x7","t0","sendAndLogError","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","YT_CYPRESS_COOKIE_NAME","replace","handleLogout","_x3","_x4","_handleLogout","_callee3","_callee3$","_context3","setHeader","status","send","handleChangePassword","_x5","_x6","_handleChangePassword","_callee4","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee4$","_context4","crypto","createHash","update","digest","getUserYTApiSetup","getXSRFToken","createOption","v4","setUserPassword","parameters","user","result","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\n\nconst yt = ytLib();\n\nfunction throwAuthDisabled() {\n throw new Error(\n 'Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.',\n );\n}\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers) => removeSecureFlagIfOriginInsecure(req, headers),\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleLogout(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n res.setHeader('set-cookie', `${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);\n res.status(401).send('Logout');\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare const docsUrls: {
8
8
  'faq:enablepathautocorrection': string;
9
9
  'storage:static_tables': string;
10
10
  'dynamic-tables:overview': string;
11
+ 'dynamic-tables:cross-dc': string;
11
12
  'storage:compression#compression_codecs': string;
12
13
  'storage:replication#replication': string;
13
14
  'storage:replication#erasure': string;
@@ -16,6 +16,7 @@ var docsUrls = exports.docsUrls = {
16
16
  'faq:enablepathautocorrection': "".concat(baseUrl, "/faq/faq#enablepathautocorrection"),
17
17
  'storage:static_tables': "".concat(baseUrl, "/user-guide/storage/static-tables"),
18
18
  'dynamic-tables:overview': "".concat(baseUrl, "/user-guide/dynamic-tables/overview"),
19
+ 'dynamic-tables:cross-dc': "".concat(baseUrl, "/user-guide/dynamic-tables/dynamic-tables-resources#georaspredelyonnye-klastery-cross-dc"),
19
20
  'storage:compression#compression_codecs': "".concat(baseUrl, "/user-guide/storage/compression#compression_codecs"),
20
21
  'storage:replication#replication': "".concat(baseUrl, "/user-guide/storage/replication#replication"),
21
22
  'storage:replication#erasure': "".concat(baseUrl, "/user-guide/storage/replication#erasure"),
@@ -1 +1 @@
1
- {"version":3,"names":["_config","require","baseUrl","getDocsBaseUrl","docsUrls","exports","concat"],"sources":["docsUrls.ts"],"sourcesContent":["import {getDocsBaseUrl} from '../config';\n\nconst baseUrl = getDocsBaseUrl() || '';\n\nexport const docsUrls = {\n 'bundle-controller:reserved-memory': ``,\n 'cypress:ttl': `${baseUrl}/user-guide/storage/cypress#TTL`,\n 'storage:compression': `${baseUrl}/user-guide/storage/compression`,\n 'operations:recommendations#slishkom-melkie-chanki': `${baseUrl}/user-guide/data-processing/operations/recommendations#slishkom-melkie-chanki`,\n 'scheduler:integral_guarantees': `${baseUrl}/user-guide/data-processing/scheduler/integral-guarantees`,\n 'overview:quickstart': `${baseUrl}/overview/try-yt`,\n 'faq:enablepathautocorrection': `${baseUrl}/faq/faq#enablepathautocorrection`,\n 'storage:static_tables': `${baseUrl}/user-guide/storage/static-tables`,\n 'dynamic-tables:overview': `${baseUrl}/user-guide/dynamic-tables/overview`,\n 'storage:compression#compression_codecs': `${baseUrl}/user-guide/storage/compression#compression_codecs`,\n 'storage:replication#replication': `${baseUrl}/user-guide/storage/replication#replication`,\n 'storage:replication#erasure': `${baseUrl}/user-guide/storage/replication#erasure`,\n 'storage:static_schema': `${baseUrl}/user-guide/storage/static-schema`,\n 'storage:data_types#schema': `${baseUrl}/user-guide/storage/data-types#schema`,\n 'storage:data_types#schema_optional': `${baseUrl}/user-guide/storage/data-types#schema_optional`,\n 'storage:static_schema#overview': `${baseUrl}/user-guide/storage/static-schema`,\n 'dynamic-tables:transactions#conflicts': `${baseUrl}/user-guide/dynamic-tables/transactions#conflicts`,\n 'dynamic-tables:sorted_dynamic_tables#aggr_columns': `${baseUrl}/user-guide/dynamic-tables/sorted-dynamic-tables#aggr_columns`,\n 'problems:jobstatistics': `${baseUrl}/user-guide/problems/jobstatistics`,\n 'storage:formats': `${baseUrl}/user-guide/storage/formats`,\n 'storage:excel#skachivanie': `${baseUrl}/user-guide/storage/excel#skachivanie`,\n 'storage:excel': `${baseUrl}/user-guide/storage/excel`,\n 'faq:web_interface_table_download': `${baseUrl}/faq/faq#web_interface_table_download`,\n 'dynamic-tables:overview#in_memory': `${baseUrl}/user-guide/dynamic-tables/overview#in_memory`,\n 'storage:chunks#optimize_for': `${baseUrl}/user-guide/storage/chunks#optimize_for`,\n 'storage:accounts': `${baseUrl}/user-guide/storage/accounts`,\n 'storage:media#primary': `${baseUrl}/user-guide/storage/media#primary`,\n 'dynamic-tables:concepts#tablet_cell_bundles': `${baseUrl}/user-guide/dynamic-tables/concepts#tablet_cell_bundles`,\n 'operations:operations_options#obshie-opcii-dlya-vseh-tipov-operacij': `${baseUrl}/user-guide/data-processing/operations/operations-options#common_options`,\n 'operations:erase': `${baseUrl}/user-guide/data-processing/operations/erase`,\n 'operations:merge': `${baseUrl}/user-guide/data-processing/operations/merge`,\n 'operations:overview#aborted_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#aborted_jobs`,\n 'operations:overview#completed_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#completed_jobs`,\n 'operations:operations_options': `${baseUrl}/user-guide/data-processing/operations/operations-options`,\n 'operations:remote_copy': `${baseUrl}/user-guide/data-processing/operations/remote-copy`,\n 'scheduler:scheduler_and_pools': `${baseUrl}/user-guide/data-processing/scheduler/scheduler-and-pools`,\n 'faq:alert_type': `${baseUrl}/faq/faq#`,\n 'common:quotas#request_quota': '',\n 'common:quota_request': '',\n 'api:cli': `${baseUrl}/api/cli/cli`,\n 'chyt:yt_tables#dynamic': `${baseUrl}/user-guide/data-processing/chyt/yt-tables#dynamic`,\n 'common:regular_system_processes': '',\n 'acl:permissions': `${baseUrl}/user-guide/storage/access-control#authorization`,\n};\n\nexport type DocsUrls = typeof docsUrls;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAMC,OAAO,GAAG,IAAAC,sBAAc,EAAC,CAAC,IAAI,EAAE;AAE/B,IAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAE,MAAA,CAAKJ,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,oCAAiC;EAClE,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,qBAAkB;EACnD,8BAA8B,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,wCAAqC;EAC1E,wCAAwC,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxG,iCAAiC,KAAAI,MAAA,CAAKJ,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mDAAgD;EAChG,gCAAgC,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAI,MAAA,CAAKJ,OAAO,sDAAmD;EACtG,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uCAAoC;EACxE,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,eAAe,KAAAI,MAAA,CAAKJ,OAAO,8BAA2B;EACtD,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EACrF,mCAAmC,KAAAI,MAAA,CAAKJ,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,6CAA6C,KAAAI,MAAA,CAAKJ,OAAO,4DAAyD;EAClH,qEAAqE,KAAAI,MAAA,CAAKJ,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mEAAgE;EAChH,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,gBAAgB,KAAAI,MAAA,CAAKJ,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAI,MAAA,CAAKJ,OAAO,iBAAc;EACnC,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO;AACjC,CAAC"}
1
+ {"version":3,"names":["_config","require","baseUrl","getDocsBaseUrl","docsUrls","exports","concat"],"sources":["docsUrls.ts"],"sourcesContent":["import {getDocsBaseUrl} from '../config';\n\nconst baseUrl = getDocsBaseUrl() || '';\n\nexport const docsUrls = {\n 'bundle-controller:reserved-memory': ``,\n 'cypress:ttl': `${baseUrl}/user-guide/storage/cypress#TTL`,\n 'storage:compression': `${baseUrl}/user-guide/storage/compression`,\n 'operations:recommendations#slishkom-melkie-chanki': `${baseUrl}/user-guide/data-processing/operations/recommendations#slishkom-melkie-chanki`,\n 'scheduler:integral_guarantees': `${baseUrl}/user-guide/data-processing/scheduler/integral-guarantees`,\n 'overview:quickstart': `${baseUrl}/overview/try-yt`,\n 'faq:enablepathautocorrection': `${baseUrl}/faq/faq#enablepathautocorrection`,\n 'storage:static_tables': `${baseUrl}/user-guide/storage/static-tables`,\n 'dynamic-tables:overview': `${baseUrl}/user-guide/dynamic-tables/overview`,\n 'dynamic-tables:cross-dc': `${baseUrl}/user-guide/dynamic-tables/dynamic-tables-resources#georaspredelyonnye-klastery-cross-dc`,\n 'storage:compression#compression_codecs': `${baseUrl}/user-guide/storage/compression#compression_codecs`,\n 'storage:replication#replication': `${baseUrl}/user-guide/storage/replication#replication`,\n 'storage:replication#erasure': `${baseUrl}/user-guide/storage/replication#erasure`,\n 'storage:static_schema': `${baseUrl}/user-guide/storage/static-schema`,\n 'storage:data_types#schema': `${baseUrl}/user-guide/storage/data-types#schema`,\n 'storage:data_types#schema_optional': `${baseUrl}/user-guide/storage/data-types#schema_optional`,\n 'storage:static_schema#overview': `${baseUrl}/user-guide/storage/static-schema`,\n 'dynamic-tables:transactions#conflicts': `${baseUrl}/user-guide/dynamic-tables/transactions#conflicts`,\n 'dynamic-tables:sorted_dynamic_tables#aggr_columns': `${baseUrl}/user-guide/dynamic-tables/sorted-dynamic-tables#aggr_columns`,\n 'problems:jobstatistics': `${baseUrl}/user-guide/problems/jobstatistics`,\n 'storage:formats': `${baseUrl}/user-guide/storage/formats`,\n 'storage:excel#skachivanie': `${baseUrl}/user-guide/storage/excel#skachivanie`,\n 'storage:excel': `${baseUrl}/user-guide/storage/excel`,\n 'faq:web_interface_table_download': `${baseUrl}/faq/faq#web_interface_table_download`,\n 'dynamic-tables:overview#in_memory': `${baseUrl}/user-guide/dynamic-tables/overview#in_memory`,\n 'storage:chunks#optimize_for': `${baseUrl}/user-guide/storage/chunks#optimize_for`,\n 'storage:accounts': `${baseUrl}/user-guide/storage/accounts`,\n 'storage:media#primary': `${baseUrl}/user-guide/storage/media#primary`,\n 'dynamic-tables:concepts#tablet_cell_bundles': `${baseUrl}/user-guide/dynamic-tables/concepts#tablet_cell_bundles`,\n 'operations:operations_options#obshie-opcii-dlya-vseh-tipov-operacij': `${baseUrl}/user-guide/data-processing/operations/operations-options#common_options`,\n 'operations:erase': `${baseUrl}/user-guide/data-processing/operations/erase`,\n 'operations:merge': `${baseUrl}/user-guide/data-processing/operations/merge`,\n 'operations:overview#aborted_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#aborted_jobs`,\n 'operations:overview#completed_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#completed_jobs`,\n 'operations:operations_options': `${baseUrl}/user-guide/data-processing/operations/operations-options`,\n 'operations:remote_copy': `${baseUrl}/user-guide/data-processing/operations/remote-copy`,\n 'scheduler:scheduler_and_pools': `${baseUrl}/user-guide/data-processing/scheduler/scheduler-and-pools`,\n 'faq:alert_type': `${baseUrl}/faq/faq#`,\n 'common:quotas#request_quota': '',\n 'common:quota_request': '',\n 'api:cli': `${baseUrl}/api/cli/cli`,\n 'chyt:yt_tables#dynamic': `${baseUrl}/user-guide/data-processing/chyt/yt-tables#dynamic`,\n 'common:regular_system_processes': '',\n 'acl:permissions': `${baseUrl}/user-guide/storage/access-control#authorization`,\n};\n\nexport type DocsUrls = typeof docsUrls;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAMC,OAAO,GAAG,IAAAC,sBAAc,EAAC,CAAC,IAAI,EAAE;AAE/B,IAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAE,MAAA,CAAKJ,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,oCAAiC;EAClE,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,qBAAkB;EACnD,8BAA8B,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,wCAAqC;EAC1E,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,6FAA0F;EAC/H,wCAAwC,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxG,iCAAiC,KAAAI,MAAA,CAAKJ,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mDAAgD;EAChG,gCAAgC,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAI,MAAA,CAAKJ,OAAO,sDAAmD;EACtG,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uCAAoC;EACxE,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,eAAe,KAAAI,MAAA,CAAKJ,OAAO,8BAA2B;EACtD,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EACrF,mCAAmC,KAAAI,MAAA,CAAKJ,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,6CAA6C,KAAAI,MAAA,CAAKJ,OAAO,4DAAyD;EAClH,qEAAqE,KAAAI,MAAA,CAAKJ,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mEAAgE;EAChH,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,gBAAgB,KAAAI,MAAA,CAAKJ,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAI,MAAA,CAAKJ,OAAO,iBAAc;EACnC,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO;AACjC,CAAC"}
@@ -34,13 +34,17 @@ function rowKey(row, index) {
34
34
  }
35
35
  return index;
36
36
  }
37
+ function triggerWindowResize() {
38
+ window.dispatchEvent(new Event('resize'));
39
+ }
37
40
  var tableSettings = {
38
41
  sortable: false,
39
42
  displayIndices: true,
40
43
  stripedRows: true,
41
44
  externalSort: true,
42
45
  stickyHead: _constants.MOVING,
43
- stickyTop: 0
46
+ stickyTop: 0,
47
+ syncHeadOnResize: true
44
48
  };
45
49
  var transposeTableSettings = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, tableSettings), {}, {
46
50
  displayIndices: false
@@ -150,6 +154,7 @@ function Table(_ref) {
150
154
  }
151
155
  })
152
156
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(ShowMoreInline, {
157
+ onClick: triggerWindowResize,
153
158
  strippedDown: strippedDown,
154
159
  formattedValue: fullFormattedValue
155
160
  }), additions]
@@ -358,7 +363,8 @@ function visualRowIndex(row) {
358
363
  }
359
364
  function ShowMoreInline(_ref7) {
360
365
  var formattedValue = _ref7.formattedValue,
361
- strippedDown = _ref7.strippedDown;
366
+ strippedDown = _ref7.strippedDown,
367
+ onClick = _ref7.onClick;
362
368
  var _React$useState = React.useState(false),
363
369
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
364
370
  showFull = _React$useState2[0],
@@ -370,11 +376,20 @@ function ShowMoreInline(_ref7) {
370
376
  __html: showFull ? formattedValue : strippedDown
371
377
  }
372
378
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Link, {
373
- onClick: function onClick() {
379
+ onClick: function (_onClick) {
380
+ function onClick() {
381
+ return _onClick.apply(this, arguments);
382
+ }
383
+ onClick.toString = function () {
384
+ return _onClick.toString();
385
+ };
386
+ return onClick;
387
+ }(function () {
374
388
  setShowFull(function (v) {
375
389
  return !v;
376
390
  });
377
- },
391
+ onClick === null || onClick === void 0 || onClick();
392
+ }),
378
393
  children: showFull ? 'Show less' : 'Show more'
379
394
  })]
380
395
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_uikit","_hammer","_interopRequireDefault","_bemCnLite","_reactDataTable","_DataTypePopup","_utils","_constants","_DataTableYT","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","INDEX_COLUMN","Symbol","NUMBER_OF_STRIPPED_LINES","MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY","rowKey","row","index","hasKey","tableSettings","sortable","displayIndices","stripedRows","externalSort","stickyHead","MOVING","stickyTop","transposeTableSettings","_objectSpread","emptyArray","Table","_ref","className","_ref$header","header","_ref$rows","rows","_ref$totals","totals","_ref$showColumns","showColumns","_ref$theme","theme","format","formatterSettings","_ref$defaultNumberAli","defaultNumberAlign","DataTable","RIGHT","resultType","emptyDataMessage","message","isError","_ref$transpose","transpose","_ref$page","page","_ref$pageSize","pageSize","length","startIndex","sortOrder","onSort","showFullValueInDialog","containerRef","columns","useMemo","map","column","name","displayName","_column$type","type","_jsx","DataTypePopup","children","key","sort","undefined","accessor","cells","arguments","Boolean","simple","sortAccessor","$sortValue","render","data","_value$$rawValue","_value$$fullFormatted","_ref2","value","formattedValue","$formattedValue","rawValue","unquote","$rawValue","$value","fullFormattedValue","$fullFormattedValue","strippedDown","$type","startsWith","lines","split","slice","join","isStrippedDown","additions","$additions","_jsxs","Fragment","Text","color","TableCell","dangerouslySetInnerHTML","__html","ShowMoreInline","align","numeric","calculatedStartIndex","firstRowIndex","sortedRows","getSortedData","_React$useMemo","filteredColumns","find","item","filter","pageRows","nameColumn","rowColumns","String","visualRowIndex","_ref3","concat","_ref4","footerIndex","_ref5","footer","transposedRows","transposedRow","forEach","total","_toConsumableArray","_React$useMemo2","_slicedToArray","tableColumns","tableRows","tableTotals","ref","DataTableYT","footerData","settings","visibleRowIndex","mode","content","error","generateSortingFunction","order","compareValue","row1","row2","value1","value2","Number","isNaN","dataColumns","indexedData","_defineProperty","sortOrderArray","Array","isArray","sortColumns","reduce","_ref6","columnId","sortFunctionDict","sortFunctions","keys","comparison","some","hammer","_ref7","_React$useState","useState","_React$useState2","showFull","setShowFull","Link","onClick","v","endsWith","cellCopyToClipboardClassName","_ref8","cellNodeRef","useRef","_React$useState3","_React$useState4","mount","setMount","useEffect","_cellNodeRef$current","parent","current","parentElement","handleMouseOver","handleMouseOut","contains","relatedTarget","addEventListener","removeEventListener","ClipboardButton","text","size"],"sources":["YQLTable.tsx"],"sourcesContent":["// TODO: revisit types\nimport * as React from 'react';\n\nimport {ClipboardButton, Link, Text} from '@gravity-ui/uikit';\nimport hammer from '../../../../common/hammer';\nimport cn from 'bem-cn-lite';\nimport DataTable, {Column, OrderType, Settings, SortOrder} from '@gravity-ui/react-data-table';\nimport DataTypePopup from '../DataTypePopup/DataTypePopup';\nimport {StrictReactNode, hasKey} from './utils';\nimport {MOVING} from '@gravity-ui/react-data-table/build/esm/lib/constants';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\n\nimport './YQLTable.scss';\n\nconst block = cn('yql-result-table');\n\nconst INDEX_COLUMN = Symbol('__index__');\nconst NUMBER_OF_STRIPPED_LINES = 5;\nconst MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY = NUMBER_OF_STRIPPED_LINES + 3;\n\ntype Node = {\n $type: string;\n $value: any;\n $sortValue?: number | string;\n};\n\nfunction rowKey(row: unknown, index: number) {\n if (hasKey(row, INDEX_COLUMN)) {\n return row[INDEX_COLUMN] as number;\n }\n return index;\n}\n\nconst tableSettings: Settings = {\n sortable: false,\n displayIndices: true,\n stripedRows: true,\n externalSort: true,\n stickyHead: MOVING,\n stickyTop: 0,\n};\n\nconst transposeTableSettings: Settings = {\n ...tableSettings,\n displayIndices: false,\n};\n\ntype Props = {\n className?: string;\n resultType?: string;\n header?: any[];\n rows?: any[];\n totals?: any[];\n showColumns?: string[];\n format: (...args: any[]) => any;\n formatterSettings?: any;\n theme?: string;\n defaultNumberAlign?: 'right' | 'left' | 'center';\n emptyDataMessage?: string;\n message?: string;\n isError?: boolean;\n transpose?: boolean;\n page?: number;\n pageSize?: number;\n startIndex?: number;\n sortOrder?: SortOrder | SortOrder[];\n onSort?: (sortOrder?: SortOrder | SortOrder[]) => void;\n showFullValueInDialog?: boolean;\n containerRef?: React.Ref<HTMLDivElement>;\n};\n\nconst emptyArray: any[] = [];\nexport default function Table({\n className,\n header = emptyArray,\n rows = emptyArray,\n totals = emptyArray,\n showColumns = emptyArray,\n theme = 'yandex-cloud',\n format,\n formatterSettings,\n defaultNumberAlign = DataTable.RIGHT,\n resultType,\n emptyDataMessage,\n message,\n isError,\n transpose = false,\n page = 1,\n pageSize = rows.length,\n startIndex,\n sortOrder,\n onSort,\n showFullValueInDialog,\n containerRef,\n}: Props) {\n const sortable = typeof onSort === 'function';\n const columns = React.useMemo(() => {\n const columns = header.map((column): Column<WithIndex<any>> => {\n const {name, displayName, type = {}} = column;\n return {\n name,\n header: <DataTypePopup type={type}>{displayName ?? name}</DataTypePopup>,\n className: column.key || column.sort ? 'is-key' : undefined,\n accessor: (cells: Record<string, unknown> = {}) => cells[name],\n sortable: sortable && Boolean(type.simple),\n sortAccessor: (cells: Record<string, Node> = {}) => cells[name].$sortValue,\n render(data) {\n if (typeof column.render === 'function') {\n return column.render(data);\n }\n\n const {value} = data as any;\n let formattedValue;\n if (!value) {\n return <span className=\"unipika\">&lt;unsupported data type&gt;</span>;\n }\n if (Object.prototype.hasOwnProperty.call(value, '$formattedValue')) {\n formattedValue = value.$formattedValue;\n } else {\n formattedValue = format(value, formatterSettings);\n }\n const rawValue = unquote(value.$rawValue ?? value.$value);\n const fullFormattedValue = value.$fullFormattedValue ?? formattedValue;\n let strippedDown: string;\n if (\n value.$type === 'yql.string' &&\n formattedValue.startsWith('<span class=\"quote\">')\n ) {\n strippedDown = formattedValue;\n } else {\n const lines = formattedValue.split('\\n');\n if (lines.length > MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY) {\n strippedDown = lines.slice(0, NUMBER_OF_STRIPPED_LINES).join('\\n');\n } else {\n strippedDown = formattedValue;\n }\n }\n const isStrippedDown = strippedDown !== fullFormattedValue;\n\n const additions = value.$additions ? (\n <React.Fragment>\n <br />\n <Text color=\"light-hint\">{value.$additions}</Text>\n </React.Fragment>\n ) : null;\n if (isStrippedDown) {\n return (\n <TableCell rawValue={rawValue}>\n {showFullValueInDialog ? (\n <React.Fragment>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{\n __html: strippedDown,\n }}\n />\n </React.Fragment>\n ) : (\n <ShowMoreInline\n strippedDown={strippedDown}\n formattedValue={fullFormattedValue}\n />\n )}\n {additions}\n </TableCell>\n );\n }\n return (\n <TableCell rawValue={rawValue}>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n {additions}\n </TableCell>\n );\n },\n align: type.numeric ? defaultNumberAlign : undefined,\n };\n });\n return columns;\n }, [header, sortable, defaultNumberAlign, format, formatterSettings, showFullValueInDialog]);\n\n const calculatedStartIndex = (page - 1) * pageSize;\n const firstRowIndex = sortable ? 1 : startIndex ?? calculatedStartIndex + 1;\n const sortedRows = React.useMemo(() => {\n return getSortedData(rows, columns, sortOrder, firstRowIndex);\n }, [rows, columns, sortOrder, firstRowIndex]);\n\n const [tableColumns, tableRows, tableTotals] = React.useMemo(() => {\n const filteredColumns: any[] = showColumns\n .map((name) => columns.find((item) => item.name === name))\n .filter(Boolean);\n const pageRows = sortedRows.slice(calculatedStartIndex, calculatedStartIndex + pageSize);\n if (!transpose) {\n return [filteredColumns, pageRows, totals];\n }\n const nameColumn = {\n name: 'name',\n header: 'Name',\n };\n\n const rowColumns = pageRows\n .map((row, index) => ({\n name: String(calculatedStartIndex + index),\n header: visualRowIndex(row),\n render: ({value}: {value: {data: any; column: any}}) => {\n return value.column.render({value: value.data, row});\n },\n }))\n .concat(\n totals.map(({footerIndex}, index) => ({\n name: `footer${index}`,\n header: String(footerIndex ? footerIndex : index),\n render: ({value}) => {\n return value.column.render({value: value.data, footer: true});\n },\n })),\n );\n\n const transposedRows = filteredColumns.map((column) => {\n const transposedRow: Record<string, any> = {\n name: column.name,\n };\n for (\n let index = calculatedStartIndex;\n index < calculatedStartIndex + pageSize;\n index++\n ) {\n if (index === sortedRows.length) {\n break;\n }\n transposedRow[String(index)] = {\n column: column,\n data: sortedRows[index][column.name],\n };\n }\n totals.forEach((total, index) => {\n transposedRow[`footer${index}`] = {\n column: column,\n data: total[column.name],\n };\n });\n return transposedRow;\n });\n return [[nameColumn, ...rowColumns], transposedRows, []];\n }, [showColumns, sortedRows, calculatedStartIndex, pageSize, transpose, totals, columns]);\n\n if (resultType === 'table') {\n return (\n <div ref={containerRef} className={block(null, className)}>\n <DataTableYT\n columns={tableColumns as any}\n data={tableRows}\n footerData={tableTotals.length === 0 ? undefined : tableTotals}\n settings={transpose ? transposeTableSettings : tableSettings}\n startIndex={firstRowIndex}\n emptyDataMessage={emptyDataMessage}\n theme={theme}\n rowKey={rowKey}\n sortOrder={sortOrder}\n onSort={onSort}\n visibleRowIndex={transpose ? undefined : (visualRowIndex as any)}\n />\n </div>\n );\n } else if (resultType === 'cell' || resultType === 'untyped') {\n return (\n <div ref={containerRef} className={block({mode: resultType}, className)}>\n <div className=\"unipika\" dangerouslySetInnerHTML={{__html: rows[0].content}} />\n </div>\n );\n }\n return message ? <div className={block('message', {error: isError})}>{message}</div> : null;\n}\n\ntype Comparator<T> = (v1: T, v2: T) => number;\nfunction generateSortingFunction<T>(column: Column<T>, order: OrderType): Comparator<T> {\n const compareValue = order;\n\n return (row1, row2) => {\n let value1;\n let value2;\n if (typeof column.sortAccessor === 'function') {\n value1 = column.sortAccessor(row1);\n value2 = column.sortAccessor(row2);\n }\n\n if (Number.isNaN(value1) && !Number.isNaN(value2)) {\n return Number(compareValue);\n }\n if (Number.isNaN(value2) && !Number.isNaN(value1)) {\n return Number(-compareValue);\n }\n /* eslint-disable no-eq-null, eqeqeq */\n // Comparison with null made here intentionally\n // to exclude multiple comparison with undefined and null\n\n if (value1 == null && value2 != null) {\n return Number(-compareValue);\n }\n if (value2 == null && value1 != null) {\n return Number(compareValue);\n }\n /* eslint-enable no-eq-null, eqeqeq */\n\n if (value1 < value2) {\n return Number(-compareValue);\n }\n if (value1 > value2) {\n return Number(compareValue);\n }\n return 0;\n };\n}\n\ntype WithIndex<T> = T & {[INDEX_COLUMN]: number};\nfunction getSortedData<T>(\n data: T[],\n dataColumns: Column<T>[],\n sortOrder?: SortOrder | SortOrder[],\n startIndex = 0,\n): WithIndex<T>[] {\n const indexedData = data.map((row, index) => ({[INDEX_COLUMN]: startIndex + index, ...row}));\n if (!sortOrder) {\n return indexedData;\n }\n const sortOrderArray = Array.isArray(sortOrder) ? sortOrder : [sortOrder];\n const sortColumns = sortOrderArray.reduce((obj, {columnId, order}) => {\n obj[columnId] = order;\n return obj;\n }, {} as Record<string, OrderType>);\n const sortFunctionDict: {[colName: string]: Comparator<T>} = {};\n dataColumns.forEach((column) => {\n if (sortColumns[column.name]) {\n sortFunctionDict[column.name] = generateSortingFunction(\n column,\n sortColumns[column.name],\n );\n }\n });\n\n const sortFunctions = Object.keys(sortColumns)\n .map((name) => sortFunctionDict[name])\n .filter(Boolean);\n\n if (sortFunctions.length) {\n indexedData.sort((row1, row2) => {\n let comparison = 0;\n sortFunctions.some((sort) => {\n comparison = sort(row1, row2);\n return Boolean(comparison);\n });\n return comparison || row1[INDEX_COLUMN] - row2[INDEX_COLUMN];\n });\n }\n return indexedData;\n}\n\nfunction visualRowIndex<T>(row: WithIndex<T>) {\n return hammer.format['Number'](row[INDEX_COLUMN]);\n}\n\ninterface ShowMoreInlineProps {\n formattedValue: string;\n strippedDown: string;\n}\nfunction ShowMoreInline({formattedValue, strippedDown}: ShowMoreInlineProps) {\n const [showFull, setShowFull] = React.useState(false);\n return (\n <React.Fragment>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{\n __html: showFull ? formattedValue : strippedDown,\n }}\n />\n <br />\n <Link\n onClick={() => {\n setShowFull((v) => !v);\n }}\n >\n {showFull ? 'Show less' : 'Show more'}\n </Link>\n </React.Fragment>\n );\n}\n\nfunction unquote(value?: string) {\n if (typeof value === 'string' && value.startsWith('\"') && value.endsWith('\"')) {\n return value.slice(1, -1);\n }\n return value;\n}\n\nconst cellCopyToClipboardClassName = block('cell-copy-to-clipboard');\n\ninterface TableCellProps {\n children?: StrictReactNode;\n rawValue?: string;\n}\nfunction TableCell({children, rawValue}: TableCellProps) {\n const cellNodeRef = React.useRef<HTMLDivElement>(null);\n const [mount, setMount] = React.useState(false);\n\n React.useEffect(() => {\n const parent = cellNodeRef.current?.parentElement;\n\n function handleMouseOver() {\n setMount(true);\n }\n function handleMouseOut(e: MouseEvent) {\n if (!parent?.contains(e.relatedTarget as any)) {\n setMount(false);\n }\n }\n parent?.addEventListener('mouseover', handleMouseOver);\n parent?.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n parent?.removeEventListener('mouseover', handleMouseOver);\n parent?.removeEventListener('mouseout', handleMouseOut);\n };\n }, []);\n\n return (\n <span ref={cellNodeRef}>\n {children}\n {mount && rawValue ? (\n <ClipboardButton\n className={cellCopyToClipboardClassName}\n text={rawValue}\n size={16}\n />\n ) : null}\n </span>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_uikit","_hammer","_interopRequireDefault","_bemCnLite","_reactDataTable","_DataTypePopup","_utils","_constants","_DataTableYT","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","INDEX_COLUMN","Symbol","NUMBER_OF_STRIPPED_LINES","MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY","rowKey","row","index","hasKey","triggerWindowResize","window","dispatchEvent","Event","tableSettings","sortable","displayIndices","stripedRows","externalSort","stickyHead","MOVING","stickyTop","syncHeadOnResize","transposeTableSettings","_objectSpread","emptyArray","Table","_ref","className","_ref$header","header","_ref$rows","rows","_ref$totals","totals","_ref$showColumns","showColumns","_ref$theme","theme","format","formatterSettings","_ref$defaultNumberAli","defaultNumberAlign","DataTable","RIGHT","resultType","emptyDataMessage","message","isError","_ref$transpose","transpose","_ref$page","page","_ref$pageSize","pageSize","length","startIndex","sortOrder","onSort","showFullValueInDialog","containerRef","columns","useMemo","map","column","name","displayName","_column$type","type","_jsx","DataTypePopup","children","key","sort","undefined","accessor","cells","arguments","Boolean","simple","sortAccessor","$sortValue","render","data","_value$$rawValue","_value$$fullFormatted","_ref2","value","formattedValue","$formattedValue","rawValue","unquote","$rawValue","$value","fullFormattedValue","$fullFormattedValue","strippedDown","$type","startsWith","lines","split","slice","join","isStrippedDown","additions","$additions","_jsxs","Fragment","Text","color","TableCell","dangerouslySetInnerHTML","__html","ShowMoreInline","onClick","align","numeric","calculatedStartIndex","firstRowIndex","sortedRows","getSortedData","_React$useMemo","filteredColumns","find","item","filter","pageRows","nameColumn","rowColumns","String","visualRowIndex","_ref3","concat","_ref4","footerIndex","_ref5","footer","transposedRows","transposedRow","forEach","total","_toConsumableArray","_React$useMemo2","_slicedToArray","tableColumns","tableRows","tableTotals","ref","DataTableYT","footerData","settings","visibleRowIndex","mode","content","error","generateSortingFunction","order","compareValue","row1","row2","value1","value2","Number","isNaN","dataColumns","indexedData","_defineProperty","sortOrderArray","Array","isArray","sortColumns","reduce","_ref6","columnId","sortFunctionDict","sortFunctions","keys","comparison","some","hammer","_ref7","_React$useState","useState","_React$useState2","showFull","setShowFull","Link","_onClick","apply","toString","v","endsWith","cellCopyToClipboardClassName","_ref8","cellNodeRef","useRef","_React$useState3","_React$useState4","mount","setMount","useEffect","_cellNodeRef$current","parent","current","parentElement","handleMouseOver","handleMouseOut","contains","relatedTarget","addEventListener","removeEventListener","ClipboardButton","text","size"],"sources":["YQLTable.tsx"],"sourcesContent":["// TODO: revisit types\nimport * as React from 'react';\n\nimport {ClipboardButton, Link, Text} from '@gravity-ui/uikit';\nimport hammer from '../../../../common/hammer';\nimport cn from 'bem-cn-lite';\nimport DataTable, {Column, OrderType, Settings, SortOrder} from '@gravity-ui/react-data-table';\nimport DataTypePopup from '../DataTypePopup/DataTypePopup';\nimport {StrictReactNode, hasKey} from './utils';\nimport {MOVING} from '@gravity-ui/react-data-table/build/esm/lib/constants';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\n\nimport './YQLTable.scss';\n\nconst block = cn('yql-result-table');\n\nconst INDEX_COLUMN = Symbol('__index__');\nconst NUMBER_OF_STRIPPED_LINES = 5;\nconst MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY = NUMBER_OF_STRIPPED_LINES + 3;\n\ntype Node = {\n $type: string;\n $value: any;\n $sortValue?: number | string;\n};\n\nfunction rowKey(row: unknown, index: number) {\n if (hasKey(row, INDEX_COLUMN)) {\n return row[INDEX_COLUMN] as number;\n }\n return index;\n}\n\nfunction triggerWindowResize() {\n window.dispatchEvent(new Event('resize'));\n}\n\nconst tableSettings: Settings = {\n sortable: false,\n displayIndices: true,\n stripedRows: true,\n externalSort: true,\n stickyHead: MOVING,\n stickyTop: 0,\n syncHeadOnResize: true,\n};\n\nconst transposeTableSettings: Settings = {\n ...tableSettings,\n displayIndices: false,\n};\n\ntype Props = {\n className?: string;\n resultType?: string;\n header?: any[];\n rows?: any[];\n totals?: any[];\n showColumns?: string[];\n format: (...args: any[]) => any;\n formatterSettings?: any;\n theme?: string;\n defaultNumberAlign?: 'right' | 'left' | 'center';\n emptyDataMessage?: string;\n message?: string;\n isError?: boolean;\n transpose?: boolean;\n page?: number;\n pageSize?: number;\n startIndex?: number;\n sortOrder?: SortOrder | SortOrder[];\n onSort?: (sortOrder?: SortOrder | SortOrder[]) => void;\n showFullValueInDialog?: boolean;\n containerRef?: React.Ref<HTMLDivElement>;\n};\n\nconst emptyArray: any[] = [];\nexport default function Table({\n className,\n header = emptyArray,\n rows = emptyArray,\n totals = emptyArray,\n showColumns = emptyArray,\n theme = 'yandex-cloud',\n format,\n formatterSettings,\n defaultNumberAlign = DataTable.RIGHT,\n resultType,\n emptyDataMessage,\n message,\n isError,\n transpose = false,\n page = 1,\n pageSize = rows.length,\n startIndex,\n sortOrder,\n onSort,\n showFullValueInDialog,\n containerRef,\n}: Props) {\n const sortable = typeof onSort === 'function';\n const columns = React.useMemo(() => {\n const columns = header.map((column): Column<WithIndex<any>> => {\n const {name, displayName, type = {}} = column;\n return {\n name,\n header: <DataTypePopup type={type}>{displayName ?? name}</DataTypePopup>,\n className: column.key || column.sort ? 'is-key' : undefined,\n accessor: (cells: Record<string, unknown> = {}) => cells[name],\n sortable: sortable && Boolean(type.simple),\n sortAccessor: (cells: Record<string, Node> = {}) => cells[name].$sortValue,\n render(data) {\n if (typeof column.render === 'function') {\n return column.render(data);\n }\n\n const {value} = data as any;\n let formattedValue;\n if (!value) {\n return <span className=\"unipika\">&lt;unsupported data type&gt;</span>;\n }\n if (Object.prototype.hasOwnProperty.call(value, '$formattedValue')) {\n formattedValue = value.$formattedValue;\n } else {\n formattedValue = format(value, formatterSettings);\n }\n const rawValue = unquote(value.$rawValue ?? value.$value);\n const fullFormattedValue = value.$fullFormattedValue ?? formattedValue;\n let strippedDown: string;\n if (\n value.$type === 'yql.string' &&\n formattedValue.startsWith('<span class=\"quote\">')\n ) {\n strippedDown = formattedValue;\n } else {\n const lines = formattedValue.split('\\n');\n if (lines.length > MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY) {\n strippedDown = lines.slice(0, NUMBER_OF_STRIPPED_LINES).join('\\n');\n } else {\n strippedDown = formattedValue;\n }\n }\n const isStrippedDown = strippedDown !== fullFormattedValue;\n\n const additions = value.$additions ? (\n <React.Fragment>\n <br />\n <Text color=\"light-hint\">{value.$additions}</Text>\n </React.Fragment>\n ) : null;\n if (isStrippedDown) {\n return (\n <TableCell rawValue={rawValue}>\n {showFullValueInDialog ? (\n <React.Fragment>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{\n __html: strippedDown,\n }}\n />\n </React.Fragment>\n ) : (\n <ShowMoreInline\n onClick={triggerWindowResize}\n strippedDown={strippedDown}\n formattedValue={fullFormattedValue}\n />\n )}\n {additions}\n </TableCell>\n );\n }\n return (\n <TableCell rawValue={rawValue}>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n {additions}\n </TableCell>\n );\n },\n align: type.numeric ? defaultNumberAlign : undefined,\n };\n });\n return columns;\n }, [header, sortable, defaultNumberAlign, format, formatterSettings, showFullValueInDialog]);\n\n const calculatedStartIndex = (page - 1) * pageSize;\n const firstRowIndex = sortable ? 1 : startIndex ?? calculatedStartIndex + 1;\n const sortedRows = React.useMemo(() => {\n return getSortedData(rows, columns, sortOrder, firstRowIndex);\n }, [rows, columns, sortOrder, firstRowIndex]);\n\n const [tableColumns, tableRows, tableTotals] = React.useMemo(() => {\n const filteredColumns: any[] = showColumns\n .map((name) => columns.find((item) => item.name === name))\n .filter(Boolean);\n const pageRows = sortedRows.slice(calculatedStartIndex, calculatedStartIndex + pageSize);\n if (!transpose) {\n return [filteredColumns, pageRows, totals];\n }\n const nameColumn = {\n name: 'name',\n header: 'Name',\n };\n\n const rowColumns = pageRows\n .map((row, index) => ({\n name: String(calculatedStartIndex + index),\n header: visualRowIndex(row),\n render: ({value}: {value: {data: any; column: any}}) => {\n return value.column.render({value: value.data, row});\n },\n }))\n .concat(\n totals.map(({footerIndex}, index) => ({\n name: `footer${index}`,\n header: String(footerIndex ? footerIndex : index),\n render: ({value}) => {\n return value.column.render({value: value.data, footer: true});\n },\n })),\n );\n\n const transposedRows = filteredColumns.map((column) => {\n const transposedRow: Record<string, any> = {\n name: column.name,\n };\n for (\n let index = calculatedStartIndex;\n index < calculatedStartIndex + pageSize;\n index++\n ) {\n if (index === sortedRows.length) {\n break;\n }\n transposedRow[String(index)] = {\n column: column,\n data: sortedRows[index][column.name],\n };\n }\n totals.forEach((total, index) => {\n transposedRow[`footer${index}`] = {\n column: column,\n data: total[column.name],\n };\n });\n return transposedRow;\n });\n return [[nameColumn, ...rowColumns], transposedRows, []];\n }, [showColumns, sortedRows, calculatedStartIndex, pageSize, transpose, totals, columns]);\n\n if (resultType === 'table') {\n return (\n <div ref={containerRef} className={block(null, className)}>\n <DataTableYT\n columns={tableColumns as any}\n data={tableRows}\n footerData={tableTotals.length === 0 ? undefined : tableTotals}\n settings={transpose ? transposeTableSettings : tableSettings}\n startIndex={firstRowIndex}\n emptyDataMessage={emptyDataMessage}\n theme={theme}\n rowKey={rowKey}\n sortOrder={sortOrder}\n onSort={onSort}\n visibleRowIndex={transpose ? undefined : (visualRowIndex as any)}\n />\n </div>\n );\n } else if (resultType === 'cell' || resultType === 'untyped') {\n return (\n <div ref={containerRef} className={block({mode: resultType}, className)}>\n <div className=\"unipika\" dangerouslySetInnerHTML={{__html: rows[0].content}} />\n </div>\n );\n }\n return message ? <div className={block('message', {error: isError})}>{message}</div> : null;\n}\n\ntype Comparator<T> = (v1: T, v2: T) => number;\nfunction generateSortingFunction<T>(column: Column<T>, order: OrderType): Comparator<T> {\n const compareValue = order;\n\n return (row1, row2) => {\n let value1;\n let value2;\n if (typeof column.sortAccessor === 'function') {\n value1 = column.sortAccessor(row1);\n value2 = column.sortAccessor(row2);\n }\n\n if (Number.isNaN(value1) && !Number.isNaN(value2)) {\n return Number(compareValue);\n }\n if (Number.isNaN(value2) && !Number.isNaN(value1)) {\n return Number(-compareValue);\n }\n /* eslint-disable no-eq-null, eqeqeq */\n // Comparison with null made here intentionally\n // to exclude multiple comparison with undefined and null\n\n if (value1 == null && value2 != null) {\n return Number(-compareValue);\n }\n if (value2 == null && value1 != null) {\n return Number(compareValue);\n }\n /* eslint-enable no-eq-null, eqeqeq */\n\n if (value1 < value2) {\n return Number(-compareValue);\n }\n if (value1 > value2) {\n return Number(compareValue);\n }\n return 0;\n };\n}\n\ntype WithIndex<T> = T & {[INDEX_COLUMN]: number};\nfunction getSortedData<T>(\n data: T[],\n dataColumns: Column<T>[],\n sortOrder?: SortOrder | SortOrder[],\n startIndex = 0,\n): WithIndex<T>[] {\n const indexedData = data.map((row, index) => ({[INDEX_COLUMN]: startIndex + index, ...row}));\n if (!sortOrder) {\n return indexedData;\n }\n const sortOrderArray = Array.isArray(sortOrder) ? sortOrder : [sortOrder];\n const sortColumns = sortOrderArray.reduce((obj, {columnId, order}) => {\n obj[columnId] = order;\n return obj;\n }, {} as Record<string, OrderType>);\n const sortFunctionDict: {[colName: string]: Comparator<T>} = {};\n dataColumns.forEach((column) => {\n if (sortColumns[column.name]) {\n sortFunctionDict[column.name] = generateSortingFunction(\n column,\n sortColumns[column.name],\n );\n }\n });\n\n const sortFunctions = Object.keys(sortColumns)\n .map((name) => sortFunctionDict[name])\n .filter(Boolean);\n\n if (sortFunctions.length) {\n indexedData.sort((row1, row2) => {\n let comparison = 0;\n sortFunctions.some((sort) => {\n comparison = sort(row1, row2);\n return Boolean(comparison);\n });\n return comparison || row1[INDEX_COLUMN] - row2[INDEX_COLUMN];\n });\n }\n return indexedData;\n}\n\nfunction visualRowIndex<T>(row: WithIndex<T>) {\n return hammer.format['Number'](row[INDEX_COLUMN]);\n}\n\ninterface ShowMoreInlineProps {\n formattedValue: string;\n strippedDown: string;\n onClick?(): void;\n}\nfunction ShowMoreInline({formattedValue, strippedDown, onClick}: ShowMoreInlineProps) {\n const [showFull, setShowFull] = React.useState(false);\n return (\n <React.Fragment>\n <span\n className=\"unipika\"\n dangerouslySetInnerHTML={{\n __html: showFull ? formattedValue : strippedDown,\n }}\n />\n <br />\n <Link\n onClick={() => {\n setShowFull((v) => !v);\n\n onClick?.();\n }}\n >\n {showFull ? 'Show less' : 'Show more'}\n </Link>\n </React.Fragment>\n );\n}\n\nfunction unquote(value?: string) {\n if (typeof value === 'string' && value.startsWith('\"') && value.endsWith('\"')) {\n return value.slice(1, -1);\n }\n return value;\n}\n\nconst cellCopyToClipboardClassName = block('cell-copy-to-clipboard');\n\ninterface TableCellProps {\n children?: StrictReactNode;\n rawValue?: string;\n}\nfunction TableCell({children, rawValue}: TableCellProps) {\n const cellNodeRef = React.useRef<HTMLDivElement>(null);\n const [mount, setMount] = React.useState(false);\n\n React.useEffect(() => {\n const parent = cellNodeRef.current?.parentElement;\n\n function handleMouseOver() {\n setMount(true);\n }\n function handleMouseOut(e: MouseEvent) {\n if (!parent?.contains(e.relatedTarget as any)) {\n setMount(false);\n }\n }\n parent?.addEventListener('mouseover', handleMouseOver);\n parent?.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n parent?.removeEventListener('mouseover', handleMouseOver);\n parent?.removeEventListener('mouseout', handleMouseOut);\n };\n }, []);\n\n return (\n <span ref={cellNodeRef}>\n {children}\n {mount && rawValue ? (\n <ClipboardButton\n className={cellCopyToClipboardClassName}\n text={rawValue}\n size={16}\n />\n ) : null}\n </span>\n );\n}\n"],"mappings":"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"}
@@ -64,15 +64,17 @@ function BundleEditorDialog() {
64
64
  }();
65
65
  var _ref = function () {
66
66
  if (!bundleDefaultConfig) {
67
- return [[], []];
67
+ return [[], [], []];
68
68
  }
69
69
  var rpc_proxy_sizes = bundleDefaultConfig.rpc_proxy_sizes,
70
- tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes;
71
- return [(0, _bundleEditorDialog.createConfigurationList)(rpc_proxy_sizes), (0, _bundleEditorDialog.createConfigurationList)(tablet_node_sizes)];
70
+ tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes,
71
+ data_centers = bundleDefaultConfig.data_centers;
72
+ return [(0, _bundleEditorDialog.createConfigurationList)(rpc_proxy_sizes), (0, _bundleEditorDialog.createConfigurationList)(tablet_node_sizes), data_centers ? (0, _toConsumableArray2.default)(Object.values(data_centers)) : []];
72
73
  }(),
73
- _ref2 = (0, _slicedToArray2.default)(_ref, 2),
74
+ _ref2 = (0, _slicedToArray2.default)(_ref, 3),
74
75
  rpcConfigurations = _ref2[0],
75
- nodeConfigurations = _ref2[1];
76
+ nodeConfigurations = _ref2[1],
77
+ dcConfigurations = _ref2[2];
76
78
  var renderGeneralTabs = {
77
79
  name: 'general',
78
80
  title: 'General',
@@ -157,7 +159,8 @@ function BundleEditorDialog() {
157
159
  withoutDetailedBar: true,
158
160
  hasClear: true
159
161
  },
160
- validator: _bundleEditorDialog.simpleBundleValidate
162
+ tooltip: (0, _config.docsUrl)((0, _utils.makeLink)(_UIFactory.default.docsUrls['dynamic-tables:cross-dc'], 'Help')),
163
+ validator: (0, _bundleEditorDialog.instanceCountValidate)(dcConfigurations)
161
164
  }, {
162
165
  type: 'bundle-table-field',
163
166
  name: 'rpc_proxy_resource_guarantee',
@@ -177,7 +180,8 @@ function BundleEditorDialog() {
177
180
  withoutDetailedBar: true,
178
181
  hasClear: true
179
182
  },
180
- validator: _bundleEditorDialog.simpleBundleValidate
183
+ tooltip: (0, _config.docsUrl)((0, _utils.makeLink)(_UIFactory.default.docsUrls['dynamic-tables:cross-dc'], 'Help')),
184
+ validator: (0, _bundleEditorDialog.instanceCountValidate)(dcConfigurations)
181
185
  }, {
182
186
  type: 'bundle-table-field',
183
187
  name: 'tablet_node_resource_guarantee',