@ytsaurus/components 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -148
- package/README.ru.md +165 -0
- package/build/esm/api/navigation/helpers/getTableTypeByAttributes.js +1 -1
- package/build/esm/api/navigation/helpers/getTableTypeByAttributes.js.map +1 -1
- package/build/esm/api/navigation/loadFolderByPath.js +1 -1
- package/build/esm/api/navigation/loadFolderByPath.js.map +1 -1
- package/build/esm/api/navigation/loadNodeByPath.js +1 -1
- package/build/esm/api/navigation/loadNodeByPath.js.map +1 -1
- package/build/esm/api/navigation/loadTableAttributesByPath.d.ts +2 -2
- package/build/esm/api/navigation/loadTableAttributesByPath.d.ts.map +1 -1
- package/build/esm/api/navigation/loadTableAttributesByPath.js +1 -1
- package/build/esm/api/navigation/loadTableAttributesByPath.js.map +1 -1
- package/build/esm/api/navigation/table.d.ts +0 -30
- package/build/esm/api/navigation/table.d.ts.map +1 -1
- package/build/esm/api/navigation/table.js +0 -46
- package/build/esm/api/navigation/table.js.map +1 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.d.ts +1 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.d.ts +22 -0
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.d.ts.map +1 -0
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.js +20 -0
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.js.map +1 -0
- package/build/esm/components/ClipboardButton/__tests__/ClipboardButton.visual.test.js +31 -0
- package/build/esm/components/ClipboardButton/__tests__/ClipboardButton.visual.test.js.map +1 -0
- package/build/esm/components/ColumnCell/ColumnCell.d.ts +7 -5
- package/build/esm/components/ColumnCell/ColumnCell.d.ts.map +1 -1
- package/build/esm/components/ColumnCell/ColumnCell.js +25 -21
- package/build/esm/components/ColumnCell/ColumnCell.js.map +1 -1
- package/build/esm/components/ColumnCell/ColumnCell.stories.d.ts +64 -0
- package/build/esm/components/ColumnCell/ColumnCell.stories.d.ts.map +1 -0
- package/build/esm/components/ColumnCell/ColumnCell.stories.js +83 -0
- package/build/esm/components/ColumnCell/ColumnCell.stories.js.map +1 -0
- package/build/esm/components/ColumnCell/__tests__/ColumnCell.visual.test.js +158 -0
- package/build/esm/components/ColumnCell/__tests__/ColumnCell.visual.test.js.map +1 -0
- package/build/esm/components/ColumnCell/columnCellStorySetup.d.ts +23 -0
- package/build/esm/components/ColumnCell/columnCellStorySetup.d.ts.map +1 -0
- package/build/esm/components/ColumnCell/columnCellStorySetup.js +41 -0
- package/build/esm/components/ColumnCell/columnCellStorySetup.js.map +1 -0
- package/build/esm/components/DataTableYT/DataTableYT.css +1 -1
- package/build/esm/components/DataTableYT/DataTableYT.css.map +1 -1
- package/build/esm/components/DataTableYT/DataTableYT.scss +1 -1
- package/build/esm/components/DataTableYT/DataTableYT.stories.d.ts +60 -0
- package/build/esm/components/DataTableYT/DataTableYT.stories.d.ts.map +1 -0
- package/build/esm/components/DataTableYT/DataTableYT.stories.js +106 -0
- package/build/esm/components/DataTableYT/DataTableYT.stories.js.map +1 -0
- package/build/esm/components/DataTableYT/__tests__/DataTableYT.visual.test.js +101 -0
- package/build/esm/components/DataTableYT/__tests__/DataTableYT.visual.test.js.map +1 -0
- package/build/esm/components/DataTableYT/dataTableYTStorySetup.d.ts +28 -0
- package/build/esm/components/DataTableYT/dataTableYTStorySetup.d.ts.map +1 -0
- package/build/esm/components/DataTableYT/dataTableYTStorySetup.js +56 -0
- package/build/esm/components/DataTableYT/dataTableYTStorySetup.js.map +1 -0
- package/build/esm/components/Hotkey/Hotkey.stories.d.ts +48 -0
- package/build/esm/components/Hotkey/Hotkey.stories.d.ts.map +1 -0
- package/build/esm/components/Hotkey/Hotkey.stories.js +81 -0
- package/build/esm/components/Hotkey/Hotkey.stories.js.map +1 -0
- package/build/esm/components/Label/Label.css +16 -16
- package/build/esm/components/Label/Label.css.map +1 -1
- package/build/esm/components/Label/Label.d.ts +3 -3
- package/build/esm/components/Label/Label.d.ts.map +1 -1
- package/build/esm/components/Label/Label.js +1 -0
- package/build/esm/components/Label/Label.js.map +1 -1
- package/build/esm/components/Label/Label.scss +26 -11
- package/build/esm/components/Label/Label.stories.d.ts +40 -0
- package/build/esm/components/Label/Label.stories.d.ts.map +1 -0
- package/build/esm/components/Label/Label.stories.js +62 -0
- package/build/esm/components/Label/Label.stories.js.map +1 -0
- package/build/esm/components/Label/LabelOnOff.d.ts +1 -1
- package/build/esm/components/Label/LabelOnOff.d.ts.map +1 -1
- package/build/esm/components/Label/LabelOnOff.js +1 -1
- package/build/esm/components/Label/LabelOnOff.js.map +1 -1
- package/build/esm/components/Label/__tests__/Label.visual.test.js +301 -0
- package/build/esm/components/Label/__tests__/Label.visual.test.js.map +1 -0
- package/build/esm/components/MetaTable/MetaTable.css +1 -1
- package/build/esm/components/MetaTable/MetaTable.css.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.js +1 -1
- package/build/esm/components/MetaTable/MetaTable.js.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.scss +1 -1
- package/build/esm/components/MetaTable/MetaTable.stories.d.ts +9 -0
- package/build/esm/components/MetaTable/MetaTable.stories.d.ts.map +1 -0
- package/build/esm/components/MetaTable/MetaTable.stories.js +29 -0
- package/build/esm/components/MetaTable/MetaTable.stories.js.map +1 -0
- package/build/esm/components/MetaTable/__tests__/MetaTable.visual.test.js +48 -0
- package/build/esm/components/MetaTable/__tests__/MetaTable.visual.test.js.map +1 -0
- package/build/esm/components/MetaTable/metaTableStorySetup.d.ts +8 -0
- package/build/esm/components/MetaTable/metaTableStorySetup.d.ts.map +1 -0
- package/build/esm/components/MetaTable/metaTableStorySetup.js +134 -0
- package/build/esm/components/MetaTable/metaTableStorySetup.js.map +1 -0
- package/build/esm/components/MetaTable/presets/erasure-replication.js +1 -1
- package/build/esm/components/MetaTable/presets/erasure-replication.js.map +1 -1
- package/build/esm/components/MetaTable/presets/helpers/commonFields.d.ts +2 -2
- package/build/esm/components/MetaTable/presets/helpers/commonFields.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/helpers/commonFields.js.map +1 -1
- package/build/esm/components/MetaTable/presets/i18n/ru.json +1 -1
- package/build/esm/components/MetaTable/presets/main.d.ts +2 -2
- package/build/esm/components/MetaTable/presets/main.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/main.js.map +1 -1
- package/build/esm/components/MetaTable/presets/presets.d.ts +3 -3
- package/build/esm/components/MetaTable/presets/presets.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/presets.js.map +1 -1
- package/build/esm/components/MetaTable/presets/size.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/size.js +1 -2
- package/build/esm/components/MetaTable/presets/size.js.map +1 -1
- package/build/esm/components/MetaTable/presets/ttl.d.ts +2 -2
- package/build/esm/components/MetaTable/presets/ttl.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/ttl.js +10 -5
- package/build/esm/components/MetaTable/presets/ttl.js.map +1 -1
- package/build/esm/components/MetaTable/templates/RowsCount/RowsCount.css +1 -1
- package/build/esm/components/MetaTable/templates/RowsCount/RowsCount.css.map +1 -1
- package/build/esm/components/MetaTable/templates/RowsCount/RowsCount.js +3 -2
- package/build/esm/components/MetaTable/templates/RowsCount/RowsCount.js.map +1 -1
- package/build/esm/components/MetaTable/templates/RowsCount/RowsCount.scss +1 -1
- package/build/esm/components/MetaTable/templates/Template.d.ts +1 -1
- package/build/esm/components/MetaTable/templates/Template.d.ts.map +1 -1
- package/build/esm/components/MetaTable/templates/Template.js +8 -8
- package/build/esm/components/MetaTable/templates/Template.js.map +1 -1
- package/build/esm/components/MetaTable/templates/TemplateTime.d.ts.map +1 -1
- package/build/esm/components/MetaTable/templates/TemplateTime.js +1 -1
- package/build/esm/components/MetaTable/templates/TemplateTime.js.map +1 -1
- package/build/esm/components/NoContent/NoContent.stories.d.ts +44 -0
- package/build/esm/components/NoContent/NoContent.stories.d.ts.map +1 -0
- package/build/esm/components/NoContent/NoContent.stories.js +42 -0
- package/build/esm/components/NoContent/NoContent.stories.js.map +1 -0
- package/build/esm/components/NoContent/__tests__/NoContent.visual.test.js +90 -0
- package/build/esm/components/NoContent/__tests__/NoContent.visual.test.js.map +1 -0
- package/build/esm/components/SchemaDataType/DataType/DataType.css +2 -2
- package/build/esm/components/SchemaDataType/DataType/DataType.css.map +1 -1
- package/build/esm/components/SchemaDataType/DataType/DataType.scss +2 -2
- package/build/esm/components/SchemaDataType/DataType/DataType.stories.d.ts +9 -0
- package/build/esm/components/SchemaDataType/DataType/DataType.stories.d.ts.map +1 -0
- package/build/esm/components/SchemaDataType/DataType/DataType.stories.js +28 -0
- package/build/esm/components/SchemaDataType/DataType/DataType.stories.js.map +1 -0
- package/build/esm/components/SchemaDataType/DataType/__tests__/DataType.visual.test.js +51 -0
- package/build/esm/components/SchemaDataType/DataType/__tests__/DataType.visual.test.js.map +1 -0
- package/build/esm/components/SchemaDataType/DataType/dataTypeStorySetup.d.ts +9 -0
- package/build/esm/components/SchemaDataType/DataType/dataTypeStorySetup.d.ts.map +1 -0
- package/build/esm/components/SchemaDataType/DataType/dataTypeStorySetup.js +77 -0
- package/build/esm/components/SchemaDataType/DataType/dataTypeStorySetup.js.map +1 -0
- package/build/esm/components/Text/Text.css +8 -8
- package/build/esm/components/Text/Text.css.map +1 -1
- package/build/esm/components/Text/Text.scss +8 -8
- package/build/esm/components/Text/Text.stories.d.ts +37 -0
- package/build/esm/components/Text/Text.stories.d.ts.map +1 -0
- package/build/esm/components/Text/Text.stories.js +37 -0
- package/build/esm/components/Text/Text.stories.js.map +1 -0
- package/build/esm/components/Text/__tests__/Text.visual.test.js +89 -0
- package/build/esm/components/Text/__tests__/Text.visual.test.js.map +1 -0
- package/build/esm/components/Text/textStorySetup.d.ts +43 -0
- package/build/esm/components/Text/textStorySetup.d.ts.map +1 -0
- package/build/esm/components/Text/textStorySetup.js +149 -0
- package/build/esm/components/Text/textStorySetup.js.map +1 -0
- package/build/esm/components/Tooltip/Tooltip.stories.d.ts +48 -0
- package/build/esm/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
- package/build/esm/components/Tooltip/Tooltip.stories.js +46 -0
- package/build/esm/components/Tooltip/Tooltip.stories.js.map +1 -0
- package/build/esm/components/Tooltip/__tests__/Tooltip.visual.test.js +64 -0
- package/build/esm/components/Tooltip/__tests__/Tooltip.visual.test.js.map +1 -0
- package/build/esm/components/YqlValue/YqlValue.d.ts +4 -7
- package/build/esm/components/YqlValue/YqlValue.d.ts.map +1 -1
- package/build/esm/components/YqlValue/YqlValue.js +13 -22
- package/build/esm/components/YqlValue/YqlValue.js.map +1 -1
- package/build/esm/components/YqlValue/YqlValue.stories.d.ts +15 -0
- package/build/esm/components/YqlValue/YqlValue.stories.d.ts.map +1 -0
- package/build/esm/components/YqlValue/YqlValue.stories.js +150 -0
- package/build/esm/components/YqlValue/YqlValue.stories.js.map +1 -0
- package/build/esm/components/YqlValue/__tests__/YqlValue.visual.test.js +56 -0
- package/build/esm/components/YqlValue/__tests__/YqlValue.visual.test.js.map +1 -0
- package/build/esm/components/YqlValue/yqlValueStorySetup.d.ts +24 -0
- package/build/esm/components/YqlValue/yqlValueStorySetup.d.ts.map +1 -0
- package/build/esm/components/YqlValue/yqlValueStorySetup.js +81 -0
- package/build/esm/components/YqlValue/yqlValueStorySetup.js.map +1 -0
- package/build/esm/index.d.ts +0 -2
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index.js +0 -2
- package/build/esm/index.js.map +1 -1
- package/build/esm/internal/DefaultErrorBoundary/ErrorBoundary.css +2 -4
- package/build/esm/internal/DefaultErrorBoundary/ErrorBoundary.css.map +1 -1
- package/build/esm/internal/DefaultErrorBoundary/ErrorBoundary.scss +2 -2
- package/build/esm/internal/Yson/Yson.d.ts +26 -4
- package/build/esm/internal/Yson/Yson.d.ts.map +1 -1
- package/build/esm/internal/Yson/Yson.js +13 -21
- package/build/esm/internal/Yson/Yson.js.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.d.ts +9 -2
- package/build/esm/modules/NavigationTable/NavigationTable.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.js +22 -5
- package/build/esm/modules/NavigationTable/NavigationTable.js.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.stories.d.ts +9 -0
- package/build/esm/modules/NavigationTable/NavigationTable.stories.d.ts.map +1 -0
- package/build/esm/modules/NavigationTable/NavigationTable.stories.js +42 -0
- package/build/esm/modules/NavigationTable/NavigationTable.stories.js.map +1 -0
- package/build/esm/modules/NavigationTable/PreviewTab.d.ts +6 -3
- package/build/esm/modules/NavigationTable/PreviewTab.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/PreviewTab.js +9 -6
- package/build/esm/modules/NavigationTable/PreviewTab.js.map +1 -1
- package/build/esm/modules/NavigationTable/SchemaTab.d.ts +2 -0
- package/build/esm/modules/NavigationTable/SchemaTab.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/SchemaTab.js +17 -10
- package/build/esm/modules/NavigationTable/SchemaTab.js.map +1 -1
- package/build/esm/modules/NavigationTable/__tests__/NavigationTable.visual.test.js +117 -0
- package/build/esm/modules/NavigationTable/__tests__/NavigationTable.visual.test.js.map +1 -0
- package/build/esm/modules/NavigationTable/index.d.ts +1 -1
- package/build/esm/modules/NavigationTable/index.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/index.js.map +1 -1
- package/build/esm/modules/NavigationTable/navigationTableStorySetup.d.ts +19 -0
- package/build/esm/modules/NavigationTable/navigationTableStorySetup.d.ts.map +1 -0
- package/build/esm/modules/NavigationTable/navigationTableStorySetup.js +75 -0
- package/build/esm/modules/NavigationTable/navigationTableStorySetup.js.map +1 -0
- package/build/esm/modules/NavigationTable/prepareColumns.d.ts +6 -1
- package/build/esm/modules/NavigationTable/prepareColumns.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/prepareColumns.js +9 -5
- package/build/esm/modules/NavigationTable/prepareColumns.js.map +1 -1
- package/build/esm/modules/index.d.ts +1 -1
- package/build/esm/modules/index.d.ts.map +1 -1
- package/build/esm/modules/index.js.map +1 -1
- package/build/esm/types/index.d.ts +1 -0
- package/build/esm/types/index.d.ts.map +1 -1
- package/build/esm/types/index.js.map +1 -1
- package/build/esm/types/interface-helpers-modules.d.ts +13 -0
- package/build/esm/{context/YtComponentsConfigContext.d.ts → types/navigationMeta.d.ts} +8 -34
- package/build/esm/types/navigationMeta.d.ts.map +1 -0
- package/build/esm/types/navigationMeta.js +2 -0
- package/build/esm/types/navigationMeta.js.map +1 -0
- package/build/esm/types/yt-types.d.ts +3 -0
- package/build/esm/types/yt-types.d.ts.map +1 -1
- package/build/esm/types/yt-types.js.map +1 -1
- package/build/esm/utils/hammer/format.d.ts +0 -2
- package/build/esm/utils/hammer/format.d.ts.map +1 -1
- package/build/esm/utils/hammer/format.js +0 -225
- package/build/esm/utils/hammer/format.js.map +1 -1
- package/build/esm/utils/hammer/index.d.ts +2 -2
- package/build/esm/utils/hammer/index.d.ts.map +1 -1
- package/build/esm/utils/hammer/index.js +2 -5
- package/build/esm/utils/hammer/index.js.map +1 -1
- package/build/esm/utils/index.d.ts +3 -2
- package/build/esm/utils/index.d.ts.map +1 -1
- package/build/esm/utils/index.js +3 -2
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/ypath/index.d.ts +0 -1
- package/build/esm/utils/ypath/index.d.ts.map +1 -1
- package/build/esm/utils/ypath/index.js +0 -1
- package/build/esm/utils/ypath/index.js.map +1 -1
- package/package.json +29 -8
- package/src/styles/mixins.scss +11 -0
- package/build/esm/api/navigation/columns.d.ts +0 -31
- package/build/esm/api/navigation/columns.d.ts.map +0 -1
- package/build/esm/api/navigation/columns.js +0 -256
- package/build/esm/api/navigation/columns.js.map +0 -1
- package/build/esm/context/YtComponentsConfigContext.d.ts.map +0 -1
- package/build/esm/context/YtComponentsConfigContext.js +0 -64
- package/build/esm/context/YtComponentsConfigContext.js.map +0 -1
- package/build/esm/context/index.d.ts +0 -2
- package/build/esm/context/index.d.ts.map +0 -1
- package/build/esm/context/index.js +0 -2
- package/build/esm/context/index.js.map +0 -1
- package/build/esm/utils/ypath/appendInnerErrors.d.ts +0 -3
- package/build/esm/utils/ypath/appendInnerErrors.d.ts.map +0 -1
- package/build/esm/utils/ypath/appendInnerErrors.js +0 -16
- package/build/esm/utils/ypath/appendInnerErrors.js.map +0 -1
- package/build/esm/utils/ypath/ypath-base.d.ts +0 -9
- package/build/esm/utils/ypath/ypath-base.d.ts.map +0 -1
- package/build/esm/utils/ypath/ypath-base.js +0 -49
- package/build/esm/utils/ypath/ypath-base.js.map +0 -1
- package/build/esm/utils/ypath/ypath.d.ts +0 -4
- package/build/esm/utils/ypath/ypath.d.ts.map +0 -1
- package/build/esm/utils/ypath/ypath.js +0 -70
- package/build/esm/utils/ypath/ypath.js.map +0 -1
- package/build/esm/utils/ypath/ypath.spec.d.ts +0 -2
- package/build/esm/utils/ypath/ypath.spec.d.ts.map +0 -1
- package/build/esm/utils/ypath/ypath.spec.js +0 -116
- package/build/esm/utils/ypath/ypath.spec.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,184 +1,165 @@
|
|
|
1
1
|
# @ytsaurus/components
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**English** | [Русский](README.ru.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A library of **core React components** for building UIs around YTsaurus.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
---
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- **`@ytsaurus/components/modules`** — `NavigationTable`, `SchemaTab`, `PreviewTab`, and `NavigationTableProps`. The Meta tab renders **`MetaTable`** from the root package by default, or custom content via `renderMetaTab` on `NavigationTable`.
|
|
9
|
+
## Installation
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
Install the package together with its **peer dependencies**:
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
```bash
|
|
14
|
+
npm install @ytsaurus/components
|
|
15
|
+
```
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
- **`useNavigationTableData`** — hook that returns `{ table, tableWithFilter, loading, error, filter, setFilter, load }`. Host implements `NavigationTableDataAdapter` with `loadTable(path)` (e.g. using Redux/YT API).
|
|
18
|
-
- **`loadTableAttributesByPath`** — loads table by path (attributes, schema, preview rows). Returns table data with `meta` (Meta tab content); optional `navigationTableConfig` for SubjectCard / `renderMetaOperationLink`, etc.
|
|
19
|
-
- **`loadFolderByPath`** — loads folder children by path (list of nodes for navigation tree).
|
|
20
|
-
- **`loadNodeByPath`** — loads a single node by path (generic navigation helper).
|
|
17
|
+
Required versions: `react` / `react-dom` ≥ 16.8, `@gravity-ui/uikit` ≥ 7, `@gravity-ui/icons` ≥ 2, `@gravity-ui/table` ≥ 1, `@gravity-ui/date-utils` ≥ 2 (see `package.json`).
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
Your app must load base UIKit styles. Theming is up to the host application:
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
```ts
|
|
22
|
+
import '@gravity-ui/uikit/styles/styles.css';
|
|
23
|
+
```
|
|
27
24
|
|
|
28
|
-
|
|
25
|
+
---
|
|
29
26
|
|
|
30
|
-
|
|
27
|
+
## Entry points
|
|
31
28
|
|
|
32
|
-
|
|
29
|
+
| Import | Purpose |
|
|
30
|
+
|--------|---------|
|
|
31
|
+
| **`@ytsaurus/components`** | Components (`ColumnCell`, `MetaTable`, …), types, hooks (`useNavigationTableData`), **HTTP helpers** for navigation (see below). |
|
|
32
|
+
| **`@ytsaurus/components/modules`** | **`NavigationTable`** shell plus **`SchemaTab`**, **`PreviewTab`** (and types such as `NavigationTableProps`). |
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
import { YtComponentsConfigProvider } from '@ytsaurus/components';
|
|
36
|
-
import { NavigationTable } from '@ytsaurus/components/modules';
|
|
34
|
+
The root entry re-exports **`src/api`**: a single place for loading table data and the YT API wrapper.
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
const dispatch = useDispatch();
|
|
40
|
-
const table = useSelector(selectTableWithFilter);
|
|
41
|
-
const filter = useSelector(selectNavigationFilter);
|
|
42
|
-
const ysonSettings = useSelector(getYsonSettings);
|
|
43
|
-
|
|
44
|
-
const onFilterChange = useCallback((value: string) => {
|
|
45
|
-
dispatch(setFilter(value));
|
|
46
|
-
}, [dispatch]);
|
|
47
|
-
|
|
48
|
-
const onInsertTableSelect = useCallback(async () => {
|
|
49
|
-
// insert TABLE SELECT into editor
|
|
50
|
-
}, []);
|
|
51
|
-
|
|
52
|
-
return (
|
|
53
|
-
<YtComponentsConfigProvider
|
|
54
|
-
errorBoundaryComponent={ErrorBoundary}
|
|
55
|
-
docsUrls={docsUrls}
|
|
56
|
-
logError={logError}
|
|
57
|
-
unipika={{ showDecoded: ysonSettings.showDecoded }}
|
|
58
|
-
>
|
|
59
|
-
<NavigationTable
|
|
60
|
-
table={table}
|
|
61
|
-
filter={filter}
|
|
62
|
-
onFilterChange={onFilterChange}
|
|
63
|
-
onInsertTableSelect={onInsertTableSelect}
|
|
64
|
-
ysonSettings={ysonSettings}
|
|
65
|
-
emptyMessage={i18n('context_empty-data')}
|
|
66
|
-
/>
|
|
67
|
-
</YtComponentsConfigProvider>
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
```
|
|
36
|
+
---
|
|
71
37
|
|
|
72
|
-
|
|
38
|
+
## API for tables and the cluster
|
|
73
39
|
|
|
74
|
-
|
|
40
|
+
In the package sources everything is wired from **`src/api/index.ts`**:
|
|
75
41
|
|
|
76
|
-
|
|
42
|
+
- **`loadTableAttributesByPath`** — given a table path, loads attributes and rows; returns the payload used by the tabs (schema, preview, meta).
|
|
43
|
+
- **`loadFolderByPath`**, **`loadNodeByPath`** — load navigation nodes by path.
|
|
44
|
+
- **`ytApiV3`** — low-level YT v3 client (from `@ytsaurus/javascript-wrapper`).
|
|
77
45
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const useYqlTypes = isYqlTypesEnabled(state);
|
|
88
|
-
const login = getCurrentUserName(state);
|
|
89
|
-
const showDecoded = shouldShowDecoded(state);
|
|
90
|
-
|
|
91
|
-
if (!clusterConfig) return;
|
|
92
|
-
|
|
93
|
-
const setup = {
|
|
94
|
-
proxy: getClusterProxy(clusterConfig),
|
|
95
|
-
JSONSerializer, // or your app's serializer
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
const tableData = await loadTableAttributesByPath(path, setup, {
|
|
99
|
-
clusterId: clusterConfig.id,
|
|
100
|
-
login,
|
|
101
|
-
limit: pageSize,
|
|
102
|
-
cellSize,
|
|
103
|
-
defaultTableColumnLimit,
|
|
104
|
-
useYqlTypes,
|
|
105
|
-
showDecoded,
|
|
106
|
-
navigationTableConfig: {
|
|
107
|
-
SubjectCard: (props) => <SubjectCard name={props.name} />,
|
|
108
|
-
renderMetaOperationLink: ({ operationId, cluster, isQueryTracker }) => {
|
|
109
|
-
const value = isQueryTracker
|
|
110
|
-
? <QueryTrackerLink queryId={operationId} cluster={cluster} />
|
|
111
|
-
: renderYqlOperationLink(operationId);
|
|
112
|
-
if (!value) return null;
|
|
113
|
-
return {
|
|
114
|
-
key: isQueryTracker ? 'QT operation' : 'YQL operation',
|
|
115
|
-
value,
|
|
116
|
-
visible: true,
|
|
117
|
-
};
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
dispatch(setPath(path));
|
|
123
|
-
dispatch(setTable(tableData));
|
|
124
|
-
dispatch(setNodeType(BodyType.Table));
|
|
125
|
-
};
|
|
46
|
+
After installation import from the package root:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import {
|
|
50
|
+
loadTableAttributesByPath,
|
|
51
|
+
loadFolderByPath,
|
|
52
|
+
loadNodeByPath,
|
|
53
|
+
ytApiV3,
|
|
54
|
+
} from '@ytsaurus/components';
|
|
126
55
|
```
|
|
127
56
|
|
|
128
|
-
|
|
57
|
+
For **`YTApiSetup`** and full function signatures see the published types (`build/esm` after `npm run build`) or **`src/api/navigation/*.ts`**.
|
|
129
58
|
|
|
130
|
-
|
|
59
|
+
---
|
|
131
60
|
|
|
132
|
-
|
|
61
|
+
## `NavigationTable` module
|
|
133
62
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
type NavigationTableDataAdapter,
|
|
138
|
-
} from '@ytsaurus/components';
|
|
63
|
+
Implementation: **`src/modules/NavigationTable`**. From npm:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
139
66
|
import { NavigationTable } from '@ytsaurus/components/modules';
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The component is **presentational**: you pass loaded data (`table`), optional schema-column filter, callbacks, and YSON settings for preview. When `table` is null, `emptyMessage` is shown.
|
|
70
|
+
|
|
71
|
+
### Minimal example
|
|
140
72
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
73
|
+
Below, data is loaded with **`loadTableAttributesByPath`** and rendered with **`NavigationTable`**. Replace `setup` and `options` with your cluster proxy, limits, user, etc.; this is only a structural sketch.
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import {useCallback, useEffect, useState} from 'react';
|
|
77
|
+
import {ThemeProvider} from '@gravity-ui/uikit';
|
|
78
|
+
import '@gravity-ui/uikit/styles/styles.css';
|
|
79
|
+
|
|
80
|
+
import {loadTableAttributesByPath} from '@ytsaurus/components';
|
|
81
|
+
import {NavigationTable} from '@ytsaurus/components/modules';
|
|
82
|
+
|
|
83
|
+
type LoadedNavigationTable = Awaited<ReturnType<typeof loadTableAttributesByPath>>;
|
|
84
|
+
|
|
85
|
+
const TABLE_PATH = '//home/my_cluster/my_table';
|
|
86
|
+
|
|
87
|
+
export function TableExplorer() {
|
|
88
|
+
const [table, setTable] = useState<LoadedNavigationTable | null>(null);
|
|
89
|
+
const [filter, setFilter] = useState('');
|
|
90
|
+
const [error, setError] = useState<string | null>(null);
|
|
91
|
+
|
|
92
|
+
const load = useCallback(async () => {
|
|
93
|
+
setError(null);
|
|
94
|
+
try {
|
|
95
|
+
const data = await loadTableAttributesByPath(
|
|
96
|
+
TABLE_PATH,
|
|
97
|
+
{
|
|
98
|
+
proxy: 'https://your-yt-proxy.example/', // see YTApiSetup
|
|
99
|
+
// requestHeaders, JSONSerializer, … as needed
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
clusterId: 'my_cluster',
|
|
103
|
+
login: 'robot-user',
|
|
104
|
+
limit: 100,
|
|
105
|
+
cellSize: 256,
|
|
106
|
+
useYqlTypes: true,
|
|
107
|
+
showDecoded: false,
|
|
108
|
+
// docsUrls, navigationTableConfig — see option types
|
|
109
|
+
},
|
|
110
|
+
);
|
|
111
|
+
setTable(data);
|
|
112
|
+
} catch (e) {
|
|
113
|
+
setError(e instanceof Error ? e.message : String(e));
|
|
114
|
+
}
|
|
115
|
+
}, []);
|
|
116
|
+
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
void load();
|
|
119
|
+
}, [load]);
|
|
120
|
+
|
|
121
|
+
return (
|
|
122
|
+
<ThemeProvider theme="light">
|
|
123
|
+
{error && <p>{error}</p>}
|
|
124
|
+
<NavigationTable
|
|
125
|
+
table={table}
|
|
126
|
+
filter={filter}
|
|
127
|
+
onFilterChange={setFilter}
|
|
128
|
+
emptyMessage="Pick a table or load data"
|
|
129
|
+
/>
|
|
130
|
+
</ThemeProvider>
|
|
131
|
+
);
|
|
167
132
|
}
|
|
168
133
|
```
|
|
169
134
|
|
|
170
|
-
|
|
135
|
+
A fuller integration (Redux, `navigationTableConfig`, doc links) lives in **`packages/ui`** (e.g. query-tracker actions and meta config for `MetaTable`).
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## `useNavigationTableData` hook
|
|
171
140
|
|
|
172
|
-
|
|
173
|
-
- `react-dom` >= 16.8.0
|
|
174
|
-
- `@gravity-ui/uikit` >= 7.0.0
|
|
175
|
-
- `@gravity-ui/icons` >= 2.0.0
|
|
176
|
-
- `@gravity-ui/table` >= 1.0.0
|
|
141
|
+
If you prefer to own loading by path, use **`useNavigationTableData`** from **`@ytsaurus/components`** with a **`NavigationTableDataAdapter`** and still render **`NavigationTable`** from **`@ytsaurus/components/modules`**. See **`src/hooks/useNavigationTableData.ts`**.
|
|
177
142
|
|
|
178
|
-
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Building the package
|
|
146
|
+
|
|
147
|
+
From **`packages/components`**:
|
|
179
148
|
|
|
180
149
|
```bash
|
|
181
150
|
npm run build
|
|
182
151
|
```
|
|
183
152
|
|
|
184
|
-
|
|
153
|
+
Output: **`build/esm/`** (`main` / `exports` / `types` in `package.json`).
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Storybook
|
|
158
|
+
|
|
159
|
+
Locally: **`npm run storybook`** (port **6006**). If **`npm run build:storybook`** created **`storybook-static`**, Vite dev may reload excessively — that directory is ignored in **`.storybook/main.ts`**; if anything glitches, remove **`node_modules/.cache/storybook`**.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## `theme-default.scss`
|
|
164
|
+
|
|
165
|
+
**`theme-default/theme-default.scss`** at the package root is used by **Storybook** and **Playwright** in this repo only and is **not** part of the published npm bundle (`files` in `package.json`). Configure Gravity UI theming in your own app.
|
package/README.ru.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# @ytsaurus/components
|
|
2
|
+
|
|
3
|
+
[English](README.md) | **Русский**
|
|
4
|
+
|
|
5
|
+
Библиотека **базовых React-компонентов** для интерфейсов вокруг YTsaurus
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Установка
|
|
10
|
+
|
|
11
|
+
Обратите внимание что пакет нужно ставить вместе с **peer-зависимостями**:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @ytsaurus/components
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Версии: `react` / `react-dom` ≥ 16.8, `@gravity-ui/uikit` ≥ 7, `@gravity-ui/icons` ≥ 2, `@gravity-ui/table` ≥ 1, `@gravity-ui/date-utils` ≥ 2 (см. `package.json`).
|
|
18
|
+
|
|
19
|
+
В приложении необходимо наличие базовых стилей UIKit. Темизация — на стороне приложения:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import '@gravity-ui/uikit/styles/styles.css';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Точки входа
|
|
28
|
+
|
|
29
|
+
| Импорт | Назначение |
|
|
30
|
+
|--------|------------|
|
|
31
|
+
| **`@ytsaurus/components`** | Компоненты (`ColumnCell`, `MetaTable`, …), типы, хуки (`useNavigationTableData`), **HTTP-API** для навигации (см. ниже). |
|
|
32
|
+
| **`@ytsaurus/components/modules`** | Оболочка **`NavigationTable`** и вкладки **`SchemaTab`**, **`PreviewTab`** (типы `NavigationTableProps` и т.д.). |
|
|
33
|
+
|
|
34
|
+
Корневой entry реэкспортирует модуль **`src/api`**: удобная точка для загрузки данных таблицы и обёртки над YT API.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## API для работы с таблицей и кластером
|
|
39
|
+
|
|
40
|
+
В исходниках пакета всё собрано в **`src/api/index.ts`**:
|
|
41
|
+
|
|
42
|
+
- **`loadTableAttributesByPath`** — по пути к таблице загружает атрибуты и строки, возвращает объект данных для вкладок (схема, превью, мета).
|
|
43
|
+
- **`loadFolderByPath`**, **`loadNodeByPath`** — загрузка узлов навигации по пути.
|
|
44
|
+
- **`ytApiV3`** — доступ к низкоуровневому клиенту YT v3 (из `@ytsaurus/javascript-wrapper`).
|
|
45
|
+
|
|
46
|
+
После установки импортируйте из корня пакета:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import {
|
|
50
|
+
loadTableAttributesByPath,
|
|
51
|
+
loadFolderByPath,
|
|
52
|
+
loadNodeByPath,
|
|
53
|
+
ytApiV3,
|
|
54
|
+
} from '@ytsaurus/components';
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Тип **`YTApiSetup`** и сигнатуры функций смотрите в типах пакета (`build/esm` после сборки) или в **`src/api/navigation/*.ts`**.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Модуль `NavigationTable`
|
|
62
|
+
|
|
63
|
+
Реализация: **`src/modules/NavigationTable`**. В npm:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { NavigationTable } from '@ytsaurus/components/modules';
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Компонент **презентационный**: ему передают уже загруженные данные (`table`), опционально фильтр по колонкам схемы, колбэки и настройки YSON для превью. Пустое `table` — показывается `emptyMessage`.
|
|
70
|
+
|
|
71
|
+
### Простой пример
|
|
72
|
+
|
|
73
|
+
Ниже — загрузка данных через **`loadTableAttributesByPath`** и отображение **`NavigationTable`**. Параметры `setup` и `options` замените на свои (прокси кластера, лимиты, пользователь и т.д.); это только форма кода.
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import {useCallback, useEffect, useState} from 'react';
|
|
77
|
+
import {ThemeProvider} from '@gravity-ui/uikit';
|
|
78
|
+
import '@gravity-ui/uikit/styles/styles.css';
|
|
79
|
+
|
|
80
|
+
import {loadTableAttributesByPath} from '@ytsaurus/components';
|
|
81
|
+
import {NavigationTable} from '@ytsaurus/components/modules';
|
|
82
|
+
|
|
83
|
+
type LoadedNavigationTable = Awaited<ReturnType<typeof loadTableAttributesByPath>>;
|
|
84
|
+
|
|
85
|
+
const TABLE_PATH = '//home/my_cluster/my_table';
|
|
86
|
+
|
|
87
|
+
export function TableExplorer() {
|
|
88
|
+
const [table, setTable] = useState<LoadedNavigationTable | null>(null);
|
|
89
|
+
const [filter, setFilter] = useState('');
|
|
90
|
+
const [error, setError] = useState<string | null>(null);
|
|
91
|
+
|
|
92
|
+
const load = useCallback(async () => {
|
|
93
|
+
setError(null);
|
|
94
|
+
try {
|
|
95
|
+
const data = await loadTableAttributesByPath(
|
|
96
|
+
TABLE_PATH,
|
|
97
|
+
{
|
|
98
|
+
proxy: 'https://your-yt-proxy.example/', // см. YTApiSetup
|
|
99
|
+
// requestHeaders, JSONSerializer, … при необходимости
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
clusterId: 'my_cluster',
|
|
103
|
+
login: 'robot-user',
|
|
104
|
+
limit: 100,
|
|
105
|
+
cellSize: 256,
|
|
106
|
+
useYqlTypes: true,
|
|
107
|
+
showDecoded: false,
|
|
108
|
+
// docsUrls, navigationTableConfig — см. типы опций
|
|
109
|
+
},
|
|
110
|
+
);
|
|
111
|
+
setTable(data);
|
|
112
|
+
} catch (e) {
|
|
113
|
+
setError(e instanceof Error ? e.message : String(e));
|
|
114
|
+
}
|
|
115
|
+
}, []);
|
|
116
|
+
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
void load();
|
|
119
|
+
}, [load]);
|
|
120
|
+
|
|
121
|
+
return (
|
|
122
|
+
<ThemeProvider theme="light">
|
|
123
|
+
{error && <p>{error}</p>}
|
|
124
|
+
<NavigationTable
|
|
125
|
+
table={table}
|
|
126
|
+
filter={filter}
|
|
127
|
+
onFilterChange={setFilter}
|
|
128
|
+
emptyMessage="Выберите таблицу или загрузите данные"
|
|
129
|
+
/>
|
|
130
|
+
</ThemeProvider>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Развёрнутая интеграция с Redux, `navigationTableConfig` и ссылками на документацию — в **`packages/ui`** (например, экшены query-tracker и конфиг меты для `MetaTable`).
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Хук `useNavigationTableData`
|
|
140
|
+
|
|
141
|
+
Если удобнее самим описать загрузку по пути, можно использовать **`useNavigationTableData`** из **`@ytsaurus/components`** с адаптером **`NavigationTableDataAdapter`** и по-прежнему рендерить **`NavigationTable`** из **`@ytsaurus/components/modules`**. См. типы в **`src/hooks/useNavigationTableData.ts`**.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Сборка пакета
|
|
146
|
+
|
|
147
|
+
Из каталога **`packages/components`**:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npm run build
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Артефакты: **`build/esm/`** (поля `main` / `exports` / `types` в `package.json`).
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Storybook
|
|
158
|
+
|
|
159
|
+
Локально: **`npm run storybook`** (порт **6006**). Если после **`npm run build:storybook`** в каталоге появился **`storybook-static`**, при dev возможны лишние перезагрузки Vite — каталог игнорируется в **`.storybook/main.ts`**, при сбоях можно удалить **`node_modules/.cache/storybook`**.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Тема `theme-default.scss`
|
|
164
|
+
|
|
165
|
+
Файл **`theme-default/theme-default.scss`** в корне пакета используется **Storybook** и **Playwright** в этом репозитории и **не входит** в опубликованный npm-архив (`files` в `package.json`). В своём приложении настройте тему Gravity UI самостоятельно.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import { ypath } from '../../../utils
|
|
2
|
+
import { ypath } from '../../../utils';
|
|
3
3
|
export var getTableTypeByAttributes = function getTableTypeByAttributes(isDynamic, attributes) {
|
|
4
4
|
if (isDynamic) {
|
|
5
5
|
var _ypath$getValues = ypath.getValues(attributes, ['/upstream_replica_id', '/type']),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ypath","getTableTypeByAttributes","isDynamic","attributes","_ypath$getValues","getValues","_ypath$getValues2","_slicedToArray","upstreamReplicaID","type","String","startsWith"],"sources":["getTableTypeByAttributes.ts"],"sourcesContent":["import {ypath} from '../../../utils
|
|
1
|
+
{"version":3,"names":["ypath","getTableTypeByAttributes","isDynamic","attributes","_ypath$getValues","getValues","_ypath$getValues2","_slicedToArray","upstreamReplicaID","type","String","startsWith"],"sources":["getTableTypeByAttributes.ts"],"sourcesContent":["import {ypath} from '../../../utils';\n\nexport const getTableTypeByAttributes = (isDynamic: boolean, attributes: any) => {\n if (isDynamic) {\n const [upstreamReplicaID, type] = ypath.getValues(attributes, [\n '/upstream_replica_id',\n '/type',\n ]);\n if (String(type).startsWith('chaos')) {\n return 'chaos';\n }\n if (upstreamReplicaID && upstreamReplicaID !== '0-0-0-0') {\n return 'replica';\n }\n return 'dynamic';\n } else {\n return 'static';\n }\n};\n"],"mappings":";AAAA,SAAQA,KAAK,QAAO,gBAAgB;AAEpC,OAAO,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,SAAkB,EAAEC,UAAe,EAAK;EAC7E,IAAID,SAAS,EAAE;IACX,IAAAE,gBAAA,GAAkCJ,KAAK,CAACK,SAAS,CAACF,UAAU,EAAE,CAC1D,sBAAsB,EACtB,OAAO,CACV,CAAC;MAAAG,iBAAA,GAAAC,cAAA,CAAAH,gBAAA;MAHKI,iBAAiB,GAAAF,iBAAA;MAAEG,IAAI,GAAAH,iBAAA;IAI9B,IAAII,MAAM,CAACD,IAAI,CAAC,CAACE,UAAU,CAAC,OAAO,CAAC,EAAE;MAClC,OAAO,OAAO;IAClB;IACA,IAAIH,iBAAiB,IAAIA,iBAAiB,KAAK,SAAS,EAAE;MACtD,OAAO,SAAS;IACpB;IACA,OAAO,SAAS;EACpB,CAAC,MAAM;IACH,OAAO,QAAQ;EACnB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
4
4
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
5
5
|
var _excluded = ["target_path"];
|
|
6
6
|
import { ytApiV3 } from '../rum-wrap-api';
|
|
7
|
-
import { ypath } from '../../utils
|
|
7
|
+
import { ypath } from '../../utils';
|
|
8
8
|
export var loadFolderByPath = /*#__PURE__*/function () {
|
|
9
9
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(path, setup) {
|
|
10
10
|
var favorites,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ytApiV3","ypath","loadFolderByPath","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","setup","favorites","response","_args","arguments","wrap","_context","prev","next","length","undefined","list","parameters","attributes","sent","abrupt","map","item","name","getValue","newPath","getAttributes","targetPath","target_path","restAttributes","_objectWithoutProperties","_excluded","_objectSpread","isFavorite","includes","sort","a","b","localeCompare","stop","_x","_x2","apply"],"sources":["loadFolderByPath.ts"],"sourcesContent":["import {YTApiSetup, ytApiV3} from '../rum-wrap-api';\nimport {ypath} from '../../utils
|
|
1
|
+
{"version":3,"names":["ytApiV3","ypath","loadFolderByPath","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","setup","favorites","response","_args","arguments","wrap","_context","prev","next","length","undefined","list","parameters","attributes","sent","abrupt","map","item","name","getValue","newPath","getAttributes","targetPath","target_path","restAttributes","_objectWithoutProperties","_excluded","_objectSpread","isFavorite","includes","sort","a","b","localeCompare","stop","_x","_x2","apply"],"sources":["loadFolderByPath.ts"],"sourcesContent":["import {YTApiSetup, ytApiV3} from '../rum-wrap-api';\nimport {ypath} from '../../utils';\nimport {NavigationNode} from '../../types/navigation';\n\nexport const loadFolderByPath = async (\n path: string,\n setup: YTApiSetup,\n favorites: string[] = [],\n) => {\n const response = await ytApiV3.list({\n setup,\n parameters: {\n path,\n attributes: ['type', 'broken', 'dynamic', 'sorted', 'target_path'],\n },\n });\n\n return response\n .map((item: unknown) => {\n const name = ypath.getValue(item);\n const newPath = path + '/' + name;\n const attributes = ypath.getAttributes(item);\n const {target_path: targetPath, ...restAttributes} = attributes;\n\n return {\n name,\n ...restAttributes,\n path: newPath,\n targetPath,\n isFavorite: favorites.includes(newPath),\n };\n })\n .sort((a: NavigationNode, b: NavigationNode) => a.name.localeCompare(b.name));\n};\n"],"mappings":";;;;;AAAA,SAAoBA,OAAO,QAAO,iBAAiB;AACnD,SAAQC,KAAK,QAAO,aAAa;AAGjC,OAAO,IAAMC,gBAAgB;EAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAC5BC,IAAY,EACZC,KAAiB;IAAA,IAAAC,SAAA;MAAAC,QAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAR,mBAAA,GAAAS,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjBP,SAAmB,GAAAE,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,EAAE;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAEDjB,OAAO,CAACoB,IAAI,CAAC;YAChCX,KAAK,EAALA,KAAK;YACLY,UAAU,EAAE;cACRb,IAAI,EAAJA,IAAI;cACJc,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa;YACrE;UACJ,CAAC,CAAC;QAAA;UANIX,QAAQ,GAAAI,QAAA,CAAAQ,IAAA;UAAA,OAAAR,QAAA,CAAAS,MAAA,WAQPb,QAAQ,CACVc,GAAG,CAAC,UAACC,IAAa,EAAK;YACpB,IAAMC,IAAI,GAAG1B,KAAK,CAAC2B,QAAQ,CAACF,IAAI,CAAC;YACjC,IAAMG,OAAO,GAAGrB,IAAI,GAAG,GAAG,GAAGmB,IAAI;YACjC,IAAML,UAAU,GAAGrB,KAAK,CAAC6B,aAAa,CAACJ,IAAI,CAAC;YAC5C,IAAoBK,UAAU,GAAuBT,UAAU,CAAxDU,WAAW;cAAiBC,cAAc,GAAAC,wBAAA,CAAIZ,UAAU,EAAAa,SAAA;YAE/D,OAAAC,aAAA,CAAAA,aAAA;cACIT,IAAI,EAAJA;YAAI,GACDM,cAAc;cACjBzB,IAAI,EAAEqB,OAAO;cACbE,UAAU,EAAVA,UAAU;cACVM,UAAU,EAAE3B,SAAS,CAAC4B,QAAQ,CAACT,OAAO;YAAC;UAE/C,CAAC,CAAC,CACDU,IAAI,CAAC,UAACC,CAAiB,EAAEC,CAAiB;YAAA,OAAKD,CAAC,CAACb,IAAI,CAACe,aAAa,CAACD,CAAC,CAACd,IAAI,CAAC;UAAA,EAAC;QAAA;QAAA;UAAA,OAAAZ,QAAA,CAAA4B,IAAA;MAAA;IAAA,GAAApC,OAAA;EAAA,CACpF;EAAA,gBA7BYL,gBAAgBA,CAAA0C,EAAA,EAAAC,GAAA;IAAA,OAAA1C,IAAA,CAAA2C,KAAA,OAAAjC,SAAA;EAAA;AAAA,GA6B5B","ignoreList":[]}
|
|
@@ -37,7 +37,7 @@ export var loadNodeByPath = function loadNodeByPath(path, setup, config) {
|
|
|
37
37
|
}
|
|
38
38
|
return _context.abrupt("return", loadFolderByPath(path, setup, favorites));
|
|
39
39
|
case 3:
|
|
40
|
-
throw new Error("
|
|
40
|
+
throw new Error("Can't open this type of node");
|
|
41
41
|
case 4:
|
|
42
42
|
case "end":
|
|
43
43
|
return _context.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadFolderByPath","loadTableAttributesByPath","isFolderNode","isTableNode","ytApiV3","loadNodeByPath","path","setup","config","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_config$favorites","favorites","login","limit","clusterId","docsUrls","type","wrap","_context","prev","next","get","parameters","concat","sent","abrupt","Error","stop"],"sources":["loadNodeByPath.ts"],"sourcesContent":["import {loadFolderByPath} from './loadFolderByPath';\nimport {loadTableAttributesByPath} from './loadTableAttributesByPath';\nimport {isFolderNode, isTableNode} from './helpers';\nimport {YTApiSetup, ytApiV3} from '../rum-wrap-api';\n\nexport const loadNodeByPath =\n (\n path: string,\n setup: YTApiSetup,\n config: {\n favorites: string[];\n login: string;\n limit: number;\n clusterId: string;\n docsUrls?: Record<string, string>;\n },\n ) =>\n async () => {\n const {favorites = [], login, limit, clusterId, docsUrls} = config;\n\n const type = await ytApiV3.get({\n setup,\n parameters: {\n path: `${path}/@type`,\n },\n });\n\n if (isTableNode(type)) {\n return loadTableAttributesByPath(path, setup, {login, limit, clusterId, docsUrls});\n } else if (isFolderNode(type)) {\n return loadFolderByPath(path, setup, favorites);\n } else {\n throw new Error(\"
|
|
1
|
+
{"version":3,"names":["loadFolderByPath","loadTableAttributesByPath","isFolderNode","isTableNode","ytApiV3","loadNodeByPath","path","setup","config","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_config$favorites","favorites","login","limit","clusterId","docsUrls","type","wrap","_context","prev","next","get","parameters","concat","sent","abrupt","Error","stop"],"sources":["loadNodeByPath.ts"],"sourcesContent":["import {loadFolderByPath} from './loadFolderByPath';\nimport {loadTableAttributesByPath} from './loadTableAttributesByPath';\nimport {isFolderNode, isTableNode} from './helpers';\nimport {YTApiSetup, ytApiV3} from '../rum-wrap-api';\n\nexport const loadNodeByPath =\n (\n path: string,\n setup: YTApiSetup,\n config: {\n favorites: string[];\n login: string;\n limit: number;\n clusterId: string;\n docsUrls?: Record<string, string>;\n },\n ) =>\n async () => {\n const {favorites = [], login, limit, clusterId, docsUrls} = config;\n\n const type = await ytApiV3.get({\n setup,\n parameters: {\n path: `${path}/@type`,\n },\n });\n\n if (isTableNode(type)) {\n return loadTableAttributesByPath(path, setup, {login, limit, clusterId, docsUrls});\n } else if (isFolderNode(type)) {\n return loadFolderByPath(path, setup, favorites);\n } else {\n throw new Error(\"Can't open this type of node\");\n }\n };\n"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,yBAAyB,QAAO,6BAA6B;AACrE,SAAQC,YAAY,EAAEC,WAAW,QAAO,WAAW;AACnD,SAAoBC,OAAO,QAAO,iBAAiB;AAEnD,OAAO,IAAMC,cAAc,GACvB,SADSA,cAAcA,CAEnBC,IAAY,EACZC,KAAiB,EACjBC,MAMC;EAAA,oBAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAEL,SAAAC,QAAA;IAAA,IAAAC,iBAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAT,mBAAA,GAAAU,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAV,iBAAA,GACgEL,MAAM,CAA3DM,SAAS,EAATA,SAAS,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA,EAAEE,KAAK,GAAgCP,MAAM,CAA3CO,KAAK,EAAEC,KAAK,GAAyBR,MAAM,CAApCQ,KAAK,EAAEC,SAAS,GAAcT,MAAM,CAA7BS,SAAS,EAAEC,QAAQ,GAAIV,MAAM,CAAlBU,QAAQ;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAErCnB,OAAO,CAACoB,GAAG,CAAC;YAC3BjB,KAAK,EAALA,KAAK;YACLkB,UAAU,EAAE;cACRnB,IAAI,KAAAoB,MAAA,CAAKpB,IAAI;YACjB;UACJ,CAAC,CAAC;QAAA;UALIa,IAAI,GAAAE,QAAA,CAAAM,IAAA;UAAA,KAONxB,WAAW,CAACgB,IAAI,CAAC;YAAAE,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA,WACV3B,yBAAyB,CAACK,IAAI,EAAEC,KAAK,EAAE;YAACQ,KAAK,EAALA,KAAK;YAAEC,KAAK,EAALA,KAAK;YAAEC,SAAS,EAATA,SAAS;YAAEC,QAAQ,EAARA;UAAQ,CAAC,CAAC;QAAA;UAAA,KAC3EhB,YAAY,CAACiB,IAAI,CAAC;YAAAE,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA,WAClB5B,gBAAgB,CAACM,IAAI,EAAEC,KAAK,EAAEO,SAAS,CAAC;QAAA;UAAA,MAEzC,IAAIe,KAAK,CAAC,8BAA8B,CAAC;QAAA;QAAA;UAAA,OAAAR,QAAA,CAAAS,IAAA;MAAA;IAAA,GAAAlB,OAAA;EAAA,CAEtD;AAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NavigationTable } from '../../types/navigation';
|
|
2
2
|
import { YTApiSetup } from '../rum-wrap-api';
|
|
3
|
-
import type {
|
|
3
|
+
import type { TYComponentsNavigationMetaConfig } from '../../types';
|
|
4
4
|
export declare const loadTableAttributesByPath: (path: string, setup: YTApiSetup, options: {
|
|
5
5
|
clusterId: string;
|
|
6
6
|
login: string;
|
|
@@ -10,6 +10,6 @@ export declare const loadTableAttributesByPath: (path: string, setup: YTApiSetup
|
|
|
10
10
|
useYqlTypes?: boolean;
|
|
11
11
|
docsUrls?: Record<string, string>;
|
|
12
12
|
showDecoded?: boolean;
|
|
13
|
-
navigationTableConfig?: Partial<
|
|
13
|
+
navigationTableConfig?: Partial<TYComponentsNavigationMetaConfig>;
|
|
14
14
|
}) => Promise<NavigationTable>;
|
|
15
15
|
//# sourceMappingURL=loadTableAttributesByPath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadTableAttributesByPath.d.ts","sourceRoot":"","sources":["../../../../src/api/navigation/loadTableAttributesByPath.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAI9E,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"loadTableAttributesByPath.d.ts","sourceRoot":"","sources":["../../../../src/api/navigation/loadTableAttributesByPath.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAI9E,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,aAAa,CAAC;AAElE,eAAO,MAAM,yBAAyB,GAClC,MAAM,MAAM,EACZ,OAAO,UAAU,EACjB,SAAS;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,CAAC;CACrE,KACF,OAAO,CAAC,eAAe,CAwCzB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
|
4
4
|
import { loadStaticTable } from './loadStaticTable';
|
|
5
5
|
import { loadDynamicTableRequest } from './loadDynamicTable';
|
|
6
6
|
import { loadTableAttributes } from './loadTableAttributes';
|
|
7
|
-
import { ypath } from '../../utils
|
|
7
|
+
import { ypath } from '../../utils';
|
|
8
8
|
import { getTableTypeByAttributes } from './helpers/getTableTypeByAttributes';
|
|
9
9
|
import { getRequestOutputFormat } from './helpers/getRequestOutputFormat';
|
|
10
10
|
import { makeMetaItems } from '../../components/MetaTable/presets';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadStaticTable","loadDynamicTableRequest","loadTableAttributes","ypath","getTableTypeByAttributes","getRequestOutputFormat","makeMetaItems","loadTableAttributesByPath","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","setup","options","attributes","schema","outputFormat","requestFunction","_yield$requestFunctio","columns","rows","yqlTypes","meta","wrap","_context","prev","next","sent","getValue","map","i","name","stringLimit","cellSize","limit","defaultTableColumnLimit","useYqlTypes","dynamic","_objectSpread","login","keyColumns","key_columns","showDecoded","cluster","clusterId","tableType","isDynamic","docsUrls","navigationTableConfig","abrupt","key","stop","_x","_x2","_x3","apply","arguments"],"sources":["loadTableAttributesByPath.ts"],"sourcesContent":["import {loadStaticTable} from './loadStaticTable';\nimport {loadDynamicTableRequest} from './loadDynamicTable';\nimport {loadTableAttributes} from './loadTableAttributes';\nimport {NavigationTable, NavigationTableSchema} from '../../types/navigation';\nimport {ypath} from '../../utils
|
|
1
|
+
{"version":3,"names":["loadStaticTable","loadDynamicTableRequest","loadTableAttributes","ypath","getTableTypeByAttributes","getRequestOutputFormat","makeMetaItems","loadTableAttributesByPath","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","setup","options","attributes","schema","outputFormat","requestFunction","_yield$requestFunctio","columns","rows","yqlTypes","meta","wrap","_context","prev","next","sent","getValue","map","i","name","stringLimit","cellSize","limit","defaultTableColumnLimit","useYqlTypes","dynamic","_objectSpread","login","keyColumns","key_columns","showDecoded","cluster","clusterId","tableType","isDynamic","docsUrls","navigationTableConfig","abrupt","key","stop","_x","_x2","_x3","apply","arguments"],"sources":["loadTableAttributesByPath.ts"],"sourcesContent":["import {loadStaticTable} from './loadStaticTable';\nimport {loadDynamicTableRequest} from './loadDynamicTable';\nimport {loadTableAttributes} from './loadTableAttributes';\nimport {NavigationTable, NavigationTableSchema} from '../../types/navigation';\nimport {ypath} from '../../utils';\nimport {getTableTypeByAttributes} from './helpers/getTableTypeByAttributes';\nimport {getRequestOutputFormat} from './helpers/getRequestOutputFormat';\nimport {YTApiSetup} from '../rum-wrap-api';\nimport {makeMetaItems} from '../../components/MetaTable/presets';\nimport type {TYComponentsNavigationMetaConfig} from '../../types';\n\nexport const loadTableAttributesByPath = async (\n path: string,\n setup: YTApiSetup,\n options: {\n clusterId: string;\n login: string;\n limit: number;\n cellSize?: number;\n defaultTableColumnLimit?: number;\n useYqlTypes?: boolean;\n docsUrls?: Record<string, string>;\n showDecoded?: boolean;\n navigationTableConfig?: Partial<TYComponentsNavigationMetaConfig>;\n },\n): Promise<NavigationTable> => {\n const attributes = await loadTableAttributes(path, setup);\n const schema: NavigationTableSchema[] = ypath.getValue(attributes.schema);\n const outputFormat = getRequestOutputFormat({\n columns: schema.map((i) => i.name),\n stringLimit: options?.cellSize,\n limit: options?.defaultTableColumnLimit,\n useYqlTypes: options?.useYqlTypes,\n });\n\n const requestFunction = attributes.dynamic ? loadDynamicTableRequest : loadStaticTable;\n\n const {columns, rows, yqlTypes} = await requestFunction({\n login: options.login,\n path,\n setup,\n schema,\n keyColumns: attributes.key_columns,\n limit: options.limit,\n outputFormat,\n ...(attributes.dynamic && {showDecoded: options.showDecoded}),\n });\n\n const meta = makeMetaItems({\n cluster: options.clusterId,\n attributes,\n tableType: getTableTypeByAttributes(attributes.dynamic, attributes),\n isDynamic: attributes.dynamic,\n docsUrls: options.docsUrls,\n navigationTableConfig: options.navigationTableConfig,\n });\n\n return {\n name: attributes.key,\n rows,\n schema,\n columns,\n yqlTypes,\n meta,\n };\n};\n"],"mappings":";;;AAAA,SAAQA,eAAe,QAAO,mBAAmB;AACjD,SAAQC,uBAAuB,QAAO,oBAAoB;AAC1D,SAAQC,mBAAmB,QAAO,uBAAuB;AAEzD,SAAQC,KAAK,QAAO,aAAa;AACjC,SAAQC,wBAAwB,QAAO,oCAAoC;AAC3E,SAAQC,sBAAsB,QAAO,kCAAkC;AAEvE,SAAQC,aAAa,QAAO,oCAAoC;AAGhE,OAAO,IAAMC,yBAAyB;EAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACrCC,IAAY,EACZC,KAAiB,EACjBC,OAUC;IAAA,IAAAC,UAAA,EAAAC,MAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAd,mBAAA,GAAAe,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAEwB1B,mBAAmB,CAACW,IAAI,EAAEC,KAAK,CAAC;QAAA;UAAnDE,UAAU,GAAAU,QAAA,CAAAG,IAAA;UACVZ,MAA+B,GAAGd,KAAK,CAAC2B,QAAQ,CAACd,UAAU,CAACC,MAAM,CAAC;UACnEC,YAAY,GAAGb,sBAAsB,CAAC;YACxCgB,OAAO,EAAEJ,MAAM,CAACc,GAAG,CAAC,UAACC,CAAC;cAAA,OAAKA,CAAC,CAACC,IAAI;YAAA,EAAC;YAClCC,WAAW,EAAEnB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEoB,QAAQ;YAC9BC,KAAK,EAAErB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEsB,uBAAuB;YACvCC,WAAW,EAAEvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEuB;UAC1B,CAAC,CAAC;UAEInB,eAAe,GAAGH,UAAU,CAACuB,OAAO,GAAGtC,uBAAuB,GAAGD,eAAe;UAAA0B,QAAA,CAAAE,IAAA;UAAA,OAE9CT,eAAe,CAAAqB,aAAA;YACnDC,KAAK,EAAE1B,OAAO,CAAC0B,KAAK;YACpB5B,IAAI,EAAJA,IAAI;YACJC,KAAK,EAALA,KAAK;YACLG,MAAM,EAANA,MAAM;YACNyB,UAAU,EAAE1B,UAAU,CAAC2B,WAAW;YAClCP,KAAK,EAAErB,OAAO,CAACqB,KAAK;YACpBlB,YAAY,EAAZA;UAAY,GACRF,UAAU,CAACuB,OAAO,IAAI;YAACK,WAAW,EAAE7B,OAAO,CAAC6B;UAAW,CAAC,CAC/D,CAAC;QAAA;UAAAxB,qBAAA,GAAAM,QAAA,CAAAG,IAAA;UATKR,OAAO,GAAAD,qBAAA,CAAPC,OAAO;UAAEC,IAAI,GAAAF,qBAAA,CAAJE,IAAI;UAAEC,QAAQ,GAAAH,qBAAA,CAARG,QAAQ;UAWxBC,IAAI,GAAGlB,aAAa,CAAC;YACvBuC,OAAO,EAAE9B,OAAO,CAAC+B,SAAS;YAC1B9B,UAAU,EAAVA,UAAU;YACV+B,SAAS,EAAE3C,wBAAwB,CAACY,UAAU,CAACuB,OAAO,EAAEvB,UAAU,CAAC;YACnEgC,SAAS,EAAEhC,UAAU,CAACuB,OAAO;YAC7BU,QAAQ,EAAElC,OAAO,CAACkC,QAAQ;YAC1BC,qBAAqB,EAAEnC,OAAO,CAACmC;UACnC,CAAC,CAAC;UAAA,OAAAxB,QAAA,CAAAyB,MAAA,WAEK;YACHlB,IAAI,EAAEjB,UAAU,CAACoC,GAAG;YACpB9B,IAAI,EAAJA,IAAI;YACJL,MAAM,EAANA,MAAM;YACNI,OAAO,EAAPA,OAAO;YACPE,QAAQ,EAARA,QAAQ;YACRC,IAAI,EAAJA;UACJ,CAAC;QAAA;QAAA;UAAA,OAAAE,QAAA,CAAA2B,IAAA;MAAA;IAAA,GAAAzC,OAAA;EAAA,CACJ;EAAA,gBAtDYL,yBAAyBA,CAAA+C,EAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAhD,IAAA,CAAAiD,KAAA,OAAAC,SAAA;EAAA;AAAA,GAsDrC","ignoreList":[]}
|