@dcrackel/hematournamentui 1.0.711 → 1.0.713

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.
Files changed (109) hide show
  1. package/.prettierignore +7 -7
  2. package/.storybook/main.js +3 -1
  3. package/README.md +182 -148
  4. package/dist/HemaTournamentUI-lib.es.js +4150 -4039
  5. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  6. package/dist/hematournamentui-tailwind.css +11 -0
  7. package/package.json +96 -96
  8. package/prettier.config.js +16 -16
  9. package/src/main.js +1 -1
  10. package/src/mocks/getDEBouts-TableOf128.js +37 -37
  11. package/src/mocks/getDEBouts-TableOf64.js +35 -35
  12. package/src/stories/Atoms/Input/BaseInput.test.js +97 -97
  13. package/src/stories/Atoms/Input/BaseInput.vue +149 -149
  14. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.stories.js +23 -23
  15. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.vue +35 -35
  16. package/src/stories/Molecules/Indicators/RegistrationStatus/RegistrationStatus.vue +30 -0
  17. package/src/stories/Molecules/Menus/HoverActions/HoverActions.test.js +138 -0
  18. package/src/stories/Molecules/Menus/HoverActions/HoverActions.vue +212 -0
  19. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.stories.js +6 -0
  20. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.test.js +18 -18
  21. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +1 -1
  22. package/src/stories/Organisms/Cards/BoutCard/BoutCard.vue +5 -1
  23. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +19 -10
  24. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +11 -7
  25. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.stories.js +33 -33
  26. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.test.js +45 -45
  27. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue +103 -103
  28. package/src/stories/Organisms/Cards/Director/DirectorCard.test.js +82 -0
  29. package/src/stories/Organisms/Cards/Director/DirectorCard.vue +32 -51
  30. package/src/stories/Organisms/Cards/EditBout/EditBout.test.js +51 -51
  31. package/src/stories/Organisms/Cards/EventCard/EventCard.stories.js +41 -1
  32. package/src/stories/Organisms/Cards/EventCard/EventCard.test.js +106 -0
  33. package/src/stories/Organisms/Cards/EventCard/EventCard.vue +62 -30
  34. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +298 -298
  35. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.stories.js +77 -60
  36. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.test.js +144 -143
  37. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.vue +289 -256
  38. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.stories.js +69 -69
  39. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.vue +80 -80
  40. package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +153 -153
  41. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue +4 -0
  42. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.stories.js +31 -31
  43. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.test.js +109 -109
  44. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue +192 -192
  45. package/src/stories/Organisms/Containers/Tableau/Tableau.stories.js +1 -0
  46. package/src/stories/Organisms/Containers/Tableau/Tableau.test.js +247 -204
  47. package/src/stories/Organisms/Containers/Tableau/Tableau.vue +89 -15
  48. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.test.js +29 -29
  49. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue +46 -46
  50. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.test.js +21 -21
  51. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.vue +39 -39
  52. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.js +145 -145
  53. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.test.js +64 -64
  54. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.js +36 -57
  55. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.test.js +101 -65
  56. package/src/stories/Organisms/Containers/TableauColumn/TableauColumn.vue +14 -1
  57. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.vue +12 -5
  58. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.stories.js +52 -48
  59. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.vue +256 -227
  60. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.vue +226 -226
  61. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.vue +204 -204
  62. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.stories.js +137 -133
  63. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.test.js +221 -191
  64. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue +372 -366
  65. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.vue +172 -172
  66. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.vue +216 -216
  67. package/src/stories/Organisms/Wizards/EditEventWizard/PriceFields.test.js +79 -79
  68. package/src/stories/Organisms/Wizards/EditEventWizard/RuleSerialization.test.js +29 -0
  69. package/src/stories/Organisms/Wizards/EditEventWizard/WeaponSelection.test.js +138 -0
  70. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +123 -12
  71. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +178 -166
  72. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +35 -7
  73. package/src/stories/Templates/EventManagement/Bracket/BracketDirectorAssignment.test.js +242 -0
  74. package/src/stories/Templates/EventManagement/Bracket/BracketMobile.test.js +131 -0
  75. package/src/stories/Templates/EventManagement/Bracket/BracketPlannedSuggestions.js +42 -39
  76. package/src/stories/Templates/EventManagement/Bracket/BracketStories.test.js +80 -0
  77. package/src/stories/Templates/EventManagement/Bracket/BracketStoryAssignments.js +93 -0
  78. package/src/stories/Templates/EventManagement/Bracket/BracketStoryAssignments.test.js +152 -0
  79. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.js +39 -39
  80. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.test.js +79 -79
  81. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +93 -93
  82. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +91 -91
  83. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.stories.js +31 -1
  84. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.test.js +121 -121
  85. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +9 -2
  86. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +5 -4
  87. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +81 -81
  88. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.test.js +39 -39
  89. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.vue +101 -101
  90. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +71 -71
  91. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue +86 -86
  92. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +86 -86
  93. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.vue +247 -247
  94. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.vue +170 -170
  95. package/src/stories/Templates/PersonManagement/PersonManagement.stories.js +156 -156
  96. package/src/stories/Templates/PersonManagement/PersonManagement.test.js +329 -329
  97. package/src/stories/Templates/PersonManagement/PersonManagement.vue +329 -329
  98. package/src/stories/Templates/PersonManagement/PersonManagementDraft.js +42 -42
  99. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.stories.js +58 -45
  100. package/src/stories/Templates/TournamentManagement/TournamentManagement.stories.js +84 -84
  101. package/src/stories/Templates/TournamentManagement/TournamentManagement.test.js +114 -114
  102. package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +363 -363
  103. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +116 -116
  104. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +307 -307
  105. package/src/stories/Util/Validations/PersonManagementValidations.js +45 -45
  106. package/src/stories/Util/Validations/PriceValidation.js +6 -6
  107. package/src/stories/Util/boutDirectorAssignment.js +46 -0
  108. package/src/stories/Util/registrationStatus.js +11 -0
  109. package/src/stories/Util/tabs.js +19 -47
