ydb-embedded-ui 8.10.0 → 8.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  2. package/dist/components/JsonViewer/JsonViewer.d.ts +14 -0
  3. package/dist/components/JsonViewer/JsonViewer.js +174 -0
  4. package/dist/components/JsonViewer/JsonViewer.js.map +1 -0
  5. package/dist/components/JsonViewer/JsonViewer.scss +117 -0
  6. package/dist/components/JsonViewer/components/Cell.d.ts +16 -0
  7. package/dist/components/JsonViewer/components/Cell.js +103 -0
  8. package/dist/components/JsonViewer/components/Cell.js.map +1 -0
  9. package/dist/components/JsonViewer/components/Filter.d.ts +14 -0
  10. package/dist/components/JsonViewer/components/Filter.js +16 -0
  11. package/dist/components/JsonViewer/components/Filter.js.map +1 -0
  12. package/dist/components/JsonViewer/components/FullValueDialog.d.ts +8 -0
  13. package/dist/components/JsonViewer/components/FullValueDialog.js +10 -0
  14. package/dist/components/JsonViewer/components/FullValueDialog.js.map +1 -0
  15. package/dist/components/JsonViewer/components/HighlightedText.d.ts +15 -0
  16. package/dist/components/JsonViewer/components/HighlightedText.js +30 -0
  17. package/dist/components/JsonViewer/components/HighlightedText.js.map +1 -0
  18. package/dist/components/JsonViewer/components/ToggleCollapseButton.d.ts +8 -0
  19. package/dist/components/JsonViewer/components/ToggleCollapseButton.js +8 -0
  20. package/dist/components/JsonViewer/components/ToggleCollapseButton.js.map +1 -0
  21. package/dist/components/JsonViewer/constants.d.ts +1 -0
  22. package/dist/components/JsonViewer/constants.js +3 -0
  23. package/dist/components/JsonViewer/constants.js.map +1 -0
  24. package/dist/components/JsonViewer/i18n/en.json +17 -0
  25. package/dist/components/JsonViewer/i18n/index.d.ts +2 -0
  26. package/dist/components/{JSONTree → JsonViewer}/i18n/index.js +1 -1
  27. package/dist/components/JsonViewer/i18n/index.js.map +1 -0
  28. package/dist/components/JsonViewer/unipika/StructuredYsonTypes.d.ts +51 -0
  29. package/dist/components/JsonViewer/unipika/StructuredYsonTypes.js +2 -0
  30. package/dist/components/JsonViewer/unipika/StructuredYsonTypes.js.map +1 -0
  31. package/dist/components/JsonViewer/unipika/flattenUnipika.d.ts +44 -0
  32. package/dist/components/JsonViewer/unipika/flattenUnipika.js +254 -0
  33. package/dist/components/JsonViewer/unipika/flattenUnipika.js.map +1 -0
  34. package/dist/components/JsonViewer/unipika/unipika.d.ts +12 -0
  35. package/dist/components/JsonViewer/unipika/unipika.js +20 -0
  36. package/dist/components/JsonViewer/unipika/unipika.js.map +1 -0
  37. package/dist/components/JsonViewer/utils.d.ts +2 -0
  38. package/dist/components/JsonViewer/utils.js +5 -0
  39. package/dist/components/JsonViewer/utils.js.map +1 -0
  40. package/dist/components/MetricChart/reducer.d.ts +2 -2
  41. package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
  42. package/dist/containers/Cluster/i18n/en.json +1 -1
  43. package/dist/containers/Storage/Disks/Disks.d.ts +3 -1
  44. package/dist/containers/Storage/Disks/Disks.js +6 -6
  45. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  46. package/dist/containers/Storage/StorageGroups/columns/columns.js +2 -2
  47. package/dist/containers/Storage/StorageGroups/columns/columns.js.map +1 -1
  48. package/dist/containers/Storage/VDisks/VDisks.d.ts +3 -1
  49. package/dist/containers/Storage/VDisks/VDisks.js +2 -2
  50. package/dist/containers/Storage/VDisks/VDisks.js.map +1 -1
  51. package/dist/containers/Storage/utils/index.d.ts +2 -1
  52. package/dist/containers/Storage/utils/index.js +10 -2
  53. package/dist/containers/Storage/utils/index.js.map +1 -1
  54. package/dist/containers/Tablets/i18n/index.d.ts +1 -1
  55. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +4 -8
  56. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js.map +1 -1
  57. package/dist/containers/Tenant/Diagnostics/Describe/Describe.scss +0 -6
  58. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTree.js +3 -2
  59. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTree.js.map +1 -1
  60. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTree.scss +2 -31
  61. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -4
  62. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  63. package/dist/containers/Tenant/ObjectSummary/SchemaTree/RefreshTreeButton.js +4 -0
  64. package/dist/containers/Tenant/ObjectSummary/SchemaTree/RefreshTreeButton.js.map +1 -1
  65. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.scss +4 -0
  66. package/dist/containers/Tenant/Query/QueryResult/components/QueryJSONViewer/QueryJSONViewer.js +4 -2
  67. package/dist/containers/Tenant/Query/QueryResult/components/QueryJSONViewer/QueryJSONViewer.js.map +1 -1
  68. package/dist/containers/Tenant/Query/QueryResult/components/QueryJSONViewer/QueryJSONViewer.scss +5 -2
  69. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +4 -7
  70. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js.map +1 -1
  71. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.scss +15 -0
  72. package/dist/containers/Tenant/Schema/SchemaViewer/columns.js +9 -1
  73. package/dist/containers/Tenant/Schema/SchemaViewer/columns.js.map +1 -1
  74. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js +1 -3
  75. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js.map +1 -1
  76. package/dist/containers/Tenant/Tenant.js +2 -5
  77. package/dist/containers/Tenant/Tenant.js.map +1 -1
  78. package/dist/containers/Tenant/utils/schemaQueryTemplates.js +68 -27
  79. package/dist/containers/Tenant/utils/schemaQueryTemplates.js.map +1 -1
  80. package/dist/store/configureStore.d.ts +4 -4
  81. package/dist/store/defaultStore.d.ts +2 -2
  82. package/dist/store/reducers/api.d.ts +1 -1
  83. package/dist/store/reducers/api.js +10 -1
  84. package/dist/store/reducers/api.js.map +1 -1
  85. package/dist/store/reducers/authentication/authentication.d.ts +4 -4
  86. package/dist/store/reducers/cancelQuery.d.ts +2 -2
  87. package/dist/store/reducers/capabilities/capabilities.d.ts +16 -16
  88. package/dist/store/reducers/cluster/cluster.d.ts +5 -5
  89. package/dist/store/reducers/clusters/clusters.d.ts +2 -2
  90. package/dist/store/reducers/codeAssist/codeAssist.d.ts +6 -6
  91. package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +3 -3
  92. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +35 -35
  93. package/dist/store/reducers/heatmap.d.ts +2 -2
  94. package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
  95. package/dist/store/reducers/index.d.ts +3 -3
  96. package/dist/store/reducers/network/network.d.ts +2 -2
  97. package/dist/store/reducers/node/node.d.ts +3 -3
  98. package/dist/store/reducers/node/selectors.d.ts +1 -1
  99. package/dist/store/reducers/nodes/nodes.d.ts +2 -2
  100. package/dist/store/reducers/nodesList.d.ts +3 -3
  101. package/dist/store/reducers/operations.d.ts +4 -4
  102. package/dist/store/reducers/overview/overview.d.ts +3 -3
  103. package/dist/store/reducers/overview/overview.js +1 -1
  104. package/dist/store/reducers/overview/overview.js.map +1 -1
  105. package/dist/store/reducers/partitions/partitions.d.ts +2 -2
  106. package/dist/store/reducers/pdisk/pdisk.d.ts +2 -2
  107. package/dist/store/reducers/planToSvg.d.ts +2 -2
  108. package/dist/store/reducers/preview.d.ts +2 -2
  109. package/dist/store/reducers/preview.js +1 -1
  110. package/dist/store/reducers/preview.js.map +1 -1
  111. package/dist/store/reducers/query/query.d.ts +2 -2
  112. package/dist/store/reducers/schema/schema.d.ts +16 -16
  113. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +2 -2
  114. package/dist/store/reducers/schemaAcl/schemaAcl.js +1 -1
  115. package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
  116. package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
  117. package/dist/store/reducers/storage/prepareGroupsDisks.js +1 -3
  118. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  119. package/dist/store/reducers/storage/storage.d.ts +3 -3
  120. package/dist/store/reducers/storage/types.d.ts +2 -2
  121. package/dist/store/reducers/tableData.d.ts +1 -1
  122. package/dist/store/reducers/tableSchemaData.d.ts +2 -2
  123. package/dist/store/reducers/tablet.d.ts +7 -7
  124. package/dist/store/reducers/tablets.d.ts +3 -3
  125. package/dist/store/reducers/tenant/tenant.d.ts +3 -3
  126. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
  127. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
  128. package/dist/store/reducers/tenants/selectors.d.ts +21 -21
  129. package/dist/store/reducers/tenants/tenants.d.ts +2 -2
  130. package/dist/store/reducers/topic.d.ts +35 -35
  131. package/dist/store/reducers/vdisk/vdisk.d.ts +2 -2
  132. package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
  133. package/dist/store/reducers/viewSchema/viewSchema.js +1 -1
  134. package/dist/store/reducers/viewSchema/viewSchema.js.map +1 -1
  135. package/dist/{index.css → styles/index.scss} +4 -0
  136. package/dist/styles/mixins.scss +0 -91
  137. package/dist/styles/unipika.scss +19 -0
  138. package/dist/types/api/cluster.d.ts +2 -1
  139. package/dist/types/api/cluster.js.map +1 -1
  140. package/dist/types/api/storage.d.ts +6 -2
  141. package/package.json +2 -2
  142. package/dist/components/JSONTree/JSONTree.d.ts +0 -9
  143. package/dist/components/JSONTree/JSONTree.js +0 -23
  144. package/dist/components/JSONTree/JSONTree.js.map +0 -1
  145. package/dist/components/JSONTree/JSONTree.scss +0 -20
  146. package/dist/components/JSONTree/i18n/en.json +0 -4
  147. package/dist/components/JSONTree/i18n/index.d.ts +0 -2
  148. package/dist/components/JSONTree/i18n/index.js.map +0 -1
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "database" | "version" | "uptime" | "dc" | "links" | "no-data" | "rack" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "developer-ui" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "version" | "database" | "uptime" | "dc" | "links" | "no-data" | "rack" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "developer-ui" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type * as DT100 from '@gravity-ui/react-data-table';
3
+ import type { UnipikaSettings, UnipikaValue } from './unipika/StructuredYsonTypes';
4
+ import './JsonViewer.scss';
5
+ interface JsonViewerProps {
6
+ value: UnipikaValue;
7
+ unipikaSettings?: UnipikaSettings;
8
+ extraTools?: React.ReactNode;
9
+ tableSettings?: DT100.Settings;
10
+ search?: boolean;
11
+ collapsedInitially?: boolean;
12
+ }
13
+ export declare function JsonViewer({ tableSettings, value, unipikaSettings, search, extraTools, collapsedInitially, }: JsonViewerProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,174 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import DataTable from '@gravity-ui/react-data-table';
4
+ import { ActionTooltip, Button, Flex, Icon } from '@gravity-ui/uikit';
5
+ import { CASE_SENSITIVE_JSON_SEARCH } from '../../utils/constants';
6
+ import { useSetting } from '../../utils/hooks';
7
+ import { Cell } from './components/Cell';
8
+ import { Filter } from './components/Filter';
9
+ import { FullValueDialog } from './components/FullValueDialog';
10
+ import { block } from './constants';
11
+ import i18n from './i18n';
12
+ import { flattenUnipika } from './unipika/flattenUnipika';
13
+ import { unipika } from './unipika/unipika';
14
+ import ArrowDownToLineIcon from '@gravity-ui/icons/svgs/arrow-down-to-line.svg';
15
+ import ArrowUpFromLineIcon from '@gravity-ui/icons/svgs/arrow-up-from-line.svg';
16
+ import './JsonViewer.scss';
17
+ const SETTINGS = {
18
+ displayIndices: false,
19
+ dynamicRender: true,
20
+ sortable: false,
21
+ dynamicRenderMinSize: 100,
22
+ };
23
+ function getCollapsedState(value) {
24
+ const { data } = flattenUnipika(value);
25
+ const collapsedState = data.reduce((acc, { path }) => {
26
+ if (path) {
27
+ acc[path] = true;
28
+ }
29
+ return acc;
30
+ }, {});
31
+ return collapsedState;
32
+ }
33
+ function calculateState(value, collapsedState, filter, caseSensitive) {
34
+ const flattenResult = flattenUnipika(value, {
35
+ collapsedState: collapsedState,
36
+ filter,
37
+ caseSensitive,
38
+ });
39
+ return Object.assign({}, {
40
+ flattenResult,
41
+ matchedRows: Object.keys(flattenResult.searchIndex).map(Number),
42
+ });
43
+ }
44
+ export function JsonViewer({ tableSettings, value, unipikaSettings, search = true, extraTools, collapsedInitially, }) {
45
+ const [caseSensitiveSearch, setCaseSensitiveSearch] = useSetting(CASE_SENSITIVE_JSON_SEARCH, false);
46
+ const [collapsedState, setCollapsedState] = React.useState(() => {
47
+ if (collapsedInitially) {
48
+ return getCollapsedState(value);
49
+ }
50
+ return {};
51
+ });
52
+ const [filter, setFilter] = React.useState('');
53
+ const [state, setState] = React.useState(() => calculateState(value, collapsedState, filter, caseSensitiveSearch));
54
+ const [matchIndex, setMatchIndex] = React.useState(-1);
55
+ const [fullValue, setFullValue] = React.useState();
56
+ const dataTable = React.useRef(null);
57
+ const searchRef = React.useRef(null);
58
+ const normalizedTableSettings = React.useMemo(() => {
59
+ return {
60
+ ...SETTINGS,
61
+ dynamicInnerRef: dataTable,
62
+ ...tableSettings,
63
+ };
64
+ }, [tableSettings]);
65
+ const renderCell = ({ row, index }) => {
66
+ const { flattenResult: { searchIndex }, } = state;
67
+ return (_jsx(Cell, { matched: searchIndex[index], row: row, settings: unipikaSettings, onToggleCollapse: onTogglePathCollapse, filter: filter, showFullText: onShowFullText, index: index }));
68
+ };
69
+ const onTogglePathCollapse = (path) => {
70
+ const newCollapsedState = { ...collapsedState };
71
+ if (newCollapsedState[path]) {
72
+ delete newCollapsedState[path];
73
+ }
74
+ else {
75
+ newCollapsedState[path] = true;
76
+ }
77
+ updateState({ collapsedState: newCollapsedState });
78
+ };
79
+ const updateState = (changedState, cb) => {
80
+ const { collapsedState: newCollapsedState, matchIndex: newMatchIndex, filter: newFilter, caseSensitive: newCaseSensitive, } = changedState;
81
+ if (newCollapsedState !== undefined) {
82
+ setCollapsedState(newCollapsedState);
83
+ }
84
+ if (newMatchIndex !== undefined) {
85
+ setMatchIndex(newMatchIndex);
86
+ }
87
+ if (newFilter !== undefined) {
88
+ setFilter(newFilter);
89
+ }
90
+ const caseSensitive = newCaseSensitive !== null && newCaseSensitive !== void 0 ? newCaseSensitive : caseSensitiveSearch;
91
+ setState(calculateState(value, newCollapsedState !== null && newCollapsedState !== void 0 ? newCollapsedState : collapsedState, newFilter !== null && newFilter !== void 0 ? newFilter : filter, caseSensitive));
92
+ cb === null || cb === void 0 ? void 0 : cb();
93
+ };
94
+ const renderTable = () => {
95
+ const columns = [
96
+ {
97
+ name: 'content',
98
+ render: renderCell,
99
+ header: null,
100
+ },
101
+ ];
102
+ const { flattenResult: { data }, } = state;
103
+ return (_jsx("div", { className: block('content'), children: _jsx(DataTable, { columns: columns, data: data, theme: 'yson', settings: normalizedTableSettings, rowClassName: () => block('row') }) }));
104
+ };
105
+ const onExpandAll = () => {
106
+ updateState({ collapsedState: {} }, () => {
107
+ onNextMatch(null, 0);
108
+ });
109
+ };
110
+ const onCollapseAll = () => {
111
+ const collapsedState = getCollapsedState(value);
112
+ updateState({ collapsedState });
113
+ };
114
+ const onFilterChange = (filter) => {
115
+ updateState({ filter, matchIndex: 0 }, () => {
116
+ onNextMatch(null, 0);
117
+ });
118
+ };
119
+ const onNextMatch = (_event, diff = 1) => {
120
+ var _a, _b;
121
+ const { matchedRows } = state;
122
+ if (!matchedRows.length) {
123
+ return;
124
+ }
125
+ let index = (matchIndex + diff) % matchedRows.length;
126
+ if (index < 0) {
127
+ index = matchedRows.length + index;
128
+ }
129
+ if (index !== matchIndex) {
130
+ setMatchIndex(index);
131
+ }
132
+ (_a = dataTable.current) === null || _a === void 0 ? void 0 : _a.scrollTo(matchedRows[index] - 6);
133
+ (_b = searchRef.current) === null || _b === void 0 ? void 0 : _b.focus();
134
+ };
135
+ const onPrevMatch = () => {
136
+ onNextMatch(null, -1);
137
+ };
138
+ const onEnterKeyDown = (e) => {
139
+ if (e.key !== 'Enter') {
140
+ return;
141
+ }
142
+ if (e.shiftKey || e.ctrlKey) {
143
+ onPrevMatch();
144
+ }
145
+ else {
146
+ onNextMatch(null);
147
+ }
148
+ };
149
+ const handleUpdateCaseSensitive = () => {
150
+ const newCaseSensitive = !caseSensitiveSearch;
151
+ setCaseSensitiveSearch(newCaseSensitive);
152
+ updateState({ caseSensitive: newCaseSensitive });
153
+ };
154
+ const renderToolbar = () => {
155
+ return (_jsxs(Flex, { gap: 2, wrap: "nowrap", className: block('toolbar'), children: [_jsxs(Flex, { gap: 1, wrap: "nowrap", children: [_jsx(ActionTooltip, { title: i18n('action_expand-all'), children: _jsx(Button, { onClick: onExpandAll, view: "flat-secondary", children: _jsx(Icon, { data: ArrowDownToLineIcon }) }) }), _jsx(ActionTooltip, { title: i18n('action_collapse-all'), children: _jsx(Button, { onClick: onCollapseAll, view: "flat-secondary", children: _jsx(Icon, { data: ArrowUpFromLineIcon }) }) })] }), search && (_jsx(Filter, { onUpdate: onFilterChange, matchIndex: matchIndex, matchedRows: state.matchedRows, value: filter, ref: searchRef, onKeyDown: onEnterKeyDown, onNextMatch: onNextMatch, onPrevMatch: onPrevMatch, caseSensitive: caseSensitiveSearch, onUpdateCaseSensitive: handleUpdateCaseSensitive })), _jsx("span", { className: block('extra-tools'), children: extraTools })] }));
156
+ };
157
+ const onShowFullText = (index) => {
158
+ const { flattenResult: { searchIndex, data }, } = state;
159
+ setFullValue({
160
+ value: data[index].value,
161
+ searchInfo: searchIndex[index],
162
+ });
163
+ };
164
+ const onHideFullValue = () => {
165
+ setFullValue(undefined);
166
+ };
167
+ const renderFullValueModal = () => {
168
+ const { value, searchInfo } = fullValue !== null && fullValue !== void 0 ? fullValue : {};
169
+ const tmp = unipika.format(value, { ...unipikaSettings, asHTML: false });
170
+ return (value && (_jsx(FullValueDialog, { onClose: onHideFullValue, starts: (searchInfo === null || searchInfo === void 0 ? void 0 : searchInfo.valueMatch) || [], text: tmp.substring(1, tmp.length - 1), length: filter.length })));
171
+ };
172
+ return (_jsxs("div", { className: block(), children: [renderToolbar(), renderTable(), renderFullValueModal()] }));
173
+ }
174
+ //# sourceMappingURL=JsonViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonViewer.js","sourceRoot":"","sources":["../../../src/components/JsonViewer/JsonViewer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ @use '../../styles/mixins.scss';
2
+
3
+ .ydb-json-viewer {
4
+ --data-table-row-height: 20px;
5
+ --toolbar-background-color: var(--g-color-base-background);
6
+
7
+ &__toolbar {
8
+ position: sticky;
9
+ z-index: 2;
10
+ top: 0;
11
+ left: 0;
12
+
13
+ padding-bottom: var(--g-spacing-2);
14
+
15
+ background-color: var(--toolbar-background-color);
16
+ }
17
+
18
+ &__content {
19
+ font-family: var(--g-font-family-monospace);
20
+ }
21
+
22
+ &__row {
23
+ height: 1em;
24
+ }
25
+
26
+ &__cell {
27
+ position: relative;
28
+
29
+ white-space: nowrap !important;
30
+ * {
31
+ white-space: nowrap !important;
32
+ }
33
+ }
34
+
35
+ &__collapsed {
36
+ position: absolute;
37
+
38
+ margin-top: -2px;
39
+ margin-left: -3ex;
40
+ }
41
+
42
+ &__match-counter {
43
+ align-content: center;
44
+
45
+ text-wrap: nowrap;
46
+
47
+ color: var(--g-color-text-secondary);
48
+ }
49
+
50
+ &__key {
51
+ color: var(--g-color-text-misc);
52
+ }
53
+
54
+ &__value {
55
+ &_type {
56
+ &_string {
57
+ color: var(--color-unipika-string);
58
+ }
59
+ &_boolean {
60
+ color: var(--color-unipika-bool);
61
+ }
62
+ &_null {
63
+ color: var(--color-unipika-null);
64
+ }
65
+ &_int64 {
66
+ color: var(--color-unipika-int);
67
+ }
68
+ &_double {
69
+ color: var(--color-unipika-float);
70
+ }
71
+ }
72
+ }
73
+
74
+ &__filter {
75
+ width: 300px;
76
+ }
77
+
78
+ &__filtered {
79
+ &_highlighted {
80
+ background-color: var(--g-color-base-generic-medium);
81
+ }
82
+ &_clickable {
83
+ cursor: pointer;
84
+
85
+ color: var(--g-color-text-info);
86
+ }
87
+ }
88
+
89
+ &__match-btn {
90
+ margin-left: -1px;
91
+ }
92
+
93
+ &__full-value {
94
+ overflow: hidden auto;
95
+
96
+ max-width: 90vw;
97
+ max-height: 90vh;
98
+ margin: var(--g-spacing-3) 0;
99
+
100
+ word-break: break-all;
101
+ @include mixins.body-2-typography();
102
+ }
103
+
104
+ &__extra-tools {
105
+ margin-left: 1ex;
106
+ }
107
+
108
+ .data-table__head {
109
+ display: none;
110
+ }
111
+
112
+ .data-table__td {
113
+ overflow: visible;
114
+
115
+ padding: 0;
116
+ }
117
+ }
@@ -0,0 +1,16 @@
1
+ import type { UnipikaSettings } from '../unipika/StructuredYsonTypes';
2
+ import type { SearchInfo, UnipikaFlattenTreeItem } from '../unipika/flattenUnipika';
3
+ interface CellProps {
4
+ matched: SearchInfo;
5
+ row: UnipikaFlattenTreeItem;
6
+ settings?: UnipikaSettings;
7
+ collapsedState?: {
8
+ readonly [key: string]: boolean;
9
+ };
10
+ onToggleCollapse: (path: string) => void;
11
+ filter?: string;
12
+ index: number;
13
+ showFullText: (index: number) => void;
14
+ }
15
+ export declare function Cell(props: CellProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,103 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Icon } from '@gravity-ui/uikit';
4
+ import fill_ from 'lodash/fill';
5
+ import { MultiHighlightedText } from '../components/HighlightedText';
6
+ import { ToggleCollapseButton } from '../components/ToggleCollapseButton';
7
+ import { block } from '../constants';
8
+ import i18n from '../i18n';
9
+ import { defaultUnipikaSettings, unipika } from '../unipika/unipika';
10
+ import { getHightLightedClassName } from '../utils';
11
+ import ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';
12
+ export function Cell(props) {
13
+ const { row: { level, open, close, key, value, hasDelimiter, path, collapsed, depth }, settings, onToggleCollapse, matched, filter, showFullText, index, } = props;
14
+ const handleToggleCollapse = React.useCallback(() => {
15
+ if (!path) {
16
+ return;
17
+ }
18
+ onToggleCollapse(path);
19
+ }, [path, onToggleCollapse]);
20
+ const handleShowFullText = React.useCallback(() => {
21
+ showFullText(index);
22
+ }, [showFullText, index]);
23
+ return (_jsxs("div", { className: block('cell', 'unipika'), children: [getLevelOffsetSpaces(level), path && (_jsx(ToggleCollapseButton, { collapsed: collapsed, path: path, onToggle: handleToggleCollapse })), _jsx(Key, { text: key, settings: settings, matched: matched === null || matched === void 0 ? void 0 : matched.keyMatch, filter: filter }), open && _jsx(OpenClose, { type: open, settings: settings }), depth !== undefined && (_jsx("span", { className: 'unipika', children: i18n('context_items-count', { count: depth }) })), value !== undefined && (_jsx(Value, { text: value, settings: settings, matched: matched === null || matched === void 0 ? void 0 : matched.valueMatch, filter: filter, showFullText: handleShowFullText })), collapsed && depth === undefined && _jsx("span", { className: 'unipika', children: "..." }), close && _jsx(OpenClose, { type: close, settings: settings, close: true }), hasDelimiter && _jsx(AdditionalText, { text: ',' })] }));
24
+ }
25
+ function Key(props) {
26
+ const text = renderKeyWithFilter(props);
27
+ return text ? (_jsxs(React.Fragment, { children: [text, _jsx(AdditionalText, { text: ': ' })] })) : null;
28
+ }
29
+ function Value(props) {
30
+ var _a;
31
+ return (_jsx(React.Fragment, { children: renderValueWithFilter(props, block('value', { type: (_a = props.text) === null || _a === void 0 ? void 0 : _a.$type })) }));
32
+ }
33
+ function renderValueWithFilter(props, className) {
34
+ var _a;
35
+ if ('string' === ((_a = props.text) === null || _a === void 0 ? void 0 : _a.$type)) {
36
+ return renderStringWithFilter(props, className, 100);
37
+ }
38
+ return renderWithFilter(props, block('value'));
39
+ }
40
+ function renderStringWithFilter(props, className, maxWidth = Infinity) {
41
+ const { text, settings = defaultUnipikaSettings, matched = [], filter, showFullText } = props;
42
+ const tmp = unipika.format(text, { ...settings, asHTML: false });
43
+ const length = tmp.length;
44
+ const visible = tmp.substring(1, Math.min(length - 1, maxWidth + 1));
45
+ const truncated = visible.length < tmp.length - 2;
46
+ let hasHiddenMatch = false;
47
+ if (truncated) {
48
+ for (let i = matched.length - 1; i >= 0; --i) {
49
+ if (visible.length < matched[i] + ((filter === null || filter === void 0 ? void 0 : filter.length) || 0)) {
50
+ hasHiddenMatch = true;
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ return (_jsxs("span", { children: [_jsx(MultiHighlightedText, { className: getHightLightedClassName(className), text: visible, starts: matched, length: filter === null || filter === void 0 ? void 0 : filter.length }), truncated && (_jsxs("span", { className: block('filtered', {
56
+ highlighted: hasHiddenMatch,
57
+ clickable: true,
58
+ }), onClick: showFullText, children: ['\u2026', _jsx(Icon, { data: ArrowUpRightFromSquareIcon })] }))] }));
59
+ }
60
+ function renderKeyWithFilter(props) {
61
+ if (!(props === null || props === void 0 ? void 0 : props.text)) {
62
+ return null;
63
+ }
64
+ return renderStringWithFilter(props, block('key'));
65
+ }
66
+ function renderWithFilter(props, className) {
67
+ const { text, filter, settings, matched } = props;
68
+ let res = null;
69
+ if (matched && filter) {
70
+ const tmp = unipika.format(text, { ...settings, asHTML: false });
71
+ res = (_jsx(MultiHighlightedText, { className: getHightLightedClassName(className), text: tmp, starts: matched, length: filter === null || filter === void 0 ? void 0 : filter.length }));
72
+ }
73
+ else {
74
+ res = text ? formatValue(text, settings) : undefined;
75
+ }
76
+ return res ? res : null;
77
+ }
78
+ function AdditionalText({ text }) {
79
+ return _jsx("span", { children: text });
80
+ }
81
+ function OpenClose(props) {
82
+ const { type, close } = props;
83
+ switch (type) {
84
+ case 'array':
85
+ return _jsx(AdditionalText, { text: close ? ']' : '[' });
86
+ case 'object':
87
+ return _jsx(AdditionalText, { text: close ? '}' : '{' });
88
+ }
89
+ }
90
+ function formatValue(value, settings = defaultUnipikaSettings) {
91
+ const __html = unipika.formatValue(value, { ...defaultUnipikaSettings, ...settings }, 0);
92
+ return _jsx("span", { className: 'unipika', dangerouslySetInnerHTML: { __html } });
93
+ }
94
+ const OFFSETS_BY_LEVEL = {};
95
+ function getLevelOffsetSpaces(level) {
96
+ let res = OFFSETS_BY_LEVEL[level];
97
+ if (!res) {
98
+ const __html = fill_(Array(level * 3), '&nbsp;').join('');
99
+ res = OFFSETS_BY_LEVEL[level] = _jsx("span", { dangerouslySetInnerHTML: { __html } });
100
+ }
101
+ return res;
102
+ }
103
+ //# sourceMappingURL=Cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cell.js","sourceRoot":"","sources":["../../../../src/components/JsonViewer/components/Cell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface FilterProps {
3
+ matchIndex: number;
4
+ matchedRows: number[];
5
+ value: string;
6
+ onUpdate: (value: string) => void;
7
+ onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
+ onNextMatch?: (_event: unknown, diff?: number) => void;
9
+ onPrevMatch?: (_event: unknown, diff?: number) => void;
10
+ caseSensitive?: boolean;
11
+ onUpdateCaseSensitive: VoidFunction;
12
+ }
13
+ export declare const Filter: React.ForwardRefExoticComponent<FilterProps & React.RefAttributes<HTMLInputElement>>;
14
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { ActionTooltip, Button, Flex, Icon, TextInput } from '@gravity-ui/uikit';
4
+ import { block } from '../constants';
5
+ import i18n from '../i18n';
6
+ import ChevronDownIcon from '@gravity-ui/icons/svgs/chevron-down.svg';
7
+ import ChevronUpIcon from '@gravity-ui/icons/svgs/chevron-up.svg';
8
+ import FontCaseIcon from '@gravity-ui/icons/svgs/font-case.svg';
9
+ export const Filter = React.forwardRef(function Filter({ matchIndex, matchedRows, value, onUpdate, onKeyDown, onNextMatch, onPrevMatch, caseSensitive, onUpdateCaseSensitive, }, ref) {
10
+ const count = matchedRows.length;
11
+ const matchPosition = count ? 1 + (matchIndex % count) : 0;
12
+ return (_jsxs(React.Fragment, { children: [_jsx(TextInput, { ref: ref, className: block('filter'), hasClear: true, size: "m", type: "text", value: value, placeholder: i18n('description_search'), onUpdate: onUpdate, autoFocus: false, onKeyDown: onKeyDown, endContent: _jsx(ActionTooltip, { title: caseSensitive
13
+ ? i18n('context_case-sensitive-search')
14
+ : i18n('context_case-sensitive-search-disabled'), children: _jsx(Button, { view: "flat-secondary", onClick: onUpdateCaseSensitive, selected: caseSensitive, children: _jsx(Icon, { data: FontCaseIcon }) }) }) }), _jsxs(Flex, { gap: 1, wrap: "nowrap", children: [_jsx(Button, { className: block('match-btn'), view: "flat-secondary", title: i18n('action_next'), onClick: onNextMatch, disabled: !count, children: _jsx(Icon, { data: ChevronDownIcon }) }), _jsx(Button, { className: block('match-btn'), view: "flat-secondary", title: i18n('action_back'), onClick: onPrevMatch, disabled: !count, children: _jsx(Icon, { data: ChevronUpIcon }) })] }), _jsxs("span", { className: block('match-counter'), title: i18n('description_matched-rows'), children: [matchPosition, " / ", count || 0] })] }));
15
+ });
16
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../../src/components/JsonViewer/components/Filter.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,eAAe,MAAM,yCAAyC,CAAC;AACtE,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAClE,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAchE,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAgC,SAAS,MAAM,CACjF,EACI,UAAU,EACV,WAAW,EACX,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,qBAAqB,GACxB,EACD,GAAG;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,SAAS,IACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,EAC1B,QAAQ,QACR,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,KAAK,EAChB,SAAS,EAAE,SAAS,EACpB,UAAU,EACN,KAAC,aAAa,IACV,KAAK,EACD,aAAa;wBACT,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC;wBACvC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,YAGxD,KAAC,MAAM,IACH,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,aAAa,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,GAAI,GACvB,GACG,GAEtB,EACF,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,aACvB,KAAC,MAAM,IACH,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAC7B,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAC1B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,KAAK,YAEhB,KAAC,IAAI,IAAC,IAAI,EAAE,eAAe,GAAI,GAC1B,EACT,KAAC,MAAM,IACH,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAC7B,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAC1B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,KAAK,YAEhB,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,GAAI,GACxB,IACN,EACP,gBAAM,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,aAC3E,aAAa,SAAK,KAAK,IAAI,CAAC,IAC1B,IACM,CACpB,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface FullValueDialogProps {
2
+ onClose: () => void;
3
+ length: number;
4
+ text: string;
5
+ starts: number[];
6
+ }
7
+ export declare function FullValueDialog({ onClose, text, starts, length }: FullValueDialogProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Dialog, Flex } from '@gravity-ui/uikit';
3
+ import { block } from '../constants';
4
+ import i18n from '../i18n';
5
+ import { getHightLightedClassName } from '../utils';
6
+ import { MultiHighlightedText } from './HighlightedText';
7
+ export function FullValueDialog({ onClose, text, starts, length }) {
8
+ return (_jsxs(Dialog, { open: true, onClose: onClose, children: [_jsx(Dialog.Header, { caption: i18n('description_full-value') }), _jsx(Dialog.Divider, {}), _jsx(Dialog.Body, { children: _jsx(Flex, { direction: "column", gap: 2, width: "70vw", maxHeight: "80vh", children: _jsx("div", { className: block('full-value'), children: _jsx(MultiHighlightedText, { className: getHightLightedClassName(), starts: starts, text: text, length: length }) }) }) })] }));
9
+ }
10
+ //# sourceMappingURL=FullValueDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullValueDialog.js","sourceRoot":"","sources":["../../../../src/components/JsonViewer/components/FullValueDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAC,wBAAwB,EAAC,MAAM,UAAU,CAAC;AAElD,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AASvD,MAAM,UAAU,eAAe,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAuB;IACjF,OAAO,CACH,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,aAChC,KAAC,MAAM,CAAC,MAAM,IAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,GAAI,EAC1D,KAAC,MAAM,CAAC,OAAO,KAAG,EAClB,KAAC,MAAM,CAAC,IAAI,cACR,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,YAC1D,cAAK,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,YAC/B,KAAC,oBAAoB,IACjB,SAAS,EAAE,wBAAwB,EAAE,EACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GAChB,GACA,GACH,GACG,IACT,CACZ,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { NoStrictEntityMods } from '@bem-react/classname';
2
+ interface Props {
3
+ className: (mods?: NoStrictEntityMods) => string;
4
+ text: string;
5
+ start?: number;
6
+ length?: number;
7
+ hasComa?: boolean;
8
+ markBegin?: boolean;
9
+ }
10
+ export default function HighlightedText({ className, text, start, length, hasComa }: Props): import("react/jsx-runtime").JSX.Element;
11
+ interface MultiProps extends Omit<Props, 'start'> {
12
+ starts: Array<number>;
13
+ }
14
+ export declare function MultiHighlightedText({ className, text, starts, length, hasComa }: MultiProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ export default function HighlightedText({ className, text, start, length, hasComa }) {
4
+ const comma = hasComa ? _jsx(React.Fragment, { children: ",\u00A0" }) : null;
5
+ if (length && typeof start === 'number' && start >= 0 && start < text.length) {
6
+ const begin = text.substring(0, start);
7
+ const highlighted = text.substring(start, start + length);
8
+ const end = text.substring(start + length);
9
+ return (_jsxs(React.Fragment, { children: [begin && _jsx("span", { className: className(), children: begin }), _jsx("span", { className: className({ highlighted: true }), children: highlighted }), end && _jsx("span", { className: className(), children: end }), comma] }));
10
+ }
11
+ return (_jsxs("span", { className: className(), children: [text, comma] }));
12
+ }
13
+ export function MultiHighlightedText({ className, text, starts, length, hasComa }) {
14
+ if (!length || !starts.length) {
15
+ const comma = hasComa ? _jsx(React.Fragment, { children: ",\u00A0" }) : null;
16
+ return (_jsxs("span", { className: className(), children: [text, comma] }));
17
+ }
18
+ const substrs = [];
19
+ for (let i = 0, pos = 0; i < starts.length && pos < text.length; ++i) {
20
+ const isLast = i === starts.length - 1;
21
+ const to = starts[i] + (isLast ? text.length : length);
22
+ const substr = text.substring(pos, to);
23
+ if (substr) {
24
+ substrs.push(_jsx(HighlightedText, { className: className, text: substr, start: starts[i] - pos, length: length, hasComa: isLast && hasComa }));
25
+ }
26
+ pos = to;
27
+ }
28
+ return _jsx(React.Fragment, { children: substrs });
29
+ }
30
+ //# sourceMappingURL=HighlightedText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HighlightedText.js","sourceRoot":"","sources":["../../../../src/components/JsonViewer/components/HighlightedText.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAQ;IACpF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAC,KAAK,CAAC,QAAQ,0BAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,IAAI,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;QAE3C,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACV,KAAK,IAAI,eAAM,SAAS,EAAE,SAAS,EAAE,YAAG,KAAK,GAAQ,EACtD,eAAM,SAAS,EAAE,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,YAAG,WAAW,GAAQ,EACpE,GAAG,IAAI,eAAM,SAAS,EAAE,SAAS,EAAE,YAAG,GAAG,GAAQ,EACjD,KAAK,IACO,CACpB,CAAC;IACN,CAAC;IAED,OAAO,CACH,gBAAM,SAAS,EAAE,SAAS,EAAE,aACvB,IAAI,EACJ,KAAK,IACH,CACV,CAAC;AACN,CAAC;AAMD,MAAM,UAAU,oBAAoB,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAa;IACvF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAC,KAAK,CAAC,QAAQ,0BAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,OAAO,CACH,gBAAM,SAAS,EAAE,SAAS,EAAE,aACvB,IAAI,EACJ,KAAK,IACH,CACV,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CACR,KAAC,eAAe,IACZ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,IAAI,OAAO,GAC5B,CACL,CAAC;QACN,CAAC;QACD,GAAG,GAAG,EAAE,CAAC;IACb,CAAC;IACD,OAAO,KAAC,KAAK,CAAC,QAAQ,cAAE,OAAO,GAAkB,CAAC;AACtD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { UnipikaFlattenTreeItem } from '../unipika/flattenUnipika';
2
+ interface ToggleCollapseProps {
3
+ collapsed?: boolean;
4
+ path?: UnipikaFlattenTreeItem['path'];
5
+ onToggle: () => void;
6
+ }
7
+ export declare function ToggleCollapseButton(props: ToggleCollapseProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '@gravity-ui/uikit';
3
+ import { block } from '../constants';
4
+ export function ToggleCollapseButton(props) {
5
+ const { collapsed, onToggle, path } = props;
6
+ return (_jsx("span", { title: path, className: block('collapsed'), children: _jsx(Button, { onClick: onToggle, view: "flat-secondary", size: 'xs', children: _jsx(Button.Icon, { children: _jsx("span", { className: 'unipika', children: collapsed ? '[+]' : '[-]' }) }) }) }));
7
+ }
8
+ //# sourceMappingURL=ToggleCollapseButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleCollapseButton.js","sourceRoot":"","sources":["../../../../src/components/JsonViewer/components/ToggleCollapseButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AASnC,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC3D,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;IAC1C,OAAO,CACH,eAAM,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,YAC5C,KAAC,MAAM,IAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAE,IAAI,YACvD,KAAC,MAAM,CAAC,IAAI,cACR,eAAM,SAAS,EAAE,SAAS,YAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,GACpD,GACT,GACN,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const block: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,3 @@
1
+ import { cn } from '../../utils/cn';
2
+ export const block = cn('ydb-json-viewer');
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/JsonViewer/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ {
2
+ "action_collapse-all": "Collapse all",
3
+ "action_expand-all": "Expand all",
4
+ "action_next": "Next",
5
+ "action_back": "Back",
6
+ "description_search": "Search...",
7
+ "description_matched-rows": "Matched rows",
8
+ "description_full-value": "Full value",
9
+ "context_case-sensitive-search": "Case sensitive search enadled",
10
+ "context_case-sensitive-search-disabled": "Case sensitive search disabled",
11
+ "context_items-count": [
12
+ " {{count}} item ",
13
+ " {{count}} items ",
14
+ " {{count}} items ",
15
+ " {{count}} items "
16
+ ]
17
+ }