@algoux/standard-ranklist-renderer-component-vue 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.
@@ -0,0 +1,121 @@
1
+ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ open: {
3
+ type: BooleanConstructor;
4
+ required: true;
5
+ };
6
+ title: {
7
+ type: StringConstructor;
8
+ required: false;
9
+ };
10
+ width: {
11
+ type: NumberConstructor;
12
+ required: false;
13
+ };
14
+ rootClassName: {
15
+ type: StringConstructor;
16
+ required: false;
17
+ };
18
+ wrapClassName: {
19
+ type: StringConstructor;
20
+ required: false;
21
+ };
22
+ style: {
23
+ type: ObjectConstructor;
24
+ required: false;
25
+ };
26
+ destroyOnClose: {
27
+ type: BooleanConstructor;
28
+ required: false;
29
+ default: boolean;
30
+ };
31
+ closeOnEsc: {
32
+ type: BooleanConstructor;
33
+ required: false;
34
+ default: boolean;
35
+ };
36
+ closeOnMaskClick: {
37
+ type: BooleanConstructor;
38
+ required: false;
39
+ default: boolean;
40
+ };
41
+ }>, {
42
+ nextModalId: number;
43
+ props: any;
44
+ emit: (event: "close" | "update:open", ...args: any[]) => void;
45
+ titleId: string;
46
+ dialogRef: import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>;
47
+ isMounted: import("vue").Ref<any, any>;
48
+ animationState: import("vue").Ref<"pre-open" | "opening" | "closing", "pre-open" | "opening" | "closing">;
49
+ transformOrigin: import("vue").Ref<{
50
+ x: number;
51
+ y: number;
52
+ }, {
53
+ x: number;
54
+ y: number;
55
+ } | {
56
+ x: number;
57
+ y: number;
58
+ }>;
59
+ closeTimer: number | null;
60
+ openTimer: number | null;
61
+ focusScopeId: number | null;
62
+ shouldRender: import("vue").ComputedRef<any>;
63
+ rootClasses: import("vue").ComputedRef<any[]>;
64
+ shouldLockBody: import("vue").ComputedRef<any>;
65
+ dialogStyle: import("vue").ComputedRef<any>;
66
+ clearTimers: () => void;
67
+ queueOpenAnimation: () => Promise<void>;
68
+ registerFocusScope: () => void;
69
+ releaseFocusScope: () => void;
70
+ requestClose: (reason: 'mask' | 'close-button' | 'escape') => void;
71
+ handleMaskMouseDown: (event: MouseEvent) => void;
72
+ handleEscape: (event: KeyboardEvent) => void;
73
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "update:open")[], "close" | "update:open", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
74
+ open: {
75
+ type: BooleanConstructor;
76
+ required: true;
77
+ };
78
+ title: {
79
+ type: StringConstructor;
80
+ required: false;
81
+ };
82
+ width: {
83
+ type: NumberConstructor;
84
+ required: false;
85
+ };
86
+ rootClassName: {
87
+ type: StringConstructor;
88
+ required: false;
89
+ };
90
+ wrapClassName: {
91
+ type: StringConstructor;
92
+ required: false;
93
+ };
94
+ style: {
95
+ type: ObjectConstructor;
96
+ required: false;
97
+ };
98
+ destroyOnClose: {
99
+ type: BooleanConstructor;
100
+ required: false;
101
+ default: boolean;
102
+ };
103
+ closeOnEsc: {
104
+ type: BooleanConstructor;
105
+ required: false;
106
+ default: boolean;
107
+ };
108
+ closeOnMaskClick: {
109
+ type: BooleanConstructor;
110
+ required: false;
111
+ default: boolean;
112
+ };
113
+ }>> & Readonly<{
114
+ onClose?: ((...args: any[]) => any) | undefined;
115
+ "onUpdate:open"?: ((...args: any[]) => any) | undefined;
116
+ }>, {
117
+ closeOnEsc: boolean;
118
+ closeOnMaskClick: boolean;
119
+ destroyOnClose: boolean;
120
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
121
+ export default _sfc_main;
@@ -0,0 +1,38 @@
1
+ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ problem: {
3
+ type: null;
4
+ required: true;
5
+ };
6
+ index: {
7
+ type: NumberConstructor;
8
+ required: true;
9
+ };
10
+ theme: {
11
+ type: StringConstructor;
12
+ required: false;
13
+ default: any;
14
+ };
15
+ }>, {
16
+ props: any;
17
+ alias: import("vue").ComputedRef<any>;
18
+ stat: import("vue").ComputedRef<any>;
19
+ statDesc: import("vue").ComputedRef<string>;
20
+ backgroundImage: import("vue").ComputedRef<string>;
21
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
22
+ problem: {
23
+ type: null;
24
+ required: true;
25
+ };
26
+ index: {
27
+ type: NumberConstructor;
28
+ required: true;
29
+ };
30
+ theme: {
31
+ type: StringConstructor;
32
+ required: false;
33
+ default: any;
34
+ };
35
+ }>> & Readonly<{}>, {
36
+ theme: string;
37
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
+ export default _sfc_main;
@@ -0,0 +1,89 @@
1
+ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ status: {
3
+ type: null;
4
+ required: true;
5
+ };
6
+ problem: {
7
+ type: null;
8
+ required: false;
9
+ };
10
+ problemIndex: {
11
+ type: NumberConstructor;
12
+ required: true;
13
+ };
14
+ user: {
15
+ type: null;
16
+ required: true;
17
+ };
18
+ row: {
19
+ type: null;
20
+ required: true;
21
+ };
22
+ rowIndex: {
23
+ type: NumberConstructor;
24
+ required: true;
25
+ };
26
+ ranklist: {
27
+ type: ObjectConstructor;
28
+ required: true;
29
+ };
30
+ onSolutionClick: {
31
+ type: FunctionConstructor;
32
+ required: false;
33
+ };
34
+ }>, {
35
+ props: any;
36
+ solutions: import("vue").ComputedRef<any[]>;
37
+ isClickable: import("vue").ComputedRef<boolean>;
38
+ commonClassName: import("vue").ComputedRef<(string | {
39
+ 'srk--cursor-pointer': boolean;
40
+ })[]>;
41
+ emitSolutionClick: (event: MouseEvent) => void;
42
+ AcceptedStatusBody: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
43
+ status: {
44
+ type: ObjectConstructor;
45
+ required: true;
46
+ };
47
+ }>, () => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
48
+ [key: string]: any;
49
+ }>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
50
+ status: {
51
+ type: ObjectConstructor;
52
+ required: true;
53
+ };
54
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
55
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
56
+ status: {
57
+ type: null;
58
+ required: true;
59
+ };
60
+ problem: {
61
+ type: null;
62
+ required: false;
63
+ };
64
+ problemIndex: {
65
+ type: NumberConstructor;
66
+ required: true;
67
+ };
68
+ user: {
69
+ type: null;
70
+ required: true;
71
+ };
72
+ row: {
73
+ type: null;
74
+ required: true;
75
+ };
76
+ rowIndex: {
77
+ type: NumberConstructor;
78
+ required: true;
79
+ };
80
+ ranklist: {
81
+ type: ObjectConstructor;
82
+ required: true;
83
+ };
84
+ onSolutionClick: {
85
+ type: FunctionConstructor;
86
+ required: false;
87
+ };
88
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
89
+ export default _sfc_main;
@@ -0,0 +1,82 @@
1
+ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ user: {
3
+ type: null;
4
+ required: true;
5
+ };
6
+ row: {
7
+ type: null;
8
+ required: true;
9
+ };
10
+ rowIndex: {
11
+ type: NumberConstructor;
12
+ required: true;
13
+ };
14
+ ranklist: {
15
+ type: ObjectConstructor;
16
+ required: true;
17
+ };
18
+ markers: {
19
+ type: ArrayConstructor;
20
+ required: false;
21
+ default: () => never[];
22
+ };
23
+ theme: {
24
+ type: StringConstructor;
25
+ required: false;
26
+ default: any;
27
+ };
28
+ formatSrkAssetUrl: {
29
+ type: FunctionConstructor;
30
+ required: true;
31
+ };
32
+ onUserClick: {
33
+ type: FunctionConstructor;
34
+ required: false;
35
+ };
36
+ }>, {
37
+ props: any;
38
+ name: import("vue").ComputedRef<any>;
39
+ userMarkers: import("vue").ComputedRef<any>;
40
+ resolvedMarkers: import("vue").ComputedRef<any>;
41
+ emitUserClick: (event: MouseEvent) => void;
42
+ readonly resolveText: any;
43
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
44
+ user: {
45
+ type: null;
46
+ required: true;
47
+ };
48
+ row: {
49
+ type: null;
50
+ required: true;
51
+ };
52
+ rowIndex: {
53
+ type: NumberConstructor;
54
+ required: true;
55
+ };
56
+ ranklist: {
57
+ type: ObjectConstructor;
58
+ required: true;
59
+ };
60
+ markers: {
61
+ type: ArrayConstructor;
62
+ required: false;
63
+ default: () => never[];
64
+ };
65
+ theme: {
66
+ type: StringConstructor;
67
+ required: false;
68
+ default: any;
69
+ };
70
+ formatSrkAssetUrl: {
71
+ type: FunctionConstructor;
72
+ required: true;
73
+ };
74
+ onUserClick: {
75
+ type: FunctionConstructor;
76
+ required: false;
77
+ };
78
+ }>> & Readonly<{}>, {
79
+ theme: string;
80
+ markers: unknown[];
81
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
+ export default _sfc_main;
@@ -0,0 +1,67 @@
1
+ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ data: {
3
+ type: null;
4
+ required: true;
5
+ };
6
+ enableTimeTravel: {
7
+ type: BooleanConstructor;
8
+ required: false;
9
+ default: boolean;
10
+ };
11
+ live: {
12
+ type: BooleanConstructor;
13
+ required: false;
14
+ default: boolean;
15
+ };
16
+ td: {
17
+ type: NumberConstructor;
18
+ required: false;
19
+ default: number;
20
+ };
21
+ }>, {
22
+ props: any;
23
+ emit: (event: "timeTravel", ...args: any[]) => void;
24
+ localTime: import("vue").Ref<number, number>;
25
+ inTimeMachine: import("vue").Ref<boolean, boolean>;
26
+ timeTravelIsChanging: import("vue").Ref<boolean, boolean>;
27
+ timeTravelCurrentValue: import("vue").Ref<number, number>;
28
+ timeTravelValue: import("vue").Ref<number | null, number | null>;
29
+ liveInterval: number | undefined;
30
+ durationMinutes: import("vue").ComputedRef<number>;
31
+ maxAvailableMinutes: import("vue").ComputedRef<number>;
32
+ isEnded: import("vue").ComputedRef<boolean>;
33
+ progressMetrics: import("vue").ComputedRef<import("@algoux/standard-ranklist-renderer-component-core").ProgressMetrics>;
34
+ handleProgressTimer: () => void;
35
+ syncLiveInterval: (live: boolean) => void;
36
+ handleTimeTravelChange: (value: number) => void;
37
+ beginTimeTravel: () => void;
38
+ commitTimeTravel: () => void;
39
+ readonly secToTimeStr: any;
40
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "timeTravel"[], "timeTravel", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
41
+ data: {
42
+ type: null;
43
+ required: true;
44
+ };
45
+ enableTimeTravel: {
46
+ type: BooleanConstructor;
47
+ required: false;
48
+ default: boolean;
49
+ };
50
+ live: {
51
+ type: BooleanConstructor;
52
+ required: false;
53
+ default: boolean;
54
+ };
55
+ td: {
56
+ type: NumberConstructor;
57
+ required: false;
58
+ default: number;
59
+ };
60
+ }>> & Readonly<{
61
+ onTimeTravel?: ((...args: any[]) => any) | undefined;
62
+ }>, {
63
+ td: number;
64
+ enableTimeTravel: boolean;
65
+ live: boolean;
66
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
67
+ export default _sfc_main;
@@ -0,0 +1,82 @@
1
+ import type * as srk from '@algoux/standard-ranklist';
2
+ import type { CSSProperties } from 'vue';
3
+ import type { EnumTheme } from '@algoux/standard-ranklist-utils';
4
+ import type { SolutionClickPayload, StaticRanklist, StaticRanklistRow, UserClickPayload } from '@algoux/standard-ranklist-renderer-component-core';
5
+ export declare type ModalCloseReason = 'mask' | 'close-button' | 'escape';
6
+ export interface RanklistProps {
7
+ data: StaticRanklist;
8
+ theme?: EnumTheme;
9
+ borderedRows?: boolean;
10
+ stripedRows?: boolean;
11
+ formatSrkAssetUrl?: (url: string, field: string) => string;
12
+ }
13
+ export interface ProblemHeaderCellSlotProps {
14
+ problem: srk.Problem;
15
+ problemIndex: number;
16
+ index: number;
17
+ theme?: EnumTheme;
18
+ }
19
+ export interface UserCellSlotProps {
20
+ user: srk.User;
21
+ row: StaticRanklistRow;
22
+ rowIndex: number;
23
+ ranklist: StaticRanklist;
24
+ markers?: srk.Marker[];
25
+ theme?: EnumTheme;
26
+ onClick: (event?: MouseEvent) => void;
27
+ }
28
+ export interface StatusCellSlotProps {
29
+ status: srk.RankProblemStatus;
30
+ problem: srk.Problem | undefined;
31
+ problemIndex: number;
32
+ user: srk.User;
33
+ row: StaticRanklistRow;
34
+ rowIndex: number;
35
+ ranklist: StaticRanklist;
36
+ solutions: srk.Solution[];
37
+ onClick: (event?: MouseEvent) => void;
38
+ }
39
+ export interface ProgressBarProps {
40
+ data: srk.Ranklist;
41
+ enableTimeTravel?: boolean;
42
+ live?: boolean;
43
+ td?: number;
44
+ }
45
+ export interface ModalProps {
46
+ open: boolean;
47
+ title?: string;
48
+ width?: number;
49
+ rootClassName?: string;
50
+ wrapClassName?: string;
51
+ style?: CSSProperties;
52
+ closeOnEsc?: boolean;
53
+ closeOnMaskClick?: boolean;
54
+ }
55
+ export interface DefaultUserModalProps extends Pick<ModalProps, 'open' | 'rootClassName' | 'wrapClassName' | 'style'> {
56
+ user?: srk.User | null;
57
+ markers?: srk.Marker[];
58
+ theme?: EnumTheme;
59
+ title?: string;
60
+ width?: number;
61
+ formatSrkAssetUrl?: (url: string, field: string) => string;
62
+ }
63
+ export interface DefaultSolutionModalProps extends Pick<ModalProps, 'open' | 'rootClassName' | 'wrapClassName' | 'style'> {
64
+ user?: srk.User | null;
65
+ problem?: srk.Problem;
66
+ problemIndex: number;
67
+ solutions: srk.Solution[];
68
+ title?: string;
69
+ width?: number;
70
+ }
71
+ export declare type RanklistEvents = {
72
+ userClick: UserClickPayload;
73
+ solutionClick: SolutionClickPayload;
74
+ };
75
+ export declare type ProgressBarEvents = {
76
+ timeTravel: number | null;
77
+ };
78
+ export declare type ModalEvents = {
79
+ close: ModalCloseReason;
80
+ 'update:open': boolean;
81
+ };
82
+ export type { SolutionClickPayload, StaticRanklist, StaticRanklistRow, UserClickPayload };
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@algoux/standard-ranklist-renderer-component-vue",
3
+ "version": "0.5.0",
4
+ "description": "Vue components for Standard Ranklist Renderer Component",
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "main": "./dist/index.cjs",
10
+ "module": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "publishConfig": {
21
+ "access": "public",
22
+ "registry": "https://registry.npmjs.org/"
23
+ },
24
+ "dependencies": {
25
+ "@algoux/standard-ranklist-utils": "^0.2.11",
26
+ "@algoux/standard-ranklist-renderer-component-core": "0.5.0",
27
+ "@algoux/standard-ranklist-renderer-component-styles": "0.5.0"
28
+ },
29
+ "peerDependencies": {
30
+ "@algoux/standard-ranklist": "*",
31
+ "vue": ">=3.4.0"
32
+ },
33
+ "scripts": {
34
+ "build": "vite build --config vite.config.ts",
35
+ "dev": "vite --config vite.config.ts",
36
+ "preview": "vite preview --config vite.config.ts"
37
+ }
38
+ }