@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
@@ -1,122 +1,122 @@
1
1
  import GridContainer from './GridContainer.vue';
2
2
  import MockTournaments from '../../../mocks/tournamentMock.js';
3
3
  import MockAllPeople from '../../../mocks/personGetAllMock.js';
4
- import getAllClubs from '../../../mocks/getAllClubs.js'
4
+ import getAllClubs from '../../../mocks/getAllClubs.js';
5
5
 
6
6
  export default {
7
- title: 'Organisms/Grids/GridContainer',
8
- component: GridContainer,
9
- tags: ['autodocs'],
10
- args: {},
11
- argTypes: {
12
- items: {
13
- control: {
14
- type: 'object'
15
- }
16
- },
17
- component: {
18
- control: {
19
- type: 'text'
20
- }
21
- },
22
- label: {
23
- control: {
24
- type: 'text'
25
- }
26
- },
27
- dropdownItems: {
28
- control: {
29
- type: 'object'
30
- }
31
- },
32
- selectedItem: {
33
- control: {
34
- type: 'object'
35
- }
36
- }
7
+ title: 'Organisms/Grids/GridContainer',
8
+ component: GridContainer,
9
+ tags: ['autodocs'],
10
+ args: {},
11
+ argTypes: {
12
+ items: {
13
+ control: {
14
+ type: 'object'
15
+ }
16
+ },
17
+ component: {
18
+ control: {
19
+ type: 'text'
20
+ }
21
+ },
22
+ label: {
23
+ control: {
24
+ type: 'text'
25
+ }
26
+ },
27
+ dropdownItems: {
28
+ control: {
29
+ type: 'object'
30
+ }
31
+ },
32
+ selectedItem: {
33
+ control: {
34
+ type: 'object'
35
+ }
37
36
  }
37
+ }
38
38
  };
39
39
  export const Default = {
40
- args: {
41
- items: MockTournaments,
42
- component: 'TournamentAdminCard',
43
- label: 'Sort by',
44
- dropdownItems: [
45
- {text: 'Name', link: '/sort/name'},
46
- {text: 'Location', link: '/sort/location'},
47
- {text: 'Date', link: '/sort/date'}
48
- ],
49
- selectedItem: {text: 'Date', link: '/sort/name'}
50
- }
40
+ args: {
41
+ items: MockTournaments,
42
+ component: 'TournamentAdminCard',
43
+ label: 'Sort by',
44
+ dropdownItems: [
45
+ { text: 'Name', link: '/sort/name' },
46
+ { text: 'Location', link: '/sort/location' },
47
+ { text: 'Date', link: '/sort/date' }
48
+ ],
49
+ selectedItem: { text: 'Date', link: '/sort/name' }
50
+ }
51
51
  };
52
52
  export const EmptyBoard = {
53
- args: {
54
- tournaments: [],
55
- component: 'TournamentAdminCard',
56
- label: 'Sort by',
57
- dropdownItems: [
58
- {text: 'Name', link: '/sort/name'},
59
- {text: 'Location', link: '/sort/location'},
60
- {text: 'Date', link: '/sort/date'}
61
- ],
62
- selectedItem: {text: 'Name', link: '/sort/name'}
63
- }
53
+ args: {
54
+ tournaments: [],
55
+ component: 'TournamentAdminCard',
56
+ label: 'Sort by',
57
+ dropdownItems: [
58
+ { text: 'Name', link: '/sort/name' },
59
+ { text: 'Location', link: '/sort/location' },
60
+ { text: 'Date', link: '/sort/date' }
61
+ ],
62
+ selectedItem: { text: 'Name', link: '/sort/name' }
63
+ }
64
64
  };
65
65
  export const WithTournaments = {
66
- args: {
67
- items: MockTournaments,
68
- component: 'TournamentAdminCard',
69
- label: 'Sort by',
70
- dropdownItems: [
71
- {text: 'Name', link: '/sort/name'},
72
- {text: 'Location', link: '/sort/location'},
73
- {text: 'Date', link: '/sort/date'}
74
- ],
75
- selectedItem: {text: 'Name', link: '/sort/name'}
76
- }
66
+ args: {
67
+ items: MockTournaments,
68
+ component: 'TournamentAdminCard',
69
+ label: 'Sort by',
70
+ dropdownItems: [
71
+ { text: 'Name', link: '/sort/name' },
72
+ { text: 'Location', link: '/sort/location' },
73
+ { text: 'Date', link: '/sort/date' }
74
+ ],
75
+ selectedItem: { text: 'Name', link: '/sort/name' }
76
+ }
77
77
  };
78
78
 
79
79
  export const whileLoading = {
80
- args: {
81
- items: MockTournaments,
82
- component: 'TournamentAdminCard',
83
- label: 'Sort by',
84
- dropdownItems: [
85
- {text: 'Name', link: '/sort/name'},
86
- {text: 'Location', link: '/sort/location'},
87
- {text: 'Date', link: '/sort/date'}
88
- ],
89
- selectedItem: {text: 'Name', link: '/sort/name'},
90
- loading: true
91
- }
80
+ args: {
81
+ items: MockTournaments,
82
+ component: 'TournamentAdminCard',
83
+ label: 'Sort by',
84
+ dropdownItems: [
85
+ { text: 'Name', link: '/sort/name' },
86
+ { text: 'Location', link: '/sort/location' },
87
+ { text: 'Date', link: '/sort/date' }
88
+ ],
89
+ selectedItem: { text: 'Name', link: '/sort/name' },
90
+ loading: true
91
+ }
92
92
  };
93
93
 
94
94
  export const FencerFinalResultCard = {
95
- args: {
96
- items: MockAllPeople,
97
- component: 'FencerFinalResultCard',
98
- label: 'Sort by',
99
- dropdownItems: [
100
- {text: 'Name', link: '/sort/name'},
101
- {text: 'Location', link: '/sort/location'},
102
- {text: 'Date', link: '/sort/date'}
103
- ],
104
- selectedItem: {text: 'Name', link: '/sort/name'},
105
- loading: false
106
- }
95
+ args: {
96
+ items: MockAllPeople,
97
+ component: 'FencerFinalResultCard',
98
+ label: 'Sort by',
99
+ dropdownItems: [
100
+ { text: 'Name', link: '/sort/name' },
101
+ { text: 'Location', link: '/sort/location' },
102
+ { text: 'Date', link: '/sort/date' }
103
+ ],
104
+ selectedItem: { text: 'Name', link: '/sort/name' },
105
+ loading: false
106
+ }
107
107
  };
108
108
 
109
109
  export const ClubCards = {
110
- args: {
111
- items: getAllClubs,
112
- component: 'ClubCard',
113
- label: 'Sort by',
114
- dropdownItems: [
115
- {text: 'Name', link: '/sort/name'},
116
- {text: 'Location', link: '/sort/location'},
117
- {text: 'Date', link: '/sort/date'}
118
- ],
119
- selectedItem: {text: 'Name', link: '/sort/name'},
120
- loading: false
121
- }
122
- };
110
+ args: {
111
+ items: getAllClubs,
112
+ component: 'ClubCard',
113
+ label: 'Sort by',
114
+ dropdownItems: [
115
+ { text: 'Name', link: '/sort/name' },
116
+ { text: 'Location', link: '/sort/location' },
117
+ { text: 'Date', link: '/sort/date' }
118
+ ],
119
+ selectedItem: { text: 'Name', link: '/sort/name' },
120
+ loading: false
121
+ }
122
+ };
@@ -1,17 +1,41 @@
1
1
  <template>
