@dcrackel/hematournamentui 1.0.706 → 1.0.707

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 (330) 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 +31 -1
  6. package/README.md +29 -22
  7. package/dist/HemaTournamentUI-lib.es.js +7189 -7467
  8. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  9. package/dist/hematournamentui-tailwind.css +0 -24
  10. package/dist/hematournamentui.css +1 -1
  11. package/eslint.config.js +49 -23
  12. package/package.json +6 -2
  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/main.js +1 -1
  17. package/src/mocks/EventQuestionsMock.js +43 -55
  18. package/src/mocks/assignments.js +180 -181
  19. package/src/mocks/clubGetAllMock.js +8143 -8143
  20. package/src/mocks/eventMock.js +205 -205
  21. package/src/mocks/eventPersonGetInitalPoolAssignmentsLivePools.js +541 -542
  22. package/src/mocks/eventPersonGetInitalPoolAssignmentsPreparing.js +522 -523
  23. package/src/mocks/eventPersonGetInitialPoolAssignments.js +386 -387
  24. package/src/mocks/eventPersonGetInitialPoolAssignments2.js +2267 -2268
  25. package/src/mocks/eventPersonGetInitialStaff.js +94 -95
  26. package/src/mocks/eventPersonGetPoolAssignmentEvent.js +161 -162
  27. package/src/mocks/eventRules.js +87 -86
  28. package/src/mocks/eventpersonGetEventById.js +1737 -1737
  29. package/src/mocks/getAllClubs.js +8143 -8143
  30. package/src/mocks/getAllStaffByTournamentId.js +74 -75
  31. package/src/mocks/getAllWeapons.js +81 -82
  32. package/src/mocks/getAttendance.js +43 -44
  33. package/src/mocks/getClub.js +43 -44
  34. package/src/mocks/getClubDisplayByClubId.js +104 -105
  35. package/src/mocks/getDEBouts-128Fencers.js +3247 -3248
  36. package/src/mocks/getDEBouts-42Fencers.js +3736 -3737
  37. package/src/mocks/getDEBouts-67Fencers.js +6684 -6690
  38. package/src/mocks/getDEBouts-DoubleElim.js +4198 -4199
  39. package/src/mocks/getDEWithBouts.js +628 -629
  40. package/src/mocks/getDeBouts-12fencers.js +1255 -1256
  41. package/src/mocks/getDeBouts-15fencers.js +925 -927
  42. package/src/mocks/getDeBouts-22fencers.js +1683 -1685
  43. package/src/mocks/getDeBouts-6fencers.js +818 -818
  44. package/src/mocks/getEventByTournamentId.js +47 -48
  45. package/src/mocks/getFinalEventResult.js +304 -305
  46. package/src/mocks/getPenaltiesByEvent.js +655 -656
  47. package/src/mocks/getPoolResults.js +1533 -1534
  48. package/src/mocks/getPoolsWithBouts.js +662 -663
  49. package/src/mocks/getPoolsWithBouts6PoolId139.js +885 -886
  50. package/src/mocks/getPoolsWithBoutsByPoolId.js +841 -841
  51. package/src/mocks/getPoolsWithBoutsClubColors.js +4 -4
  52. package/src/mocks/getPoolsWithBoutsComplete.js +919 -921
  53. package/src/mocks/locationMock.js +3213 -3214
  54. package/src/mocks/mockRoutes.js +3 -3
  55. package/src/mocks/personGetAllMock.js +2536 -2537
  56. package/src/mocks/personsMock.js +17569 -17570
  57. package/src/mocks/singleEventMock.js +249 -250
  58. package/src/mocks/tournamentMock.js +1988 -1927
  59. package/src/stories/Atoms/CheckBox/BaseCheckbox.stories.js +25 -23
  60. package/src/stories/Atoms/CheckBox/BaseCheckbox.vue +30 -24
  61. package/src/stories/Atoms/Icon/BaseIcon.stories.js +63 -64
  62. package/src/stories/Atoms/Icon/BaseIcon.test.js +67 -69
  63. package/src/stories/Atoms/Icon/BaseIcon.vue +2 -3
  64. package/src/stories/Atoms/Input/BaseInput.stories.js +18 -18
  65. package/src/stories/Atoms/Input/BaseInput.test.js +65 -67
  66. package/src/stories/Atoms/Input/BaseInput.vue +36 -31
  67. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.stories.js +21 -21
  68. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.test.js +31 -31
  69. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.vue +23 -18
  70. package/src/stories/Atoms/Tag/BaseTag.stories.js +21 -21
  71. package/src/stories/Atoms/Tag/BaseTag.test.js +26 -30
  72. package/src/stories/Atoms/Tag/BaseTag.vue +18 -19
  73. package/src/stories/Atoms/Text/BaseText.stories.js +54 -62
  74. package/src/stories/Atoms/Text/BaseText.test.js +152 -154
  75. package/src/stories/Atoms/Text/BaseText.vue +103 -81
  76. package/src/stories/Configure.mdx +5 -3
  77. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.stories.js +24 -24
  78. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.vue +33 -15
  79. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.stories.js +46 -48
  80. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.vue +38 -25
  81. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.stories.js +4 -4
  82. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.vue +9 -4
  83. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.stories.js +90 -90
  84. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.vue +51 -32
  85. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.stories.js +25 -25
  86. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.vue +47 -12
  87. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.stories.js +19 -19
  88. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.vue +25 -19
  89. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.stories.js +25 -28
  90. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.vue +7 -7
  91. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.stories.js +28 -29
  92. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.test.js +58 -58
  93. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue +15 -15
  94. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.stories.js +86 -86
  95. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.test.js +101 -103
  96. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.vue +87 -24
  97. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.stories.js +31 -31
  98. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.vue +19 -21
  99. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.stories.js +57 -57
  100. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.test.js +64 -64
  101. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.vue +17 -16
  102. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.stories.js +19 -19
  103. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue +18 -7
  104. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.stories.js +16 -18
  105. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue +31 -13
  106. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.stories.js +27 -27
  107. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.vue +6 -5
  108. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.stories.js +35 -35
  109. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.vue +13 -8
  110. package/src/stories/Molecules/Inputs/Toggle/Toggle.stories.js +27 -27
  111. package/src/stories/Molecules/Inputs/Toggle/Toggle.vue +8 -5
  112. package/src/stories/Molecules/Menus/TabBar/TabBar.stories.js +18 -18
  113. package/src/stories/Molecules/Menus/TabBar/TabBar.vue +1 -2
  114. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplay.stories.js +36 -27
  115. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplayModal.vue +25 -15
  116. package/src/stories/Molecules/Modals/BaseModal/BaseModal.stories.js +66 -65
  117. package/src/stories/Molecules/Modals/BaseModal/BaseModal.vue +47 -9
  118. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.stories.js +23 -23
  119. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.vue +59 -11
  120. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.stories.js +37 -37
  121. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +27 -22
  122. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.stories.js +41 -41
  123. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.vue +27 -15
  124. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.stories.js +29 -30
  125. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.vue +18 -16
  126. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.stories.js +21 -21
  127. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.vue +7 -7
  128. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.stories.js +24 -24
  129. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.vue +30 -25
  130. package/src/stories/Molecules/Reorder/ReorderableShell.stories.js +81 -77
  131. package/src/stories/Molecules/Reorder/ReorderableShell.vue +46 -43
  132. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.stories.js +40 -40
  133. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.vue +23 -25
  134. package/src/stories/Organisms/Cards/BoutCard/BoutCard.stories.js +34 -29
  135. package/src/stories/Organisms/Cards/BoutCard/BoutCard.vue +69 -66
  136. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.stories.js +24 -22
  137. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +53 -41
  138. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.stories.js +24 -37
  139. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +88 -103
  140. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardReorder/BoutCardReorder.vue +13 -14
  141. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.stories.js +5 -5
  142. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.vue +22 -21
  143. package/src/stories/Organisms/Cards/ClubCard/ClubCard.stories.js +14 -17
  144. package/src/stories/Organisms/Cards/ClubCard/ClubCard.vue +25 -18
  145. package/src/stories/Organisms/Cards/Director/DirectorCard.stories.js +23 -23
  146. package/src/stories/Organisms/Cards/Director/DirectorCard.vue +159 -103
  147. package/src/stories/Organisms/Cards/EditBout/EditBout.stories.js +47 -47
  148. package/src/stories/Organisms/Cards/EditBout/EditBout.test.js +51 -0
  149. package/src/stories/Organisms/Cards/EditBout/EditBout.vue +82 -54
  150. package/src/stories/Organisms/Cards/EventCard/EventCard.stories.js +9 -10
  151. package/src/stories/Organisms/Cards/EventCard/EventCard.vue +83 -63
  152. package/src/stories/Organisms/Cards/FencerCard/FencerCard.stories.js +105 -105
  153. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +142 -58
  154. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.stories.js +14 -14
  155. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.vue +37 -26
  156. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResults.stories.js +24 -24
  157. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResultsCard.vue +95 -28
  158. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.stories.js +59 -60
  159. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.vue +13 -7
  160. package/src/stories/Organisms/Cards/KioskCard/KioskCard.stories.js +34 -34
  161. package/src/stories/Organisms/Cards/KioskCard/KioskCard.vue +149 -104
  162. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.stories.js +19 -20
  163. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.vue +207 -163
  164. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.stories.js +17 -17
  165. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.vue +88 -46
  166. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.stories.js +182 -182
  167. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.vue +21 -12
  168. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.stories.js +25 -28
  169. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.vue +28 -22
  170. package/src/stories/Organisms/Cards/StaffCard/StaffCard.stories.js +62 -62
  171. package/src/stories/Organisms/Cards/StaffCard/StaffCard.vue +27 -22
  172. package/src/stories/Organisms/Cards/TableauBoutCard/SpacingConfig.js +103 -103
  173. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.stories.js +73 -73
  174. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.test.js +44 -0
  175. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.vue +69 -56
  176. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.stories.js +80 -81
  177. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.vue +39 -22
  178. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdmin.stories.js +20 -20
  179. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdminCard.vue +62 -33
  180. package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +44 -30
  181. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.stories.js +6 -7
  182. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.vue +7 -8
  183. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.stories.js +31 -31
  184. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.vue +30 -35
  185. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.stories.js +13 -16
  186. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue +68 -70
  187. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.stories.js +32 -34
  188. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue +48 -25
  189. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.stories.js +21 -21
  190. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.vue +65 -38
  191. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.stories.js +19 -20
  192. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.vue +46 -21
  193. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.stories.js +22 -22
  194. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.vue +68 -23
  195. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.stories.js +13 -13
  196. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue +25 -24
  197. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.stories.js +6 -10
  198. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.vue +112 -48
  199. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.stories.js +43 -44
  200. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.vue +30 -23
  201. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.stories.js +20 -20
  202. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.vue +12 -12
  203. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.stories.js +24 -25
  204. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.vue +112 -87
  205. package/src/stories/Organisms/Containers/Pool/Pool.stories.js +54 -54
  206. package/src/stories/Organisms/Containers/Pool/Pool.vue +64 -41
  207. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.stories.js +17 -19
  208. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.vue +189 -135
  209. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.stories.js +53 -54
  210. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.vue +107 -73
  211. package/src/stories/Organisms/Containers/Tableau/Tableau.stories.js +23 -24
  212. package/src/stories/Organisms/Containers/Tableau/Tableau.test.js +49 -10
  213. package/src/stories/Organisms/Containers/Tableau/Tableau.vue +96 -173
  214. package/src/stories/Organisms/Containers/TableauColumn/TabeauColumn.stories.js +26 -27
  215. package/src/stories/Organisms/Containers/TableauColumn/TableauColumn.vue +20 -17
  216. package/src/stories/Organisms/Containers/TableauLines/SpacingConfig.js +153 -103
  217. package/src/stories/Organisms/Containers/TableauLines/TableauLines.stories.js +13 -15
  218. package/src/stories/Organisms/Containers/TableauLines/TableauLines.vue +7 -8
  219. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.stories.js +26 -26
  220. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.vue +130 -118
  221. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.stories.js +14 -15
  222. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.vue +94 -88
  223. package/src/stories/Organisms/Grids/GridContainer.stories.js +101 -101
  224. package/src/stories/Organisms/Grids/GridContainer.vue +160 -136
  225. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.stories.js +47 -47
  226. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.vue +65 -54
  227. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.stories.js +27 -27
  228. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.vue +38 -22
  229. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.stories.js +80 -80
  230. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.vue +14 -6
  231. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.stories.js +34 -34
  232. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.vue +36 -36
  233. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.stories.js +21 -21
  234. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.vue +56 -29
  235. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.stories.js +38 -38
  236. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.vue +19 -20
  237. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.stories.js +12 -13
  238. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.vue +47 -41
  239. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.stories.js +12 -13
  240. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.vue +66 -37
  241. package/src/stories/Organisms/Skeletons/ClubManagement/ClubManagement.stories.js +6 -10
  242. package/src/stories/Organisms/Skeletons/ClubManagement/ClubMangementSkeleton.vue +2 -2
  243. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.stories.js +6 -10
  244. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.vue +2 -3
  245. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.stories.js +6 -10
  246. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.vue +1 -1
  247. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.stories.js +6 -9
  248. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.vue +2 -2
  249. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.stories.js +6 -10
  250. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.vue +10 -4
  251. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.stories.js +6 -10
  252. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.vue +2 -2
  253. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.stories.js +34 -34
  254. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.vue +106 -56
  255. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.stories.js +95 -95
  256. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.vue +129 -69
  257. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.stories.js +87 -88
  258. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.vue +105 -60
  259. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.stories.js +82 -82
  260. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue +150 -177
  261. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.stories.js +28 -28
  262. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.vue +96 -36
  263. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.stories.js +99 -99
  264. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.vue +115 -67
  265. package/src/stories/Templates/Assignment/Assignment.stories.js +22 -23
  266. package/src/stories/Templates/Assignment/Assignment.vue +210 -161
  267. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.stories.js +90 -90
  268. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.vue +68 -55
  269. package/src/stories/Templates/ClubManagement/ClubManagement.stories.js +87 -87
  270. package/src/stories/Templates/ClubManagement/ClubManagement.vue +167 -147
  271. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +82 -103
  272. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +88 -43
  273. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +167 -200
  274. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +49 -50
  275. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +21 -21
  276. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.stories.js +105 -103
  277. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.vue +289 -226
  278. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.stories.js +30 -30
  279. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue +27 -22
  280. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.stories.js +44 -45
  281. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue +52 -43
  282. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.stories.js +28 -29
  283. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.vue +54 -39
  284. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.stories.js +80 -111
  285. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.test.js +121 -0
  286. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.vue +290 -255
  287. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.stories.js +109 -107
  288. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.vue +144 -87
  289. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.stories.js +56 -57
  290. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.vue +132 -123
  291. package/src/stories/Templates/EventManagement/StaffList/StaffList.stories.js +56 -57
  292. package/src/stories/Templates/EventManagement/StaffList/StaffList.vue +84 -47
  293. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.stories.js +29 -29
  294. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.vue +71 -67
  295. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +39 -40
  296. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +79 -71
  297. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +47 -47
  298. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.vue +39 -42
  299. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +54 -54
  300. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue +27 -31
  301. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +69 -69
  302. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.vue +78 -89
  303. package/src/stories/Templates/PersonManagement/Attendance/Attendance.stories.js +22 -22
  304. package/src/stories/Templates/PersonManagement/Attendance/Attendance.vue +61 -33
  305. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.stories.js +29 -29
  306. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.vue +80 -53
  307. package/src/stories/Templates/PersonManagement/PersonManagement.stories.js +84 -86
  308. package/src/stories/Templates/PersonManagement/PersonManagement.vue +107 -82
  309. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.stories.js +31 -31
  310. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.vue +70 -51
  311. package/src/stories/Templates/TournamentManagement/TournamentManagement.stories.js +79 -79
  312. package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +275 -230
  313. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +113 -113
  314. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +175 -146
  315. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.stories.js +77 -77
  316. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.vue +208 -185
  317. package/src/stories/Util/Validations/AddNewPersonModalValidation.js +23 -19
  318. package/src/stories/Util/Validations/ClubManagementValidations.js +17 -21
  319. package/src/stories/Util/Validations/PersonManagementValidations.js +26 -22
  320. package/src/stories/Util/Validations/TournamentFieldsValidations.js +20 -18
  321. package/src/stories/Util/seeding.js +131 -131
  322. package/src/stories/Util/tabs.js +75 -75
  323. package/tailwind/tailwind.css +5 -7
  324. package/tailwind.config.js +12 -15
  325. package/vite.config.js +3 -3
  326. package/src/mocks/getDirectors.js +0 -18
  327. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.stories.js +0 -45
  328. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.vue +0 -111
  329. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.stories.js +0 -45
  330. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.vue +0 -83
