@weavix/tracker-components 0.1.2 → 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/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/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/PriorityIcon/PriorityIcon.scss +64 -0
- 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/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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["defaultMessages","ru","en"],"sources":["i18n.ts"],"sourcesContent":["export const defaultMessages = {\n 'priority-label': {\n ru: 'Приоритет: {priority}',\n en: 'Priority: {priority}',\n },\n};\n"],"mappings":"AAAA,OAAO,IAAMA,eAAe,GAAG;EAC3B,gBAAgB,EAAE;IACdC,EAAE,EAAE,uBAAuB;IAC3BC,EAAE,EAAE;EACR;AACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PriorityIcon"],"sources":["index.ts"],"sourcesContent":["export {PriorityIcon} from './PriorityIcon';\nexport type {PriorityIconProps} from './PriorityIcon';\nexport type {Priority} from './types';\n"],"mappings":"AAAA,SAAQA,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Priority = 'blocker' | 'critical' | 'important' | 'minor' | 'minimal' | 'normal' | 'trivial';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type Priority =\n | 'blocker'\n | 'critical'\n | 'important'\n | 'minor'\n | 'minimal'\n | 'normal'\n | 'trivial';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# StatusIcon
|
|
2
|
+
|
|
3
|
+
<!-- description:start -->
|
|
4
|
+
Displays the icon for a Tracker issue status. Each status type maps to a distinct SVG icon and color. Unknown status keys fall back to a question-mark icon.
|
|
5
|
+
<!-- description:end -->
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import {StatusIcon} from '@weavix/tracker-components';
|
|
11
|
+
|
|
12
|
+
<StatusIcon statusType="inProgress" />
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Component props
|
|
16
|
+
|
|
17
|
+
<!-- props:start -->
|
|
18
|
+
```ts
|
|
19
|
+
{
|
|
20
|
+
/**
|
|
21
|
+
* Status type/key from the Tracker API. Accepts `IssueStatus` values.
|
|
22
|
+
* Unknown values fall back to a question-mark icon.
|
|
23
|
+
*/
|
|
24
|
+
statusType?:
|
|
25
|
+
| 'new'
|
|
26
|
+
| 'inProgress'
|
|
27
|
+
| 'paused'
|
|
28
|
+
| 'done'
|
|
29
|
+
| 'cancelled'
|
|
30
|
+
| 'unknown'
|
|
31
|
+
| string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Size of the icon in pixels.
|
|
35
|
+
* @default 16
|
|
36
|
+
*/
|
|
37
|
+
size?: number;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Additional CSS class applied to the icon element.
|
|
41
|
+
*/
|
|
42
|
+
className?: string;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Additional CSS class applied to the outer container element.
|
|
46
|
+
*/
|
|
47
|
+
containerClassName?: string;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Human-readable status name (e.g. `"In progress"`, `"Done"`).
|
|
51
|
+
* When provided, an accessible label `"Status: <title>"` is rendered for
|
|
52
|
+
* screen readers. When omitted, the icon is treated as decorative (`aria-hidden`).
|
|
53
|
+
*/
|
|
54
|
+
title?: string;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
<!-- props:end -->
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
### Single icon
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
import {StatusIcon} from '@weavix/tracker-components';
|
|
67
|
+
|
|
68
|
+
<StatusIcon statusType="new" />
|
|
69
|
+
<StatusIcon statusType="inProgress" />
|
|
70
|
+
<StatusIcon statusType="done" />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Custom size
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
<StatusIcon statusType="inProgress" size={24} />
|
|
77
|
+
<StatusIcon statusType="inProgress" size={32} />
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Alongside issue summary
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import {StatusIcon} from '@weavix/tracker-components';
|
|
84
|
+
|
|
85
|
+
export const IssueRow = ({issue}: {issue: {statusType: string; summary: string}}) => (
|
|
86
|
+
<div style={{display: 'flex', alignItems: 'center', gap: 8}}>
|
|
87
|
+
<StatusIcon statusType={issue.statusType} size={16} />
|
|
88
|
+
<span>{issue.summary}</span>
|
|
89
|
+
</div>
|
|
90
|
+
);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### From Tracker API — issue status
|
|
94
|
+
|
|
95
|
+
Requires the `"tracker:issues:read"` permission in your plugin's `manifest.json`:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"permissions": {
|
|
100
|
+
"data": ["tracker:issues:read"]
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
import {StatusIcon} from '@weavix/tracker-components';
|
|
107
|
+
|
|
108
|
+
const status = await trackerApi.v3.get['/issues/{id}/{field}']({
|
|
109
|
+
pathParams: {
|
|
110
|
+
id: 'ISSUEKEY-1',
|
|
111
|
+
field: 'status',
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
<StatusIcon
|
|
116
|
+
statusType={status.data.key}
|
|
117
|
+
title={status.data.display}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Notes
|
|
124
|
+
|
|
125
|
+
- The `statusType` value is matched case-sensitively. Values returned by the Tracker API match directly without transformation.
|
|
126
|
+
- Passing an unknown string does not throw — the component renders a question-mark fallback icon.
|
|
127
|
+
- When `title` is omitted the icon is treated as decorative and gets `aria-hidden="true"`. Pass `title` (e.g. `status.display` from the API) to make the icon accessible.
|
|
128
|
+
- The component accepts the `IssueStatus` type union (issue statuses), which is exported from the package.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const cnStatusIcon: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["block","cnStatusIcon"],"sources":["StatusIcon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnStatusIcon = block('status-icon');\n"],"mappings":"AAAA,SAAQA,KAAK;AAEb,OAAO,IAAMC,YAAY,GAAGD,KAAK,CAAC,aAAa,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.tpc-status-icon_status_new, .tpc-status-icon_status_draft {
|
|
2
|
+
color: var(--g-color-text-misc-heavy);
|
|
3
|
+
}
|
|
4
|
+
.tpc-status-icon_status_inProgress, .tpc-status-icon_status_in_progress {
|
|
5
|
+
color: var(--g-color-text-info);
|
|
6
|
+
}
|
|
7
|
+
.tpc-status-icon_status_paused, .tpc-status-icon_status_at_risk {
|
|
8
|
+
color: var(--g-color-text-warning-heavy);
|
|
9
|
+
}
|
|
10
|
+
.tpc-status-icon_status_postponed, .tpc-status-icon_status_draft2 {
|
|
11
|
+
color: var(--g-color-base-neutral-heavy);
|
|
12
|
+
}
|
|
13
|
+
.tpc-status-icon_status_done, .tpc-status-icon_status_launched, .tpc-status-icon_status_achieved, .tpc-status-icon_status_partially_achieved, .tpc-status-icon_status_according_to_plan {
|
|
14
|
+
color: var(--g-color-text-positive);
|
|
15
|
+
}
|
|
16
|
+
.tpc-status-icon_status_cancelled {
|
|
17
|
+
color: var(--g-color-text-complementary);
|
|
18
|
+
}
|
|
19
|
+
.tpc-status-icon_status_blocked, .tpc-status-icon_status_not_achieved {
|
|
20
|
+
color: var(--g-color-text-danger-heavy);
|
|
21
|
+
}
|
|
22
|
+
.tpc-status-icon_status_exceeded {
|
|
23
|
+
color: var(--g-color-text-utility);
|
|
24
|
+
}
|
|
25
|
+
.tpc-status-icon_status_unknown {
|
|
26
|
+
color: var(--g-color-text-misc-heavy);
|
|
27
|
+
}
|
|
28
|
+
/*# sourceMappingURL=StatusIcon.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["StatusIcon.scss"],"names":[],"mappings":"AACI;EAEI,qCAAA;AADR;AAII;EAEI,+BAAA;AAHR;AAMI;EAEI,wCAAA;AALR;AAQI;EAEI,wCAAA;AAPR;AAUI;EAKI,mCAAA;AAZR;AAeI;EACI,wCAAA;AAbR;AAgBI;EAEI,uCAAA;AAfR;AAkBI;EACI,kCAAA;AAhBR;AAmBI;EACI,qCAAA;AAjBR","file":"StatusIcon.css","sourcesContent":[".tpc-status-icon {\n &_status_new,\n &_status_draft {\n color: var(--g-color-text-misc-heavy);\n }\n\n &_status_inProgress,\n &_status_in_progress {\n color: var(--g-color-text-info);\n }\n\n &_status_paused,\n &_status_at_risk {\n color: var(--g-color-text-warning-heavy);\n }\n\n &_status_postponed,\n &_status_draft2 {\n color: var(--g-color-base-neutral-heavy);\n }\n\n &_status_done,\n &_status_launched,\n &_status_achieved,\n &_status_partially_achieved,\n &_status_according_to_plan {\n color: var(--g-color-text-positive);\n }\n\n &_status_cancelled {\n color: var(--g-color-text-complementary);\n }\n\n &_status_blocked,\n &_status_not_achieved {\n color: var(--g-color-text-danger-heavy);\n }\n\n &_status_exceeded {\n color: var(--g-color-text-utility);\n }\n\n &_status_unknown {\n color: var(--g-color-text-misc-heavy);\n }\n}\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type IconRefugeProps } from '../IconRefuge';
|
|
3
|
+
import type { GoalStatus, IssueStatus, MetaEntityStatus } from './types';
|
|
4
|
+
import './StatusIcon.scss';
|
|
5
|
+
export type StatusIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {
|
|
6
|
+
statusType?: IssueStatus | MetaEntityStatus | GoalStatus;
|
|
7
|
+
size?: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const StatusIcon: FC<StatusIconProps>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { getConfig } from '@gravity-ui/uikit';
|
|
3
|
+
import { useLocalizedString } from "./../../../hooks/useLocalizedString";
|
|
4
|
+
import { IconRefuge } from "../IconRefuge";
|
|
5
|
+
import { cnStatusIcon } from "./StatusIcon.classname";
|
|
6
|
+
import { defaultMessages } from "./i18n";
|
|
7
|
+
import { getSvgForStatusType } from "./utils";
|
|
8
|
+
import "./StatusIcon.css";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
export var StatusIcon = function StatusIcon(_ref) {
|
|
11
|
+
var className = _ref.className,
|
|
12
|
+
containerClassName = _ref.containerClassName,
|
|
13
|
+
statusType = _ref.statusType,
|
|
14
|
+
_ref$size = _ref.size,
|
|
15
|
+
size = _ref$size === void 0 ? 16 : _ref$size,
|
|
16
|
+
title = _ref.title;
|
|
17
|
+
var config = getConfig();
|
|
18
|
+
var _useLocalizedString = useLocalizedString(defaultMessages, config.lang),
|
|
19
|
+
t = _useLocalizedString.t;
|
|
20
|
+
var ariaLabel = title ? t('status-label', {
|
|
21
|
+
status: title
|
|
22
|
+
}) : undefined;
|
|
23
|
+
return /*#__PURE__*/_jsx(IconRefuge, {
|
|
24
|
+
containerClassName: containerClassName,
|
|
25
|
+
className: cnStatusIcon({
|
|
26
|
+
status: statusType
|
|
27
|
+
}, className),
|
|
28
|
+
data: getSvgForStatusType(statusType),
|
|
29
|
+
refugeSize: size,
|
|
30
|
+
title: title,
|
|
31
|
+
"aria-label": ariaLabel,
|
|
32
|
+
"aria-hidden": !title || undefined
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
StatusIcon.displayName = 'StatusIcon';
|
|
36
|
+
// #sourceMappingURL=StatusIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","getConfig","useLocalizedString","IconRefuge","cnStatusIcon","defaultMessages","getSvgForStatusType","jsx","_jsx","StatusIcon","_ref","className","containerClassName","statusType","_ref$size","size","title","config","_useLocalizedString","lang","t","ariaLabel","status","undefined","data","refugeSize","displayName"],"sources":["StatusIcon.tsx"],"sourcesContent":["import React, {type FC} from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {IconRefuge, type IconRefugeProps} from '../IconRefuge';\n\nimport {cnStatusIcon} from './StatusIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\nimport {getSvgForStatusType} from './utils';\n\nimport './StatusIcon.scss';\n\nexport type StatusIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n statusType?: IssueStatus | MetaEntityStatus | GoalStatus;\n size?: number;\n className?: string;\n};\n\nexport const StatusIcon: FC<StatusIconProps> = ({\n className,\n containerClassName,\n statusType,\n size = 16,\n title,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('status-label', {status: title}) : undefined;\n\n return (\n <IconRefuge\n containerClassName={containerClassName}\n className={cnStatusIcon({status: statusType}, className)}\n data={getSvgForStatusType(statusType)}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n};\n\nStatusIcon.displayName = 'StatusIcon';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAiB,OAAO;AAEpC,SAAQC,SAAS,QAAO,mBAAmB;AAE3C,SAAQC,kBAAkB;AAE1B,SAAQC,UAAU;AAElB,SAAQC,YAAY;AACpB,SAAQC,eAAe;AAEvB,SAAQC,mBAAmB;AAE3B;AAA2B,SAAAC,GAAA,IAAAC,IAAA;AAQ3B,OAAO,IAAMC,UAA+B,GAAG,SAAlCA,UAA+BA,CAAAC,IAAA,EAMtC;EAAA,IALFC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAClBC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAAC,SAAA,GAAAJ,IAAA,CACVK,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IACTE,KAAK,GAAAN,IAAA,CAALM,KAAK;EAEL,IAAMC,MAAM,GAAGhB,SAAS,CAAC,CAAC;EAC1B,IAAAiB,mBAAA,GAAYhB,kBAAkB,CAACG,eAAe,EAAEY,MAAM,CAACE,IAAI,CAAC;IAArDC,CAAC,GAAAF,mBAAA,CAADE,CAAC;EACR,IAAMC,SAAS,GAAGL,KAAK,GAAGI,CAAC,CAAC,cAAc,EAAE;IAACE,MAAM,EAAEN;EAAK,CAAC,CAAC,GAAGO,SAAS;EAExE,oBACIf,IAAA,CAACL,UAAU;IACPS,kBAAkB,EAAEA,kBAAmB;IACvCD,SAAS,EAAEP,YAAY,CAAC;MAACkB,MAAM,EAAET;IAAU,CAAC,EAAEF,SAAS,CAAE;IACzDa,IAAI,EAAElB,mBAAmB,CAACO,UAAU,CAAE;IACtCY,UAAU,EAAEV,IAAK;IACjBC,KAAK,EAAEA,KAAM;IACb,cAAYK,SAAU;IACtB,eAAa,CAACL,KAAK,IAAIO;EAAU,CACpC,CAAC;AAEV,CAAC;AAEDd,UAAU,CAACiB,WAAW,GAAG,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
.tpc-status-icon {
|
|
2
|
+
&_status_new,
|
|
3
|
+
&_status_draft {
|
|
4
|
+
color: var(--g-color-text-misc-heavy);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
&_status_inProgress,
|
|
8
|
+
&_status_in_progress {
|
|
9
|
+
color: var(--g-color-text-info);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&_status_paused,
|
|
13
|
+
&_status_at_risk {
|
|
14
|
+
color: var(--g-color-text-warning-heavy);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&_status_postponed,
|
|
18
|
+
&_status_draft2 {
|
|
19
|
+
color: var(--g-color-base-neutral-heavy);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&_status_done,
|
|
23
|
+
&_status_launched,
|
|
24
|
+
&_status_achieved,
|
|
25
|
+
&_status_partially_achieved,
|
|
26
|
+
&_status_according_to_plan {
|
|
27
|
+
color: var(--g-color-text-positive);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&_status_cancelled {
|
|
31
|
+
color: var(--g-color-text-complementary);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&_status_blocked,
|
|
35
|
+
&_status_not_achieved {
|
|
36
|
+
color: var(--g-color-text-danger-heavy);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&_status_exceeded {
|
|
40
|
+
color: var(--g-color-text-utility);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&_status_unknown {
|
|
44
|
+
color: var(--g-color-text-misc-heavy);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["defaultMessages","ru","en"],"sources":["i18n.ts"],"sourcesContent":["export const defaultMessages = {\n 'status-label': {\n ru: 'Статус: {status}',\n en: 'Status: {status}',\n },\n};\n"],"mappings":"AAAA,OAAO,IAAMA,eAAe,GAAG;EAC3B,cAAc,EAAE;IACZC,EAAE,EAAE,kBAAkB;IACtBC,EAAE,EAAE;EACR;AACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StatusIcon"],"sources":["index.ts"],"sourcesContent":["export {StatusIcon} from './StatusIcon';\nexport type {StatusIconProps} from './StatusIcon';\nexport type {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\n"],"mappings":"AAAA,SAAQA,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type IssueStatus = 'new' | 'inProgress' | 'paused' | 'done' | 'cancelled' | 'unknown';
|
|
2
|
+
export type MetaEntityStatus = 'draft' | 'in_progress' | 'launched' | 'postponed' | 'at_risk' | 'blocked' | 'according_to_plan' | 'draft2' | 'cancelled';
|
|
3
|
+
export type GoalStatus = 'draft' | 'according_to_plan' | 'at_risk' | 'blocked' | 'achieved' | 'partially_achieved' | 'not_achieved' | 'exceeded' | 'cancelled';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type IssueStatus = 'new' | 'inProgress' | 'paused' | 'done' | 'cancelled' | 'unknown';\n\nexport type MetaEntityStatus =\n | 'draft'\n | 'in_progress'\n | 'launched'\n | 'postponed'\n | 'at_risk'\n | 'blocked'\n | 'according_to_plan'\n | 'draft2'\n | 'cancelled';\n\nexport type GoalStatus =\n | 'draft'\n | 'according_to_plan'\n | 'at_risk'\n | 'blocked'\n | 'achieved'\n | 'partially_achieved'\n | 'not_achieved'\n | 'exceeded'\n | 'cancelled';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CircleCheck, CircleDashed, CircleExclamation, CirclePause, CirclePlay, CircleQuestion, CircleStop, CircleXmark, SealCheck } from '@gravity-ui/icons';
|
|
2
|
+
export function getSvgForStatusType(statusType) {
|
|
3
|
+
switch (statusType) {
|
|
4
|
+
case 'new':
|
|
5
|
+
case 'draft':
|
|
6
|
+
case 'draft2':
|
|
7
|
+
return CircleDashed;
|
|
8
|
+
case 'done':
|
|
9
|
+
case 'launched':
|
|
10
|
+
case 'achieved':
|
|
11
|
+
case 'partially_achieved':
|
|
12
|
+
return CircleCheck;
|
|
13
|
+
case 'cancelled':
|
|
14
|
+
case 'not_achieved':
|
|
15
|
+
return CircleXmark;
|
|
16
|
+
case 'inProgress':
|
|
17
|
+
case 'in_progress':
|
|
18
|
+
case 'according_to_plan':
|
|
19
|
+
return CirclePlay;
|
|
20
|
+
case 'paused':
|
|
21
|
+
case 'postponed':
|
|
22
|
+
return CirclePause;
|
|
23
|
+
case 'at_risk':
|
|
24
|
+
return CircleExclamation;
|
|
25
|
+
case 'exceeded':
|
|
26
|
+
return SealCheck;
|
|
27
|
+
case 'blocked':
|
|
28
|
+
return CircleStop;
|
|
29
|
+
default:
|
|
30
|
+
return CircleQuestion;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// #sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CircleCheck","CircleDashed","CircleExclamation","CirclePause","CirclePlay","CircleQuestion","CircleStop","CircleXmark","SealCheck","getSvgForStatusType","statusType"],"sources":["utils.ts"],"sourcesContent":["import {\n CircleCheck,\n CircleDashed,\n CircleExclamation,\n CirclePause,\n CirclePlay,\n CircleQuestion,\n CircleStop,\n CircleXmark,\n SealCheck,\n} from '@gravity-ui/icons';\nimport {type IconData} from '@gravity-ui/uikit';\n\nimport {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\n\nexport function getSvgForStatusType(\n statusType?: IssueStatus | MetaEntityStatus | GoalStatus,\n): IconData {\n switch (statusType) {\n case 'new':\n case 'draft':\n case 'draft2':\n return CircleDashed;\n case 'done':\n case 'launched':\n case 'achieved':\n case 'partially_achieved':\n return CircleCheck;\n case 'cancelled':\n case 'not_achieved':\n return CircleXmark;\n case 'inProgress':\n case 'in_progress':\n case 'according_to_plan':\n return CirclePlay;\n case 'paused':\n case 'postponed':\n return CirclePause;\n case 'at_risk':\n return CircleExclamation;\n case 'exceeded':\n return SealCheck;\n case 'blocked':\n return CircleStop;\n default:\n return CircleQuestion;\n }\n}\n"],"mappings":"AAAA,SACIA,WAAW,EACXC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXC,UAAU,EACVC,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,SAAS,QACN,mBAAmB;AAK1B,OAAO,SAASC,mBAAmBA,CAC/BC,UAAwD,EAChD;EACR,QAAQA,UAAU;IACd,KAAK,KAAK;IACV,KAAK,OAAO;IACZ,KAAK,QAAQ;MACT,OAAOT,YAAY;IACvB,KAAK,MAAM;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,oBAAoB;MACrB,OAAOD,WAAW;IACtB,KAAK,WAAW;IAChB,KAAK,cAAc;MACf,OAAOO,WAAW;IACtB,KAAK,YAAY;IACjB,KAAK,aAAa;IAClB,KAAK,mBAAmB;MACpB,OAAOH,UAAU;IACrB,KAAK,QAAQ;IACb,KAAK,WAAW;MACZ,OAAOD,WAAW;IACtB,KAAK,SAAS;MACV,OAAOD,iBAAiB;IAC5B,KAAK,UAAU;MACX,OAAOM,SAAS;IACpB,KAAK,SAAS;MACV,OAAOF,UAAU;IACrB;MACI,OAAOD,cAAc;EAC7B;AACJ","ignoreList":[]}
|
|
@@ -5,5 +5,7 @@ export * from "./IssueTypeIcon";
|
|
|
5
5
|
export * from "./KeyResultIcon";
|
|
6
6
|
export * from "./MetaEntityIcon";
|
|
7
7
|
export * from "./PortfolioIcon";
|
|
8
|
+
export * from "./PriorityIcon";
|
|
8
9
|
export * from "./ProjectIcon";
|
|
10
|
+
export * from "./StatusIcon";
|
|
9
11
|
// #sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './EntityIcon';\nexport * from './GoalIcon';\nexport * from './IconRefuge';\nexport * from './IssueTypeIcon';\nexport * from './KeyResultIcon';\nexport * from './MetaEntityIcon';\nexport * from './PortfolioIcon';\nexport * from './ProjectIcon';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './EntityIcon';\nexport * from './GoalIcon';\nexport * from './IconRefuge';\nexport * from './IssueTypeIcon';\nexport * from './KeyResultIcon';\nexport * from './MetaEntityIcon';\nexport * from './PortfolioIcon';\nexport * from './PriorityIcon';\nexport * from './ProjectIcon';\nexport * from './StatusIcon';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const cnIcon: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_cn","require","cnIcon","exports","block"],"sources":["Icon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnIcon = block('Icon');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,SAAK,EAAC,MAAM,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const cnIcon: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["block","cnIcon"],"sources":["Icon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnIcon = block('Icon');\n"],"mappings":"AAAA,SAAQA,KAAK;AAEb,OAAO,IAAMC,MAAM,GAAGD,KAAK,CAAC,MAAM,CAAC","ignoreList":[]}
|