@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
@@ -1 +1 @@
1
- {"version":3,"names":["axios","YT_CYPRESS_COOKIE_NAME","getUserYTApiSetup","getYTApiClusterSetup","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","crypto","ytLib","getXSRFToken","yt","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","concat","Buffer","from","toString","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","undefined","removeSecureFlagIfOriginInsecure","sent","stop","_x7","t0","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","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","createHash","update","digest","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":"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"}
1
+ {"version":3,"names":["axios","YT_CYPRESS_COOKIE_NAME","getUserYTApiSetup","getYTApiClusterSetup","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","crypto","ytLib","getXSRFToken","yt","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","concat","Buffer","from","toString","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","undefined","removeSecureFlagIfOriginInsecure","sent","stop","_x7","t0","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","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","createHash","update","digest","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;
@@ -10,6 +10,7 @@ export var docsUrls = {
10
10
  'faq:enablepathautocorrection': "".concat(baseUrl, "/faq/faq#enablepathautocorrection"),
11
11
  'storage:static_tables': "".concat(baseUrl, "/user-guide/storage/static-tables"),
12
12
  'dynamic-tables:overview': "".concat(baseUrl, "/user-guide/dynamic-tables/overview"),
13
+ 'dynamic-tables:cross-dc': "".concat(baseUrl, "/user-guide/dynamic-tables/dynamic-tables-resources#georaspredelyonnye-klastery-cross-dc"),
13
14
  'storage:compression#compression_codecs': "".concat(baseUrl, "/user-guide/storage/compression#compression_codecs"),
14
15
  'storage:replication#replication': "".concat(baseUrl, "/user-guide/storage/replication#replication"),
15
16
  'storage:replication#erasure': "".concat(baseUrl, "/user-guide/storage/replication#erasure"),
@@ -1 +1 @@
1
- {"version":3,"names":["getDocsBaseUrl","baseUrl","docsUrls","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,SAAQA,cAAc,QAAO,WAAW;AAExC,IAAMC,OAAO,GAAGD,cAAc,CAAC,CAAC,IAAI,EAAE;AAEtC,OAAO,IAAME,QAAQ,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAC,MAAA,CAAKF,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAE,MAAA,CAAKF,OAAO,oCAAiC;EAClE,mDAAmD,KAAAE,MAAA,CAAKF,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,qBAAqB,KAAAE,MAAA,CAAKF,OAAO,qBAAkB;EACnD,8BAA8B,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,yBAAyB,KAAAE,MAAA,CAAKF,OAAO,wCAAqC;EAC1E,wCAAwC,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxG,iCAAiC,KAAAE,MAAA,CAAKF,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAE,MAAA,CAAKF,OAAO,4CAAyC;EAClF,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,2BAA2B,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAE,MAAA,CAAKF,OAAO,mDAAgD;EAChG,gCAAgC,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAE,MAAA,CAAKF,OAAO,sDAAmD;EACtG,mDAAmD,KAAAE,MAAA,CAAKF,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uCAAoC;EACxE,iBAAiB,KAAAE,MAAA,CAAKF,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EAC9E,eAAe,KAAAE,MAAA,CAAKF,OAAO,8BAA2B;EACtD,kCAAkC,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EACrF,mCAAmC,KAAAE,MAAA,CAAKF,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAE,MAAA,CAAKF,OAAO,4CAAyC;EAClF,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,6CAA6C,KAAAE,MAAA,CAAKF,OAAO,4DAAyD;EAClH,qEAAqE,KAAAE,MAAA,CAAKF,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAE,MAAA,CAAKF,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAE,MAAA,CAAKF,OAAO,mEAAgE;EAChH,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxF,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,gBAAgB,KAAAE,MAAA,CAAKF,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAE,MAAA,CAAKF,OAAO,iBAAc;EACnC,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAE,MAAA,CAAKF,OAAO;AACjC,CAAC"}
1
+ {"version":3,"names":["getDocsBaseUrl","baseUrl","docsUrls","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,SAAQA,cAAc,QAAO,WAAW;AAExC,IAAMC,OAAO,GAAGD,cAAc,CAAC,CAAC,IAAI,EAAE;AAEtC,OAAO,IAAME,QAAQ,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAC,MAAA,CAAKF,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAE,MAAA,CAAKF,OAAO,oCAAiC;EAClE,mDAAmD,KAAAE,MAAA,CAAKF,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,qBAAqB,KAAAE,MAAA,CAAKF,OAAO,qBAAkB;EACnD,8BAA8B,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,yBAAyB,KAAAE,MAAA,CAAKF,OAAO,wCAAqC;EAC1E,yBAAyB,KAAAE,MAAA,CAAKF,OAAO,6FAA0F;EAC/H,wCAAwC,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxG,iCAAiC,KAAAE,MAAA,CAAKF,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAE,MAAA,CAAKF,OAAO,4CAAyC;EAClF,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,2BAA2B,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAE,MAAA,CAAKF,OAAO,mDAAgD;EAChG,gCAAgC,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAE,MAAA,CAAKF,OAAO,sDAAmD;EACtG,mDAAmD,KAAAE,MAAA,CAAKF,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uCAAoC;EACxE,iBAAiB,KAAAE,MAAA,CAAKF,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EAC9E,eAAe,KAAAE,MAAA,CAAKF,OAAO,8BAA2B;EACtD,kCAAkC,KAAAE,MAAA,CAAKF,OAAO,0CAAuC;EACrF,mCAAmC,KAAAE,MAAA,CAAKF,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAE,MAAA,CAAKF,OAAO,4CAAyC;EAClF,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAE,MAAA,CAAKF,OAAO,sCAAmC;EACtE,6CAA6C,KAAAE,MAAA,CAAKF,OAAO,4DAAyD;EAClH,qEAAqE,KAAAE,MAAA,CAAKF,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAE,MAAA,CAAKF,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAE,MAAA,CAAKF,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAE,MAAA,CAAKF,OAAO,mEAAgE;EAChH,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxF,+BAA+B,KAAAE,MAAA,CAAKF,OAAO,8DAA2D;EACtG,gBAAgB,KAAAE,MAAA,CAAKF,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAE,MAAA,CAAKF,OAAO,iBAAc;EACnC,wBAAwB,KAAAE,MAAA,CAAKF,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAE,MAAA,CAAKF,OAAO;AACjC,CAAC"}
@@ -25,13 +25,17 @@ function rowKey(row, index) {
25
25
  }
26
26
  return index;
27
27
  }
28
+ function triggerWindowResize() {
29
+ window.dispatchEvent(new Event('resize'));
30
+ }
28
31
  var tableSettings = {
29
32
  sortable: false,
30
33
  displayIndices: true,
31
34
  stripedRows: true,
32
35
  externalSort: true,
33
36
  stickyHead: MOVING,
34
- stickyTop: 0
37
+ stickyTop: 0,
38
+ syncHeadOnResize: true
35
39
  };
36
40
  var transposeTableSettings = _objectSpread(_objectSpread({}, tableSettings), {}, {
37
41
  displayIndices: false
@@ -141,6 +145,7 @@ export default function Table(_ref) {
141
145
  }
142
146
  })
143
147
  }) : /*#__PURE__*/_jsx(ShowMoreInline, {
148
+ onClick: triggerWindowResize,
144
149
  strippedDown: strippedDown,
145
150
  formattedValue: fullFormattedValue
146
151
  }), additions]
@@ -349,7 +354,8 @@ function visualRowIndex(row) {
349
354
  }
350
355
  function ShowMoreInline(_ref7) {
351
356
  var formattedValue = _ref7.formattedValue,
352
- strippedDown = _ref7.strippedDown;
357
+ strippedDown = _ref7.strippedDown,
358
+ onClick = _ref7.onClick;
353
359
  var _React$useState = React.useState(false),
354
360
  _React$useState2 = _slicedToArray(_React$useState, 2),
355
361
  showFull = _React$useState2[0],
@@ -361,11 +367,20 @@ function ShowMoreInline(_ref7) {
361
367
  __html: showFull ? formattedValue : strippedDown
362
368
  }
363
369
  }), /*#__PURE__*/_jsx("br", {}), /*#__PURE__*/_jsx(Link, {
364
- onClick: function onClick() {
370
+ onClick: function (_onClick) {
371
+ function onClick() {
372
+ return _onClick.apply(this, arguments);
373
+ }
374
+ onClick.toString = function () {
375
+ return _onClick.toString();
376
+ };
377
+ return onClick;
378
+ }(function () {
365
379
  setShowFull(function (v) {
366
380
  return !v;
367
381
  });
368
- },
382
+ onClick === null || onClick === void 0 || onClick();
383
+ }),
369
384
  children: showFull ? 'Show less' : 'Show more'
370
385
  })]