@@ -2,36 +2,68 @@
2
2
  <div class="w-full bg-poolSetup p-2">
3
3
  <!-- Header Section -->
4
4
  <div class="flex items-center mb-6">
5
- <div v-if="!portraitURL" class="w-12 h-12 rounded-full bg-dropdownSelect flex items-center justify-center"/>
6
- <img v-if="portraitURL" :src="portraitURL" alt="Portrait" class="w-9 h-9 rounded-r-md">
5
+ <div v-if="!portraitURL" class="w-12 h-12 rounded-full bg-dropdownSelect flex items-center justify-center" />
6
+ <img v-if="portraitURL" :src="portraitURL" alt="Portrait" class="w-9 h-9 rounded-r-md" />
7
7
  <div>
8
8
  <div class="pl-3">
9
- <BaseText :text="displayName" size="lg" color="primary" weight="bold"/>
10
- <BaseText :text="clubName" size="sm" color="quinary"/>
9
+ <BaseText :text="displayName" size="lg" color="primary" weight="bold" />
10
+ <BaseText :text="clubName" size="sm" color="quinary" />
11
11
  </div>
12
12
  </div>
13
13
  </div>
14
14
 
15
15
  <!-- Flags Section -->
16
16
  <div class="flex justify-around mb-6">
17
- <div class="h-12 w-12 bg-neutral border rounded-full z-0 shadow" :class="yellowCardToggle ? 'border border-gold' : 'border'">
18
- <BaseIcon iconName="fa-cards-blank" size="3xl" color="gold" class="pt-1 ml-1 z-1" @click="toggleCard('gold')"/>
19
- <span class="h-5 w-5 rounded-full flex justify-center ml-9 -mt-3 z-10 border" :class="yellowCardToggle ? 'bg-gold' : 'bg-gray-200'" >
20
- <BaseText :text="yellowCardCount" size="xs" color="primary"/></span>
17
+ <div
18
+ class="h-12 w-12 bg-neutral border rounded-full z-0 shadow"
19
+ :class="yellowCardToggle ? 'border border-gold' : 'border'"
20
+ >
21
+ <BaseIcon iconName="fa-cards-blank" size="3xl" color="gold" class="pt-1 ml-1 z-1" @click="toggleCard('gold')" />
22
+ <span
23
+ class="h-5 w-5 rounded-full flex justify-center ml-9 -mt-3 z-10 border"
24
+ :class="yellowCardToggle ? 'bg-gold' : 'bg-gray-200'"
25
+ >
26
+ <BaseText :text="yellowCardCount" size="xs" color="primary"
27
+ /></span>
21
28
  </div>
