@dcrackel/hematournamentui 1.0.706 → 1.0.708

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 (350) hide show
  1. package/.prettierignore +7 -1
  2. package/.storybook/main.js +5 -12
  3. package/.storybook/preview-head.html +10 -3
  4. package/.storybook/preview.js +5 -13
  5. package/AGENTS.md +118 -88
  6. package/README.md +29 -22
  7. package/dist/HemaTournamentUI-lib.es.js +8394 -8807
  8. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  9. package/dist/hematournamentui-tailwind.css +183 -428
  10. package/dist/hematournamentui.css +1 -1
  11. package/eslint.config.js +49 -23
  12. package/package.json +15 -11
  13. package/postcss.config.js +3 -3
  14. package/prettier.config.js +16 -10
  15. package/src/config/boutScreenConfigurations.js +52 -50
  16. package/src/index.js +2 -0
  17. package/src/main.js +1 -1
  18. package/src/mocks/EventQuestionsMock.js +43 -55
  19. package/src/mocks/assignments.js +180 -181
  20. package/src/mocks/clubGetAllMock.js +8143 -8143
  21. package/src/mocks/eventMock.js +205 -205
  22. package/src/mocks/eventPersonGetInitalPoolAssignmentsLivePools.js +541 -542
  23. package/src/mocks/eventPersonGetInitalPoolAssignmentsPreparing.js +522 -523
  24. package/src/mocks/eventPersonGetInitialPoolAssignments.js +386 -387
  25. package/src/mocks/eventPersonGetInitialPoolAssignments2.js +2267 -2268
  26. package/src/mocks/eventPersonGetInitialStaff.js +94 -95
  27. package/src/mocks/eventPersonGetPoolAssignmentEvent.js +161 -162
  28. package/src/mocks/eventRules.js +87 -86
  29. package/src/mocks/eventpersonGetEventById.js +1737 -1737
  30. package/src/mocks/getAllClubs.js +8143 -8143
  31. package/src/mocks/getAllStaffByTournamentId.js +74 -75
  32. package/src/mocks/getAllWeapons.js +81 -82
  33. package/src/mocks/getAttendance.js +43 -44
  34. package/src/mocks/getClub.js +43 -44
  35. package/src/mocks/getClubDisplayByClubId.js +104 -105
  36. package/src/mocks/getDEBouts-128Fencers.js +3247 -3248
  37. package/src/mocks/getDEBouts-42Fencers.js +3736 -3737
  38. package/src/mocks/getDEBouts-67Fencers.js +6684 -6690
  39. package/src/mocks/getDEBouts-DoubleElim.js +4198 -4199
  40. package/src/mocks/getDEBouts-TableOf128.js +37 -0
  41. package/src/mocks/getDEBouts-TableOf64.js +35 -0
  42. package/src/mocks/getDEWithBouts.js +628 -629
  43. package/src/mocks/getDeBouts-12fencers.js +1255 -1256
  44. package/src/mocks/getDeBouts-15fencers.js +925 -927
  45. package/src/mocks/getDeBouts-22fencers.js +1683 -1685
  46. package/src/mocks/getDeBouts-6fencers.js +818 -818
  47. package/src/mocks/getEventByTournamentId.js +47 -48
  48. package/src/mocks/getFinalEventResult.js +304 -305
  49. package/src/mocks/getPenaltiesByEvent.js +655 -656
  50. package/src/mocks/getPoolResults.js +1533 -1534
  51. package/src/mocks/getPoolsWithBouts.js +662 -663
  52. package/src/mocks/getPoolsWithBouts6PoolId139.js +885 -886
  53. package/src/mocks/getPoolsWithBoutsByPoolId.js +841 -841
  54. package/src/mocks/getPoolsWithBoutsClubColors.js +4 -4
  55. package/src/mocks/getPoolsWithBoutsComplete.js +919 -921
  56. package/src/mocks/locationMock.js +3213 -3214
  57. package/src/mocks/mockRoutes.js +3 -3
  58. package/src/mocks/personGetAllMock.js +2536 -2537
  59. package/src/mocks/personsMock.js +17569 -17570
  60. package/src/mocks/singleEventMock.js +249 -250
  61. package/src/mocks/tournamentMock.js +1988 -1927
  62. package/src/stories/Atoms/CheckBox/BaseCheckbox.stories.js +25 -23
  63. package/src/stories/Atoms/CheckBox/BaseCheckbox.vue +30 -24
  64. package/src/stories/Atoms/Icon/BaseIcon.stories.js +63 -64
  65. package/src/stories/Atoms/Icon/BaseIcon.test.js +67 -69
  66. package/src/stories/Atoms/Icon/BaseIcon.vue +2 -3
  67. package/src/stories/Atoms/Input/BaseInput.stories.js +18 -18
  68. package/src/stories/Atoms/Input/BaseInput.test.js +65 -67
  69. package/src/stories/Atoms/Input/BaseInput.vue +36 -31
  70. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.stories.js +21 -21
  71. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.test.js +31 -31
  72. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.vue +23 -18
  73. package/src/stories/Atoms/Tag/BaseTag.stories.js +21 -21
  74. package/src/stories/Atoms/Tag/BaseTag.test.js +26 -30
  75. package/src/stories/Atoms/Tag/BaseTag.vue +18 -19
  76. package/src/stories/Atoms/Text/BaseText.stories.js +54 -62
  77. package/src/stories/Atoms/Text/BaseText.test.js +152 -154
  78. package/src/stories/Atoms/Text/BaseText.vue +103 -81
  79. package/src/stories/Configure.mdx +5 -3
  80. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.stories.js +24 -24
  81. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.vue +33 -15
  82. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.stories.js +46 -48
  83. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.vue +38 -25
  84. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.stories.js +4 -4
  85. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.vue +9 -4
  86. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.stories.js +90 -90
  87. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.vue +51 -32
  88. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.stories.js +25 -25
  89. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.vue +47 -12
  90. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.stories.js +19 -19
  91. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.vue +25 -19
  92. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.stories.js +25 -28
  93. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.vue +7 -7
  94. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.stories.js +28 -29
  95. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.test.js +58 -58
  96. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue +15 -15
  97. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.stories.js +86 -86
  98. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.test.js +101 -103
  99. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.vue +87 -24
  100. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.stories.js +31 -31
  101. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.vue +19 -21
  102. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.stories.js +57 -57
  103. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.test.js +64 -64
  104. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.vue +17 -16
  105. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.stories.js +19 -19
  106. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue +18 -7
  107. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.stories.js +16 -18
  108. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue +31 -13
  109. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.stories.js +23 -0
  110. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.vue +35 -0
  111. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.stories.js +27 -27
  112. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.vue +6 -5
  113. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.stories.js +35 -35
  114. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.vue +13 -8
  115. package/src/stories/Molecules/Inputs/Toggle/Toggle.stories.js +27 -27
  116. package/src/stories/Molecules/Inputs/Toggle/Toggle.vue +8 -5
  117. package/src/stories/Molecules/Menus/TabBar/TabBar.stories.js +18 -18
  118. package/src/stories/Molecules/Menus/TabBar/TabBar.vue +1 -2
  119. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplay.stories.js +36 -27
  120. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplayModal.vue +25 -15
  121. package/src/stories/Molecules/Modals/BaseModal/BaseModal.stories.js +66 -65
  122. package/src/stories/Molecules/Modals/BaseModal/BaseModal.vue +47 -9
  123. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.stories.js +23 -23
  124. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.vue +59 -11
  125. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.stories.js +37 -37
  126. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.test.js +18 -0
  127. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +29 -23
  128. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.stories.js +41 -41
  129. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.vue +28 -16
  130. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.stories.js +29 -30
  131. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.vue +18 -16
  132. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.stories.js +21 -21
  133. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.vue +7 -7
  134. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.stories.js +24 -24
  135. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.vue +30 -25
  136. package/src/stories/Molecules/Reorder/ReorderableShell.stories.js +81 -77
  137. package/src/stories/Molecules/Reorder/ReorderableShell.vue +46 -43
  138. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.stories.js +40 -40
  139. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.vue +23 -25
  140. package/src/stories/Organisms/Cards/BoutCard/BoutCard.stories.js +34 -29
  141. package/src/stories/Organisms/Cards/BoutCard/BoutCard.vue +69 -66
  142. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.stories.js +24 -22
  143. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +53 -41
  144. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.stories.js +24 -37
  145. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +88 -103
  146. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardReorder/BoutCardReorder.vue +13 -14
  147. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.stories.js +5 -5
  148. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.vue +22 -21
  149. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.stories.js +33 -0
  150. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.test.js +45 -0
  151. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue +103 -0
  152. package/src/stories/Organisms/Cards/ClubCard/ClubCard.stories.js +14 -17
  153. package/src/stories/Organisms/Cards/ClubCard/ClubCard.vue +25 -18
  154. package/src/stories/Organisms/Cards/Director/DirectorCard.stories.js +23 -23
  155. package/src/stories/Organisms/Cards/Director/DirectorCard.vue +159 -103
  156. package/src/stories/Organisms/Cards/EditBout/EditBout.stories.js +47 -47
  157. package/src/stories/Organisms/Cards/EditBout/EditBout.test.js +51 -0
  158. package/src/stories/Organisms/Cards/EditBout/EditBout.vue +82 -54
  159. package/src/stories/Organisms/Cards/EventCard/EventCard.stories.js +9 -10
  160. package/src/stories/Organisms/Cards/EventCard/EventCard.vue +83 -63
  161. package/src/stories/Organisms/Cards/FencerCard/FencerCard.stories.js +105 -105
  162. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +298 -194
  163. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.stories.js +14 -14
  164. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.vue +37 -26
  165. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResults.stories.js +24 -24
  166. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResultsCard.vue +95 -28
  167. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.stories.js +59 -60
  168. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.vue +13 -7
  169. package/src/stories/Organisms/Cards/KioskCard/KioskCard.stories.js +34 -34
  170. package/src/stories/Organisms/Cards/KioskCard/KioskCard.vue +149 -104
  171. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.stories.js +19 -20
  172. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.vue +207 -163
  173. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.stories.js +17 -17
  174. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.vue +88 -46
  175. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.stories.js +182 -182
  176. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.vue +21 -12
  177. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.stories.js +25 -28
  178. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.vue +28 -22
  179. package/src/stories/Organisms/Cards/StaffCard/StaffCard.stories.js +62 -62
  180. package/src/stories/Organisms/Cards/StaffCard/StaffCard.vue +27 -22
  181. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.stories.js +60 -98
  182. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.test.js +143 -0
  183. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.vue +256 -202
  184. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.stories.js +69 -93
  185. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.vue +80 -111
  186. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdmin.stories.js +20 -20
  187. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdminCard.vue +62 -33
  188. package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +56 -32
  189. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.stories.js +6 -7
  190. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.vue +7 -8
  191. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.stories.js +31 -31
  192. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.vue +30 -35
  193. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.stories.js +13 -16
  194. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue +68 -70
  195. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.stories.js +32 -34
  196. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue +48 -25
  197. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.stories.js +21 -21
  198. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.vue +65 -38
  199. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.stories.js +19 -20
  200. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.vue +46 -21
  201. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.stories.js +22 -22
  202. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.vue +68 -23
  203. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.stories.js +13 -13
  204. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue +25 -24
  205. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.stories.js +6 -10
  206. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.vue +112 -48
  207. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.stories.js +43 -44
  208. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.vue +30 -23
  209. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.stories.js +20 -20
  210. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.vue +12 -12
  211. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.stories.js +24 -25
  212. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.vue +112 -87
  213. package/src/stories/Organisms/Containers/Pool/Pool.stories.js +54 -54
  214. package/src/stories/Organisms/Containers/Pool/Pool.vue +64 -41
  215. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.stories.js +17 -19
  216. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.vue +189 -135
  217. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.stories.js +53 -54
  218. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.vue +107 -73
  219. package/src/stories/Organisms/Containers/Tableau/Tableau.stories.js +23 -24
  220. package/src/stories/Organisms/Containers/Tableau/Tableau.test.js +177 -10
  221. package/src/stories/Organisms/Containers/Tableau/Tableau.vue +319 -198
  222. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.test.js +29 -0
  223. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue +46 -0
  224. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.test.js +21 -0
  225. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.vue +39 -0
  226. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.js +145 -0
  227. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.test.js +64 -0
  228. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.js +57 -0
  229. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.test.js +65 -0
  230. package/src/stories/Organisms/Containers/TableauColumn/TabeauColumn.stories.js +26 -27
  231. package/src/stories/Organisms/Containers/TableauColumn/TableauColumn.vue +31 -26
  232. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.stories.js +26 -26
  233. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.vue +130 -118
  234. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.stories.js +14 -15
  235. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.vue +94 -88
  236. package/src/stories/Organisms/Grids/GridContainer.stories.js +101 -101
  237. package/src/stories/Organisms/Grids/GridContainer.vue +160 -136
  238. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.stories.js +47 -47
  239. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.vue +65 -54
  240. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.stories.js +27 -27
  241. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.vue +38 -22
  242. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.stories.js +80 -80
  243. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.vue +14 -6
  244. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.stories.js +34 -34
  245. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.vue +36 -36
  246. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.stories.js +21 -21
  247. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.vue +56 -29
  248. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.stories.js +38 -38
  249. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.vue +19 -20
  250. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.stories.js +12 -13
  251. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.vue +47 -41
  252. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.stories.js +12 -13
  253. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.vue +66 -37
  254. package/src/stories/Organisms/Skeletons/ClubManagement/ClubManagement.stories.js +6 -10
  255. package/src/stories/Organisms/Skeletons/ClubManagement/ClubMangementSkeleton.vue +2 -2
  256. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.stories.js +6 -10
  257. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.vue +2 -3
  258. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.stories.js +6 -10
  259. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.vue +1 -1
  260. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.stories.js +6 -9
  261. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.vue +2 -2
  262. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.stories.js +6 -10
  263. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.vue +10 -4
  264. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.stories.js +6 -10
  265. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.vue +2 -2
  266. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.stories.js +34 -34
  267. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.vue +106 -56
  268. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.stories.js +95 -95
  269. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.vue +129 -69
  270. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.stories.js +87 -88
  271. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.vue +105 -60
  272. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.stories.js +82 -82
  273. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue +150 -177
  274. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.stories.js +28 -28
  275. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.vue +96 -36
  276. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.stories.js +99 -99
  277. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.vue +115 -67
  278. package/src/stories/Templates/Assignment/Assignment.stories.js +22 -23
  279. package/src/stories/Templates/Assignment/Assignment.vue +210 -161
  280. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.stories.js +90 -90
  281. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.vue +68 -55
  282. package/src/stories/Templates/ClubManagement/ClubManagement.stories.js +87 -87
  283. package/src/stories/Templates/ClubManagement/ClubManagement.vue +167 -147
  284. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +216 -109
  285. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +138 -43
  286. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +198 -195
  287. package/src/stories/Templates/EventManagement/Bracket/BracketPlannedSuggestions.js +39 -0
  288. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.js +39 -0
  289. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.test.js +79 -0
  290. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +49 -50
  291. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +21 -21
  292. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.stories.js +105 -103
  293. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.vue +289 -226
  294. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.stories.js +30 -30
  295. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue +27 -22
  296. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.stories.js +44 -45
  297. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue +52 -43
  298. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.stories.js +28 -29
  299. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.vue +54 -39
  300. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.stories.js +80 -111
  301. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.test.js +121 -0
  302. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.vue +290 -255
  303. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.stories.js +109 -107
  304. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.vue +144 -87
  305. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.stories.js +56 -57
  306. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.vue +132 -123
  307. package/src/stories/Templates/EventManagement/StaffList/StaffList.stories.js +56 -57
  308. package/src/stories/Templates/EventManagement/StaffList/StaffList.vue +84 -47
  309. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.stories.js +29 -29
  310. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.vue +71 -67
  311. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +39 -40
  312. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +79 -71
  313. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +47 -47
  314. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.vue +39 -42
  315. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +54 -54
  316. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue +27 -31
  317. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +69 -69
  318. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.vue +78 -89
  319. package/src/stories/Templates/PersonManagement/Attendance/Attendance.stories.js +22 -22
  320. package/src/stories/Templates/PersonManagement/Attendance/Attendance.vue +61 -33
  321. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.stories.js +29 -29
  322. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.vue +80 -53
  323. package/src/stories/Templates/PersonManagement/PersonManagement.stories.js +84 -86
  324. package/src/stories/Templates/PersonManagement/PersonManagement.vue +107 -82
  325. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.stories.js +31 -31
  326. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.vue +70 -51
  327. package/src/stories/Templates/TournamentManagement/TournamentManagement.stories.js +79 -79
  328. package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +275 -230
  329. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +113 -113
  330. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +175 -146
  331. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.stories.js +77 -77
  332. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.vue +208 -185
  333. package/src/stories/Util/Validations/AddNewPersonModalValidation.js +23 -19
  334. package/src/stories/Util/Validations/ClubManagementValidations.js +17 -21
  335. package/src/stories/Util/Validations/PersonManagementValidations.js +26 -22
  336. package/src/stories/Util/Validations/TournamentFieldsValidations.js +20 -18
  337. package/src/stories/Util/seeding.js +131 -131
  338. package/src/stories/Util/tabs.js +75 -75
  339. package/tailwind/tailwind.css +5 -7
  340. package/tailwind.config.js +12 -15
  341. package/vite.config.js +3 -3
  342. package/src/mocks/getDirectors.js +0 -18
  343. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.stories.js +0 -45
  344. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.vue +0 -111
  345. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.stories.js +0 -45
  346. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.vue +0 -83
  347. package/src/stories/Organisms/Cards/TableauBoutCard/SpacingConfig.js +0 -111
  348. package/src/stories/Organisms/Containers/TableauLines/SpacingConfig.js +0 -112
  349. package/src/stories/Organisms/Containers/TableauLines/TableauLines.stories.js +0 -23
  350. package/src/stories/Organisms/Containers/TableauLines/TableauLines.vue +0 -79
