@local-civics/mgmt-ui 0.1.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/dist/components/banners/TenantBanner/TenantBanner.d.ts +24 -0
- package/dist/components/charts/AreaChart/AreaChart.d.ts +20 -0
- package/dist/components/data/Timeline/Timeline.d.ts +18 -0
- package/dist/components/navigation/Navbar/Navbar.d.ts +15 -0
- package/dist/components/navigation/Navbar/component.stories.d.ts +15 -0
- package/dist/components/navigation/Tabs/Tabs.d.ts +19 -0
- package/dist/components/stats/StatsGrid/StatsGrid.d.ts +15 -0
- package/dist/components/stats/StatsGroup/StatsGroup.d.ts +15 -0
- package/dist/components/users/UserInfo/UserInfo.d.ts +20 -0
- package/dist/hooks/notifications.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.es.js +1 -0
- package/dist/index.js +1 -0
- package/dist/pages/Badges/Badge/Badge.d.ts +34 -0
- package/dist/pages/Badges/Badge/BadgeUserTable.d.ts +23 -0
- package/dist/pages/Badges/Badge/component.stories.d.ts +15 -0
- package/dist/pages/Badges/BadgeTable.d.ts +22 -0
- package/dist/pages/Badges/Badges.d.ts +31 -0
- package/dist/pages/Badges/component.stories.d.ts +15 -0
- package/dist/pages/Dashboard/Breakdown/Breakdown.d.ts +25 -0
- package/dist/pages/Dashboard/Breakdown/BreakdownUserTable.d.ts +21 -0
- package/dist/pages/Dashboard/Dashboard.d.ts +35 -0
- package/dist/pages/Dashboard/Overview/Overview.d.ts +40 -0
- package/dist/pages/Dashboard/component.stories.d.ts +15 -0
- package/dist/pages/Groups/Group/Group.d.ts +64 -0
- package/dist/pages/Groups/Group/GroupUserTable.d.ts +28 -0
- package/dist/pages/Groups/Groups.d.ts +42 -0
- package/dist/pages/Groups/GroupsStack.d.ts +23 -0
- package/dist/pages/Groups/component.stories.d.ts +15 -0
- package/dist/pages/Home/Home.d.ts +54 -0
- package/dist/pages/Home/component.stories.d.ts +15 -0
- package/dist/pages/Lessons/Lesson/Lesson.d.ts +34 -0
- package/dist/pages/Lessons/Lesson/LessonUserTable.d.ts +23 -0
- package/dist/pages/Lessons/Lesson/component.stories.d.ts +15 -0
- package/dist/pages/Lessons/LessonTable.d.ts +22 -0
- package/dist/pages/Lessons/Lessons.d.ts +31 -0
- package/dist/pages/Lessons/component.stories.d.ts +15 -0
- package/dist/providers/MgmtProvider/MgmtProvider.d.ts +14 -0
- package/dist/shells/Mgmt/Mgmt.d.ts +77 -0
- package/dist/shells/Mgmt/SwitchAccount/SwitchAccount.d.ts +26 -0
- package/dist/shells/Mgmt/component.stories.d.ts +15 -0
- package/dist/utils/time.d.ts +11 -0
- package/package.json +33 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TabsValue } from '@mantine/core';
|
|
3
|
+
import { DateRangePickerValue } from '@mantine/dates';
|
|
4
|
+
import { BreakdownData } from "./Breakdown/Breakdown";
|
|
5
|
+
import { OverviewData } from "./Overview/Overview";
|
|
6
|
+
/**
|
|
7
|
+
* DashboardData
|
|
8
|
+
*/
|
|
9
|
+
export interface DashboardData {
|
|
10
|
+
dateRange: DateRangePickerValue;
|
|
11
|
+
overview: OverviewData;
|
|
12
|
+
breakdown: BreakdownData;
|
|
13
|
+
groups: {
|
|
14
|
+
name: string;
|
|
15
|
+
active?: boolean;
|
|
16
|
+
}[];
|
|
17
|
+
tab: TabsValue;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* DashboardProps
|
|
21
|
+
*/
|
|
22
|
+
export interface DashboardProps {
|
|
23
|
+
data: DashboardData;
|
|
24
|
+
onBreakdownMetricChange: (next: string) => void;
|
|
25
|
+
onDateRangeChange: (next: DateRangePickerValue) => void;
|
|
26
|
+
onGroupChange: (next: string) => void;
|
|
27
|
+
onOverviewMetricChange: (next: string) => void;
|
|
28
|
+
onTabChange: (next: TabsValue) => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Dashboard
|
|
32
|
+
* @param props
|
|
33
|
+
* @constructor
|
|
34
|
+
*/
|
|
35
|
+
export declare const Dashboard: (props: DashboardProps) => JSX.Element;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* OverviewData
|
|
4
|
+
*/
|
|
5
|
+
export interface OverviewData {
|
|
6
|
+
stats: {
|
|
7
|
+
"PROBLEMS SOLVED": {
|
|
8
|
+
value: number;
|
|
9
|
+
diff: number;
|
|
10
|
+
};
|
|
11
|
+
"LESSONS COMPLETED": {
|
|
12
|
+
value: number;
|
|
13
|
+
diff: number;
|
|
14
|
+
};
|
|
15
|
+
"BADGES EARNED": {
|
|
16
|
+
value: number;
|
|
17
|
+
diff: number;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
areaChart: {
|
|
21
|
+
metric: string;
|
|
22
|
+
points: {
|
|
23
|
+
name: string;
|
|
24
|
+
value: number;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* OverviewProps
|
|
30
|
+
*/
|
|
31
|
+
export interface OverviewProps {
|
|
32
|
+
data: OverviewData;
|
|
33
|
+
onMetricChange: (next: string) => void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Overview
|
|
37
|
+
* @param props
|
|
38
|
+
* @constructor
|
|
39
|
+
*/
|
|
40
|
+
export declare const Overview: (props: OverviewProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DashboardProps } from "./Dashboard";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: DashboardProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<DashboardProps>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GroupUserItem } from "./GroupUserTable";
|
|
3
|
+
/**
|
|
4
|
+
* GroupData
|
|
5
|
+
*/
|
|
6
|
+
export interface GroupData {
|
|
7
|
+
description: string;
|
|
8
|
+
name: string;
|
|
9
|
+
groupUserHomeOpen: boolean;
|
|
10
|
+
user: {
|
|
11
|
+
avatar: string;
|
|
12
|
+
givenName: string;
|
|
13
|
+
familyName: string;
|
|
14
|
+
email: string;
|
|
15
|
+
job: string;
|
|
16
|
+
quote: string;
|
|
17
|
+
};
|
|
18
|
+
tenant: {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
image: string;
|
|
22
|
+
website: string;
|
|
23
|
+
};
|
|
24
|
+
stats: {
|
|
25
|
+
"PROBLEMS SOLVED": {
|
|
26
|
+
value: number;
|
|
27
|
+
diff: number;
|
|
28
|
+
};
|
|
29
|
+
"LESSONS COMPLETED": {
|
|
30
|
+
value: number;
|
|
31
|
+
diff: number;
|
|
32
|
+
};
|
|
33
|
+
"BADGES EARNED": {
|
|
34
|
+
value: number;
|
|
35
|
+
diff: number;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
timeline: {
|
|
39
|
+
key: string;
|
|
40
|
+
name: string;
|
|
41
|
+
link?: string;
|
|
42
|
+
description: string;
|
|
43
|
+
time: string;
|
|
44
|
+
}[];
|
|
45
|
+
users: GroupUserItem[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* GroupProps
|
|
49
|
+
*/
|
|
50
|
+
export interface GroupProps {
|
|
51
|
+
data: GroupData;
|
|
52
|
+
onBackClick: () => void;
|
|
53
|
+
onCreateUsers: (users: GroupUserItem[]) => void;
|
|
54
|
+
onDelete: (user: GroupUserItem) => void;
|
|
55
|
+
onRoleChange: (user: GroupUserItem, role: string | null) => void;
|
|
56
|
+
onViewProfile: (user: GroupUserItem) => Promise<void>;
|
|
57
|
+
onTimelineScrollBottom: () => void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Group
|
|
61
|
+
* @param props
|
|
62
|
+
* @constructor
|
|
63
|
+
*/
|
|
64
|
+
export declare const Group: (props: GroupProps) => JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* GroupUserItem
|
|
4
|
+
*/
|
|
5
|
+
export type GroupUserItem = {
|
|
6
|
+
key: string;
|
|
7
|
+
avatar: string;
|
|
8
|
+
email: string;
|
|
9
|
+
givenName: string;
|
|
10
|
+
familyName: string;
|
|
11
|
+
role: string;
|
|
12
|
+
lastActivity: Date | null;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* GroupUserTableProps
|
|
16
|
+
*/
|
|
17
|
+
export interface GroupUserTableProps {
|
|
18
|
+
data: GroupUserItem[];
|
|
19
|
+
onChangeRole: (user: GroupUserItem, role: string | null) => void;
|
|
20
|
+
onDelete: (user: GroupUserItem) => void;
|
|
21
|
+
onViewProfile: (user: GroupUserItem) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* GroupUserTable
|
|
25
|
+
* @param props
|
|
26
|
+
* @constructor
|
|
27
|
+
*/
|
|
28
|
+
export declare function GroupUserTable(props: GroupUserTableProps): JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GroupData } from "./Group/Group";
|
|
3
|
+
import { GroupUserItem } from "./Group/GroupUserTable";
|
|
4
|
+
import { GroupStackItem } from "./GroupsStack";
|
|
5
|
+
/**
|
|
6
|
+
* GroupsData
|
|
7
|
+
*/
|
|
8
|
+
export interface GroupsData {
|
|
9
|
+
formOpen: boolean;
|
|
10
|
+
group: GroupData;
|
|
11
|
+
groupOpen: boolean;
|
|
12
|
+
groups: GroupStackItem[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* GroupsProps
|
|
16
|
+
*/
|
|
17
|
+
export interface GroupsProps {
|
|
18
|
+
data: GroupsData;
|
|
19
|
+
onCreateGroup: (group: {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
}) => void;
|
|
23
|
+
onCreateGroupUsers: (users: GroupUserItem[]) => void;
|
|
24
|
+
onDeleteGroup: (group: {
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
}) => void;
|
|
28
|
+
onDeleteGroupUser: (user: GroupUserItem) => void;
|
|
29
|
+
onEditGroup: (group: {
|
|
30
|
+
name: string;
|
|
31
|
+
description: string;
|
|
32
|
+
}) => void;
|
|
33
|
+
onViewGroupUser: (user: GroupUserItem) => Promise<void>;
|
|
34
|
+
onGroupUserRoleChange: (user: GroupUserItem, next: string | null) => void;
|
|
35
|
+
onTimelineScrollBottom: () => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Groups
|
|
39
|
+
* @param props
|
|
40
|
+
* @constructor
|
|
41
|
+
*/
|
|
42
|
+
export declare const Groups: (props: GroupsProps) => JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* GroupStackItem
|
|
4
|
+
*/
|
|
5
|
+
export type GroupStackItem = {
|
|
6
|
+
key: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* GroupsStackProps
|
|
12
|
+
*/
|
|
13
|
+
export interface GroupsStackProps {
|
|
14
|
+
data: GroupStackItem[];
|
|
15
|
+
onEditGroup: (group: GroupStackItem) => void;
|
|
16
|
+
onDeleteGroup: (group: GroupStackItem) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* GroupsStack
|
|
20
|
+
* @param props
|
|
21
|
+
* @constructor
|
|
22
|
+
*/
|
|
23
|
+
export declare function GroupsStack(props: GroupsStackProps): JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GroupsProps } from "./Groups";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: GroupsProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<GroupsProps>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* HomeData
|
|
4
|
+
*/
|
|
5
|
+
export interface HomeData {
|
|
6
|
+
user: {
|
|
7
|
+
avatar: string;
|
|
8
|
+
givenName: string;
|
|
9
|
+
familyName: string;
|
|
10
|
+
email: string;
|
|
11
|
+
job: string;
|
|
12
|
+
quote: string;
|
|
13
|
+
};
|
|
14
|
+
tenant: {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
image: string;
|
|
18
|
+
website: string;
|
|
19
|
+
};
|
|
20
|
+
stats: {
|
|
21
|
+
"PROBLEMS SOLVED": {
|
|
22
|
+
value: number;
|
|
23
|
+
diff: number;
|
|
24
|
+
};
|
|
25
|
+
"LESSONS COMPLETED": {
|
|
26
|
+
value: number;
|
|
27
|
+
diff: number;
|
|
28
|
+
};
|
|
29
|
+
"BADGES EARNED": {
|
|
30
|
+
value: number;
|
|
31
|
+
diff: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
timeline: {
|
|
35
|
+
key: string;
|
|
36
|
+
name: string;
|
|
37
|
+
link?: string;
|
|
38
|
+
description: string;
|
|
39
|
+
time: string;
|
|
40
|
+
}[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* HomeProps
|
|
44
|
+
*/
|
|
45
|
+
export interface HomeProps {
|
|
46
|
+
data: HomeData;
|
|
47
|
+
onTimelineScrollBottom: () => void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Home
|
|
51
|
+
* @param props
|
|
52
|
+
* @constructor
|
|
53
|
+
*/
|
|
54
|
+
export declare const Home: (props: HomeProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { HomeProps } from "./Home";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: HomeProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<HomeProps>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TabsValue } from '@mantine/core';
|
|
3
|
+
import { LessonUserItem } from "./LessonUserTable";
|
|
4
|
+
/**
|
|
5
|
+
* LessonData
|
|
6
|
+
*/
|
|
7
|
+
export interface LessonData {
|
|
8
|
+
key: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
groups: {
|
|
12
|
+
name: string;
|
|
13
|
+
active?: boolean;
|
|
14
|
+
}[];
|
|
15
|
+
tab: TabsValue;
|
|
16
|
+
users: LessonUserItem[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* LessonProps
|
|
20
|
+
*/
|
|
21
|
+
export interface LessonProps {
|
|
22
|
+
data: LessonData;
|
|
23
|
+
onBackClick: () => void;
|
|
24
|
+
onGroupChange: (next: string) => void;
|
|
25
|
+
onPreview: (lesson: LessonData) => void;
|
|
26
|
+
onTabChange: (next: TabsValue) => void;
|
|
27
|
+
onUserClick: (user: LessonUserItem) => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Lesson
|
|
31
|
+
* @param props
|
|
32
|
+
* @constructor
|
|
33
|
+
*/
|
|
34
|
+
export declare const Lesson: (props: LessonProps) => JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* LessonUserItem
|
|
4
|
+
*/
|
|
5
|
+
export interface LessonUserItem {
|
|
6
|
+
key: string;
|
|
7
|
+
avatar: string;
|
|
8
|
+
name: string;
|
|
9
|
+
email: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* LessonUserTableProps
|
|
13
|
+
*/
|
|
14
|
+
export interface LessonUserTableProps {
|
|
15
|
+
data: LessonUserItem[];
|
|
16
|
+
onClick: (user: LessonUserItem) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* LessonUserTable
|
|
20
|
+
* @constructor
|
|
21
|
+
* @param props
|
|
22
|
+
*/
|
|
23
|
+
export declare function LessonUserTable(props: LessonUserTableProps): JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { LessonProps } from "./Lesson";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: LessonProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<LessonProps>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* LessonItem
|
|
4
|
+
*/
|
|
5
|
+
export interface LessonItem {
|
|
6
|
+
key: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* LessonTableProps
|
|
12
|
+
*/
|
|
13
|
+
export interface LessonTableProps {
|
|
14
|
+
data: LessonItem[];
|
|
15
|
+
onClick: (lesson: LessonItem) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* LessonTable
|
|
19
|
+
* @param props
|
|
20
|
+
* @constructor
|
|
21
|
+
*/
|
|
22
|
+
export declare function LessonTable(props: LessonTableProps): JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TabsValue } from '@mantine/core';
|
|
3
|
+
import { LessonData } from "./Lesson/Lesson";
|
|
4
|
+
import { LessonUserItem } from "./Lesson/LessonUserTable";
|
|
5
|
+
import { LessonItem } from "./LessonTable";
|
|
6
|
+
/**
|
|
7
|
+
* LessonsData
|
|
8
|
+
*/
|
|
9
|
+
export interface LessonsData {
|
|
10
|
+
lesson: LessonData;
|
|
11
|
+
lessonOpen: boolean;
|
|
12
|
+
lessons: LessonItem[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* LessonsProps
|
|
16
|
+
*/
|
|
17
|
+
export interface LessonsProps {
|
|
18
|
+
data: LessonsData;
|
|
19
|
+
onAutocompleteChange: (next: string) => void;
|
|
20
|
+
onGroupChange: (next: string) => void;
|
|
21
|
+
onLessonClick: (lesson: LessonItem) => void;
|
|
22
|
+
onPreview: (lesson: LessonItem) => void;
|
|
23
|
+
onTabChange: (tab: TabsValue) => void;
|
|
24
|
+
onUserClick: (user: LessonUserItem) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Lessons
|
|
28
|
+
* @param props
|
|
29
|
+
* @constructor
|
|
30
|
+
*/
|
|
31
|
+
export declare const Lessons: (props: LessonsProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { LessonsProps } from "./Lessons";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: LessonsProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<LessonsProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* MgmtProviderProps
|
|
4
|
+
*/
|
|
5
|
+
export interface MgmtProviderProps {
|
|
6
|
+
notificationLimit?: number;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* MgmtProvider
|
|
11
|
+
* @constructor
|
|
12
|
+
* @param props
|
|
13
|
+
*/
|
|
14
|
+
export declare const MgmtProvider: (props: MgmtProviderProps) => JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TabsValue } from "@mantine/core";
|
|
3
|
+
import { DateRangePickerValue } from "@mantine/dates";
|
|
4
|
+
import { BadgeUserItem } from "../../pages/Badges/Badge/BadgeUserTable";
|
|
5
|
+
import { BadgesData } from "../../pages/Badges/Badges";
|
|
6
|
+
import { BadgeItem } from "../../pages/Badges/BadgeTable";
|
|
7
|
+
import { LessonUserItem } from "../../pages/Lessons/Lesson/LessonUserTable";
|
|
8
|
+
import { LessonsData } from "../../pages/Lessons/Lessons";
|
|
9
|
+
import { LessonItem } from "../../pages/Lessons/LessonTable";
|
|
10
|
+
import { AccountData } from "./SwitchAccount/SwitchAccount";
|
|
11
|
+
import { GroupUserItem } from "../../pages/Groups/Group/GroupUserTable";
|
|
12
|
+
import { GroupsData } from "../../pages/Groups/Groups";
|
|
13
|
+
import { DashboardData } from "../../pages/Dashboard/Dashboard";
|
|
14
|
+
import { HomeData } from "../../pages/Home/Home";
|
|
15
|
+
/**
|
|
16
|
+
* MgmtData
|
|
17
|
+
*/
|
|
18
|
+
export interface MgmtData {
|
|
19
|
+
navbar: {
|
|
20
|
+
active: string;
|
|
21
|
+
};
|
|
22
|
+
home: HomeData;
|
|
23
|
+
dashboard: DashboardData;
|
|
24
|
+
groups: GroupsData;
|
|
25
|
+
account: AccountData;
|
|
26
|
+
lessons: LessonsData;
|
|
27
|
+
badges: BadgesData;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* MgmtProps
|
|
31
|
+
*/
|
|
32
|
+
export interface MgmtProps {
|
|
33
|
+
data: MgmtData;
|
|
34
|
+
onAccountChange: (next: string) => void;
|
|
35
|
+
onDashboardBreakdownMetricChange: (next: string) => void;
|
|
36
|
+
onDashboardDateRangeChange: (next: DateRangePickerValue) => void;
|
|
37
|
+
onDashboardGroupChange: (next: string) => void;
|
|
38
|
+
onDashboardOverviewMetricChange: (next: string) => void;
|
|
39
|
+
onDashboardTabChange: (next: TabsValue) => void;
|
|
40
|
+
onHomeTimelineScrollBottom: () => void;
|
|
41
|
+
onNavbarClick: (label: string) => void;
|
|
42
|
+
onCreateGroup: (group: {
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
}) => void;
|
|
46
|
+
onCreateGroupUsers: (users: GroupUserItem[]) => void;
|
|
47
|
+
onDeleteGroup: (group: {
|
|
48
|
+
name: string;
|
|
49
|
+
description: string;
|
|
50
|
+
}) => void;
|
|
51
|
+
onDeleteGroupUser: (user: GroupUserItem) => void;
|
|
52
|
+
onEditGroup: (group: {
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
}) => void;
|
|
56
|
+
onViewGroupUser: (user: GroupUserItem) => Promise<void>;
|
|
57
|
+
onGroupUserRoleChange: (user: GroupUserItem, next: string | null) => void;
|
|
58
|
+
onLessonAutocompleteChange: (next: string) => void;
|
|
59
|
+
onLessonGroupChange: (next: string) => void;
|
|
60
|
+
onLessonClick: (lesson: LessonItem) => void;
|
|
61
|
+
onLessonPreview: (lesson: LessonItem) => void;
|
|
62
|
+
onLessonTabChange: (tab: TabsValue) => void;
|
|
63
|
+
onLessonUserClick: (user: LessonUserItem) => void;
|
|
64
|
+
onGroupUserTimelineScrollBottom: () => void;
|
|
65
|
+
onBadgeAutocompleteChange: (next: string) => void;
|
|
66
|
+
onBadgePreview: (badge: BadgeItem) => void;
|
|
67
|
+
onBadgeGroupChange: (next: string) => void;
|
|
68
|
+
onBadgeClick: (badge: BadgeItem) => void;
|
|
69
|
+
onBadgeTabChange: (tab: TabsValue) => void;
|
|
70
|
+
onBadgeUserClick: (user: BadgeUserItem) => void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Mgmt
|
|
74
|
+
* @param props
|
|
75
|
+
* @constructor
|
|
76
|
+
*/
|
|
77
|
+
export declare const Mgmt: (props: MgmtProps) => JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* AccountData
|
|
4
|
+
*/
|
|
5
|
+
export interface AccountData {
|
|
6
|
+
hidden: boolean;
|
|
7
|
+
active: string;
|
|
8
|
+
accounts: {
|
|
9
|
+
key: string;
|
|
10
|
+
name: string;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* SwitchAccountProps
|
|
15
|
+
*/
|
|
16
|
+
export interface SwitchAccountProps {
|
|
17
|
+
data: AccountData;
|
|
18
|
+
onChange: (next: string) => void;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* SwitchAccount
|
|
23
|
+
* @param props
|
|
24
|
+
* @constructor
|
|
25
|
+
*/
|
|
26
|
+
export declare const SwitchAccount: (props: SwitchAccountProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { MgmtProps } from "./Mgmt";
|
|
3
|
+
import { Story } from "@storybook/react";
|
|
4
|
+
/**
|
|
5
|
+
* Storybook component configuration
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
title: string;
|
|
9
|
+
component: (props: MgmtProps) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* Component stories
|
|
14
|
+
*/
|
|
15
|
+
export declare const Component: Story<MgmtProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get language-sensitive relative time message from Dates.
|
|
3
|
+
* @param relative - the relative dateTime, generally is in the past or future
|
|
4
|
+
* @param pivot - the dateTime of reference, generally is the current time
|
|
5
|
+
*/
|
|
6
|
+
export declare function relativeTimeFromDates(relative: Date | null, pivot?: Date): string;
|
|
7
|
+
/**
|
|
8
|
+
* Get language-sensitive relative time message from elapsed time.
|
|
9
|
+
* @param elapsed - the elapsed time in milliseconds
|
|
10
|
+
*/
|
|
11
|
+
export declare function relativeTimeFromElapsed(elapsed: number): string;
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@local-civics/mgmt-ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"module": "./dist/index.es.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "start-storybook -h localhost -p 6006",
|
|
8
|
+
"build": "rollup -c && tsc",
|
|
9
|
+
"watch": "rollup -cw",
|
|
10
|
+
"test": "jest --coverage=true --passWithNoTests",
|
|
11
|
+
"build-storybook": "build-storybook",
|
|
12
|
+
"chromatic": "npx chromatic",
|
|
13
|
+
"fmt": "npx prettier --write src"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@emotion/react": "^11.10.5",
|
|
17
|
+
"@emotion/styled": "^11.10.5",
|
|
18
|
+
"@mantine/core": "^5.8.0",
|
|
19
|
+
"@mantine/dates": "^5.8.0",
|
|
20
|
+
"@mantine/dropzone": "^5.8.0",
|
|
21
|
+
"@mantine/ds": "^5.8.0",
|
|
22
|
+
"@mantine/form": "^5.8.0",
|
|
23
|
+
"@mantine/hooks": "^5.8.0",
|
|
24
|
+
"@mantine/modals": "^5.8.0",
|
|
25
|
+
"@mantine/notifications": "^5.8.0",
|
|
26
|
+
"@tabler/icons": "^1.111.0",
|
|
27
|
+
"papaparse": "^5.3.2",
|
|
28
|
+
"recharts": "^2.1.9"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/papaparse": "^5.3.5"
|
|
32
|
+
}
|
|
33
|
+
}
|