22
29
  <div class="h-12 w-12 bg-neutral rounded-full z-0 shadow" :class="redCardToggle ? 'border border-red' : 'border'">
23
- <BaseIcon iconName="fa-cards-blank" size="3xl" color="red" class="pt-1 ml-1 z-1" @click="toggleCard('red')"/>
24
- <span class="h-5 w-5 rounded-full flex justify-center ml-9 -mt-3 z-10 border" :class="redCardToggle ? 'bg-red' : 'bg-gray-200'">
25
- <BaseText :text="redCardCount" size="xs" :color="redCardToggle ? 'neutral' : 'primary'"/></span>
30
+ <BaseIcon iconName="fa-cards-blank" size="3xl" color="red" class="pt-1 ml-1 z-1" @click="toggleCard('red')" />
31
+ <span
32
+ class="h-5 w-5 rounded-full flex justify-center ml-9 -mt-3 z-10 border"
33
+ :class="redCardToggle ? 'bg-red' : 'bg-gray-200'"
34
+ >
35
+ <BaseText :text="redCardCount" size="xs" :color="redCardToggle ? 'neutral' : 'primary'"
36
+ /></span>
26
37
  </div>
27
- <div class="h-12 w-12 bg-neutral border rounded-full z-0 shadow" :class="blackCardToggle ? 'border border-black' : 'border'">
28
- <BaseIcon iconName="fa-cards-blank" size="3xl" color="black" class="pt-1 ml-1 z-1" @click="toggleCard('black')"/>
38
+ <div
39
+ class="h-12 w-12 bg-neutral border rounded-full z-0 shadow"
40
+ :class="blackCardToggle ? 'border border-black' : 'border'"
41
+ >
42
+ <BaseIcon
43
+ iconName="fa-cards-blank"
44
+ size="3xl"
45
+ color="black"
46
+ class="pt-1 ml-1 z-1"
47
+ @click="toggleCard('black')"
48
+ />
29
49
  </div>
