@ytsaurus/ui 1.12.0 → 1.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js +19 -4
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js +19 -4
- package/build/esm/ui/pages/query-tracker/QueryResultsView/YQLTable/YQLTable.js.map +1 -1
- package/dist/public/build/assets-manifest.json +6 -6
- package/dist/public/build/js/869.c0b556ac.chunk.js +3 -0
- package/dist/public/build/js/869.c0b556ac.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.9543184a.js → runtime.6c8d85d3.js} +2 -2
- package/dist/public/build/js/{runtime.9543184a.js.map → runtime.6c8d85d3.js.map} +1 -1
- package/dist/public/build/manifest.json +4 -4
- package/package.json +2 -2
- package/dist/public/build/js/869.4b883a30.chunk.js +0 -3
- package/dist/public/build/js/869.4b883a30.chunk.js.map +0 -1
- /package/dist/public/build/js/{869.4b883a30.chunk.js.LICENSE.txt → 869.c0b556ac.chunk.js.LICENSE.txt} +0 -0
@@ -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
|
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\"><unsupported data type></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\"><unsupported data type></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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"}
|
@@ -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
|
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\"><unsupported data type></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\"><unsupported data type></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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"}
|
@@ -46,7 +46,7 @@
|
|
46
46
|
"main": {
|
47
47
|
"assets": {
|
48
48
|
"js": [
|
49
|
-
"js/runtime.
|
49
|
+
"js/runtime.6c8d85d3.js",
|
50
50
|
"js/vendors.75563cec.js",
|
51
51
|
"js/main.69fdeec5.js"
|
52
52
|
],
|
@@ -82,9 +82,9 @@
|
|
82
82
|
"js/64.73cd3d66.chunk.js": "js/64.73cd3d66.chunk.js",
|
83
83
|
"js/719.a72dd230.chunk.js": "js/719.a72dd230.chunk.js",
|
84
84
|
"js/719.a72dd230.chunk.js.map": "js/719.a72dd230.chunk.js.map",
|
85
|
-
"js/869.
|
86
|
-
"js/869.
|
87
|
-
"js/869.
|
85
|
+
"js/869.c0b556ac.chunk.js": "js/869.c0b556ac.chunk.js",
|
86
|
+
"js/869.c0b556ac.chunk.js.LICENSE.txt": "js/869.c0b556ac.chunk.js.LICENSE.txt",
|
87
|
+
"js/869.c0b556ac.chunk.js.map": "js/869.c0b556ac.chunk.js.map",
|
88
88
|
"js/89.6ea87438.chunk.js": "js/89.6ea87438.chunk.js",
|
89
89
|
"js/89.6ea87438.chunk.js.map": "js/89.6ea87438.chunk.js.map",
|
90
90
|
"js/925.d1733b8a.chunk.js": "js/925.d1733b8a.chunk.js",
|
@@ -100,7 +100,7 @@
|
|
100
100
|
"js/979.0e3142c0.chunk.js.map": "js/979.0e3142c0.chunk.js.map",
|
101
101
|
"js/main.69fdeec5.js.LICENSE.txt": "js/main.69fdeec5.js.LICENSE.txt",
|
102
102
|
"js/main.69fdeec5.js.map": "js/main.69fdeec5.js.map",
|
103
|
-
"js/runtime.
|
103
|
+
"js/runtime.6c8d85d3.js.map": "js/runtime.6c8d85d3.js.map",
|
104
104
|
"js/vendors.75563cec.js.LICENSE.txt": "js/vendors.75563cec.js.LICENSE.txt",
|
105
105
|
"js/vendors.75563cec.js.map": "js/vendors.75563cec.js.map",
|
106
106
|
"js/vis-network.b367d390.chunk.js.LICENSE.txt": "js/vis-network.b367d390.chunk.js.LICENSE.txt",
|
@@ -110,7 +110,7 @@
|
|
110
110
|
"json.5239aa2e.worker.js.map": "json.5239aa2e.worker.js.map",
|
111
111
|
"main.css": "css/main.136a49c7.css",
|
112
112
|
"main.js": "js/main.69fdeec5.js",
|
113
|
-
"runtime.js": "js/runtime.
|
113
|
+
"runtime.js": "js/runtime.6c8d85d3.js",
|
114
114
|
"vendors.js": "js/vendors.75563cec.js",
|
115
115
|
"vis-network.js": "js/vis-network.b367d390.chunk.js"
|
116
116
|
}
|