@ytsaurus/components 0.2.2 → 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.
- package/build/esm/components/ClipboardButton/ClipboardButton.d.ts +5 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.d.ts.map +1 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.js +21 -11
- package/build/esm/components/ClipboardButton/ClipboardButton.js.map +1 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.d.ts +1 -0
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.d.ts.map +1 -1
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.js +1 -0
- package/build/esm/components/ClipboardButton/ClipboardButton.stories.js.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.css +3 -0
- package/build/esm/modules/NavigationTable/NavigationTable.css.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.d.ts +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.d.ts.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.js +18 -6
- package/build/esm/modules/NavigationTable/NavigationTable.js.map +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.scss +6 -0
- package/build/esm/modules/NavigationTable/NavigationTable.stories.js +1 -1
- package/build/esm/modules/NavigationTable/NavigationTable.stories.js.map +1 -1
- package/build/esm/modules/NavigationTable/SchemaTab.js +1 -1
- package/build/esm/modules/NavigationTable/SchemaTab.js.map +1 -1
- package/build/esm/modules/NavigationTable/helpers/filterSchema.d.ts +3 -0
- package/build/esm/modules/NavigationTable/helpers/filterSchema.d.ts.map +1 -0
- package/build/esm/modules/NavigationTable/helpers/filterSchema.js +12 -0
- package/build/esm/modules/NavigationTable/helpers/filterSchema.js.map +1 -0
- package/build/esm/modules/NavigationTable/helpers/sortColumnsBySchema.d.ts +3 -0
- package/build/esm/modules/NavigationTable/helpers/sortColumnsBySchema.d.ts.map +1 -0
- package/build/esm/modules/NavigationTable/helpers/sortColumnsBySchema.js +25 -0
- package/build/esm/modules/NavigationTable/helpers/sortColumnsBySchema.js.map +1 -0
- package/package.json +2 -2
|
@@ -4,7 +4,7 @@ import './ClipboardButton.scss';
|
|
|
4
4
|
type ClipboardButtonProps = Omit<ButtonProps, 'onCopy' | 'view'> & {
|
|
5
5
|
view?: ButtonProps['view'] | 'clear';
|
|
6
6
|
className?: string;
|
|
7
|
-
text
|
|
7
|
+
text: string | number;
|
|
8
8
|
shiftText?: string;
|
|
9
9
|
buttonText?: string | null;
|
|
10
10
|
title?: string;
|
|
@@ -75,8 +75,12 @@ export declare class ClipboardButton extends Component<ClipboardButtonProps> {
|
|
|
75
75
|
error: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
76
76
|
};
|
|
77
77
|
buttonRef: React.RefObject<HTMLButtonElement>;
|
|
78
|
+
shiftKeyPressed: boolean;
|
|
78
79
|
handleHotkey: () => void;
|
|
79
80
|
renderHotkey(): import("react/jsx-runtime").JSX.Element | null;
|
|
81
|
+
getTextToCopy: () => string;
|
|
82
|
+
onClickCapture: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
83
|
+
onCopy: (text: string) => void;
|
|
80
84
|
onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
81
85
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
82
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../../src/components/ClipboardButton/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvC,OAAO,EAGH,WAAW,EAGX,SAAS,
|
|
1
|
+
{"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../../src/components/ClipboardButton/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvC,OAAO,EAGH,WAAW,EAGX,SAAS,EACZ,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,wBAAwB,CAAC;AAIhC,KAAK,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG;IAC/D,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAKhD;IAEF,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIT;IAEF,SAAS,qCAAwC;IACjD,eAAe,UAAS;IAExB,YAAY,aAKV;IAEF,YAAY;IAmBZ,aAAa,eAQX;IAEF,cAAc,GAAI,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,UAEhE;IAEF,MAAM,GAAI,MAAM,MAAM,UAKpB;IAEF,OAAO,GAAI,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,UAGzD;IAEF,MAAM;CAgET"}
|
|
@@ -4,10 +4,10 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
|
4
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
5
|
import _callSuper from "@babel/runtime/helpers/callSuper";
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
|
-
var _excluded = ["
|
|
7
|
+
var _excluded = ["buttonText", "hotkey", "timeout", "hoverContent", "className", "visibleOnRowHover", "inlineMargins", "iconSize"];
|
|
8
8
|
import React, { Component } from 'react';
|
|
9
9
|
import cn from 'bem-cn-lite';
|
|
10
|
-
import { Button, CopyToClipboard, Icon
|
|
10
|
+
import { Button, CopyToClipboard, Icon } from '@gravity-ui/uikit';
|
|
11
11
|
var FilesIcon = function FilesIcon(props) {
|
|
12
12
|
return /*#__PURE__*/_jsx("svg", _objectSpread(_objectSpread({}, props), {}, {
|
|
13
13
|
children: /*#__PURE__*/_jsx("path", {
|
|
@@ -78,25 +78,33 @@ export var ClipboardButton = /*#__PURE__*/function (_Component) {
|
|
|
78
78
|
error: XmarkIcon
|
|
79
79
|
};
|
|
80
80
|
_this.buttonRef = /*#__PURE__*/React.createRef();
|
|
81
|
+
_this.shiftKeyPressed = false;
|
|
81
82
|
_this.handleHotkey = function () {
|
|
82
83
|
var current = _this.buttonRef.current;
|
|
83
84
|
if (current !== null && current !== void 0 && current.click) {
|
|
84
85
|
current.click();
|
|
85
86
|
}
|
|
86
87
|
};
|
|
87
|
-
_this.
|
|
88
|
+
_this.getTextToCopy = function () {
|
|
88
89
|
var _this$props = _this.props,
|
|
89
90
|
text = _this$props.text,
|
|
90
|
-
shiftText = _this$props.shiftText
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (event !== null && event !== void 0 && event.shiftKey && shiftText) {
|
|
91
|
+
shiftText = _this$props.shiftText;
|
|
92
|
+
var resText = text.toString() || '';
|
|
93
|
+
if (_this.shiftKeyPressed && shiftText) {
|
|
94
94
|
resText = shiftText;
|
|
95
|
-
copyTextToClipboard(resText);
|
|
96
95
|
}
|
|
96
|
+
return resText;
|
|
97
|
+
};
|
|
98
|
+
_this.onClickCapture = function (event) {
|
|
99
|
+
_this.shiftKeyPressed = event.shiftKey;
|
|
100
|
+
};
|
|
101
|
+
_this.onCopy = function (text) {
|
|
102
|
+
var onCopy = _this.props.onCopy;
|
|
97
103
|
if ('function' === typeof onCopy) {
|
|
98
|
-
onCopy(
|
|
104
|
+
onCopy(text);
|
|
99
105
|
}
|
|
106
|
+
};
|
|
107
|
+
_this.onClick = function (event) {
|
|
100
108
|
event.preventDefault();
|
|
101
109
|
event.stopPropagation();
|
|
102
110
|
};
|
|
@@ -125,7 +133,6 @@ export var ClipboardButton = /*#__PURE__*/function (_Component) {
|
|
|
125
133
|
value: function render() {
|
|
126
134
|
var _this2 = this;
|
|
127
135
|
var _this$props3 = this.props,
|
|
128
|
-
text = _this$props3.text,
|
|
129
136
|
buttonText = _this$props3.buttonText,
|
|
130
137
|
hotkey = _this$props3.hotkey,
|
|
131
138
|
timeout = _this$props3.timeout,
|
|
@@ -146,13 +153,15 @@ export var ClipboardButton = /*#__PURE__*/function (_Component) {
|
|
|
146
153
|
children: /*#__PURE__*/_jsxs(Tooltip, {
|
|
147
154
|
content: hoverContent,
|
|
148
155
|
children: [/*#__PURE__*/_jsx(CopyToClipboard, {
|
|
149
|
-
text:
|
|
156
|
+
text: this.getTextToCopy,
|
|
150
157
|
timeout: timeout,
|
|
158
|
+
onCopy: this.onCopy,
|
|
151
159
|
children: function children(state) {
|
|
152
160
|
return buttonText ? /*#__PURE__*/_jsxs(Button, _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
153
161
|
view: buttonView,
|
|
154
162
|
ref: _this2.buttonRef,
|
|
155
163
|
onClick: _this2.onClick,
|
|
164
|
+
onClickCapture: _this2.onClickCapture,
|
|
156
165
|
children: [/*#__PURE__*/_jsx(Icon, {
|
|
157
166
|
data: _this2.iconByState[state],
|
|
158
167
|
size: resultIconSize
|
|
@@ -161,6 +170,7 @@ export var ClipboardButton = /*#__PURE__*/function (_Component) {
|
|
|
161
170
|
view: buttonView,
|
|
162
171
|
ref: _this2.buttonRef,
|
|
163
172
|
onClick: _this2.onClick,
|
|
173
|
+
onClickCapture: _this2.onClickCapture,
|
|
164
174
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
165
175
|
data: _this2.iconByState[state],
|
|
166
176
|
size: resultIconSize
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","cn","Button","CopyToClipboard","Icon","copyTextToClipboard","FilesIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","CheckIcon","XmarkIcon","Hotkey","Tooltip","jsx","jsxs","_jsxs","block","ClipboardButton","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","iconByState","pending","icon","success","error","buttonRef","createRef","handleHotkey","current","click","onClick","event","_this$props","text","shiftText","onCopy","resText","toString","shiftKey","preventDefault","stopPropagation","_inherits","_createClass","key","value","renderHotkey","_this$props2","hotkey","hotkeyScope","settings","keys","scope","handler","render","_this2","_this$props3","buttonText","timeout","hoverContent","className","visibleOnRowHover","inlineMargins","iconSize","buttonProps","_objectWithoutProperties","_excluded","resultIconSize","buttonView","view","content","state","ref","data","size"],"sources":["ClipboardButton.tsx"],"sourcesContent":["import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {\n Button,\n ButtonButtonProps,\n ButtonProps,\n CopyToClipboard,\n Icon,\n IconProps,\n copyTextToClipboard,\n} from '@gravity-ui/uikit';\nimport FilesIcon from '@gravity-ui/icons/svgs/files.svg';\nimport CheckIcon from '@gravity-ui/icons/svgs/check.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\n\nimport {Hotkey} from '../Hotkey';\nimport {Tooltip} from '../Tooltip';\n\nimport './ClipboardButton.scss';\n\nconst block = cn('yt-clipboard-button');\n\ntype ClipboardButtonProps = Omit<ButtonProps, 'onCopy' | 'view'> & {\n view?: ButtonProps['view'] | 'clear';\n className?: string;\n text?: string | number;\n shiftText?: string;\n buttonText?: string | null;\n title?: string;\n hoverContent?: React.ReactNode;\n hotkey?: string;\n hotkeyScope?: string;\n onCopy?: (text: string) => void;\n timeout?: number;\n visibleOnRowHover?: boolean;\n inlineMargins?: boolean;\n icon?: IconProps['data'];\n iconSize?: IconProps['size'];\n};\n\nexport class ClipboardButton extends Component<ClipboardButtonProps> {\n static defaultProps: Partial<ClipboardButtonProps> = {\n size: 'm',\n hotkeyScope: 'all',\n timeout: 500,\n view: 'outlined',\n };\n\n iconByState = {\n pending: this.props.icon || FilesIcon,\n success: CheckIcon,\n error: XmarkIcon,\n };\n\n buttonRef = React.createRef<HTMLButtonElement>();\n\n handleHotkey = () => {\n const {current} = this.buttonRef;\n if (current?.click) {\n current.click();\n }\n };\n\n renderHotkey() {\n const {hotkey, hotkeyScope} = this.props;\n if (!hotkey || !hotkeyScope) {\n return null;\n }\n\n return (\n <Hotkey\n settings={[\n {\n keys: hotkey,\n scope: hotkeyScope,\n handler: this.handleHotkey,\n },\n ]}\n />\n );\n }\n\n onClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n const {text, shiftText, onCopy} = this.props;\n let resText = text?.toString() || '';\n if (event?.shiftKey && shiftText) {\n resText = shiftText;\n copyTextToClipboard(resText);\n }\n if ('function' === typeof onCopy) {\n onCopy(resText);\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n render() {\n const {\n text,\n buttonText,\n hotkey,\n timeout,\n hoverContent,\n className,\n visibleOnRowHover,\n inlineMargins,\n iconSize,\n ...buttonProps\n } = this.props;\n\n const resultIconSize = iconSize || 13;\n const buttonView =\n this.props.view === 'clear' ? 'flat' : (this.props.view as ButtonProps['view']);\n\n return (\n <span\n className={block(\n {\n 'visbile-on-row-hover': visibleOnRowHover,\n 'inline-margin': inlineMargins,\n view: this.props.view,\n },\n className,\n )}\n >\n <Tooltip content={hoverContent}>\n <CopyToClipboard text={text?.toString() || ''} timeout={timeout}>\n {(state) =>\n buttonText ? (\n <Button\n {...(buttonProps as ButtonButtonProps)}\n view={buttonView}\n ref={this.buttonRef}\n onClick={this.onClick}\n >\n <Icon data={this.iconByState[state]} size={resultIconSize} />\n {buttonText}\n </Button>\n ) : (\n <Button\n {...(buttonProps as ButtonButtonProps)}\n view={buttonView}\n ref={this.buttonRef}\n onClick={this.onClick}\n >\n <Icon data={this.iconByState[state]} size={resultIconSize} />\n </Button>\n )\n }\n </CopyToClipboard>\n {hotkey && this.renderHotkey()}\n </Tooltip>\n </span>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","cn","Button","CopyToClipboard","Icon","FilesIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","CheckIcon","XmarkIcon","Hotkey","Tooltip","jsx","jsxs","_jsxs","block","ClipboardButton","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","iconByState","pending","icon","success","error","buttonRef","createRef","shiftKeyPressed","handleHotkey","current","click","getTextToCopy","_this$props","text","shiftText","resText","toString","onClickCapture","event","shiftKey","onCopy","onClick","preventDefault","stopPropagation","_inherits","_createClass","key","value","renderHotkey","_this$props2","hotkey","hotkeyScope","settings","keys","scope","handler","render","_this2","_this$props3","buttonText","timeout","hoverContent","className","visibleOnRowHover","inlineMargins","iconSize","buttonProps","_objectWithoutProperties","_excluded","resultIconSize","buttonView","view","content","state","ref","data","size"],"sources":["ClipboardButton.tsx"],"sourcesContent":["import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {\n Button,\n ButtonButtonProps,\n ButtonProps,\n CopyToClipboard,\n Icon,\n IconProps,\n} from '@gravity-ui/uikit';\nimport FilesIcon from '@gravity-ui/icons/svgs/files.svg';\nimport CheckIcon from '@gravity-ui/icons/svgs/check.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\n\nimport {Hotkey} from '../Hotkey';\nimport {Tooltip} from '../Tooltip';\n\nimport './ClipboardButton.scss';\n\nconst block = cn('yt-clipboard-button');\n\ntype ClipboardButtonProps = Omit<ButtonProps, 'onCopy' | 'view'> & {\n view?: ButtonProps['view'] | 'clear';\n className?: string;\n text: string | number;\n shiftText?: string;\n buttonText?: string | null;\n title?: string;\n hoverContent?: React.ReactNode;\n hotkey?: string;\n hotkeyScope?: string;\n onCopy?: (text: string) => void;\n timeout?: number;\n visibleOnRowHover?: boolean;\n inlineMargins?: boolean;\n icon?: IconProps['data'];\n iconSize?: IconProps['size'];\n};\n\nexport class ClipboardButton extends Component<ClipboardButtonProps> {\n static defaultProps: Partial<ClipboardButtonProps> = {\n size: 'm',\n hotkeyScope: 'all',\n timeout: 500,\n view: 'outlined',\n };\n\n iconByState = {\n pending: this.props.icon || FilesIcon,\n success: CheckIcon,\n error: XmarkIcon,\n };\n\n buttonRef = React.createRef<HTMLButtonElement>();\n shiftKeyPressed = false;\n\n handleHotkey = () => {\n const {current} = this.buttonRef;\n if (current?.click) {\n current.click();\n }\n };\n\n renderHotkey() {\n const {hotkey, hotkeyScope} = this.props;\n if (!hotkey || !hotkeyScope) {\n return null;\n }\n\n return (\n <Hotkey\n settings={[\n {\n keys: hotkey,\n scope: hotkeyScope,\n handler: this.handleHotkey,\n },\n ]}\n />\n );\n }\n\n getTextToCopy = () => {\n const {text, shiftText} = this.props;\n let resText = text.toString() || '';\n if (this.shiftKeyPressed && shiftText) {\n resText = shiftText;\n }\n\n return resText;\n };\n\n onClickCapture = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n this.shiftKeyPressed = event.shiftKey;\n };\n\n onCopy = (text: string) => {\n const {onCopy} = this.props;\n if ('function' === typeof onCopy) {\n onCopy(text);\n }\n };\n\n onClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n render() {\n const {\n buttonText,\n hotkey,\n timeout,\n hoverContent,\n className,\n visibleOnRowHover,\n inlineMargins,\n iconSize,\n ...buttonProps\n } = this.props;\n\n const resultIconSize = iconSize || 13;\n const buttonView =\n this.props.view === 'clear' ? 'flat' : (this.props.view as ButtonProps['view']);\n\n return (\n <span\n className={block(\n {\n 'visbile-on-row-hover': visibleOnRowHover,\n 'inline-margin': inlineMargins,\n view: this.props.view,\n },\n className,\n )}\n >\n <Tooltip content={hoverContent}>\n <CopyToClipboard\n text={this.getTextToCopy}\n timeout={timeout}\n onCopy={this.onCopy}\n >\n {(state) =>\n buttonText ? (\n <Button\n {...(buttonProps as ButtonButtonProps)}\n view={buttonView}\n ref={this.buttonRef}\n onClick={this.onClick}\n onClickCapture={this.onClickCapture}\n >\n <Icon data={this.iconByState[state]} size={resultIconSize} />\n {buttonText}\n </Button>\n ) : (\n <Button\n {...(buttonProps as ButtonButtonProps)}\n view={buttonView}\n ref={this.buttonRef}\n onClick={this.onClick}\n onClickCapture={this.onClickCapture}\n >\n <Icon data={this.iconByState[state]} size={resultIconSize} />\n </Button>\n )\n }\n </CopyToClipboard>\n {hotkey && this.renderHotkey()}\n </Tooltip>\n </span>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ClipboardButton/ClipboardButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"ClipboardButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ClipboardButton/ClipboardButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;CAiB8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ClipboardButton","meta","title","component","tags","args","text","view","argTypes","control","options","description","Default"],"sources":["ClipboardButton.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\n\nimport {ClipboardButton} from './ClipboardButton';\n\nconst meta = {\n title: 'Components/ClipboardButton',\n component: ClipboardButton,\n tags: ['autodocs'],\n args: {\n text: 'Some text',\n view: 'outlined',\n },\n argTypes: {\n view: {\n control: 'select',\n options: ['outlined', 'flat', 'action', 'normal', 'raised', 'clear'],\n description:\n 'Button appearance. The `clear` value is mapped to Gravity UI `flat` inside the component.',\n },\n },\n} satisfies Meta<typeof ClipboardButton>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {};\n"],"mappings":"AAEA,SAAQA,eAAe,QAAO,mBAAmB;AAEjD,IAAMC,IAAI,GAAG;EACTC,KAAK,EAAE,4BAA4B;EACnCC,SAAS,EAAEH,eAAe;EAC1BI,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,IAAI,EAAE;IACFC,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACND,IAAI,EAAE;MACFE,OAAO,EAAE,QAAQ;MACjBC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;MACpEC,WAAW,EACP;IACR;EACJ;AACJ,CAAwC;AAExC,
|
|
1
|
+
{"version":3,"names":["ClipboardButton","meta","title","component","tags","args","text","shiftText","view","argTypes","control","options","description","Default"],"sources":["ClipboardButton.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\n\nimport {ClipboardButton} from './ClipboardButton';\n\nconst meta = {\n title: 'Components/ClipboardButton',\n component: ClipboardButton,\n tags: ['autodocs'],\n args: {\n text: 'Some text',\n shiftText: 'Some shift text',\n view: 'outlined',\n },\n argTypes: {\n view: {\n control: 'select',\n options: ['outlined', 'flat', 'action', 'normal', 'raised', 'clear'],\n description:\n 'Button appearance. The `clear` value is mapped to Gravity UI `flat` inside the component.',\n },\n },\n} satisfies Meta<typeof ClipboardButton>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {};\n"],"mappings":"AAEA,SAAQA,eAAe,QAAO,mBAAmB;AAEjD,IAAMC,IAAI,GAAG;EACTC,KAAK,EAAE,4BAA4B;EACnCC,SAAS,EAAEH,eAAe;EAC1BI,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,IAAI,EAAE;IACFC,IAAI,EAAE,WAAW;IACjBC,SAAS,EAAE,iBAAiB;IAC5BC,IAAI,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACND,IAAI,EAAE;MACFE,OAAO,EAAE,QAAQ;MACjBC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;MACpEC,WAAW,EACP;IACR;EACJ;AACJ,CAAwC;AAExC,eAAeX,IAAI;AAInB,OAAO,IAAMY,OAAc,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NavigationTable.scss"],"names":[],"mappings":"AAAA;EACI,eAAA;AACJ;AACI;EACI,eAAA;EACA,gBAAA;AACR;
|
|
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
|
|
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,
|
|
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 (!
|
|
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:
|
|
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:
|
|
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:
|
|
86
|
+
items: normalizedTable.meta
|
|
76
87
|
}) : /*#__PURE__*/_jsx(MetaTable, {
|
|
77
|
-
|
|
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","
|
|
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":[]}
|
|
@@ -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' ?
|
|
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","
|
|
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":[]}
|
|
@@ -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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
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
"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": "
|
|
103
|
+
"gitHead": "006a2d75ddb7f3a15072fcfa406227669cec7eca"
|
|
104
104
|
}
|