30
- <div class="h-12 w-12 bg-neutral border rounded-full z-0 shadow" :class="noteToggle ? 'border border-blue' : 'border'">
31
- <BaseIcon iconName="fa-pen-to-square" size="3xl" color="blue" class="pt-1 ml-2 z-1" @click="toggleNote"/>
50
+ <div
51
+ class="h-12 w-12 bg-neutral border rounded-full z-0 shadow"
52
+ :class="noteToggle ? 'border border-blue' : 'border'"
53
+ >
54
+ <BaseIcon iconName="fa-pen-to-square" size="3xl" color="blue" class="pt-1 ml-2 z-1" @click="toggleNote" />
32
55
  </div>
33
- <div class="h-12 w-12 bg-neutral border rounded-full z-0 shadow" :class="medicalToggle ? 'border border-orange' : 'border'">
34
- <BaseIcon iconName="fa-truck-medical" size="3xl" color="orange" class="pt-1 ml-2 z-1" @click="toggleCard('medical')"/>
56
+ <div
57
+ class="h-12 w-12 bg-neutral border rounded-full z-0 shadow"
58
+ :class="medicalToggle ? 'border border-orange' : 'border'"
59
+ >
60
+ <BaseIcon
61
+ iconName="fa-truck-medical"
62
+ size="3xl"
63
+ color="orange"
64
+ class="pt-1 ml-2 z-1"
65
+ @click="toggleCard('medical')"
66
+ />
35
67
  </div>