2
2
  <div class="md:border border-dropdownSelect rounded-lg md:p-9 md:bg-neutral min-h-screen">
3
3
  <div class="my-4">
4
- <FilterUpcomingPast :title="getTitle" :selected="selectedTimeFrame" :showButtons="showButtons" @timeFrame="handleTimeFrameChange" @addNew="handleAddNew"/>
4
+ <FilterUpcomingPast
5
+ :title="getTitle"
6
+ :selected="selectedTimeFrame"
7
+ :showButtons="showButtons"
8
+ @timeFrame="handleTimeFrameChange"
9
+ @addNew="handleAddNew"
10
+ />
5
11
  </div>
6
12
  <div class="my-4">
7
- <FilterAndSortBar :items="sortOptions" :label="label" :placeholder="placeholder" :selectedItem="defaultSelectedItem" @filterbar="handleFilter" @sort="handleSort"/>
13
+ <FilterAndSortBar
14
+ :items="sortOptions"
15
+ :label="label"
16
+ :placeholder="placeholder"
17
+ :selectedItem="defaultSelectedItem"
18
+ @filterbar="handleFilter"
19
+ @sort="handleSort"
20
+ />
8
21
  </div>
9
22
  <div :class="getGridClass">
10
23
  <div v-if="loading" v-for="index in 5" :key="index" class="w-full">