@@ -3,9 +3,9 @@
3
3
  <div class="flex w-full flex-col gap-6 md:flex-row">
4
4
  <section class="border border-dropdownSelect rounded-lg p-4 bg-white md:w-1/2">
5
5
  <BaseText
6
- :text="`Merge into this account: ${person?.DisplayName || 'Root Account'}`"
7
- size="md"
8
- color="primary"
6
+ :text="`Merge into this account: ${person?.DisplayName || 'Root Account'}`"
7
+ size="md"
8
+ color="primary"
9
9
  />
10
10
 
11
11
  <div class="mt-3 space-y-2">
@@ -27,14 +27,12 @@
27
27
  <div class="min-h-0">
28
28
  <BaseText text="Accounts to merge in" size="sm" color="quaternary" weight="bold" />
29
29
  <div class="border-b border-dropdownSelect h-2"></div>
30
- <div v-if="selected.length === 0" class="mt-2 text-sm text-quaternary">
31
- None selected yet.
32
- </div>
30
+ <div v-if="selected.length === 0" class="mt-2 text-sm text-quaternary">None selected yet.</div>
33
31
  <div v-else class="mt-2 max-h-44 overflow-y-auto border border-dropdownSelect rounded-lg">
34
32
  <div
35
- v-for="p in selected"
36
- :key="p.PersonId"
37
- class="flex items-center justify-between px-3 py-2 border-b border-dropdownSelect last:border-b-0"
33
+ v-for="p in selected"
34
+ :key="p.PersonId"
35
+ class="flex items-center justify-between px-3 py-2 border-b border-dropdownSelect last:border-b-0"
38
36
  >