36
68
  </div>
37
69
 
@@ -39,13 +71,11 @@
39
71
  <div class="mb-3">
40
72
  <div class="flex flex-wrap gap-2">
41
73
  <button
42
- v-for="phrase in quickPhrases"
43
- :key="phrase"
44
- type="button"
45
- class="rounded-full border px-3 py-1 text-sm shadow-sm bg-white
46
- hover:bg-gray-50 active:scale-[0.98] transition
47
- disabled:opacity-40 disabled:cursor-not-allowed"
48
- @click="applyQuickPhrase(phrase)"
74
+ v-for="phrase in quickPhrases"
75
+ :key="phrase"
76
+ type="button"
77
+ class="rounded-full border px-3 py-1 text-sm shadow-sm bg-white hover:bg-gray-50 active:scale-[0.98] transition disabled:opacity-40 disabled:cursor-not-allowed"
78
+ @click="applyQuickPhrase(phrase)"
49
79
  >
50
80
  {{ phrase }}
51
81
  </button>
@@ -54,68 +84,86 @@
54
84
 
55
85
  <!-- Notes Section -->
56
86
  <div class="mb-4">
57
- <textarea v-model="currentNote" class="w-full h-20 border rounded-md p-2" placeholder="Add a note..."/>
87
+ <textarea v-model="currentNote" class="w-full h-20 border rounded-md p-2" placeholder="Add a note..." />
58
88
  <div class="w-full flex justify-between">
59
89
  <BaseButton type="primary" label="Clear" size="sm" @buttonClick="clearPenalty()" />
60
90
  <BaseButton v-if="toggled" type="primary" label="Save Penalty" size="sm" @buttonClick="handlePenalty()" />
61
- <BaseText v-if="!toggled" text="Save Penalty" color="quinary" size="sm" class="bg-poolSetup border p-2 rounded-lg ml-1 resize-none focus:ring-primary focus:border-primary" />
91
+ <BaseText
92
+ v-if="!toggled"
93
+ text="Save Penalty"
94
+ color="quinary"
95
+ size="sm"
96
+ class="bg-poolSetup border p-2 rounded-lg ml-1 resize-none focus:ring-primary focus:border-primary"
97
+ />
62
98
  </div>
63
99
  </div>
64
100
 
65
101
  <!-- Past cards Section -->
66
102
  <div>
67
- <BaseText v-if="pastCards && pastCards.length" text="Past Cards in this Event" type="h3" size="lg" color="primary" weight="bold" class="mb-2 "/>
68
- <div v-for="card in pastCards" :key="card.PenaltyId" class="flex items-center justify-between bg-neutral mb-2 border shadow-md p-2 rounded-lg">
69
- <BaseIcon :iconName="getFlagIcon(card.PenaltyType)" :color="getFlagColor(card.PenaltyType)"/>
70
- <div class="flex-grow ml-4 text-sm" @click="selectPastCard(card)">
71
- <BaseText :text="card.Notes" type="p" size="sm" color="primary" class=""/>
103
+ <BaseText
104
+ v-if="pastCards && pastCards.length"
105
+ text="Past Cards in this Event"
106
+ type="h3"
107
+ size="lg"
108
+ color="primary"
109
+ weight="bold"
110
+ class="mb-2"
111
+ />
112
+ <div
113
+ v-for="card in pastCards"
114
+ :key="card.PenaltyId"
115
+ class="flex items-center justify-between bg-neutral mb-2 border shadow-md p-2 rounded-lg"
116
+ >
117
+ <BaseIcon :iconName="getFlagIcon(card.PenaltyType)" :color="getFlagColor(card.PenaltyType)" />
118
+ <div class="flex-grow ml-4 text-sm" @click="selectPastCard(card)">
119
+ <BaseText :text="card.Notes" type="p" size="sm" color="primary" class="" />
72
120
  </div>
73
- <BaseIcon iconName="fa-times" color="red" @click="removeNote(card.PenaltyId)"/>
121
+ <BaseIcon iconName="fa-times" color="red" @click="removeNote(card.PenaltyId)" />
74
122
  </div>
