@weavix/tracker-components 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +3 -3
- 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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weavix/tracker-components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Shared UI components for Yandex Tracker plugins",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/esm/index.js",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@weavix/tracker-api-types": "0.0.3",
|
|
47
47
|
"bem-cn-lite": "^4.1.0",
|
|
48
48
|
"core-js": "^3.38.0",
|
|
49
|
-
"lodash": "4.17.
|
|
50
|
-
"lodash-es": "4.17.
|
|
49
|
+
"lodash": "^4.17.22",
|
|
50
|
+
"lodash-es": "^4.17.22",
|
|
51
51
|
"react-use": "17.4.0"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
@@ -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":[]}
|