@dcrackel/hematournamentui 1.0.699 → 1.0.702
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/AGENTS.md +3 -0
- package/dist/HemaTournamentUI-lib.es.js +10913 -10269
- package/dist/HemaTournamentUI-lib.umd.js +27 -27
- package/dist/hematournamentui-tailwind.css +23 -0
- package/dist/hematournamentui.css +1 -1
- package/package.json +8 -8
- package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.vue +1 -1
- package/src/stories/Molecules/Buttons/BaseButton/BaseButton.vue +1 -1
- package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.vue +1 -1
- package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +2 -2
- package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +25 -22
- package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +31 -29
- package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.vue +2 -4
- package/src/stories/Organisms/Cards/KioskCard/KioskCard.vue +54 -35
- package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.stories.js +6 -6
- package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.vue +64 -53
- package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.stories.js +6 -7
- package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.vue +18 -10
- package/src/stories/Organisms/Cards/StaffCard/StaffCard.vue +4 -4
- package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +129 -0
- package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue +64 -45
- package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.vue +13 -9
- package/src/stories/Organisms/Containers/Pool/Pool.vue +1 -1
- package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.vue +35 -20
- package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.vue +45 -19
- package/src/stories/Templates/Assignment/Assignment.stories.js +17 -15
- package/src/stories/Templates/Assignment/Assignment.vue +71 -40
- package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.stories.js +49 -30
- package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.vue +29 -28
- package/src/stories/Templates/ClubManagement/{ClubMangement.stories.js → ClubManagement.stories.js} +74 -59
- package/src/stories/Templates/ClubManagement/ClubManagement.vue +104 -92
- package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +92 -97
- package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +37 -33
- package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +11 -14
- package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.stories.js +49 -14
- package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.vue +156 -62
- package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.stories.js +11 -10
- package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue +8 -8
- package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.stories.js +13 -16
- package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue +25 -25
- package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.stories.js +25 -24
- package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.vue +28 -34
- package/src/stories/Templates/EventManagement/PoolLive/PoolLive.stories.js +54 -19
- package/src/stories/Templates/EventManagement/PoolLive/PoolLive.vue +75 -68
- package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.stories.js +55 -45
- package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.vue +47 -55
- package/src/stories/Templates/EventManagement/PoolResults/PoolResults.stories.js +56 -55
- package/src/stories/Templates/EventManagement/PoolResults/PoolResults.vue +71 -73
- package/src/stories/Templates/EventManagement/StaffList/StaffList.stories.js +18 -16
- package/src/stories/Templates/EventManagement/StaffList/StaffList.vue +9 -6
- package/src/stories/Templates/Menus/Admin/AdminLeftMenu.stories.js +22 -19
- package/src/stories/Templates/Menus/Admin/AdminLeftMenu.vue +44 -36
- package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +30 -23
- package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +55 -58
- package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +67 -0
- package/src/stories/Templates/PersonManagement/Admin/{Administration.vue → Administration/Administration.vue} +94 -87
- package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +71 -0
- package/src/stories/Templates/PersonManagement/Admin/{FencerAdmin.vue → FencerAdmin/FencerAdmin.vue} +90 -77
- package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +86 -0
- package/src/stories/Templates/PersonManagement/Admin/{MergeAccounts.vue → MergeAccounts/MergeAccounts.vue} +258 -242
- package/src/stories/Templates/PersonManagement/Attendance/Attendance.vue +28 -28
- package/src/stories/Templates/PersonManagement/PersonManagement.vue +1 -1
- package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.stories.js +45 -28
- package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.vue +22 -16
- package/src/stories/Templates/TournamentManagement/{TournamentMangement.stories.js → TournamentManagement.stories.js} +68 -39
- package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +199 -153
- package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +113 -0
- package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +123 -106
- package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.stories.js +76 -31
- package/src/stories/Templates/TournamentManagement/TournamentPageTwo/{TouranmentPageTwo.vue → TournamentPageTwo.vue} +63 -44
- package/src/stories/Templates/PersonManagement/Admin/FencerAdmin.stories.js +0 -48
- package/src/stories/Templates/TournamentManagement/TournamentPageOne/TouranmentPageOne.stories.js +0 -63
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<div v-for="tournament in attendance" :key="tournament.TournamentId" class="mb-6">
|
|
10
10
|
<div class="flex mr-4 md:mr-0">
|
|
11
11
|
<div class="w-full flex flex-col justify-end md:ml-2">
|
|
12
|
-
<div class="w-full flex ml-2 justify-between border-b">
|
|
12
|
+
<div class="w-full flex ml-2 justify-between border-b border-dropdownSelect">
|
|
13
13
|
<BaseText :text="tournament.Name" color="primary" size="" weight="text-sm md:text-md simi-bold"/>
|
|
14
14
|
<BaseText :text="formatTournamentDates(tournament.StartDate, tournament.EndDate)" color="primary" size="" weight="normal" class="text-xs md:text-md pt-1.5" />
|
|
15
15
|
</div>
|
|
@@ -34,26 +34,26 @@
|
|
|
34
34
|
</template>
|
|
35
35
|
|
|
36
36
|
<script>
|
|
37
|
-
import BaseText from "../../../Atoms/Text/BaseText.vue";
|
|
38
|
-
import BaseIcon from "../../..//Atoms/Icon/BaseIcon.vue";
|
|
39
|
-
|
|
40
|
-
const weaponIcons = {
|
|
41
|
-
Longsword: 'fa-longsword',
|
|
42
|
-
'Military Saber': 'fa-saber',
|
|
43
|
-
'Rapier & Dagger': 'fa-rapier',
|
|
44
|
-
'Single Rapier': 'fa-rapier',
|
|
45
|
-
Messer: 'fa-messer',
|
|
46
|
-
'Sword & Buckler': 'fa-swordandbuckler',
|
|
47
|
-
Sidesword: 'fa-sidesword'
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const daySuffixes = {
|
|
51
|
-
1: 'st',
|
|
52
|
-
2: 'nd',
|
|
53
|
-
3: 'rd'
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export default {
|
|
37
|
+
import BaseText from "../../../Atoms/Text/BaseText.vue";
|
|
38
|
+
import BaseIcon from "../../..//Atoms/Icon/BaseIcon.vue";
|
|
39
|
+
|
|
40
|
+
const weaponIcons = {
|
|
41
|
+
Longsword: 'fa-longsword',
|
|
42
|
+
'Military Saber': 'fa-saber',
|
|
43
|
+
'Rapier & Dagger': 'fa-rapier',
|
|
44
|
+
'Single Rapier': 'fa-rapier',
|
|
45
|
+
Messer: 'fa-messer',
|
|
46
|
+
'Sword & Buckler': 'fa-swordandbuckler',
|
|
47
|
+
Sidesword: 'fa-sidesword'
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const daySuffixes = {
|
|
51
|
+
1: 'st',
|
|
52
|
+
2: 'nd',
|
|
53
|
+
3: 'rd'
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export default {
|
|
57
57
|
name: "Attendance",
|
|
58
58
|
components: {BaseIcon, BaseText },
|
|
59
59
|
props: {
|
|
@@ -69,9 +69,9 @@ export default {
|
|
|
69
69
|
},
|
|
70
70
|
computed: {
|
|
71
71
|
},
|
|
72
|
-
methods: {
|
|
73
|
-
getWeaponIcon(weapon){
|
|
74
|
-
return weaponIcons[weapon] || 'fa-longsword';
|
|
72
|
+
methods: {
|
|
73
|
+
getWeaponIcon(weapon){
|
|
74
|
+
return weaponIcons[weapon] || 'fa-longsword';
|
|
75
75
|
},
|
|
76
76
|
formatEventDate(date, time) {
|
|
77
77
|
const eventDate = new Date(`${date}T${time}`);
|
|
@@ -98,10 +98,10 @@ export default {
|
|
|
98
98
|
|
|
99
99
|
return `${formatDate(startDate, includeYear)} to ${formatDate(endDate, includeYear)}`;
|
|
100
100
|
},
|
|
101
|
-
getDaySuffix(day) {
|
|
102
|
-
if (day > 3 && day < 21) return 'th';
|
|
103
|
-
return daySuffixes[day % 10] || 'th';
|
|
104
|
-
},
|
|
101
|
+
getDaySuffix(day) {
|
|
102
|
+
if (day > 3 && day < 21) return 'th';
|
|
103
|
+
return daySuffixes[day % 10] || 'th';
|
|
104
|
+
},
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
</script>
|
|
@@ -54,7 +54,7 @@ import BaseText from "../../Atoms/Text/BaseText.vue";
|
|
|
54
54
|
import BaseButton from "../../Molecules/Buttons/BaseButton/BaseButton.vue";
|
|
55
55
|
import BasicEdit from "./Basic/BasicEdit.vue";
|
|
56
56
|
import Attendance from "../../Templates/PersonManagement/Attendance/Attendance.vue";
|
|
57
|
-
import FencerAdmin from "../../Templates/PersonManagement/Admin/FencerAdmin.vue";
|
|
57
|
+
import FencerAdmin from "../../Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue";
|
|
58
58
|
import { validateField } from "../../Util/Validations/PersonManagementValidations.js";
|
|
59
59
|
|
|
60
60
|
export default {
|
|
@@ -1,28 +1,45 @@
|
|
|
1
|
-
import
|
|
2
|
-
import eventMockData from '../../../../mocks/eventMock.js';
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
title: 'Templates/TournamentManagement/ListEvents',
|
|
6
|
-
component:
|
|
7
|
-
tags: ['autodocs'],
|
|
8
|
-
args: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export const
|
|
24
|
-
args: {
|
|
25
|
-
tournamentId: 8,
|
|
26
|
-
events:
|
|
27
|
-
}
|
|
28
|
-
};
|
|
1
|
+
import ListEvents from './ListEvents.vue';
|
|
2
|
+
import eventMockData from '../../../../mocks/eventMock.js';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Templates/TournamentManagement/ListEvents',
|
|
6
|
+
component: ListEvents,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
args: {
|
|
9
|
+
tournamentId: 8,
|
|
10
|
+
events: eventMockData,
|
|
11
|
+
},
|
|
12
|
+
argTypes: {
|
|
13
|
+
tournamentId: { control: { type: 'number' } },
|
|
14
|
+
events: { control: { type: 'object' } },
|
|
15
|
+
'tab:menu-click': { action: 'tab:menu-click' },
|
|
16
|
+
manageEvent: { action: 'manageEvent' },
|
|
17
|
+
editEvent: { action: 'editEvent' },
|
|
18
|
+
addEvent: { action: 'addEvent' },
|
|
19
|
+
'delete:Event': { action: 'delete:Event' }
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Default = {
|
|
24
|
+
args: {
|
|
25
|
+
tournamentId: 8,
|
|
26
|
+
events: eventMockData
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const NoEvents = {
|
|
31
|
+
args: {
|
|
32
|
+
tournamentId: 8,
|
|
33
|
+
events: []
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const CompletedEvents = {
|
|
38
|
+
args: {
|
|
39
|
+
tournamentId: 8,
|
|
40
|
+
events: eventMockData.map((event) => ({
|
|
41
|
+
...event,
|
|
42
|
+
Status: 'completed'
|
|
43
|
+
}))
|
|
44
|
+
}
|
|
45
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section class="mx-2 md:mx-4">
|
|
3
3
|
<EditEventsTopMenu :currentTab="'Events'" :tabs="tabs" @tabMenuClick="handleTabMenuClick"/>
|
|
4
|
-
<div class="w-full flex flex-row justify-center">
|
|
5
|
-
<section class="w-full">
|
|
6
|
-
<div class="w-full flex flex-col justify-center items-center mb-6
|
|
4
|
+
<div class="w-full flex flex-row justify-center">
|
|
5
|
+
<section class="w-full">
|
|
6
|
+
<div class="w-full flex flex-col justify-center items-center mb-6 text-center">
|
|
7
7
|
<div v-if="events.length === 0">
|
|
8
8
|
<img alt="Small desert scene with wind blowing." class="w-96" :src="emptyDesertIcon" />
|
|
9
9
|
<BaseText :color="'primaryHighlight'" size=" " :text="'0 events added yet.'"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
:weight="'normal'" data-testid="text-num-events" class="text-sm md:text-md" />
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
|
-
<section v-for="event in events" class="w-full">
|
|
15
|
+
<section v-for="event in events" :key="event.EventId" class="w-full">
|
|
16
16
|
<EventCard :event="event"
|
|
17
17
|
@edit="handleEdit(event.EventId)"
|
|
18
18
|
@manage="handleManageEvent(event.EventId)"
|
|
@@ -39,24 +39,30 @@ import emptyDesertIcon from '../../../../assets/empty_desert_icon.png';
|
|
|
39
39
|
import EditEventsTopMenu from "../../Menus/EditEventsTopMenu/EditEventsTopMenu.vue";
|
|
40
40
|
import {tournamentTabs} from "../../../Util/tabs.js";
|
|
41
41
|
|
|
42
|
-
export default {
|
|
43
|
-
|
|
42
|
+
export default {
|
|
43
|
+
name: 'ListEvents',
|
|
44
|
+
components: {
|
|
44
45
|
EditEventsTopMenu,
|
|
45
46
|
EventCard,
|
|
46
47
|
BaseText,
|
|
47
48
|
BaseButton
|
|
48
|
-
},
|
|
49
|
-
props: {
|
|
50
|
-
tournamentId:
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
},
|
|
50
|
+
props: {
|
|
51
|
+
tournamentId: {
|
|
52
|
+
type: Number,
|
|
53
|
+
required: true
|
|
54
|
+
},
|
|
55
|
+
events: {
|
|
56
|
+
type: Array,
|
|
57
|
+
default: () => []
|
|
58
|
+
},
|
|
59
|
+
},
|
|
53
60
|
emits: ['tab:menu-click', 'manageEvent', 'editEvent', 'addEvent', 'delete:Event'],
|
|
54
61
|
data() {
|
|
55
62
|
return {
|
|
56
|
-
emptyDesertIcon,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
63
|
+
emptyDesertIcon,
|
|
64
|
+
tabs: tournamentTabs()
|
|
65
|
+
};
|
|
60
66
|
},
|
|
61
67
|
methods: {
|
|
62
68
|
handleAddEvent() {
|
|
@@ -76,4 +82,4 @@ export default {
|
|
|
76
82
|
}
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
|
-
</script>
|
|
85
|
+
</script>
|
|
@@ -1,40 +1,60 @@
|
|
|
1
1
|
import TournamentManagement from "./TournamentManagement.vue";
|
|
2
2
|
import mockLocation from "../../../mocks/locationMock.js";
|
|
3
|
-
import mockPersons from "../../../mocks/personsMock.js";
|
|
4
|
-
import mockTournaments from "../../../mocks/tournamentMock.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
tournament:
|
|
20
|
-
|
|
3
|
+
import mockPersons from "../../../mocks/personsMock.js";
|
|
4
|
+
import mockTournaments from "../../../mocks/tournamentMock.js";
|
|
5
|
+
|
|
6
|
+
const existingTournament = {
|
|
7
|
+
...mockTournaments[0],
|
|
8
|
+
HostedOnM2: true,
|
|
9
|
+
ResultsEnabled: false,
|
|
10
|
+
Visibility: 'Open',
|
|
11
|
+
WaiverScope: 'None',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
title: 'Templates/TournamentManagement',
|
|
16
|
+
component: TournamentManagement,
|
|
17
|
+
tags: ["autodocs"],
|
|
18
|
+
args: {
|
|
19
|
+
tournament: existingTournament,
|
|
20
|
+
locations: mockLocation,
|
|
21
|
+
persons: mockPersons,
|
|
22
|
+
uploadImageName: 'tournament-test',
|
|
23
|
+
uploadServer: 'http://localhost:3000/api/upload/',
|
|
24
|
+
imageServer: 'https://meyersquaredimages.com/uploads/',
|
|
25
|
+
showTab: 'Basic',
|
|
26
|
+
userLevel: 'Club',
|
|
27
|
+
submitButtonLabel: 'Save',
|
|
28
|
+
},
|
|
29
|
+
argTypes: {
|
|
30
|
+
tournament: {
|
|
31
|
+
control: { type: "object" },
|
|
21
32
|
},
|
|
22
33
|
locations: {
|
|
23
34
|
control: { type: "object" },
|
|
24
35
|
},
|
|
25
|
-
persons: {
|
|
26
|
-
control: { type: "object" },
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
36
|
+
persons: {
|
|
37
|
+
control: { type: "object" },
|
|
38
|
+
},
|
|
39
|
+
showTab: {
|
|
40
|
+
control: { type: "text" },
|
|
41
|
+
},
|
|
42
|
+
userLevel: {
|
|
43
|
+
control: { type: "text" },
|
|
44
|
+
},
|
|
45
|
+
submitButtonLabel: {
|
|
46
|
+
control: { type: "text" },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const Default = {
|
|
52
|
+
args: {
|
|
53
|
+
tournament: existingTournament,
|
|
54
|
+
locations: mockLocation,
|
|
55
|
+
persons: mockPersons,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
38
58
|
|
|
39
59
|
export const EmptyTournament = {
|
|
40
60
|
args: {
|
|
@@ -44,11 +64,20 @@ export const EmptyTournament = {
|
|
|
44
64
|
},
|
|
45
65
|
};
|
|
46
66
|
|
|
47
|
-
export const StartOnDetails = {
|
|
48
|
-
args: {
|
|
49
|
-
tournament:
|
|
50
|
-
locations: mockLocation,
|
|
51
|
-
persons: mockPersons,
|
|
52
|
-
showTab: "Hosting",
|
|
53
|
-
},
|
|
54
|
-
};
|
|
67
|
+
export const StartOnDetails = {
|
|
68
|
+
args: {
|
|
69
|
+
tournament: existingTournament,
|
|
70
|
+
locations: mockLocation,
|
|
71
|
+
persons: mockPersons,
|
|
72
|
+
showTab: "Hosting",
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const Saving = {
|
|
77
|
+
args: {
|
|
78
|
+
tournament: existingTournament,
|
|
79
|
+
locations: mockLocation,
|
|
80
|
+
persons: mockPersons,
|
|
81
|
+
submitButtonLabel: "Saving...",
|
|
82
|
+
},
|
|
83
|
+
};
|