@ytsaurus/components 0.2.0 → 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 +3 -2
- 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/Label/i18n/dicts.d.ts +12 -0
- package/build/esm/components/Label/i18n/dicts.d.ts.map +1 -0
- package/build/esm/components/Label/i18n/dicts.js +7 -0
- package/build/esm/components/Label/i18n/dicts.js.map +1 -0
- package/build/esm/components/Label/i18n/en.json +4 -0
- package/build/esm/components/Label/i18n/index.d.ts +7 -0
- package/build/esm/components/Label/i18n/index.d.ts.map +1 -0
- package/build/esm/components/Label/i18n/index.js +4 -0
- package/build/esm/components/Label/i18n/index.js.map +1 -0
- package/build/esm/components/Label/i18n/ru.json +4 -0
- package/build/esm/components/MetaTable/MetaTable.css +6 -1
- package/build/esm/components/MetaTable/MetaTable.css.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.d.ts.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 +6 -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/dicts.d.ts +18 -0
- package/build/esm/components/MetaTable/presets/i18n/dicts.d.ts.map +1 -0
- package/build/esm/components/MetaTable/presets/i18n/dicts.js +7 -0
- package/build/esm/components/MetaTable/presets/i18n/dicts.js.map +1 -0
- package/build/esm/components/MetaTable/presets/i18n/en.json +5 -5
- package/build/esm/components/MetaTable/presets/i18n/index.d.ts +2 -2
- package/build/esm/components/MetaTable/presets/i18n/index.d.ts.map +1 -1
- package/build/esm/components/MetaTable/presets/i18n/index.js +2 -6
- package/build/esm/components/MetaTable/presets/i18n/index.js.map +1 -1
- package/build/esm/components/MetaTable/presets/i18n/ru.json +5 -5
- 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 +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 +5 -6
- 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/SchemaDataType/SchemaDataType.d.ts.map +1 -1
- package/build/esm/components/SchemaDataType/SchemaDataType.js +2 -1
- package/build/esm/components/SchemaDataType/SchemaDataType.js.map +1 -1
- package/build/esm/components/SchemaDataType/i18n/dicts.d.ts +10 -0
- package/build/esm/components/SchemaDataType/i18n/dicts.d.ts.map +1 -0
- package/build/esm/components/SchemaDataType/i18n/dicts.js +7 -0
- package/build/esm/components/SchemaDataType/i18n/dicts.js.map +1 -0
- package/build/esm/components/SchemaDataType/i18n/en.json +3 -0
- package/build/esm/components/SchemaDataType/i18n/index.d.ts +7 -0
- package/build/esm/components/SchemaDataType/i18n/index.d.ts.map +1 -0
- package/build/esm/components/SchemaDataType/i18n/index.js +4 -0
- package/build/esm/components/SchemaDataType/i18n/index.js.map +1 -0
- package/build/esm/components/SchemaDataType/i18n/ru.json +3 -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":[]}
|