75
123
  </div>
76
124
  </div>
77
125
  <ConfirmModal
78
- :show="showConfirmModal"
79
- iconName="fa-circle-exclamation"
80
- iconColor="alarmText"
81
- iconBackgroundColor="alarmHighlight"
82
- iconBorderColor="lossRed"
83
- headerText="Fencer will be Removed!"
84
- bodyText="This action requires a second staff member's approval. Do you wish to continue?"
85
- confirmText="Confirm"
86
- cancelText="Cancel"
87
- @confirm-modal="confirmAction"
88
- @cancel-modal="cancelAction"
89
- @update:show="showConfirmModal = $event"
126
+ :show="showConfirmModal"
127
+ iconName="fa-circle-exclamation"
128
+ iconColor="alarmText"
129
+ iconBackgroundColor="alarmHighlight"
130
+ iconBorderColor="lossRed"
131
+ headerText="Fencer will be Removed!"
132
+ bodyText="This action requires a second staff member's approval. Do you wish to continue?"
133
+ confirmText="Confirm"
134
+ cancelText="Cancel"
135
+ @confirm-modal="confirmAction"
136
+ @cancel-modal="cancelAction"
137
+ @update:show="showConfirmModal = $event"
90
138
  />
91
139
  </template>
92
140
 
93
141
  <script>