39
37
  <div class="min-w-0">
40
38
  <div class="text-sm text-primary font-semibold truncate">
@@ -48,11 +46,11 @@
48
46
  </div>
49
47
 
50
48
  <BaseButton
51
- color="warn"
52
- label="Remove"
53
- size="xs"
54
- type="primary"
55
- @buttonClick="removeSelected(p.PersonId)"
49
+ color="warn"
50
+ label="Remove"
51
+ size="xs"
52
+ type="primary"
53
+ @buttonClick="removeSelected(p.PersonId)"
56
54
  />
57
55
  </div>
58
56
  </div>
@@ -60,12 +58,12 @@
60
58
 
61
59
  <div class="flex justify-end">
62
60
  <BaseButton
63
- color="warn"
64
- label="Merge Accounts Together"
65
- size="sm"
66
- type="primary"
67
- :disabled="!canMerge"
68
- @buttonClick="emitMergeAccounts"
61
+ color="warn"
62
+ label="Merge Accounts Together"
63
+ size="sm"
64
+ type="primary"
65
+ :disabled="!canMerge"
66
+ @buttonClick="emitMergeAccounts"
69
67
  />
70
68
  </div>
71
69
  </div>
@@ -76,30 +74,24 @@
76
74
 
77
75
  <div class="mt-4">
