@weavix/tracker-components 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -1
- package/build/cjs/components/Icon/EntityIcon/EntityIcon.js +2 -3
- package/build/cjs/components/Icon/EntityIcon/EntityIcon.js.map +1 -1
- package/build/cjs/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
- package/build/cjs/components/Icon/IconRefuge/IconRefuge.css +0 -3
- package/build/cjs/components/Icon/IconRefuge/IconRefuge.css.map +1 -1
- package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.js +30 -50
- package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.js.map +1 -1
- package/build/cjs/components/Icon/IssueTypeIcon/README.md +42 -0
- package/build/cjs/components/Icon/MetaEntityIcon/README.md +10 -0
- package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.d.ts +4 -1
- package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.js +1 -0
- package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.js.map +1 -1
- package/build/cjs/components/Icon/PortfolioIcon/README.md +7 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js +9 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js +80 -0
- package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
- package/build/cjs/components/Icon/PriorityIcon/README.md +172 -0
- package/build/cjs/components/Icon/PriorityIcon/i18n.d.ts +6 -0
- package/build/cjs/components/Icon/PriorityIcon/i18n.js +13 -0
- package/build/cjs/components/Icon/PriorityIcon/i18n.js.map +1 -0
- package/build/cjs/components/Icon/PriorityIcon/index.d.ts +3 -0
- package/build/cjs/components/Icon/PriorityIcon/index.js +13 -0
- package/build/cjs/components/Icon/PriorityIcon/index.js.map +1 -0
- package/build/cjs/components/Icon/PriorityIcon/types.d.ts +1 -0
- package/build/cjs/components/Icon/PriorityIcon/types.js +6 -0
- package/build/cjs/components/Icon/PriorityIcon/types.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/README.md +128 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js +9 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.css +28 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.js +43 -0
- package/build/cjs/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/i18n.d.ts +6 -0
- package/build/cjs/components/Icon/StatusIcon/i18n.js +13 -0
- package/build/cjs/components/Icon/StatusIcon/i18n.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/index.d.ts +3 -0
- package/build/cjs/components/Icon/StatusIcon/index.js +13 -0
- package/build/cjs/components/Icon/StatusIcon/index.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/types.d.ts +3 -0
- package/build/cjs/components/Icon/StatusIcon/types.js +6 -0
- package/build/cjs/components/Icon/StatusIcon/types.js.map +1 -0
- package/build/cjs/components/Icon/StatusIcon/utils.d.ts +3 -0
- package/build/cjs/components/Icon/StatusIcon/utils.js +39 -0
- package/build/cjs/components/Icon/StatusIcon/utils.js.map +1 -0
- package/build/cjs/components/Icon/index.d.ts +2 -0
- package/build/cjs/components/Icon/index.js +22 -0
- package/build/cjs/components/Icon/index.js.map +1 -1
- package/build/cjs/components/MetaEntitiesSelect/README.md +10 -0
- package/build/cjs/components/PluginFieldsSelect/README.md +18 -0
- package/build/cjs/components/QueueSelect/README.md +10 -0
- package/build/esm/components/Icon/EntityIcon/EntityIcon.js +2 -3
- package/build/esm/components/Icon/EntityIcon/EntityIcon.js.map +1 -1
- package/build/esm/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
- package/build/esm/components/Icon/IconRefuge/IconRefuge.css +0 -3
- package/build/esm/components/Icon/IconRefuge/IconRefuge.css.map +1 -1
- package/build/esm/components/Icon/IconRefuge/IconRefuge.scss +0 -4
- package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.js +30 -50
- package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.js.map +1 -1
- package/build/esm/components/Icon/IssueTypeIcon/README.md +42 -0
- package/build/esm/components/Icon/MetaEntityIcon/README.md +10 -0
- package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.d.ts +4 -1
- package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.js +1 -0
- package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.js.map +1 -1
- package/build/esm/components/Icon/PortfolioIcon/README.md +7 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js +3 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js +73 -0
- package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
- package/build/esm/components/Icon/{Icon.scss → PriorityIcon/PriorityIcon.scss} +26 -8
- package/build/esm/components/Icon/PriorityIcon/README.md +172 -0
- package/build/esm/components/Icon/PriorityIcon/i18n.d.ts +6 -0
- package/build/esm/components/Icon/PriorityIcon/i18n.js +7 -0
- package/build/esm/components/Icon/PriorityIcon/i18n.js.map +1 -0
- package/build/esm/components/Icon/PriorityIcon/index.d.ts +3 -0
- package/build/esm/components/Icon/PriorityIcon/index.js +2 -0
- package/build/esm/components/Icon/PriorityIcon/index.js.map +1 -0
- package/build/esm/components/Icon/PriorityIcon/types.d.ts +1 -0
- package/build/esm/components/Icon/PriorityIcon/types.js +2 -0
- package/build/esm/components/Icon/PriorityIcon/types.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/README.md +128 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js +3 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.css +28 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.js +36 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/StatusIcon.scss +46 -0
- package/build/esm/components/Icon/StatusIcon/i18n.d.ts +6 -0
- package/build/esm/components/Icon/StatusIcon/i18n.js +7 -0
- package/build/esm/components/Icon/StatusIcon/i18n.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/index.d.ts +3 -0
- package/build/esm/components/Icon/StatusIcon/index.js +2 -0
- package/build/esm/components/Icon/StatusIcon/index.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/types.d.ts +3 -0
- package/build/esm/components/Icon/StatusIcon/types.js +2 -0
- package/build/esm/components/Icon/StatusIcon/types.js.map +1 -0
- package/build/esm/components/Icon/StatusIcon/utils.d.ts +3 -0
- package/build/esm/components/Icon/StatusIcon/utils.js +33 -0
- package/build/esm/components/Icon/StatusIcon/utils.js.map +1 -0
- package/build/esm/components/Icon/index.d.ts +2 -0
- package/build/esm/components/Icon/index.js +2 -0
- package/build/esm/components/Icon/index.js.map +1 -1
- package/build/esm/components/MetaEntitiesSelect/README.md +10 -0
- package/build/esm/components/PluginFieldsSelect/README.md +18 -0
- package/build/esm/components/QueueSelect/README.md +10 -0
- package/package.json +1 -1
- package/build/cjs/components/Icon/Icon.classname.d.ts +0 -1
- package/build/cjs/components/Icon/Icon.classname.js +0 -9
- package/build/cjs/components/Icon/Icon.classname.js.map +0 -1
- package/build/cjs/components/Icon/Icon.css +0 -33
- package/build/cjs/components/Icon/Icon.css.map +0 -1
- package/build/esm/components/Icon/Icon.classname.d.ts +0 -1
- package/build/esm/components/Icon/Icon.classname.js +0 -3
- package/build/esm/components/Icon/Icon.classname.js.map +0 -1
- package/build/esm/components/Icon/Icon.css +0 -33
- package/build/esm/components/Icon/Icon.css.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @weavix/tracker-components
|
|
2
2
|
|
|
3
|
-
Shared UI component library for **Yandex Tracker plugins**. Provides ready-made React components for selecting queues, fields, and meta entities (projects, portfolios, goals), displaying issue-type and entity icons, and building collapsible sections — all styled to match the Tracker design system.
|
|
3
|
+
Shared UI component library for **Yandex Tracker plugins**. Provides ready-made React components for selecting queues, fields, and meta entities (projects, portfolios, goals), displaying issue-type, priority, status, and entity icons, and building collapsible sections — all styled to match the Tracker design system.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -35,6 +35,8 @@ pnpm add @weavix/tracker-components
|
|
|
35
35
|
| Component | Description | README |
|
|
36
36
|
|---|---|---|
|
|
37
37
|
| [`IssueTypeIcon`](#issuetypeicon) | Icon for a Tracker issue type (task, bug, epic, …). | [→ README](src/components/Icon/IssueTypeIcon/README.md) |
|
|
38
|
+
| [`PriorityIcon`](#priorityicon) | Icon for an issue priority level (blocker, critical, normal, …). Supports optional colored background. | [→ README](src/components/Icon/PriorityIcon/README.md) |
|
|
39
|
+
| [`StatusIcon`](#statusicon) | Icon for a Tracker issue status. Maps `IssueStatus` values to distinct icons and colors. | [→ README](src/components/Icon/StatusIcon/README.md) |
|
|
38
40
|
| [`MetaEntityIcon`](#metaentityicon) | Dispatcher icon that renders the correct icon for any meta entity type (project, portfolio, goal, key result). | [→ README](src/components/Icon/MetaEntityIcon/README.md) |
|
|
39
41
|
| [`ProjectIcon`](#projecticon) | Colored icon for a project entity. Color is deterministically derived from the project ID. | [→ README](src/components/Icon/ProjectIcon/README.md) |
|
|
40
42
|
| [`PortfolioIcon`](#portfolioicon) | Colored icon for a portfolio entity. Color is deterministically derived from the portfolio ID. | [→ README](src/components/Icon/PortfolioIcon/README.md) |
|
|
@@ -125,6 +127,32 @@ import {IssueTypeIcon} from '@weavix/tracker-components';
|
|
|
125
127
|
|
|
126
128
|
---
|
|
127
129
|
|
|
130
|
+
### PriorityIcon
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
import {PriorityIcon} from '@weavix/tracker-components';
|
|
134
|
+
|
|
135
|
+
<PriorityIcon priority="critical" />
|
|
136
|
+
<PriorityIcon priority="blocker" showBackground backgroundSize={32} />
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
→ Full documentation: [src/components/Icon/PriorityIcon/README.md](src/components/Icon/PriorityIcon/README.md)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### StatusIcon
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
import {StatusIcon} from '@weavix/tracker-components';
|
|
147
|
+
|
|
148
|
+
<StatusIcon statusType="inProgress" />
|
|
149
|
+
<StatusIcon statusType="done" size={24} title="Done" />
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
→ Full documentation: [src/components/Icon/StatusIcon/README.md](src/components/Icon/StatusIcon/README.md)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
128
156
|
### MetaEntityIcon
|
|
129
157
|
|
|
130
158
|
```tsx
|
|
@@ -15,8 +15,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
15
15
|
var EntityIcon = exports.EntityIcon = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
16
16
|
var data = _ref.data,
|
|
17
17
|
className = _ref.className,
|
|
18
|
-
|
|
19
|
-
id = _ref$id === void 0 ? ' ' : _ref$id,
|
|
18
|
+
id = _ref.id,
|
|
20
19
|
type = _ref.type,
|
|
21
20
|
_ref$refugeSize = _ref.refugeSize,
|
|
22
21
|
refugeSize = _ref$refugeSize === void 0 ? 24 : _ref$refugeSize,
|
|
@@ -32,7 +31,7 @@ var EntityIcon = exports.EntityIcon = /*#__PURE__*/(0, _react.memo)(function (_r
|
|
|
32
31
|
colorAlpha = _ref$colorAlpha === void 0 ? 1 : _ref$colorAlpha;
|
|
33
32
|
var theme = (0, _uikit.useThemeType)();
|
|
34
33
|
var randomColor = (0, _uikit.useColorGenerator)({
|
|
35
|
-
seed: String(id),
|
|
34
|
+
seed: id !== undefined ? String(id) : ' ',
|
|
36
35
|
theme: theme
|
|
37
36
|
});
|
|
38
37
|
var color = "rgba(".concat(randomColor.rgb.r, ",").concat(randomColor.rgb.g, ",").concat(randomColor.rgb.b, ",").concat(colorAlpha, ")");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_IconRefuge","_EntityIcon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EntityIcon","exports","memo","_ref","data","className","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_IconRefuge","_EntityIcon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EntityIcon","exports","memo","_ref","data","className","id","type","_ref$refugeSize","refugeSize","_ref$size","size","_ref$alpha","alpha","_ref$withBackground","withBackground","_ref$radius","radius","_ref$colorAlpha","colorAlpha","theme","useThemeType","randomColor","useColorGenerator","seed","undefined","String","color","concat","rgb","g","b","backgroundColor","containerStyle","background","_jsx","IconRefuge","containerClassName","cnEntityIcon","displayName"],"sources":["EntityIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {memo} from 'react';\n\nimport {type IconData, useColorGenerator, useThemeType} from '@gravity-ui/uikit';\n\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnEntityIcon} from './EntityIcon.classname';\n\nimport './EntityIcon.scss';\n\nexport type EntityIconProps = {\n data: IconData;\n className?: string;\n id?: number | string;\n type?: string;\n refugeSize?: number;\n size?: number;\n alpha?: number;\n withBackground?: boolean;\n radius?: 'm' | 'l';\n colorAlpha?: number;\n};\n\nexport const EntityIcon: FC<EntityIconProps> = memo(\n ({\n data,\n className,\n id,\n type,\n refugeSize = 24,\n size = 16,\n alpha = 0.15,\n withBackground = true,\n radius = 'm',\n colorAlpha = 1,\n }) => {\n const theme = useThemeType();\n\n const randomColor = useColorGenerator({seed: id !== undefined ? String(id) : ' ', theme});\n\n const color = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${colorAlpha})`;\n const backgroundColor = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${alpha})`;\n\n const containerStyle: {\n background?: string;\n color?: string;\n } = {};\n\n if (withBackground) {\n containerStyle.background = backgroundColor;\n containerStyle.color = color;\n } else {\n containerStyle.color = backgroundColor;\n }\n\n return (\n <IconRefuge\n data={data}\n containerClassName={cnEntityIcon({type, radius}, className)}\n refugeSize={refugeSize}\n size={size}\n containerStyle={containerStyle}\n />\n );\n },\n);\n\nEntityIcon.displayName = 'EntityIcon';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cn","require","cnIconRefuge","exports","block"],"sources":["IconRefuge.classname.
|
|
1
|
+
{"version":3,"names":["_cn","require","cnIconRefuge","exports","block"],"sources":["IconRefuge.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnIconRefuge = block('icon-refuge');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,SAAK,EAAC,aAAa,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["IconRefuge.scss"],"names":[],"mappings":"AAAA;EACI,oBAAA;EACA,mBAAA;EACA,uBAAA;AACJ;AACI;EACI,
|
|
1
|
+
{"version":3,"sources":["IconRefuge.scss"],"names":[],"mappings":"AAAA;EACI,oBAAA;EACA,mBAAA;EACA,uBAAA;AACJ;AACI;EACI,kBAAA;EAEA,gBAAA;EACA,mBAAA;EAEA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EAEA,mBAAA;AAFR","file":"IconRefuge.css","sourcesContent":[".tpc-icon-refuge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n &__hidden-label {\n position: absolute;\n\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n\n white-space: nowrap;\n }\n}\n"],"sourceRoot":""}
|
|
@@ -7,7 +7,6 @@ exports.IssueTypeIcon = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _uikit = require("@gravity-ui/uikit");
|
|
9
9
|
var _useLocalizedString2 = require("./../../../hooks/useLocalizedString");
|
|
10
|
-
var _Icon = require("../Icon.classname");
|
|
11
10
|
var _IconRefuge = require("../IconRefuge");
|
|
12
11
|
var _IssueTypeIcon = require("./IssueTypeIcon.classname");
|
|
13
12
|
var _i18n = require("./i18n");
|
|
@@ -32,47 +31,28 @@ var _technicalDebt = _interopRequireDefault(require("../../../assets/icons/issue
|
|
|
32
31
|
require("./IssueTypeIcon.css");
|
|
33
32
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
34
33
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return _refactoring.default;
|
|
55
|
-
case 'release':
|
|
56
|
-
return _release.default;
|
|
57
|
-
case 'research':
|
|
58
|
-
return _research.default;
|
|
59
|
-
case 'serviceRequest':
|
|
60
|
-
return _serviceRequest.default;
|
|
61
|
-
case 'story':
|
|
62
|
-
return _story.default;
|
|
63
|
-
case 'subBug':
|
|
64
|
-
return _subbug.default;
|
|
65
|
-
case 'subTask':
|
|
66
|
-
return _subtask.default;
|
|
67
|
-
case 'technicalDebt':
|
|
68
|
-
return _technicalDebt.default;
|
|
69
|
-
case 'milestone':
|
|
70
|
-
return _milestone.default;
|
|
71
|
-
default:
|
|
72
|
-
return _task.default;
|
|
73
|
-
}
|
|
34
|
+
var ISSUE_TYPE_ICONS = {
|
|
35
|
+
bug: _bug.default,
|
|
36
|
+
design: _design.default,
|
|
37
|
+
epic: _epic.default,
|
|
38
|
+
improvement: _improvement.default,
|
|
39
|
+
incident: _incident.default,
|
|
40
|
+
info: _info.default,
|
|
41
|
+
milestone: _milestone.default,
|
|
42
|
+
newFeature: _newFeature.default,
|
|
43
|
+
query: _query.default,
|
|
44
|
+
refactoring: _refactoring.default,
|
|
45
|
+
release: _release.default,
|
|
46
|
+
research: _research.default,
|
|
47
|
+
serviceRequest: _serviceRequest.default,
|
|
48
|
+
story: _story.default,
|
|
49
|
+
subBug: _subbug.default,
|
|
50
|
+
subTask: _subtask.default,
|
|
51
|
+
task: _task.default,
|
|
52
|
+
technicalDebt: _technicalDebt.default
|
|
74
53
|
};
|
|
75
54
|
var IssueTypeIcon = exports.IssueTypeIcon = function IssueTypeIcon(_ref) {
|
|
55
|
+
var _ISSUE_TYPE_ICONS$iss;
|
|
76
56
|
var className = _ref.className,
|
|
77
57
|
containerClassName = _ref.containerClassName,
|
|
78
58
|
_ref$issueType = _ref.issueType,
|
|
@@ -83,20 +63,20 @@ var IssueTypeIcon = exports.IssueTypeIcon = function IssueTypeIcon(_ref) {
|
|
|
83
63
|
var config = (0, _uikit.getConfig)();
|
|
84
64
|
var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
|
|
85
65
|
t = _useLocalizedString.t;
|
|
86
|
-
var ariaLabel = title
|
|
87
|
-
type:
|
|
88
|
-
});
|
|
66
|
+
var ariaLabel = title ? t('type-label', {
|
|
67
|
+
type: issueType
|
|
68
|
+
}) : undefined;
|
|
89
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconRefuge.IconRefuge, {
|
|
90
|
-
className: (0,
|
|
91
|
-
issueType: issueType
|
|
92
|
-
}, [(0, _IssueTypeIcon.cnIssueTypeIcon)({
|
|
70
|
+
className: (0, _IssueTypeIcon.cnIssueTypeIcon)({
|
|
93
71
|
type: issueType
|
|
94
|
-
}, className)
|
|
72
|
+
}, className),
|
|
95
73
|
containerClassName: containerClassName,
|
|
96
|
-
data:
|
|
74
|
+
data: (_ISSUE_TYPE_ICONS$iss = ISSUE_TYPE_ICONS[issueType]) !== null && _ISSUE_TYPE_ICONS$iss !== void 0 ? _ISSUE_TYPE_ICONS$iss : _task.default,
|
|
97
75
|
refugeSize: size,
|
|
98
|
-
|
|
76
|
+
title: title,
|
|
77
|
+
"aria-label": ariaLabel,
|
|
78
|
+
"aria-hidden": !title || undefined
|
|
99
79
|
});
|
|
100
80
|
};
|
|
101
|
-
IssueTypeIcon.displayName =
|
|
81
|
+
IssueTypeIcon.displayName = 'IssueTypeIcon';
|
|
102
82
|
// #sourceMappingURL=IssueTypeIcon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_useLocalizedString2","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_useLocalizedString2","_IconRefuge","_IssueTypeIcon","_i18n","_bug","_design","_epic","_improvement","_incident","_info","_milestone","_newFeature","_query","_refactoring","_release","_research","_serviceRequest","_story","_subbug","_subtask","_task","_technicalDebt","_jsxRuntime","e","__esModule","default","ISSUE_TYPE_ICONS","bug","bugIcon","design","designIcon","epic","epicIcon","improvement","improvementIcon","incident","incidentIcon","info","infoIcon","milestone","milestoneIcon","newFeature","newFeatureIcon","query","queryIcon","refactoring","refactoringIcon","release","releaseIcon","research","researchIcon","serviceRequest","serviceRequestIcon","story","storyIcon","subBug","subbugIcon","subTask","subtaskIcon","task","taskIcon","technicalDebt","technicalDebtIcon","IssueTypeIcon","exports","_ref","_ISSUE_TYPE_ICONS$iss","className","containerClassName","_ref$issueType","issueType","_ref$size","size","title","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","type","undefined","_jsx","IconRefuge","cnIssueTypeIcon","data","refugeSize","displayName"],"sources":["IssueTypeIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React from 'react';\n\nimport {type IconData, getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport type {IconRefugeProps} from '../IconRefuge';\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnIssueTypeIcon} from './IssueTypeIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {IssueType} from './types';\n\nimport bugIcon from '../../../../assets/icons/issue-type/bug.svg';\nimport designIcon from '../../../../assets/icons/issue-type/design.svg';\nimport epicIcon from '../../../../assets/icons/issue-type/epic.svg';\nimport improvementIcon from '../../../../assets/icons/issue-type/improvement.svg';\nimport incidentIcon from '../../../../assets/icons/issue-type/incident.svg';\nimport infoIcon from '../../../../assets/icons/issue-type/info.svg';\nimport milestoneIcon from '../../../../assets/icons/issue-type/milestone.svg';\nimport newFeatureIcon from '../../../../assets/icons/issue-type/new-feature.svg';\nimport queryIcon from '../../../../assets/icons/issue-type/query.svg';\nimport refactoringIcon from '../../../../assets/icons/issue-type/refactoring.svg';\nimport releaseIcon from '../../../../assets/icons/issue-type/release.svg';\nimport researchIcon from '../../../../assets/icons/issue-type/research.svg';\nimport serviceRequestIcon from '../../../../assets/icons/issue-type/service-request.svg';\nimport storyIcon from '../../../../assets/icons/issue-type/story.svg';\nimport subbugIcon from '../../../../assets/icons/issue-type/subbug.svg';\nimport subtaskIcon from '../../../../assets/icons/issue-type/subtask.svg';\nimport taskIcon from '../../../../assets/icons/issue-type/task.svg';\nimport technicalDebtIcon from '../../../../assets/icons/issue-type/technical-debt.svg';\n\nimport './IssueTypeIcon.scss';\n\nexport type IssueTypeIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n className?: string;\n size?: number;\n issueType?: IssueType;\n};\n\nconst ISSUE_TYPE_ICONS: Record<IssueType, IconData> = {\n bug: bugIcon,\n design: designIcon,\n epic: epicIcon,\n improvement: improvementIcon,\n incident: incidentIcon,\n info: infoIcon,\n milestone: milestoneIcon,\n newFeature: newFeatureIcon,\n query: queryIcon,\n refactoring: refactoringIcon,\n release: releaseIcon,\n research: researchIcon,\n serviceRequest: serviceRequestIcon,\n story: storyIcon,\n subBug: subbugIcon,\n subTask: subtaskIcon,\n task: taskIcon,\n technicalDebt: technicalDebtIcon,\n};\n\nexport const IssueTypeIcon: FC<IssueTypeIconProps> = ({\n className,\n containerClassName,\n issueType = 'task',\n size = 16,\n title,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('type-label', {type: issueType}) : undefined;\n\n return (\n <IconRefuge\n className={cnIssueTypeIcon({type: issueType}, className)}\n containerClassName={containerClassName}\n data={ISSUE_TYPE_ICONS[issueType] ?? taskIcon}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n};\n\nIssueTypeIcon.displayName = 'IssueTypeIcon';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -52,6 +52,19 @@ import {IssueTypeIcon} from '@weavix/tracker-components';
|
|
|
52
52
|
* Additional CSS class applied to the root element.
|
|
53
53
|
*/
|
|
54
54
|
className?: string;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Additional CSS class applied to the outer container element.
|
|
58
|
+
*/
|
|
59
|
+
containerClassName?: string;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Human-readable display name for the issue type (e.g. `"Bug"`, `"Story"`).
|
|
63
|
+
* When provided, an accessible label `"Type: <issueType>"` is rendered for
|
|
64
|
+
* screen readers and `title` is forwarded to the icon container.
|
|
65
|
+
* When omitted, the icon is treated as decorative (`aria-hidden`).
|
|
66
|
+
*/
|
|
67
|
+
title?: string;
|
|
55
68
|
}
|
|
56
69
|
```
|
|
57
70
|
<!-- props:end -->
|
|
@@ -114,9 +127,38 @@ export const IssueTypeGallery = () => (
|
|
|
114
127
|
);
|
|
115
128
|
```
|
|
116
129
|
|
|
130
|
+
### From Tracker API
|
|
131
|
+
|
|
132
|
+
Requires the `"tracker:issuetypes:read"` permission in your plugin's `manifest.json`:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"permissions": {
|
|
137
|
+
"data": ["tracker:issuetypes:read"]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
import {IssueTypeIcon} from '@weavix/tracker-components';
|
|
144
|
+
|
|
145
|
+
const issueType = await trackerApi.v3.get['/issues/{id}/{field}']({
|
|
146
|
+
pathParams: {
|
|
147
|
+
id: 'ISSUEKEY-1',
|
|
148
|
+
field: 'type',
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
<IssueTypeIcon
|
|
153
|
+
issueType={issueType.data.key}
|
|
154
|
+
title={issueType.data.display}
|
|
155
|
+
/>
|
|
156
|
+
```
|
|
157
|
+
|
|
117
158
|
---
|
|
118
159
|
|
|
119
160
|
## Notes
|
|
120
161
|
|
|
121
162
|
- The `issueType` value is matched case-sensitively against the known keys. Values returned by the Tracker API (e.g. `"newFeature"`, `"subTask"`) match directly without transformation.
|
|
122
163
|
- Passing an unknown string does not throw — the component renders a generic fallback icon.
|
|
164
|
+
- When `title` is omitted the icon is treated as decorative and gets `aria-hidden="true"`. Pass `title` (e.g. `type.display` from the API) to make the icon accessible.
|
|
@@ -76,6 +76,16 @@ import {MetaEntityIcon} from '@weavix/tracker-components';
|
|
|
76
76
|
|
|
77
77
|
### Rendering from a Tracker API response
|
|
78
78
|
|
|
79
|
+
Requires the `"tracker:entities:write"` permission in your plugin's `manifest.json`:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"permissions": {
|
|
84
|
+
"data": ["tracker:entities:write"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
79
89
|
`MetaEntityIcon` accepts the shape returned directly by the Tracker entities search endpoint, so you can pass `result.data[i]` without any mapping:
|
|
80
90
|
|
|
81
91
|
```tsx
|
|
@@ -3,4 +3,7 @@ import type { EntityIconProps } from '../EntityIcon';
|
|
|
3
3
|
export type PortfolioIconProps = {
|
|
4
4
|
portfolioId: string;
|
|
5
5
|
} & Omit<EntityIconProps, 'data' | 'id' | 'alpha'>;
|
|
6
|
-
export declare const PortfolioIcon:
|
|
6
|
+
export declare const PortfolioIcon: {
|
|
7
|
+
({ portfolioId, ...props }: PortfolioIconProps): React.JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_EntityIcon","_portfolio","_jsxRuntime","e","__esModule","default","PortfolioIcon","exports","_ref","portfolioId","props","_objectWithoutProperties","_excluded","_jsx","EntityIcon","_objectSpread","data","portfolioIcon","id","type","alpha","withBackground"],"sources":["PortfolioIcon.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {EntityIconProps} from '../EntityIcon';\nimport {EntityIcon} from '../EntityIcon';\n\nimport portfolioIcon from '../../../../assets/icons/portfolio.svg';\n\nexport type PortfolioIconProps = {portfolioId: string} & Omit<\n EntityIconProps,\n 'data' | 'id' | 'alpha'\n>;\n\nexport const PortfolioIcon = ({portfolioId, ...props}: PortfolioIconProps) => (\n <EntityIcon\n data={portfolioIcon}\n id={portfolioId}\n type=\"portfolio\"\n alpha={0.5}\n withBackground={false}\n {...props}\n />\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAmE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAO5D,IAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,IAAA;EAAA,IAAKC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAKC,KAAK,OAAAC,iCAAA,EAAAH,IAAA,EAAAI,SAAA;EAAA,oBAChD,IAAAC,eAAA,EAACC,sBAAU,MAAAC,sBAAA;IACPC,IAAI,EAAEC,kBAAc;IACpBC,EAAE,EAAET,WAAY;IAChBU,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAE,GAAI;IACXC,cAAc,EAAE;EAAM,GAClBX,KAAK,CACZ,CAAC;AAAA,CACL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_EntityIcon","_portfolio","_jsxRuntime","e","__esModule","default","PortfolioIcon","exports","_ref","portfolioId","props","_objectWithoutProperties","_excluded","_jsx","EntityIcon","_objectSpread","data","portfolioIcon","id","type","alpha","withBackground","displayName"],"sources":["PortfolioIcon.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {EntityIconProps} from '../EntityIcon';\nimport {EntityIcon} from '../EntityIcon';\n\nimport portfolioIcon from '../../../../assets/icons/portfolio.svg';\n\nexport type PortfolioIconProps = {portfolioId: string} & Omit<\n EntityIconProps,\n 'data' | 'id' | 'alpha'\n>;\n\nexport const PortfolioIcon = ({portfolioId, ...props}: PortfolioIconProps) => (\n <EntityIcon\n data={portfolioIcon}\n id={portfolioId}\n type=\"portfolio\"\n alpha={0.5}\n withBackground={false}\n {...props}\n />\n);\n\nPortfolioIcon.displayName = 'PortfolioIcon';\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAmE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAO5D,IAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,IAAA;EAAA,IAAKC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAKC,KAAK,OAAAC,iCAAA,EAAAH,IAAA,EAAAI,SAAA;EAAA,oBAChD,IAAAC,eAAA,EAACC,sBAAU,MAAAC,sBAAA;IACPC,IAAI,EAAEC,kBAAc;IACpBC,EAAE,EAAET,WAAY;IAChBU,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAE,GAAI;IACXC,cAAc,EAAE;EAAM,GAClBX,KAAK,CACZ,CAAC;AAAA,CACL;AAEDJ,aAAa,CAACgB,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -47,10 +47,17 @@ import {PortfolioIcon} from '@weavix/tracker-components';
|
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* Whether to render a colored background behind the icon.
|
|
50
|
+
* `PortfolioIcon` defaults this to `false`; `EntityIcon`'s own default is `true`.
|
|
50
51
|
* @default false
|
|
51
52
|
*/
|
|
52
53
|
withBackground?: boolean;
|
|
53
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Alpha (opacity) of the icon foreground color, in the range 0–1.
|
|
57
|
+
* @default 1
|
|
58
|
+
*/
|
|
59
|
+
colorAlpha?: number;
|
|
60
|
+
|
|
54
61
|
/**
|
|
55
62
|
* Border radius variant of the icon container.
|
|
56
63
|
* @default 'm'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const cnPriorityIcon: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cnPriorityIcon = void 0;
|
|
7
|
+
var _cn = require("./../../cn");
|
|
8
|
+
var cnPriorityIcon = exports.cnPriorityIcon = (0, _cn.block)('priority-icon');
|
|
9
|
+
// #sourceMappingURL=PriorityIcon.classname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_cn","require","cnPriorityIcon","exports","block"],"sources":["PriorityIcon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnPriorityIcon = block('priority-icon');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,SAAK,EAAC,eAAe,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
.tpc-priority-icon_priority_blocker {
|
|
2
|
+
color: var(--g-color-text-danger);
|
|
3
|
+
}
|
|
4
|
+
.tpc-priority-icon_priority_critical {
|
|
5
|
+
color: var(--g-color-text-warning-heavy);
|
|
6
|
+
}
|
|
7
|
+
.tpc-priority-icon_priority_critical.tpc-priority-icon_metaEntity {
|
|
8
|
+
color: var(--g-color-text-danger-heavy);
|
|
9
|
+
}
|
|
10
|
+
.tpc-priority-icon_priority_important {
|
|
11
|
+
color: var(--g-color-text-warning);
|
|
12
|
+
}
|
|
13
|
+
.tpc-priority-icon_priority_trivial {
|
|
14
|
+
color: var(--g-color-text-hint);
|
|
15
|
+
}
|
|
16
|
+
.tpc-priority-icon_priority_normal, .tpc-priority-icon_priority_minor, .tpc-priority-icon_priority_minimal {
|
|
17
|
+
color: var(--g-color-text-secondary);
|
|
18
|
+
}
|
|
19
|
+
.tpc-priority-icon__background {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
border-radius: 50%;
|
|
26
|
+
}
|
|
27
|
+
.tpc-priority-icon__background_priority_blocker {
|
|
28
|
+
background: var(--g-color-base-danger-light);
|
|
29
|
+
}
|
|
30
|
+
.tpc-priority-icon__background_priority_critical {
|
|
31
|
+
background: var(--g-color-base-warning-light);
|
|
32
|
+
}
|
|
33
|
+
.tpc-priority-icon__background_priority_critical.tpc-priority-icon-background_metaEntity {
|
|
34
|
+
background: var(--g-color-base-danger-light);
|
|
35
|
+
}
|
|
36
|
+
.tpc-priority-icon__background_priority_important {
|
|
37
|
+
background: var(--g-color-base-warning-light);
|
|
38
|
+
}
|
|
39
|
+
.tpc-priority-icon__background_priority_trivial {
|
|
40
|
+
background: var(--g-color-base-neutral-light);
|
|
41
|
+
}
|
|
42
|
+
.tpc-priority-icon__background_priority_normal, .tpc-priority-icon__background_priority_minor, .tpc-priority-icon__background_priority_minimal {
|
|
43
|
+
background: var(--g-color-base-neutral-light);
|
|
44
|
+
}
|
|
45
|
+
/*# sourceMappingURL=PriorityIcon.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["PriorityIcon.scss"],"names":[],"mappings":"AACI;EACI,iCAAA;AAAR;AAGI;EACI,wCAAA;AADR;AAGQ;EACI,uCAAA;AADZ;AAKI;EACI,kCAAA;AAHR;AAMI;EACI,+BAAA;AAJR;AAOI;EAGI,oCAAA;AAPR;AAUI;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;EAEA,WAAA;EACA,YAAA;EAEA,kBAAA;AAVR;AAaI;EACI,4CAAA;AAXR;AAcI;EACI,6CAAA;AAZR;AAcQ;EACI,4CAAA;AAZZ;AAgBI;EACI,6CAAA;AAdR;AAiBI;EACI,6CAAA;AAfR;AAkBI;EAGI,6CAAA;AAlBR","file":"PriorityIcon.css","sourcesContent":[".tpc-priority-icon {\n &_priority_blocker {\n color: var(--g-color-text-danger);\n }\n\n &_priority_critical {\n color: var(--g-color-text-warning-heavy);\n\n &.tpc-priority-icon_metaEntity {\n color: var(--g-color-text-danger-heavy);\n }\n }\n\n &_priority_important {\n color: var(--g-color-text-warning);\n }\n\n &_priority_trivial {\n color: var(--g-color-text-hint);\n }\n\n &_priority_normal,\n &_priority_minor,\n &_priority_minimal {\n color: var(--g-color-text-secondary);\n }\n\n &__background {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 100%;\n\n border-radius: 50%;\n }\n\n &__background_priority_blocker {\n background: var(--g-color-base-danger-light);\n }\n\n &__background_priority_critical {\n background: var(--g-color-base-warning-light);\n\n &.tpc-priority-icon-background_metaEntity {\n background: var(--g-color-base-danger-light);\n }\n }\n\n &__background_priority_important {\n background: var(--g-color-base-warning-light);\n }\n\n &__background_priority_trivial {\n background: var(--g-color-base-neutral-light);\n }\n\n &__background_priority_normal,\n &__background_priority_minor,\n &__background_priority_minimal {\n background: var(--g-color-base-neutral-light);\n }\n}\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import type { IconRefugeProps } from '../IconRefuge';
|
|
3
|
+
import type { Priority } from './types';
|
|
4
|
+
import './PriorityIcon.scss';
|
|
5
|
+
export type PriorityIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {
|
|
6
|
+
className?: string;
|
|
7
|
+
size?: number;
|
|
8
|
+
priority?: Priority;
|
|
9
|
+
showBackground?: boolean;
|
|
10
|
+
backgroundSize?: number;
|
|
11
|
+
metaEntity?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const PriorityIcon: FC<PriorityIconProps>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PriorityIcon = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _icons = require("@gravity-ui/icons");
|
|
9
|
+
var _uikit = require("@gravity-ui/uikit");
|
|
10
|
+
var _useLocalizedString2 = require("./../../../hooks/useLocalizedString");
|
|
11
|
+
var _IconRefuge = require("../IconRefuge");
|
|
12
|
+
var _PriorityIcon = require("./PriorityIcon.classname");
|
|
13
|
+
var _i18n = require("./i18n");
|
|
14
|
+
require("./PriorityIcon.css");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
var getIconData = function getIconData(priority, metaEntity) {
|
|
18
|
+
switch (priority) {
|
|
19
|
+
case 'blocker':
|
|
20
|
+
return _icons.CircleExclamation;
|
|
21
|
+
case 'critical':
|
|
22
|
+
return metaEntity ? _icons.CircleExclamation : _icons.ChevronsUpWide;
|
|
23
|
+
case 'minor':
|
|
24
|
+
return _icons.ChevronDownWide;
|
|
25
|
+
case 'trivial':
|
|
26
|
+
case 'minimal':
|
|
27
|
+
return _icons.ChevronsDownWide;
|
|
28
|
+
case 'important':
|
|
29
|
+
return _icons.ChevronUpWide;
|
|
30
|
+
default:
|
|
31
|
+
return _icons.Equal;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
var PriorityIcon = exports.PriorityIcon = function PriorityIcon(_ref) {
|
|
35
|
+
var className = _ref.className,
|
|
36
|
+
containerClassName = _ref.containerClassName,
|
|
37
|
+
_ref$priority = _ref.priority,
|
|
38
|
+
priority = _ref$priority === void 0 ? 'normal' : _ref$priority,
|
|
39
|
+
_ref$size = _ref.size,
|
|
40
|
+
size = _ref$size === void 0 ? 16 : _ref$size,
|
|
41
|
+
title = _ref.title,
|
|
42
|
+
showBackground = _ref.showBackground,
|
|
43
|
+
backgroundSize = _ref.backgroundSize,
|
|
44
|
+
metaEntity = _ref.metaEntity;
|
|
45
|
+
var config = (0, _uikit.getConfig)();
|
|
46
|
+
var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
|
|
47
|
+
t = _useLocalizedString.t;
|
|
48
|
+
var ariaLabel = title ? t('priority-label', {
|
|
49
|
+
priority: title
|
|
50
|
+
}) : undefined;
|
|
51
|
+
var iconNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconRefuge.IconRefuge, {
|
|
52
|
+
containerClassName: containerClassName,
|
|
53
|
+
className: (0, _PriorityIcon.cnPriorityIcon)({
|
|
54
|
+
priority: priority,
|
|
55
|
+
metaEntity: metaEntity
|
|
56
|
+
}, className),
|
|
57
|
+
data: getIconData(priority, metaEntity),
|
|
58
|
+
refugeSize: size,
|
|
59
|
+
title: title,
|
|
60
|
+
"aria-label": ariaLabel,
|
|
61
|
+
"aria-hidden": !title || undefined
|
|
62
|
+
});
|
|
63
|
+
if (!showBackground) {
|
|
64
|
+
return iconNode;
|
|
65
|
+
}
|
|
66
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
67
|
+
className: (0, _PriorityIcon.cnPriorityIcon)('background', {
|
|
68
|
+
priority: priority,
|
|
69
|
+
metaEntity: metaEntity
|
|
70
|
+
}),
|
|
71
|
+
style: backgroundSize ? {
|
|
72
|
+
width: backgroundSize,
|
|
73
|
+
height: backgroundSize,
|
|
74
|
+
minWidth: backgroundSize
|
|
75
|
+
} : undefined,
|
|
76
|
+
children: iconNode
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
PriorityIcon.displayName = 'PriorityIcon';
|
|
80
|
+
// #sourceMappingURL=PriorityIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_icons","_uikit","_useLocalizedString2","_IconRefuge","_PriorityIcon","_i18n","_jsxRuntime","e","__esModule","default","getIconData","priority","metaEntity","CircleExclamation","ChevronsUpWide","ChevronDownWide","ChevronsDownWide","ChevronUpWide","Equal","PriorityIcon","exports","_ref","className","containerClassName","_ref$priority","_ref$size","size","title","showBackground","backgroundSize","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","undefined","iconNode","_jsx","IconRefuge","cnPriorityIcon","data","refugeSize","style","width","height","minWidth","children","displayName"],"sources":["PriorityIcon.tsx"],"sourcesContent":["import React, {type FC} from 'react';\n\nimport {\n ChevronDownWide,\n ChevronUpWide,\n ChevronsDownWide,\n ChevronsUpWide,\n CircleExclamation,\n Equal,\n} from '@gravity-ui/icons';\nimport {type IconData, getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport type {IconRefugeProps} from '../IconRefuge';\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnPriorityIcon} from './PriorityIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {Priority} from './types';\n\nimport './PriorityIcon.scss';\n\nexport type PriorityIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n className?: string;\n size?: number;\n priority?: Priority;\n showBackground?: boolean;\n backgroundSize?: number;\n metaEntity?: boolean;\n};\n\nconst getIconData = (priority: Priority, metaEntity?: boolean): IconData => {\n switch (priority) {\n case 'blocker':\n return CircleExclamation;\n case 'critical':\n return metaEntity ? CircleExclamation : ChevronsUpWide;\n case 'minor':\n return ChevronDownWide;\n case 'trivial':\n case 'minimal':\n return ChevronsDownWide;\n case 'important':\n return ChevronUpWide;\n default:\n return Equal;\n }\n};\n\nexport const PriorityIcon: FC<PriorityIconProps> = ({\n className,\n containerClassName,\n priority = 'normal',\n size = 16,\n title,\n showBackground,\n backgroundSize,\n metaEntity,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('priority-label', {priority: title}) : undefined;\n\n const iconNode = (\n <IconRefuge\n containerClassName={containerClassName}\n className={cnPriorityIcon({priority, metaEntity}, className)}\n data={getIconData(priority, metaEntity)}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n\n if (!showBackground) {\n return iconNode;\n }\n\n return (\n <div\n className={cnPriorityIcon('background', {priority, metaEntity})}\n style={\n backgroundSize\n ? {\n width: backgroundSize,\n height: backgroundSize,\n minWidth: backgroundSize,\n }\n : undefined\n }\n >\n {iconNode}\n </div>\n );\n};\n\nPriorityIcon.displayName = 'PriorityIcon';\n"],"mappings":"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","ignoreList":[]}
|