@@ -1,86 +1,86 @@
1
- <template>
2
- <section class="mt-2 min-h-80">
3
- <div class="pb-6">
4
- <BaseText text="Administration" size="lg" color="primary" />
5
- <div class="mt-3">
6
- <Administration :person="person" :userLevel="userLevel" @update:person="$emit('update:person', $event)" />
7
- </div>
8
- </div>
9
-
10
- <div v-if="showMergeAccounts" class="pt-6 border-t border-dropdownSelect">
11
- <button
12
- :id="mergeAccountsToggleId"
13
- type="button"
14
- class="w-full flex items-center justify-between text-left"
15
- :aria-expanded="mergeOpen"
16
- :aria-controls="mergeAccountsPanelId"
17
- @click="toggleMergeOpen"
18
- >
19
- <div>
20
- <BaseText text="Merge Accounts" size="lg" color="primary" />
21
- <BaseText
22
- class="mt-1"
23
- text="Merge other fencer accounts into this one. This will move all references and delete the duplicate accounts."
24
- size="sm"
25
- color="quaternary"
26
- />
27
- </div>
28
-
29
- <span
30
- class="fa-solid fa-chevron-down ml-4 text-quaternary transition-transform duration-200"
31
- :class="mergeOpen ? 'rotate-180' : 'rotate-0'"
32
- aria-hidden="true"
33
- />
34
- </button>
35
-
36
- <div v-if="mergeOpen" :id="mergeAccountsPanelId" class="mt-4">
37
- <MergeAccounts :person="person" :people="people" @merge:merge="emitMergeAccounts" />
38
- </div>
39
- </div>
40
- </section>
41
- </template>
42
-
43
- <script>
44
- import BaseText from '../../../../Atoms/Text/BaseText.vue';
45
- import Administration from '../Administration/Administration.vue';
46
- import MergeAccounts from '../MergeAccounts/MergeAccounts.vue';
47
-
48
- export default {
49
- name: 'FencerAdmin',
50
- emits: ['update:person', 'merge:merge'],
51
- components: { BaseText, Administration, MergeAccounts },
52
- props: {
53
- person: { type: Object, required: true },
54
- people: { type: Array, required: true },
55
- userLevel: { type: String, required: true },
56
- canMergeAccounts: { type: Boolean, default: null }
57
- },
58
- data() {
59
- return {
60
- mergeOpen: false
61
- };
62
- },
63
- computed: {
64
- showMergeAccounts() {
65
- return this.canMergeAccounts ?? this.userLevel === 'Admin';
66
- },
67
- personIdForDom() {
68
- return this.person?.PersonId ?? 'unknown';
69
- },
70
- mergeAccountsToggleId() {
71
- return `merge-accounts-toggle-${this.personIdForDom}`;
72
- },
73
- mergeAccountsPanelId() {
74
- return `merge-accounts-panel-${this.personIdForDom}`;
75
- }
76
- },
77
- methods: {
78
- toggleMergeOpen() {
79
- this.mergeOpen = !this.mergeOpen;
80
- },
81
- emitMergeAccounts(data) {
82
- this.$emit('merge:merge', data);
83
- }
84
- }
85
- };
86
- </script>
1
+ <template>
2
+ <section class="mt-2 min-h-80">
3
+ <div class="pb-6">
4
+ <BaseText text="Administration" size="lg" color="primary" />
5
+ <div class="mt-3">
6
+ <Administration :person="person" :userLevel="userLevel" @update:person="$emit('update:person', $event)" />
7
+ </div>
8
+ </div>
9
+
10
+ <div v-if="showMergeAccounts" class="pt-6 border-t border-dropdownSelect">
11
+ <button
12
+ :id="mergeAccountsToggleId"
13
+ type="button"
14
+ class="w-full flex items-center justify-between text-left"
15
+ :aria-expanded="mergeOpen"
16
+ :aria-controls="mergeAccountsPanelId"
17
+ @click="toggleMergeOpen"
18
+ >
19
+ <div>
20
+ <BaseText text="Merge Accounts" size="lg" color="primary" />
21
+ <BaseText
22
+ class="mt-1"
23
+ text="Merge other fencer accounts into this one. This will move all references and delete the duplicate accounts."
24
+ size="sm"
25
+ color="quaternary"
26
+ />
27
+ </div>
28
+
29
+ <span
30
+ class="fa-solid fa-chevron-down ml-4 text-quaternary transition-transform duration-200"
31
+ :class="mergeOpen ? 'rotate-180' : 'rotate-0'"
32
+ aria-hidden="true"
33
+ />
34
+ </button>
35
+
36
+ <div v-if="mergeOpen" :id="mergeAccountsPanelId" class="mt-4">
37
+ <MergeAccounts :person="person" :people="people" @merge:merge="emitMergeAccounts" />
38
+ </div>
39
+ </div>
40
+ </section>
41
+ </template>
42
+
43
+ <script>
44
+ import BaseText from '../../../../Atoms/Text/BaseText.vue';
45
+ import Administration from '../Administration/Administration.vue';
46
+ import MergeAccounts from '../MergeAccounts/MergeAccounts.vue';
47
+
48
+ export default {
49
+ name: 'FencerAdmin',
50
+ emits: ['update:person', 'merge:merge'],
51
+ components: { BaseText, Administration, MergeAccounts },
52
+ props: {
53
+ person: { type: Object, required: true },
54
+ people: { type: Array, required: true },
55
+ userLevel: { type: String, required: true },
56
+ canMergeAccounts: { type: Boolean, default: null }
57
+ },
58
+ data() {
59
+ return {
60
+ mergeOpen: false
61
+ };
62
+ },
63
+ computed: {
64
+ showMergeAccounts() {
65
+ return this.canMergeAccounts ?? this.userLevel === 'Admin';
66
+ },
67
+ personIdForDom() {
68
+ return this.person?.PersonId ?? 'unknown';
69
+ },
70
+ mergeAccountsToggleId() {
71
+ return `merge-accounts-toggle-${this.personIdForDom}`;
72
+ },
73
+ mergeAccountsPanelId() {
74
+ return `merge-accounts-panel-${this.personIdForDom}`;
75
+ }
76
+ },
77
+ methods: {
78
+ toggleMergeOpen() {
79
+ this.mergeOpen = !this.mergeOpen;
80
+ },
81
+ emitMergeAccounts(data) {
82
+ this.$emit('merge:merge', data);
83
+ }
84
+ }
85
+ };
86
+ </script>
@@ -1,86 +1,86 @@
1
- import MergeAccounts from './MergeAccounts.vue';
2
- import personsMock from '../../../../../mocks/personsMock.js';
3
- import peopleMock from '../../../../../mocks/personGetAllMock.js';
4
-
5
- export default {
6
- title: 'Templates/PersonManagement/Admin/MergeAccounts',
7
- component: MergeAccounts,
8
- tags: ['autodocs'],
9
- args: {
10
- person: personsMock[1],
11
- people: peopleMock
12
- },
13
- argTypes: {
14
- person: { control: { type: 'object' } },
15
- people: { control: { type: 'object' } },
16
- 'merge:merge': { action: 'merge:merge' }
17
- }
18
- };
19
-
20
- export const Default = {
21
- args: {
22
- person: personsMock[1],
23
- people: peopleMock
24
- }
25
- };
26
-
27
- export const EmptyResults = {
28
- args: {
29
- person: personsMock[1],
30
- people: []
31
- }
32
- };
33
-
34
- export const MissingRootDetails = {
35
- args: {
36
- person: {
37
- PersonId: 2001,
38
- DisplayName: '',
39
- FirstName: '',
40
- LastName: '',
41
- Club: null,
42
- PersonEmails: []
43
- },
44
- people: peopleMock
45
- }
46
- };
47
-
48
- export const SparsePeopleData = {
49
- args: {
50
- person: personsMock[1],
51
- people: [
52
- {
53
- PersonId: 2002,
54
- DisplayName: 'Missing Email',
55
- FirstName: 'Missing',
56
- LastName: 'Email',
57
- Club: {
58
- Name: 'Columbus United Fencing Club',
59
- ShortName: 'CUFC'
60
- },
61
- PersonEmails: []
62
- },
63
- {
64
- PersonId: 2003,
65
- DisplayName: 'Missing Club',
66
- FirstName: 'Missing',
67
- LastName: 'Club',
68
- Club: null,
69
- PersonEmails: [
70
- {
71
- EmailAddress: 'missing-club@example.com',
72
- IsPrimary: true
73
- }
74
- ]
75
- },
76
- {
77
- PersonId: 2004,
78
- DisplayName: 'No Optional Details',
79
- FirstName: '',
80
- LastName: '',
81
- Club: null,
82
- PersonEmails: []
83
- }
84
- ]
85
- }
86
- };
1
+ import MergeAccounts from './MergeAccounts.vue';
2
+ import personsMock from '../../../../../mocks/personsMock.js';
3
+ import peopleMock from '../../../../../mocks/personGetAllMock.js';
4
+
5
+ export default {
6
+ title: 'Templates/PersonManagement/Admin/MergeAccounts',
7
+ component: MergeAccounts,
8
+ tags: ['autodocs'],
9
+ args: {
10
+ person: personsMock[1],
11
+ people: peopleMock
12
+ },
13
+ argTypes: {
14
+ person: { control: { type: 'object' } },
15
+ people: { control: { type: 'object' } },
16
+ 'merge:merge': { action: 'merge:merge' }
17
+ }
18
+ };
19
+
20
+ export const Default = {
21
+ args: {
22
+ person: personsMock[1],
23
+ people: peopleMock
24
+ }
25
+ };
26
+
27
+ export const EmptyResults = {
28
+ args: {
29
+ person: personsMock[1],
30
+ people: []
31
+ }
32
+ };
33
+
34
+ export const MissingRootDetails = {
35
+ args: {
36
+ person: {
37
+ PersonId: 2001,
38
+ DisplayName: '',
39
+ FirstName: '',
40
+ LastName: '',
41
+ Club: null,
42
+ PersonEmails: []
43
+ },
44
+ people: peopleMock
45
+ }
46
+ };
47
+
48
+ export const SparsePeopleData = {
49
+ args: {
50
+ person: personsMock[1],
51
+ people: [
52
+ {
53
+ PersonId: 2002,
54
+ DisplayName: 'Missing Email',
55
+ FirstName: 'Missing',
56
+ LastName: 'Email',
57
+ Club: {
58
+ Name: 'Columbus United Fencing Club',
59
+ ShortName: 'CUFC'
60
+ },
61
+ PersonEmails: []
62
+ },
63
+ {
64
+ PersonId: 2003,
65
+ DisplayName: 'Missing Club',
66
+ FirstName: 'Missing',
67
+ LastName: 'Club',
68
+ Club: null,
69
+ PersonEmails: [
70
+ {
71
+ EmailAddress: 'missing-club@example.com',
72
+ IsPrimary: true
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ PersonId: 2004,
78
+ DisplayName: 'No Optional Details',
79
+ FirstName: '',
80
+ LastName: '',
81
+ Club: null,
82
+ PersonEmails: []
83
+ }
84
+ ]
85
+ }
86
+ };