@ytsaurus/components 0.2.3 → 0.2.4

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.
@@ -5,6 +5,9 @@
5
5
  margin-top: 8px;
6
6
  overflow-x: auto;
7
7
  }
8
+ .navigation-table__meta .meta-table-item {
9
+ grid-template-columns: 140px auto;
10
+ }
8
11
  .navigation-table .data-table__value {
9
12
  position: relative;
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["NavigationTable.scss"],"names":[],"mappings":"AAAA;EACI,eAAA;AACJ;AACI;EACI,eAAA;EACA,gBAAA;AACR;AAEI;EACI,kBAAA;AAAR;AAGI;EACI,YAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,UAAA;AADR","file":"NavigationTable.css","sourcesContent":[".navigation-table {\n padding: 0 10px;\n\n &__content {\n margin-top: 8px;\n overflow-x: auto;\n }\n\n .data-table__value {\n position: relative;\n }\n\n .data-table__clipboard-button-wrapper {\n opacity: 0.3;\n position: absolute;\n top: 0;\n right: 0;\n padding: 0;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["NavigationTable.scss"],"names":[],"mappings":"AAAA;EACI,eAAA;AACJ;AACI;EACI,eAAA;EACA,gBAAA;AACR;AAGQ;EACI,iCAAA;AADZ;AAKI;EACI,kBAAA;AAHR;AAMI;EACI,YAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,UAAA;AAJR","file":"NavigationTable.css","sourcesContent":[".navigation-table {\n padding: 0 10px;\n\n &__content {\n margin-top: 8px;\n overflow-x: auto;\n }\n\n &__meta {\n .meta-table-item {\n grid-template-columns: 140px auto;\n }\n }\n\n .data-table__value {\n position: relative;\n }\n\n .data-table__clipboard-button-wrapper {\n opacity: 0.3;\n position: absolute;\n top: 0;\n right: 0;\n padding: 0;\n }\n}\n"],"sourceRoot":""}
@@ -7,7 +7,7 @@ import type { ErrorBoundaryProps } from '../../internal/DefaultErrorBoundary';
7
7
  /** Pick the tab shown on first render (non-null `table` only). */
8
8
  export type NavigationTableInitialTab = 'schema' | 'preview' | 'meta';
9
9
  export type NavigationTableProps = {
10
- table: NavigationTableData | null;
10
+ table?: NavigationTableData;
11
11
  initialActiveTab?: NavigationTableInitialTab;
12
12
  filter?: string;
13
13
  onFilterChange?: (value: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationTable.d.ts","sourceRoot":"","sources":["../../../../src/modules/NavigationTable/NavigationTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,EAAE,EAAW,MAAM,OAAO,CAAC;AAG1C,OAAO,EACH,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAK1D,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAU5E,kEAAkE;AAClE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAQtE,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,MAAM,EAAE,qBAAqB,EAAE,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,YAAY,CAAC,EAAE,eAAe,CAAC;KAClC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,YAAY,CAAC,EAAE,eAAe,CAAC;QAC/B,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAA;KAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,sBAAsB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8EpD,CAAC"}
1
+ {"version":3,"file":"NavigationTable.d.ts","sourceRoot":"","sources":["../../../../src/modules/NavigationTable/NavigationTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,EAAE,EAAoB,MAAM,OAAO,CAAC;AAGnD,OAAO,EACH,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAK1D,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAY5E,kEAAkE;AAClE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAQtE,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,MAAM,EAAE,qBAAqB,EAAE,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,YAAY,CAAC,EAAE,eAAe,CAAC;KAClC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,YAAY,CAAC,EAAE,eAAe,CAAC;QAC/B,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAA;KAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,sBAAsB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAgGpD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import React, { useState } from 'react';
3
+ import React, { useMemo, useState } from 'react';
4
4
  import cn from 'bem-cn-lite';
5
5
  import { SegmentedRadioGroup } from '@gravity-ui/uikit';
6
6
  import { MetaTable } from '../../components';
@@ -8,6 +8,8 @@ import i18n from './i18n';
8
8
  import { SchemaTab } from './SchemaTab';
9
9
  import { PreviewTab } from './PreviewTab';
10
10
  import "./NavigationTable.css";
11
+ import { sortColumnsBySchema } from './helpers/sortColumnsBySchema';
12
+ import { filterSchema } from './helpers/filterSchema';
11
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
14
  var b = cn('navigation-table');
13
15
 
@@ -45,24 +47,33 @@ export var NavigationTable = function NavigationTable(_ref) {
45
47
  setInternalFilter = _useState4[1];
46
48
  var filter = controlledFilter !== null && controlledFilter !== void 0 ? controlledFilter : internalFilter;
47
49
  var setFilter = controlledOnFilterChange !== null && controlledOnFilterChange !== void 0 ? controlledOnFilterChange : setInternalFilter;
50
+ var normalizedTable = useMemo(function () {
51
+ if (!table) return null;
52
+ return _objectSpread(_objectSpread({}, table), {}, {
53
+ columns: sortColumnsBySchema(table.columns, table.schema)
54
+ });
55
+ }, [table]);
56
+ var filteredSchema = useMemo(function () {
57
+ return normalizedTable ? filterSchema(normalizedTable.schema, filter) : [];
58
+ }, [normalizedTable, filter]);
48
59
  var handleChangeTab = function handleChangeTab(id) {
49
60
  setActiveTab(id);
50
61
  };
51
- if (!table) {
62
+ if (!normalizedTable) {
52
63
  return /*#__PURE__*/_jsx("div", {
53
64
  className: b(null, className),
54
65
  children: emptyMessage !== null && emptyMessage !== void 0 ? emptyMessage : i18n('context_empty-data')
55
66
  });
56
67
  }
57
68
  var schemaData = {
58
- schema: table.schema,
69
+ schema: filteredSchema,
59
70
  filter: filter,
60
71
  onFilterChange: setFilter,
61
72
  ysonSettings: ysonSettings
62
73
  };
63
74
  var schemaContent = activeTab === "schema" && (renderSchemaTab ? renderSchemaTab(schemaData) : /*#__PURE__*/_jsx(SchemaTab, _objectSpread({}, schemaData)));
64
75
  var previewData = {
65
- table: table,
76
+ table: normalizedTable,
66
77
  onEditorInsert: onInsertTableSelect,
67
78
  ysonSettings: ysonSettings,
68
79
  primitiveTypes: primitiveTypes
@@ -72,9 +83,10 @@ export var NavigationTable = function NavigationTable(_ref) {
72
83
  ErrorBoundaryComponent: ErrorBoundaryComponent
73
84
  })));
74
85
  var metaContent = activeTab === "meta" && (renderMetaTab ? renderMetaTab({
75
- items: table.meta
86
+ items: normalizedTable.meta
76
87
  }) : /*#__PURE__*/_jsx(MetaTable, {
77
- items: table.meta
88
+ className: b('meta'),
89
+ items: normalizedTable.meta
78
90
  }));
79
91
  return /*#__PURE__*/_jsxs("div", {
80
92
  className: b(null, className),
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","cn","SegmentedRadioGroup","MetaTable","i18n","SchemaTab","PreviewTab","jsx","_jsx","jsxs","_jsxs","b","TABLE_TAB_FROM_INITIAL","schema","preview","meta","NavigationTable","_ref","table","initialActiveTab","controlledFilter","filter","controlledOnFilterChange","onFilterChange","onInsertTableSelect","ysonSettings","emptyMessage","primitiveTypes","renderSchemaTab","renderPreviewTab","renderMetaTab","className","logError","ErrorBoundaryComponent","_useState","_useState2","_slicedToArray","activeTab","setActiveTab","_useState3","_useState4","internalFilter","setInternalFilter","setFilter","handleChangeTab","id","children","schemaData","schemaContent","_objectSpread","previewData","onEditorInsert","previewContent","metaContent","items","defaultValue","onUpdate","options","value","content"],"sources":["NavigationTable.tsx"],"sourcesContent":["import React, {FC, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {SegmentedRadioGroup} from '@gravity-ui/uikit';\nimport {\n LogErrorFn,\n NavigationTableData,\n NavigationTableMeta,\n NavigationTableSchema,\n} from '../../types';\nimport type {UnipikaSettings} from '../../internal/Yson/StructuredYson/StructuredYsonTypes';\nimport type {SchemaDataTypeProps} from '../../components';\nimport {MetaTable} from '../../components';\nimport i18n from './i18n';\nimport {SchemaTab} from './SchemaTab';\nimport {PreviewTab} from './PreviewTab';\nimport './NavigationTable.scss';\nimport type {ErrorBoundaryProps} from '../../internal/DefaultErrorBoundary';\n\nconst b = cn('navigation-table');\n\nconst enum TableTab {\n Schema = 'schema',\n Preview = 'preview',\n Meta = 'meta',\n}\n\n/** Pick the tab shown on first render (non-null `table` only). */\nexport type NavigationTableInitialTab = 'schema' | 'preview' | 'meta';\n\nconst TABLE_TAB_FROM_INITIAL: Record<NavigationTableInitialTab, TableTab> = {\n schema: TableTab.Schema,\n preview: TableTab.Preview,\n meta: TableTab.Meta,\n};\n\nexport type NavigationTableProps = {\n table: NavigationTableData | null;\n initialActiveTab?: NavigationTableInitialTab;\n filter?: string;\n onFilterChange?: (value: string) => void;\n onInsertTableSelect?: () => void | Promise<void>;\n ysonSettings?: UnipikaSettings;\n emptyMessage?: React.ReactNode;\n primitiveTypes?: SchemaDataTypeProps['primitiveTypes'];\n renderSchemaTab?: (props: {\n schema: NavigationTableSchema[];\n filter: string;\n onFilterChange: (value: string) => void;\n ysonSettings?: UnipikaSettings;\n }) => React.ReactNode;\n renderPreviewTab?: (props: {\n table: NavigationTableData;\n onEditorInsert?: () => void | Promise<void>;\n ysonSettings?: UnipikaSettings;\n primitiveTypes?: SchemaDataTypeProps['primitiveTypes'];\n }) => React.ReactNode;\n renderMetaTab?: (props: {items: NavigationTableMeta[][]}) => React.ReactNode;\n className?: string;\n logError?: LogErrorFn;\n ErrorBoundaryComponent?: React.ComponentType<ErrorBoundaryProps>;\n};\n\nexport const NavigationTable: FC<NavigationTableProps> = ({\n table,\n initialActiveTab,\n filter: controlledFilter,\n onFilterChange: controlledOnFilterChange,\n onInsertTableSelect,\n ysonSettings,\n emptyMessage,\n primitiveTypes,\n renderSchemaTab,\n renderPreviewTab,\n renderMetaTab,\n className,\n logError,\n ErrorBoundaryComponent,\n}) => {\n const [activeTab, setActiveTab] = useState<TableTab>(() =>\n initialActiveTab ? TABLE_TAB_FROM_INITIAL[initialActiveTab] : TableTab.Schema,\n );\n const [internalFilter, setInternalFilter] = useState('');\n const filter = controlledFilter ?? internalFilter;\n const setFilter = controlledOnFilterChange ?? setInternalFilter;\n\n const handleChangeTab = (id: string) => {\n setActiveTab(id as TableTab);\n };\n\n if (!table) {\n return (\n <div className={b(null, className)}>{emptyMessage ?? i18n('context_empty-data')}</div>\n );\n }\n\n const schemaData = {schema: table.schema, filter, onFilterChange: setFilter, ysonSettings};\n const schemaContent =\n activeTab === TableTab.Schema &&\n (renderSchemaTab ? renderSchemaTab(schemaData) : <SchemaTab {...schemaData} />);\n\n const previewData = {\n table,\n onEditorInsert: onInsertTableSelect,\n ysonSettings,\n primitiveTypes,\n };\n const previewContent =\n activeTab === TableTab.Preview &&\n (renderPreviewTab ? (\n renderPreviewTab(previewData)\n ) : (\n <PreviewTab\n {...previewData}\n logError={logError}\n ErrorBoundaryComponent={ErrorBoundaryComponent}\n />\n ));\n\n const metaContent =\n activeTab === TableTab.Meta &&\n (renderMetaTab ? renderMetaTab({items: table.meta}) : <MetaTable items={table.meta} />);\n\n return (\n <div className={b(null, className)}>\n <SegmentedRadioGroup\n defaultValue={activeTab}\n onUpdate={handleChangeTab}\n options={[\n {value: TableTab.Schema, content: i18n('title_schema')},\n {value: TableTab.Preview, content: i18n('title_preview')},\n {value: TableTab.Meta, content: i18n('title_meta')},\n ]}\n />\n <div className={b('content')}>\n {schemaContent}\n {previewContent}\n {metaContent}\n </div>\n </div>\n );\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAOC,QAAQ,QAAO,OAAO;AACzC,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,mBAAmB,QAAO,mBAAmB;AASrD,SAAQC,SAAS,QAAO,kBAAkB;AAC1C,OAAOC,IAAI,MAAM,QAAQ;AACzB,SAAQC,SAAS,QAAO,aAAa;AACrC,SAAQC,UAAU,QAAO,cAAc;AACvC,OAAO,uBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGhC,IAAMC,CAAC,GAAGV,EAAE,CAAC,kBAAkB,CAAC;;AAQhC;;AAGA,IAAMW,sBAAmE,GAAG;EACxEC,MAAM,UAAiB;EACvBC,OAAO,WAAkB;EACzBC,IAAI;AACR,CAAC;AA6BD,OAAO,IAAMC,eAAyC,GAAG,SAA5CA,eAAyCA,CAAAC,IAAA,EAehD;EAAA,IAdFC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IACRC,gBAAgB,GAAAH,IAAA,CAAxBI,MAAM;IACUC,wBAAwB,GAAAL,IAAA,CAAxCM,cAAc;IACdC,mBAAmB,GAAAP,IAAA,CAAnBO,mBAAmB;IACnBC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IACZC,YAAY,GAAAT,IAAA,CAAZS,YAAY;IACZC,cAAc,GAAAV,IAAA,CAAdU,cAAc;IACdC,eAAe,GAAAX,IAAA,CAAfW,eAAe;IACfC,gBAAgB,GAAAZ,IAAA,CAAhBY,gBAAgB;IAChBC,aAAa,GAAAb,IAAA,CAAba,aAAa;IACbC,SAAS,GAAAd,IAAA,CAATc,SAAS;IACTC,QAAQ,GAAAf,IAAA,CAARe,QAAQ;IACRC,sBAAsB,GAAAhB,IAAA,CAAtBgB,sBAAsB;EAEtB,IAAAC,SAAA,GAAkClC,QAAQ,CAAW;MAAA,OACjDmB,gBAAgB,GAAGP,sBAAsB,CAACO,gBAAgB,CAAC,WAAkB;IAAA,CACjF,CAAC;IAAAgB,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAFMG,SAAS,GAAAF,UAAA;IAAEG,YAAY,GAAAH,UAAA;EAG9B,IAAAI,UAAA,GAA4CvC,QAAQ,CAAC,EAAE,CAAC;IAAAwC,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAAjDE,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EACxC,IAAMnB,MAAM,GAAGD,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAIqB,cAAc;EACjD,IAAME,SAAS,GAAGrB,wBAAwB,aAAxBA,wBAAwB,cAAxBA,wBAAwB,GAAIoB,iBAAiB;EAE/D,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,EAAU,EAAK;IACpCP,YAAY,CAACO,EAAc,CAAC;EAChC,CAAC;EAED,IAAI,CAAC3B,KAAK,EAAE;IACR,oBACIV,IAAA;MAAKuB,SAAS,EAAEpB,CAAC,CAAC,IAAI,EAAEoB,SAAS,CAAE;MAAAe,QAAA,EAAEpB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAItB,IAAI,CAAC,oBAAoB;IAAC,CAAM,CAAC;EAE9F;EAEA,IAAM2C,UAAU,GAAG;IAAClC,MAAM,EAAEK,KAAK,CAACL,MAAM;IAAEQ,MAAM,EAANA,MAAM;IAAEE,cAAc,EAAEoB,SAAS;IAAElB,YAAY,EAAZA;EAAY,CAAC;EAC1F,IAAMuB,aAAa,GACfX,SAAS,aAAoB,KAC5BT,eAAe,GAAGA,eAAe,CAACmB,UAAU,CAAC,gBAAGvC,IAAA,CAACH,SAAS,EAAA4C,aAAA,KAAKF,UAAU,CAAG,CAAC,CAAC;EAEnF,IAAMG,WAAW,GAAG;IAChBhC,KAAK,EAALA,KAAK;IACLiC,cAAc,EAAE3B,mBAAmB;IACnCC,YAAY,EAAZA,YAAY;IACZE,cAAc,EAAdA;EACJ,CAAC;EACD,IAAMyB,cAAc,GAChBf,SAAS,cAAqB,KAC7BR,gBAAgB,GACbA,gBAAgB,CAACqB,WAAW,CAAC,gBAE7B1C,IAAA,CAACF,UAAU,EAAA2C,aAAA,CAAAA,aAAA,KACHC,WAAW;IACflB,QAAQ,EAAEA,QAAS;IACnBC,sBAAsB,EAAEA;EAAuB,EAClD,CACJ,CAAC;EAEN,IAAMoB,WAAW,GACbhB,SAAS,WAAkB,KAC1BP,aAAa,GAAGA,aAAa,CAAC;IAACwB,KAAK,EAAEpC,KAAK,CAACH;EAAI,CAAC,CAAC,gBAAGP,IAAA,CAACL,SAAS;IAACmD,KAAK,EAAEpC,KAAK,CAACH;EAAK,CAAE,CAAC,CAAC;EAE3F,oBACIL,KAAA;IAAKqB,SAAS,EAAEpB,CAAC,CAAC,IAAI,EAAEoB,SAAS,CAAE;IAAAe,QAAA,gBAC/BtC,IAAA,CAACN,mBAAmB;MAChBqD,YAAY,EAAElB,SAAU;MACxBmB,QAAQ,EAAEZ,eAAgB;MAC1Ba,OAAO,EAAE,CACL;QAACC,KAAK,UAAiB;QAAEC,OAAO,EAAEvD,IAAI,CAAC,cAAc;MAAC,CAAC,EACvD;QAACsD,KAAK,WAAkB;QAAEC,OAAO,EAAEvD,IAAI,CAAC,eAAe;MAAC,CAAC,EACzD;QAACsD,KAAK,QAAe;QAAEC,OAAO,EAAEvD,IAAI,CAAC,YAAY;MAAC,CAAC;IACrD,CACL,CAAC,eACFM,KAAA;MAAKqB,SAAS,EAAEpB,CAAC,CAAC,SAAS,CAAE;MAAAmC,QAAA,GACxBE,aAAa,EACbI,cAAc,EACdC,WAAW;IAAA,CACX,CAAC;EAAA,CACL,CAAC;AAEd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useState","cn","SegmentedRadioGroup","MetaTable","i18n","SchemaTab","PreviewTab","sortColumnsBySchema","filterSchema","jsx","_jsx","jsxs","_jsxs","b","TABLE_TAB_FROM_INITIAL","schema","preview","meta","NavigationTable","_ref","table","initialActiveTab","controlledFilter","filter","controlledOnFilterChange","onFilterChange","onInsertTableSelect","ysonSettings","emptyMessage","primitiveTypes","renderSchemaTab","renderPreviewTab","renderMetaTab","className","logError","ErrorBoundaryComponent","_useState","_useState2","_slicedToArray","activeTab","setActiveTab","_useState3","_useState4","internalFilter","setInternalFilter","setFilter","normalizedTable","_objectSpread","columns","filteredSchema","handleChangeTab","id","children","schemaData","schemaContent","previewData","onEditorInsert","previewContent","metaContent","items","defaultValue","onUpdate","options","value","content"],"sources":["NavigationTable.tsx"],"sourcesContent":["import React, {FC, useMemo, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {SegmentedRadioGroup} from '@gravity-ui/uikit';\nimport {\n LogErrorFn,\n NavigationTableData,\n NavigationTableMeta,\n NavigationTableSchema,\n} from '../../types';\nimport type {UnipikaSettings} from '../../internal/Yson/StructuredYson/StructuredYsonTypes';\nimport type {SchemaDataTypeProps} from '../../components';\nimport {MetaTable} from '../../components';\nimport i18n from './i18n';\nimport {SchemaTab} from './SchemaTab';\nimport {PreviewTab} from './PreviewTab';\nimport './NavigationTable.scss';\nimport type {ErrorBoundaryProps} from '../../internal/DefaultErrorBoundary';\nimport {sortColumnsBySchema} from './helpers/sortColumnsBySchema';\nimport {filterSchema} from './helpers/filterSchema';\n\nconst b = cn('navigation-table');\n\nconst enum TableTab {\n Schema = 'schema',\n Preview = 'preview',\n Meta = 'meta',\n}\n\n/** Pick the tab shown on first render (non-null `table` only). */\nexport type NavigationTableInitialTab = 'schema' | 'preview' | 'meta';\n\nconst TABLE_TAB_FROM_INITIAL: Record<NavigationTableInitialTab, TableTab> = {\n schema: TableTab.Schema,\n preview: TableTab.Preview,\n meta: TableTab.Meta,\n};\n\nexport type NavigationTableProps = {\n table?: NavigationTableData;\n initialActiveTab?: NavigationTableInitialTab;\n filter?: string;\n onFilterChange?: (value: string) => void;\n onInsertTableSelect?: () => void | Promise<void>;\n ysonSettings?: UnipikaSettings;\n emptyMessage?: React.ReactNode;\n primitiveTypes?: SchemaDataTypeProps['primitiveTypes'];\n renderSchemaTab?: (props: {\n schema: NavigationTableSchema[];\n filter: string;\n onFilterChange: (value: string) => void;\n ysonSettings?: UnipikaSettings;\n }) => React.ReactNode;\n renderPreviewTab?: (props: {\n table: NavigationTableData;\n onEditorInsert?: () => void | Promise<void>;\n ysonSettings?: UnipikaSettings;\n primitiveTypes?: SchemaDataTypeProps['primitiveTypes'];\n }) => React.ReactNode;\n renderMetaTab?: (props: {items: NavigationTableMeta[][]}) => React.ReactNode;\n className?: string;\n logError?: LogErrorFn;\n ErrorBoundaryComponent?: React.ComponentType<ErrorBoundaryProps>;\n};\n\nexport const NavigationTable: FC<NavigationTableProps> = ({\n table,\n initialActiveTab,\n filter: controlledFilter,\n onFilterChange: controlledOnFilterChange,\n onInsertTableSelect,\n ysonSettings,\n emptyMessage,\n primitiveTypes,\n renderSchemaTab,\n renderPreviewTab,\n renderMetaTab,\n className,\n logError,\n ErrorBoundaryComponent,\n}) => {\n const [activeTab, setActiveTab] = useState<TableTab>(() =>\n initialActiveTab ? TABLE_TAB_FROM_INITIAL[initialActiveTab] : TableTab.Schema,\n );\n const [internalFilter, setInternalFilter] = useState('');\n const filter = controlledFilter ?? internalFilter;\n const setFilter = controlledOnFilterChange ?? setInternalFilter;\n\n const normalizedTable = useMemo(() => {\n if (!table) return null;\n\n return {\n ...table,\n columns: sortColumnsBySchema(table.columns, table.schema),\n };\n }, [table]);\n\n const filteredSchema = useMemo(\n () => (normalizedTable ? filterSchema(normalizedTable.schema, filter) : []),\n [normalizedTable, filter],\n );\n\n const handleChangeTab = (id: string) => {\n setActiveTab(id as TableTab);\n };\n\n if (!normalizedTable) {\n return (\n <div className={b(null, className)}>{emptyMessage ?? i18n('context_empty-data')}</div>\n );\n }\n\n const schemaData = {schema: filteredSchema, filter, onFilterChange: setFilter, ysonSettings};\n const schemaContent =\n activeTab === TableTab.Schema &&\n (renderSchemaTab ? renderSchemaTab(schemaData) : <SchemaTab {...schemaData} />);\n\n const previewData = {\n table: normalizedTable,\n onEditorInsert: onInsertTableSelect,\n ysonSettings,\n primitiveTypes,\n };\n const previewContent =\n activeTab === TableTab.Preview &&\n (renderPreviewTab ? (\n renderPreviewTab(previewData)\n ) : (\n <PreviewTab\n {...previewData}\n logError={logError}\n ErrorBoundaryComponent={ErrorBoundaryComponent}\n />\n ));\n\n const metaContent =\n activeTab === TableTab.Meta &&\n (renderMetaTab ? (\n renderMetaTab({items: normalizedTable.meta})\n ) : (\n <MetaTable className={b('meta')} items={normalizedTable.meta} />\n ));\n\n return (\n <div className={b(null, className)}>\n <SegmentedRadioGroup\n defaultValue={activeTab}\n onUpdate={handleChangeTab}\n options={[\n {value: TableTab.Schema, content: i18n('title_schema')},\n {value: TableTab.Preview, content: i18n('title_preview')},\n {value: TableTab.Meta, content: i18n('title_meta')},\n ]}\n />\n <div className={b('content')}>\n {schemaContent}\n {previewContent}\n {metaContent}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,12 @@
6
6
  overflow-x: auto;
7
7
  }
8
8
 
9
+ &__meta {
10
+ .meta-table-item {
11
+ grid-template-columns: 140px auto;
12
+ }
13
+ }
14
+
9
15
  .data-table__value {
10
16
  position: relative;
11
17
  }
@@ -24,7 +24,7 @@ var meta = {
24
24
  return /*#__PURE__*/_jsx("div", {
25
25
  style: navigationTableStoryFrameStyle,
26
26
  children: /*#__PURE__*/_jsx(NavigationTable, {
27
- table: state === 'empty' ? null : navigationTableSampleTable,
27
+ table: state === 'empty' ? undefined : navigationTableSampleTable,
28
28
  emptyMessage: navigationTableStoryEmptyMessage,
29
29
  ysonSettings: YSON_DEFAULT_UNIPIKA_SETTINGS,
30
30
  logError: function logError() {
@@ -1 +1 @@
1
- {"version":3,"names":["YSON_DEFAULT_UNIPIKA_SETTINGS","NavigationTable","navigationTableSampleTable","navigationTableStoryEmptyMessage","navigationTableStoryFrameStyle","navigationTableVisualCaseOrder","jsx","_jsx","meta","title","tags","args","state","argTypes","control","options","_toConsumableArray","description","parameters","layout","render","_ref","style","children","table","emptyMessage","ysonSettings","logError","undefined","onInsertTableSelect","Default"],"sources":["NavigationTable.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\n\nimport {YSON_DEFAULT_UNIPIKA_SETTINGS} from '../../internal/Yson';\nimport {NavigationTable} from './NavigationTable';\nimport {\n type NavigationTableStoryState,\n navigationTableSampleTable,\n navigationTableStoryEmptyMessage,\n navigationTableStoryFrameStyle,\n navigationTableVisualCaseOrder,\n} from './navigationTableStorySetup';\n\ntype DemoArgs = {\n state: NavigationTableStoryState;\n};\n\nconst meta: Meta<DemoArgs> = {\n title: 'Modules/NavigationTable',\n tags: ['autodocs'],\n args: {\n state: 'withData',\n },\n argTypes: {\n state: {\n control: 'inline-radio',\n options: [...navigationTableVisualCaseOrder],\n description:\n 'Loaded table (Schema / Preview / Meta tabs) or empty state when `table` is null.',\n },\n },\n parameters: {\n layout: 'padded',\n },\n render: ({state}: DemoArgs) => (\n <div style={navigationTableStoryFrameStyle}>\n <NavigationTable\n table={state === 'empty' ? null : navigationTableSampleTable}\n emptyMessage={navigationTableStoryEmptyMessage}\n ysonSettings={YSON_DEFAULT_UNIPIKA_SETTINGS}\n logError={() => undefined}\n onInsertTableSelect={() => undefined}\n />\n </div>\n ),\n};\n\nexport default meta;\n\nexport const Default: StoryObj<DemoArgs> = {};\n"],"mappings":";AAEA,SAAQA,6BAA6B,QAAO,qBAAqB;AACjE,SAAQC,eAAe,QAAO,mBAAmB;AACjD,SAEIC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,EAC9BC,8BAA8B,QAC3B,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMrC,IAAMC,IAAoB,GAAG;EACzBC,KAAK,EAAE,yBAAyB;EAChCC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,IAAI,EAAE;IACFC,KAAK,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACND,KAAK,EAAE;MACHE,OAAO,EAAE,cAAc;MACvBC,OAAO,EAAAC,kBAAA,CAAMX,8BAA8B,CAAC;MAC5CY,WAAW,EACP;IACR;EACJ,CAAC;EACDC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,MAAM,EAAE,SAARA,MAAMA,CAAAC,IAAA;IAAA,IAAIT,KAAK,GAAAS,IAAA,CAALT,KAAK;IAAA,oBACXL,IAAA;MAAKe,KAAK,EAAElB,8BAA+B;MAAAmB,QAAA,eACvChB,IAAA,CAACN,eAAe;QACZuB,KAAK,EAAEZ,KAAK,KAAK,OAAO,GAAG,IAAI,GAAGV,0BAA2B;QAC7DuB,YAAY,EAAEtB,gCAAiC;QAC/CuB,YAAY,EAAE1B,6BAA8B;QAC5C2B,QAAQ,EAAE,SAAVA,QAAQA,CAAA;UAAA,OAAQC,SAAS;QAAA,CAAC;QAC1BC,mBAAmB,EAAE,SAArBA,mBAAmBA,CAAA;UAAA,OAAQD,SAAS;QAAA;MAAC,CACxC;IAAC,CACD,CAAC;EAAA;AAEd,CAAC;AAED,eAAepB,IAAI;AAEnB,OAAO,IAAMsB,OAA2B,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["YSON_DEFAULT_UNIPIKA_SETTINGS","NavigationTable","navigationTableSampleTable","navigationTableStoryEmptyMessage","navigationTableStoryFrameStyle","navigationTableVisualCaseOrder","jsx","_jsx","meta","title","tags","args","state","argTypes","control","options","_toConsumableArray","description","parameters","layout","render","_ref","style","children","table","undefined","emptyMessage","ysonSettings","logError","onInsertTableSelect","Default"],"sources":["NavigationTable.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\n\nimport {YSON_DEFAULT_UNIPIKA_SETTINGS} from '../../internal/Yson';\nimport {NavigationTable} from './NavigationTable';\nimport {\n type NavigationTableStoryState,\n navigationTableSampleTable,\n navigationTableStoryEmptyMessage,\n navigationTableStoryFrameStyle,\n navigationTableVisualCaseOrder,\n} from './navigationTableStorySetup';\n\ntype DemoArgs = {\n state: NavigationTableStoryState;\n};\n\nconst meta: Meta<DemoArgs> = {\n title: 'Modules/NavigationTable',\n tags: ['autodocs'],\n args: {\n state: 'withData',\n },\n argTypes: {\n state: {\n control: 'inline-radio',\n options: [...navigationTableVisualCaseOrder],\n description:\n 'Loaded table (Schema / Preview / Meta tabs) or empty state when `table` is null.',\n },\n },\n parameters: {\n layout: 'padded',\n },\n render: ({state}: DemoArgs) => (\n <div style={navigationTableStoryFrameStyle}>\n <NavigationTable\n table={state === 'empty' ? undefined : navigationTableSampleTable}\n emptyMessage={navigationTableStoryEmptyMessage}\n ysonSettings={YSON_DEFAULT_UNIPIKA_SETTINGS}\n logError={() => undefined}\n onInsertTableSelect={() => undefined}\n />\n </div>\n ),\n};\n\nexport default meta;\n\nexport const Default: StoryObj<DemoArgs> = {};\n"],"mappings":";AAEA,SAAQA,6BAA6B,QAAO,qBAAqB;AACjE,SAAQC,eAAe,QAAO,mBAAmB;AACjD,SAEIC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,EAC9BC,8BAA8B,QAC3B,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMrC,IAAMC,IAAoB,GAAG;EACzBC,KAAK,EAAE,yBAAyB;EAChCC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,IAAI,EAAE;IACFC,KAAK,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACND,KAAK,EAAE;MACHE,OAAO,EAAE,cAAc;MACvBC,OAAO,EAAAC,kBAAA,CAAMX,8BAA8B,CAAC;MAC5CY,WAAW,EACP;IACR;EACJ,CAAC;EACDC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,MAAM,EAAE,SAARA,MAAMA,CAAAC,IAAA;IAAA,IAAIT,KAAK,GAAAS,IAAA,CAALT,KAAK;IAAA,oBACXL,IAAA;MAAKe,KAAK,EAAElB,8BAA+B;MAAAmB,QAAA,eACvChB,IAAA,CAACN,eAAe;QACZuB,KAAK,EAAEZ,KAAK,KAAK,OAAO,GAAGa,SAAS,GAAGvB,0BAA2B;QAClEwB,YAAY,EAAEvB,gCAAiC;QAC/CwB,YAAY,EAAE3B,6BAA8B;QAC5C4B,QAAQ,EAAE,SAAVA,QAAQA,CAAA;UAAA,OAAQH,SAAS;QAAA,CAAC;QAC1BI,mBAAmB,EAAE,SAArBA,mBAAmBA,CAAA;UAAA,OAAQJ,SAAS;QAAA;MAAC,CACxC;IAAC,CACD,CAAC;EAAA;AAEd,CAAC;AAED,eAAejB,IAAI;AAEnB,OAAO,IAAMsB,OAA2B,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -92,7 +92,7 @@ export var SchemaTab = function SchemaTab(_ref) {
92
92
  data: schema,
93
93
  columns: columns,
94
94
  useThemeYT: true
95
- })]
95
+ }, filter)]
96
96
  });
97
97
  };
98
98
  // #sourceMappingURL=SchemaTab.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Flex","Text","GravityText","Icon","TextInput","BarsAscendingAlignLeftArrowUpIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","BarsAscendingAlignLeftArrowDownIcon","unipika","DataTableYT","YSON_DEFAULT_UNIPIKA_SETTINGS","Yson","i18n","jsx","jsxs","_jsxs","Fragment","_Fragment","SchemaTab","_ref","schema","filter","onFilterChange","ysonSettings","cellUnipikaSettings","columns","name","header","render","_ref2","row","alignItems","gap","Boolean","sort_order","data","size","value","unescapeKeyValue","settings","asHTML","inline","_ref3","type","required","variant","placeholder","onUpdate","hasClear","useThemeYT"],"sources":["SchemaTab.tsx"],"sourcesContent":["import {FC, useMemo} from 'react';\nimport {Flex, Text as GravityText, Icon, TextInput} from '@gravity-ui/uikit';\nimport BarsAscendingAlignLeftArrowUpIcon from '@gravity-ui/icons/svgs/bars-ascending-align-left-arrow-up.svg';\nimport BarsAscendingAlignLeftArrowDownIcon from '@gravity-ui/icons/svgs/bars-ascending-align-left-arrow-down.svg';\nimport type {NavigationTableSchema} from '../../types';\nimport {Column} from '@gravity-ui/react-data-table';\nimport unipika from '../../utils/unipika';\nimport {DataTableYT} from '../../components';\nimport {YSON_DEFAULT_UNIPIKA_SETTINGS, Yson} from '../../internal/Yson';\nimport type {UnipikaSettings} from '../../internal/Yson/StructuredYson/StructuredYsonTypes';\nimport i18n from './i18n';\n\ntype SchemaTabProps = {\n schema: NavigationTableSchema[];\n filter: string;\n onFilterChange: (value: string) => void;\n ysonSettings?: UnipikaSettings;\n};\n\nexport const SchemaTab: FC<SchemaTabProps> = ({schema, filter, onFilterChange, ysonSettings}) => {\n const cellUnipikaSettings = ysonSettings ?? YSON_DEFAULT_UNIPIKA_SETTINGS;\n\n const columns: Column<NavigationTableSchema>[] = useMemo(\n () => [\n {\n name: 'name',\n header: 'Name',\n render: ({row}) => {\n return (\n <Flex alignItems=\"center\" gap={1}>\n {Boolean(row.sort_order) && (\n <Icon\n data={\n row.sort_order === 'descending'\n ? BarsAscendingAlignLeftArrowUpIcon\n : BarsAscendingAlignLeftArrowDownIcon\n }\n size={16}\n />\n )}{' '}\n <Yson\n value={unipika.unescapeKeyValue(row.name)}\n settings={{...cellUnipikaSettings, asHTML: false}}\n inline\n />\n </Flex>\n );\n },\n },\n {\n name: 'type',\n header: 'Type v3',\n render: ({row}) => {\n return (\n <>\n {row.type}{' '}\n {!row.required && (\n <GravityText variant=\"caption-1\">optional</GravityText>\n )}\n </>\n );\n },\n },\n ],\n [cellUnipikaSettings],\n );\n\n return (\n <>\n <TextInput\n value={filter}\n placeholder={i18n('field_filter-by-name')}\n onUpdate={onFilterChange}\n hasClear\n />\n <DataTableYT data={schema} columns={columns} useThemeYT />\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Flex","Text","GravityText","Icon","TextInput","BarsAscendingAlignLeftArrowUpIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","BarsAscendingAlignLeftArrowDownIcon","unipika","DataTableYT","YSON_DEFAULT_UNIPIKA_SETTINGS","Yson","i18n","jsx","jsxs","_jsxs","Fragment","_Fragment","SchemaTab","_ref","schema","filter","onFilterChange","ysonSettings","cellUnipikaSettings","columns","name","header","render","_ref2","row","alignItems","gap","Boolean","sort_order","data","size","value","unescapeKeyValue","settings","asHTML","inline","_ref3","type","required","variant","placeholder","onUpdate","hasClear","useThemeYT"],"sources":["SchemaTab.tsx"],"sourcesContent":["import {FC, useMemo} from 'react';\nimport {Flex, Text as GravityText, Icon, TextInput} from '@gravity-ui/uikit';\nimport BarsAscendingAlignLeftArrowUpIcon from '@gravity-ui/icons/svgs/bars-ascending-align-left-arrow-up.svg';\nimport BarsAscendingAlignLeftArrowDownIcon from '@gravity-ui/icons/svgs/bars-ascending-align-left-arrow-down.svg';\nimport type {NavigationTableSchema} from '../../types';\nimport {Column} from '@gravity-ui/react-data-table';\nimport unipika from '../../utils/unipika';\nimport {DataTableYT} from '../../components';\nimport {YSON_DEFAULT_UNIPIKA_SETTINGS, Yson} from '../../internal/Yson';\nimport type {UnipikaSettings} from '../../internal/Yson/StructuredYson/StructuredYsonTypes';\nimport i18n from './i18n';\n\ntype SchemaTabProps = {\n schema: NavigationTableSchema[];\n filter: string;\n onFilterChange: (value: string) => void;\n ysonSettings?: UnipikaSettings;\n};\n\nexport const SchemaTab: FC<SchemaTabProps> = ({schema, filter, onFilterChange, ysonSettings}) => {\n const cellUnipikaSettings = ysonSettings ?? YSON_DEFAULT_UNIPIKA_SETTINGS;\n\n const columns: Column<NavigationTableSchema>[] = useMemo(\n () => [\n {\n name: 'name',\n header: 'Name',\n render: ({row}) => {\n return (\n <Flex alignItems=\"center\" gap={1}>\n {Boolean(row.sort_order) && (\n <Icon\n data={\n row.sort_order === 'descending'\n ? BarsAscendingAlignLeftArrowUpIcon\n : BarsAscendingAlignLeftArrowDownIcon\n }\n size={16}\n />\n )}{' '}\n <Yson\n value={unipika.unescapeKeyValue(row.name)}\n settings={{...cellUnipikaSettings, asHTML: false}}\n inline\n />\n </Flex>\n );\n },\n },\n {\n name: 'type',\n header: 'Type v3',\n render: ({row}) => {\n return (\n <>\n {row.type}{' '}\n {!row.required && (\n <GravityText variant=\"caption-1\">optional</GravityText>\n )}\n </>\n );\n },\n },\n ],\n [cellUnipikaSettings],\n );\n\n return (\n <>\n <TextInput\n value={filter}\n placeholder={i18n('field_filter-by-name')}\n onUpdate={onFilterChange}\n hasClear\n />\n <DataTableYT key={filter} data={schema} columns={columns} useThemeYT />\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { NavigationTableSchema } from '../../../types';
2
+ export declare const filterSchema: (schema: NavigationTableSchema[], filter: string) => NavigationTableSchema[];
3
+ //# sourceMappingURL=filterSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterSchema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/NavigationTable/helpers/filterSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAKrD,eAAO,MAAM,YAAY,GAAI,QAAQ,qBAAqB,EAAE,EAAE,QAAQ,MAAM,4BAM3E,CAAC"}
@@ -0,0 +1,12 @@
1
+ var filterValueInText = function filterValueInText(value, filter) {
2
+ return value.toLowerCase().includes(filter.toLowerCase());
3
+ };
4
+ export var filterSchema = function filterSchema(schema, filter) {
5
+ if (!filter) return schema;
6
+ return schema.filter(function (_ref) {
7
+ var name = _ref.name,
8
+ type = _ref.type;
9
+ return filterValueInText(name, filter) || filterValueInText(type, filter);
10
+ });
11
+ };
12
+ // #sourceMappingURL=filterSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["filterValueInText","value","filter","toLowerCase","includes","filterSchema","schema","_ref","name","type"],"sources":["filterSchema.ts"],"sourcesContent":["import {NavigationTableSchema} from '../../../types';\n\nconst filterValueInText = (value: string, filter: string) =>\n value.toLowerCase().includes(filter.toLowerCase());\n\nexport const filterSchema = (schema: NavigationTableSchema[], filter: string) => {\n if (!filter) return schema;\n\n return schema.filter(({name, type}) => {\n return filterValueInText(name, filter) || filterValueInText(type, filter);\n });\n};\n"],"mappings":"AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAa,EAAEC,MAAc;EAAA,OACpDD,KAAK,CAACE,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACF,MAAM,CAACC,WAAW,CAAC,CAAC,CAAC;AAAA;AAEtD,OAAO,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAA+B,EAAEJ,MAAc,EAAK;EAC7E,IAAI,CAACA,MAAM,EAAE,OAAOI,MAAM;EAE1B,OAAOA,MAAM,CAACJ,MAAM,CAAC,UAAAK,IAAA,EAAkB;IAAA,IAAhBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAC7B,OAAOT,iBAAiB,CAACQ,IAAI,EAAEN,MAAM,CAAC,IAAIF,iBAAiB,CAACS,IAAI,EAAEP,MAAM,CAAC;EAC7E,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { NavigationTableData, NavigationTableSchema } from '../../../types';
2
+ export declare const sortColumnsBySchema: (columns: NavigationTableData["columns"], schema: NavigationTableSchema[]) => string[];
3
+ //# sourceMappingURL=sortColumnsBySchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortColumnsBySchema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/NavigationTable/helpers/sortColumnsBySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAE1E,eAAO,MAAM,mBAAmB,GAC5B,SAAS,mBAAmB,CAAC,SAAS,CAAC,EACvC,QAAQ,qBAAqB,EAAE,aAoBlC,CAAC"}
@@ -0,0 +1,25 @@
1
+ export var sortColumnsBySchema = function sortColumnsBySchema(columns, schema) {
2
+ var schemaOrder = new Map(schema.map(function (_ref, index) {
3
+ var name = _ref.name;
4
+ return [name, index];
5
+ }));
6
+ return columns.map(function (name, index) {
7
+ return {
8
+ name: name,
9
+ index: index
10
+ };
11
+ }).sort(function (a, b) {
12
+ var schemaIndexA = schemaOrder.get(a.name);
13
+ var schemaIndexB = schemaOrder.get(b.name);
14
+ if (schemaIndexA !== undefined && schemaIndexB !== undefined) {
15
+ return schemaIndexA - schemaIndexB;
16
+ }
17
+ if (schemaIndexA !== undefined) return -1;
18
+ if (schemaIndexB !== undefined) return 1;
19
+ return a.index - b.index;
20
+ }).map(function (_ref2) {
21
+ var name = _ref2.name;
22
+ return name;
23
+ });
24
+ };
25
+ // #sourceMappingURL=sortColumnsBySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sortColumnsBySchema","columns","schema","schemaOrder","Map","map","_ref","index","name","sort","a","b","schemaIndexA","get","schemaIndexB","undefined","_ref2"],"sources":["sortColumnsBySchema.ts"],"sourcesContent":["import {NavigationTableData, NavigationTableSchema} from '../../../types';\n\nexport const sortColumnsBySchema = (\n columns: NavigationTableData['columns'],\n schema: NavigationTableSchema[],\n) => {\n const schemaOrder = new Map(schema.map(({name}, index) => [name, index]));\n\n return columns\n .map((name, index) => ({name, index}))\n .sort((a, b) => {\n const schemaIndexA = schemaOrder.get(a.name);\n const schemaIndexB = schemaOrder.get(b.name);\n\n if (schemaIndexA !== undefined && schemaIndexB !== undefined) {\n return schemaIndexA - schemaIndexB;\n }\n\n if (schemaIndexA !== undefined) return -1;\n if (schemaIndexB !== undefined) return 1;\n\n return a.index - b.index;\n })\n .map(({name}) => name);\n};\n"],"mappings":"AAEA,OAAO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,OAAuC,EACvCC,MAA+B,EAC9B;EACD,IAAMC,WAAW,GAAG,IAAIC,GAAG,CAACF,MAAM,CAACG,GAAG,CAAC,UAAAC,IAAA,EAASC,KAAK;IAAA,IAAZC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAA,OAAa,CAACA,IAAI,EAAED,KAAK,CAAC;EAAA,EAAC,CAAC;EAEzE,OAAON,OAAO,CACTI,GAAG,CAAC,UAACG,IAAI,EAAED,KAAK;IAAA,OAAM;MAACC,IAAI,EAAJA,IAAI;MAAED,KAAK,EAALA;IAAK,CAAC;EAAA,CAAC,CAAC,CACrCE,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IACZ,IAAMC,YAAY,GAAGT,WAAW,CAACU,GAAG,CAACH,CAAC,CAACF,IAAI,CAAC;IAC5C,IAAMM,YAAY,GAAGX,WAAW,CAACU,GAAG,CAACF,CAAC,CAACH,IAAI,CAAC;IAE5C,IAAII,YAAY,KAAKG,SAAS,IAAID,YAAY,KAAKC,SAAS,EAAE;MAC1D,OAAOH,YAAY,GAAGE,YAAY;IACtC;IAEA,IAAIF,YAAY,KAAKG,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,IAAID,YAAY,KAAKC,SAAS,EAAE,OAAO,CAAC;IAExC,OAAOL,CAAC,CAACH,KAAK,GAAGI,CAAC,CAACJ,KAAK;EAC5B,CAAC,CAAC,CACDF,GAAG,CAAC,UAAAW,KAAA;IAAA,IAAER,IAAI,GAAAQ,KAAA,CAAJR,IAAI;IAAA,OAAMA,IAAI;EAAA,EAAC;AAC9B,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ytsaurus/components",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "private": false,
5
5
  "description": "YTsaurus UI component library: navigation table, data display (Yson, Schema, DataTable), navigation API and shared config",
6
6
  "repository": {
@@ -100,5 +100,5 @@
100
100
  "hotkeys-js": "^3.13.15",
101
101
  "lodash": "^4.17.21"
102
102
  },
103
- "gitHead": "5929a79c90f39b44126509f1152fc17dd8079d6a"
103
+ "gitHead": "006a2d75ddb7f3a15072fcfa406227669cec7eca"
104
104
  }