78
76
  <TitledInput
79
- title="Filter people"
80
- placeholder="Type name or club..."
81
- :inputValue="filterText"
82
- @update:value="filterText = $event"
77
+ title="Filter people"
78
+ placeholder="Type name or club..."
79
+ :inputValue="filterText"
80
+ @update:value="filterText = $event"
83
81
  />
84
- <div class="text-xs text-quaternary mt-1">
85
- Filters Display Name, First/Last Name, or Club Name.
86
- </div>
82
+ <div class="text-xs text-quaternary mt-1">Filters Display Name, First/Last Name, or Club Name.</div>
87
83
  </div>
88
84
 
89
85
  <div class="mt-4 flex items-center justify-between text-xs text-quaternary">
90
- <span>
91
- Showing {{ filteredPeople.length }}{{ totalMatches > resultLimit ? '+' : '' }} results
92
- </span>
93
- <span v-if="totalMatches > resultLimit">
94
- (limited to first {{ resultLimit }})
95
- </span>
86
+ <span> Showing {{ filteredPeople.length }}{{ totalMatches > resultLimit ? '+' : '' }} results </span>
87
+ <span v-if="totalMatches > resultLimit"> (limited to first {{ resultLimit }}) </span>
96
88
  </div>
97
89
 
98
90
  <div class="mt-2 border border-dropdownSelect rounded-lg h-64 overflow-y-auto">
