@weavix/cli 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +1641 -710
- package/build/templates/{_shared/src/styles-360.scss → _external/src/styles.scss} +2 -3
- package/build/templates/{_shared/src/styles-gravity.scss → _internal/src/styles.scss} +3 -2
- package/build/templates/_internal/src/themes/yandex-cloud/_dark-hc.scss +328 -0
- package/build/templates/_internal/src/themes/yandex-cloud/_dark.scss +329 -0
- package/build/templates/_internal/src/themes/yandex-cloud/_light-hc.scss +321 -0
- package/build/templates/_internal/src/themes/yandex-cloud/_light.scss +323 -0
- package/build/templates/_internal/src/themes/yandex-cloud.scss +168 -0
- package/build/templates/_shared/manifest.schema.json +183 -3
- package/build/templates/_shared/package.json +64 -65
- package/build/templates/_shared/src/main.tsx +1 -5
- package/build/templates/_shared/src/themes/yandex-360/_dark-hc.scss +296 -0
- package/build/templates/_shared/src/themes/yandex-360/_dark.scss +297 -0
- package/build/templates/_shared/src/themes/yandex-360/_light-hc.scss +289 -0
- package/build/templates/_shared/src/themes/yandex-360/_light.scss +291 -0
- package/build/templates/_shared/src/themes/yandex-360.scss +197 -0
- package/build/templates/_shared/src/themes/ys-text.scss +79 -0
- package/build/templates/_shared/vite.config.ts +2 -0
- package/build/templates/attachment.viewer.action/index.html +1 -1
- package/build/templates/attachment.viewer.action/src/App.tsx +13 -19
- package/build/templates/board.tab/index.html +14 -0
- package/build/templates/board.tab/src/App.tsx +27 -0
- package/build/templates/goal.action/index.html +1 -1
- package/build/templates/goal.action/src/App.tsx +4 -16
- package/build/templates/goal.block/index.html +14 -0
- package/build/templates/goal.block/src/App.tsx +27 -0
- package/build/templates/goal.tab/index.html +14 -0
- package/build/templates/goal.tab/src/App.tsx +27 -0
- package/build/templates/issue.action/index.html +1 -1
- package/build/templates/issue.action/src/App.tsx +3 -12
- package/build/templates/issue.block/index.html +1 -1
- package/build/templates/issue.block/src/App.tsx +9 -18
- package/build/templates/issue.comment.action/src/App.tsx +2 -8
- package/build/templates/issue.tab/src/App.tsx +2 -11
- package/build/templates/portfolio.action/index.html +1 -1
- package/build/templates/portfolio.action/src/App.tsx +4 -21
- package/build/templates/portfolio.block/index.html +14 -0
- package/build/templates/portfolio.block/src/App.tsx +27 -0
- package/build/templates/portfolio.tab/index.html +14 -0
- package/build/templates/portfolio.tab/src/App.tsx +27 -0
- package/build/templates/project.action/index.html +1 -1
- package/build/templates/project.action/src/App.tsx +4 -21
- package/build/templates/project.block/index.html +14 -0
- package/build/templates/project.block/src/App.tsx +27 -0
- package/build/templates/project.tab/index.html +14 -0
- package/build/templates/project.tab/src/App.tsx +27 -0
- package/build/templates/trigger.action/index.html +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'board.tab'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>
|
|
7
|
+
<title>Goal Action Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'goal.action'>();
|
|
@@ -8,27 +8,15 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'fields.summary.value', 'Без названия');
|
|
12
|
-
const description = getField<string>(
|
|
13
|
-
slotContext,
|
|
14
|
-
'fields.description.value',
|
|
15
|
-
'Пустое описание',
|
|
16
|
-
);
|
|
17
|
-
const status = getField<string>(slotContext, 'fields.entityStatus.value', 'Не указан');
|
|
18
|
-
const progress = getField<number>(slotContext, 'fields.progressPercentage.value', 0);
|
|
19
|
-
|
|
20
11
|
return (
|
|
21
12
|
<ThemeProvider theme={theme}>
|
|
22
|
-
<div
|
|
13
|
+
<div>
|
|
23
14
|
<Card style={{ padding: '20px' }}>
|
|
24
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
25
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
26
17
|
</Typography>
|
|
27
18
|
<DefinitionList>
|
|
28
|
-
<DefinitionList.Item name="
|
|
29
|
-
<DefinitionList.Item name="Описание">{description}</DefinitionList.Item>
|
|
30
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
31
|
-
<DefinitionList.Item name="Прогресс">{progress}</DefinitionList.Item>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
32
20
|
</DefinitionList>
|
|
33
21
|
</Card>
|
|
34
22
|
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Goal Block Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'goal.block'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Goal Tab Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'goal.tab'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>Issue
|
|
7
|
+
<title>Issue Action Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'issue.action'>();
|
|
@@ -8,24 +8,15 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'summary', 'Без названия');
|
|
12
|
-
const priority = getField<string>(slotContext, 'priority.display', 'Не указан');
|
|
13
|
-
const assignee = getField<string>(slotContext, 'assignee.display', 'Не назначен');
|
|
14
|
-
const status = getField<string>(slotContext, 'status.display', 'Не указан');
|
|
15
|
-
|
|
16
11
|
return (
|
|
17
12
|
<ThemeProvider theme={theme}>
|
|
18
|
-
<div
|
|
13
|
+
<div>
|
|
19
14
|
<Card style={{ padding: '20px' }}>
|
|
20
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
21
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
22
17
|
</Typography>
|
|
23
18
|
<DefinitionList>
|
|
24
19
|
<DefinitionList.Item name="Ключ">{slotContext.key}</DefinitionList.Item>
|
|
25
|
-
<DefinitionList.Item name="Приоритет">{priority}</DefinitionList.Item>
|
|
26
|
-
<DefinitionList.Item name="Исполнитель">{assignee}</DefinitionList.Item>
|
|
27
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
28
|
-
<DefinitionList.Item name="Название">{summary}</DefinitionList.Item>
|
|
29
20
|
</DefinitionList>
|
|
30
21
|
</Card>
|
|
31
22
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>Issue
|
|
7
|
+
<title>Issue Block Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'issue.block'>();
|
|
@@ -8,25 +8,16 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'summary', 'Без названия');
|
|
12
|
-
const priority = getField<string>(slotContext, 'priority.display', 'Не указан');
|
|
13
|
-
const assignee = getField<string>(slotContext, 'assignee.display', 'Не назначен');
|
|
14
|
-
const status = getField<string>(slotContext, 'status.display', 'Не указан');
|
|
15
|
-
|
|
16
11
|
return (
|
|
17
12
|
<ThemeProvider theme={theme}>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
27
|
-
<DefinitionList.Item name="Название">{summary}</DefinitionList.Item>
|
|
28
|
-
</DefinitionList>
|
|
29
|
-
</Card>
|
|
13
|
+
<Card style={{ padding: '20px' }}>
|
|
14
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
15
|
+
Базовый контекст (contextLevel: basic)
|
|
16
|
+
</Typography>
|
|
17
|
+
<DefinitionList>
|
|
18
|
+
<DefinitionList.Item name="Ключ">{slotContext.key}</DefinitionList.Item>
|
|
19
|
+
</DefinitionList>
|
|
20
|
+
</Card>
|
|
30
21
|
</ThemeProvider>
|
|
31
22
|
);
|
|
32
23
|
};
|
|
@@ -10,19 +10,13 @@ const App = () => {
|
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<ThemeProvider theme={theme}>
|
|
13
|
-
<div
|
|
13
|
+
<div>
|
|
14
14
|
<Card style={{ padding: '20px' }}>
|
|
15
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
17
|
</Typography>
|
|
18
18
|
<DefinitionList>
|
|
19
19
|
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
-
<DefinitionList.Item name="Тип">{slotContext.type}</DefinitionList.Item>
|
|
21
|
-
<DefinitionList.Item name="Канал">{slotContext.transport}</DefinitionList.Item>
|
|
22
|
-
<DefinitionList.Item name="Создан">{slotContext.createdAt}</DefinitionList.Item>
|
|
23
|
-
<DefinitionList.Item name="Обновлён">{slotContext.updatedAt ?? '—'}</DefinitionList.Item>
|
|
24
|
-
<DefinitionList.Item name="Текст">{slotContext.text}</DefinitionList.Item>
|
|
25
|
-
<DefinitionList.Item name="Текст">{slotContext.email}</DefinitionList.Item>
|
|
26
20
|
</DefinitionList>
|
|
27
21
|
</Card>
|
|
28
22
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'issue.tab'>();
|
|
@@ -8,24 +8,15 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'summary', 'Без названия');
|
|
12
|
-
const priority = getField<string>(slotContext, 'priority.display', 'Не указан');
|
|
13
|
-
const assignee = getField<string>(slotContext, 'assignee.display', 'Не назначен');
|
|
14
|
-
const status = getField<string>(slotContext, 'status.display', 'Не указан');
|
|
15
|
-
|
|
16
11
|
return (
|
|
17
12
|
<ThemeProvider theme={theme}>
|
|
18
13
|
<div style={{ padding: '50px' }}>
|
|
19
14
|
<Card style={{ padding: '20px' }}>
|
|
20
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
21
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
22
17
|
</Typography>
|
|
23
18
|
<DefinitionList>
|
|
24
19
|
<DefinitionList.Item name="Ключ">{slotContext.key}</DefinitionList.Item>
|
|
25
|
-
<DefinitionList.Item name="Приоритет">{priority}</DefinitionList.Item>
|
|
26
|
-
<DefinitionList.Item name="Исполнитель">{assignee}</DefinitionList.Item>
|
|
27
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
28
|
-
<DefinitionList.Item name="Название">{summary}</DefinitionList.Item>
|
|
29
20
|
</DefinitionList>
|
|
30
21
|
</Card>
|
|
31
22
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>
|
|
7
|
+
<title>Portfolio Action Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'portfolio.action'>();
|
|
@@ -8,32 +8,15 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'fields.summary.value', 'Без названия');
|
|
12
|
-
const description = getField<string>(
|
|
13
|
-
slotContext,
|
|
14
|
-
'fields.description.value',
|
|
15
|
-
'Пустое описание',
|
|
16
|
-
);
|
|
17
|
-
const status = getField<string>(slotContext, 'fields.entityStatus.value', 'Не указан');
|
|
18
|
-
const progress = getField<{ total: number; closed: number }>(slotContext, 'progress', {
|
|
19
|
-
total: 0,
|
|
20
|
-
closed: 0,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
11
|
return (
|
|
24
12
|
<ThemeProvider theme={theme}>
|
|
25
|
-
<div
|
|
13
|
+
<div>
|
|
26
14
|
<Card style={{ padding: '20px' }}>
|
|
27
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
28
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
29
17
|
</Typography>
|
|
30
18
|
<DefinitionList>
|
|
31
|
-
<DefinitionList.Item name="
|
|
32
|
-
<DefinitionList.Item name="Описание">{description}</DefinitionList.Item>
|
|
33
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
34
|
-
<DefinitionList.Item name="Прогресс">
|
|
35
|
-
{progress?.closed}/{progress?.total}
|
|
36
|
-
</DefinitionList.Item>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
37
20
|
</DefinitionList>
|
|
38
21
|
</Card>
|
|
39
22
|
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Portfolio Block Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'portfolio.block'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Portfolio Tab Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'portfolio.tab'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>Project
|
|
7
|
+
<title>Project Action Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
-
import {
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
3
|
|
|
4
4
|
const App = () => {
|
|
5
5
|
const { theme, slotContext } = useTrackerPluginContext<'project.action'>();
|
|
@@ -8,32 +8,15 @@ const App = () => {
|
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const summary = getField<string>(slotContext, 'fields.summary.value', 'Без названия');
|
|
12
|
-
const description = getField<string>(
|
|
13
|
-
slotContext,
|
|
14
|
-
'fields.description.value',
|
|
15
|
-
'Пустое описание',
|
|
16
|
-
);
|
|
17
|
-
const status = getField<string>(slotContext, 'fields.entityStatus.value', 'Не указан');
|
|
18
|
-
const progress = getField<{ total: number; closed: number }>(slotContext, 'progress', {
|
|
19
|
-
total: 0,
|
|
20
|
-
closed: 0,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
11
|
return (
|
|
24
12
|
<ThemeProvider theme={theme}>
|
|
25
|
-
<div
|
|
13
|
+
<div>
|
|
26
14
|
<Card style={{ padding: '20px' }}>
|
|
27
15
|
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
28
|
-
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
29
17
|
</Typography>
|
|
30
18
|
<DefinitionList>
|
|
31
|
-
<DefinitionList.Item name="
|
|
32
|
-
<DefinitionList.Item name="Описание">{description}</DefinitionList.Item>
|
|
33
|
-
<DefinitionList.Item name="Статус">{status}</DefinitionList.Item>
|
|
34
|
-
<DefinitionList.Item name="Прогресс">
|
|
35
|
-
{progress?.closed}/{progress?.total}
|
|
36
|
-
</DefinitionList.Item>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
37
20
|
</DefinitionList>
|
|
38
21
|
</Card>
|
|
39
22
|
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Project Block Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'project.block'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Web site created using vite" />
|
|
7
|
+
<title>Project Tab Plugin</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body class="g-root g-root_theme_dark">
|
|
10
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Card, DefinitionList, ThemeProvider, Text as Typography } from '@gravity-ui/uikit';
|
|
2
|
+
import { useTrackerPluginContext } from '@yandex-data-ui/tracker-plugin-sdk-react';
|
|
3
|
+
|
|
4
|
+
const App = () => {
|
|
5
|
+
const { theme, slotContext } = useTrackerPluginContext<'project.tab'>();
|
|
6
|
+
|
|
7
|
+
if (!slotContext) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<ThemeProvider theme={theme}>
|
|
13
|
+
<div>
|
|
14
|
+
<Card style={{ padding: '20px' }}>
|
|
15
|
+
<Typography variant="header-1" as="div" style={{ marginBottom: '16px' }}>
|
|
16
|
+
Базовый контекст (contextLevel: basic)
|
|
17
|
+
</Typography>
|
|
18
|
+
<DefinitionList>
|
|
19
|
+
<DefinitionList.Item name="ID">{slotContext.id}</DefinitionList.Item>
|
|
20
|
+
</DefinitionList>
|
|
21
|
+
</Card>
|
|
22
|
+
</div>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default App;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="description" content="Web site created using vite" />
|
|
7
|
-
<title>Trigger
|
|
7
|
+
<title>Trigger Action Plugin</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body class="g-root g-root_theme_dark">
|
|
10
10
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weavix/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "CLI to work with plugins of Yandex Tracker",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"commander": "14.0.3",
|
|
21
21
|
"execa": "9.6.1",
|
|
22
22
|
"form-data": "4.0.5",
|
|
23
|
+
"jszip": "^3.10.1",
|
|
23
24
|
"node-fetch": "3.3.2",
|
|
24
25
|
"picocolors": "1.1.1",
|
|
25
26
|
"tinyglobby": "0.2.15"
|