@ytsaurus/components 0.1.0 → 0.2.0
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/LICENSE +13 -0
- package/build/esm/components/MetaTable/MetaTable.css +3 -0
- package/build/esm/components/MetaTable/MetaTable.css.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.d.ts +1 -0
- package/build/esm/components/MetaTable/MetaTable.d.ts.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.js +11 -8
- package/build/esm/components/MetaTable/MetaTable.js.map +1 -1
- package/build/esm/components/MetaTable/MetaTable.scss +4 -0
- package/package.json +4 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright 2023 YANDEX LLC
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MetaTable.scss","../../styles/mixins.scss"],"names":[],"mappings":"AAEA;EACI,aAAA;EACA,eAAA;EACA,uBAAA;AADJ;AAGI;EACI,kBAAA;EACA,mBAAA;AADR;AAGQ;EACI,SAAA;AADZ;AAKI;EACI,WAAA;EACA,SAAA;EACA,kBAAA;EAEA,kBAAA;EACA,oBAAA;AAJR;AAOI;EACI,SAAA;EACA,kBAAA;EAEA,kBAAA;EACA,oBAAA;EAEA,gBAAA;AAPR;;AAWA;EAGI,aAAA;EACA,sCAAA;EACA,kBAAA;AAVJ;AAYI;EACI,aAAA;AAVR;AAaI;
|
|
1
|
+
{"version":3,"sources":["MetaTable.scss","../../styles/mixins.scss"],"names":[],"mappings":"AAEA;EACI,aAAA;EACA,eAAA;EACA,uBAAA;AADJ;AAGI;EACI,kBAAA;EACA,mBAAA;AADR;AAGQ;EACI,SAAA;AADZ;AAKI;EACI,WAAA;EACA,SAAA;EACA,kBAAA;EAEA,kBAAA;EACA,oBAAA;AAJR;AAOI;EACI,SAAA;EACA,kBAAA;EAEA,kBAAA;EACA,oBAAA;EAEA,gBAAA;AAPR;;AAWA;EAGI,aAAA;EACA,sCAAA;EACA,kBAAA;AAVJ;AAYI;EACI,aAAA;AAVR;AAaI;EACI,qBAAA;AAXR;AAcI;EClDA,mBAAA;EACA,gBAAA;EACA,uBAAA;EDmDI,cAAA;AAXR;AAcI;EACI,4BAAA;AAZR;AAVA;EAyBI,cAAA;AAZJ;AAcI;EACI,cAAA;AAZR;AAeI;EAEI,aAAA;EACA,mBAAA;AAdR;AAiBI;EChEA,qBAAA;ADkDJ;AAkBI;EACI,kBAAA;EACA,SAAA;AAhBR;AAmBI;EACI,sBAAA;AAjBR;AAoBI;EACI,kBAAA;AAlBR","file":"MetaTable.css","sourcesContent":["@use '../../styles/mixins';\n\n.meta-table {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n\n &__group {\n margin-right: 50px;\n margin-bottom: 20px;\n\n &:only-child {\n margin: 0;\n }\n }\n\n &__title {\n width: 100%;\n margin: 0;\n margin-bottom: 9px;\n\n font-size: inherit;\n line-height: inherit;\n }\n\n &__sub-title {\n margin: 0;\n margin-bottom: 3px;\n\n font-size: inherit;\n line-height: inherit;\n\n grid-column: 1 / 3;\n }\n}\n\n.meta-table-item {\n $item-height: 22px;\n\n display: grid;\n grid-template-columns: repeat(2, auto);\n grid-gap: 3px 20px;\n\n &_row-gap_4 {\n row-gap: 4px * 4;\n }\n\n &_align-items_baseline {\n align-items: baseline;\n }\n\n &__key,\n &__value {\n @include mixins.ellipsis();\n flex: 0 0 auto;\n }\n\n &__key {\n color: var(--secondary-text);\n }\n\n /* templates */\n\n &__pools {\n display: block;\n }\n\n &__id,\n &__link_clickable {\n display: flex;\n align-items: center;\n }\n\n &__file {\n @include mixins.reset-li();\n }\n\n &__help-icon {\n position: relative;\n top: -1px;\n }\n\n .g-icon {\n vertical-align: middle;\n }\n\n .g-text {\n font-size: inherit;\n }\n}\n","@mixin ellipsis() {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n// reset\n\n@mixin reset-li() {\n list-style-type: none;\n}"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaTable.d.ts","sourceRoot":"","sources":["../../../../src/components/MetaTable/MetaTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAW,MAAM,OAAO,CAAC;AAejD,OAAO,kBAAkB,CAAC;AAM1B,MAAM,WAAW,cAAc;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MetaTable.d.ts","sourceRoot":"","sources":["../../../../src/components/MetaTable/MetaTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAW,MAAM,OAAO,CAAC;AAejD,OAAO,kBAAkB,CAAC;AAM1B,MAAM,WAAW,cAAc;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAmBD,qBAAa,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpD,SAAS,CAAC,IAAI,EAAE,aAAa;IAc7B,WAAW,CAAC,IAAI,EAAE,aAAa;IA4B/B,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAa/C,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IAyBnF,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,MAAM;CAeT"}
|
|
@@ -118,7 +118,9 @@ export var MetaTable = /*#__PURE__*/function (_Component) {
|
|
|
118
118
|
}, {
|
|
119
119
|
key: "renderGroup",
|
|
120
120
|
value: function renderGroup(group, index, groupTitles) {
|
|
121
|
-
var
|
|
121
|
+
var _this$props = this.props,
|
|
122
|
+
rowGap = _this$props.rowGap,
|
|
123
|
+
alignItems = _this$props.alignItems;
|
|
122
124
|
var title = null;
|
|
123
125
|
if (groupTitles !== null && groupTitles !== void 0 && groupTitles.length) {
|
|
124
126
|
var _groupTitles$index;
|
|
@@ -131,7 +133,8 @@ export var MetaTable = /*#__PURE__*/function (_Component) {
|
|
|
131
133
|
});
|
|
132
134
|
return !(visibleItems !== null && visibleItems !== void 0 && visibleItems.length) ? null : /*#__PURE__*/_jsxs("div", {
|
|
133
135
|
className: block('group', itemBlock({
|
|
134
|
-
'row-gap': String(rowGap)
|
|
136
|
+
'row-gap': rowGap ? String(rowGap) : undefined,
|
|
137
|
+
'align-items': alignItems
|
|
135
138
|
})),
|
|
136
139
|
children: [title && /*#__PURE__*/_jsx("h2", {
|
|
137
140
|
className: block('sub-title'),
|
|
@@ -151,12 +154,12 @@ export var MetaTable = /*#__PURE__*/function (_Component) {
|
|
|
151
154
|
key: "render",
|
|
152
155
|
value: function render() {
|
|
153
156
|
var _this2 = this;
|
|
154
|
-
var _this$
|
|
155
|
-
items = _this$
|
|
156
|
-
className = _this$
|
|
157
|
-
title = _this$
|
|
158
|
-
subTitles = _this$
|
|
159
|
-
qa = _this$
|
|
157
|
+
var _this$props2 = this.props,
|
|
158
|
+
items = _this$props2.items,
|
|
159
|
+
className = _this$props2.className,
|
|
160
|
+
title = _this$props2.title,
|
|
161
|
+
subTitles = _this$props2.subTitles,
|
|
162
|
+
qa = _this$props2.qa;
|
|
160
163
|
var _splitItems = splitItems(items, subTitles),
|
|
161
164
|
groups = _splitItems.groups,
|
|
162
165
|
withInnerGroups = _splitItems.withInnerGroups,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Fragment","filter_","map_","reduce_","cn","format","Icon","Link","CircleQuestionIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","Secondary","Tooltip","toClassName","jsxs","_jsxs","jsx","_Fragment","block","itemBlock","splitItems","items","subTitles","Array","isArray","groupTitles","length","acc","_item","index","push","Number","undefined","withInnerGroups","groups","MetaTable","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","renderKey","item","icon","label","labelTopPadding","className","style","paddingTop","renderValue","helpUrl","tooltip","qa","questionIcon","data","size","content","String","view","href","Boolean","renderItems","visibleItems","_this","renderGroup","group","rowGap","title","_groupTitles$index","visible","renderTitle","render","_this2","_this$props","_splitItems"],"sources":["MetaTable.tsx"],"sourcesContent":["import React, {Component, Fragment} from 'react';\n\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\nimport cn from 'bem-cn-lite';\n\nimport {format} from '../../utils';\nimport {Icon, Link} from '@gravity-ui/uikit';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\n\nimport {Secondary} from '../Text';\nimport {Tooltip} from '../Tooltip';\n\nimport './MetaTable.scss';\nimport {toClassName} from './helpers/toClassName';\n\nconst block = cn('meta-table');\nconst itemBlock = cn('meta-table-item');\n\nexport interface MetaTableProps {\n className?: string;\n items: Array<MetaTableItem> | Array<Array<MetaTableItem>>;\n title?: string;\n subTitles?: Array<string>;\n qa?: string;\n rowGap?: 4;\n}\n\nexport interface MetaTableItem {\n key: string;\n label?: React.ReactChild;\n labelTopPadding?: string;\n value: boolean | React.ReactNode;\n icon?: React.ReactNode;\n visible?: boolean;\n helpUrl?: string;\n tooltip?: React.ReactNode;\n className?: string;\n qa?: string;\n}\n\nconst splitItems = (items: MetaTableProps['items'], subTitles?: Array<string>) => {\n if (Array.isArray(items[0])) {\n const groupTitles = subTitles?.length\n ? reduce_(\n items,\n (acc, _item, index) => {\n acc.push(subTitles[Number(index)]);\n return acc;\n },\n [] as Array<string>,\n )\n : undefined;\n return {withInnerGroups: items as Array<Array<MetaTableItem>>, groupTitles};\n }\n return {groups: items as Array<MetaTableItem>};\n};\n\nexport class MetaTable extends Component<MetaTableProps> {\n renderKey(item: MetaTableItem) {\n const {key, icon, label, labelTopPadding} = item;\n return (\n <div\n className={itemBlock('key', {key: toClassName(key)})}\n style={{paddingTop: labelTopPadding}}\n key={key + '-key'}\n >\n {icon}\n {label === undefined ? format['ReadableField'](key) : label}\n </div>\n );\n }\n\n renderValue(item: MetaTableItem) {\n const {value, key, helpUrl, tooltip, className, qa} = item;\n\n const questionIcon = (\n <React.Fragment>\n {' '}\n <Icon className={itemBlock('help-icon')} data={CircleQuestionIcon} size={14} />\n </React.Fragment>\n );\n return (\n <Tooltip\n content={tooltip}\n className={itemBlock('value', {key: toClassName(key)}, className)}\n key={key + '-value'}\n qa={qa}\n >\n {typeof value === 'boolean' ? String(value) : value}\n {helpUrl ? (\n <Link view=\"secondary\" href={helpUrl}>\n {questionIcon}\n </Link>\n ) : (\n Boolean(tooltip) && <Secondary>{questionIcon}</Secondary>\n )}\n </Tooltip>\n );\n }\n\n renderItems(visibleItems?: Array<MetaTableItem>) {\n return (\n <Fragment>\n {map_(visibleItems, (item) => (\n <Fragment key={item.key + '-fragment'}>\n {this.renderKey(item)}\n {this.renderValue(item)}\n </Fragment>\n ))}\n </Fragment>\n );\n }\n\n renderGroup(group: Array<MetaTableItem>, index: number, groupTitles?: Array<string>) {\n const {rowGap} = this.props;\n let title: React.ReactNode = null;\n if (groupTitles?.length) {\n title = groupTitles[index] ?? <> </>;\n }\n const visibleItems = filter_(group, (item) => item.visible !== false);\n\n return !visibleItems?.length ? null : (\n <div className={block('group', itemBlock({'row-gap': String(rowGap)}))} key={index}>\n {title && <h2 className={block('sub-title')}>{title}</h2>}\n {this.renderItems(visibleItems)}\n </div>\n );\n }\n\n renderTitle(title: string) {\n return <h2 className={block('title')}>{title}</h2>;\n }\n\n render() {\n const {items, className, title, subTitles, qa} = this.props;\n const {groups, withInnerGroups, groupTitles} = splitItems(items, subTitles);\n\n return (\n <div className={block(null, className)} data-qa={qa}>\n {title && this.renderTitle(title)}\n {withInnerGroups\n ? map_(withInnerGroups, (item, index) =>\n this.renderGroup(item, index, groupTitles),\n )\n : this.renderGroup(groups, 0)}\n </div>\n );\n }\n}\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAGC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AAEhD,OAAOC,OAAO,MAAM,eAAe;AACnC,OAAOC,IAAI,MAAM,YAAY;AAC7B,OAAOC,OAAO,MAAM,eAAe;AAEnC,OAAOC,EAAE,MAAM,aAAa;AAE5B,SAAQC,MAAM,QAAO,aAAa;AAClC,SAAQC,IAAI,EAAEC,IAAI,QAAO,mBAAmB;AAAC,IACtCC,kBAAkB,YAAlBA,kBAAkBA,CAAAC,KAAA;EAAA,oBAAAC,IAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,eAAAF,IAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAAlBR,kBAAkB,CAAAS,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAEzB,SAAQC,SAAS,QAAO,SAAS;AACjC,SAAQC,OAAO,QAAO,YAAY;AAElC,OAAO,iBAAkB;AACzB,SAAQC,WAAW,QAAO,uBAAuB;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAjB,IAAA,EAAAV,QAAA,IAAA4B,SAAA;AAElD,IAAMC,KAAK,GAAGzB,EAAE,CAAC,YAAY,CAAC;AAC9B,IAAM0B,SAAS,GAAG1B,EAAE,CAAC,iBAAiB,CAAC;AAwBvC,IAAM2B,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAA8B,EAAEC,SAAyB,EAAK;EAC9E,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;IACzB,IAAMI,WAAW,GAAGH,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEI,MAAM,GAC/BlC,OAAO,CACH6B,KAAK,EACL,UAACM,GAAG,EAAEC,KAAK,EAAEC,KAAK,EAAK;MACnBF,GAAG,CAACG,IAAI,CAACR,SAAS,CAACS,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC;MAClC,OAAOF,GAAG;IACd,CAAC,EACD,EACJ,CAAC,GACDK,SAAS;IACf,OAAO;MAACC,eAAe,EAAEZ,KAAoC;MAAEI,WAAW,EAAXA;IAAW,CAAC;EAC/E;EACA,OAAO;IAACS,MAAM,EAAEb;EAA6B,CAAC;AAClD,CAAC;AAED,WAAac,SAAS,0BAAAC,UAAA;EAAA,SAAAD,UAAA;IAAAE,eAAA,OAAAF,SAAA;IAAA,OAAAG,UAAA,OAAAH,SAAA,EAAAI,SAAA;EAAA;EAAAC,SAAA,CAAAL,SAAA,EAAAC,UAAA;EAAA,OAAAK,YAAA,CAAAN,SAAA;IAAAO,GAAA;IAAAC,KAAA,EAClB,SAAAC,SAASA,CAACC,IAAmB,EAAE;MAC3B,IAAOH,GAAG,GAAkCG,IAAI,CAAzCH,GAAG;QAAEI,IAAI,GAA4BD,IAAI,CAApCC,IAAI;QAAEC,KAAK,GAAqBF,IAAI,CAA9BE,KAAK;QAAEC,eAAe,GAAIH,IAAI,CAAvBG,eAAe;MACxC,oBACIjC,KAAA;QACIkC,SAAS,EAAE9B,SAAS,CAAC,KAAK,EAAE;UAACuB,GAAG,EAAE7B,WAAW,CAAC6B,GAAG;QAAC,CAAC,CAAE;QACrDQ,KAAK,EAAE;UAACC,UAAU,EAAEH;QAAe,CAAE;QAAA/C,QAAA,GAGpC6C,IAAI,EACJC,KAAK,KAAKf,SAAS,GAAGtC,MAAM,CAAC,eAAe,CAAC,CAACgD,GAAG,CAAC,GAAGK,KAAK;MAAA,GAHtDL,GAAG,GAAG,MAIV,CAAC;IAEd;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAAS,WAAWA,CAACP,IAAmB,EAAE;MAC7B,IAAOF,KAAK,GAA0CE,IAAI,CAAnDF,KAAK;QAAED,GAAG,GAAqCG,IAAI,CAA5CH,GAAG;QAAEW,OAAO,GAA4BR,IAAI,CAAvCQ,OAAO;QAAEC,OAAO,GAAmBT,IAAI,CAA9BS,OAAO;QAAEL,SAAS,GAAQJ,IAAI,CAArBI,SAAS;QAAEM,EAAE,GAAIV,IAAI,CAAVU,EAAE;MAElD,IAAMC,YAAY,gBACdzC,KAAA,CAAC5B,KAAK,CAACE,QAAQ;QAAAY,QAAA,GACV,GAAG,eACJF,IAAA,CAACJ,IAAI;UAACsD,SAAS,EAAE9B,SAAS,CAAC,WAAW,CAAE;UAACsC,IAAI,EAAE5D,kBAAmB;UAAC6D,IAAI,EAAE;QAAG,CAAE,CAAC;MAAA,CACnE,CACnB;MACD,oBACI3C,KAAA,CAACH,OAAO;QACJ+C,OAAO,EAAEL,OAAQ;QACjBL,SAAS,EAAE9B,SAAS,CAAC,OAAO,EAAE;UAACuB,GAAG,EAAE7B,WAAW,CAAC6B,GAAG;QAAC,CAAC,EAAEO,SAAS,CAAE;QAElEM,EAAE,EAAEA,EAAG;QAAAtD,QAAA,GAEN,OAAO0C,KAAK,KAAK,SAAS,GAAGiB,MAAM,CAACjB,KAAK,CAAC,GAAGA,KAAK,EAClDU,OAAO,gBACJtD,IAAA,CAACH,IAAI;UAACiE,IAAI,EAAC,WAAW;UAACC,IAAI,EAAET,OAAQ;UAAApD,QAAA,EAChCuD;QAAY,CACX,CAAC,GAEPO,OAAO,CAACT,OAAO,CAAC,iBAAIvD,IAAA,CAACY,SAAS;UAAAV,QAAA,EAAEuD;QAAY,CAAY,CAC3D;MAAA,GAVId,GAAG,GAAG,QAWN,CAAC;IAElB;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAAqB,WAAWA,CAACC,YAAmC,EAAE;MAAA,IAAAC,KAAA;MAC7C,oBACInE,IAAA,CAACV,QAAQ;QAAAY,QAAA,EACJV,IAAI,CAAC0E,YAAY,EAAE,UAACpB,IAAI;UAAA,oBACrB9B,KAAA,CAAC1B,QAAQ;YAAAY,QAAA,GACJiE,KAAI,CAACtB,SAAS,CAACC,IAAI,CAAC,EACpBqB,KAAI,CAACd,WAAW,CAACP,IAAI,CAAC;UAAA,GAFZA,IAAI,CAACH,GAAG,GAAG,WAGhB,CAAC;QAAA,CACd;MAAC,CACI,CAAC;IAEnB;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAAwB,WAAWA,CAACC,KAA2B,EAAEvC,KAAa,EAAEJ,WAA2B,EAAE;MACjF,IAAO4C,MAAM,GAAI,IAAI,CAACvE,KAAK,CAApBuE,MAAM;MACb,IAAIC,KAAsB,GAAG,IAAI;MACjC,IAAI7C,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEC,MAAM,EAAE;QAAA,IAAA6C,kBAAA;QACrBD,KAAK,IAAAC,kBAAA,GAAG9C,WAAW,CAACI,KAAK,CAAC,cAAA0C,kBAAA,cAAAA,kBAAA,gBAAIxE,IAAA,CAAAkB,SAAA;UAAAhB,QAAA,EAAE;QAAM,CAAE,CAAC;MAC7C;MACA,IAAMgE,YAAY,GAAG3E,OAAO,CAAC8E,KAAK,EAAE,UAACvB,IAAI;QAAA,OAAKA,IAAI,CAAC2B,OAAO,KAAK,KAAK;MAAA,EAAC;MAErE,OAAO,EAACP,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEvC,MAAM,IAAG,IAAI,gBAC/BX,KAAA;QAAKkC,SAAS,EAAE/B,KAAK,CAAC,OAAO,EAAEC,SAAS,CAAC;UAAC,SAAS,EAAEyC,MAAM,CAACS,MAAM;QAAC,CAAC,CAAC,CAAE;QAAApE,QAAA,GAClEqE,KAAK,iBAAIvE,IAAA;UAAIkD,SAAS,EAAE/B,KAAK,CAAC,WAAW,CAAE;UAAAjB,QAAA,EAAEqE;QAAK,CAAK,CAAC,EACxD,IAAI,CAACN,WAAW,CAACC,YAAY,CAAC;MAAA,GAF0CpC,KAGxE,CACR;IACL;EAAC;IAAAa,GAAA;IAAAC,KAAA,EAED,SAAA8B,WAAWA,CAACH,KAAa,EAAE;MACvB,oBAAOvE,IAAA;QAAIkD,SAAS,EAAE/B,KAAK,CAAC,OAAO,CAAE;QAAAjB,QAAA,EAAEqE;MAAK,CAAK,CAAC;IACtD;EAAC;IAAA5B,GAAA;IAAAC,KAAA,EAED,SAAA+B,MAAMA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACL,IAAAC,WAAA,GAAiD,IAAI,CAAC9E,KAAK;QAApDuB,KAAK,GAAAuD,WAAA,CAALvD,KAAK;QAAE4B,SAAS,GAAA2B,WAAA,CAAT3B,SAAS;QAAEqB,KAAK,GAAAM,WAAA,CAALN,KAAK;QAAEhD,SAAS,GAAAsD,WAAA,CAATtD,SAAS;QAAEiC,EAAE,GAAAqB,WAAA,CAAFrB,EAAE;MAC7C,IAAAsB,WAAA,GAA+CzD,UAAU,CAACC,KAAK,EAAEC,SAAS,CAAC;QAApEY,MAAM,GAAA2C,WAAA,CAAN3C,MAAM;QAAED,eAAe,GAAA4C,WAAA,CAAf5C,eAAe;QAAER,WAAW,GAAAoD,WAAA,CAAXpD,WAAW;MAE3C,oBACIV,KAAA;QAAKkC,SAAS,EAAE/B,KAAK,CAAC,IAAI,EAAE+B,SAAS,CAAE;QAAC,WAASM,EAAG;QAAAtD,QAAA,GAC/CqE,KAAK,IAAI,IAAI,CAACG,WAAW,CAACH,KAAK,CAAC,EAChCrC,eAAe,GACV1C,IAAI,CAAC0C,eAAe,EAAE,UAACY,IAAI,EAAEhB,KAAK;UAAA,OAC9B8C,MAAI,CAACR,WAAW,CAACtB,IAAI,EAAEhB,KAAK,EAAEJ,WAAW,CAAC;QAAA,CAC9C,CAAC,GACD,IAAI,CAAC0C,WAAW,CAACjC,MAAM,EAAE,CAAC,CAAC;MAAA,CAChC,CAAC;IAEd;EAAC;AAAA,EA1F0B9C,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Fragment","filter_","map_","reduce_","cn","format","Icon","Link","CircleQuestionIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","Secondary","Tooltip","toClassName","jsxs","_jsxs","jsx","_Fragment","block","itemBlock","splitItems","items","subTitles","Array","isArray","groupTitles","length","acc","_item","index","push","Number","undefined","withInnerGroups","groups","MetaTable","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","renderKey","item","icon","label","labelTopPadding","className","style","paddingTop","renderValue","helpUrl","tooltip","qa","questionIcon","data","size","content","String","view","href","Boolean","renderItems","visibleItems","_this","renderGroup","group","_this$props","rowGap","alignItems","title","_groupTitles$index","visible","renderTitle","render","_this2","_this$props2","_splitItems"],"sources":["MetaTable.tsx"],"sourcesContent":["import React, {Component, Fragment} from 'react';\n\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\nimport cn from 'bem-cn-lite';\n\nimport {format} from '../../utils';\nimport {Icon, Link} from '@gravity-ui/uikit';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\n\nimport {Secondary} from '../Text';\nimport {Tooltip} from '../Tooltip';\n\nimport './MetaTable.scss';\nimport {toClassName} from './helpers/toClassName';\n\nconst block = cn('meta-table');\nconst itemBlock = cn('meta-table-item');\n\nexport interface MetaTableProps {\n className?: string;\n items: Array<MetaTableItem> | Array<Array<MetaTableItem>>;\n title?: string;\n subTitles?: Array<string>;\n qa?: string;\n rowGap?: 4;\n alignItems?: 'baseline';\n}\n\nexport interface MetaTableItem {\n key: string;\n label?: React.ReactChild;\n labelTopPadding?: string;\n value: boolean | React.ReactNode;\n icon?: React.ReactNode;\n visible?: boolean;\n helpUrl?: string;\n tooltip?: React.ReactNode;\n className?: string;\n qa?: string;\n}\n\nconst splitItems = (items: MetaTableProps['items'], subTitles?: Array<string>) => {\n if (Array.isArray(items[0])) {\n const groupTitles = subTitles?.length\n ? reduce_(\n items,\n (acc, _item, index) => {\n acc.push(subTitles[Number(index)]);\n return acc;\n },\n [] as Array<string>,\n )\n : undefined;\n return {withInnerGroups: items as Array<Array<MetaTableItem>>, groupTitles};\n }\n return {groups: items as Array<MetaTableItem>};\n};\n\nexport class MetaTable extends Component<MetaTableProps> {\n renderKey(item: MetaTableItem) {\n const {key, icon, label, labelTopPadding} = item;\n return (\n <div\n className={itemBlock('key', {key: toClassName(key)})}\n style={{paddingTop: labelTopPadding}}\n key={key + '-key'}\n >\n {icon}\n {label === undefined ? format['ReadableField'](key) : label}\n </div>\n );\n }\n\n renderValue(item: MetaTableItem) {\n const {value, key, helpUrl, tooltip, className, qa} = item;\n\n const questionIcon = (\n <React.Fragment>\n {' '}\n <Icon className={itemBlock('help-icon')} data={CircleQuestionIcon} size={14} />\n </React.Fragment>\n );\n return (\n <Tooltip\n content={tooltip}\n className={itemBlock('value', {key: toClassName(key)}, className)}\n key={key + '-value'}\n qa={qa}\n >\n {typeof value === 'boolean' ? String(value) : value}\n {helpUrl ? (\n <Link view=\"secondary\" href={helpUrl}>\n {questionIcon}\n </Link>\n ) : (\n Boolean(tooltip) && <Secondary>{questionIcon}</Secondary>\n )}\n </Tooltip>\n );\n }\n\n renderItems(visibleItems?: Array<MetaTableItem>) {\n return (\n <Fragment>\n {map_(visibleItems, (item) => (\n <Fragment key={item.key + '-fragment'}>\n {this.renderKey(item)}\n {this.renderValue(item)}\n </Fragment>\n ))}\n </Fragment>\n );\n }\n\n renderGroup(group: Array<MetaTableItem>, index: number, groupTitles?: Array<string>) {\n const {rowGap, alignItems} = this.props;\n let title: React.ReactNode = null;\n if (groupTitles?.length) {\n title = groupTitles[index] ?? <> </>;\n }\n const visibleItems = filter_(group, (item) => item.visible !== false);\n\n return !visibleItems?.length ? null : (\n <div\n className={block(\n 'group',\n itemBlock({\n 'row-gap': rowGap ? String(rowGap) : undefined,\n 'align-items': alignItems,\n }),\n )}\n key={index}\n >\n {title && <h2 className={block('sub-title')}>{title}</h2>}\n {this.renderItems(visibleItems)}\n </div>\n );\n }\n\n renderTitle(title: string) {\n return <h2 className={block('title')}>{title}</h2>;\n }\n\n render() {\n const {items, className, title, subTitles, qa} = this.props;\n const {groups, withInnerGroups, groupTitles} = splitItems(items, subTitles);\n\n return (\n <div className={block(null, className)} data-qa={qa}>\n {title && this.renderTitle(title)}\n {withInnerGroups\n ? map_(withInnerGroups, (item, index) =>\n this.renderGroup(item, index, groupTitles),\n )\n : this.renderGroup(groups, 0)}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ytsaurus/components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
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": {
|
|
7
7
|
"type": "github",
|
|
8
|
-
"url": "https://github.com/ytsaurus/ytsaurus-ui/tree/main/packages/
|
|
8
|
+
"url": "https://github.com/ytsaurus/ytsaurus-ui/tree/main/packages/components"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"build/esm"
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"scripts": {
|
|
34
34
|
"deps:install": "npm ci",
|
|
35
35
|
"build": "app-builder build --config ./app-builder.config.ts",
|
|
36
|
-
"pack:ui": "npm run build",
|
|
37
36
|
"lint": "eslint .",
|
|
38
37
|
"lint:fix": "eslint . --fix",
|
|
39
38
|
"test": "jest --config ./jest.config.js",
|
|
@@ -79,5 +78,6 @@
|
|
|
79
78
|
"hotkeys-js": "^3.13.15",
|
|
80
79
|
"lodash": "^4.17.21",
|
|
81
80
|
"moment": "^2.30.1"
|
|
82
|
-
}
|
|
81
|
+
},
|
|
82
|
+
"gitHead": "882bb278095a5c9d23702a975f729136be15deaf"
|
|
83
83
|
}
|