99
91
  <div
100
- v-for="p in filteredPeople"
101
- :key="p.PersonId"
102
- class="flex items-center justify-between px-3 py-2 border-b border-dropdownSelect last:border-b-0"
92
+ v-for="p in filteredPeople"
93
+ :key="p.PersonId"
94
+ class="flex items-center justify-between px-3 py-2 border-b border-dropdownSelect last:border-b-0"
103
95
  >
104
96
  <div class="min-w-0">
105
97
  <div class="text-sm text-primary font-semibold truncate">
@@ -112,18 +104,10 @@
112
104
  </div>
113
105
  </div>
114
106
 
115
- <BaseButton
116
- color="neutral"
117
- label="Add"
118
- size="xs"
119
- type="primary"
120
- @buttonClick="addSelected(p)"
121
- />
107
+ <BaseButton color="neutral" label="Add" size="xs" type="primary" @buttonClick="addSelected(p)" />
122
108
  </div>
123
109
 
124
- <div v-if="filteredPeople.length === 0" class="px-3 py-3 text-sm text-quaternary">
125
- No matches.
126
- </div>
110
+ <div v-if="filteredPeople.length === 0" class="px-3 py-3 text-sm text-quaternary">No matches.</div>
127
111
  </div>
128
112
  </section>
129
113
  </div>
@@ -131,54 +115,71 @@
131
115
  </template>
132
116
 
133
117
  <script>
134
- import BaseText from "../../../../Atoms/Text/BaseText.vue";
135
- import TitledInput from "../../../../Molecules/CombinationInputs/TitledInput/TitledInput.vue";
136
- import BaseButton from "../../../../Molecules/Buttons/BaseButton/BaseButton.vue";
118
+ import BaseText from '../../../../Atoms/Text/BaseText.vue';
119
+ import TitledInput from '../../../../Molecules/CombinationInputs/TitledInput/TitledInput.vue';
120
+ import BaseButton from '../../../../Molecules/Buttons/BaseButton/BaseButton.vue';
121
+
122
+ const getPersonSearchValues = person => {
123
+ const searchablePerson = person || {};
124
+ const club = searchablePerson.Club || {};
125
+ return [
126
+ searchablePerson.DisplayName,
127
+ searchablePerson.FirstName,
128
+ searchablePerson.LastName,
129
+ club.Name,
130
+ club.ShortName
131
+ ];
132
+ };
133
+
134
+ const normalizeSearchValue = value => String(value || '').toLowerCase();
135
+
136
+ const personMatchesQuery = (person, query) =>
137
+ getPersonSearchValues(person).some(value => normalizeSearchValue(value).includes(query));
137
138
 