371
386
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","ClipboardButton","Link","Text","hammer","cn","DataTable","DataTypePopup","hasKey","MOVING","DataTableYT","jsx","_jsx","jsxs","_jsxs","block","INDEX_COLUMN","Symbol","NUMBER_OF_STRIPPED_LINES","MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY","rowKey","row","index","tableSettings","sortable","displayIndices","stripedRows","externalSort","stickyHead","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","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","children","key","sort","undefined","accessor","cells","arguments","Boolean","simple","sortAccessor","$sortValue","render","data","_value$$rawValue","_value$$fullFormatted","_ref2","value","formattedValue","Object","prototype","hasOwnProperty","call","$formattedValue","rawValue","unquote","$rawValue","$value","fullFormattedValue","$fullFormattedValue","strippedDown","$type","startsWith","lines","split","slice","join","isStrippedDown","additions","$additions","Fragment","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","footerData","settings","visibleRowIndex","mode","content","error","generateSortingFunction","order","compareValue","row1","row2","value1","value2","Number","isNaN","dataColumns","indexedData","_defineProperty","sortOrderArray","Array","isArray","sortColumns","reduce","obj","_ref6","columnId","sortFunctionDict","sortFunctions","keys","comparison","some","_ref7","_React$useState","useState","_React$useState2","showFull","setShowFull","onClick","v","endsWith","cellCopyToClipboardClassName","_ref8","cellNodeRef","useRef","_React$useState3","_React$useState4","mount","setMount","useEffect","_cellNodeRef$current","parent","current","parentElement","handleMouseOver","handleMouseOut","e","contains","relatedTarget","addEventListener","removeEventListener","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":";;;;AAAA;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAAQC,eAAe,EAAEC,IAAI,EAAEC,IAAI,QAAO,mBAAmB;AAC7D,OAAOC,MAAM,MAAM,2BAA2B;AAC9C,OAAOC,EAAE,MAAM,aAAa;AAC5B,OAAOC,SAAS,MAAgD,8BAA8B;AAC9F,OAAOC,aAAa,MAAM,gCAAgC;AAC1D,SAAyBC,MAAM,QAAO,SAAS;AAC/C,SAAQC,MAAM,QAAO,sDAAsD;AAC3E,OAAOC,WAAW,MAAM,gDAAgD;AAExE,OAAO,gBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEzB,IAAMC,KAAK,GAAGV,EAAE,CAAC,kBAAkB,CAAC;AAEpC,IAAMW,YAAY,GAAGC,MAAM,CAAC,WAAW,CAAC;AACxC,IAAMC,wBAAwB,GAAG,CAAC;AAClC,IAAMC,2CAA2C,GAAGD,wBAAwB,GAAG,CAAC;AAQhF,SAASE,MAAMA,CAACC,GAAY,EAAEC,KAAa,EAAE;EACzC,IAAId,MAAM,CAACa,GAAG,EAAEL,YAAY,CAAC,EAAE;IAC3B,OAAOK,GAAG,CAACL,YAAY,CAAC;EAC5B;EACA,OAAOM,KAAK;AAChB;AAEA,IAAMC,aAAuB,GAAG;EAC5BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,IAAI;EACpBC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE,IAAI;EAClBC,UAAU,EAAEnB,MAAM;EAClBoB,SAAS,EAAE;AACf,CAAC;AAED,IAAMC,sBAAgC,GAAAC,aAAA,CAAAA,aAAA,KAC/BR,aAAa;EAChBE,cAAc,EAAE;AAAK,EACxB;AA0BD,IAAMO,UAAiB,GAAG,EAAE;AAC5B,eAAe,SAASC,KAAKA,CAAAC,IAAA,EAsBnB;EAAA,IArBNC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAAC,WAAA,GAAAF,IAAA,CACTG,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGJ,UAAU,GAAAI,WAAA;IAAAE,SAAA,GAAAJ,IAAA,CACnBK,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAGN,UAAU,GAAAM,SAAA;IAAAE,WAAA,GAAAN,IAAA,CACjBO,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGR,UAAU,GAAAQ,WAAA;IAAAE,gBAAA,GAAAR,IAAA,CACnBS,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAGV,UAAU,GAAAU,gBAAA;IAAAE,UAAA,GAAAV,IAAA,CACxBW,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,cAAc,GAAAA,UAAA;IACtBE,MAAM,GAAAZ,IAAA,CAANY,MAAM;IACNC,iBAAiB,GAAAb,IAAA,CAAjBa,iBAAiB;IAAAC,qBAAA,GAAAd,IAAA,CACjBe,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAG1C,SAAS,CAAC4C,KAAK,GAAAF,qBAAA;IACpCG,UAAU,GAAAjB,IAAA,CAAViB,UAAU;IACVC,gBAAgB,GAAAlB,IAAA,CAAhBkB,gBAAgB;IAChBC,OAAO,GAAAnB,IAAA,CAAPmB,OAAO;IACPC,OAAO,GAAApB,IAAA,CAAPoB,OAAO;IAAAC,cAAA,GAAArB,IAAA,CACPsB,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAAAE,SAAA,GAAAvB,IAAA,CACjBwB,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IAAAE,aAAA,GAAAzB,IAAA,CACR0B,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAGpB,IAAI,CAACsB,MAAM,GAAAF,aAAA;IACtBG,UAAU,GAAA5B,IAAA,CAAV4B,UAAU;IACVC,SAAS,GAAA7B,IAAA,CAAT6B,SAAS;IACTC,MAAM,GAAA9B,IAAA,CAAN8B,MAAM;IACNC,qBAAqB,GAAA/B,IAAA,CAArB+B,qBAAqB;IACrBC,YAAY,GAAAhC,IAAA,CAAZgC,YAAY;EAEZ,IAAM1C,QAAQ,GAAG,OAAOwC,MAAM,KAAK,UAAU;EAC7C,IAAMG,OAAO,GAAGnE,KAAK,CAACoE,OAAO,CAAC,YAAM;IAChC,IAAMD,OAAO,GAAG9B,MAAM,CAACgC,GAAG,CAAC,UAACC,MAAM,EAA6B;MAC3D,IAAOC,IAAI,GAA4BD,MAAM,CAAtCC,IAAI;QAAEC,WAAW,GAAeF,MAAM,CAAhCE,WAAW;QAAAC,YAAA,GAAeH,MAAM,CAAnBI,IAAI;QAAJA,IAAI,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;MACnC,OAAO;QACHF,IAAI,EAAJA,IAAI;QACJlC,MAAM,eAAEzB,IAAA,CAACL,aAAa;UAACmE,IAAI,EAAEA,IAAK;UAAAC,QAAA,EAAEH,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAID;QAAI,CAAgB,CAAC;QACxEpC,SAAS,EAAEmC,MAAM,CAACM,GAAG,IAAIN,MAAM,CAACO,IAAI,GAAG,QAAQ,GAAGC,SAAS;QAC3DC,QAAQ,EAAE,SAAAA,SAAA;UAAA,IAACC,KAA8B,GAAAC,SAAA,CAAApB,MAAA,QAAAoB,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKD,KAAK,CAACT,IAAI,CAAC;QAAA;QAC9D/C,QAAQ,EAAEA,QAAQ,IAAI0D,OAAO,CAACR,IAAI,CAACS,MAAM,CAAC;QAC1CC,YAAY,EAAE,SAAAA,aAAA;UAAA,IAACJ,KAA2B,GAAAC,SAAA,CAAApB,MAAA,QAAAoB,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKD,KAAK,CAACT,IAAI,CAAC,CAACc,UAAU;QAAA;QAC1EC,MAAM,WAAAA,OAACC,IAAI,EAAE;UAAA,IAAAC,gBAAA,EAAAC,qBAAA;UACT,IAAI,OAAOnB,MAAM,CAACgB,MAAM,KAAK,UAAU,EAAE;YACrC,OAAOhB,MAAM,CAACgB,MAAM,CAACC,IAAI,CAAC;UAC9B;UAEA,IAAAG,KAAA,GAAgBH,IAAI;YAAbI,KAAK,GAAAD,KAAA,CAALC,KAAK;UACZ,IAAIC,cAAc;UAClB,IAAI,CAACD,KAAK,EAAE;YACR,oBAAO/E,IAAA;cAAMuB,SAAS,EAAC,SAAS;cAAAwC,QAAA,EAAC;YAA6B,CAAM,CAAC;UACzE;UACA,IAAIkB,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,EAAE,iBAAiB,CAAC,EAAE;YAChEC,cAAc,GAAGD,KAAK,CAACM,eAAe;UAC1C,CAAC,MAAM;YACHL,cAAc,GAAG9C,MAAM,CAAC6C,KAAK,EAAE5C,iBAAiB,CAAC;UACrD;UACA,IAAMmD,QAAQ,GAAGC,OAAO,EAAAX,gBAAA,GAACG,KAAK,CAACS,SAAS,cAAAZ,gBAAA,cAAAA,gBAAA,GAAIG,KAAK,CAACU,MAAM,CAAC;UACzD,IAAMC,kBAAkB,IAAAb,qBAAA,GAAGE,KAAK,CAACY,mBAAmB,cAAAd,qBAAA,cAAAA,qBAAA,GAAIG,cAAc;UACtE,IAAIY,YAAoB;UACxB,IACIb,KAAK,CAACc,KAAK,KAAK,YAAY,IAC5Bb,cAAc,CAACc,UAAU,CAAC,sBAAsB,CAAC,EACnD;YACEF,YAAY,GAAGZ,cAAc;UACjC,CAAC,MAAM;YACH,IAAMe,KAAK,GAAGf,cAAc,CAACgB,KAAK,CAAC,IAAI,CAAC;YACxC,IAAID,KAAK,CAAC9C,MAAM,GAAG1C,2CAA2C,EAAE;cAC5DqF,YAAY,GAAGG,KAAK,CAACE,KAAK,CAAC,CAAC,EAAE3F,wBAAwB,CAAC,CAAC4F,IAAI,CAAC,IAAI,CAAC;YACtE,CAAC,MAAM;cACHN,YAAY,GAAGZ,cAAc;YACjC;UACJ;UACA,IAAMmB,cAAc,GAAGP,YAAY,KAAKF,kBAAkB;UAE1D,IAAMU,SAAS,GAAGrB,KAAK,CAACsB,UAAU,gBAC9BnG,KAAA,CAACd,KAAK,CAACkH,QAAQ;YAAAvC,QAAA,gBACX/D,IAAA,SAAK,CAAC,eACNA,IAAA,CAACT,IAAI;cAACgH,KAAK,EAAC,YAAY;cAAAxC,QAAA,EAAEgB,KAAK,CAACsB;YAAU,CAAO,CAAC;UAAA,CACtC,CAAC,GACjB,IAAI;UACR,IAAIF,cAAc,EAAE;YAChB,oBACIjG,KAAA,CAACsG,SAAS;cAAClB,QAAQ,EAAEA,QAAS;cAAAvB,QAAA,GACzBV,qBAAqB,gBAClBrD,IAAA,CAACZ,KAAK,CAACkH,QAAQ;gBAAAvC,QAAA,eACX/D,IAAA;kBACIuB,SAAS,EAAC,SAAS;kBACnBkF,uBAAuB,EAAE;oBACrBC,MAAM,EAAEd;kBACZ;gBAAE,CACL;cAAC,CACU,CAAC,gBAEjB5F,IAAA,CAAC2G,cAAc;gBACXf,YAAY,EAAEA,YAAa;gBAC3BZ,cAAc,EAAEU;cAAmB,CACtC,CACJ,EACAU,SAAS;YAAA,CACH,CAAC;UAEpB;UACA,oBACIlG,KAAA,CAACsG,SAAS;YAAClB,QAAQ,EAAEA,QAAS;YAAAvB,QAAA,gBAC1B/D,IAAA;cACIuB,SAAS,EAAC,SAAS;cACnBkF,uBAAuB,EAAE;gBAACC,MAAM,EAAE1B;cAAc;YAAE,CACrD,CAAC,EACDoB,SAAS;UAAA,CACH,CAAC;QAEpB,CAAC;QACDQ,KAAK,EAAE9C,IAAI,CAAC+C,OAAO,GAAGxE,kBAAkB,GAAG6B;MAC/C,CAAC;IACL,CAAC,CAAC;IACF,OAAOX,OAAO;EAClB,CAAC,EAAE,CAAC9B,MAAM,EAAEb,QAAQ,EAAEyB,kBAAkB,EAAEH,MAAM,EAAEC,iBAAiB,EAAEkB,qBAAqB,CAAC,CAAC;EAE5F,IAAMyD,oBAAoB,GAAG,CAAChE,IAAI,GAAG,CAAC,IAAIE,QAAQ;EAClD,IAAM+D,aAAa,GAAGnG,QAAQ,GAAG,CAAC,GAAGsC,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI4D,oBAAoB,GAAG,CAAC;EAC3E,IAAME,UAAU,GAAG5H,KAAK,CAACoE,OAAO,CAAC,YAAM;IACnC,OAAOyD,aAAa,CAACtF,IAAI,EAAE4B,OAAO,EAAEJ,SAAS,EAAE4D,aAAa,CAAC;EACjE,CAAC,EAAE,CAACpF,IAAI,EAAE4B,OAAO,EAAEJ,SAAS,EAAE4D,aAAa,CAAC,CAAC;EAE7C,IAAAG,cAAA,GAA+C9H,KAAK,CAACoE,OAAO,CAAC,YAAM;MAC/D,IAAM2D,eAAsB,GAAGpF,WAAW,CACrC0B,GAAG,CAAC,UAACE,IAAI;QAAA,OAAKJ,OAAO,CAAC6D,IAAI,CAAC,UAACC,IAAI;UAAA,OAAKA,IAAI,CAAC1D,IAAI,KAAKA,IAAI;QAAA,EAAC;MAAA,EAAC,CACzD2D,MAAM,CAAChD,OAAO,CAAC;MACpB,IAAMiD,QAAQ,GAAGP,UAAU,CAACf,KAAK,CAACa,oBAAoB,EAAEA,oBAAoB,GAAG9D,QAAQ,CAAC;MACxF,IAAI,CAACJ,SAAS,EAAE;QACZ,OAAO,CAACuE,eAAe,EAAEI,QAAQ,EAAE1F,MAAM,CAAC;MAC9C;MACA,IAAM2F,UAAU,GAAG;QACf7D,IAAI,EAAE,MAAM;QACZlC,MAAM,EAAE;MACZ,CAAC;MAED,IAAMgG,UAAU,GAAGF,QAAQ,CACtB9D,GAAG,CAAC,UAAChD,GAAG,EAAEC,KAAK;QAAA,OAAM;UAClBiD,IAAI,EAAE+D,MAAM,CAACZ,oBAAoB,GAAGpG,KAAK,CAAC;UAC1Ce,MAAM,EAAEkG,cAAc,CAAClH,GAAG,CAAC;UAC3BiE,MAAM,EAAE,SAAAA,OAAAkD,KAAA,EAAgD;YAAA,IAA9C7C,KAAK,GAAA6C,KAAA,CAAL7C,KAAK;YACX,OAAOA,KAAK,CAACrB,MAAM,CAACgB,MAAM,CAAC;cAACK,KAAK,EAAEA,KAAK,CAACJ,IAAI;cAAElE,GAAG,EAAHA;YAAG,CAAC,CAAC;UACxD;QACJ,CAAC;MAAA,CAAC,CAAC,CACFoH,MAAM,CACHhG,MAAM,CAAC4B,GAAG,CAAC,UAAAqE,KAAA,EAAgBpH,KAAK;QAAA,IAAnBqH,WAAW,GAAAD,KAAA,CAAXC,WAAW;QAAA,OAAc;UAClCpE,IAAI,WAAAkE,MAAA,CAAWnH,KAAK,CAAE;UACtBe,MAAM,EAAEiG,MAAM,CAACK,WAAW,GAAGA,WAAW,GAAGrH,KAAK,CAAC;UACjDgE,MAAM,EAAE,SAAAA,OAAAsD,KAAA,EAAa;YAAA,IAAXjD,KAAK,GAAAiD,KAAA,CAALjD,KAAK;YACX,OAAOA,KAAK,CAACrB,MAAM,CAACgB,MAAM,CAAC;cAACK,KAAK,EAAEA,KAAK,CAACJ,IAAI;cAAEsD,MAAM,EAAE;YAAI,CAAC,CAAC;UACjE;QACJ,CAAC;MAAA,CAAC,CACN,CAAC;MAEL,IAAMC,cAAc,GAAGf,eAAe,CAAC1D,GAAG,CAAC,UAACC,MAAM,EAAK;QACnD,IAAMyE,aAAkC,GAAG;UACvCxE,IAAI,EAAED,MAAM,CAACC;QACjB,CAAC;QACD,KACI,IAAIjD,KAAK,GAAGoG,oBAAoB,EAChCpG,KAAK,GAAGoG,oBAAoB,GAAG9D,QAAQ,EACvCtC,KAAK,EAAE,EACT;UACE,IAAIA,KAAK,KAAKsG,UAAU,CAAC/D,MAAM,EAAE;YAC7B;UACJ;UACAkF,aAAa,CAACT,MAAM,CAAChH,KAAK,CAAC,CAAC,GAAG;YAC3BgD,MAAM,EAAEA,MAAM;YACdiB,IAAI,EAAEqC,UAAU,CAACtG,KAAK,CAAC,CAACgD,MAAM,CAACC,IAAI;UACvC,CAAC;QACL;QACA9B,MAAM,CAACuG,OAAO,CAAC,UAACC,KAAK,EAAE3H,KAAK,EAAK;UAC7ByH,aAAa,UAAAN,MAAA,CAAUnH,KAAK,EAAG,GAAG;YAC9BgD,MAAM,EAAEA,MAAM;YACdiB,IAAI,EAAE0D,KAAK,CAAC3E,MAAM,CAACC,IAAI;UAC3B,CAAC;QACL,CAAC,CAAC;QACF,OAAOwE,aAAa;MACxB,CAAC,CAAC;MACF,OAAO,EAAEX,UAAU,EAAAK,MAAA,CAAAS,kBAAA,CAAKb,UAAU,IAAGS,cAAc,EAAE,EAAE,CAAC;IAC5D,CAAC,EAAE,CAACnG,WAAW,EAAEiF,UAAU,EAAEF,oBAAoB,EAAE9D,QAAQ,EAAEJ,SAAS,EAAEf,MAAM,EAAE0B,OAAO,CAAC,CAAC;IAAAgF,eAAA,GAAAC,cAAA,CAAAtB,cAAA;IAzDlFuB,YAAY,GAAAF,eAAA;IAAEG,SAAS,GAAAH,eAAA;IAAEI,WAAW,GAAAJ,eAAA;EA2D3C,IAAIhG,UAAU,KAAK,OAAO,EAAE;IACxB,oBACIvC,IAAA;MAAK4I,GAAG,EAAEtF,YAAa;MAAC/B,SAAS,EAAEpB,KAAK,CAAC,IAAI,EAAEoB,SAAS,CAAE;MAAAwC,QAAA,eACtD/D,IAAA,CAACF,WAAW;QACRyD,OAAO,EAAEkF,YAAoB;QAC7B9D,IAAI,EAAE+D,SAAU;QAChBG,UAAU,EAAEF,WAAW,CAAC1F,MAAM,KAAK,CAAC,GAAGiB,SAAS,GAAGyE,WAAY;QAC/DG,QAAQ,EAAElG,SAAS,GAAG1B,sBAAsB,GAAGP,aAAc;QAC7DuC,UAAU,EAAE6D,aAAc;QAC1BvE,gBAAgB,EAAEA,gBAAiB;QACnCP,KAAK,EAAEA,KAAM;QACbzB,MAAM,EAAEA,MAAO;QACf2C,SAAS,EAAEA,SAAU;QACrBC,MAAM,EAAEA,MAAO;QACf2F,eAAe,EAAEnG,SAAS,GAAGsB,SAAS,GAAIyD;MAAuB,CACpE;IAAC,CACD,CAAC;EAEd,CAAC,MAAM,IAAIpF,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,SAAS,EAAE;IAC1D,oBACIvC,IAAA;MAAK4I,GAAG,EAAEtF,YAAa;MAAC/B,SAAS,EAAEpB,KAAK,CAAC;QAAC6I,IAAI,EAAEzG;MAAU,CAAC,EAAEhB,SAAS,CAAE;MAAAwC,QAAA,eACpE/D,IAAA;QAAKuB,SAAS,EAAC,SAAS;QAACkF,uBAAuB,EAAE;UAACC,MAAM,EAAE/E,IAAI,CAAC,CAAC,CAAC,CAACsH;QAAO;MAAE,CAAE;IAAC,CAC9E,CAAC;EAEd;EACA,OAAOxG,OAAO,gBAAGzC,IAAA;IAAKuB,SAAS,EAAEpB,KAAK,CAAC,SAAS,EAAE;MAAC+I,KAAK,EAAExG;IAAO,CAAC,CAAE;IAAAqB,QAAA,EAAEtB;EAAO,CAAM,CAAC,GAAG,IAAI;AAC/F;AAGA,SAAS0G,uBAAuBA,CAAIzF,MAAiB,EAAE0F,KAAgB,EAAiB;EACpF,IAAMC,YAAY,GAAGD,KAAK;EAE1B,OAAO,UAACE,IAAI,EAAEC,IAAI,EAAK;IACnB,IAAIC,MAAM;IACV,IAAIC,MAAM;IACV,IAAI,OAAO/F,MAAM,CAACc,YAAY,KAAK,UAAU,EAAE;MAC3CgF,MAAM,GAAG9F,MAAM,CAACc,YAAY,CAAC8E,IAAI,CAAC;MAClCG,MAAM,GAAG/F,MAAM,CAACc,YAAY,CAAC+E,IAAI,CAAC;IACtC;IAEA,IAAIG,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC,IAAI,CAACE,MAAM,CAACC,KAAK,CAACF,MAAM,CAAC,EAAE;MAC/C,OAAOC,MAAM,CAACL,YAAY,CAAC;IAC/B;IACA,IAAIK,MAAM,CAACC,KAAK,CAACF,MAAM,CAAC,IAAI,CAACC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC,EAAE;MAC/C,OAAOE,MAAM,CAAC,CAACL,YAAY,CAAC;IAChC;IACA;IACA;IACA;;IAEA,IAAIG,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MAClC,OAAOC,MAAM,CAAC,CAACL,YAAY,CAAC;IAChC;IACA,IAAII,MAAM,IAAI,IAAI,IAAID,MAAM,IAAI,IAAI,EAAE;MAClC,OAAOE,MAAM,CAACL,YAAY,CAAC;IAC/B;IACA;;IAEA,IAAIG,MAAM,GAAGC,MAAM,EAAE;MACjB,OAAOC,MAAM,CAAC,CAACL,YAAY,CAAC;IAChC;IACA,IAAIG,MAAM,GAAGC,MAAM,EAAE;MACjB,OAAOC,MAAM,CAACL,YAAY,CAAC;IAC/B;IACA,OAAO,CAAC;EACZ,CAAC;AACL;AAGA,SAASpC,aAAaA,CAClBtC,IAAS,EACTiF,WAAwB,EACxBzG,SAAmC,EAErB;EAAA,IADdD,UAAU,GAAAmB,SAAA,CAAApB,MAAA,QAAAoB,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,CAAC;EAEd,IAAMwF,WAAW,GAAGlF,IAAI,CAAClB,GAAG,CAAC,UAAChD,GAAG,EAAEC,KAAK;IAAA,OAAAS,aAAA,CAAA2I,eAAA,KAAQ1J,YAAY,EAAG8C,UAAU,GAAGxC,KAAK,GAAKD,GAAG;EAAA,CAAE,CAAC;EAC5F,IAAI,CAAC0C,SAAS,EAAE;IACZ,OAAO0G,WAAW;EACtB;EACA,IAAME,cAAc,GAAGC,KAAK,CAACC,OAAO,CAAC9G,SAAS,CAAC,GAAGA,SAAS,GAAG,CAACA,SAAS,CAAC;EACzE,IAAM+G,WAAW,GAAGH,cAAc,CAACI,MAAM,CAAC,UAACC,GAAG,EAAAC,KAAA,EAAwB;IAAA,IAArBC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;MAAElB,KAAK,GAAAiB,KAAA,CAALjB,KAAK;IAC5DgB,GAAG,CAACE,QAAQ,CAAC,GAAGlB,KAAK;IACrB,OAAOgB,GAAG;EACd,CAAC,EAAE,CAAC,CAA8B,CAAC;EACnC,IAAMG,gBAAoD,GAAG,CAAC,CAAC;EAC/DX,WAAW,CAACxB,OAAO,CAAC,UAAC1E,MAAM,EAAK;IAC5B,IAAIwG,WAAW,CAACxG,MAAM,CAACC,IAAI,CAAC,EAAE;MAC1B4G,gBAAgB,CAAC7G,MAAM,CAACC,IAAI,CAAC,GAAGwF,uBAAuB,CACnDzF,MAAM,EACNwG,WAAW,CAACxG,MAAM,CAACC,IAAI,CAC3B,CAAC;IACL;EACJ,CAAC,CAAC;EAEF,IAAM6G,aAAa,GAAGvF,MAAM,CAACwF,IAAI,CAACP,WAAW,CAAC,CACzCzG,GAAG,CAAC,UAACE,IAAI;IAAA,OAAK4G,gBAAgB,CAAC5G,IAAI,CAAC;EAAA,EAAC,CACrC2D,MAAM,CAAChD,OAAO,CAAC;EAEpB,IAAIkG,aAAa,CAACvH,MAAM,EAAE;IACtB4G,WAAW,CAAC5F,IAAI,CAAC,UAACqF,IAAI,EAAEC,IAAI,EAAK;MAC7B,IAAImB,UAAU,GAAG,CAAC;MAClBF,aAAa,CAACG,IAAI,CAAC,UAAC1G,IAAI,EAAK;QACzByG,UAAU,GAAGzG,IAAI,CAACqF,IAAI,EAAEC,IAAI,CAAC;QAC7B,OAAOjF,OAAO,CAACoG,UAAU,CAAC;MAC9B,CAAC,CAAC;MACF,OAAOA,UAAU,IAAIpB,IAAI,CAAClJ,YAAY,CAAC,GAAGmJ,IAAI,CAACnJ,YAAY,CAAC;IAChE,CAAC,CAAC;EACN;EACA,OAAOyJ,WAAW;AACtB;AAEA,SAASlC,cAAcA,CAAIlH,GAAiB,EAAE;EAC1C,OAAOjB,MAAM,CAAC0C,MAAM,CAAC,QAAQ,CAAC,CAACzB,GAAG,CAACL,YAAY,CAAC,CAAC;AACrD;AAMA,SAASuG,cAAcA,CAAAiE,KAAA,EAAsD;EAAA,IAApD5F,cAAc,GAAA4F,KAAA,CAAd5F,cAAc;IAAEY,YAAY,GAAAgF,KAAA,CAAZhF,YAAY;EACjD,IAAAiF,eAAA,GAAgCzL,KAAK,CAAC0L,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAvC,cAAA,CAAAqC,eAAA;IAA9CG,QAAQ,GAAAD,gBAAA;IAAEE,WAAW,GAAAF,gBAAA;EAC5B,oBACI7K,KAAA,CAACd,KAAK,CAACkH,QAAQ;IAAAvC,QAAA,gBACX/D,IAAA;MACIuB,SAAS,EAAC,SAAS;MACnBkF,uBAAuB,EAAE;QACrBC,MAAM,EAAEsE,QAAQ,GAAGhG,cAAc,GAAGY;MACxC;IAAE,CACL,CAAC,eACF5F,IAAA,SAAK,CAAC,eACNA,IAAA,CAACV,IAAI;MACD4L,OAAO,EAAE,SAAAA,QAAA,EAAM;QACXD,WAAW,CAAC,UAACE,CAAC;UAAA,OAAK,CAACA,CAAC;QAAA,EAAC;MAC1B,CAAE;MAAApH,QAAA,EAEDiH,QAAQ,GAAG,WAAW,GAAG;IAAW,CACnC,CAAC;EAAA,CACK,CAAC;AAEzB;AAEA,SAASzF,OAAOA,CAACR,KAAc,EAAE;EAC7B,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACe,UAAU,CAAC,GAAG,CAAC,IAAIf,KAAK,CAACqG,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC3E,OAAOrG,KAAK,CAACkB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC7B;EACA,OAAOlB,KAAK;AAChB;AAEA,IAAMsG,4BAA4B,GAAGlL,KAAK,CAAC,wBAAwB,CAAC;AAMpE,SAASqG,SAASA,CAAA8E,KAAA,EAAuC;EAAA,IAArCvH,QAAQ,GAAAuH,KAAA,CAARvH,QAAQ;IAAEuB,QAAQ,GAAAgG,KAAA,CAARhG,QAAQ;EAClC,IAAMiG,WAAW,GAAGnM,KAAK,CAACoM,MAAM,CAAiB,IAAI,CAAC;EACtD,IAAAC,gBAAA,GAA0BrM,KAAK,CAAC0L,QAAQ,CAAC,KAAK,CAAC;IAAAY,gBAAA,GAAAlD,cAAA,CAAAiD,gBAAA;IAAxCE,KAAK,GAAAD,gBAAA;IAAEE,QAAQ,GAAAF,gBAAA;EAEtBtM,KAAK,CAACyM,SAAS,CAAC,YAAM;IAAA,IAAAC,oBAAA;IAClB,IAAMC,MAAM,IAAAD,oBAAA,GAAGP,WAAW,CAACS,OAAO,cAAAF,oBAAA,uBAAnBA,oBAAA,CAAqBG,aAAa;IAEjD,SAASC,eAAeA,CAAA,EAAG;MACvBN,QAAQ,CAAC,IAAI,CAAC;IAClB;IACA,SAASO,cAAcA,CAACC,CAAa,EAAE;MACnC,IAAI,EAACL,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEM,QAAQ,CAACD,CAAC,CAACE,aAAoB,CAAC,GAAE;QAC3CV,QAAQ,CAAC,KAAK,CAAC;MACnB;IACJ;IACAG,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,gBAAgB,CAAC,WAAW,EAAEL,eAAe,CAAC;IACtDH,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,gBAAgB,CAAC,UAAU,EAAEJ,cAAc,CAAC;IAEpD,OAAO,YAAM;MACTJ,MAAM,aAANA,MAAM,eAANA,MAAM,CAAES,mBAAmB,CAAC,WAAW,EAAEN,eAAe,CAAC;MACzDH,MAAM,aAANA,MAAM,eAANA,MAAM,CAAES,mBAAmB,CAAC,UAAU,EAAEL,cAAc,CAAC;IAC3D,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBACIjM,KAAA;IAAM0I,GAAG,EAAE2C,WAAY;IAAAxH,QAAA,GAClBA,QAAQ,EACR4H,KAAK,IAAIrG,QAAQ,gBACdtF,IAAA,CAACX,eAAe;MACZkC,SAAS,EAAE8J,4BAA6B;MACxCoB,IAAI,EAAEnH,QAAS;MACfoH,IAAI,EAAE;IAAG,CACZ,CAAC,GACF,IAAI;EAAA,CACN,CAAC;AAEf"}
1
+ {"version":3,"names":["React","ClipboardButton","Link","Text","hammer","cn","DataTable","DataTypePopup","hasKey","MOVING","DataTableYT","jsx","_jsx","jsxs","_jsxs","block","INDEX_COLUMN","Symbol","NUMBER_OF_STRIPPED_LINES","MAX_NUMBER_OF_LINE_IS_DISPLAYED_IMMEDIATELY","rowKey","row","index","triggerWindowResize","window","dispatchEvent","Event","tableSettings","sortable","displayIndices","stripedRows","externalSort","stickyHead","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","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","children","key","sort","undefined","accessor","cells","arguments","Boolean","simple","sortAccessor","$sortValue","render","data","_value$$rawValue","_value$$fullFormatted","_ref2","value","formattedValue","Object","prototype","hasOwnProperty","call","$formattedValue","rawValue","unquote","$rawValue","$value","fullFormattedValue","$fullFormattedValue","strippedDown","$type","startsWith","lines","split","slice","join","isStrippedDown","additions","$additions","Fragment","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","footerData","settings","visibleRowIndex","mode","content","error","generateSortingFunction","order","compareValue","row1","row2","value1","value2","Number","isNaN","dataColumns","indexedData","_defineProperty","sortOrderArray","Array","isArray","sortColumns","reduce","obj","_ref6","columnId","sortFunctionDict","sortFunctions","keys","comparison","some","_ref7","_React$useState","useState","_React$useState2","showFull","setShowFull","_onClick","apply","toString","v","endsWith","cellCopyToClipboardClassName","_ref8","cellNodeRef","useRef","_React$useState3","_React$useState4","mount","setMount","useEffect","_cellNodeRef$current","parent","current","parentElement","handleMouseOver","handleMouseOut","e","contains","relatedTarget","addEventListener","removeEventListener","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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"}
@@ -17,7 +17,7 @@ import { getClusterUiConfig, isDeveloper } from '../../../../store/selectors/glo
17
17
  import { hideTabletCellBundleEditor, setBundleEditorController } from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';
18
18
  import { getBundleEditorData, getTabletBundlesWriteableByName } from '../../../../store/selectors/tablet_cell_bundles';
19
19
  import { getTabletCellBundleEditorState } from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';
20
- import { bundleEditorDict, createConfigurationList, createParams, getBundleControllerResource, getInitialFormValues, getResourceData, prepareSubmitBundle, simpleBundleValidate } from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';
20
+ import { bundleEditorDict, createConfigurationList, createParams, getBundleControllerResource, getInitialFormValues, getResourceData, instanceCountValidate, prepareSubmitBundle, simpleBundleValidate } from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';
21
21
  import UIFactory, { isAbcAllowed } from '../../../../UIFactory';
22
22
  import { makeLink } from '../../../../utils/utils';
23
23
  import { docsUrl } from '../../../../config';
@@ -56,15 +56,17 @@ export function BundleEditorDialog() {
56
56
  }();
57
57
  var _ref = function () {
58
58
  if (!bundleDefaultConfig) {
59
- return [[], []];
59
+ return [[], [], []];
60
60
  }
61
61
  var rpc_proxy_sizes = bundleDefaultConfig.rpc_proxy_sizes,
62
- tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes;
63
- return [createConfigurationList(rpc_proxy_sizes), createConfigurationList(tablet_node_sizes)];
62
+ tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes,
63
+ data_centers = bundleDefaultConfig.data_centers;
64
+ return [createConfigurationList(rpc_proxy_sizes), createConfigurationList(tablet_node_sizes), data_centers ? _toConsumableArray(Object.values(data_centers)) : []];
64
65
  }(),
65
- _ref2 = _slicedToArray(_ref, 2),
66
+ _ref2 = _slicedToArray(_ref, 3),
66
67
  rpcConfigurations = _ref2[0],
67
- nodeConfigurations = _ref2[1];
68
+ nodeConfigurations = _ref2[1],
69
+ dcConfigurations = _ref2[2];
68
70
  var renderGeneralTabs = {
69
71
  name: 'general',
70
72
  title: 'General',
@@ -149,7 +151,8 @@ export function BundleEditorDialog() {
149
151
  withoutDetailedBar: true,
150
152
  hasClear: true
151
153
  },
152
- validator: simpleBundleValidate
154
+ tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),
155
+ validator: instanceCountValidate(dcConfigurations)
153
156
  }, {
154
157
  type: 'bundle-table-field',
155
158
  name: 'rpc_proxy_resource_guarantee',
@@ -169,7 +172,8 @@ export function BundleEditorDialog() {
169
172
  withoutDetailedBar: true,
170
173
  hasClear: true
171
174
  },
172
- validator: simpleBundleValidate
175
+ tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),
176
+ validator: instanceCountValidate(dcConfigurations)
173
177
  }, {
174
178
  type: 'bundle-table-field',
175
179
  name: 'tablet_node_resource_guarantee',