11
- <TournamentCardSkeleton />
24
+ <TournamentCardSkeleton />
12
25
  </div>
13
- <div v-if="!loading" v-for="item in filteredItems" :key="item.TournamentId || item.PersonId || item.ClubId" class="w-full">
14
- <component :is="component" :detail="item" @edit="handleClick(item)" @listEvents="handleListEvents(item)" @delete="handleDelete(item)" />
26
+ <div
27
+ v-if="!loading"
28
+ v-for="item in filteredItems"
29
+ :key="item.TournamentId || item.PersonId || item.ClubId"
30
+ class="w-full"
31
+ >
32
+ <component
33
+ :is="component"
34
+ :detail="item"
35
+ @edit="handleClick(item)"
36
+ @listEvents="handleListEvents(item)"
37
+ @delete="handleDelete(item)"
38
+ />
15
39
  </div>
16
40
  <section v-if="!loading && filteredItems.length === 0">
17
41
  <img alt="Small desert scene with wind blowing." class="md:w-96 mx-auto" :src="emptyDesertIcon" />
@@ -27,68 +51,68 @@
27
51
  </template>
28
52
 
29
53
  <script>
30
- import BaseText from "../../Atoms/Text/BaseText.vue";
31
- import TournamentAdminCard from "../../Organisms/Cards/TournamentAdminCard/TournamentAdminCard.vue";
32
- import FencerFinalResultCard from "../../Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.vue";
33
- import ClubCard from "../../Organisms/Cards/ClubCard/ClubCard.vue";
34
- import FilterAndSortBar from "../../Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue";
35
- import FilterUpcomingPast from "../../Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue";
36
- import emptyDesertIcon from '../../../assets/empty_desert_icon.png';
37
- import TournamentCardSkeleton from "../Skeletons/TournamentCard/TournamentCardSkeleton.vue";
38
-
39
- const componentConfig = {
40
- TournamentAdminCard: {
41
- defaultSelectedItem: { text: 'Date', link: 'date' },
42
- title: 'Tournaments',
43
- gridClass: 'grid-cols-1',
44
- noResultsMessage: 'No tournaments found.',
45
- detailMessage: 'Click the add tournament button and let\'s get started!',
46
- getSearchText: item => item.Name?.toLowerCase() ?? ''
47
- },
48
- FencerFinalResultCard: {
49
- defaultSelectedItem: { text: 'Name', link: 'name' },
50
- title: 'Fencers',
51
- gridClass: 'grid-cols-1',
52
- noResultsMessage: 'No fencers found.',
53
- detailMessage: 'Click the add fencer button and let\'s get started!',
54
- getSearchText: item => item.DisplayName?.toLowerCase() ?? ''
55
- },
56
- ClubCard: {
57
- defaultSelectedItem: { text: 'Club', link: 'club' },
58
- title: 'Clubs',
59
- noResultsMessage: 'No clubs found.',
60
- detailMessage: 'Click the add club button and let\'s get started!',
61
- getSearchText: item => item.Name?.toLowerCase() ?? ''
62
- }
63
- };
64
-
65
- const defaultComponentConfig = {
66
- defaultSelectedItem: {},
67
- title: 'Unknown',
68
- noResultsMessage: 'No results found.',
69
- detailMessage: 'Click the add button and let\'s get started!',
70
- getSearchText: () => ''
71
- };
72
-
73
- const sortOptionsByComponent = {
74
- FencerFinalResultCard: [
75
- { text: 'Name', link: '/sort/name' },
76
- { text: 'Club', link: '/sort/club' },
77
- { text: 'HR Rating', link: '/sort/hr' }
78
- ],
79
- ClubCard: [
80
- { text: 'Name', link: '/sort/name' },
81
- { text: 'Location', link: '/sort/club' }
82
- ]
83
- };
84
-
85
- const defaultSortOptions = [
86
- { text: 'Date', link: '/sort/date' },
87
- { text: 'Name', link: '/sort/name' },
88
- { text: 'Location', link: '/sort/location' }
89
- ];
90
-
91
- export default {
54
+ import BaseText from '../../Atoms/Text/BaseText.vue';
55
+ import TournamentAdminCard from '../../Organisms/Cards/TournamentAdminCard/TournamentAdminCard.vue';
56
+ import FencerFinalResultCard from '../../Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.vue';
57
+ import ClubCard from '../../Organisms/Cards/ClubCard/ClubCard.vue';
58
+ import FilterAndSortBar from '../../Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue';
59
+ import FilterUpcomingPast from '../../Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue';
60
+ import emptyDesertIcon from '../../../assets/empty_desert_icon.png';
61
+ import TournamentCardSkeleton from '../Skeletons/TournamentCard/TournamentCardSkeleton.vue';
62
+
63
+ const componentConfig = {
64
+ TournamentAdminCard: {
65
+ defaultSelectedItem: { text: 'Date', link: 'date' },
66
+ title: 'Tournaments',
67
+ gridClass: 'grid-cols-1',
68
+ noResultsMessage: 'No tournaments found.',
69
+ detailMessage: "Click the add tournament button and let's get started!",
70
+ getSearchText: item => item.Name?.toLowerCase() ?? ''
71
+ },
72
+ FencerFinalResultCard: {
73
+ defaultSelectedItem: { text: 'Name', link: 'name' },
74
+ title: 'Fencers',
75
+ gridClass: 'grid-cols-1',
76
+ noResultsMessage: 'No fencers found.',
77
+ detailMessage: "Click the add fencer button and let's get started!",
78
+ getSearchText: item => item.DisplayName?.toLowerCase() ?? ''
79
+ },
80
+ ClubCard: {
81
+ defaultSelectedItem: { text: 'Club', link: 'club' },
82
+ title: 'Clubs',
83
+ noResultsMessage: 'No clubs found.',
84
+ detailMessage: "Click the add club button and let's get started!",
85
+ getSearchText: item => item.Name?.toLowerCase() ?? ''
86
+ }
87
+ };
88
+
89
+ const defaultComponentConfig = {
90
+ defaultSelectedItem: {},
91
+ title: 'Unknown',
92
+ noResultsMessage: 'No results found.',
93
+ detailMessage: "Click the add button and let's get started!",
94
+ getSearchText: () => ''
95
+ };
96
+
97
+ const sortOptionsByComponent = {
98
+ FencerFinalResultCard: [
99
+ { text: 'Name', link: '/sort/name' },
100
+ { text: 'Club', link: '/sort/club' },
101
+ { text: 'HR Rating', link: '/sort/hr' }
102
+ ],
103
+ ClubCard: [
104
+ { text: 'Name', link: '/sort/name' },
105
+ { text: 'Location', link: '/sort/club' }
106
+ ]
107
+ };
108
+
109
+ const defaultSortOptions = [
110
+ { text: 'Date', link: '/sort/date' },
111
+ { text: 'Name', link: '/sort/name' },
112
+ { text: 'Location', link: '/sort/location' }
113
+ ];
114
+
115
+ export default {
92
116
  name: 'GridContainer',
93
117
  components: {
94
118
  TournamentCardSkeleton,
@@ -110,7 +134,7 @@ export default {
110
134
  required: true
111
135
  },
112
136
  label: {
113
- type: String,
137
+ type: String
114
138
  },
115
139
  dropdownItems: {
116
140
  type: Array,
@@ -143,35 +167,35 @@ export default {
143
167
  mounted() {
144
168
  this.applyFilters();
145
169
  },
146
- computed: {
147
- componentSettings() {
148
- return componentConfig[this.component] || defaultComponentConfig;
149
- },
150
- defaultSelectedItem() {
151
- return this.componentSettings.defaultSelectedItem;
152
- },
153
- getTitle() {
154
- return this.componentSettings.title;
155
- },
156
- placeholder() {
157
- return 'Filter by Name';
170
+ computed: {
171
+ componentSettings() {
172
+ return componentConfig[this.component] || defaultComponentConfig;
173
+ },
174
+ defaultSelectedItem() {
175
+ return this.componentSettings.defaultSelectedItem;
176
+ },
177
+ getTitle() {
178
+ return this.componentSettings.title;
179
+ },
180
+ placeholder() {
181
+ return 'Filter by Name';
158
182
  },
159
183
  showButtons() {
160
184
  return this.component === 'TournamentAdminCard';
161
- },
162
- getGridClass() {
163
- return this.componentSettings.gridClass;
164
- },
165
- getNoResultsMessage() {
166
- return this.componentSettings.noResultsMessage;
167
- },
168
- getDetailMessage(){
169
- return this.componentSettings.detailMessage;
170
- },
171
- sortOptions() {
172
- return sortOptionsByComponent[this.component] || defaultSortOptions;
173
- }
174
- },
185
+ },
186
+ getGridClass() {
187
+ return this.componentSettings.gridClass;
188
+ },
189
+ getNoResultsMessage() {
190
+ return this.componentSettings.noResultsMessage;
191
+ },
192
+ getDetailMessage() {
193
+ return this.componentSettings.detailMessage;
194
+ },
195
+ sortOptions() {
196
+ return sortOptionsByComponent[this.component] || defaultSortOptions;
197
+ }
198
+ },
175
199
  methods: {
176
200
  applyFilters() {
177
201
  let result = [...this.items];
@@ -184,12 +208,12 @@ export default {
184
208
  },
185
209
  applySearchFilter(items) {
186
210
  if (!this.filterOn.trim()) return items;
187
- const searchText = this.filterOn.toLowerCase();
188
- return items.filter(item => {
189
- const nameToCheck = this.componentSettings.getSearchText(item);
190
-
191
- if (!nameToCheck) return false;
192
- return nameToCheck.includes(searchText);
211
+ const searchText = this.filterOn.toLowerCase();
212
+ return items.filter(item => {
213
+ const nameToCheck = this.componentSettings.getSearchText(item);
214
+
215
+ if (!nameToCheck) return false;
216
+ return nameToCheck.includes(searchText);
193
217
  });
194
218
  },
195
219
  filterByTimeFrame(items) {
@@ -202,36 +226,36 @@ export default {
202
226
  const futureLimit = new Date(currentDate);
203
227
  futureLimit.setDate(futureLimit.getDate() + 90);
204
228
 
205
- const timeFrameFilters = {
206
- Upcoming: () => items.filter(item => new Date(item.EndDate) >= currentDate),
207
- Past: () => items.filter(item => new Date(item.EndDate) < currentDate),
208
- Default: () => {
209
- const filtered = items.filter(item => {
210
- const endDate = new Date(item.EndDate);
211
- return endDate >= pastLimit && endDate <= futureLimit;
212
- });
213
-
214
- return filtered.slice(0, 20);
215
- }
216
- };
217
-
218
- return (timeFrameFilters[this.selectedTimeFrame] || timeFrameFilters.Default)();
229
+ const timeFrameFilters = {
230
+ Upcoming: () => items.filter(item => new Date(item.EndDate) >= currentDate),
231
+ Past: () => items.filter(item => new Date(item.EndDate) < currentDate),
232
+ Default: () => {
233
+ const filtered = items.filter(item => {
234
+ const endDate = new Date(item.EndDate);
235
+ return endDate >= pastLimit && endDate <= futureLimit;
236
+ });
237
+
238
+ return filtered.slice(0, 20);
239
+ }
240
+ };
241
+
242
+ return (timeFrameFilters[this.selectedTimeFrame] || timeFrameFilters.Default)();
219
243
  },
220
244
  sortTournament(items) {
221
245
  if (this.selectedTimeFrame === 'Default') return items;
222
246
 
223
247
  const sortFn = {
224
- 'Date': (a, b) => new Date(a.StartDate) - new Date(b.StartDate),
225
- 'Name': (a, b) => a.Name.localeCompare(b.Name),
226
- 'Location': (a, b) => a.Address[0]?.Name?.localeCompare(b.Address[0]?.Name) || 0
248
+ Date: (a, b) => new Date(a.StartDate) - new Date(b.StartDate),
249
+ Name: (a, b) => a.Name.localeCompare(b.Name),
250
+ Location: (a, b) => a.Address[0]?.Name?.localeCompare(b.Address[0]?.Name) || 0
227
251
  }[this.sortCriteria];
228
252
 
229
253
  return sortFn ? [...items].sort(sortFn) : items;
230
254
  },
231
255
  sortFencers(items) {
232
256
  const sortFn = {
233
- 'Name': (a, b) => a.DisplayName.localeCompare(b.DisplayName),
234
- 'Club': (a, b) => a.Club.Name.localeCompare(b.Club.Name),
257
+ Name: (a, b) => a.DisplayName.localeCompare(b.DisplayName),
258
+ Club: (a, b) => a.Club.Name.localeCompare(b.Club.Name),
235
259
  'HR Rating': (a, b) => (b.HEMARatings?.[0]?.Rating ?? 0) - (a.HEMARatings?.[0]?.Rating ?? 0)
236
260
  }[this.sortCriteria];
237
261
 
@@ -239,22 +263,22 @@ export default {
239
263
  },
240
264
  sortClubs(items) {
241
265
  const sortFn = {
242
- 'Name': (a, b) => a.Name.localeCompare(b.Name),
243
- 'Location': (a, b) => a.Address?.Name?.localeCompare(b.Address?.Name) || 0
266
+ Name: (a, b) => a.Name.localeCompare(b.Name),
267
+ Location: (a, b) => a.Address?.Name?.localeCompare(b.Address?.Name) || 0
244
268
  }[this.sortCriteria];
245
269
 
246
270
  return sortFn ? [...items].sort(sortFn) : items;
247
- },
248
- applySorting(items) {
249
- const sortByComponent = {
250
- TournamentAdminCard: this.sortTournament,
251
- FencerFinalResultCard: this.sortFencers,
252
- ClubCard: this.sortClubs
253
- };
254
- const sortItems = sortByComponent[this.component];
255
-
256
- return sortItems ? sortItems(items) : items;
257
- },
271
+ },
272
+ applySorting(items) {
273
+ const sortByComponent = {
274
+ TournamentAdminCard: this.sortTournament,
275
+ FencerFinalResultCard: this.sortFencers,
276
+ ClubCard: this.sortClubs
277
+ };
278
+ const sortItems = sortByComponent[this.component];
279
+
280
+ return sortItems ? sortItems(items) : items;
281
+ },
258
282
  handleFilter(filterText) {
259
283
  this.filterOn = filterText;
260
284
  this.applyFilters();
@@ -267,7 +291,7 @@ export default {
267
291
  this.selectedTimeFrame = timeFrame;
268
292
  this.applyFilters();
269
293
  },
270
- handleClick(item){
294
+ handleClick(item) {
271
295
  if (this.component === 'TournamentAdminCard') {
272
296
  this.$emit('update:edit', item.TournamentId);
273
297
  }
@@ -280,13 +304,13 @@ export default {
280
304
  this.$emit('update:edit', item.ClubId);
281
305
  }
282
306
  },
283
- handleListEvents(item){
307
+ handleListEvents(item) {
284
308
  this.$emit('select:listEvents', item.TournamentId);
285
309
  },
286
- handleDelete(item){
310
+ handleDelete(item) {
287
311
  this.$emit('delete', item.TournamentId);
288
312
  },
289
- handleAddNew(){
313
+ handleAddNew() {
290
314
  this.$emit('addNew');
291
315
  }
292
316
  }