138
139
  export default {
139
- name: "MergeAccounts",
140
+ name: 'MergeAccounts',
140
141
  components: { BaseText, TitledInput, BaseButton },
141
- emits: ["merge:merge"],
142
+ emits: ['merge:merge'],
142
143
  props: {
143
144
  person: { type: Object, required: true },
144
- people: { type: Array, required: true },
145
+ people: { type: Array, required: true }
145
146
  },
146
147
  data() {
147
148
  return {
148
- filterText: "",
149
+ filterText: '',
149
150
  selected: [],
150
- resultLimit: 200,
151
+ resultLimit: 200
151
152
  };
152
153
  },
153
154
  computed: {
154
155
  rootPersonId() {
155
- return this.person?.PersonId ?? "";
156
+ return this.person?.PersonId ?? '';
156
157
  },
157
158
  legalName() {
158
- const first = this.person?.FirstName || "";
159
- const last = this.person?.LastName || "";
160
- return `${first} ${last}`.trim() || "-";
159
+ const first = this.person?.FirstName || '';
160
+ const last = this.person?.LastName || '';
161
+ return `${first} ${last}`.trim() || '-';
161
162
  },
162
163
  clubName() {
163
- return this.person?.Club?.Name || "-";
164
+ return this.person?.Club?.Name || '-';
164
165
  },
165
166
  primaryEmail() {
166
167
  const emails = this.person?.PersonEmails || [];
167
- const primary = emails.find((email) => email.IsPrimary);
168
- return primary?.EmailAddress || "-";
168
+ const primary = emails.find(email => email.IsPrimary);
169
+ return primary?.EmailAddress || '-';
169
170
  },
170
171
  selectedIds() {
171
- return new Set(this.selected.map((p) => p.PersonId));
172
+ return new Set(this.selected.map(p => p.PersonId));
172
173
  },
173
174
  canMerge() {
174
175
  return this.selected.length > 0;
175
176
  },
176
177
  normalizedFilterText() {
177
- return (this.filterText || "").trim().toLowerCase();
178
+ return (this.filterText || '').trim().toLowerCase();
178
179
  },
179
180
  candidatePeople() {
180
181
  return (this.people || []).filter(
181
- (p) => p && p.PersonId !== this.rootPersonId && !this.selectedIds.has(p.PersonId)
182
+ p => p && p.PersonId !== this.rootPersonId && !this.selectedIds.has(p.PersonId)
182
183
  );
183
184
  },
184
185
  matchingPeople() {
@@ -186,14 +187,14 @@ export default {
186
187
 
187
188
  if (!q) return this.candidatePeople;
188
189
 
189
- return this.candidatePeople.filter((p) => this.matchesQuery(p, q));
190
+ return this.candidatePeople.filter(p => this.matchesQuery(p, q));
190
191
  },
191
192
  totalMatches() {
192
193
  return this.matchingPeople.length;
193
194
  },
194
195
  filteredPeople() {
195
196
  return this.matchingPeople.slice(0, this.resultLimit);
196
- },
197
+ }
197
198
  },
198
199
  watch: {
199
200
  rootPersonId() {
@@ -201,7 +202,7 @@ export default {
201
202
  },
202
203
  people() {
203
204
  this.removeUnavailableSelectedPeople();
204
- },
205
+ }
205
206
  },
206
207
  methods: {
207
208
  personClubSuffix(p) {
@@ -210,32 +211,20 @@ export default {
210
211
  resultTitle(p) {
211
212
  const email = this.getPrimaryEmail(p);
212
213
 
213
- if (!email) return p.DisplayName || "";
214
+ if (!email) return p.DisplayName || '';
214
215
 
215
216
  return `${p.DisplayName} - ${email}`;
216
217
  },
217
218
  getPrimaryEmail(p) {
218
219
  const emails = p?.PersonEmails || [];
219
- return emails.find((email) => email.IsPrimary)?.EmailAddress || "";
220
+ return emails.find(email => email.IsPrimary)?.EmailAddress || '';
220
221
  },
221
222
  matchesQuery(p, q) {
222
- const display = (p.DisplayName || "").toLowerCase();
223
- const first = (p.FirstName || "").toLowerCase();
224
- const last = (p.LastName || "").toLowerCase();
225
- const club = (p?.Club?.Name || "").toLowerCase();
226
- const clubShort = (p?.Club?.ShortName || "").toLowerCase();
227
-
228
- return (
229
- display.includes(q) ||
230
- first.includes(q) ||
231
- last.includes(q) ||
232
- club.includes(q) ||
233
- clubShort.includes(q)
234
- );
223
+ return personMatchesQuery(p, q);
235
224
  },
236
225
  removeUnavailableSelectedPeople() {
237
- const availableIds = new Set((this.people || []).map((p) => p?.PersonId));
238
- this.selected = this.selected.filter((p) => availableIds.has(p.PersonId));
226
+ const availableIds = new Set((this.people || []).map(p => p?.PersonId));
227
+ this.selected = this.selected.filter(p => availableIds.has(p.PersonId));
239
228
  },
240
229
  addSelected(p) {
241
230
  if (!p || p.PersonId === this.rootPersonId) return;
@@ -243,16 +232,16 @@ export default {
243
232
  this.selected = [...this.selected, p];
244
233
  },
245
234
  removeSelected(personId) {
246
- this.selected = this.selected.filter((p) => p.PersonId !== personId);
235
+ this.selected = this.selected.filter(p => p.PersonId !== personId);
247
236
  },
248
237
  emitMergeAccounts() {
249
238
  if (!this.canMerge) return;
250
239
 
251
- this.$emit("merge:merge", {
240
+ this.$emit('merge:merge', {
252
241
  rootPersonId: this.rootPersonId,
253
- mergePersonIds: this.selected.map((p) => p.PersonId),
242
+ mergePersonIds: this.selected.map(p => p.PersonId)
254
243
  });
255
- },
256
- },
244
+ }
245
+ }
257
246
  };
258
247
  </script>
@@ -1,38 +1,38 @@
1
1
  import UserAttendance from './Attendance.vue';
2
- import getAttendance from "../../../../mocks/getAttendance.js";
2
+ import getAttendance from '../../../../mocks/getAttendance.js';
3
3
 
4
4
  export default {
5
- title: 'Templates/PersonManagement/Attendance/UserAttendance',
6
- component: UserAttendance,
7
- tags: ['autodocs'],
8
- args: {
9
- attendance: getAttendance
10
- },
11
- argTypes: {
12
- attendance: { control: { type: 'array' } }
13
- }
5
+ title: 'Templates/PersonManagement/Attendance/UserAttendance',
6
+ component: UserAttendance,
7
+ tags: ['autodocs'],
8
+ args: {
9
+ attendance: getAttendance
10
+ },
11
+ argTypes: {
12
+ attendance: { control: { type: 'array' } }
13
+ }
14
14
  };
15
15
 
16
16
  export const Default = {
17
- args: {
18
- attendance: getAttendance
19
- }
17
+ args: {
18
+ attendance: getAttendance
19
+ }
20
20
  };
21
21
 
22
22
  export const Empty = {
23
- args: {
24
- attendance: []
25
- }
23
+ args: {
24
+ attendance: []
25
+ }
26
26
  };
27
27
 
28
28
  export const WithUpcomingOnly = {
29
- args: {
30
- attendance: getAttendance.filter(tournament => new Date(tournament.EndDate) >= new Date())
31
- }
29
+ args: {
30
+ attendance: getAttendance.filter(tournament => new Date(tournament.EndDate) >= new Date())
31
+ }
32
32
  };
33
33
 
34
34
  export const WithPastOnly = {
35
- args: {
36
- attendance: getAttendance.filter(tournament => new Date(tournament.EndDate) < new Date())
37
- }
35
+ args: {
36
+ attendance: getAttendance.filter(tournament => new Date(tournament.EndDate) < new Date())
37
+ }
38
38
  };
@@ -1,41 +1,70 @@
1
1
  <template>
2
2
  <section class="flex justify-center w-full pr-4">
3
- <div class="w-full md:p-2 min-h-80">
4
- <div v-if="attendance.length === 0" class="text-center mt-4">
5
- <BaseText text="No Attendance Records" color="secondary" size="lg" weight="normal"/>
6
- </div>
3
+ <div class="w-full md:p-2 min-h-80">
4
+ <div v-if="attendance.length === 0" class="text-center mt-4">
5
+ <BaseText text="No Attendance Records" color="secondary" size="lg" weight="normal" />
6
+ </div>
7
7
 
8
- <section v-if="attendance.length > 0">
9
- <div v-for="tournament in attendance" :key="tournament.TournamentId" class="mb-6">
10
- <div class="flex mr-4 md:mr-0">
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 border-dropdownSelect">
13
- <BaseText :text="tournament.Name" color="primary" size="" weight="text-sm md:text-md simi-bold"/>
14
- <BaseText :text="formatTournamentDates(tournament.StartDate, tournament.EndDate)" color="primary" size="" weight="normal" class="text-xs md:text-md pt-1.5" />
8
+ <section v-if="attendance.length > 0">
9
+ <div v-for="tournament in attendance" :key="tournament.TournamentId" class="mb-6">
10
+ <div class="flex mr-4 md:mr-0">
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 border-dropdownSelect">
13
+ <BaseText :text="tournament.Name" color="primary" size="" weight="text-sm md:text-md simi-bold" />
14
+ <BaseText
15
+ :text="formatTournamentDates(tournament.StartDate, tournament.EndDate)"
16
+ color="primary"
17
+ size=""
18
+ weight="normal"
19
+ class="text-xs md:text-md pt-1.5"
20
+ />
21
+ </div>
15
22
  </div>
16
23
  </div>
17
- </div>
18
-
19
- <div class="md:ml-14 md:-mt-2 w-full mt-2">
20
- <section v-for="event in tournament.Events" :key="event.EventId" class="mt-4 md:pl-4 mb-2 md:w-11/12">
21
- <div class="grid grid-cols-12 items-center gap-4 px-4 py-2 rounded-lg bg-poolSetup">
22
- <BaseIcon :icon-name="getWeaponIcon(event.Weapon)" iconStyle="fa-kit" size="md" color="quinary" class="col-span-1"/>
23
- <BaseText :text="event.EventName" color="primary" size="" weight="normal" class="text-xs md:text-sm col-span-5"/>
24
- <BaseText :text="formatEventDate(event.Date, event.StartTime)" color="primary" size="" weight="normal" class="text-xs md:text-md col-span-4"/>
25
- <BaseText :text="event.Status" color="primary" size="sm" weight="normal" class="col-span-2 text-right"/>
26
- </div>
27
- </section>
28
24
 
25
+ <div class="md:ml-14 md:-mt-2 w-full mt-2">
26
+ <section v-for="event in tournament.Events" :key="event.EventId" class="mt-4 md:pl-4 mb-2 md:w-11/12">
27
+ <div class="grid grid-cols-12 items-center gap-4 px-4 py-2 rounded-lg bg-poolSetup">
28
+ <BaseIcon
29
+ :icon-name="getWeaponIcon(event.Weapon)"
30
+ iconStyle="fa-kit"
31
+ size="md"
32
+ color="quinary"
33
+ class="col-span-1"
34
+ />
35
+ <BaseText
36
+ :text="event.EventName"
37
+ color="primary"
38
+ size=""
39
+ weight="normal"
40
+ class="text-xs md:text-sm col-span-5"
41
+ />
42
+ <BaseText
43
+ :text="formatEventDate(event.Date, event.StartTime)"
44
+ color="primary"
45
+ size=""
46
+ weight="normal"
47
+ class="text-xs md:text-md col-span-4"
48
+ />
49
+ <BaseText
50
+ :text="event.Status"
51
+ color="primary"
52
+ size="sm"
53
+ weight="normal"
54
+ class="col-span-2 text-right"
55
+ />
56
+ </div>
57
+ </section>
58
+ </div>
29
59
  </div>
30
- </div>
31
- </section>
32
- </div>
60
+ </section>
61
+ </div>
33
62
  </section>
34
63
  </template>
35
64
 
36
65
  <script>
37
- import BaseText from "../../../Atoms/Text/BaseText.vue";
38
- import BaseIcon from "../../..//Atoms/Icon/BaseIcon.vue";
66
+ import BaseText from '../../../Atoms/Text/BaseText.vue';
67
+ import BaseIcon from '../../..//Atoms/Icon/BaseIcon.vue';
39
68
 
40
69
  const weaponIcons = {
41
70
  Longsword: 'fa-longsword',
@@ -54,8 +83,8 @@ const daySuffixes = {
54
83
  };
55
84
 
56
85
  export default {
57
- name: "Attendance",
58
- components: {BaseIcon, BaseText },
86
+ name: 'Attendance',
87
+ components: { BaseIcon, BaseText },
59
88
  props: {
60
89
  attendance: {
61
90
  type: Array,
@@ -67,10 +96,9 @@ export default {
67
96
  showUpcoming: true
68
97
  };
69
98
  },
70
- computed: {
71
- },
99
+ computed: {},
72
100
  methods: {
73
- getWeaponIcon(weapon){
101
+ getWeaponIcon(weapon) {
74
102
  return weaponIcons[weapon] || 'fa-longsword';
75
103
  },
76
104
  formatEventDate(date, time) {
@@ -101,7 +129,7 @@ export default {
101
129
  getDaySuffix(day) {
102
130
  if (day > 3 && day < 21) return 'th';
103
131
  return daySuffixes[day % 10] || 'th';
104
- },
132
+ }
105
133
  }
106
134
  };
107
135
  </script>
@@ -1,37 +1,37 @@
1
1
  import PersonManagement from './BasicEdit.vue';
2
- import personsMock from "../../../../mocks/personsMock.js";
3
- import clubGetAllMock from "../../../../mocks/clubGetAllMock.js";
2
+ import personsMock from '../../../../mocks/personsMock.js';
3
+ import clubGetAllMock from '../../../../mocks/clubGetAllMock.js';
4
4
 
5
5
  export default {
6
- title: 'Templates/PersonManagement/Basic/Basic',
7
- component: PersonManagement,
8
- argTypes: {
9
- person: {
10
- control: 'object',
11
- description: 'The person profile object being edited'
12
- },
13
- fencingClubs: {
14
- control: 'array',
15
- description: 'The list of fencing clubs'
16
- },
17
- validation: {
18
- control: 'object',
19
- description: 'validation'
20
- },
21
- handleSubmit: { action: 'submit:person' },
22
- handleDelete: { action: 'delete:person' }
23
- }
6
+ title: 'Templates/PersonManagement/Basic/Basic',
7
+ component: PersonManagement,
8
+ argTypes: {
9
+ person: {
10
+ control: 'object',
11
+ description: 'The person profile object being edited'
12
+ },
13
+ fencingClubs: {
14
+ control: 'array',
15
+ description: 'The list of fencing clubs'
16
+ },
17
+ validation: {
18
+ control: 'object',
19
+ description: 'validation'
20
+ },
21
+ handleSubmit: { action: 'submit:person' },
22
+ handleDelete: { action: 'delete:person' }
23
+ }
24
24
  };
25
25
 
26
26
  export const Default = {
27
- args: {
28
- person: personsMock[1],
29
- fencingClubs: clubGetAllMock,
30
- validation: {
31
- DisplayName: { invalid: false, message: "" },
32
- LegalName: { invalid: false, message: "" },
33
- EmailAddress: { invalid: false, message: "" },
34
- Club: { invalid: false, message: "" },
35
- },
27
+ args: {
28
+ person: personsMock[1],
29
+ fencingClubs: clubGetAllMock,
30
+ validation: {
31
+ DisplayName: { invalid: false, message: '' },
32
+ LegalName: { invalid: false, message: '' },
33
+ EmailAddress: { invalid: false, message: '' },
34
+ Club: { invalid: false, message: '' }
36
35
  }
36
+ }
37
37
  };