94
- import BaseIcon from "../../../Atoms/Icon/BaseIcon.vue";
95
- import BaseButton from "../../../Molecules/Buttons/BaseButton/BaseButton.vue";
96
- import BaseText from "../../../Atoms/Text/BaseText.vue";
97
- import ConfirmModal from "../../../Molecules/Modals/ConfirmModal/ConfirmModal.vue";
98
-
99
- const flagIcons = {
100
- Yellow: 'fa-cards-blank',
101
- Red: 'fa-cards-blank',
102
- Black: 'fa-cards-blank',
103
- Note: 'fa-user-md',
104
- Medical: 'fa-truck-medical'
105
- };
106
-
107
- const flagColors = {
108
- Yellow: 'gold',
109
- Red: 'red',
110
- Black: 'black',
111
- Note: 'blue',
112
- Medical: 'orange'
113
- };
114
-
115
- export default {
116
- name: "PenaltyCard",
117
- components: {ConfirmModal, BaseIcon, BaseButton, BaseText},
118
- emits: ["penalty:remove", "penalty:add", "penalty:update", "toggleFlag"],
142
+ import BaseIcon from '../../../Atoms/Icon/BaseIcon.vue';
143
+ import BaseButton from '../../../Molecules/Buttons/BaseButton/BaseButton.vue';
144
+ import BaseText from '../../../Atoms/Text/BaseText.vue';
145
+ import ConfirmModal from '../../../Molecules/Modals/ConfirmModal/ConfirmModal.vue';
146
+
147
+ const flagIcons = {
148
+ Yellow: 'fa-cards-blank',
149
+ Red: 'fa-cards-blank',
150
+ Black: 'fa-cards-blank',
151
+ Note: 'fa-user-md',
152
+ Medical: 'fa-truck-medical'
153
+ };
154
+
155
+ const flagColors = {
156
+ Yellow: 'gold',
157
+ Red: 'red',
158
+ Black: 'black',
159
+ Note: 'blue',
160
+ Medical: 'orange'
161
+ };
162
+
163
+ export default {
164
+ name: 'PenaltyCard',
165
+ components: { ConfirmModal, BaseIcon, BaseButton, BaseText },
166
+ emits: ['penalty:remove', 'penalty:add', 'penalty:update', 'toggleFlag'],
119
167
  props: {
120
168
  fencer1: {
121
169
  type: Boolean,
@@ -125,11 +173,11 @@ export default {
125
173
  bout: {
126
174
  type: Object,
127
175
  required: true
128
- },
176
+ }
129
177
  },
130
178
  data() {
131
179
  return {
132
- currentNote: "",
180
+ currentNote: '',
133
181
  selectPenaltyId: 0,
134
182
  pastNotes: [],
135
183
  yellowCardToggle: false,
@@ -142,13 +190,7 @@ export default {
142
190
  medicalCount: 0,
143
191
  medicalToggle: false,
144
192
  showConfirmModal: false,
145
- quickPhrases: [
146
- 'Back of Head',
147
- 'Excessive force',
148
- 'Gear issue',
149
- 'Ignoring director',
150
- 'Unsafe fencing',
151
- ],
193
+ quickPhrases: ['Back of Head', 'Excessive force', 'Gear issue', 'Ignoring director', 'Unsafe fencing']
152
194
  };
153
195
  },
154
196
  mounted() {
@@ -156,36 +198,38 @@ export default {
156
198
  },
157
199
  computed: {
158
200
  portraitURL() {
159
- const images = this.fencer1 ? this.bout?.Person1?.Images ?? [] : this.bout?.Person2?.Images ?? [];
201
+ const images = this.fencer1 ? (this.bout?.Person1?.Images ?? []) : (this.bout?.Person2?.Images ?? []);
160
202
  const portrait = images.find(image => image.URL);
161
203
  return portrait ? portrait.URL : '';
162
204
  },
163
- displayName() {
164
- return this.selectedPerson?.DisplayName || '';
165
- },
166
- clubName() {
167
- return this.selectedPerson?.Club?.Name || '';
168
- },
169
- pastCards() {
170
- return this.selectedPersonPenalties;
171
- },
172
- selectedPerson() {
173
- return this.fencer1 ? this.bout.Person1 : this.bout.Person2;
174
- },
175
- selectedPersonId() {
176
- return this.fencer1 ? this.bout.Person1Id : this.bout.Person2Id;
177
- },
178
- selectedPersonPenalties() {
179
- return Array.isArray(this.selectedPerson?.Penalties) ? this.selectedPerson.Penalties : [];
180
- },
181
- toggled() {
182
- return this.yellowCardToggle || this.redCardToggle || this.noteToggle || this.blackCardToggle || this.medicalToggle;
205
+ displayName() {
206
+ return this.selectedPerson?.DisplayName || '';
207
+ },
208
+ clubName() {
209
+ return this.selectedPerson?.Club?.Name || '';
210
+ },
211
+ pastCards() {
212
+ return this.selectedPersonPenalties;
183
213
  },
214
+ selectedPerson() {
215
+ return this.fencer1 ? this.bout.Person1 : this.bout.Person2;
216
+ },
217
+ selectedPersonId() {
218
+ return this.fencer1 ? this.bout.Person1Id : this.bout.Person2Id;
219
+ },
220
+ selectedPersonPenalties() {
221
+ return Array.isArray(this.selectedPerson?.Penalties) ? this.selectedPerson.Penalties : [];
222
+ },
223
+ toggled() {
224
+ return (
225
+ this.yellowCardToggle || this.redCardToggle || this.noteToggle || this.blackCardToggle || this.medicalToggle
226
+ );
227
+ }
184
228
  },
185
229
  methods: {
186
230
  applyQuickPhrase(phrase) {
187
231
  this.currentNote = this.currentNote + phrase;
188
- },
232
+ },
189
233
  selectPastCard(card) {
190
234
  this.selectPenaltyId = card.PenaltyId;
191
235
  this.currentNote = card.Notes;
@@ -202,13 +246,13 @@ export default {
202
246
  clearPenalty() {
203
247
  this.toggleAllOff();
204
248
  this.currentNote = '';
205
- },
206
- countCards() {
207
- const boutPenalties = this.selectedPersonPenalties.filter(penalty => penalty.BoutId === this.bout.BoutId);
208
- this.yellowCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === "Yellow").length;
209
- this.redCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === "Red").length;
210
- this.blackCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === "Black").length;
211
- this.medicalCount = boutPenalties.filter(penalty => penalty.PenaltyType === "Medical").length;
249
+ },
250
+ countCards() {
251
+ const boutPenalties = this.selectedPersonPenalties.filter(penalty => penalty.BoutId === this.bout.BoutId);
252
+ this.yellowCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === 'Yellow').length;
253
+ this.redCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === 'Red').length;
254
+ this.blackCardCount = boutPenalties.filter(penalty => penalty.PenaltyType === 'Black').length;
255
+ this.medicalCount = boutPenalties.filter(penalty => penalty.PenaltyType === 'Medical').length;
212
256
  },
213
257
  toggleAllOff() {
214
258
  if (this.yellowCardToggle) this.yellowCardCount--;
@@ -231,15 +275,15 @@ export default {
231
275
  this.toggleAllOff();
232
276
 
233
277
  const cardMappings = {
234
- gold: {toggle: 'yellowCardToggle', count: 'yellowCardCount'},
235
- red: {toggle: 'redCardToggle', count: 'redCardCount'},
236
- black: {toggle: 'blackCardToggle', count: 'blackCardCount'},
237
- medical: {toggle: 'medicalToggle', count: 'medicalCount'},
238
- note: {toggle: 'noteToggle'}
278
+ gold: { toggle: 'yellowCardToggle', count: 'yellowCardCount' },
279
+ red: { toggle: 'redCardToggle', count: 'redCardCount' },
280
+ black: { toggle: 'blackCardToggle', count: 'blackCardCount' },
281
+ medical: { toggle: 'medicalToggle', count: 'medicalCount' },
282
+ note: { toggle: 'noteToggle' }
239
283
  };
240
284
 
241
285
  if (cardMappings[card]) {
242
- const {toggle, count} = cardMappings[card];
286
+ const { toggle, count } = cardMappings[card];
243
287
 
244
288
  if (toggle) {
245
289
  this[toggle] = !this[toggle];
@@ -250,42 +294,42 @@ export default {
250
294
  }
251
295
  }
252
296
 
253
- this.$emit("toggleFlag", card);
297
+ this.$emit('toggleFlag', card);
254
298
  },
255
299
  toggleNote() {
256
300
  this.toggleAllOff();
257
301
  this.noteToggle = !this.noteToggle;
258
- this.currentNote = "";
302
+ this.currentNote = '';
259
303
  },
260
- addNewPenalty() {
261
- const newPenalty = {
262
- BoutId: this.bout.BoutId,
263
- PersonId: this.selectedPersonId,
264
- PenaltyId: Date.now(),
265
- PenaltyType: this.getToggled(),
266
- Notes: this.currentNote
267
- };
268
-
269
- this.ensureSelectedPersonPenaltyState();
270
- this.selectedPerson.Penalties.push(newPenalty);
271
- this.updateSelectedPersonLastNote(this.currentNote);
272
-
273
- this.countCards();
274
- this.$emit("penalty:add", newPenalty);
275
- this.currentNote = "";
304
+ addNewPenalty() {
305
+ const newPenalty = {
306
+ BoutId: this.bout.BoutId,
307
+ PersonId: this.selectedPersonId,
308
+ PenaltyId: Date.now(),
309
+ PenaltyType: this.getToggled(),
310
+ Notes: this.currentNote
311
+ };
312
+
313
+ this.ensureSelectedPersonPenaltyState();
314
+ this.selectedPerson.Penalties.push(newPenalty);
315
+ this.updateSelectedPersonLastNote(this.currentNote);
316
+
317
+ this.countCards();
318
+ this.$emit('penalty:add', newPenalty);
319
+ this.currentNote = '';
276
320
  },
277
321
  updatePenalty() {
278
322
  const penalties = this.fencer1 ? this.bout.Person1.Penalties : this.bout.Person2.Penalties;
279
323
  const existingPenaltyIndex = penalties.findIndex(p => p.PenaltyId === this.selectPenaltyId);
280
324
 
281
325
  if (existingPenaltyIndex !== -1) {
282
- penalties[existingPenaltyIndex].PenaltyType = this.getToggled();
283
- penalties[existingPenaltyIndex].Notes = this.currentNote;
284
- penalties[existingPenaltyIndex].PersonId = this.selectedPersonId;
285
- this.updateSelectedPersonLastNote(this.currentNote);
286
-
287
- this.$emit('penalty:update', penalties[existingPenaltyIndex]);
288
- }
326
+ penalties[existingPenaltyIndex].PenaltyType = this.getToggled();
327
+ penalties[existingPenaltyIndex].Notes = this.currentNote;
328
+ penalties[existingPenaltyIndex].PersonId = this.selectedPersonId;
329
+ this.updateSelectedPersonLastNote(this.currentNote);
330
+
331
+ this.$emit('penalty:update', penalties[existingPenaltyIndex]);
332
+ }
289
333
 
290
334
  this.countCards();
291
335
  this.selectPenaltyId = null;
@@ -324,32 +368,32 @@ export default {
324
368
  this.countCards();
325
369
  }
326
370
  },
327
- confirmAction(){
371
+ confirmAction() {
328
372
  this.addNewPenalty();
329
373
  },
330
374
  cancelAction() {
331
375
  this.blackCardToggle = false;
332
- this.currentNote = "";
333
- },
334
- getFlagIcon(flag) {
335
- return flagIcons[flag] || 'fa-circle';
336
- },
337
- getFlagColor(flag) {
338
- return flagColors[flag] || 'gray';
339
- },
340
- ensureSelectedPersonPenaltyState() {
341
- if (!Array.isArray(this.selectedPerson.Penalties)) {
342
- this.selectedPerson.Penalties = [];
343
- }
344
-
345
- if (!Array.isArray(this.selectedPerson.EventPersons)) {
346
- this.selectedPerson.EventPersons = [{ LastNote: '' }];
347
- }
348
- },
349
- updateSelectedPersonLastNote(note) {
350
- this.ensureSelectedPersonPenaltyState();
351
- this.selectedPerson.EventPersons[0].LastNote = note;
352
- },
353
- },
354
- };
355
- </script>
376
+ this.currentNote = '';
377
+ },
378
+ getFlagIcon(flag) {
379
+ return flagIcons[flag] || 'fa-circle';
380
+ },
381
+ getFlagColor(flag) {
382
+ return flagColors[flag] || 'gray';
383
+ },
384
+ ensureSelectedPersonPenaltyState() {
385
+ if (!Array.isArray(this.selectedPerson.Penalties)) {
386
+ this.selectedPerson.Penalties = [];
387
+ }
388
+
389
+ if (!Array.isArray(this.selectedPerson.EventPersons)) {
390
+ this.selectedPerson.EventPersons = [{ LastNote: '' }];
391
+ }
392
+ },
393
+ updateSelectedPersonLastNote(note) {
394
+ this.ensureSelectedPersonPenaltyState();
395
+ this.selectedPerson.EventPersons[0].LastNote = note;
396
+ }
397
+ }
398
+ };
399
+ </script>
@@ -2,22 +2,22 @@ import PenaltyFencerCard from './PenaltyFencerCard.vue';
2
2
  import getPenaltiesByEvent from '../../../../mocks/getPenaltiesByEvent.js';
3
3
 
4
4
  export default {
5
- title: 'Organisms/Cards/PenaltyFencerCard',
6
- component: PenaltyFencerCard,
7
- tags: ['autodocs'],
8
- args: {
9
- personPenalties: getPenaltiesByEvent.Penalties[0],
10
- eventName: "Lynx Cup 2026"
11
- },
12
- argTypes: {
13
- personPenalties: { control: 'object' },
14
- eventName: { control: 'text' }
15
- }
16
- };
5
+ title: 'Organisms/Cards/PenaltyFencerCard',
6
+ component: PenaltyFencerCard,
7
+ tags: ['autodocs'],
8
+ args: {
9
+ personPenalties: getPenaltiesByEvent.Penalties[0],
10
+ eventName: 'Lynx Cup 2026'
11
+ },
12
+ argTypes: {
13
+ personPenalties: { control: 'object' },
14
+ eventName: { control: 'text' }
15
+ }
16
+ };
17
17
 
18
18
  export const Default = {
19
- args: {
20
- personPenalties: getPenaltiesByEvent.Penalties[2],
21
- eventName: "Lynx Cup 2026"
22
- }
23
- }
19
+ args: {
20
+ personPenalties: getPenaltiesByEvent.Penalties[2],
21
+ eventName: 'Lynx Cup 2026'
22
+ }
23
+ };