@sqrzro/admin 1.0.0-beta.1

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 (476) hide show
  1. package/.eslintrc +4 -0
  2. package/.gitattributes +1 -0
  3. package/.prettierrc +9 -0
  4. package/.storybook/main.js +40 -0
  5. package/.storybook/manager.js +4 -0
  6. package/.storybook/postcss.config.js +3 -0
  7. package/.storybook/preview.js +11 -0
  8. package/.storybook/theme.js +7 -0
  9. package/.stylelintrc +9 -0
  10. package/LICENSE +5 -0
  11. package/README.md +9 -0
  12. package/__mocks__/squarezero-utility.ts +40 -0
  13. package/assets/logo-horizontal-dark.svg +21 -0
  14. package/assets/logo-horizontal-white.svg +21 -0
  15. package/assets/logo-vertical-dark.svg +21 -0
  16. package/assets/logo-vertical-white.svg +21 -0
  17. package/dist/index.css +3554 -0
  18. package/dist/index.js +5099 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/types/components/Alert/index.d.ts +10 -0
  21. package/dist/types/components/Allow/index.d.ts +13 -0
  22. package/dist/types/components/App/index.d.ts +19 -0
  23. package/dist/types/components/AutoSuggest/index.d.ts +60 -0
  24. package/dist/types/components/Button/index.d.ts +36 -0
  25. package/dist/types/components/CalendarInput/index.d.ts +10 -0
  26. package/dist/types/components/CheckboxList/index.d.ts +4 -0
  27. package/dist/types/components/ConnectedDropdown/index.d.ts +8 -0
  28. package/dist/types/components/ConnectedList/index.d.ts +4 -0
  29. package/dist/types/components/ConnectedScene/index.d.ts +11 -0
  30. package/dist/types/components/ConnectedTable/index.d.ts +4 -0
  31. package/dist/types/components/ContentBlock/index.d.ts +6 -0
  32. package/dist/types/components/DateInput/index.d.ts +7 -0
  33. package/dist/types/components/Document/index.d.ts +6 -0
  34. package/dist/types/components/Dropdown/index.d.ts +14 -0
  35. package/dist/types/components/Fieldset/index.d.ts +11 -0
  36. package/dist/types/components/FileInput/index.d.ts +4 -0
  37. package/dist/types/components/FilterLink/index.d.ts +7 -0
  38. package/dist/types/components/Form/index.d.ts +11 -0
  39. package/dist/types/components/FormActions/index.d.ts +9 -0
  40. package/dist/types/components/FormField/index.d.ts +27 -0
  41. package/dist/types/components/FormRepeater/index.d.ts +8 -0
  42. package/dist/types/components/ImageInput/index.d.ts +4 -0
  43. package/dist/types/components/InfoPanel/index.d.ts +8 -0
  44. package/dist/types/components/Link/__mocks__/index.d.ts +6 -0
  45. package/dist/types/components/Link/index.d.ts +13 -0
  46. package/dist/types/components/List/index.d.ts +23 -0
  47. package/dist/types/components/ListActions/index.d.ts +9 -0
  48. package/dist/types/components/LoginForm/index.d.ts +3 -0
  49. package/dist/types/components/Message/index.d.ts +7 -0
  50. package/dist/types/components/ModalActions/index.d.ts +11 -0
  51. package/dist/types/components/MoneyInput/index.d.ts +10 -0
  52. package/dist/types/components/PasswordForm/index.d.ts +3 -0
  53. package/dist/types/components/PasswordInput/index.d.ts +8 -0
  54. package/dist/types/components/RadioList/index.d.ts +4 -0
  55. package/dist/types/components/Scene/index.d.ts +10 -0
  56. package/dist/types/components/SummaryList/index.d.ts +8 -0
  57. package/dist/types/components/Switch/index.d.ts +9 -0
  58. package/dist/types/components/Table/index.d.ts +13 -0
  59. package/dist/types/components/Tag/index.d.ts +8 -0
  60. package/dist/types/components/TextArea/index.d.ts +4 -0
  61. package/dist/types/components/TextInput/index.d.ts +17 -0
  62. package/dist/types/components/WebsiteInput/index.d.ts +10 -0
  63. package/dist/types/components/WeekCalendar/index.d.ts +12 -0
  64. package/dist/types/core/AppHeader/index.d.ts +3 -0
  65. package/dist/types/core/AppLogo/index.d.ts +6 -0
  66. package/dist/types/core/AppLogoImage/index.d.ts +3 -0
  67. package/dist/types/core/AppLogoPlaceholder/index.d.ts +3 -0
  68. package/dist/types/core/Assistive/index.d.ts +6 -0
  69. package/dist/types/core/Banner/index.d.ts +3 -0
  70. package/dist/types/core/BuildModal/index.d.ts +3 -0
  71. package/dist/types/core/Calendar/index.d.ts +11 -0
  72. package/dist/types/core/CalendarDay/index.d.ts +16 -0
  73. package/dist/types/core/CalendarMonth/index.d.ts +12 -0
  74. package/dist/types/core/CalendarNavigation/index.d.ts +9 -0
  75. package/dist/types/core/CalendarWeek/index.d.ts +14 -0
  76. package/dist/types/core/ChkRad/index.d.ts +10 -0
  77. package/dist/types/core/ChkRadIcon/index.d.ts +7 -0
  78. package/dist/types/core/ChkRadList/index.d.ts +15 -0
  79. package/dist/types/core/CloseButton/index.d.ts +9 -0
  80. package/dist/types/core/ConfirmModal/index.d.ts +3 -0
  81. package/dist/types/core/ConnectedRepeater/index.d.ts +26 -0
  82. package/dist/types/core/ConnectedRepeaterComponent/index.d.ts +24 -0
  83. package/dist/types/core/Container/index.d.ts +7 -0
  84. package/dist/types/core/DropdownPanel/index.d.ts +18 -0
  85. package/dist/types/core/EmptyMessage/index.d.ts +12 -0
  86. package/dist/types/core/ErrorBoundary/index.d.ts +15 -0
  87. package/dist/types/core/ErrorMessage/index.d.ts +8 -0
  88. package/dist/types/core/FilterItem/index.d.ts +10 -0
  89. package/dist/types/core/Filters/index.d.ts +11 -0
  90. package/dist/types/core/FixedActions/index.d.ts +12 -0
  91. package/dist/types/core/FormError/index.d.ts +6 -0
  92. package/dist/types/core/FormLabel/index.d.ts +8 -0
  93. package/dist/types/core/FormLegend/index.d.ts +6 -0
  94. package/dist/types/core/Header/index.d.ts +8 -0
  95. package/dist/types/core/Icon/index.d.ts +7 -0
  96. package/dist/types/core/IconButton/Icon/index.d.ts +7 -0
  97. package/dist/types/core/IconButton/index.d.ts +11 -0
  98. package/dist/types/core/InputPanel/index.d.ts +8 -0
  99. package/dist/types/core/ListItem/index.d.ts +16 -0
  100. package/dist/types/core/ListItemAction/index.d.ts +4 -0
  101. package/dist/types/core/ListItemActions/index.d.ts +8 -0
  102. package/dist/types/core/ListItemMetaItem/index.d.ts +10 -0
  103. package/dist/types/core/ListItemTitle/index.d.ts +9 -0
  104. package/dist/types/core/Loader/index.d.ts +6 -0
  105. package/dist/types/core/MeActions/index.d.ts +3 -0
  106. package/dist/types/core/MePanel/index.d.ts +9 -0
  107. package/dist/types/core/Modal/index.d.ts +12 -0
  108. package/dist/types/core/Navigation/index.d.ts +3 -0
  109. package/dist/types/core/NavigationDivider/index.d.ts +3 -0
  110. package/dist/types/core/NavigationItem/index.d.ts +7 -0
  111. package/dist/types/core/Pagination/index.d.ts +7 -0
  112. package/dist/types/core/PaginationItem/index.d.ts +7 -0
  113. package/dist/types/core/Panel/index.d.ts +8 -0
  114. package/dist/types/core/RadialProgress/index.d.ts +8 -0
  115. package/dist/types/core/StaticTextInput/index.d.ts +12 -0
  116. package/dist/types/core/Styled/index.d.ts +6 -0
  117. package/dist/types/core/SummaryListItem/index.d.ts +15 -0
  118. package/dist/types/core/TableActionsCell/index.d.ts +8 -0
  119. package/dist/types/core/TableCell/index.d.ts +8 -0
  120. package/dist/types/core/TableHead/index.d.ts +8 -0
  121. package/dist/types/core/TableRow/index.d.ts +13 -0
  122. package/dist/types/core/Tabs/index.d.ts +11 -0
  123. package/dist/types/core/TextInputAncillary/index.d.ts +11 -0
  124. package/dist/types/core/Toast/index.d.ts +3 -0
  125. package/dist/types/core/WeekCalendarDay/index.d.ts +14 -0
  126. package/dist/types/filters/BooleanFilter/index.d.ts +5 -0
  127. package/dist/types/filters/DateFilter/index.d.ts +5 -0
  128. package/dist/types/filters/DropdownFilter/index.d.ts +5 -0
  129. package/dist/types/filters/QuickDateFilter/index.d.ts +5 -0
  130. package/dist/types/filters/interfaces.d.ts +36 -0
  131. package/dist/types/hooks/useAccessiblePanel.d.ts +13 -0
  132. package/dist/types/hooks/useAppContext.d.ts +37 -0
  133. package/dist/types/hooks/useClickOutside.d.ts +3 -0
  134. package/dist/types/hooks/useConnectedList.d.ts +7 -0
  135. package/dist/types/hooks/useFilters.d.ts +3 -0
  136. package/dist/types/hooks/useForm.d.ts +26 -0
  137. package/dist/types/hooks/useFormData.d.ts +9 -0
  138. package/dist/types/hooks/useLayout.d.ts +6 -0
  139. package/dist/types/hooks/useModal.d.ts +12 -0
  140. package/dist/types/hooks/useVariant.d.ts +6 -0
  141. package/dist/types/index.d.ts +187 -0
  142. package/dist/types/scenes/Error404Scene.d.ts +3 -0
  143. package/dist/types/services/BuildService.d.ts +5 -0
  144. package/dist/types/services/ConfirmService.d.ts +12 -0
  145. package/dist/types/services/DateService.d.ts +17 -0
  146. package/dist/types/services/DownloadService.d.ts +5 -0
  147. package/dist/types/services/FilterComponentService.d.ts +8 -0
  148. package/dist/types/services/FilterService.d.ts +13 -0
  149. package/dist/types/services/FormatService.d.ts +7 -0
  150. package/dist/types/services/ToastService.d.ts +5 -0
  151. package/dist/types/utility/MockRouter/index.d.ts +2 -0
  152. package/dist/types/utility/StorybookPanel/index.d.ts +7 -0
  153. package/dist/types/utility/TestChangeHandler/index.d.ts +8 -0
  154. package/dist/types/utility/create-app.d.ts +4 -0
  155. package/dist/types/utility/interfaces.d.ts +72 -0
  156. package/dist/types/utility/prop-types.d.ts +40 -0
  157. package/docs/guides/01-installation.story.mdx +33 -0
  158. package/docs/guides/02-configuration.story.mdx +80 -0
  159. package/docs/guides/03-pages.story.mdx +18 -0
  160. package/docs/guides/04-integration.story.mdx +33 -0
  161. package/docs/guides/a11y.story.mdx +7 -0
  162. package/docs/guides/theming.story.mdx +7 -0
  163. package/docs/introduction.story.mdx +17 -0
  164. package/jest.config.js +19 -0
  165. package/package.json +101 -0
  166. package/postcss.config.js +3 -0
  167. package/rollup.config.js +36 -0
  168. package/scripts/create-exports.js +74 -0
  169. package/scripts/update-license.js +8 -0
  170. package/squarezero.config.js +5 -0
  171. package/src/components/Alert/Alert.module.css +50 -0
  172. package/src/components/Alert/Alert.spec.tsx +63 -0
  173. package/src/components/Alert/Alert.story.tsx +23 -0
  174. package/src/components/Alert/index.tsx +67 -0
  175. package/src/components/Allow/Allow.spec.tsx +37 -0
  176. package/src/components/Allow/index.tsx +42 -0
  177. package/src/components/App/App.module.css +22 -0
  178. package/src/components/App/App.spec.tsx +128 -0
  179. package/src/components/App/index.tsx +108 -0
  180. package/src/components/AutoSuggest/AutoSuggest.module.css +8 -0
  181. package/src/components/AutoSuggest/AutoSuggest.spec.tsx +211 -0
  182. package/src/components/AutoSuggest/AutoSuggest.story.tsx +30 -0
  183. package/src/components/AutoSuggest/index.tsx +216 -0
  184. package/src/components/Button/Button.module.css +95 -0
  185. package/src/components/Button/Button.spec.tsx +69 -0
  186. package/src/components/Button/Button.story.tsx +39 -0
  187. package/src/components/Button/index.tsx +99 -0
  188. package/src/components/CalendarInput/CalendarInput.module.css +8 -0
  189. package/src/components/CalendarInput/CalendarInput.spec.tsx +206 -0
  190. package/src/components/CalendarInput/CalendarInput.story.tsx +62 -0
  191. package/src/components/CalendarInput/index.tsx +122 -0
  192. package/src/components/CheckboxList/CheckboxList.spec.tsx +83 -0
  193. package/src/components/CheckboxList/index.tsx +53 -0
  194. package/src/components/ConnectedDropdown/index.tsx +56 -0
  195. package/src/components/ConnectedList/index.tsx +15 -0
  196. package/src/components/ConnectedScene/index.tsx +95 -0
  197. package/src/components/ConnectedTable/index.tsx +17 -0
  198. package/src/components/ContentBlock/ContentBlock.module.css +8 -0
  199. package/src/components/ContentBlock/ContentBlock.spec.tsx +15 -0
  200. package/src/components/ContentBlock/index.tsx +16 -0
  201. package/src/components/DateInput/DateInput.module.css +15 -0
  202. package/src/components/DateInput/DateInput.spec.tsx +91 -0
  203. package/src/components/DateInput/index.tsx +149 -0
  204. package/src/components/Document/index.tsx +20 -0
  205. package/src/components/Dropdown/Dropdown.module.css +8 -0
  206. package/src/components/Dropdown/Dropdown.spec.tsx +286 -0
  207. package/src/components/Dropdown/Dropdown.story.tsx +53 -0
  208. package/src/components/Dropdown/index.tsx +224 -0
  209. package/src/components/Fieldset/Fieldset.spec.tsx +22 -0
  210. package/src/components/Fieldset/Fieldset.story.tsx +21 -0
  211. package/src/components/Fieldset/index.tsx +30 -0
  212. package/src/components/FileInput/FileInput.module.css +18 -0
  213. package/src/components/FileInput/FileInput.spec.tsx +42 -0
  214. package/src/components/FileInput/FileInput.story.tsx +6 -0
  215. package/src/components/FileInput/index.tsx +72 -0
  216. package/src/components/FilterLink/FilterLink.module.css +9 -0
  217. package/src/components/FilterLink/FilterLink.spec.tsx +20 -0
  218. package/src/components/FilterLink/index.tsx +31 -0
  219. package/src/components/Form/Form.spec.tsx +68 -0
  220. package/src/components/Form/index.tsx +87 -0
  221. package/src/components/FormActions/FormActions.spec.tsx +10 -0
  222. package/src/components/FormActions/FormActions.story.tsx +23 -0
  223. package/src/components/FormActions/index.tsx +31 -0
  224. package/src/components/FormField/FormField.module.css +71 -0
  225. package/src/components/FormField/FormField.spec.tsx +137 -0
  226. package/src/components/FormField/FormField.story.tsx +22 -0
  227. package/src/components/FormField/index.tsx +162 -0
  228. package/src/components/FormRepeater/FormRepeater.module.css +3 -0
  229. package/src/components/FormRepeater/FormRepeater.spec.tsx +127 -0
  230. package/src/components/FormRepeater/index.tsx +118 -0
  231. package/src/components/ImageInput/ImageInput.module.css +74 -0
  232. package/src/components/ImageInput/ImageInput.spec.tsx +45 -0
  233. package/src/components/ImageInput/ImageInput.story.tsx +6 -0
  234. package/src/components/ImageInput/index.tsx +91 -0
  235. package/src/components/InfoPanel/InfoPanel.module.css +18 -0
  236. package/src/components/InfoPanel/InfoPanel.spec.tsx +15 -0
  237. package/src/components/InfoPanel/InfoPanel.story.tsx +32 -0
  238. package/src/components/InfoPanel/index.tsx +25 -0
  239. package/src/components/Link/Link.spec.tsx +62 -0
  240. package/src/components/Link/__mocks__/index.tsx +24 -0
  241. package/src/components/Link/index.tsx +51 -0
  242. package/src/components/List/List.module.css +9 -0
  243. package/src/components/List/List.spec.tsx +311 -0
  244. package/src/components/List/List.story.tsx +92 -0
  245. package/src/components/List/index.tsx +79 -0
  246. package/src/components/ListActions/ListActions.spec.tsx +10 -0
  247. package/src/components/ListActions/ListActions.story.tsx +6 -0
  248. package/src/components/ListActions/index.tsx +31 -0
  249. package/src/components/LoginForm/LoginForm.module.css +21 -0
  250. package/src/components/LoginForm/LoginForm.spec.tsx +63 -0
  251. package/src/components/LoginForm/index.tsx +102 -0
  252. package/src/components/Message/Message.module.css +14 -0
  253. package/src/components/Message/Message.spec.tsx +20 -0
  254. package/src/components/Message/index.tsx +27 -0
  255. package/src/components/ModalActions/ModalActions.module.css +5 -0
  256. package/src/components/ModalActions/ModalActions.spec.tsx +53 -0
  257. package/src/components/ModalActions/ModalActions.story.tsx +6 -0
  258. package/src/components/ModalActions/index.tsx +47 -0
  259. package/src/components/MoneyInput/MoneyInput.spec.tsx +17 -0
  260. package/src/components/MoneyInput/MoneyInput.story.tsx +6 -0
  261. package/src/components/MoneyInput/index.tsx +16 -0
  262. package/src/components/PasswordForm/PasswordForm.module.css +21 -0
  263. package/src/components/PasswordForm/index.tsx +94 -0
  264. package/src/components/PasswordInput/PasswordInput.module.css +23 -0
  265. package/src/components/PasswordInput/PasswordInput.spec.tsx +31 -0
  266. package/src/components/PasswordInput/PasswordInput.story.tsx +16 -0
  267. package/src/components/PasswordInput/index.tsx +27 -0
  268. package/src/components/RadioList/RadioList.spec.tsx +45 -0
  269. package/src/components/RadioList/index.tsx +10 -0
  270. package/src/components/Scene/Scene.spec.tsx +123 -0
  271. package/src/components/Scene/Scene.story.tsx +6 -0
  272. package/src/components/Scene/index.tsx +58 -0
  273. package/src/components/SummaryList/SummaryList.module.css +16 -0
  274. package/src/components/SummaryList/SummaryList.spec.tsx +77 -0
  275. package/src/components/SummaryList/SummaryList.story.tsx +11 -0
  276. package/src/components/SummaryList/index.tsx +37 -0
  277. package/src/components/Switch/Switch.module.css +86 -0
  278. package/src/components/Switch/Switch.spec.tsx +64 -0
  279. package/src/components/Switch/index.tsx +85 -0
  280. package/src/components/Table/Table.module.css +14 -0
  281. package/src/components/Table/Table.spec.tsx +128 -0
  282. package/src/components/Table/Table.story.tsx +101 -0
  283. package/src/components/Table/index.tsx +114 -0
  284. package/src/components/Tag/Tag.module.css +37 -0
  285. package/src/components/Tag/Tag.spec.tsx +10 -0
  286. package/src/components/Tag/Tag.story.tsx +55 -0
  287. package/src/components/Tag/index.tsx +27 -0
  288. package/src/components/TextArea/TextArea.module.css +23 -0
  289. package/src/components/TextArea/TextArea.spec.tsx +77 -0
  290. package/src/components/TextArea/index.tsx +59 -0
  291. package/src/components/TextInput/TextInput.module.css +57 -0
  292. package/src/components/TextInput/TextInput.spec.tsx +134 -0
  293. package/src/components/TextInput/TextInput.story.tsx +24 -0
  294. package/src/components/TextInput/index.tsx +146 -0
  295. package/src/components/WebsiteInput/WebsiteInput.spec.tsx +17 -0
  296. package/src/components/WebsiteInput/index.tsx +16 -0
  297. package/src/components/WeekCalendar/WeekCalendar.module.css +19 -0
  298. package/src/components/WeekCalendar/index.tsx +80 -0
  299. package/src/core/AppHeader/index.tsx +23 -0
  300. package/src/core/AppLogo/AppLogo.module.css +19 -0
  301. package/src/core/AppLogo/index.tsx +33 -0
  302. package/src/core/AppLogoImage/index.tsx +19 -0
  303. package/src/core/AppLogoPlaceholder/index.tsx +26 -0
  304. package/src/core/Assistive/Assistive.module.css +10 -0
  305. package/src/core/Assistive/index.tsx +18 -0
  306. package/src/core/Banner/Banner.module.css +36 -0
  307. package/src/core/Banner/index.tsx +25 -0
  308. package/src/core/BuildModal/index.tsx +119 -0
  309. package/src/core/Calendar/index.tsx +116 -0
  310. package/src/core/CalendarDay/CalendarDay.module.css +61 -0
  311. package/src/core/CalendarDay/index.tsx +82 -0
  312. package/src/core/CalendarMonth/CalendarMonth.module.css +13 -0
  313. package/src/core/CalendarMonth/index.tsx +101 -0
  314. package/src/core/CalendarNavigation/CalendarNavigation.module.css +26 -0
  315. package/src/core/CalendarNavigation/index.tsx +56 -0
  316. package/src/core/CalendarWeek/index.tsx +95 -0
  317. package/src/core/ChkRad/ChkRad.module.css +31 -0
  318. package/src/core/ChkRad/ChkRad.spec.tsx +72 -0
  319. package/src/core/ChkRad/index.tsx +80 -0
  320. package/src/core/ChkRadIcon/ChkRadIcon.module.css +28 -0
  321. package/src/core/ChkRadIcon/index.tsx +33 -0
  322. package/src/core/ChkRadList/ChkRadList.module.css +10 -0
  323. package/src/core/ChkRadList/index.tsx +85 -0
  324. package/src/core/CloseButton/CloseButton.spec.tsx +36 -0
  325. package/src/core/CloseButton/index.tsx +31 -0
  326. package/src/core/ConfirmModal/ConfirmModal.spec.tsx +88 -0
  327. package/src/core/ConfirmModal/index.tsx +51 -0
  328. package/src/core/ConnectedRepeater/index.tsx +248 -0
  329. package/src/core/ConnectedRepeaterComponent/index.tsx +66 -0
  330. package/src/core/Container/Container.module.css +12 -0
  331. package/src/core/Container/index.tsx +35 -0
  332. package/src/core/DropdownPanel/DropdownPanel.module.css +68 -0
  333. package/src/core/DropdownPanel/index.tsx +92 -0
  334. package/src/core/EmptyMessage/EmptyMessage.module.css +18 -0
  335. package/src/core/EmptyMessage/index.tsx +31 -0
  336. package/src/core/ErrorBoundary/ErrorBoundary.spec.tsx +33 -0
  337. package/src/core/ErrorBoundary/index.tsx +42 -0
  338. package/src/core/ErrorMessage/ErrorMessage.module.css +25 -0
  339. package/src/core/ErrorMessage/ErrorMessage.spec.tsx +31 -0
  340. package/src/core/ErrorMessage/index.tsx +37 -0
  341. package/src/core/FilterItem/FilterItem.module.css +104 -0
  342. package/src/core/FilterItem/index.tsx +164 -0
  343. package/src/core/Filters/Filters.module.css +86 -0
  344. package/src/core/Filters/Filters.spec.tsx +533 -0
  345. package/src/core/Filters/index.tsx +158 -0
  346. package/src/core/FixedActions/FixedActions.module.css +24 -0
  347. package/src/core/FixedActions/index.tsx +52 -0
  348. package/src/core/FormError/FormError.module.css +7 -0
  349. package/src/core/FormError/index.tsx +18 -0
  350. package/src/core/FormLabel/FormLabel.module.css +15 -0
  351. package/src/core/FormLabel/index.tsx +25 -0
  352. package/src/core/FormLegend/FormLegend.module.css +13 -0
  353. package/src/core/FormLegend/index.tsx +18 -0
  354. package/src/core/Header/Header.module.css +35 -0
  355. package/src/core/Header/index.tsx +37 -0
  356. package/src/core/Icon/Icon.spec.tsx +31 -0
  357. package/src/core/Icon/index.tsx +64 -0
  358. package/src/core/IconButton/Icon/Icon.spec.tsx +31 -0
  359. package/src/core/IconButton/Icon/index.tsx +64 -0
  360. package/src/core/IconButton/IconButton.module.css +32 -0
  361. package/src/core/IconButton/index.tsx +55 -0
  362. package/src/core/InputPanel/InputPanel.module.css +70 -0
  363. package/src/core/InputPanel/index.tsx +28 -0
  364. package/src/core/ListItem/ListItem.module.css +28 -0
  365. package/src/core/ListItem/ListItem.story.tsx +28 -0
  366. package/src/core/ListItem/index.tsx +99 -0
  367. package/src/core/ListItemAction/ListItemAction.module.css +28 -0
  368. package/src/core/ListItemAction/index.tsx +30 -0
  369. package/src/core/ListItemActions/ListItemActions.module.css +94 -0
  370. package/src/core/ListItemActions/index.tsx +55 -0
  371. package/src/core/ListItemMetaItem/ListItemMetaItem.module.css +18 -0
  372. package/src/core/ListItemMetaItem/index.tsx +54 -0
  373. package/src/core/ListItemTitle/ListItemTitle.module.css +14 -0
  374. package/src/core/ListItemTitle/ListItemTitle.spec.tsx +33 -0
  375. package/src/core/ListItemTitle/index.tsx +72 -0
  376. package/src/core/Loader/Loader.module.css +57 -0
  377. package/src/core/Loader/Loader.story.tsx +8 -0
  378. package/src/core/Loader/index.tsx +27 -0
  379. package/src/core/MeActions/MeActions.module.css +45 -0
  380. package/src/core/MeActions/index.tsx +46 -0
  381. package/src/core/MePanel/MePanel.module.css +75 -0
  382. package/src/core/MePanel/index.tsx +45 -0
  383. package/src/core/Modal/Modal.module.css +84 -0
  384. package/src/core/Modal/Modal.spec.tsx +51 -0
  385. package/src/core/Modal/index.tsx +66 -0
  386. package/src/core/Navigation/Navigation.module.css +83 -0
  387. package/src/core/Navigation/Navigation.spec.tsx +101 -0
  388. package/src/core/Navigation/index.tsx +109 -0
  389. package/src/core/NavigationDivider/NavigationDivider.module.css +18 -0
  390. package/src/core/NavigationDivider/index.tsx +13 -0
  391. package/src/core/NavigationItem/NavigationItem.module.css +51 -0
  392. package/src/core/NavigationItem/index.tsx +59 -0
  393. package/src/core/Pagination/Pagination.module.css +15 -0
  394. package/src/core/Pagination/index.tsx +100 -0
  395. package/src/core/PaginationItem/PaginationItem.module.css +33 -0
  396. package/src/core/PaginationItem/index.tsx +46 -0
  397. package/src/core/Panel/Panel.module.css +15 -0
  398. package/src/core/Panel/index.tsx +31 -0
  399. package/src/core/RadialProgress/RadialProgress.module.css +78 -0
  400. package/src/core/RadialProgress/index.tsx +52 -0
  401. package/src/core/StaticTextInput/StaticTextInput.module.css +79 -0
  402. package/src/core/StaticTextInput/StaticTextInput.spec.tsx +133 -0
  403. package/src/core/StaticTextInput/index.tsx +114 -0
  404. package/src/core/Styled/Styled.spec.tsx +38 -0
  405. package/src/core/Styled/Styled.story.tsx +10 -0
  406. package/src/core/Styled/index.tsx +62 -0
  407. package/src/core/SummaryListItem/SummaryListItem.module.css +28 -0
  408. package/src/core/SummaryListItem/index.tsx +60 -0
  409. package/src/core/TableActionsCell/TableActionsCell.module.css +3 -0
  410. package/src/core/TableActionsCell/index.tsx +37 -0
  411. package/src/core/TableCell/TableCell.module.css +16 -0
  412. package/src/core/TableCell/index.tsx +39 -0
  413. package/src/core/TableHead/TableHead.module.css +12 -0
  414. package/src/core/TableHead/index.tsx +48 -0
  415. package/src/core/TableRow/index.tsx +64 -0
  416. package/src/core/Tabs/Tabs.module.css +50 -0
  417. package/src/core/Tabs/index.tsx +94 -0
  418. package/src/core/TextInputAncillary/TextInputAncillary.module.css +64 -0
  419. package/src/core/TextInputAncillary/index.tsx +72 -0
  420. package/src/core/Toast/Toast.module.css +55 -0
  421. package/src/core/Toast/Toast.spec.tsx +78 -0
  422. package/src/core/Toast/index.tsx +81 -0
  423. package/src/core/WeekCalendarDay/WeekCalendarDay.module.css +32 -0
  424. package/src/core/WeekCalendarDay/index.tsx +68 -0
  425. package/src/filters/BooleanFilter/index.tsx +46 -0
  426. package/src/filters/DateFilter/index.tsx +36 -0
  427. package/src/filters/DropdownFilter/index.tsx +53 -0
  428. package/src/filters/QuickDateFilter/index.tsx +74 -0
  429. package/src/filters/interfaces.ts +40 -0
  430. package/src/hooks/useAccessiblePanel.spec.tsx +88 -0
  431. package/src/hooks/useAccessiblePanel.ts +74 -0
  432. package/src/hooks/useAppContext.ts +77 -0
  433. package/src/hooks/useClickOutside.ts +49 -0
  434. package/src/hooks/useConnectedList.ts +26 -0
  435. package/src/hooks/useFilters.ts +26 -0
  436. package/src/hooks/useForm.spec.ts +126 -0
  437. package/src/hooks/useForm.ts +99 -0
  438. package/src/hooks/useFormData.spec.ts +40 -0
  439. package/src/hooks/useFormData.ts +27 -0
  440. package/src/hooks/useLayout.spec.ts +55 -0
  441. package/src/hooks/useLayout.ts +29 -0
  442. package/src/hooks/useModal.spec.tsx +63 -0
  443. package/src/hooks/useModal.ts +60 -0
  444. package/src/hooks/useVariant.spec.ts +14 -0
  445. package/src/hooks/useVariant.ts +34 -0
  446. package/src/index.ts +194 -0
  447. package/src/scenes/Error404Scene.tsx +5 -0
  448. package/src/services/BuildService.spec.ts +56 -0
  449. package/src/services/BuildService.ts +34 -0
  450. package/src/services/ConfirmService.ts +21 -0
  451. package/src/services/DateService.spec.ts +87 -0
  452. package/src/services/DateService.ts +137 -0
  453. package/src/services/DownloadService.spec.ts +29 -0
  454. package/src/services/DownloadService.ts +14 -0
  455. package/src/services/FilterComponentService.tsx +46 -0
  456. package/src/services/FilterService.spec.ts +87 -0
  457. package/src/services/FilterService.ts +58 -0
  458. package/src/services/FormatService.spec.ts +83 -0
  459. package/src/services/FormatService.ts +55 -0
  460. package/src/services/ToastService.spec.ts +44 -0
  461. package/src/services/ToastService.ts +19 -0
  462. package/src/styles/layout.css +64 -0
  463. package/src/styles/variables.css +85 -0
  464. package/src/typings.d.ts +4 -0
  465. package/src/utility/MockRouter/index.ts +45 -0
  466. package/src/utility/StorybookPanel/StorybookPanel.module.css +9 -0
  467. package/src/utility/StorybookPanel/index.tsx +25 -0
  468. package/src/utility/TestChangeHandler/TestChangeHandler.module.css +7 -0
  469. package/src/utility/TestChangeHandler/TestChangeHandler.spec.tsx +24 -0
  470. package/src/utility/TestChangeHandler/index.tsx +54 -0
  471. package/src/utility/create-app.tsx +29 -0
  472. package/src/utility/interfaces.ts +119 -0
  473. package/src/utility/prop-types.ts +67 -0
  474. package/tests/setupFilesAfterEnv.js +10 -0
  475. package/tsconfig.json +26 -0
  476. package/tsconfig.types.json +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../node_modules/regenerator-runtime/runtime.js","../src/utility/interfaces.ts","../node_modules/tslib/tslib.es6.js","../src/hooks/useAppContext.ts","../src/hooks/useLayout.ts","../src/core/Header/index.tsx","../src/core/AppHeader/index.tsx","../src/components/Link/index.tsx","../src/core/Assistive/index.tsx","../src/core/AppLogoPlaceholder/index.tsx","../src/core/AppLogoImage/index.tsx","../src/core/AppLogo/index.tsx","../src/components/Allow/index.tsx","../src/core/NavigationDivider/index.tsx","../src/core/NavigationItem/index.tsx","../src/core/Navigation/index.tsx","../src/hooks/useClickOutside.ts","../src/core/MePanel/index.tsx","../src/core/MeActions/index.tsx","../src/core/Banner/index.tsx","../src/components/ContentBlock/index.tsx","../src/hooks/useVariant.ts","../src/utility/prop-types.ts","../src/components/Button/index.tsx","../src/components/ModalActions/index.tsx","../node_modules/@heroicons/react/solid/esm/ArrowLeftIcon.js","../node_modules/@heroicons/react/solid/esm/ArrowRightIcon.js","../node_modules/@heroicons/react/solid/esm/CalendarIcon.js","../node_modules/@heroicons/react/solid/esm/CheckCircleIcon.js","../node_modules/@heroicons/react/solid/esm/CheckIcon.js","../node_modules/@heroicons/react/solid/esm/ChevronDownIcon.js","../node_modules/@heroicons/react/solid/esm/ExclamationCircleIcon.js","../node_modules/@heroicons/react/solid/esm/FilterIcon.js","../node_modules/@heroicons/react/solid/esm/UploadIcon.js","../node_modules/@heroicons/react/solid/esm/XIcon.js","../src/core/Icon/index.tsx","../src/core/IconButton/index.tsx","../src/core/CloseButton/index.tsx","../src/core/Modal/index.tsx","../src/hooks/useModal.ts","../src/core/ConfirmModal/index.tsx","../src/core/Loader/index.tsx","../src/core/RadialProgress/index.tsx","../src/core/Toast/index.tsx","../src/components/App/index.tsx","../src/utility/create-app.tsx","../src/core/Panel/index.tsx","../src/components/Alert/index.tsx","../src/core/ChkRadIcon/index.tsx","../src/core/DropdownPanel/index.tsx","../src/core/ErrorMessage/index.tsx","../src/core/InputPanel/index.tsx","../src/core/TextInputAncillary/index.tsx","../src/components/TextInput/index.tsx","../src/hooks/useAccessiblePanel.ts","../src/components/AutoSuggest/index.tsx","../src/services/FormatService.ts","../src/services/DateService.ts","../src/core/CalendarDay/index.tsx","../src/core/CalendarWeek/index.tsx","../src/core/CalendarMonth/index.tsx","../src/core/CalendarNavigation/index.tsx","../src/core/Calendar/index.tsx","../src/core/StaticTextInput/index.tsx","../src/components/CalendarInput/index.tsx","../src/core/ChkRad/index.tsx","../src/core/ChkRadList/index.tsx","../src/components/CheckboxList/index.tsx","../src/components/Dropdown/index.tsx","../src/components/ConnectedDropdown/index.tsx","../src/core/Styled/index.tsx","../src/core/SummaryListItem/index.tsx","../src/components/SummaryList/index.tsx","../src/core/EmptyMessage/index.tsx","../src/core/ConnectedRepeaterComponent/index.tsx","../src/core/FilterItem/index.tsx","../src/services/FilterService.ts","../src/hooks/useFilters.ts","../src/core/Filters/index.tsx","../src/core/ConnectedRepeater/index.tsx","../src/core/ListItemAction/index.tsx","../src/core/ListItemActions/index.tsx","../src/core/ListItemMetaItem/index.tsx","../src/core/ListItemTitle/index.tsx","../src/core/ListItem/index.tsx","../src/core/PaginationItem/index.tsx","../src/core/Pagination/index.tsx","../src/components/List/index.tsx","../src/components/ConnectedList/index.tsx","../src/core/Container/index.tsx","../src/core/ErrorBoundary/index.tsx","../src/core/Tabs/index.tsx","../src/services/ConfirmService.ts","../src/components/Scene/index.tsx","../src/components/ConnectedScene/index.tsx","../src/core/TableCell/index.tsx","../src/core/TableHead/index.tsx","../src/core/TableActionsCell/index.tsx","../src/core/TableRow/index.tsx","../src/components/Table/index.tsx","../src/components/ConnectedTable/index.tsx","../src/components/DateInput/index.tsx","../src/components/Document/index.tsx","../src/core/FormLegend/index.tsx","../src/components/Fieldset/index.tsx","../src/components/FileInput/index.tsx","../src/components/FilterLink/index.tsx","../src/components/Form/index.tsx","../src/core/FixedActions/index.tsx","../src/components/FormActions/index.tsx","../src/core/FormError/index.tsx","../src/core/FormLabel/index.tsx","../src/components/FormField/index.tsx","../src/components/FormRepeater/index.tsx","../src/components/ImageInput/index.tsx","../src/components/InfoPanel/index.tsx","../src/components/ListActions/index.tsx","../src/hooks/useFormData.ts","../src/services/ToastService.ts","../src/hooks/useForm.ts","../src/components/PasswordInput/index.tsx","../src/components/LoginForm/index.tsx","../src/components/Message/index.tsx","../src/components/MoneyInput/index.tsx","../src/components/PasswordForm/index.tsx","../src/components/RadioList/index.tsx","../src/components/Switch/index.tsx","../src/components/Tag/index.tsx","../src/components/TextArea/index.tsx","../src/components/WebsiteInput/index.tsx","../src/core/WeekCalendarDay/index.tsx","../src/components/WeekCalendar/index.tsx","../src/services/BuildService.ts","../src/hooks/useConnectedList.ts","../src/services/DownloadService.ts","../src/filters/BooleanFilter/index.tsx","../src/filters/DateFilter/index.tsx","../src/filters/DropdownFilter/index.tsx","../src/filters/QuickDateFilter/index.tsx","../src/services/FilterComponentService.tsx"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import type { FunctionComponent, KeyboardEventHandler, MouseEventHandler } from 'react';\nimport type { NextRouter } from 'next/router';\n\n/*\n * ---------------------------------------------------------------------------------\n * Interfaces\n * ---------------------------------------------------------------------------------\n */\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface LayoutComponent extends FunctionComponent<{ children: React.ReactNode }> {}\n\nexport interface SceneComponentType extends FunctionComponent<{ router: NextRouter }> {\n Layout?: LayoutComponent;\n hasLayout?: boolean;\n}\n\nexport interface SimpleAction {\n isDisabled?: boolean | null;\n label: string;\n onClick: () => void;\n variant?: ButtonVariant | ButtonVariant[];\n}\n\nexport interface NavigationObject {\n label: string;\n to?: string | null;\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>;\n permission?: string;\n}\n\nexport type Remote = string | [string, Record<string, string[] | string | null>];\n\nexport interface SimpleObject {\n id: number | string;\n name: string;\n}\n\ntype SimpleActionFunction = (data?: Record<string, unknown>) => SimpleAction[];\n\nexport interface TransformedObject {\n [key: string]: unknown;\n $id: number | string;\n $actions?: SimpleAction[] | SimpleActionFunction | null;\n $original?: Record<string, unknown>;\n}\n\nexport type Transformer<T = Record<string, unknown>> =\n | ((item: T) => TransformedObject)\n | [(item: T) => TransformedObject, SimpleAction[] | SimpleActionFunction];\n\nexport interface SimpleEventTarget<T = InputValue> {\n name: string;\n value: T;\n\n /*\n * These are added purely to get around `Form` element handling both `SimpleEvent` and\n * `React.ChangeEvent<HTMLInputElement>` in the same function.\n */\n readonly checked?: boolean;\n readonly type?: string;\n}\n\nexport type InputValue = File | InputValue[] | boolean | number | string | null;\n\nexport interface SimpleEvent<T = InputValue> {\n item?: SimpleObject;\n target: SimpleEventTarget<T>;\n}\n\nexport type SimpleEventHandler<P = InputValue, T = SimpleEvent<P>> = (event: T) => void;\n\nexport type StyleVariant =\n | 'bordered'\n | 'danger'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'tertiary'\n | 'warning';\n\nexport type ButtonVariant = StyleVariant | 'link';\n\nexport interface InputProps<T = InputValue, E = HTMLInputElement> {\n /** Whether or not the field has a validation error */\n hasError?: boolean;\n id?: string;\n isDisabled?: boolean;\n\n /** The name of the field */\n name: string;\n onChange?: SimpleEventHandler<T>;\n onKeyDown?: KeyboardEventHandler<E>;\n\n /** The value of the field */\n value?: T;\n}\n\nexport interface PaginationObject {\n activePage: number;\n pageCount: number;\n}\n\n/*\n * ---------------------------------------------------------------------------------\n * Checks\n * ---------------------------------------------------------------------------------\n */\n\nexport const isString = (variable: unknown): variable is string => typeof variable === 'string';\n\nexport const isStringArray = (variable: unknown): variable is string[] =>\n Array.isArray(variable) && (variable.length === 0 || isString(variable[0]));\n\nexport const isSimpleObject = (variable: unknown): variable is SimpleObject =>\n isString((variable as SimpleObject).name);\n\nexport const isSimpleObjectArray = (variable: unknown): variable is SimpleObject[] =>\n Array.isArray(variable) && (variable.length === 0 || isSimpleObject(variable[0]));\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { createContext, createElement, useContext } from 'react';\nimport merge from 'deepmerge';\nimport PropTypes from 'prop-types';\n\nimport type { NavigationObject } from '@utility/interfaces';\n\nexport interface Me {\n name: string;\n permissions?: string[];\n}\n\ninterface AppContextObject {\n auth: {\n identifier?: string;\n identifierLabel?: string;\n tfa?: boolean;\n } | null;\n Logo: React.ComponentType<{ isReverse?: boolean }> | null;\n me: Me | null;\n name: string;\n navigation: (NavigationObject | string)[];\n paths: { api?: string; app?: string };\n style: { brand?: string; layout?: string } | null;\n}\n\nexport interface Config extends Partial<AppContextObject> {\n name: AppContextObject['name'];\n}\n\nconst DEFAULTS: AppContextObject = {\n auth: {},\n Logo: null,\n me: null,\n name: '',\n navigation: [],\n paths: {},\n style: {},\n};\n\nconst AppContext = createContext(DEFAULTS);\n\ninterface AppContextProviderProps {\n children: React.ReactNode;\n value: Config;\n}\n\nexport const AppContextProvider: React.FunctionComponent<AppContextProviderProps> = ({\n children,\n value,\n}) => createElement(AppContext.Provider, { value: merge(DEFAULTS, value) }, children);\n\nAppContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.shape({\n auth: PropTypes.shape({}),\n Logo: PropTypes.func,\n me: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n name: PropTypes.string.isRequired,\n navigation: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n to: PropTypes.string,\n }).isRequired,\n PropTypes.string.isRequired,\n ]).isRequired\n ).isRequired,\n paths: PropTypes.shape({}).isRequired,\n style: PropTypes.shape({}),\n }).isRequired,\n};\n\nconst useAppContext = (): AppContextObject => useContext(AppContext);\n\nexport default useAppContext;\n","import { ucwords } from '@sqrzro/utility';\n\nimport useAppContext from '@hooks/useAppContext';\n\ninterface UseLayoutReturn {\n layout: string | null;\n applyLayoutClassName: (styles: Record<string, string>, prefix?: string) => string | null;\n}\n\nconst useLayout = (): UseLayoutReturn => {\n const { style } = useAppContext();\n\n const applyLayoutClassName = (\n styles: Record<string, string>,\n prefix = 'root'\n ): string | null => {\n const layout = style?.layout;\n\n if (!layout) {\n return null;\n }\n\n return styles[`${prefix}${ucwords(layout)}`] || null;\n };\n\n return { layout: style?.layout || null, applyLayoutClassName };\n};\n\nexport default useLayout;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport useLayout from '@hooks/useLayout';\n\nimport type { StyleVariant } from '@utility/interfaces';\n\nimport styles from './Header.module.css';\n\ninterface HeaderProps {\n title?: string | null;\n variant?: StyleVariant;\n}\n\nconst Header: React.FunctionComponent<HeaderProps> = ({ title, variant }) => {\n const { applyLayoutClassName } = useLayout();\n\n return (\n <header className={classNames(styles.root, applyLayoutClassName(styles))}>\n <h1\n className={classNames(styles.title, variant && styles[`title${ucwords(variant)}`])}\n data-testid=\"header-title\"\n >\n {title || '•••'}\n </h1>\n </header>\n );\n};\n\nHeader.propTypes = {\n title: PropTypes.string,\n};\n\nexport default Header;\n","import React, { useEffect, useState } from 'react';\n\nimport { EventService } from '@sqrzro/utility';\n\nimport Header from '@core/Header';\n\nconst AppHeader: React.FunctionComponent = () => {\n const [title, setTitle] = useState<string>();\n\n useEffect(() => {\n const sub = EventService.subscribe<string>('@app/title', (_key, data) => {\n setTitle(data);\n });\n\n return (): void => {\n EventService.unsubscribe(sub);\n };\n }, []);\n\n return <Header title={title} />;\n};\n\nexport default AppHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NextLink from 'next/link';\n\ninterface DataProps {\n 'data-test-id'?: string;\n}\n\ninterface LinkProps extends DataProps {\n children: React.ReactNode;\n className?: string;\n isNewWindow?: boolean;\n to: string;\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n}\n\nconst Link: React.FunctionComponent<LinkProps> = ({\n children,\n className,\n isNewWindow,\n onClick,\n to,\n ...dataProps\n}) => {\n const newWindowProps = isNewWindow ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n const props = { ...newWindowProps, ...dataProps, className, onClick };\n\n if (/^http/u.exec(to) || /^mailto:/u.exec(to) || /^tel:/u.exec(to)) {\n return (\n <a href={to} {...props}>\n {children}\n </a>\n );\n }\n\n return (\n <NextLink href={/^\\//u.exec(to) ? to : `/${to}`}>\n <a {...props}>{children}</a>\n </NextLink>\n );\n};\n\nLink.propTypes = {\n children: PropTypes.node.isRequired,\n to: PropTypes.string.isRequired,\n className: PropTypes.string,\n isNewWindow: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nexport default Link;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './Assistive.module.css';\n\ninterface AssistiveProps {\n children: React.ReactNode;\n}\n\nconst Assistive: React.FunctionComponent<AssistiveProps> = ({ children }) => (\n <span className={styles.root}>{children}</span>\n);\n\nAssistive.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Assistive;\n","/* eslint-disable max-len */\n\nimport React from 'react';\n\nconst AppLogoPlaceholder: React.FunctionComponent = () => (\n <svg height=\"58\" viewBox=\"0 0 58 58\" width=\"58\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.2738 41.615C8.73625 38.0625 7.25 33.7125 7.25 29C7.25 17.0375 17.0375 7.25 29 7.25C33.7125 7.25 38.0625 8.73625 41.615 11.2738L49.8075 3.08125C50.9312 1.9575 50.1338 0 48.5387 0H7.25C3.2625 0 0 3.2625 0 7.25V48.5025C0 50.1338 1.9575 50.9313 3.08125 49.7713L11.2738 41.615Z\"\n fill=\"white\"\n />\n <path\n d=\"M43.4637 30.0512C43.6812 26.97 42.92 24.07 41.47 21.6412L21.6412 41.47C24.07 42.92 26.97 43.6812 30.0512 43.4637C37.1925 42.9562 42.9562 37.1925 43.4637 30.0512Z\"\n fill=\"white\"\n />\n <path\n d=\"M46.7263 16.385C49.2638 19.9375 50.75 24.2875 50.75 29C50.75 40.9625 40.9625 50.75 29 50.75C24.2875 50.75 19.9375 49.2638 16.385 46.7263L8.19251 54.9188C7.06876 56.0425 7.86626 58 9.46126 58H50.75C54.7375 58 58 54.7375 58 50.75V9.49751C58 7.86626 56.0425 7.06876 54.9188 8.22876L46.7263 16.385Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.5362 27.9488C14.3187 31.03 15.08 33.93 16.53 36.3588L36.3587 16.53C33.93 15.08 31.03 14.3188 27.9487 14.5363C20.8075 15.0438 15.0437 20.8075 14.5362 27.9488Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default AppLogoPlaceholder;\n","import React, { Fragment } from 'react';\n\nimport useAppContext from '@hooks/useAppContext';\n\nimport Assistive from '@core/Assistive';\nimport AppLogoPlaceholder from '@core/AppLogoPlaceholder';\n\nconst AppLogoImage: React.FunctionComponent = () => {\n const { Logo, name } = useAppContext();\n\n return (\n <Fragment>\n <Assistive>{name}</Assistive>\n {Logo ? <Logo /> : <AppLogoPlaceholder />}\n </Fragment>\n );\n};\n\nexport default AppLogoImage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\nimport AppLogoImage from '@core/AppLogoImage';\n\nimport styles from './AppLogo.module.css';\n\ninterface AppLogoProps {\n isLink?: boolean;\n}\n\nconst AppLogo: React.FunctionComponent<AppLogoProps> = ({ isLink }) => {\n if (isLink) {\n return (\n <Link className={styles.root} to=\"/\">\n <AppLogoImage />\n </Link>\n );\n }\n\n return (\n <div className={styles.root}>\n <AppLogoImage />\n </div>\n );\n};\n\nAppLogo.propTypes = {\n isLink: PropTypes.bool,\n};\n\nexport default AppLogo;\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useAppContext from '@hooks/useAppContext';\nimport type { Me } from '@hooks/useAppContext';\n\ninterface AllowProps {\n children: React.ReactNode;\n permission?: string;\n}\n\nconst hasPermission = (me: Me, permission?: string): boolean => {\n if (!me.permissions || !permission) {\n return true;\n }\n return me.permissions.includes(permission);\n};\n\n/**\n * The `Allow` component is essentially a wrappy that lets a developer display or hide child content\n * based on the permissions a particular user has.\n *\n * By default, the\n */\nconst Allow: React.FunctionComponent<AllowProps> = ({ children, permission }) => {\n const { me } = useAppContext();\n\n if (!me || !hasPermission(me, permission)) {\n return null;\n }\n\n // Use the `Fragment` here to get around TS complaining about FunctionComponent\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <Fragment>{children}</Fragment>;\n};\n\nAllow.propTypes = {\n children: PropTypes.node.isRequired,\n permission: PropTypes.string,\n};\n\nexport default Allow;\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport useLayout from '@hooks/useLayout';\n\nimport styles from './NavigationDivider.module.css';\n\nconst NavigationDivider: React.FunctionComponent = () => {\n const { applyLayoutClassName } = useLayout();\n return <li className={classNames(styles.root, applyLayoutClassName(styles))}>-</li>;\n};\n\nexport default NavigationDivider;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\nimport useLayout from '@hooks/useLayout';\n\nimport type { NavigationObject } from '@utility/interfaces';\n\nimport styles from './NavigationItem.module.css';\n\ninterface NavigationItemProps extends NavigationObject {\n isActive?: boolean;\n}\n\nconst NavigationItem: React.FunctionComponent<NavigationItemProps> = ({\n isActive,\n label,\n to,\n onClick,\n}) => {\n const { applyLayoutClassName } = useLayout();\n const rootClass = classNames(styles.root, applyLayoutClassName(styles));\n\n if (to) {\n return (\n <li className={rootClass}>\n <Link\n className={classNames(\n styles.link,\n applyLayoutClassName(styles, 'link'),\n isActive && styles.linkIsActive\n )}\n onClick={onClick}\n to={to}\n >\n {label}\n </Link>\n </li>\n );\n }\n\n return (\n <li className={rootClass}>\n <button className={styles.link} onClick={onClick} type=\"button\">\n {label}\n </button>\n </li>\n );\n};\n\nNavigationItem.propTypes = {\n label: PropTypes.string.isRequired,\n isActive: PropTypes.bool,\n to: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default NavigationItem;\n","import React, { Fragment, useState } from 'react';\nimport classNames from 'classnames';\nimport { useRouter } from 'next/router';\nimport type { NextRouter } from 'next/router';\n\nimport useAppContext from '@hooks/useAppContext';\nimport useLayout from '@hooks/useLayout';\n\nimport Allow from '@components/Allow';\n\nimport NavigationDivider from '@core/NavigationDivider';\nimport NavigationItem from '@core/NavigationItem';\n\nimport type { NavigationObject } from '@utility/interfaces';\n\nimport styles from './Navigation.module.css';\n\nconst checkActiveRoute = (router: NextRouter, route: string): boolean => {\n if (!router || route === '') {\n return false;\n }\n\n const rgx = new RegExp(`^/${route.replace(/^\\//u, '')}.*`, 'iu');\n return Boolean(rgx.exec(router.asPath));\n};\n\nconst getActiveRoute = (router: NextRouter, navigation: (NavigationObject | string)[]): string => {\n const activeRoutes = navigation\n .map((item: NavigationObject | string): string => {\n if (typeof item === 'string' || !item.to) {\n return '';\n }\n\n return item.to;\n })\n .filter((item: string) => checkActiveRoute(router, item))\n /*\n * Sorting by length descending ensures that we get the most 'specific' route. For example,\n * if there were routes for `lorem` and `lorem/ipsum` in the navigation, we would only want\n * to highlight `lorem/ipsum` if it was the active route.\n */\n .sort((first: string, second: string) => second.length - first.length);\n\n return activeRoutes[0];\n};\n\nconst Navigation: React.FunctionComponent = () => {\n const { navigation } = useAppContext();\n const { applyLayoutClassName } = useLayout();\n const router = useRouter();\n\n const activeRoute = getActiveRoute(router, navigation);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n const handleClick = (\n event: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n item: NavigationObject\n ): void => {\n setIsOpen(false);\n\n if (item.onClick) {\n item.onClick(event);\n }\n };\n\n return (\n <Fragment>\n <button\n className={classNames(styles.control, isOpen && styles.controlIsOpen)}\n onClick={toggleIsOpen}\n type=\"button\"\n >\n {isOpen ? 'Close' : 'Open'}\n </button>\n <ul\n className={classNames(\n styles.root,\n applyLayoutClassName(styles),\n isOpen && styles.rootIsOpen\n )}\n >\n {navigation.map((item, index) => {\n if (typeof item === 'string') {\n // eslint-disable-next-line react/no-array-index-key\n return <NavigationDivider key={index} />;\n }\n\n return (\n <Allow\n key={item.to || item.onClick?.toString() || '.'}\n permission={item.permission}\n >\n <NavigationItem\n {...item}\n isActive={item.to === activeRoute}\n onClick={(event): void => handleClick(event, item)}\n />\n </Allow>\n );\n })}\n </ul>\n </Fragment>\n );\n};\n\nexport default Navigation;\n","import { useEffect, useRef, useState } from 'react';\nimport type { MutableRefObject } from 'react';\n\nconst useClickOutside = (): [\n boolean,\n (bool: boolean) => void,\n MutableRefObject<HTMLDivElement | null>\n] => {\n let mounted = true;\n\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const node = useRef<HTMLDivElement>(null);\n\n const handleClickOutside = (event: Event): void => {\n if (node.current?.contains(event.target as HTMLDivElement)) {\n return;\n }\n setTimeout(() => {\n if (mounted) {\n setIsOpen(false);\n }\n });\n };\n\n const handleEscapeKey = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n setTimeout(() => {\n if (mounted) {\n setIsOpen(false);\n }\n });\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n document.addEventListener('keydown', handleEscapeKey);\n\n return (): void => {\n mounted = false;\n document.removeEventListener('click', handleClickOutside);\n document.removeEventListener('keydown', handleEscapeKey);\n };\n }, []);\n\n return [isOpen, (bool: boolean): void => setIsOpen(bool), node];\n};\n\nexport default useClickOutside;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { AuthService } from '@sqrzro/utility';\n\nimport useLayout from '@hooks/useLayout';\n\nimport styles from './MePanel.module.css';\n\ninterface MePanelProps {\n data: { name: string };\n isOpen?: boolean;\n}\n\nconst MePanel: React.FunctionComponent<MePanelProps> = ({ data, isOpen }) => {\n const { applyLayoutClassName } = useLayout();\n\n return (\n <aside\n className={classNames(\n styles.root,\n applyLayoutClassName(styles),\n isOpen && styles.rootIsOpen\n )}\n data-testid=\"me-panel-root\"\n >\n <h2 className={styles.title} data-testid=\"me-panel-title\">\n {data.name}\n </h2>\n <button className={styles.action} onClick={AuthService.logout} type=\"button\">\n Sign Out\n </button>\n </aside>\n );\n};\n\nMePanel.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n isOpen: PropTypes.bool,\n};\n\nexport default MePanel;\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport useAppContext from '@hooks/useAppContext';\nimport useLayout from '@hooks/useLayout';\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport MePanel from '@core/MePanel';\n\nimport styles from './MeActions.module.css';\n\nconst getInitials = (name: string): string =>\n name\n .split(' ')\n .map((item: string) => item[0])\n .join('');\n\nconst MeActions: React.FunctionComponent = () => {\n const { me } = useAppContext();\n const { applyLayoutClassName } = useLayout();\n const [isOpen, setIsOpen, node] = useClickOutside();\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n /**\n * This component will never render if there is no `me` (as it is never called from the `App`\n * component). However, because `me` needs to possibly be null in the AppContext, we need to\n * check for it here. This code is purely for typescript checking, will never be run, and\n * can be ignored by coverage.\n */\n /* istanbul ignore next */\n if (!me) {\n return null;\n }\n\n return (\n <div ref={node} className={classNames(styles.root, applyLayoutClassName(styles))}>\n <button className={styles.name} onClick={toggleIsOpen} tabIndex={999} type=\"button\">\n <abbr title={me.name}>{getInitials(me.name)}</abbr>\n </button>\n <MePanel data={me} isOpen={isOpen} />\n </div>\n );\n};\n\nexport default MeActions;\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport AppLogo from '@core/AppLogo';\nimport Navigation from '@core/Navigation';\nimport MeActions from '@core/MeActions';\nimport useLayout from '@hooks/useLayout';\n\nimport styles from './Banner.module.css';\n\nconst Banner: React.FunctionComponent = () => {\n const { applyLayoutClassName } = useLayout();\n\n return (\n <header className={classNames(styles.root, applyLayoutClassName(styles))}>\n <div className={classNames(styles.logo, applyLayoutClassName(styles, 'logo'))}>\n <AppLogo isLink />\n </div>\n <Navigation />\n <MeActions />\n </header>\n );\n};\n\nexport default Banner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './ContentBlock.module.css';\n\ninterface ContentBlockProps {\n children: React.ReactNode;\n}\n\nconst ContentBlock: React.FunctionComponent<ContentBlockProps> = ({ children }) => (\n <div className={styles.root}>{children}</div>\n);\n\nContentBlock.propTypes = { children: PropTypes.node.isRequired };\n\nexport default ContentBlock;\n","import { isString, isStringArray } from '@utility/interfaces';\nimport type { StyleVariant } from '@utility/interfaces';\n\nimport { ucwords } from '@sqrzro/utility';\n\ninterface UseVariantReturn {\n applyVariantClassName: (styles: Record<string, string>, prefix?: string) => string | null;\n}\n\nconst useVariant = <T = StyleVariant>(variant?: T | T[]): UseVariantReturn => {\n const applyVariantClassName = (\n styles: Record<string, string>,\n prefix = 'root'\n ): string | null => {\n if (!variant || (!isString(variant) && !isStringArray(variant))) {\n return null;\n }\n\n if (!Array.isArray(variant)) {\n return styles[`${prefix}${ucwords(variant)}`];\n }\n\n const orderedVariant = variant\n .map((item) => ucwords(isString(item) ? item : ''))\n .sort((first, second) => first.localeCompare(second))\n .join('');\n\n return styles[`${prefix}${orderedVariant}`];\n };\n\n return { applyVariantClassName };\n};\n\nexport default useVariant;\n","import PropTypes from 'prop-types';\n\nimport type { ButtonVariant, StyleVariant } from '@utility/interfaces';\n\nexport const NextRouterPropType = PropTypes.shape({\n asPath: PropTypes.string.isRequired,\n back: PropTypes.func.isRequired,\n basePath: PropTypes.string.isRequired,\n beforePopState: PropTypes.func.isRequired,\n events: PropTypes.shape({\n emit: PropTypes.func.isRequired,\n off: PropTypes.func.isRequired,\n on: PropTypes.func.isRequired,\n }).isRequired,\n isFallback: PropTypes.bool.isRequired,\n isLocaleDomain: PropTypes.bool.isRequired,\n isPreview: PropTypes.bool.isRequired,\n isReady: PropTypes.bool.isRequired,\n pathname: PropTypes.string.isRequired,\n prefetch: PropTypes.func.isRequired,\n push: PropTypes.func.isRequired,\n query: PropTypes.shape({}).isRequired,\n reload: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired,\n route: PropTypes.string.isRequired,\n});\n\nconst styleVariantPropTypes: StyleVariant[] = [\n 'bordered',\n 'danger',\n 'primary',\n 'secondary',\n 'success',\n 'tertiary',\n];\n\nconst buttonVariantPropTypes: ButtonVariant[] = [...styleVariantPropTypes, 'link'];\n\nexport const StyleVariantPropType = PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf(styleVariantPropTypes).isRequired),\n PropTypes.oneOf(styleVariantPropTypes).isRequired,\n]);\n\nexport const ButtonVariantPropType = PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf(buttonVariantPropTypes).isRequired),\n PropTypes.oneOf(buttonVariantPropTypes).isRequired,\n]);\n\nexport const AppPropTypes = {\n Component: PropTypes.func.isRequired,\n config: PropTypes.shape({\n auth: PropTypes.shape({}),\n name: PropTypes.string.isRequired,\n navigation: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n to: PropTypes.string,\n }).isRequired,\n PropTypes.string.isRequired,\n ]).isRequired\n ).isRequired,\n paths: PropTypes.shape({}).isRequired,\n style: PropTypes.shape({}),\n }),\n Logo: PropTypes.func,\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\n\nimport useVariant from '@hooks/useVariant';\n\nimport type { ButtonVariant } from '@utility/interfaces';\nimport { ButtonVariantPropType } from '@utility/prop-types';\n\nimport styles from './Button.module.css';\n\nexport interface ButtonProps {\n /** Probably the button text, but could be any HTML element or React component */\n children: React.ReactNode;\n\n /** If set to true, the Button will be greyed out and non-interactive */\n isDisabled?: boolean | null;\n isFullWidth?: boolean | null;\n onClick?: React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>;\n\n /** If specified, the Button will be created as a Link element. */\n to?: string;\n\n /** The type of button. Button's with a type of `submit` will submit a parent form */\n type?: 'button' | 'submit';\n\n /** With the exception of `bordered` these variants correspond to the theme colours */\n variant?: ButtonVariant | ButtonVariant[];\n}\n\n/**\n * Either a `Link` component or a `button` element, depending on whether a `to` prop is specified.\n *\n * As a `Link`, it provides navigation between pages, and as a `button` it will handle the\n * `onClick` function when clicked (if one is specified).\n *\n * ## to & onClick\n *\n * Although it is possible to omit both the `to` and `onClick` props, there will\n * be nearly zero situations where this would be useful. It is also possible to include both props.\n * This will create a `Link` component, and handle the `onClick` function before navigation.\n *\n * ## Styles\n *\n * The `Button` will stretch to the full width of its parent element. If you wish to have a smaller\n * width, you can wrap it in a `div`, and then wrap that `div` in a component with a flex property.\n * Components like `ListActions` and `ModalActions` do this for you.\n */\nconst Button: React.FunctionComponent<ButtonProps> = ({\n to,\n children,\n type,\n variant,\n isDisabled,\n isFullWidth,\n onClick,\n}) => {\n const { applyVariantClassName } = useVariant<ButtonVariant>(variant);\n\n const className = classNames(\n styles.root,\n applyVariantClassName(styles),\n isDisabled && styles.rootIsDisabled,\n isFullWidth && styles.rootIsFullWidth\n );\n\n if (to) {\n return (\n <Link className={className} onClick={onClick} to={to}>\n {children}\n </Link>\n );\n }\n\n return (\n <button\n className={className}\n disabled={isDisabled || false}\n onClick={onClick}\n type={type === 'submit' ? 'submit' : 'button'}\n >\n {children}\n </button>\n );\n};\n\nButton.propTypes = {\n children: PropTypes.node.isRequired,\n isDisabled: PropTypes.bool,\n isFullWidth: PropTypes.bool,\n to: PropTypes.string,\n type: PropTypes.oneOf(['button', 'submit']),\n variant: ButtonVariantPropType,\n onClick: PropTypes.func,\n};\n\nexport default Button;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@components/Button';\nimport type { ButtonVariant } from '@utility/interfaces';\nimport { ButtonVariantPropType } from '@utility/prop-types';\n\nimport styles from './ModalActions.module.css';\n\ninterface ModalActionsProps {\n isDisabled?: boolean;\n isLoading?: boolean;\n label: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n variant?: ButtonVariant | ButtonVariant[];\n}\n\nconst ModalActions: React.FunctionComponent<ModalActionsProps> = ({\n label,\n isDisabled,\n isLoading,\n onClick,\n variant,\n}) => (\n <div className={styles.root}>\n <div>\n <Button\n isDisabled={isDisabled || isLoading}\n onClick={onClick}\n type={onClick ? 'button' : 'submit'}\n variant={variant}\n >\n {isLoading ? 'Saving...' : label}\n </Button>\n </div>\n </div>\n);\n\nModalActions.propTypes = {\n label: PropTypes.string.isRequired,\n isDisabled: PropTypes.bool,\n isLoading: PropTypes.bool,\n variant: ButtonVariantPropType,\n onClick: PropTypes.func,\n};\n\nexport default ModalActions;\n","import * as React from \"react\";\n\nfunction ArrowLeftIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowLeftIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ArrowRightIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ArrowRightIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction CalendarIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CalendarIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction CheckCircleIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CheckCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction CheckIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(CheckIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ChevronDownIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDownIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ExclamationCircleIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ExclamationCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction FilterIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(FilterIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction UploadIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(UploadIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction XIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(XIcon);\nexport default ForwardRef;","/* eslint-disable react/forbid-component-props */\n\nimport React from 'react';\nimport {\n ArrowLeftIcon,\n ArrowRightIcon,\n CalendarIcon,\n CheckCircleIcon,\n CheckIcon,\n ChevronDownIcon,\n ExclamationCircleIcon,\n FilterIcon,\n UploadIcon,\n XIcon,\n} from '@heroicons/react/solid';\nimport PropTypes from 'prop-types';\n\nconst DEFAULT_SIZE = 20;\n\ninterface Props extends React.SVGProps<SVGSVGElement> {\n size?: number;\n}\n\nconst iconMap: Record<string, (props: Props) => JSX.Element> = {\n arrowLeft: ArrowLeftIcon,\n arrowRight: ArrowRightIcon,\n calendar: CalendarIcon,\n checkCircle: CheckCircleIcon,\n check: CheckIcon,\n chevronDown: ChevronDownIcon,\n exclamationCircle: ExclamationCircleIcon,\n filter: FilterIcon,\n upload: UploadIcon,\n x: XIcon, // eslint-disable-line id-length\n};\n\ninterface IconProps {\n icon: string;\n size?: number;\n}\n\nconst Icon: React.FunctionComponent<IconProps> = ({ icon, size }) => {\n const Component = iconMap[icon];\n\n return Component ? (\n <Component\n data-testid=\"icon-root\"\n role=\"img\"\n style={{\n display: 'block',\n fill: 'inherit',\n stroke: 'inherit',\n width: `${size || DEFAULT_SIZE}px`,\n }}\n />\n ) : null;\n};\n\nIcon.propTypes = {\n icon: PropTypes.string.isRequired,\n size: PropTypes.number,\n};\n\nexport default Icon;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport Assistive from '@core/Assistive';\nimport Icon from '@core/Icon';\n\nimport styles from './IconButton.module.css';\n\nconst iconSizeMap: Record<string, number> = { sm: 16, md: 24 };\n\ninterface IconButtonProps {\n children: React.ReactNode;\n icon: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n // eslint-disable-next-line @typescript-eslint/sort-type-union-intersection-members\n size?: 'sm' | 'md' | 'lg';\n type?: 'button' | 'submit';\n variant?: 'white';\n}\n\nconst IconButton: React.FunctionComponent<IconButtonProps> = ({\n children,\n icon,\n onClick,\n size,\n type,\n variant,\n}) => (\n <button\n className={classNames(\n styles.root,\n styles[`root${ucwords(size || 'md')}`],\n variant && styles[`root${ucwords(variant)}`]\n )}\n onClick={onClick}\n type={type === 'submit' ? 'submit' : 'button'}\n >\n <Icon icon={icon} size={iconSizeMap[size || 'md']} />\n <Assistive>{children}</Assistive>\n </button>\n);\n\nIconButton.propTypes = {\n children: PropTypes.node.isRequired,\n icon: PropTypes.string.isRequired,\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n type: PropTypes.oneOf(['button', 'submit']),\n variant: PropTypes.oneOf(['white']),\n onClick: PropTypes.func,\n};\n\nexport default IconButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconButton from '@core/IconButton';\n\ninterface CloseButtonProps {\n label?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n // eslint-disable-next-line @typescript-eslint/sort-type-union-intersection-members\n size?: 'sm' | 'md' | 'lg';\n type?: 'button' | 'submit';\n}\n\nconst CloseButton: React.FunctionComponent<CloseButtonProps> = ({\n label = 'Close',\n onClick,\n size,\n type,\n}) => (\n <IconButton icon=\"x\" onClick={onClick} size={size} type={type}>\n {label}\n </IconButton>\n);\n\nCloseButton.propTypes = {\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n type: PropTypes.oneOf(['button', 'submit']),\n onClick: PropTypes.func,\n};\n\nexport default CloseButton;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport CloseButton from '@core/CloseButton';\nimport Header from '@core/Header';\n\nimport type { StyleVariant } from '@utility/interfaces';\n\nimport styles from './Modal.module.css';\n\nexport interface ModalProps {\n children: React.ReactNode;\n isOpen?: boolean;\n title?: string;\n variant?: StyleVariant;\n width?: string;\n onClose?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst Modal: React.FunctionComponent<ModalProps> = ({\n children,\n isOpen,\n title,\n variant,\n width,\n onClose,\n}) => {\n if (!isOpen) {\n return null;\n }\n\n const handleClose = (event: React.MouseEvent<HTMLButtonElement>): void => {\n if (onClose) {\n onClose(event);\n }\n };\n\n return (\n <div className={styles.root} data-testid=\"modal-root\">\n <i className={styles.overlay} />\n <div\n className={classNames(styles.panel, styles[`panel${ucwords(width || 'md')}`])}\n data-testid=\"modal-panel\"\n >\n {title ? <Header title={title} variant={variant} /> : null}\n <div className={styles.content}>{children}</div>\n <i className={styles.close}>\n <CloseButton onClick={handleClose} />\n </i>\n </div>\n </div>\n );\n};\n\nModal.propTypes = {\n children: PropTypes.node.isRequired,\n isOpen: PropTypes.bool,\n title: PropTypes.string,\n width: PropTypes.oneOf(['sm', 'md', 'lg', 'xl']),\n onClose: PropTypes.func,\n};\n\nexport default Modal;\n","import { createElement, useCallback, useLayoutEffect, useState } from 'react';\n\nimport Modal from '@core/Modal';\nimport type { ModalProps } from '@core/Modal';\n\ninterface UseModalOptions {\n onClose?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\ninterface UseModalReturn {\n closeModal: () => void;\n Modal: React.FunctionComponent<ModalProps>;\n openModal: () => void;\n}\n\nconst useModal = (options?: UseModalOptions): UseModalReturn => {\n const [isOpen, setIsOpen] = useState(false);\n const [offset, setOffset] = useState(0);\n\n useLayoutEffect(() => {\n /*\n * Using document body in jest is complex. This can be ignored by test coverage for now.\n */\n /* istanbul ignore next */\n if (document.body.firstChild) {\n const wrap = document.body.firstChild as HTMLDivElement;\n setOffset(window.innerWidth - wrap.offsetWidth);\n }\n }, []);\n\n useLayoutEffect(() => {\n /*\n * Using document body in jest is complex. This can be ignored by test coverage for now.\n */\n /* istanbul ignore next */\n if (document.body.firstChild) {\n document.body.style.overflowY = isOpen ? 'hidden' : 'scroll';\n const wrap = document.body.firstChild as HTMLDivElement;\n wrap.style.marginRight = isOpen ? `${offset}px` : '0';\n }\n }, [isOpen]);\n\n const handleClose = (event: React.MouseEvent<HTMLButtonElement>): void => {\n setIsOpen(false);\n\n if (options?.onClose) {\n options.onClose(event);\n }\n };\n\n const modalProps: ModalProps = { children: false, isOpen, onClose: handleClose };\n\n return {\n closeModal: (): void => setIsOpen(false),\n Modal: useCallback((props) => createElement(Modal, { ...modalProps, ...props }), [isOpen]),\n openModal: (): void => setIsOpen(true),\n };\n};\n\nexport default useModal;\n","import React, { useEffect, useState } from 'react';\n\nimport { EventService } from '@sqrzro/utility';\n\nimport type { ConfirmModalData } from '@services/ConfirmService';\n\nimport ContentBlock from '@components/ContentBlock';\nimport ModalActions from '@components/ModalActions';\n\nimport useModal from '@hooks/useModal';\n\nconst ConfirmModal: React.FunctionComponent = () => {\n const [data, setData] = useState<ConfirmModalData | null>(null);\n const { closeModal, Modal, openModal } = useModal();\n\n const handleConfirm = (): void => {\n if (data?.onConfirm) {\n data.onConfirm();\n }\n closeModal();\n };\n\n const handleData = (_key: string, responseData: ConfirmModalData | null): void => {\n setData(responseData);\n\n if (responseData) {\n openModal();\n }\n };\n\n useEffect(() => {\n const sub = EventService.subscribe<ConfirmModalData | null>('@confirm/send', handleData);\n\n return (): void => {\n EventService.unsubscribe(sub);\n };\n }, []);\n\n return (\n <Modal title=\"Are You Sure?\" variant=\"danger\">\n {data?.description ? <ContentBlock>{data.description}</ContentBlock> : null}\n <ModalActions\n label={data?.label || 'Confirm'}\n onClick={handleConfirm}\n variant=\"danger\"\n />\n </Modal>\n );\n};\n\nexport default ConfirmModal;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport styles from './Loader.module.css';\n\ninterface LoaderProps {\n isMini?: boolean;\n}\n\nconst Loader: React.FunctionComponent<LoaderProps> = ({ isMini }) => (\n <p className={classNames(styles.root, isMini && styles.rootIsMini)}>\n <span>Loading...</span>\n <i />\n <i />\n <i />\n </p>\n);\n\nLoader.propTypes = {\n /**\n * If true, displays the `Loader` at a smaller size, for use in components like `AutoSuggest`\n */\n isMini: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport Icon from '@core/Icon';\n\nimport styles from './RadialProgress.module.css';\n\nconst DURATION_FACTOR = 2000;\n\ninterface RadialProgressProps {\n duration: number;\n icon: string;\n variant?: string;\n}\n\nconst RadialProgress: React.FunctionComponent<RadialProgressProps> = ({\n duration,\n icon,\n variant,\n}) => {\n const adjustedDuration = duration / DURATION_FACTOR;\n\n return (\n <div className={styles.root}>\n <div className={styles.semi1} style={{ animationDuration: `${adjustedDuration}s` }} />\n <div\n className={classNames(styles.mask, variant && styles[`mask${ucwords(variant)}`])}\n />\n <div\n className={styles.semi2}\n style={{\n animationDuration: `${adjustedDuration}s`,\n animationDelay: `${adjustedDuration}s`,\n }}\n />\n <div className={classNames(styles.icon, variant && styles[`icon${ucwords(variant)}`])}>\n <Icon icon={icon} size={30} />\n </div>\n </div>\n );\n};\n\nRadialProgress.propTypes = {\n duration: PropTypes.number.isRequired,\n icon: PropTypes.string.isRequired,\n variant: PropTypes.string,\n};\n\nexport default RadialProgress;\n","import React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { EventService, ucwords } from '@sqrzro/utility';\n\nimport IconButton from '@core/IconButton';\nimport RadialProgress from '@core/RadialProgress';\n\nimport styles from './Toast.module.css';\n\nconst TTL = 6000;\n\nconst iconMap: Record<string, string> = {\n success: 'checkCircle',\n error: 'exclamationCircle',\n};\n\nconst Toast: React.FunctionComponent = () => {\n const timeout = useRef<number>();\n\n const [type, setType] = useState('');\n const [message, setMessage] = useState('');\n\n const closeToast = (existingType: string): void => {\n EventService.publish('@toast/send', { type: existingType });\n window.clearTimeout(timeout.current);\n };\n\n useEffect(() => {\n const sub = EventService.subscribe<{ message: string; type: string }>(\n '@toast/send',\n (_key, data) => {\n setType(data.type);\n setMessage(data.message);\n\n if (timeout.current) {\n window.clearTimeout(timeout.current);\n }\n\n /*\n * A test checks if setTimeout is called in this circumstance. However, due to the\n * nature of asynchronous code in tests, coverage does not count this as covered. It\n * can therefore be safely ignored.\n */\n /* istanbul ignore next */\n timeout.current = window.setTimeout(() => closeToast(data.type), TTL);\n }\n );\n\n return (): void => {\n EventService.unsubscribe(sub);\n };\n }, []);\n\n return (\n <aside\n className={classNames(\n styles.root,\n message && styles.rootIsOpen,\n type && styles[`root${ucwords(type)}`]\n )}\n data-testid=\"toast-root\"\n >\n <div className={styles.inner}>\n {message ? (\n <div className={styles.progress}>\n <RadialProgress duration={TTL} icon={iconMap[type]} variant={type} />\n </div>\n ) : null}\n <p className={styles.content}>{message}</p>\n <div className={styles.close}>\n <IconButton icon=\"x\" onClick={(): void => closeToast(type)} variant=\"white\">\n Close\n </IconButton>\n </div>\n </div>\n </aside>\n );\n};\n\nexport default Toast;\n","import React, { useEffect, useState } from 'react';\nimport type { AppContext, AppInitialProps } from 'next/app';\nimport type { NextRouter } from 'next/router';\nimport classNames from 'classnames';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport { AppContextProvider } from '@hooks/useAppContext';\nimport type { Config, Me } from '@hooks/useAppContext';\n\nimport AppHeader from '@core/AppHeader';\nimport Banner from '@core/Banner';\nimport ConfirmModal from '@core/ConfirmModal';\nimport Loader from '@core/Loader';\nimport Toast from '@core/Toast';\n\nimport 'modern-normalize';\nimport '../../styles/variables.css';\nimport '../../styles/layout.css';\n\nimport type { SceneComponentType } from '@utility/interfaces';\nimport { AppPropTypes } from '@utility/prop-types';\n\nimport styles from './App.module.css';\n\nconst AUTH_ROUTE = '/auth/';\n\nexport interface AppProps {\n Component: SceneComponentType;\n Logo?: React.ComponentType | null;\n config?: Config;\n router: NextRouter;\n}\n\nexport type AppType = React.FunctionComponent<AppProps> & {\n getInitialProps: (context: AppContext) => Promise<AppInitialProps>;\n};\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst App: React.FunctionComponent<AppProps> = ({\n Component,\n config,\n Logo,\n router,\n ...pageProps\n}) => {\n const [me, setMe] = useState<Me>();\n\n const getMe = async (): Promise<void> => {\n try {\n const response = await ApiService.get('me');\n setMe({ name: '', ...response.data } as Me);\n } catch (err) {} // eslint-disable-line no-empty\n };\n\n useEffect(() => {\n void getMe();\n }, []);\n\n if (!config || (!me && !router.route.startsWith(AUTH_ROUTE))) {\n return (\n <div className={styles.loader}>\n <Loader />\n </div>\n );\n }\n\n const { brand, layout } = config.style || {};\n\n if (Component.hasLayout === false) {\n return (\n <AppContextProvider value={{ ...config, Logo, me }}>\n {typeof brand !== 'undefined' && (\n <style data-testid=\"app-brand\">{`:root { --clr-brand: ${brand} }`}</style>\n )}\n <Component router={router} {...pageProps} />\n <Toast />\n </AppContextProvider>\n );\n }\n\n return (\n <AppContextProvider value={{ ...config, Logo, me }}>\n {typeof brand !== 'undefined' && (\n <style data-testid=\"app-brand\">{`:root { --clr-brand: ${brand} }`}</style>\n )}\n <div className={styles.root}>\n <Banner />\n <main className={classNames(styles.main, layout === 'topbar' && styles.mainTopbar)}>\n <AppHeader />\n {Component.Layout ? (\n <Component.Layout>\n <Component router={router} {...pageProps} />\n </Component.Layout>\n ) : (\n <Component router={router} {...pageProps} />\n )}\n </main>\n </div>\n <ConfirmModal />\n <Toast />\n </AppContextProvider>\n );\n};\n\nApp.propTypes = AppPropTypes;\n\nexport default App;\n","import React from 'react';\nimport type { AppInitialProps } from 'next/app';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport App from '@components/App';\nimport type { AppType } from '@components/App';\nimport type { Config } from '@hooks/useAppContext';\nimport { AppPropTypes } from '@utility/prop-types';\n\nconst createApp = (config: Config): AppType => {\n ApiService.registerConfig({ path: config.paths?.api });\n\n /* eslint-disable @typescript-eslint/naming-convention */\n const AdminApp: AppType = ({ Component, Logo, router }) => (\n <App Component={Component} Logo={Logo} config={config} router={router} />\n );\n /* eslint-enable */\n\n AdminApp.propTypes = AppPropTypes;\n\n // Ensure no page is statically generated\n // eslint-disable-next-line @typescript-eslint/require-await\n AdminApp.getInitialProps = async (): Promise<AppInitialProps> => ({ pageProps: null });\n\n return AdminApp;\n};\n\nexport default createApp;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport styles from './Panel.module.css';\n\ninterface PanelProps {\n children: React.ReactNode;\n isPadded?: boolean;\n isSpaced?: boolean;\n}\n\nconst Panel: React.FunctionComponent<PanelProps> = ({ children, isPadded, isSpaced }) => (\n <div\n className={classNames(\n styles.root,\n isPadded && styles.rootIsPadded,\n isSpaced && styles.rootIsSpaced\n )}\n >\n {children}\n </div>\n);\n\nPanel.propTypes = {\n children: PropTypes.node.isRequired,\n isPadded: PropTypes.bool,\n isSpaced: PropTypes.bool,\n};\n\nexport default Panel;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport Button from '@components/Button';\nimport Panel from '@core/Panel';\n\nimport type { SimpleAction, StyleVariant } from '@utility/interfaces';\n\nimport styles from './Alert.module.css';\n\ninterface AlertProps {\n actions?: SimpleAction[];\n children: React.ReactNode;\n title: string;\n variant?: StyleVariant;\n}\n\nconst Alert: React.FunctionComponent<AlertProps> = ({ actions, children, title, variant }) => (\n <div className={styles.root}>\n <div className={styles.overlay} />\n <aside className={styles.panel} role=\"alert\">\n <Panel isPadded>\n <h3\n className={classNames(\n styles.title,\n variant && styles[`title${ucwords(variant)}`]\n )}\n role=\"heading\"\n >\n {title}\n </h3>\n {children}\n {actions?.length ? (\n <footer className={styles.actions}>\n {actions.map((action) => (\n <Button\n key={action.label}\n isDisabled={action.isDisabled}\n onClick={action.onClick}\n variant={action.variant}\n >\n {action.label}\n </Button>\n ))}\n </footer>\n ) : null}\n </Panel>\n </aside>\n </div>\n);\n\nAlert.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n variant: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'danger']),\n};\n\nexport default Alert;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport Icon from '@core/Icon';\n\nimport styles from './ChkRadIcon.module.css';\n\ninterface ChkRadIconProps {\n isChecked?: boolean;\n type?: 'checkbox' | 'radio';\n}\n\nconst ChkRadIcon: React.FunctionComponent<ChkRadIconProps> = ({ isChecked, type = 'checkbox' }) => (\n <i\n className={classNames(\n styles.root,\n styles[`root${ucwords(type)}`],\n isChecked && styles.rootIsChecked\n )}\n >\n <Icon icon=\"check\" />\n </i>\n);\n\nChkRadIcon.propTypes = {\n isChecked: PropTypes.bool,\n type: PropTypes.oneOf(['checkbox', 'radio']),\n};\n\nexport default ChkRadIcon;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport ChkRadIcon from '@core/ChkRadIcon';\nimport type { SimpleEvent, SimpleEventHandler, SimpleObject } from '@utility/interfaces';\n\nimport styles from './DropdownPanel.module.css';\n\nexport interface DropdownItem extends SimpleObject {\n isDisabled?: boolean;\n meta?: string;\n}\n\ninterface DropdownEvent extends SimpleEvent {\n item: DropdownItem;\n}\n\ninterface DropdownPanelProps {\n data: DropdownItem[];\n isMultiple?: boolean;\n name: string;\n onChange: SimpleEventHandler<boolean | number | string | null, DropdownEvent>;\n value?: (number | string)[] | number | string;\n}\n\nconst isActive = (id: number | string, value?: (number | string)[] | number | string): boolean => {\n if (Array.isArray(value)) {\n return value.includes(id);\n }\n return value === id;\n};\n\nconst DropdownPanel: React.FunctionComponent<DropdownPanelProps> = ({\n data,\n isMultiple,\n name,\n onChange,\n value,\n}) => (\n <ul role=\"listbox\">\n {data.map((item: DropdownItem) => (\n <li\n key={item.id}\n className={classNames(\n styles.item,\n isActive(item.id, value) && styles.itemIsActive,\n item.isDisabled && styles.itemIsDisabled\n )}\n role=\"option\"\n >\n {isMultiple && (\n <span className={styles.icon}>\n <ChkRadIcon isChecked={isActive(item.id, value)} />\n </span>\n )}\n <span className={styles.content}>\n <span className={styles.title}>{item.name}</span>\n {item.meta && <small className={styles.meta}>{item.meta}</small>}\n </span>\n <button\n className={styles.control}\n data-testid={`dropdown-panel-control-${item.id}`}\n onClick={(): void => onChange({ item, target: { name, value: item.id } })}\n tabIndex={-1}\n type=\"button\"\n >\n Select\n </button>\n </li>\n ))}\n </ul>\n);\n\nDropdownPanel.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n name: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n isMultiple: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired),\n ]),\n};\n\nexport default DropdownPanel;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport styles from './ErrorMessage.module.css';\n\ninterface ErrorMessageProps {\n children?: React.ReactNode;\n isMini?: boolean;\n isScene?: boolean;\n}\n\nconst ErrorMessage: React.FunctionComponent<ErrorMessageProps> = ({\n children,\n isMini,\n isScene,\n}) => (\n <section\n className={classNames(styles.root, isScene && styles.rootIsScene)}\n data-testid=\"error-message-root\"\n >\n {!isMini && <h3 className={styles.title}>This doesn&#39;t look right...</h3>}\n <p className={classNames(styles.description, isMini && styles.descriptionIsMini)}>\n <strong>Something&#39;s gone wrong.</strong> Please try again. If the problem persists,\n please talk to your system administrator.\n </p>\n {!isMini && children ? <small className={styles.meta}>{children}</small> : null}\n </section>\n);\n\nErrorMessage.propTypes = {\n children: PropTypes.node,\n isMini: PropTypes.bool,\n isScene: PropTypes.bool,\n};\n\nexport default ErrorMessage;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport styles from './InputPanel.module.css';\n\ninterface InputPanelProps {\n children: React.ReactNode;\n isScrollable?: boolean;\n // eslint-disable-next-line @typescript-eslint/sort-type-union-intersection-members\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst InputPanel: React.FunctionComponent<InputPanelProps> = ({ children, isScrollable, size }) => (\n <div className={classNames(styles.root, size && styles[`root${ucwords(size)}`])}>\n {isScrollable ? <div className={styles.inner}>{children}</div> : children}\n </div>\n);\n\nInputPanel.propTypes = {\n children: PropTypes.node.isRequired,\n isScrollable: PropTypes.bool,\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n};\n\nexport default InputPanel;\n","import React, { Fragment } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport IconButton from '@core/IconButton';\nimport Loader from '@core/Loader';\n\nimport type { InputProps } from '@utility/interfaces';\n\nimport styles from './TextInputAncillary.module.css';\n\ninterface TextInputAncillaryProps extends InputProps {\n isClearable?: boolean;\n isLoading?: boolean;\n onClear: () => void;\n prefix?: string | null;\n suffix?: string | null;\n}\n\nconst TextInputAncillary: React.FunctionComponent<TextInputAncillaryProps> = ({\n hasError,\n isClearable,\n isLoading,\n onClear,\n prefix,\n suffix,\n value,\n}) => (\n <Fragment>\n {prefix ? (\n <span className={classNames(styles.prefix, hasError && styles.hasError)}>{prefix}</span>\n ) : null}\n {!prefix && suffix ? (\n <span className={classNames(styles.suffix, hasError && styles.hasError)}>{suffix}</span>\n ) : null}\n {isClearable && value ? (\n <span\n className={classNames(styles.clear, hasError && styles.hasError)}\n data-testid=\"text-input-ancillary-clear\"\n >\n <IconButton icon=\"x\" onClick={(): void => onClear()} size=\"sm\">\n Clear\n </IconButton>\n </span>\n ) : null}\n {isLoading ? (\n <span className={styles.loader}>\n <Loader isMini />\n </span>\n ) : null}\n </Fragment>\n);\n\nTextInputAncillary.propTypes = {\n onClear: PropTypes.func.isRequired,\n\n /** If set to trute, the `TextInput` will be styled to indicate this */\n hasError: PropTypes.bool,\n\n isClearable: PropTypes.bool,\n isLoading: PropTypes.bool,\n\n /**\n * For uses of `TextInput` that involve an asynchronous process, setting this to true will add a\n * mini version of the `Loader` component, to indicate that a process is taking place\n */\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nexport default TextInputAncillary;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport TextInputAncillary from '@core/TextInputAncillary';\n\nimport type { InputProps, InputValue, SimpleEventHandler } from '@utility/interfaces';\n\nimport styles from './TextInput.module.css';\n\nexport interface TextInputProps\n extends InputProps<InputValue, HTMLInputElement | HTMLTextAreaElement> {\n autocomplete?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n onClear?: SimpleEventHandler;\n placeholder?: string;\n prefix?: string | null;\n suffix?: string | null;\n type?: string;\n}\n\n/**\n * A customisable text input component.\n */\nconst TextInput: React.FunctionComponent<TextInputProps> = ({\n autocomplete,\n hasError,\n id,\n isClearable,\n isDisabled,\n isLoading,\n name,\n onChange,\n onClear,\n onKeyDown,\n placeholder,\n prefix,\n suffix,\n value,\n type,\n}) => {\n const handleChange = (event: React.ChangeEvent): void => {\n const target = event.target as HTMLInputElement;\n const simpleEvent = { target: { name, value: target.value } };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n const handleClear = (): void => {\n const simpleEvent = { target: { name, value: '' } };\n\n if (onClear) {\n onClear(simpleEvent);\n return;\n }\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n return (\n <div\n className={classNames(\n styles.root,\n prefix && styles.rootHasPrefix,\n ((!prefix && suffix) || (isClearable && value)) && styles.rootHasSuffix,\n isDisabled && styles.rootIsDisabled\n )}\n data-testid=\"text-input-root\"\n >\n <input\n autoComplete={\n autocomplete === false\n ? 'off'\n : undefined /* eslint-disable-line no-undefined */\n }\n className={classNames(\n styles.input,\n hasError && styles.inputHasError,\n prefix && styles.inputHasPrefix,\n ((!prefix && suffix) || (isClearable && value)) && styles.inputHasSuffix\n )}\n disabled={isDisabled}\n id={id || `c_${name}`}\n name={name}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n type={type}\n value={value?.toString() || ''}\n />\n <TextInputAncillary\n hasError={hasError}\n isClearable={isClearable}\n isLoading={isLoading}\n name={name}\n onClear={handleClear}\n prefix={prefix}\n suffix={suffix}\n value={value}\n />\n </div>\n );\n};\n\nTextInput.propTypes = {\n /** The name of the field. An ID is also generated from this (`c_${name}`). */\n name: PropTypes.string.isRequired,\n\n /**\n * Whether or not the browser's autocomplete should be enabled. This can interfere with\n * components like `AutoSuggest`, so it is recommended to set this to false in these instances.\n */\n autocomplete: PropTypes.bool,\n\n /** If set to true, the `TextInput` will be styled to indicate this */\n hasError: PropTypes.bool,\n\n id: PropTypes.string,\n\n /** If set to true, and the input has a value, a control to clear the input is displayed */\n isClearable: PropTypes.bool,\n\n /** If set to true, the input and any associated controls are disabled */\n isDisabled: PropTypes.bool,\n\n /**\n * For uses of `TextInput` that involve an asynchronous process, setting this to true will add a\n * mini version of the `Loader` component, to indicate that a process is taking place\n */\n isLoading: PropTypes.bool,\n placeholder: PropTypes.string,\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n onClear: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nexport default TextInput;\n","import type { KeyboardEvent, KeyboardEventHandler } from 'react';\n\nimport { parseNumeric } from '@sqrzro/utility';\n\nimport type { SimpleEventHandler, SimpleObject } from '@utility/interfaces';\n\ninterface UseAccessiblePanelArgs {\n data?: SimpleObject[];\n name: string;\n onChange?: SimpleEventHandler;\n value?: (number | string)[] | number | string;\n}\n\ninterface UseAccessiblePanelReturn<T> {\n handleKeyboard: KeyboardEventHandler<T>;\n}\n\nconst getPreviousIndex = (index: number, limit: number): number => {\n if (index <= 0) {\n return limit - 1;\n }\n return index - 1;\n};\n\nconst getNextIndex = (index: number, limit: number): number => {\n if (index + 1 >= limit) {\n return 0;\n }\n return index + 1;\n};\n\nconst handleChange = <T>(\n event: KeyboardEvent<T>,\n name: string,\n index: number,\n data?: SimpleObject[],\n onChange?: SimpleEventHandler\n): void => {\n event.preventDefault();\n\n if (!onChange || !data || !data[index]) {\n return;\n }\n\n onChange({\n item: data[index],\n target: { name, value: data[index].id },\n });\n};\n\nconst useAccessiblePanel = <T = HTMLButtonElement | HTMLInputElement>({\n data,\n name,\n onChange,\n value,\n}: UseAccessiblePanelArgs): UseAccessiblePanelReturn<T> => {\n const handleKeyboard = (event: KeyboardEvent<T>): void => {\n const activeIndex = (data || []).findIndex((item) => parseNumeric(item.id) === value);\n\n if (event.key === 'ArrowDown') {\n const newIndex = getNextIndex(activeIndex, (data || []).length);\n handleChange<T>(event, name, newIndex, data, onChange);\n }\n\n if (event.key === 'ArrowUp') {\n const newIndex = getPreviousIndex(activeIndex, (data || []).length);\n handleChange<T>(event, name, newIndex, data, onChange);\n }\n };\n\n return { handleKeyboard };\n};\n\nexport default useAccessiblePanel;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ApiService, parseNumeric } from '@sqrzro/utility';\n\nimport DropdownPanel from '@core/DropdownPanel';\nimport type { DropdownItem } from '@core/DropdownPanel';\nimport ErrorMessage from '@core/ErrorMessage';\nimport InputPanel from '@core/InputPanel';\n\nimport TextInput from '@components/TextInput';\n\nimport useAccessiblePanel from '@hooks/useAccessiblePanel';\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport type { InputProps, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './AutoSuggest.module.css';\n\nconst transformSuggestions = (data: (DropdownItem | string)[] | null): DropdownItem[] => {\n if (!data) {\n return [];\n }\n return data.map((item) => (typeof item === 'object' ? item : { id: item, name: item }));\n};\n\ninterface AutoSuggestProps extends InputProps {\n /**\n * An array of strings to filter for the suggestions. If a `remote` prop is specified, this is\n * ignored.\n */\n data?: (DropdownItem | string)[] | null;\n\n /** The URL for the endpoint that will return the suggestions */\n remote?: string | null;\n}\n\n/**\n * As a user types, suggestions based on they've typed are displayed in a panel below. When a user\n * clicks a suggestion, the value is updated. Under the hood, it is more or less a combination of a\n * `TextInput` and a `DropdownPanel`.\n *\n * ## Request Methods\n *\n * At its most basic, the suggestions are a predefined array of `data`. However,\n * if the `remote` prop is specified, the AutoSuggest will `GET` that endpoint as the user types.\n * The following will be appended onto the query:\n *\n * ````\n * ?search={value}\n * ```\n *\n * The endpoint should then handle filtering the data, and returning an array of the results. If the\n * value of the input changes before the previous `GET` request has completed, that one is\n * cancelled and a new one started, with the updated search query.\n *\n * ## Data Formats\n *\n * The data returned should be one of two formats. The choice of format has an impact on how the\n * value is stored, and the label that is displayed.\n *\n * The most basic format is an array of strings. The value is stored as the string itself, and the\n * label displays the same string. This is most useful for situations where no relationships are\n * required on the backend, and the `AutoSuggest` is purely being used to assist the user in\n * defining a value.\n *\n * An example of this data would be:\n *\n * ```\n * ['apple', 'banana', 'carrot']\n * ```\n *\n * The second format is an array of objects. The value is stored as the `id` of the object, and the\n * label displays the `name` of the object. This is most useful for situations where a relationship\n * is required on the backend, and the `AutoSuggest` is being used to assist the user in defining\n * a value. With this format, the `AutoSuggest` works more like a `Dropdown`.\n *\n * For example:\n *\n * ```\n * [{ id: 1, name: 'apple' }, { id: 2, name: 'banana' }, { id: 3, name: 'carrot' }]\n * ```\n */\nconst AutoSuggest: React.FunctionComponent<AutoSuggestProps> = ({\n data,\n name,\n remote,\n value,\n hasError,\n onChange,\n}) => {\n const [suggestions, setSuggestions] = useState<(DropdownItem | string)[] | null>(null);\n\n const [isOpen, setIsOpen, node] = useClickOutside();\n const [isError, setIsError] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const getLocalData = (search: string): void => {\n if (!data || !data.length) {\n return;\n }\n\n const rgx = new RegExp(`^${search}.*`, 'iu');\n const response = data.filter((item) =>\n rgx.exec(typeof item === 'string' ? item : item.name)\n );\n\n setIsOpen(Boolean(response.length));\n setSuggestions(response);\n };\n\n const getData = async (search: string): Promise<void> => {\n if (!remote) {\n getLocalData(search);\n return;\n }\n\n setIsLoading(true);\n\n try {\n const response = await ApiService.get<{ data: string[] }>([remote, { search }], {\n isCancellable: true,\n });\n\n setSuggestions(response.data.data);\n } catch (err) {\n setIsError(true);\n }\n\n setIsLoading(false);\n setIsOpen(true);\n };\n\n const handleChange = (event: SimpleEvent): void => {\n if (onChange) {\n onChange(event);\n }\n\n if (!event.target.value) {\n setIsOpen(false);\n return;\n }\n\n void getData(event.target.value.toString());\n };\n\n const handleSuggest = (item: DropdownItem): void => {\n const simpleEvent: SimpleEvent = {\n target: { name, value: item.id },\n };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n\n setIsOpen(false);\n };\n\n if (isError) {\n return <ErrorMessage isMini />;\n }\n\n const parsedValue = parseNumeric(value);\n const transformed = transformSuggestions(suggestions);\n\n const { handleKeyboard } = useAccessiblePanel<HTMLInputElement>({\n data: transformed,\n name,\n onChange,\n value: parsedValue,\n });\n\n return (\n <div ref={node} className={classNames(styles.root, isOpen && styles.rootOpen)}>\n <TextInput\n autocomplete={false}\n hasError={hasError}\n isLoading={isLoading}\n name={name}\n onChange={handleChange}\n onKeyDown={handleKeyboard}\n value={parsedValue}\n />\n {isOpen && suggestions && suggestions.length ? (\n <InputPanel isScrollable>\n <DropdownPanel\n data={transformed}\n name={name}\n onChange={({ item }): void => handleSuggest(item)}\n value={parsedValue}\n />\n </InputPanel>\n ) : null}\n </div>\n );\n};\n\nAutoSuggest.propTypes = {\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string.isRequired,\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n name: PropTypes.string.isRequired,\n }).isRequired,\n ]).isRequired\n ),\n hasError: PropTypes.bool,\n remote: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default AutoSuggest;\n","import { format as fnsFormat, parseISO } from 'date-fns';\n\nconst TWO_DIGITS = 10;\n\nconst formatDate = (value?: unknown, formatString: string = 'dd/MM/Y'): string => {\n if (!value || (typeof value !== 'string' && !(value instanceof Date))) {\n return '';\n }\n\n const parsed = typeof value === 'string' ? parseISO(value) : value;\n\n try {\n return fnsFormat(parsed, formatString);\n } catch (err) {\n return '';\n }\n};\n\nconst formatDatetime = (value?: unknown): string => formatDate(value, 'dd/MM/Y HH:mm');\n\n// eslint-disable-next-line prefer-named-capture-group\nconst addCommas = (value: string): string => value.replace(/(\\d)(?=(\\d{3})+(?!\\d))/gu, '$1,');\n\nconst formatMoney = (value?: unknown): string => {\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\n return '';\n }\n\n const isNegative = value.toString().startsWith('-');\n const numberValue = isNegative ? value.toString().substring(1) : value.toString();\n\n return `${isNegative ? '-' : ''}£${addCommas(parseFloat(numberValue).toFixed(2))}`;\n};\n\nconst formatTwoDigits = (value?: unknown): string => {\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\n return '';\n }\n\n const isNegative = value.toString().startsWith('-');\n const numberValue = isNegative ? value.toString().substring(1) : value.toString();\n\n return `${isNegative ? '-' : ''}${\n parseInt(numberValue, 10) < TWO_DIGITS ? '0' : ''\n }${numberValue}`;\n};\n\nconst FormatService = {\n date: formatDate,\n datetime: formatDatetime,\n money: formatMoney,\n twoDigits: formatTwoDigits,\n};\n\nexport default FormatService;\n","import {\n addMonths as fnsAddMonths,\n getDay as fnsGetDay,\n getDaysInMonth as fnsGetDaysInMonth,\n set as fnsSet,\n subDays as fnsSubDays,\n subMonths as fnsSubMonths,\n parseISO,\n} from 'date-fns';\n\nimport FormatService from './FormatService';\n\nimport type { SimpleObject } from '@utility/interfaces';\n\nconst DAYS_IN_WEEK = 7;\nconst MONTHS_IN_YEAR = 12;\nconst DAYS_IN_30_DAYS = 30;\nconst DAYS_IN_MONTH = 31;\n\nconst FIRST_YEAR = 1900;\n\nconst SUNDAY = 6;\n\ninterface DateItem {\n id: number;\n name: string | null;\n}\n\nconst getDays = (): DateItem[] =>\n Array(DAYS_IN_MONTH)\n .fill(0)\n .map((_item, index: number) => ({ id: index + 1, name: `${index + 1}` }));\n\nconst getMonths = (): DateItem[] =>\n Array(MONTHS_IN_YEAR)\n .fill(0)\n .map((_item, index: number) => ({\n id: index + 1,\n name: FormatService.date(new Date(FIRST_YEAR, index, 1), 'MMMM'),\n }));\n\nconst getYears = (\n startYear: number = FIRST_YEAR,\n endYear: number = new Date().getFullYear()\n): DateItem[] =>\n Array(endYear - startYear + 1)\n .fill(0)\n .map((_item, index: number) => ({ id: endYear - index, name: `${endYear - index}` }));\n\nconst isToday = (date: string): boolean => FormatService.date(new Date(), 'y-MM-dd') === date;\n\n// Most date libraries start the week on Sunday (US). We want to start on Monday (UK).\nconst adjustDayOfWeek = (num: number): number => (num === 0 ? SUNDAY : num - 1);\n\nconst getDayOfWeek = (date: string): number => {\n const parsed = parseISO(date);\n const num = adjustDayOfWeek(fnsGetDay(parsed));\n\n return Number.isNaN(num) ? -1 : num;\n};\n\nconst getDaysInMonth = (date: string): number => {\n const parsed = parseISO(date);\n const num = fnsGetDaysInMonth(parsed);\n\n return Number.isNaN(num) ? -1 : num;\n};\n\nconst addMonths = (date: string, amount: number): string => {\n const parsed = parseISO(`${date}-01`);\n return FormatService.date(fnsAddMonths(parsed, amount), 'y-MM');\n};\n\nconst subMonths = (date: string, amount: number): string => {\n const parsed = parseISO(`${date}-01`);\n return FormatService.date(fnsSubMonths(parsed, amount), 'y-MM');\n};\n\n// Quick Date\n\nconst QUICK_DATE_FORMAT = 'Y-MM-dd';\n\nconst getToday = (): Date => new Date();\n\nconst getYesterday = (): Date => fnsSubDays(new Date(), 1);\n\nconst getLast7Days = (): Date[] => [fnsSubDays(new Date(), DAYS_IN_WEEK), new Date()];\n\nconst getLast30Days = (): Date[] => [fnsSubDays(new Date(), DAYS_IN_30_DAYS), new Date()];\n\n// Get the first day of this month, and today\nconst getThisMonth = (): Date[] => [fnsSet(new Date(), { date: 1 }), getToday()];\n\n// Get the first day of last month, and the day before the first day of this month\nconst getLastMonth = (): Date[] => [\n fnsSet(fnsSubMonths(new Date(), 1), { date: 1 }),\n fnsSubDays(getThisMonth()[0], 1),\n];\n\nconst getQuickDateId = (value: Date | Date[]): string => {\n if (Array.isArray(value)) {\n return value.map((item) => FormatService.date(item, QUICK_DATE_FORMAT)).join(',');\n }\n\n const formatted = FormatService.date(value, QUICK_DATE_FORMAT);\n return `${formatted},${formatted}`;\n};\n\nconst getQuickDates = (): SimpleObject[] => {\n const dates = {\n Today: getToday(),\n Yesterday: getYesterday(),\n 'Last 7 Days': getLast7Days(),\n 'Last 30 Days': getLast30Days(),\n 'This Month': getThisMonth(),\n 'Last Month': getLastMonth(),\n };\n\n return Object.entries(dates).map(([key, value]) => ({\n id: getQuickDateId(value),\n name: key,\n }));\n};\n\nconst DateService = {\n addMonths,\n getDaysInMonth,\n getDayOfWeek,\n getDays,\n getMonths,\n getQuickDates,\n getYears,\n isToday,\n subMonths,\n};\n\nexport default DateService;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport type { SimpleEventHandler } from '@utility/interfaces';\n\nimport DateService from '@services/DateService';\n\nimport styles from './CalendarDay.module.css';\n\nexport interface DayObject {\n label: number;\n date: string;\n}\n\ninterface CalendarDayProps {\n data: DayObject | number;\n name: string;\n onClick?: SimpleEventHandler<string>;\n isDisabled?: boolean;\n isHighlighted?: boolean;\n isSelected?: boolean;\n}\n\nconst CalendarDay: React.FunctionComponent<CalendarDayProps> = ({\n data,\n isDisabled,\n isHighlighted,\n isSelected,\n name,\n onClick,\n}) => {\n if (typeof data === 'number') {\n return <td className={styles.root} />;\n }\n\n const handleClick = (): void => {\n if (onClick) {\n const simpleEvent = { target: { name, value: data.date } };\n onClick(simpleEvent);\n }\n };\n\n return (\n <td\n className={classNames(\n styles.root,\n isHighlighted && styles.rootIsHighlighted,\n isSelected && styles.rootIsSelected,\n DateService.isToday(data.date) && styles.rootIsToday,\n isDisabled && styles.rootIsDisabled\n )}\n data-testid={`calendar-day-root-${data.label}`}\n >\n <button\n className={styles.control}\n disabled={isDisabled}\n onClick={handleClick}\n type=\"button\"\n >\n {data.label}\n </button>\n </td>\n );\n};\n\nCalendarDay.propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.number.isRequired,\n PropTypes.shape({\n date: PropTypes.string.isRequired,\n label: PropTypes.number.isRequired,\n }).isRequired,\n ]).isRequired,\n name: PropTypes.string.isRequired,\n isDisabled: PropTypes.bool,\n isHighlighted: PropTypes.bool,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nexport default CalendarDay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CalendarDay from '@core/CalendarDay';\nimport type { DayObject } from '@core/CalendarDay';\n\nimport type { SimpleEventHandler } from '@utility/interfaces';\n\nexport type WeekObject = (DayObject | number)[];\n\ninterface CalendarWeekProps {\n data: WeekObject;\n disabledDates?: string[] | ((date: string) => boolean);\n name: string;\n onClick?: SimpleEventHandler<string>;\n pendingValue: string;\n value?: string;\n}\n\nconst isDisabled = (\n item: DayObject | number,\n disabledDates?: string[] | ((date: string) => boolean)\n): boolean => {\n if (typeof item === 'number' || !disabledDates) {\n return false;\n }\n\n if (typeof disabledDates === 'function') {\n return disabledDates(item.date);\n }\n\n return disabledDates.includes(item.date);\n};\n\nconst isSelected = (item: DayObject | number, pendingValue: string, value?: string): boolean => {\n if (typeof item === 'number') {\n return false;\n }\n\n return (pendingValue || value || '').split(',').includes(item.date);\n};\n\nconst isHighlighted = (item: DayObject | number, pendingValue: string, value?: string): boolean => {\n if (typeof item === 'number') {\n return false;\n }\n\n const [lower, upper] = (pendingValue || value || '').split(',');\n return item.date > lower && item.date < upper;\n};\n\nconst CalendarWeek: React.FunctionComponent<CalendarWeekProps> = ({\n data,\n disabledDates,\n name,\n onClick,\n pendingValue,\n value,\n}) => (\n <tr>\n {data.map((item, index) => (\n <CalendarDay\n key={typeof item === 'number' ? index : item.date}\n data={item}\n isDisabled={isDisabled(item, disabledDates)}\n isHighlighted={isHighlighted(item, pendingValue, value)}\n isSelected={isSelected(item, pendingValue, value)}\n name={name}\n onClick={onClick}\n />\n ))}\n </tr>\n);\n\nCalendarWeek.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.number.isRequired,\n PropTypes.shape({\n date: PropTypes.string.isRequired,\n label: PropTypes.number.isRequired,\n }).isRequired,\n ]).isRequired\n ).isRequired,\n name: PropTypes.string.isRequired,\n pendingValue: PropTypes.string.isRequired,\n disabledDates: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string.isRequired),\n PropTypes.func,\n ]),\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default CalendarWeek;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DateService from '@services/DateService';\n\nimport CalendarWeek from '@core/CalendarWeek';\nimport type { WeekObject } from '@core/CalendarWeek';\n\nimport type { SimpleEventHandler } from '@utility/interfaces';\n\nimport styles from './CalendarMonth.module.css';\n\nconst DECIMAL = 10;\nconst DAYS_IN_WEEK = 7;\n\nconst DAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n\nconst getWeeks = (month: string): WeekObject[] => {\n const firstDay = `${month}-01`;\n\n const firstDayofMonth = DateService.getDayOfWeek(firstDay);\n const daysInMonth = DateService.getDaysInMonth(firstDay);\n const lastDayofMonth = DateService.getDayOfWeek(`${month}-${daysInMonth}`);\n\n const beforeDays = Array(firstDayofMonth).fill(0) as 0[];\n const afterDays = Array(DAYS_IN_WEEK - 1 - lastDayofMonth).fill(0) as 0[];\n\n const monthDays = Array.from({ length: daysInMonth }).map((_item, index) => ({\n label: index + 1,\n date: `${month}-${index + 1 < DECIMAL ? '0' : ''}${index + 1}`,\n }));\n\n const days = [...beforeDays, ...monthDays, ...afterDays];\n const weeks = [];\n\n for (let index = 0; index < days.length; index += DAYS_IN_WEEK) {\n weeks.push(days.slice(index, index + DAYS_IN_WEEK));\n }\n\n return weeks.filter((week) => JSON.stringify(week) !== '[0,0,0,0,0,0,0]');\n};\n\ninterface CalendarMonthProps {\n disabledDates?: string[] | ((date: string) => boolean);\n name: string;\n month: string;\n onClick?: SimpleEventHandler<string>;\n pendingValue: string;\n value?: string;\n}\n\nconst CalendarMonth: React.FunctionComponent<CalendarMonthProps> = ({\n disabledDates,\n name,\n month,\n onClick,\n pendingValue,\n value,\n}) => {\n const weeks = getWeeks(month);\n return (\n <table className={styles.root}>\n <thead>\n <tr>\n {DAYS.map((item) => (\n <th key={item} className={styles.head}>\n {item}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeks.map((item) => (\n <CalendarWeek\n key={typeof item[0] === 'number' ? item[0] : item[0].date}\n data={item}\n disabledDates={disabledDates}\n name={name}\n onClick={onClick}\n pendingValue={pendingValue}\n value={value}\n />\n ))}\n </tbody>\n </table>\n );\n};\n\nCalendarMonth.propTypes = {\n month: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n pendingValue: PropTypes.string.isRequired,\n disabledDates: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string.isRequired),\n PropTypes.func,\n ]),\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default CalendarMonth;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport DateService from '@services/DateService';\nimport FormatService from '@services/FormatService';\n\nimport IconButton from '@core/IconButton';\n\nimport type { SimpleEventHandler } from '@utility/interfaces';\n\nimport styles from './CalendarNavigation.module.css';\n\ninterface CalendarNavigationProps {\n month: string;\n name: string;\n onChange: SimpleEventHandler<string>;\n}\n\nconst CalendarNavigation: React.FunctionComponent<CalendarNavigationProps> = ({\n month,\n name,\n onChange,\n}) => {\n const handleChange = (value: string): void => {\n const simpleEvent = { target: { name, value } };\n onChange(simpleEvent);\n };\n\n const handlePrevious = (): void => handleChange(DateService.subMonths(month, 1));\n const handleNext = (): void => handleChange(DateService.addMonths(month, 1));\n\n return (\n <div className={styles.root}>\n <p className={styles.title}>{FormatService.date(`${month}-01`, 'MMMM y')}</p>\n <i className={classNames(styles.control, styles.controlPrevious)}>\n <IconButton icon=\"arrowLeft\" onClick={handlePrevious} size=\"sm\">\n Previous\n </IconButton>\n </i>\n <i className={classNames(styles.control, styles.controlNext)}>\n <IconButton icon=\"arrowRight\" onClick={handleNext} size=\"sm\">\n Next\n </IconButton>\n </i>\n </div>\n );\n};\n\nCalendarNavigation.propTypes = {\n month: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default CalendarNavigation;\n","import React, { Fragment, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport CalendarMonth from '@core/CalendarMonth';\nimport CalendarNavigation from '@core/CalendarNavigation';\n\nimport FormatService from '@services/FormatService';\n\nimport type { SimpleEvent, SimpleEventHandler } from '@utility/interfaces';\n\nconst getMonthFromDate = (date?: string): string => {\n const dt = new Date();\n const currentMonth = `${dt.getFullYear()}-${FormatService.twoDigits(dt.getMonth() + 1)}`;\n\n if (!date) {\n return currentMonth;\n }\n\n // If the date is a range, just use the first date in the range\n\n if (/,/u.exec(date)) {\n return getMonthFromDate(date.split(',')[0]);\n }\n\n const match = /^(?<month>[0-9]{4}-[0-9]{2})-[0-9]{2}$/u.exec(date);\n\n if (!match) {\n return currentMonth;\n }\n\n /* istanbul ignore next: No way to test that there is a match, but without any groups */\n return match.groups?.month || currentMonth;\n};\n\ninterface CalendarProps {\n disabledDates?: string[] | ((date: string) => boolean);\n isRange?: boolean;\n name: string;\n onChange: SimpleEventHandler;\n value?: string;\n}\n\nconst transformValue = (pendingValue: string, targetValue: string): string =>\n [pendingValue, targetValue].sort((first, second) => first.localeCompare(second)).join(',');\n\nconst getPendingValue = (pendingValue: string, targetValue: string): string => {\n if (!pendingValue) {\n return targetValue;\n }\n if (!/,/u.exec(pendingValue)) {\n return transformValue(pendingValue, targetValue);\n }\n return targetValue;\n};\n\nconst Calendar: React.FunctionComponent<CalendarProps> = ({\n disabledDates,\n isRange,\n name,\n value,\n onChange,\n}) => {\n const [activeMonth, setActiveMonth] = useState(getMonthFromDate(value));\n const [pendingValue, setPendingValue] = useState('');\n\n useEffect(() => {\n setActiveMonth(getMonthFromDate(value));\n }, [value]);\n\n const handleNavigation = (event: SimpleEvent<string>): void => {\n setActiveMonth(event.target.value);\n };\n\n const handleChange = (event: SimpleEvent<string>): void => {\n if (!isRange) {\n onChange(event);\n return;\n }\n\n const pValue = getPendingValue(pendingValue, event.target.value);\n setPendingValue(pValue);\n\n if (!/,/u.exec(pValue)) {\n return;\n }\n\n onChange({ target: { name, value: pValue } });\n };\n\n return (\n <Fragment>\n <CalendarNavigation month={activeMonth} name={name} onChange={handleNavigation} />\n <CalendarMonth\n disabledDates={disabledDates}\n month={activeMonth}\n name={name}\n onClick={handleChange}\n pendingValue={pendingValue}\n value={value}\n />\n </Fragment>\n );\n};\n\nCalendar.propTypes = {\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n disabledDates: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string.isRequired),\n PropTypes.func,\n ]),\n isRange: PropTypes.bool,\n value: PropTypes.string,\n};\n\nexport default Calendar;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Icon from '@core/Icon';\nimport IconButton from '@core/IconButton';\n\nimport type { InputProps, InputValue } from '@utility/interfaces';\n\nimport styles from './StaticTextInput.module.css';\n\ninterface StaticTextInputProps extends InputProps<InputValue, HTMLButtonElement> {\n icon?: string;\n isOpen?: boolean;\n isOptional?: boolean;\n label?: string | null;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n placeholder?: string;\n}\n\nconst hasValue = (value?: InputValue): boolean => {\n if (Array.isArray(value)) {\n return Boolean(value.filter((item) => Boolean(item)).length);\n }\n return Boolean(value);\n};\n\nconst StaticTextInput: React.FunctionComponent<StaticTextInputProps> = ({\n hasError,\n icon,\n isDisabled,\n isOpen,\n isOptional,\n label,\n name,\n onChange,\n onClick,\n onKeyDown,\n placeholder = 'Select...',\n value,\n}) => {\n const handleNullChange = (): void => {\n if (onChange) {\n onChange({ target: { name, value: null } });\n }\n };\n\n return (\n <div\n className={classNames(\n styles.root,\n hasError && styles.rootHasError,\n isDisabled && styles.rootIsDisabled,\n !hasValue(value) && styles.rootIsPlaceholder\n )}\n data-testid=\"static-text-input-root\"\n >\n <input\n className={styles.input}\n name={name}\n type=\"hidden\"\n value={value ? value.toString() : ''}\n />\n\n {label || placeholder}\n\n {icon && !isDisabled && (\n <div className={styles.icon}>\n <Icon icon={icon} />\n </div>\n )}\n\n {onClick && (\n <button\n className={styles.control}\n disabled={isDisabled}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n {isOpen ? 'Close' : 'Open'}\n </button>\n )}\n\n {isOptional && hasValue(value) && (\n <span className={classNames(styles.icon, styles.iconClear)}>\n <IconButton icon=\"x\" onClick={handleNullChange} size=\"sm\">\n Clear\n </IconButton>\n </span>\n )}\n </div>\n );\n};\n\nStaticTextInput.propTypes = {\n name: PropTypes.string.isRequired,\n hasError: PropTypes.bool,\n icon: PropTypes.string,\n isDisabled: PropTypes.bool,\n isOpen: PropTypes.bool,\n isOptional: PropTypes.bool,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired),\n ]),\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n};\n\nexport default StaticTextInput;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport FormatService from '@services/FormatService';\n\nimport Calendar from '@core/Calendar';\nimport InputPanel from '@core/InputPanel';\nimport StaticTextInput from '@core/StaticTextInput';\n\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport type { InputProps, InputValue, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './CalendarInput.module.css';\n\nexport interface CalendarInputProps extends InputProps {\n disabledDates?: string[] | ((date: string) => boolean);\n isOptional?: boolean;\n isPanelOnly?: boolean;\n isRange?: boolean;\n}\n\nconst formatLabel = (value?: InputValue, isRange?: boolean): string => {\n if (!value || typeof value !== 'string') {\n return '';\n }\n\n if (!isRange) {\n return FormatService.date(value);\n }\n\n const splitValues = value.split(',');\n\n if (splitValues[0] === splitValues[1]) {\n return FormatService.date(splitValues[0]);\n }\n\n return splitValues.map((item) => FormatService.date(item)).join(' - ');\n};\n\nconst CalendarInput: React.FunctionComponent<CalendarInputProps> = ({\n disabledDates,\n hasError,\n isDisabled,\n isOptional,\n isPanelOnly,\n isRange,\n name,\n value,\n onChange,\n}) => {\n const [isOpen, setIsOpen, node] = useClickOutside();\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n const handleChange = (event: SimpleEvent): void => {\n if (onChange) {\n onChange(event);\n }\n\n setIsOpen(false);\n };\n\n const label = formatLabel(value, isRange);\n\n if (isPanelOnly) {\n return (\n <Calendar\n disabledDates={disabledDates}\n isRange={isRange}\n name={name}\n onChange={handleChange}\n value={value ? value.toString() : ''}\n />\n );\n }\n\n return (\n <div ref={node} className={classNames(styles.root, isOpen && styles.rootIsOpen)}>\n <StaticTextInput\n hasError={hasError}\n icon=\"calendar\"\n isDisabled={isDisabled}\n isOptional={isOptional}\n label={label}\n name={name}\n onChange={handleChange}\n onClick={toggleIsOpen}\n value={value || ''}\n />\n {isOpen && !isDisabled && (\n <InputPanel>\n <Calendar\n disabledDates={disabledDates}\n isRange={isRange}\n name={name}\n onChange={handleChange}\n value={value ? value.toString() : ''}\n />\n </InputPanel>\n )}\n </div>\n );\n};\n\nCalendarInput.propTypes = {\n name: PropTypes.string.isRequired,\n disabledDates: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string.isRequired),\n PropTypes.func,\n ]),\n hasError: PropTypes.bool,\n isDisabled: PropTypes.bool,\n isOptional: PropTypes.bool,\n isPanelOnly: PropTypes.bool,\n isRange: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default CalendarInput;\n","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { parseNumeric } from '@sqrzro/utility';\n\nimport ChkRadIcon from '@core/ChkRadIcon';\n\nimport type { InputProps } from '@utility/interfaces';\n\nimport styles from './ChkRad.module.css';\n\ninterface ChkRadProps extends InputProps<number | string> {\n id?: string;\n isChecked?: boolean;\n label: React.ReactElement | string;\n type?: 'checkbox' | 'radio';\n}\n\nconst ChkRad: React.FunctionComponent<ChkRadProps> = ({\n id,\n isDisabled,\n name,\n label,\n isChecked,\n onChange,\n type,\n value,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const handleChange = (event: React.ChangeEvent): void => {\n const target = event.target as HTMLInputElement;\n const parsedValue = parseNumeric(target.value);\n\n const simpleEvent = {\n item: { id: parsedValue, name: label.toString() },\n target: { name, value: parsedValue },\n };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n return (\n <label\n className={classNames(styles.root, isDisabled && styles.rootIsDisabled)}\n data-testid=\"chkrad-root\"\n >\n <input\n checked={Boolean(isChecked)}\n className={styles.input}\n disabled={isDisabled}\n id={id || name}\n name={name}\n onChange={handleChange}\n type={type || 'checkbox'}\n value={value}\n />\n <ChkRadIcon type={type} />\n <div ref={ref} className={styles.label}>\n {label}\n </div>\n </label>\n );\n};\n\nChkRad.propTypes = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n name: PropTypes.string.isRequired,\n id: PropTypes.string,\n isChecked: PropTypes.bool,\n isDisabled: PropTypes.bool,\n type: PropTypes.oneOf(['checkbox', 'radio']),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n};\n\nexport default ChkRad;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { parseNumeric, parseNumericArray } from '@sqrzro/utility';\n\nimport ChkRad from '@core/ChkRad';\n\nimport type { InputProps } from '@utility/interfaces';\n\nimport styles from './ChkRadList.module.css';\n\ninterface ChkRadDataItem {\n isDisabled?: boolean;\n label: string;\n value: number | string;\n}\n\nexport interface ChkRadListElementProps extends InputProps<(number | string)[] | number | string> {\n data: ChkRadDataItem[];\n}\n\ninterface ChkRadListProps extends ChkRadListElementProps {\n type?: 'checkbox' | 'radio';\n}\n\nconst getIsChecked = (\n itemValue: number | string,\n fieldValue?: (number | string)[] | number | string\n): boolean => {\n if (!fieldValue) {\n return false;\n }\n\n if (Array.isArray(fieldValue)) {\n return parseNumericArray(fieldValue).includes(parseNumeric(itemValue));\n }\n\n return parseNumeric(fieldValue) === parseNumeric(itemValue);\n};\n\nconst ChkRadList: React.FunctionComponent<ChkRadListProps> = ({\n data,\n isDisabled,\n name,\n onChange,\n type,\n value,\n}) => (\n <ul className={styles.root}>\n {data.map((item) => (\n <li key={item.value}>\n <ChkRad\n id={`${name}_${item.value}`}\n isChecked={getIsChecked(item.value, value)}\n isDisabled={item.isDisabled || isDisabled}\n label={item.label}\n name={name}\n onChange={onChange}\n type={type}\n value={parseNumeric(item.value)}\n />\n </li>\n ))}\n </ul>\n);\n\nChkRadList.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }).isRequired\n ).isRequired,\n name: PropTypes.string.isRequired,\n isDisabled: PropTypes.bool,\n type: PropTypes.oneOf(['checkbox', 'radio']),\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired),\n ]),\n onChange: PropTypes.func,\n};\n\nexport default ChkRadList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { toggleArrayItem } from '@sqrzro/utility';\n\nimport ChkRadList from '@core/ChkRadList';\nimport type { ChkRadListElementProps } from '@core/ChkRadList';\n\nimport type { SimpleEvent } from '@utility/interfaces';\n\nconst CheckboxList: React.FunctionComponent<ChkRadListElementProps> = ({\n name,\n onChange,\n value,\n ...props\n}) => {\n const handleChange = (event: SimpleEvent<(number | string)[] | number | string>): void => {\n if (\n (typeof value !== 'undefined' && !Array.isArray(value)) ||\n !onChange ||\n (typeof event.target.value !== 'string' && typeof event.target.value !== 'number')\n ) {\n return;\n }\n\n const newArray = toggleArrayItem(value || [], event.target.value);\n\n const simpleEvent: SimpleEvent<(number | string)[]> = {\n item: event.item,\n target: { name, value: newArray },\n };\n\n onChange(simpleEvent);\n };\n\n return (\n <ChkRadList\n {...props}\n name={`${name}[]`}\n onChange={handleChange}\n type=\"checkbox\"\n value={value}\n />\n );\n};\n\nCheckboxList.propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.arrayOf(PropTypes.string.isRequired),\n onChange: PropTypes.func,\n};\n\nexport default CheckboxList;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { parseNumeric, parseNumericArray, toggleArrayItem } from '@sqrzro/utility';\n\nimport DropdownPanel from '@core/DropdownPanel';\nimport InputPanel from '@core/InputPanel';\nimport StaticTextInput from '@core/StaticTextInput';\n\nimport useAccessiblePanel from '@hooks/useAccessiblePanel';\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport type { InputProps, InputValue, SimpleEvent, SimpleObject } from '@utility/interfaces';\n\nimport styles from './Dropdown.module.css';\n\nexport type DropdownTransformer = (item: Record<string, unknown> | SimpleObject) => SimpleObject;\n\ninterface DropdownProps extends InputProps {\n data?: Record<string, unknown>[] | SimpleObject[];\n isMultiple?: boolean;\n isOptional?: boolean;\n isPanelOnly?: boolean;\n placeholder?: string;\n transformer?: DropdownTransformer;\n}\n\nconst transformData = (\n data?: Record<string, unknown>[] | SimpleObject[],\n transformer?: DropdownTransformer\n): SimpleObject[] => {\n if (!data) {\n return [];\n }\n\n if (!transformer) {\n return data.map((item) => ({\n ...item,\n id: parseNumeric(item.id),\n name: item.name as string,\n }));\n }\n\n return data.map((item) => transformer(item));\n};\n\nconst parseNumericValue = (\n value?: InputValue,\n isMultiple?: boolean\n): (number | string)[] | number | string => {\n if (Array.isArray(value)) {\n return parseNumericArray(value);\n }\n const parsed = parseNumeric(value);\n return isMultiple ? [parsed] : parsed;\n};\n\nexport const renderLabel = (\n transformed: SimpleObject[],\n value?: InputValue,\n isMultiple?: boolean\n): string | null => {\n const parsedValue = parseNumericValue(value, isMultiple);\n\n const values = Array.isArray(parsedValue) ? parsedValue : [parsedValue];\n const labels = transformed.filter((item) => values.includes(item.id));\n\n if (!labels.length) {\n return null;\n }\n\n if (labels.length === 1) {\n return labels[0].name;\n }\n\n if (labels.length === 2) {\n return `${labels[0].name} & ${labels[1].name}`;\n }\n\n return `${labels[0].name} & ${labels.length - 1} more`;\n};\n\nconst Dropdown: React.FunctionComponent<DropdownProps> = ({\n data,\n hasError,\n isDisabled,\n isOptional,\n isMultiple,\n isPanelOnly,\n name,\n onChange,\n placeholder,\n transformer,\n value,\n}) => {\n if (!isMultiple && Array.isArray(value)) {\n throw new Error('Dropdown has an array value but has not been set to `isMultiple`');\n }\n\n if (isMultiple && value && !Array.isArray(value)) {\n throw new Error('Dropdown has been set to `isMultiple` but does not have an array value');\n }\n\n const [isOpen, setIsOpen, node] = useClickOutside();\n const transformed = transformData(data, transformer);\n const parsedValue = parseNumericValue(value, isMultiple);\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n /**\n * If the dropdown has been defined as `isMultiple`, the value should be an array in which\n * values are shown and hidden, depending on what has been selected\n * @param event\n */\n const handleMultipleChange = (event: SimpleEvent): void => {\n const newArray = toggleArrayItem(\n parsedValue as (number | string)[],\n parseNumeric(event.target.value)\n ).filter((item) => item !== '');\n\n const simpleEvent: SimpleEvent<(number | string)[]> = {\n item: event.item,\n target: { name, value: newArray },\n };\n\n if (event.item) {\n simpleEvent.item = { ...event.item };\n }\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n const handleChange = (event: SimpleEvent): void => {\n if (event.target.value !== null && isMultiple) {\n handleMultipleChange(event);\n return;\n }\n\n if (onChange) {\n onChange(event);\n }\n\n setIsOpen(false);\n };\n\n if (isPanelOnly) {\n return (\n <DropdownPanel\n data={transformed}\n isMultiple={isMultiple}\n name={name}\n onChange={handleChange}\n value={parsedValue}\n />\n );\n }\n\n const { handleKeyboard } = useAccessiblePanel({\n data: transformed,\n name,\n onChange,\n value: parsedValue,\n });\n\n return (\n <div ref={node} className={classNames(styles.root, isOpen && styles.rootOpen)}>\n <StaticTextInput\n hasError={hasError}\n icon=\"chevronDown\"\n isDisabled={isDisabled || !data || !data.length}\n isOpen={isOpen}\n isOptional={isOptional}\n label={renderLabel(transformed, parsedValue, isMultiple)}\n name={name}\n onChange={handleChange}\n onClick={toggleIsOpen}\n onKeyDown={handleKeyboard}\n placeholder={placeholder || (isMultiple ? 'Select one or more...' : 'Select...')}\n value={parsedValue}\n />\n\n {isOpen && !isDisabled && (\n <InputPanel isScrollable>\n <DropdownPanel\n data={transformed}\n isMultiple={isMultiple}\n name={name}\n onChange={handleChange}\n value={parsedValue}\n />\n </InputPanel>\n )}\n </div>\n );\n};\n\nDropdown.propTypes = {\n name: PropTypes.string.isRequired,\n\n /**\n * An array of the data that will populate the dropdown. `id` and `name` are required.\n * If `meta` is specified, it appears as smaller text below the name.\n * If `isDisabled` is true, the value will not be selectable\n */\n data: PropTypes.arrayOf(PropTypes.shape({}).isRequired),\n hasError: PropTypes.bool,\n isDisabled: PropTypes.bool,\n isMultiple: PropTypes.bool,\n isOptional: PropTypes.bool,\n isPanelOnly: PropTypes.bool,\n placeholder: PropTypes.string,\n transformer: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired),\n ]),\n onChange: PropTypes.func,\n};\n\nexport default Dropdown;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport Dropdown from '@components/Dropdown';\nimport ErrorMessage from '@core/ErrorMessage';\n\nimport type { InputProps, Remote } from '@utility/interfaces';\n\ninterface ConnnectedDropdownProps extends InputProps {\n isPanelOnly?: boolean;\n remote: Remote;\n}\n\nconst parseRemote = (remote: Remote): Remote => {\n if (Array.isArray(remote)) {\n return [remote[0], { ...remote[1], simpleview: '1' }];\n }\n return [remote, { simpleview: '1' }];\n};\n\nconst ConnectedDropdown: React.FunctionComponent<ConnnectedDropdownProps> = ({\n remote,\n ...props\n}) => {\n const [data, setData] = useState<Record<string, unknown>[]>();\n const [isError, setIsError] = useState(false);\n\n const getData = async (): Promise<void> => {\n try {\n const response = await ApiService.get<{ data: Record<string, unknown>[] }>(\n parseRemote(remote)\n );\n setData(response.data.data);\n } catch (err) {\n setIsError(true);\n }\n };\n\n useEffect(() => {\n void getData();\n }, []);\n\n if (isError) {\n return <ErrorMessage isMini />;\n }\n\n return <Dropdown data={data} isDisabled={!data} {...props} />;\n};\n\nConnectedDropdown.propTypes = {\n name: PropTypes.string.isRequired,\n};\n\nexport default ConnectedDropdown;\n","import React, { forwardRef } from 'react';\n\nconst formatStyle = (input: React.ReactNode): string | [string, string] => {\n if (!input) {\n return '';\n }\n\n const match = /^\\[(?<style>[^]+)\\]:(?<text>.+)/u.exec(input.toString());\n\n if (!match) {\n return input as string;\n }\n\n const { style, text } = match.groups as { style: string; text: string };\n return [style, text];\n};\n\ninterface StyledComponentProps {\n children: React.ReactNode;\n}\n\n/**\n * A little utility component that allows strings to be styled with a colour. An example where this\n * is used by a Square Zero Admin component is the `meta` prop of a `ListItem`. By using the\n * following syntax:\n *\n * ```\n * [style]:content\n * ```\n *\n * You are able to colour text that wouldn't otherwise be stylable. For example, the primary colour:\n *\n * ```\n * [primary]:Lorem Ipsum Dolor\n * ```\n *\n * If a style is specified, the text is also emboldened in order to emphasize the colour. If a\n * string is passed that does match the format, it is simply rendered as-is.\n *\n * React's forwardRef is required to handle situations where `Styled` is used with a `Link`, due to\n * the way the Next.js link works under the hood.\n */\nconst StyledComponent: React.ForwardRefRenderFunction<HTMLButtonElement, StyledComponentProps> = (\n { children }: StyledComponentProps,\n ref\n) => {\n const formatted = formatStyle(children);\n\n return Array.isArray(formatted) ? (\n <strong ref={ref} data-testid=\"styled-root\" style={{ color: `var(--clr-${formatted[0]})` }}>\n {formatted[1]}\n </strong>\n ) : (\n <span ref={ref} data-testid=\"styled-root\">\n {formatted}\n </span>\n );\n};\n\nconst Styled = forwardRef<HTMLButtonElement, StyledComponentProps>(StyledComponent);\n\nexport default Styled;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\n\nimport Styled from '@core/Styled';\n\nimport styles from './SummaryListItem.module.css';\n\ninterface SummaryListItemDefinition {\n key?: string;\n label?: string;\n render?: (key: string) => React.ReactNode;\n to?: string | null;\n type?: string;\n}\n\nexport type SummaryListValue = SummaryListItemDefinition | number | string;\n\nexport interface SummaryListObject {\n label: string;\n value: SummaryListValue;\n}\n\nconst renderDefinition = (\n definition: SummaryListItemDefinition | number | string\n): React.ReactNode => {\n if (typeof definition !== 'object') {\n return definition;\n }\n\n if (definition.render && typeof definition.render === 'function') {\n return definition.render(definition.key || '');\n }\n\n if (definition.type === 'link' && definition.to) {\n return <Link to={definition.to}>{definition.label}</Link>;\n }\n\n if (definition.type === 'styled') {\n return <Styled>{definition.label}</Styled>;\n }\n\n return 'object';\n};\n\nconst SummaryListItem: React.FunctionComponent<SummaryListObject> = ({ label, value }) => (\n <div className={styles.root}>\n <dt className={styles.term}>{label}</dt>\n <dd className={styles.definition}>{renderDefinition(value)}</dd>\n </div>\n);\n\nSummaryListItem.propTypes = {\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.shape({})])\n .isRequired,\n};\n\nexport default SummaryListItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport SummaryListItem from '@core/SummaryListItem';\nimport type { SummaryListObject } from '@core/SummaryListItem';\n\nimport styles from './SummaryList.module.css';\n\ninterface SummaryListProps {\n data: SummaryListObject[];\n isDisabled?: boolean;\n}\n\nconst SummaryList: React.FunctionComponent<SummaryListProps> = ({ data, isDisabled }) => (\n <dl\n className={classNames(styles.root, isDisabled && styles.rootIsDisabled)}\n data-testid=\"summary-list-root\"\n >\n {data.map((item) => (\n <SummaryListItem key={item.label} label={item.label} value={item.value} />\n ))}\n </dl>\n);\n\nSummaryList.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.shape({})])\n .isRequired,\n }).isRequired\n ).isRequired,\n isDisabled: PropTypes.bool,\n};\n\nexport default SummaryList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './EmptyMessage.module.css';\n\ninterface EmptyMessageProps {\n description?: string;\n title?: string;\n}\n\nconst DEFAULT_TITLE = 'No results found';\nconst DEFAULT_DESCRIPTION = 'If you think this is an error, please contact the site administrator';\n\n/**\n * By default, `EmptyMessage` simply displays a message to the user when no results have been found\n * in a particular list. However, the `title` and `description` can be customised, allowing the\n * component to be used for any situation where a standout message is required.\n */\nconst EmptyMessage: React.FunctionComponent<EmptyMessageProps> = ({ description, title }) => (\n <section className={styles.root}>\n <h1 className={styles.title}>{title || DEFAULT_TITLE}</h1>\n <p className={styles.description}>{description || DEFAULT_DESCRIPTION}</p>\n </section>\n);\n\nEmptyMessage.propTypes = {\n description: PropTypes.string,\n title: PropTypes.string,\n};\n\nexport default EmptyMessage;\n","import React from 'react';\n\nimport EmptyMessage from '@core/EmptyMessage';\nimport ErrorMessage from '@core/ErrorMessage';\nimport Loader from '@core/Loader';\n\nimport type { Columns } from '@core/TableCell';\nimport type { PaginationObject, Transformer } from '@utility/interfaces';\n\nexport interface ConnectedRepeaterRenderProps {\n columns?: Columns;\n data?: Record<string, unknown>[];\n isDisabled?: boolean;\n pagination?: PaginationObject;\n totals?: Record<string, number> | null;\n transformer?: Transformer;\n}\n\ninterface ConnectedRepeaterComponentProps {\n columns?: Columns;\n data?: Record<string, unknown>[];\n error?: string;\n isDisabled?: boolean;\n isLoading?: boolean;\n pagination?: PaginationObject;\n render: (props: ConnectedRepeaterRenderProps) => React.ReactElement;\n totals?: Record<string, number> | null;\n transformer?: Transformer;\n}\n\nconst ConnectedRepeaterComponent: React.FunctionComponent<ConnectedRepeaterComponentProps> = ({\n columns,\n data,\n error,\n isDisabled,\n isLoading,\n pagination,\n render,\n totals,\n transformer,\n}) => {\n if (error) {\n return <ErrorMessage>{error}</ErrorMessage>;\n }\n\n if (isLoading) {\n return <Loader />;\n }\n\n if (!data || !data.length) {\n return <EmptyMessage />;\n }\n\n const props: ConnectedRepeaterRenderProps = {\n columns,\n data,\n isDisabled,\n pagination,\n totals,\n transformer,\n };\n\n return render(props);\n};\n\nexport default ConnectedRepeaterComponent;\n","import React, { memo, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport CloseButton from '@core/CloseButton';\nimport Icon from '@core/Icon';\nimport InputPanel from '@core/InputPanel';\n\nimport type { FilterField } from '@filters/interfaces';\n\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport type { Remote, SimpleEvent, SimpleEventHandler, SimpleObject } from '@utility/interfaces';\n\nimport styles from './FilterItem.module.css';\n\ninterface PanelOptions {\n isScollable?: boolean;\n // eslint-disable-next-line @typescript-eslint/sort-type-union-intersection-members\n size?: 'sm' | 'md' | 'lg';\n}\n\ninterface FilterItemProps extends FilterField {\n onCancel: SimpleEventHandler;\n onChange: SimpleEventHandler;\n value?: string[] | string | null;\n}\n\nconst DEFAULT_PANEL_OPTIONS: PanelOptions = { size: 'md' };\n\nconst parseRemote = (remote: Remote): Remote => {\n if (Array.isArray(remote)) {\n return [remote[0], { ...remote[1], simpleview: '1' }];\n }\n return [remote, { simpleview: '1' }];\n};\n\nconst FilterItem: React.FunctionComponent<FilterItemProps> = ({\n data,\n label,\n name,\n props,\n remote,\n renderField,\n renderSummary,\n onCancel,\n onChange,\n panelOptions,\n value,\n}) => {\n const [isOpen, setIsOpen, node] = useClickOutside();\n const [isDisabled, setIsDisabled] = useState(Boolean(remote));\n\n const [remoteData, setRemoteData] = useState<SimpleObject[]>([]);\n const [panelIndex, setPanelIndex] = useState(0);\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n const handleChange = (event: SimpleEvent): void => {\n if (event.target.value !== '[internal]') {\n onChange(event);\n\n if (!props?.isMultiple) {\n setIsOpen(false);\n }\n }\n };\n\n const handleCancel = (): void => {\n onCancel({ target: { name, value: name } });\n\n setPanelIndex(0);\n setIsOpen(false);\n };\n\n const handleRemote = async (): Promise<void> => {\n if (!remote) {\n return;\n }\n\n const response = await ApiService.get<{ data: SimpleObject[] }>(parseRemote(remote));\n setRemoteData(response.data.data);\n setIsDisabled(false);\n };\n\n useEffect(() => {\n void handleRemote();\n }, []);\n\n const summaryArgs = {\n data: remote ? remoteData : data,\n props,\n value,\n };\n\n const summary = renderSummary ? renderSummary(summaryArgs) : value;\n\n const field = renderField({\n data: remote ? remoteData : data,\n extraProps: props,\n name,\n onChange: handleChange,\n panelIndex,\n setPanelIndex,\n value,\n });\n\n const parsedPanelOptions = Array.isArray(panelOptions) ? panelOptions : [panelOptions];\n\n return (\n <div\n ref={node}\n className={classNames(styles.root, isDisabled && styles.rootIsDisabled)}\n data-testid=\"filter-item-root\"\n >\n <div className={classNames(styles.inner, value && styles.innerHasValue)}>\n <div className={styles.icon}>\n {Array.isArray(value) && value.length > 1 ? (\n <span className={styles.count}>{value.length}</span>\n ) : (\n <Icon icon=\"filter\" size={12} />\n )}\n </div>\n <div className={styles.label} data-testid=\"filter-item-label\">\n {summary || label}\n </div>\n {value ? (\n <i className={styles.close}>\n <CloseButton label=\"Cancel\" onClick={handleCancel} size=\"sm\" />\n </i>\n ) : null}\n <button\n className={classNames(styles.control, value && styles.controlHasValue)}\n onClick={toggleIsOpen}\n type=\"button\"\n >\n {isOpen ? 'Close' : 'Open'}\n </button>\n </div>\n\n {isOpen && (\n <InputPanel {...DEFAULT_PANEL_OPTIONS} {...(parsedPanelOptions[panelIndex] || {})}>\n {field}\n </InputPanel>\n )}\n </div>\n );\n};\n\nFilterItem.propTypes = {\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n renderField: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n props: PropTypes.shape({\n isMultiple: PropTypes.bool,\n }),\n renderSummary: PropTypes.func,\n};\n\nexport default memo(FilterItem);\n","import { parseSearch, stringifySearch } from '@sqrzro/utility';\n\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\ninterface Query {\n [key: string]: Query | Query[] | string[] | string;\n}\n/* eslint-enable */\n\nexport type FilterMap = Map<string, string[] | string | null>;\n\nexport interface FilterOptions {\n shouldFilterPage?: boolean;\n}\n\nconst FILTERED_KEYS = ['id', 'alias'];\n\nconst parseQueryEntry = (entry: Query | Query[] | string[] | string): string[] | string => {\n if (Array.isArray(entry)) {\n return entry.map((item) => item.toString());\n }\n\n return entry.toString();\n};\n\nconst parseQuery = (query?: Query, options?: FilterOptions): FilterMap => {\n const map = new Map<string, string[] | string | null>();\n\n const entries = Object.entries(query || {}).filter(([key, value]) => {\n if (value === '') {\n return false;\n }\n if (FILTERED_KEYS.includes(key)) {\n return false;\n }\n if (options?.shouldFilterPage && key === 'page') {\n return false;\n }\n return true;\n });\n\n for (const [key, value] of entries) {\n map.set(key, parseQueryEntry(value));\n }\n\n return map;\n};\n\nconst makeUrl = (data: FilterMap, includePathname = true): string =>\n `${includePathname ? `${window.location.pathname}?` : ''}${stringifySearch(\n Object.fromEntries(data)\n )}`;\n\nconst getUrlForFilters = (data?: Query, includePathname: boolean = true): string => {\n const filters = parseQuery({ ...parseSearch(window.location.search), ...(data || {}) });\n return makeUrl(filters, includePathname);\n};\n\nexport default { getUrlForFilters, makeUrl, parseQuery };\n","import { useEffect, useState } from 'react';\nimport { useRouter } from 'next/router';\n\nimport { parseSearch } from '@sqrzro/utility';\n\nimport FilterService from '@services/FilterService';\nimport type { FilterMap, FilterOptions } from '@services/FilterService';\n\nconst useFilters = (options?: FilterOptions): [FilterMap, (data: FilterMap) => void] => {\n const router = useRouter();\n const [filters, setFilters] = useState<FilterMap>(\n FilterService.parseQuery(parseSearch(window.location.search))\n );\n\n useEffect(() => {\n setFilters(FilterService.parseQuery(parseSearch(window.location.search), options));\n }, [window.location.search]);\n\n const applyFilters = (data: FilterMap): void => {\n void router.push(FilterService.makeUrl(data));\n };\n\n return [filters, applyFilters];\n};\n\nexport default useFilters;\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Button from '@components/Button';\nimport TextInput from '@components/TextInput';\n\nimport FilterItem from '@core/FilterItem';\n\nimport useFilters from '@hooks/useFilters';\n\nimport type { FilterField } from '@filters/interfaces';\nimport type { SimpleAction, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './Filters.module.css';\n\ninterface FiltersProps {\n actions?: SimpleAction[];\n fields?: FilterField[];\n hasSearch?: boolean;\n isDisabled?: boolean;\n}\n\nconst Filters: React.FunctionComponent<FiltersProps> = ({\n actions,\n fields,\n hasSearch,\n isDisabled,\n}) => {\n const [filters, setFilters] = useFilters({ shouldFilterPage: true });\n const [pendingSearch, setPendingSearch] = useState('');\n\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleIsOpen = (): void => setIsOpen(!isOpen);\n\n useEffect(() => {\n setPendingSearch(filters.get('search')?.toString() || '');\n }, [filters.get('search')]);\n\n const handleCancel = (event: SimpleEvent): void => {\n const newFilters = new Map(filters);\n\n newFilters.delete(event.target.value as string);\n setFilters(newFilters);\n };\n\n const handleChange = (event: SimpleEvent): void => {\n const newFilters = new Map(filters);\n\n /*\n * `event.target.value` can be null, so the optional check (?.) is required for typescript.\n * However, no null value can be passed from a filter, so this can be ignored by test\n * coverage.\n */\n /* istanbul ignore next */\n const value = Array.isArray(event.target.value)\n ? event.target.value.map((item) => item?.toString() || '')\n : event.target.value?.toString() || '';\n\n newFilters.set(event.target.name, value);\n setFilters(newFilters);\n };\n\n const handleSearch = (event: React.KeyboardEvent): void => {\n if (event.key === 'Enter') {\n handleChange({ target: { name: 'search', value: pendingSearch } });\n }\n };\n\n const handleSearchClear = (): void => {\n handleChange({ target: { name: 'search', value: '' } });\n setPendingSearch('');\n };\n\n return (\n <aside className={styles.root} data-testid=\"filters-root\">\n <div className={classNames(styles.control, isOpen && styles.controlIsOpen)}>\n <Button onClick={toggleIsOpen} variant=\"bordered\">\n Filters{filters.size ? ` (${filters.size})` : '...'}\n </Button>\n </div>\n <div\n className={classNames(styles.content, isOpen && styles.contentIsOpen)}\n data-testid=\"filters-content\"\n >\n <div className={styles.section}>\n {hasSearch && (\n <div className={styles.search}>\n <TextInput\n name=\"search\"\n onChange={(event): void =>\n setPendingSearch(event.target.value as string)\n }\n onClear={handleSearchClear}\n onKeyDown={handleSearch}\n placeholder=\"Search...\"\n value={pendingSearch}\n isClearable\n />\n </div>\n )}\n {hasSearch && fields?.length && (\n <i className={styles.divider} data-testid=\"filters-divider\" />\n )}\n {fields?.map((item) => (\n <FilterItem\n key={item.label}\n onCancel={handleCancel}\n onChange={handleChange}\n value={filters.get(item.name)}\n {...item}\n />\n ))}\n </div>\n {actions?.length && (\n <div className={styles.actions}>\n {actions.map((item) => (\n <Button\n key={item.label}\n isDisabled={isDisabled || item.isDisabled}\n onClick={item.onClick}\n variant={item.variant || 'bordered'}\n >\n {item.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n <div className={classNames(styles.close, isOpen && styles.closeIsOpen)}>\n <Button onClick={toggleIsOpen} variant=\"link\">\n Close Filters\n </Button>\n </div>\n </aside>\n );\n};\n\nFilters.propTypes = {\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n fields: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n renderField: PropTypes.func.isRequired,\n }).isRequired\n ),\n hasSearch: PropTypes.bool,\n isDisabled: PropTypes.bool,\n};\n\nexport default Filters;\n","/* eslint-disable @typescript-eslint/naming-convention */\n\nimport React, { Fragment, useEffect, useState } from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport PropTypes from 'prop-types';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport SummaryList from '@components/SummaryList';\nimport type { SummaryListObject, SummaryListValue } from '@core/SummaryListItem';\nimport ConnectedRepeaterComponent from '@core/ConnectedRepeaterComponent';\nimport type { ConnectedRepeaterRenderProps } from '@core/ConnectedRepeaterComponent';\nimport Filters from '@core/Filters';\nimport type { Columns } from '@core/TableCell';\n\nimport useFilters from '@hooks/useFilters';\n\nimport type { FilterField } from '@filters/interfaces';\nimport type { PaginationObject, Remote, SimpleAction, Transformer } from '@utility/interfaces';\n\nimport type { FilterMap } from '@services/FilterService';\n\ninterface ResponseData {\n data?: Record<string, unknown>[];\n totals?: Record<string, number> | null;\n meta?: { current_page: string; last_page: string };\n summary?: Record<string, string>;\n}\n\nexport interface ListFunctions {\n reloadList: () => void;\n}\n\nexport interface ConnectedRepeaterElementProps {\n actions?: SimpleAction[];\n columns?: Columns;\n filters?: FilterField[];\n hasSearch?: boolean;\n hasSummaryToggle?: boolean;\n isDisabled?: boolean;\n remote: Remote;\n setFunctions?: (functions: ListFunctions) => void;\n summary?: SummaryListObject[];\n transformer?: Transformer;\n}\n\ninterface ConnectedRepeaterProps extends ConnectedRepeaterElementProps {\n render: (props: ConnectedRepeaterRenderProps) => React.ReactElement;\n}\n\nconst parseRemote = (remote: Remote, filterData: FilterMap): Remote => {\n if (typeof remote === 'string') {\n return [remote, Object.fromEntries(filterData)];\n }\n return [remote[0], { ...remote[1], ...Object.fromEntries(filterData) }];\n};\n\nconst transformPagination = (data: {\n current_page: string;\n last_page: string;\n}): PaginationObject => ({\n activePage: parseInt(data.current_page, 10),\n pageCount: parseInt(data.last_page, 10),\n});\n\n/**\n * Note: There are two ways the data for `<SummaryList>` can be defined - either just passed\n * through as a normal `SummaryListItem` or via a `Record<string, string>` from the remote\n * response. If that's the case, the Record needs to be converted to a SummaryListItem, using the\n * `value` of the Record as the key. For example, take a remote response with a `summary` object of\n * the following:\n *\n * ```\n * { lorem: 'ipsum' }\n * ```\n *\n * In this instance, you would pass a `summary` prop like so:\n *\n * ```\n * { label: 'Lorem', value: 'lorem' }\n * ```\n *\n * The parser function would then take the value of 'lorem' and replace it with the remote value\n * with the matching key, which would leave you with the following:\n *\n * ```\n * { label: 'Lorem', value: 'ipsum' }\n * ```\n */\n\nconst parseSummaryValue = (\n value: SummaryListValue,\n remoteSummary: Record<string, string>\n): SummaryListValue => {\n if (typeof value === 'string' || typeof value === 'number') {\n return remoteSummary[value];\n }\n\n if (typeof value.key === 'undefined') {\n return '';\n }\n\n return { ...value, key: remoteSummary[value.key] };\n};\n\nconst parseSummary = (\n summary: SummaryListObject[],\n remoteSummary: Record<string, string>\n): SummaryListObject[] =>\n summary.map((item) => ({ ...item, value: parseSummaryValue(item.value, remoteSummary) }));\n\nconst ConnectedRepeater: React.FunctionComponent<ConnectedRepeaterProps> = ({\n actions,\n columns,\n filters,\n hasSearch,\n hasSummaryToggle,\n isDisabled,\n remote,\n render,\n setFunctions,\n summary,\n transformer,\n}) => {\n const [filterData] = useFilters();\n\n const [data, setData] = useState<Record<string, unknown>[]>();\n const [pagination, setPagination] = useState<PaginationObject>();\n const [totals, setTotals] = useState<Record<string, number> | null>();\n\n const [error, setError] = useState('');\n\n const [isLoading, setIsLoading] = useState(true);\n const [isRefreshing, setIsRefreshing] = useState(true);\n\n const [isSummaryOpen, setIsSummaryOpen] = useState(false);\n const [remoteSummary, setRemoteSummary] = useState<SummaryListObject[]>([]);\n\n const toggleIsSummaryOpen = (): void => setIsSummaryOpen(!isSummaryOpen);\n\n const getData = async (): Promise<void> => {\n setIsRefreshing(true);\n\n if (summary) {\n setRemoteSummary(summary.map((item) => ({ ...item, value: '-' })));\n }\n\n try {\n const response = await ApiService.get<ResponseData>(parseRemote(remote, filterData));\n setIsLoading(false);\n setIsRefreshing(false);\n\n setData(response.data.data);\n setTotals(response.data.totals);\n\n if (response.data.summary) {\n setRemoteSummary(parseSummary(summary || [], response.data.summary));\n }\n\n if (response.data.meta) {\n setPagination(transformPagination(response.data.meta));\n }\n } catch (err) {\n if (err instanceof Error) {\n setError(err.toString());\n }\n\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (setFunctions) {\n const functions: ListFunctions = { reloadList: async () => getData() };\n setFunctions(functions);\n }\n }, [filterData]);\n\n useDeepCompareEffect(() => {\n void getData();\n }, [filterData]);\n\n const summaryAction = {\n label: isSummaryOpen ? 'Hide Summary' : 'Show Summary',\n onClick: toggleIsSummaryOpen,\n };\n\n const parsedActions =\n summary && hasSummaryToggle ? [...(actions || []), summaryAction] : actions;\n\n return (\n <Fragment>\n {(hasSearch || filters?.length) && (\n <Filters\n actions={parsedActions}\n fields={filters}\n hasSearch={hasSearch}\n isDisabled={!data || !data.length}\n />\n )}\n {summary && (!hasSummaryToggle || (hasSummaryToggle && isSummaryOpen)) ? (\n <SummaryList data={remoteSummary} isDisabled={isDisabled || isRefreshing} />\n ) : null}\n <ConnectedRepeaterComponent\n columns={columns}\n data={data}\n error={error}\n isDisabled={isDisabled || isRefreshing}\n isLoading={isLoading}\n pagination={pagination}\n render={render}\n totals={totals}\n transformer={transformer}\n />\n </Fragment>\n );\n};\n\nConnectedRepeater.propTypes = {\n render: PropTypes.func.isRequired,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n columns: PropTypes.shape({}),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n renderField: PropTypes.func.isRequired,\n }).isRequired\n ),\n hasSearch: PropTypes.bool,\n hasSummaryToggle: PropTypes.bool,\n isDisabled: PropTypes.bool,\n setFunctions: PropTypes.func,\n summary: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.shape({})])\n .isRequired,\n }).isRequired\n ),\n};\n\nexport default ConnectedRepeater;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport useVariant from '@hooks/useVariant';\n\nimport type { ButtonVariant, SimpleAction } from '@utility/interfaces';\n\nimport styles from './ListItemAction.module.css';\n\nconst ListItemAction: React.FunctionComponent<SimpleAction> = ({ label, onClick, variant }) => {\n const { applyVariantClassName } = useVariant<ButtonVariant>(variant);\n\n return (\n <button\n className={classNames(styles.root, applyVariantClassName(styles))}\n onClick={onClick}\n type=\"button\"\n >\n {label}\n </button>\n );\n};\n\nListItemAction.propTypes = {\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport default ListItemAction;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport ListItemAction from '@core/ListItemAction';\n\nimport useClickOutside from '@hooks/useClickOutside';\n\nimport type { SimpleAction } from '@utility/interfaces';\n\nimport styles from './ListItemActions.module.css';\n\ninterface ListItemActionsProps {\n actions: SimpleAction[] | ((data?: Record<string, unknown>) => SimpleAction[]);\n data?: Record<string, unknown>;\n}\n\nconst ListItemActions: React.FunctionComponent<ListItemActionsProps> = ({ actions, data }) => {\n const [isOpen, setIsOpen, node] = useClickOutside();\n\n const toggleOpen = (): void => setIsOpen(!isOpen);\n\n const transformed = typeof actions === 'function' ? actions(data) : actions;\n\n return (\n <div ref={node} className={styles.root}>\n <button className={styles.control} onClick={toggleOpen} type=\"button\">\n {isOpen ? 'Close' : 'Open'}\n <i />\n </button>\n <ul className={classNames(styles.list, isOpen && styles.listIsOpen)}>\n {transformed.filter(Boolean).map((item) => (\n <li key={item.label} className={styles.item}>\n <ListItemAction {...item} />\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nListItemActions.propTypes = {\n actions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n PropTypes.func,\n ]).isRequired,\n data: PropTypes.shape({}).isRequired,\n};\n\nexport default ListItemActions;\n","import React, { isValidElement } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\n\nimport Styled from '@core/Styled';\n\nimport styles from './ListItemMetaItem.module.css';\n\nexport interface ValueObject {\n to: string;\n label: string;\n}\n\ninterface ListItemMetaItemProps {\n value?: React.ReactElement | ValueObject | string | null;\n}\n\nconst ListItemMetaItem: React.FunctionComponent<ListItemMetaItemProps> = ({ value }) => {\n if (isValidElement(value)) {\n return <li className={styles.root}>{value}</li>;\n }\n\n if (typeof value !== 'object') {\n return (\n <li className={styles.root}>\n <Styled>{value}</Styled>\n </li>\n );\n }\n\n if (value?.to) {\n return (\n <li className={styles.root}>\n <Link to={value.to}>{value.label}</Link>\n </li>\n );\n }\n\n return null;\n};\n\nListItemMetaItem.propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n to: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n PropTypes.element,\n ]),\n};\n\nexport default ListItemMetaItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { EventService } from '@sqrzro/utility';\n\nimport Link from '@components/Link';\nimport Styled from '@core/Styled';\n\nimport styles from './ListItemTitle.module.css';\n\ninterface ListItemTitleProps {\n children: React.ReactNode;\n isPreload?: boolean;\n onClick?: React.MouseEventHandler<HTMLAnchorElement | HTMLHeadingElement>;\n to?: string | null;\n}\n\nconst ListItemTitle: React.FunctionComponent<ListItemTitleProps> = ({\n children,\n isPreload,\n onClick,\n to,\n}) => {\n const handlePreloadTitle = (\n event: React.MouseEvent<HTMLAnchorElement | HTMLHeadingElement>\n ): void => {\n if (onClick) {\n onClick(event);\n }\n\n if (!isPreload) {\n return;\n }\n\n EventService.publish('@app/title', children);\n };\n\n if (to) {\n return (\n <h2 className={styles.root}>\n <Link onClick={handlePreloadTitle} to={to}>\n <Styled>{children}</Styled>\n </Link>\n </h2>\n );\n }\n\n const clickProps = {\n className: classNames(styles.root, styles.rootIsLink),\n onClick,\n role: 'button',\n tabIndex: 0,\n };\n\n const props = onClick ? clickProps : { className: styles.root };\n\n return (\n <h2 {...props}>\n <Styled>{children}</Styled>\n </h2>\n );\n};\n\nListItemTitle.propTypes = {\n children: PropTypes.node.isRequired,\n isPreload: PropTypes.bool,\n to: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default ListItemTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ListItemActions from '@core/ListItemActions';\nimport ListItemMetaItem from '@core/ListItemMetaItem';\nimport type { ValueObject } from '@core/ListItemMetaItem';\nimport ListItemTitle from '@core/ListItemTitle';\n\nimport Panel from '@core/Panel';\n\nimport type { TransformedObject } from '@utility/interfaces';\n\nimport styles from './ListItem.module.css';\n\ninterface ListItemProps extends TransformedObject {\n $shouldPreloadTitle?: boolean;\n content?: string;\n meta?: (React.ReactElement | ValueObject | string | null | undefined)[];\n onClick?: React.MouseEventHandler<HTMLAnchorElement | HTMLHeadingElement>;\n secondary?: { title: string };\n title?: string;\n to?: string;\n}\n\nconst ListItem: React.FunctionComponent<ListItemProps> = ({\n $actions,\n $original,\n $shouldPreloadTitle,\n content,\n meta,\n onClick,\n secondary,\n title,\n to,\n}) => (\n <Panel>\n <article>\n {title ? (\n <div className={styles.inner}>\n <ListItemTitle isPreload={$shouldPreloadTitle} onClick={onClick} to={to}>\n {title}\n </ListItemTitle>\n {secondary && <p className={styles.title}>{secondary.title}</p>}\n </div>\n ) : null}\n\n {content ? <div className={styles.content}>{content}</div> : null}\n\n {(meta || $actions) && (\n <footer className={styles.footer}>\n {meta && (\n <ul className={styles.meta}>\n {/* eslint-disable react/no-array-index-key */}\n {meta.map((item, index) => (\n <ListItemMetaItem key={index} value={item} />\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </ul>\n )}\n\n {$actions && <ListItemActions actions={$actions} data={$original} />}\n </footer>\n )}\n </article>\n </Panel>\n);\n\nListItem.propTypes = {\n $original: PropTypes.shape({}).isRequired,\n $actions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n PropTypes.func,\n ]),\n $shouldPreloadTitle: PropTypes.bool,\n content: PropTypes.string,\n meta: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n to: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n PropTypes.element,\n ])\n ),\n secondary: PropTypes.shape({\n title: PropTypes.string.isRequired,\n }),\n title: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default ListItem;\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport Link from '@components/Link';\n\nimport styles from './PaginationItem.module.css';\n\ninterface PaginationItemProps {\n activePage: number;\n pageNumber: number | '-';\n}\n\nconst getLinkUrl = (pageNumber: number | '-'): string => {\n const windowLocation = `${window.location.pathname}${window.location.search}`;\n const cleanUrl = windowLocation.replace(/(?:\\?|&)page=[0-9]+/u, '');\n const hasQuery = Boolean(/\\?/u.exec(windowLocation) && !/\\?page/u.exec(windowLocation));\n\n return `${cleanUrl}${hasQuery ? '&' : '?'}page=${pageNumber}`;\n};\n\nconst PaginationItem: React.FunctionComponent<PaginationItemProps> = ({\n activePage,\n pageNumber,\n}) => {\n if (pageNumber === '-') {\n return (\n <span className={styles.gap} data-testid=\"pagination-item-gap\">\n &bull;&bull;&bull;\n </span>\n );\n }\n\n return (\n <Link\n className={classNames(styles.link, activePage === pageNumber && styles.linkIsActive)}\n data-testid=\"pagination-item-link\"\n to={getLinkUrl(pageNumber)}\n >\n {pageNumber}\n </Link>\n );\n};\n\nPaginationItem.propTypes = {};\n\nexport default PaginationItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { filterDuplicates } from '@sqrzro/utility';\n\nimport PaginationItem from '@core/PaginationItem';\n\nimport type { PaginationObject } from '@utility/interfaces';\n\nimport styles from './Pagination.module.css';\n\n/**\n * Find an index. In many cases this is simply the active page. However, with the first and\n * last pages, the index is moved 'in' one space (i.e. when the active page is 1, the index is\n * 2). This ensures that the first 3 links are shown on the first page, and the last 3 on the\n * last page.\n */\nconst getIndex = (activePage: number, pageCount: number): number => {\n if (activePage === 1) {\n return 2;\n }\n if (activePage === pageCount) {\n return pageCount - 1;\n }\n return activePage;\n};\n\n/**\n * Reduce the links to their final array. If it's the first value, or the previous value is the\n * number before the current one (i.e. the current is 4 and the previous is 3), add it to the array.\n * Otherwise (i.e. the current is 5 and the previous is 2), add a hyphen and then the value. This\n * will then get interpreted as an ellipsis in the pagination when rendered.\n */\nconst reduceLinks = (\n acc: (number | '-')[],\n cur: number,\n index: number,\n arr: (number | '-')[]\n): (number | '-')[] => {\n if (index === 0 || arr[index - 1] === cur - 1) {\n return [...acc, cur];\n }\n return [...acc, '-', cur];\n};\n\n/**\n * The idea of the pagination is to always have the following links available:\n * - The first page\n * - The previous page (if applicable)\n * - The current page\n * - The next page (if applicable)\n * - The last page\n *\n * There are situations where some of these will be the same page (i.e. on page 2, the previous page\n * and the first page will both be page 1). When on the first page, links to the first 3 pages are\n * displayed (rather than 2, which would be the default if the above rules are followed). The same\n * is true with the last page\n */\nconst getLinks = (activePage: number, pageCount: number): (number | '-')[] => {\n const index = getIndex(activePage, pageCount);\n\n return filterDuplicates<number>([1, index - 1, index, index + 1, pageCount])\n .filter((item) => item > 0 && item <= pageCount)\n .reduce(reduceLinks, []);\n};\n\ninterface PaginationProps extends PaginationObject {\n isDisabled?: boolean;\n}\n\nconst Pagination: React.FunctionComponent<PaginationProps> = ({\n activePage,\n isDisabled,\n pageCount,\n}) => {\n if (pageCount === 1) {\n return null;\n }\n\n return (\n <ul className={classNames(styles.root, isDisabled && styles.rootIsDisabled)}>\n {/* eslint-disable react/no-array-index-key */}\n {getLinks(activePage, pageCount).map((item, index) => (\n <li key={index} className={styles.item}>\n <PaginationItem activePage={activePage} pageNumber={item} />\n </li>\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </ul>\n );\n};\n\nPagination.propTypes = {\n activePage: PropTypes.number.isRequired,\n pageCount: PropTypes.number.isRequired,\n isDisabled: PropTypes.bool,\n};\n\nexport default Pagination;\n","import React, { Fragment } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport EmptyMessage from '@core/EmptyMessage';\nimport ListItem from '@core/ListItem';\nimport Pagination from '@core/Pagination';\n\nimport type { TransformedObject, Transformer } from '@utility/interfaces';\n\nimport styles from './List.module.css';\n\nconst DEFAULT_TRANSFORMER = (item: Record<string, unknown>): TransformedObject => ({\n $id: item.id as number,\n $original: item,\n ...item,\n});\n\nconst transformData = (\n data: Record<string, unknown>[],\n transformer: Transformer\n): TransformedObject[] => {\n const [transformFn, actions] = Array.isArray(transformer) ? transformer : [transformer];\n return data.map((item) => ({ ...transformFn(item), $actions: actions, $original: item }));\n};\n\nexport interface ListProps {\n data?: Record<string, unknown>[];\n isDisabled?: boolean;\n pagination?: { activePage: number; pageCount: number } | null;\n transformer?: Transformer;\n}\n\n/**\n * Displays a list of items. Each item in the `data` prop is passed through the `transformer`\n * function and then displayed. For more information about what `transformer` options are\n * available, take a look at the `ListItem` documentation.\n *\n * The only value that is required for each transformed item is an `$id` as this is used for the\n * `key` prop.\n *\n * If there is no data, an `EmptyMessage` is displayed.\n */\nconst List: React.FunctionComponent<ListProps> = ({\n data,\n pagination,\n transformer,\n isDisabled,\n}) => {\n if (!data || !data.length) {\n return <EmptyMessage />;\n }\n\n const transformed = transformData(data, transformer || DEFAULT_TRANSFORMER);\n\n return (\n <Fragment>\n <ul className={classNames(styles.root, isDisabled && styles.rootIsDisabled)}>\n {transformed.map((item) => (\n <li key={item.$id}>\n <ListItem {...item} />\n </li>\n ))}\n </ul>\n {pagination && <Pagination isDisabled={isDisabled} {...pagination} />}\n </Fragment>\n );\n};\n\nList.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({}).isRequired),\n isDisabled: PropTypes.bool,\n pagination: PropTypes.shape({\n activePage: PropTypes.number.isRequired,\n pageCount: PropTypes.number.isRequired,\n }),\n};\n\nexport default List;\n","import React from 'react';\n\nimport ConnectedRepeater from '@core/ConnectedRepeater';\nimport type { ConnectedRepeaterElementProps } from '@core/ConnectedRepeater';\n\nimport List from '@components/List';\n\nconst ConnectedList: React.FunctionComponent<ConnectedRepeaterElementProps> = (props) => (\n <ConnectedRepeater\n {...props}\n render={(renderProps): React.ReactElement => <List {...renderProps} />}\n />\n);\n\nexport default ConnectedList;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport useLayout from '@hooks/useLayout';\n\nimport styles from './Container.module.css';\n\ninterface ContainerProps {\n children: React.ReactNode;\n isWide?: boolean;\n}\n\nconst Container: React.FunctionComponent<ContainerProps> = ({ children, isWide }) => {\n const { applyLayoutClassName } = useLayout();\n\n return (\n <div\n className={classNames(\n styles.root,\n isWide && styles.rootIsWide,\n applyLayoutClassName(styles)\n )}\n >\n {children}\n </div>\n );\n};\n\nContainer.propTypes = {\n children: PropTypes.node.isRequired,\n isWide: PropTypes.bool,\n};\n\nexport default Container;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ErrorMessage from '@core/ErrorMessage';\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nclass ErrorBoundary extends Component<Record<string, unknown>, ErrorBoundaryState> {\n public static propTypes = {\n children: PropTypes.node.isRequired,\n };\n\n public constructor(props: Record<string, unknown>) {\n super(props);\n this.state = { error: null };\n }\n\n public static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error };\n }\n\n /* eslint-disable class-methods-use-this, no-console */\n public shouldComponentUpdate(): boolean {\n return true;\n }\n /* eslint-enable */\n\n public render(): React.ReactNode {\n const { error } = this.state;\n const { children } = this.props;\n\n if (error) {\n return <ErrorMessage>{error.toString()}</ErrorMessage>;\n }\n\n return children;\n }\n}\n\nexport default ErrorBoundary;\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { useRouter } from 'next/router';\nimport type { NextRouter } from 'next/router';\nimport PropTypes from 'prop-types';\n\nimport { EventService } from '@sqrzro/utility';\n\nimport Link from '@components/Link';\nimport useLayout from '@hooks/useLayout';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabItem {\n label: string;\n route: string;\n isDisabled?: boolean | ((item: TabItem, sceneData: Record<string, unknown>) => boolean) | null;\n}\n\nconst checkDisabled = (item: TabItem, sceneData: Record<string, unknown>): boolean => {\n if (!item.isDisabled) {\n return false;\n }\n\n return typeof item.isDisabled === 'function'\n ? item.isDisabled(item, sceneData)\n : item.isDisabled;\n};\n\nconst checkActive = (router: NextRouter, route: string): boolean => {\n if (!router) {\n return false;\n }\n\n return router.pathname === `/${route.replace(/^\\//u, '')}`;\n};\n\ninterface TabsProps {\n data: TabItem[];\n}\n\nexport const Tabs: React.FunctionComponent<TabsProps> = ({ data }) => {\n const { applyLayoutClassName } = useLayout();\n const router = useRouter();\n const [sceneData, setSceneData] = useState({});\n\n useEffect(() => {\n const sub = EventService.subscribe('@scene/data', (_key, responseData) => {\n setSceneData(responseData);\n });\n\n return (): void => {\n EventService.unsubscribe(sub);\n };\n }, []);\n\n return (\n <nav className={classNames(styles.root, applyLayoutClassName(styles))}>\n <ul className={styles.list}>\n {data.map((item) => (\n <li\n key={item.label}\n className={classNames(\n styles.item,\n checkDisabled(item, sceneData) && styles.itemIsDisabled\n )}\n >\n <Link\n className={classNames(\n styles.link,\n checkActive(router, item.route) && styles.linkIsActive\n )}\n to={item.route}\n >\n {item.label}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n\nTabs.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n isDisabled: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n label: PropTypes.string.isRequired,\n route: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n};\n\nexport default Tabs;\n","import type { ReactNode } from 'react';\nimport { EventService } from '@sqrzro/utility';\n\nexport interface ConfirmModalData {\n description: ReactNode;\n label?: string;\n onConfirm?: () => void;\n}\n\nexport interface ConfirmObject {\n ask: (data: ConfirmModalData) => boolean;\n close: () => boolean;\n}\n\nconst ask = (data: ConfirmModalData): boolean => EventService.publish('@confirm/send', data);\n\nconst close = (): boolean => EventService.publish('@confirm/send', null);\n\nconst ConfirmService: ConfirmObject = { ask, close };\n\nexport default ConfirmService;\n","import React, { Fragment, useEffect } from 'react';\nimport Head from 'next/head';\nimport PropTypes from 'prop-types';\n\nimport { EventService } from '@sqrzro/utility';\n\nimport Container from '@core/Container';\nimport ErrorBoundary from '@core/ErrorBoundary';\nimport Tabs from '@core/Tabs';\nimport type { TabItem } from '@core/Tabs';\nimport useAppContext from '@hooks/useAppContext';\n\nimport ConfirmService from '@services/ConfirmService';\n\ninterface SceneProps {\n children: React.ReactNode;\n isWide?: boolean;\n tabs?: TabItem[];\n title: string;\n}\n\nconst Scene: React.FunctionComponent<SceneProps> = ({ children, isWide, tabs, title }) => {\n const { name } = useAppContext();\n\n useEffect(() => {\n ConfirmService.close();\n EventService.publish('@app/title', title);\n }, [title]);\n\n return (\n <Fragment>\n <Head>\n <title>\n {title} | {name}\n </title>\n </Head>\n {tabs && tabs.length > 0 && <Tabs data={tabs} />}\n <Container isWide={isWide}>\n <ErrorBoundary>{children}</ErrorBoundary>\n </Container>\n </Fragment>\n );\n};\n\nScene.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n isWide: PropTypes.bool,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n isDisabled: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n label: PropTypes.string.isRequired,\n route: PropTypes.string.isRequired,\n }).isRequired\n ),\n};\n\nexport default Scene;\n","import React, { Children, cloneElement, isValidElement, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ApiService, EventService } from '@sqrzro/utility';\n\nimport ErrorMessage from '@core/ErrorMessage';\nimport Loader from '@core/Loader';\nimport type { TabItem } from '@core/Tabs';\n\nimport Scene from '@components/Scene';\n\nimport type { Remote } from '@utility/interfaces';\n\ninterface ConnectedSceneProps {\n children: React.ReactNode;\n remote: Remote;\n tabs?: TabItem[];\n title: string | ((data: Record<string, unknown>) => string);\n}\n\nconst ConnectedScene: React.FunctionComponent<ConnectedSceneProps> = ({\n children,\n remote,\n tabs,\n title,\n}) => {\n const [data, setData] = useState<Record<string, unknown>>();\n const [error, setError] = useState('');\n\n const getData = async (): Promise<void> => {\n const [alias, params] = Array.isArray(remote) ? remote : [remote, {}];\n\n try {\n const response = await ApiService.get(alias, params);\n EventService.publish('@scene/data', response.data);\n } catch (err) {\n if (err instanceof Error) {\n setError(err.toString());\n }\n }\n };\n\n useEffect(() => {\n const sub = EventService.subscribe('@scene/data', (_key, responseData) => {\n setData(responseData);\n });\n\n void getData();\n\n return (): void => {\n EventService.unsubscribe(sub);\n };\n }, []);\n\n if (!isValidElement(children)) {\n return null;\n }\n\n if (error) {\n return <ErrorMessage isScene>{error}</ErrorMessage>;\n }\n\n if (!data) {\n return <Loader />;\n }\n\n const childrenWithData = Children.map(children, (child: React.ReactElement) => {\n if (!child) {\n return null;\n }\n return cloneElement(child, { data });\n });\n\n const renderedTitle = typeof title === 'function' ? title(data) : title;\n\n return (\n <Scene tabs={tabs} title={renderedTitle}>\n {childrenWithData}\n </Scene>\n );\n};\n\nConnectedScene.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n isDisabled: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]).isRequired,\n label: PropTypes.string.isRequired,\n route: PropTypes.string.isRequired,\n }).isRequired\n ),\n};\n\nexport default ConnectedScene;\n","import React, { isValidElement } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Styled from '@core/Styled';\n\nimport styles from './TableCell.module.css';\n\nexport type Columns = Record<string, string | [string, boolean?]>;\n\ninterface TableCellProps {\n value?: React.ReactElement | string;\n isRightAligned?: boolean;\n}\n\nconst renderCellValue = (value?: React.ReactElement | string): React.ReactNode => {\n if (!value) {\n return null;\n }\n\n if (isValidElement(value)) {\n return value;\n }\n\n return <Styled>{value}</Styled>;\n};\n\nconst TableCell: React.FunctionComponent<TableCellProps> = ({ isRightAligned, value }) => (\n <td className={classNames(styles.root, isRightAligned && styles.rootIsRightAligned)}>\n {renderCellValue(value)}\n </td>\n);\n\nTableCell.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n isRightAligned: PropTypes.bool,\n};\n\nexport default TableCell;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Assistive from '@core/Assistive';\nimport type { TransformedColumn } from '@core/TableRow';\n\nimport styles from './TableHead.module.css';\n\ninterface TableHeadProps {\n hasActions?: boolean;\n columns: TransformedColumn[];\n}\n\nconst TableHead: React.FunctionComponent<TableHeadProps> = ({ hasActions, columns }) => (\n <thead>\n <tr>\n {columns.map((item) => (\n <th\n key={item.key}\n className={classNames(\n styles.root,\n item.isRightAligned && styles.rootIsRightAligned\n )}\n >\n {item.title}\n </th>\n ))}\n {hasActions && (\n <th className={classNames(styles.root)}>\n <Assistive>Actions</Assistive>\n </th>\n )}\n </tr>\n </thead>\n);\n\nTableHead.propTypes = {\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n hasActions: PropTypes.bool,\n};\n\nexport default TableHead;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ListItemActions from '@core/ListItemActions';\n\nimport type { SimpleAction } from '@utility/interfaces';\n\nimport cellStyles from '../TableCell/TableCell.module.css';\nimport styles from './TableActionsCell.module.css';\n\ninterface TableActionsCellProps {\n actions: SimpleAction[] | ((data?: Record<string, unknown>) => SimpleAction[]);\n data?: Record<string, unknown>;\n}\n\nconst TableActionsCell: React.FunctionComponent<TableActionsCellProps> = ({ actions, data }) => (\n <td className={cellStyles.root}>\n <div className={styles.inner}>\n <ListItemActions actions={actions} data={data} />\n </div>\n </td>\n);\n\nTableActionsCell.propTypes = {\n actions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n PropTypes.func,\n ]).isRequired,\n data: PropTypes.shape({}).isRequired,\n};\n\nexport default TableActionsCell;\n","import React, { isValidElement } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TableActionsCell from '@core/TableActionsCell';\nimport TableCell from '@core/TableCell';\n\nimport type { TransformedObject } from '@utility/interfaces';\n\nexport interface TransformedColumn {\n key: number | string;\n title: string;\n isRightAligned?: boolean;\n}\n\ninterface TableRowProps {\n columns: TransformedColumn[];\n data: TransformedObject;\n}\n\nconst parseValue = (value: unknown): React.ReactElement | string => {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'object' && isValidElement(value)) {\n return value;\n }\n\n return (value as string).toString();\n};\n\nconst TableRow: React.FunctionComponent<TableRowProps> = ({ columns, data }) => (\n <tr>\n {columns.map((item) => (\n <TableCell\n key={item.key}\n isRightAligned={item.isRightAligned}\n value={parseValue(data[item.key])}\n />\n ))}\n {data.$actions?.length ? <TableActionsCell actions={data.$actions} data={data} /> : null}\n </tr>\n);\n\nTableRow.propTypes = {\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n title: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n data: PropTypes.shape({\n $id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n $original: PropTypes.shape({}).isRequired,\n $actions: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }).isRequired\n ),\n }).isRequired,\n};\n\nexport default TableRow;\n","import React, { Fragment } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { spliceArray } from '@sqrzro/utility';\n\nimport EmptyMessage from '@core/EmptyMessage';\nimport Pagination from '@core/Pagination';\nimport Panel from '@core/Panel';\nimport TableCell from '@core/TableCell';\nimport TableHead from '@core/TableHead';\nimport type { Columns } from '@core/TableCell';\nimport TableRow from '@core/TableRow';\nimport type { TransformedColumn } from '@core/TableRow';\n\nimport type { PaginationObject, TransformedObject, Transformer } from '@utility/interfaces';\n\nimport styles from './Table.module.css';\n\nconst DEFAULT_TRANSFORMER = (item: Record<string, unknown>): TransformedObject => ({\n $id: item.id as number,\n $original: item,\n ...item,\n});\n\nconst transformData = (\n data: Record<string, unknown>[],\n transformer: Transformer\n): TransformedObject[] => {\n const [transformFn, actions] = Array.isArray(transformer) ? transformer : [transformer];\n return data.map((item) => ({ ...transformFn(item), $actions: actions, $original: item }));\n};\n\nconst transformColumns = (columns: Columns): TransformedColumn[] =>\n Object.entries(columns).map(([key, item]) => ({\n key,\n title: Array.isArray(item) ? item[0] : item,\n isRightAligned: Array.isArray(item) ? item[1] : false,\n }));\n\nexport interface TableProps {\n columns: Columns;\n data?: Record<string, unknown>[];\n isDisabled?: boolean;\n pagination?: PaginationObject;\n totals?: Record<string, number> | null;\n transformer?: Transformer;\n}\n\nconst Table: React.FunctionComponent<TableProps> = ({\n columns,\n data,\n isDisabled,\n pagination,\n totals,\n transformer,\n}) => {\n if (!data || !data.length) {\n return <EmptyMessage />;\n }\n\n const transformedColumns = transformColumns(columns);\n const transformedData = transformData(data, transformer || DEFAULT_TRANSFORMER);\n\n return (\n <Fragment>\n <Panel>\n <div className={styles.root}>\n <table\n className={classNames(styles.table, isDisabled && styles.tableIsDisabled)}\n >\n <TableHead\n columns={transformedColumns}\n hasActions={Boolean(transformedData[0].$actions?.length)}\n />\n <tbody>\n {transformedData.map((item) => (\n <TableRow key={item.$id} columns={transformedColumns} data={item} />\n ))}\n </tbody>\n {totals && (\n <tfoot>\n <tr>\n <TableCell value=\"Totals:\" />\n {spliceArray(transformedColumns, 0, 1).map((item) => (\n <TableCell\n key={item.key}\n isRightAligned={item.isRightAligned}\n value={totals[item.key].toString()}\n />\n ))}\n </tr>\n </tfoot>\n )}\n </table>\n </div>\n </Panel>\n {pagination ? <Pagination isDisabled={isDisabled} {...pagination} /> : null}\n </Fragment>\n );\n};\n\nTable.propTypes = {\n columns: PropTypes.shape({}).isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({}).isRequired),\n isDisabled: PropTypes.bool,\n pagination: PropTypes.shape({\n activePage: PropTypes.number.isRequired,\n pageCount: PropTypes.number.isRequired,\n }),\n totals: PropTypes.shape({}),\n};\n\nexport default Table;\n","import React from 'react';\n\nimport ConnectedRepeater from '@core/ConnectedRepeater';\nimport type { ConnectedRepeaterElementProps } from '@core/ConnectedRepeater';\n\nimport Table from '@components/Table';\n\nconst ConnectedTable: React.FunctionComponent<ConnectedRepeaterElementProps> = (props) => (\n <ConnectedRepeater\n {...props}\n render={({ columns, ...renderProps }): React.ReactElement => (\n <Table columns={columns || {}} {...renderProps} />\n )}\n />\n);\n\nexport default ConnectedTable;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport TextInput from '@components/TextInput';\n\nimport type { InputProps, InputValue, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './DateInput.module.css';\n\ntype FieldDataItem = ['day' | 'month' | 'year', string, 'DD' | 'MM' | 'YYYY'];\n\ninterface DateReducerState {\n day: string;\n month: string;\n year: string;\n}\n\ninterface DateReducerAction {\n name?: string;\n value?: InputValue;\n}\n\nconst DEFAULT_DATE: DateReducerState = {\n day: '',\n month: '',\n year: '',\n};\n\n/**\n * Take an input, and either return an empty default date, or a properly parsed DateReducerState.\n * This function ensures that no matter what value is passed into the DateInput, it will only ever\n * return a correctly formatted DateReducerState.\n *\n * @param input Any InputValue that has been sent to the DateInput\n * @returns A properly formatted DateReducerState, which will be 'empty' if the input is invalid\n */\nconst parseDateString = (input?: InputValue): DateReducerState => {\n if (!input || typeof input !== 'string' || !/.*-.*-.*/u.exec(input)) {\n return { ...DEFAULT_DATE };\n }\n\n const [year, month, day] = input.split('-');\n return { day, month, year };\n};\n\n/**\n * This function takes an existing 'state' (an object of strings for the day, month, and year), and\n * applies an 'action' on it, to return an updated state.\n *\n * The action can either contain a name (either 'day', 'month' or 'year'), or no name.\n *\n * @param state\n * @param action\n * @returns\n */\n\nconst dateReducer = (state: DateReducerState, action: DateReducerAction): DateReducerState => {\n if (!action.name) {\n return parseDateString(action.value);\n }\n\n return { ...state, [action.name]: action.value };\n};\n\ninterface DateInputProps extends InputProps {\n format?: string;\n}\n\nconst DateInput: React.FunctionComponent<DateInputProps> = ({\n format = 'DMY',\n hasError,\n isDisabled,\n name,\n onChange,\n value,\n}) => {\n const [date, setDate] = useState<DateReducerState>(dateReducer(DEFAULT_DATE, { value }));\n const { day, month, year } = date;\n\n /* eslint-disable id-length */\n const fieldData = useMemo(\n (): Record<string, FieldDataItem> => ({\n D: ['day', day, 'DD'],\n M: ['month', month, 'MM'],\n Y: ['year', year, 'YYYY'],\n }),\n [day, month, year]\n );\n /* eslint-enable */\n\n const handleChange = (event: SimpleEvent, fieldName: string): void => {\n const target = event.target as HTMLInputElement;\n const newDate = dateReducer(date, { value: target.value, name: fieldName });\n\n setDate(newDate);\n\n const simpleEvent = {\n target: {\n name,\n value: `${newDate.year}-${newDate.month}-${newDate.day}`,\n },\n };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n useEffect(() => {\n const newDate = dateReducer(date, { value });\n setDate(newDate);\n }, [value]);\n\n return (\n <div className={styles.root}>\n {format.split('').map((field) => {\n const [fieldName, fieldValue, fieldPlaceholder] = fieldData[field];\n\n return (\n <div\n key={fieldName}\n className={classNames(styles.input, styles[`input${field}`])}\n >\n <TextInput\n hasError={hasError}\n isDisabled={isDisabled}\n name={`${name}_${field.toLowerCase()}`}\n onChange={(event): void => handleChange(event, fieldName)}\n placeholder={fieldPlaceholder}\n value={fieldValue}\n />\n </div>\n );\n })}\n </div>\n );\n};\n\nDateInput.propTypes = {\n name: PropTypes.string.isRequired,\n format: PropTypes.string,\n hasError: PropTypes.bool,\n isDisabled: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default DateInput;\n","import React from 'react';\nimport NextDocument, { Head, Html, Main, NextScript } from 'next/document';\n\nclass Document extends NextDocument {\n /* eslint-disable class-methods-use-this */\n public render(): JSX.Element {\n return (\n <Html lang=\"en\">\n <Head />\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n );\n }\n /* eslint-enable */\n}\n\nexport default Document;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './FormLegend.module.css';\n\ninterface FormLegendProps {\n children: React.ReactNode;\n}\n\nconst FormLegend: React.FunctionComponent<FormLegendProps> = ({ children }) => (\n <legend className={styles.root}>{children}</legend>\n);\n\nFormLegend.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default FormLegend;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormLegend from '@core/FormLegend';\nimport Panel from '@core/Panel';\n\ninterface FieldsetProps {\n children: React.ReactNode;\n legend?: string;\n}\n\n/**\n * Simply a styled wrapper for a `fieldset` element. The `legend` prop isn't required but is\n * probably recommended in most instances.\n */\nconst Fieldset: React.FunctionComponent<FieldsetProps> = ({ children, legend }) => (\n <fieldset>\n <Panel isPadded isSpaced>\n {legend ? <FormLegend>{legend}</FormLegend> : null}\n {children}\n </Panel>\n </fieldset>\n);\n\nFieldset.propTypes = {\n children: PropTypes.node.isRequired,\n legend: PropTypes.string,\n};\n\nexport default Fieldset;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport StaticTextInput from '@core/StaticTextInput';\n\nimport type { InputProps } from '@utility/interfaces';\n\nimport styles from './FileInput.module.css';\n\ninterface HTMLFileElement extends HTMLInputElement {\n files: FileList;\n}\n\nconst FileInput: React.FunctionComponent<InputProps> = ({\n id,\n hasError,\n isDisabled,\n name,\n onChange,\n}) => {\n const [fileName, setFileName] = useState('');\n\n const handleChange = (event: React.ChangeEvent<HTMLFileElement>): void => {\n const { target } = event;\n\n if (target.files.length) {\n setFileName(target.files[0].name);\n }\n\n const simpleEvent = {\n target: { name, value: Array.from(target.files) },\n };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n return (\n <div\n className={classNames(\n styles.root,\n hasError && styles.rootHasError,\n isDisabled && styles.rootIsDisabled\n )}\n data-testid=\"file-input-root\"\n >\n <StaticTextInput\n icon=\"upload\"\n label={fileName}\n name={name}\n placeholder=\"Choose file...\"\n value={fileName}\n />\n <input\n className={styles.input}\n data-testid=\"file-input-input\"\n id={id || `c_${name}`}\n name={name}\n onChange={handleChange}\n type=\"file\"\n />\n </div>\n );\n};\n\nFileInput.propTypes = {\n name: PropTypes.string.isRequired,\n};\n\nexport default FileInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Link from '@components/Link';\n\nimport Icon from '@core/Icon';\n\nimport FilterService from '@services/FilterService';\n\nimport styles from './FilterLink.module.css';\n\ninterface FilterLinkProps {\n children: React.ReactNode;\n to: Record<string, string>;\n}\n\nconst FilterLink: React.FunctionComponent<FilterLinkProps> = ({ children, to }) => (\n <Link className={styles.root} to={FilterService.getUrlForFilters(to)}>\n <i className={styles.icon}>\n <Icon icon=\"filter\" size={12} />\n </i>\n {children}\n </Link>\n);\n\nFilterLink.propTypes = {\n children: PropTypes.node.isRequired,\n to: PropTypes.shape({}).isRequired,\n};\n\nexport default FilterLink;\n","import React, { Children, cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { InputValue, SimpleEvent } from '@utility/interfaces';\n\ninterface FormProps {\n children: React.ReactNode;\n data: Record<string, InputValue>;\n errors?: Record<string, string>;\n onChange: (key: string, value: InputValue) => void;\n onSubmit?: (event: React.FormEvent) => void;\n}\n\nconst recursiveMap = (\n children: React.ReactNode,\n fn: (c: React.ReactElement) => React.ReactNode\n): React.ReactNode =>\n Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const props = child.props as Record<string, string>;\n\n if (props.children) {\n const newChild = cloneElement(child, {\n children: recursiveMap(props.children, fn),\n });\n\n return fn(newChild);\n }\n\n return fn(child);\n });\n\ninterface FormChildProps {\n name?: string;\n error?: string;\n}\n\nconst Form: React.FunctionComponent<FormProps> = ({\n children,\n data,\n errors,\n onChange,\n onSubmit,\n}) => {\n const handleChildChange = (event: SimpleEvent): void => {\n const { target } = event;\n onChange(target.name, target.value);\n };\n\n const handleSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n\n if (onSubmit) {\n onSubmit(event);\n }\n };\n\n const injectedChildren = recursiveMap(children, (child): React.ReactElement => {\n /* eslint-disable react/prop-types */\n const props = child.props as FormChildProps;\n\n if (!props.name) {\n return child;\n }\n\n const error = errors ? errors[props.name] : props.error;\n const value = data[props.name];\n\n return cloneElement(child, { error, onChange: handleChildChange, value });\n /* eslint-enable */\n });\n\n return <form onSubmit={handleSubmit}>{injectedChildren}</form>;\n};\n\nForm.propTypes = {\n children: PropTypes.node.isRequired,\n data: PropTypes.shape({}).isRequired,\n onChange: PropTypes.func.isRequired,\n errors: PropTypes.shape({}),\n onSubmit: PropTypes.func,\n};\n\nexport default Form;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport useLayout from '@hooks/useLayout';\n\nimport Button from '@components/Button';\n\nimport styles from './FixedActions.module.css';\n\ninterface FixedActionsProps {\n children?: React.ReactNode;\n isDisabled?: boolean;\n isLoading?: boolean;\n label: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n to?: string;\n type?: 'button' | 'submit';\n}\n\nconst FixedActions: React.FunctionComponent<FixedActionsProps> = ({\n children,\n label,\n isDisabled,\n isLoading,\n onClick,\n to,\n type,\n}) => {\n const { applyLayoutClassName } = useLayout();\n\n return (\n <div className={classNames(styles.root, applyLayoutClassName(styles))}>\n {children}\n <Button isDisabled={isDisabled || isLoading} onClick={onClick} to={to} type={type}>\n {label}\n </Button>\n </div>\n );\n};\n\nFixedActions.propTypes = {\n label: PropTypes.string.isRequired,\n children: PropTypes.node,\n isDisabled: PropTypes.bool,\n isLoading: PropTypes.bool,\n to: PropTypes.string,\n type: PropTypes.oneOf(['button', 'submit']),\n onClick: PropTypes.func,\n};\n\nexport default FixedActions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FixedActions from '@core/FixedActions';\n\ninterface FormActionsProps {\n children?: React.ReactNode;\n isDisabled?: boolean;\n isLoading?: boolean;\n label: string;\n}\n\nconst FormActions: React.FunctionComponent<FormActionsProps> = ({\n children,\n label,\n isDisabled,\n isLoading,\n}) => (\n <FixedActions isDisabled={isDisabled} isLoading={isLoading} label={label} type=\"submit\">\n {children}\n </FixedActions>\n);\n\nFormActions.propTypes = {\n label: PropTypes.string.isRequired,\n children: PropTypes.node,\n isDisabled: PropTypes.bool,\n isLoading: PropTypes.bool,\n};\n\nexport default FormActions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './FormError.module.css';\n\ninterface FormErrorProps {\n message: string;\n}\n\nconst FormError: React.FunctionComponent<FormErrorProps> = ({ message }) => (\n <div className={styles.root}>{message}</div>\n);\n\nFormError.propTypes = {\n message: PropTypes.string.isRequired,\n};\n\nexport default FormError;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './FormLabel.module.css';\n\ninterface FormLabelProps {\n children: React.ReactNode;\n htmlFor: string;\n isOptional?: boolean;\n}\n\nconst FormLabel: React.FunctionComponent<FormLabelProps> = ({ children, htmlFor, isOptional }) => (\n <label className={styles.root} htmlFor={htmlFor}>\n {children}\n {isOptional && <small className={styles.optional}>(Optional)</small>}\n </label>\n);\n\nFormLabel.propTypes = {\n children: PropTypes.node.isRequired,\n htmlFor: PropTypes.string.isRequired,\n isOptional: PropTypes.bool,\n};\n\nexport default FormLabel;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ucwords } from '@sqrzro/utility';\n\nimport FormError from '@core/FormError';\nimport FormLabel from '@core/FormLabel';\n\nimport Button from '@components/Button';\nimport TextInput from '@components/TextInput';\n\nimport type { InputProps, SimpleAction } from '@utility/interfaces';\n\nimport styles from './FormField.module.css';\n\nexport interface FormFieldComponentProps extends InputProps {\n action?: SimpleAction | null;\n onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;\n}\n\ninterface FormFieldProps extends FormFieldComponentProps {\n error?: string;\n isOptional?: boolean;\n isShallow?: boolean;\n label?: string | null;\n render?: ((props: FormFieldComponentProps) => React.ReactNode) | null;\n width?: 'full' | null;\n}\n\n/**\n * Render some kind of form control, plus a label and error message if specified. By default, it\n * will render a `TextInput`. Using the `render` prop however, you can render any component you\n * like. The rendered component will be passed the following props from `FormField`:\n *\n * ```\n * name, value, hasError, isOptional, onChange\n * ```\n *\n * The rendered component can then handle these in any way it likes.\n */\nconst FormField: React.FunctionComponent<FormFieldProps> = ({\n action,\n error,\n id,\n isDisabled,\n isOptional,\n isShallow,\n label,\n name,\n onChange,\n onKeyDown,\n render,\n value,\n width,\n}) => {\n const props = {\n id,\n name,\n hasError: Boolean(error),\n isDisabled,\n isOptional,\n onChange,\n onKeyDown,\n };\n const component = render\n ? render\n : (): React.ReactNode => <TextInput value={value?.toString()} {...props} />;\n\n return (\n <div\n className={classNames(\n styles.root,\n error && styles.rootHasError,\n isShallow && styles.rootIsShallow,\n width && styles[`rootWidth${ucwords(width)}`]\n )}\n data-testid=\"form-field-root\"\n >\n {label ? (\n <div className={styles.label}>\n <FormLabel htmlFor={`c_${name}`} isOptional={isOptional}>\n {label}\n </FormLabel>\n </div>\n ) : null}\n <div className={styles.field}>{component({ value, ...props })}</div>\n {action ? (\n <div className={styles.action}>\n <Button\n isDisabled={isDisabled || action.isDisabled}\n onClick={action.onClick}\n variant={action.variant}\n >\n {action.label}\n </Button>\n </div>\n ) : null}\n {error ? (\n <div className={styles.error}>\n <FormError message={error} />\n </div>\n ) : null}\n </div>\n );\n};\n\n/*\n * This is necessary to ensure `<Form />` components can still identify a `FormField` even after\n * minification (in production mode)\n */\nFormField.displayName = 'FormField';\n\nFormField.propTypes = {\n /**\n * The name of the field. Passed to the rendered component, as well as being used to link the\n * label to the form control, for accessibility\n */\n name: PropTypes.string.isRequired,\n\n action: PropTypes.shape({\n isDisabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n }),\n\n /**\n * An error message. If specified, an error message is displayed and a bool value `hasError` is\n * passed to the rendered component\n */\n error: PropTypes.string,\n\n id: PropTypes.string,\n\n isDisabled: PropTypes.bool,\n\n /**\n * If the field is not required (and has a label), a small label is displayed indicating this\n */\n isOptional: PropTypes.bool,\n\n isShallow: PropTypes.bool,\n\n /**\n * The form label that will appear above the rendered component. Not required, but recommended\n * for accessibility\n */\n label: PropTypes.string,\n\n /**\n * A function that should return a component. The first and only argument of the function is an\n * object containing the `props` defined in the introduction above.\n */\n render: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n value: PropTypes.any,\n width: PropTypes.oneOf(['full']),\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nexport default FormField;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormField from '@components/FormField';\n\nimport type { InputProps, InputValue, SimpleAction, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './FormRepeater.module.css';\n\ninterface FormRepeaterProps extends InputProps {\n label?: string;\n max?: number;\n}\n\n// Parse the values that have been passed in as `value`, and prepare them for the `FormField`s.\nconst parseValues = (value?: InputValue, max?: number): string[] => {\n // If there is no value, or an empty value, then return an array.\n if (!value || !Array.isArray(value) || !value.length) {\n return [''];\n }\n\n /*\n * Otherwise, return the existing array, and an empty string (for the new field, if the max is\n * Not reached).\n */\n const stringifiedValue = value.map((item) => (item || '').toString());\n\n return max && value.length >= max ? [...stringifiedValue] : [...stringifiedValue, ''];\n};\n\nconst getAction = (\n onClick: () => void,\n values: string[],\n index: number,\n max?: number\n): SimpleAction | null => {\n if (index === values.length - 1 && index !== (max || 0) - 1) {\n return null;\n }\n\n return {\n label: 'Remove',\n onClick,\n variant: ['bordered', 'danger'],\n };\n};\n\nconst FormRepeater: React.FunctionComponent<FormRepeaterProps> = ({\n label,\n max,\n name,\n onChange,\n value,\n}) => {\n const values = parseValues(value, max);\n\n const handleChange = (event: SimpleEvent, index: number): void => {\n if (!onChange) {\n return;\n }\n\n const newValue = [\n ...values.slice(0, index),\n event.target.value,\n ...values.slice(index + 1),\n ];\n\n onChange({\n target: {\n name,\n value: newValue.filter(Boolean),\n },\n });\n };\n\n const handleRemove = (index: number): void => {\n if (!onChange) {\n return;\n }\n\n const newValue = [...values.slice(0, index), ...values.slice(index + 1)];\n\n onChange({\n target: {\n name,\n value: newValue.filter(Boolean),\n },\n });\n };\n\n return (\n <div className={styles.root}>\n {/* eslint-disable react/no-array-index-key */}\n {values.map((_item, index) => (\n <FormField\n key={index}\n action={getAction(() => handleRemove(index), values, index, max)}\n id={`c_${name}_${index}`}\n label={index === 0 ? label : null}\n name={name}\n onChange={(event): void => handleChange(event, index)}\n value={values[index]}\n isShallow\n />\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </div>\n );\n};\n\nFormRepeater.propTypes = {\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n max: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default FormRepeater;\n","import React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Icon from '@core/Icon';\n\nimport type { InputProps } from '@utility/interfaces';\n\nimport styles from './ImageInput.module.css';\n\ninterface HTMLFileElement extends HTMLInputElement {\n files: FileList;\n}\n\nconst ImageInput: React.FunctionComponent<InputProps> = ({\n name,\n isDisabled,\n hasError,\n onChange,\n}) => {\n const reader = useRef(new FileReader());\n const [preview, setPreview] = useState('');\n\n const handleReaderLoad = (): void => {\n /*\n * `reader.result` can technically be null, but there's no way to set it to null via a file\n * input, so we can 'handle' the possibility of null to keep typescript happy, but ignore\n * this line in code coverage\n */\n /* istanbul ignore next */\n setPreview(reader.current.result?.toString() || '');\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLFileElement>): void => {\n const { target } = event;\n\n if (target.files.length) {\n reader.current.readAsDataURL(target.files[0]);\n\n if (onChange) {\n onChange({ target: { name, value: target.files[0] } });\n }\n }\n };\n\n useEffect(() => {\n reader.current.addEventListener('load', handleReaderLoad);\n\n return (): void => {\n reader.current.removeEventListener('load', handleReaderLoad);\n };\n }, []);\n\n return (\n <div\n className={classNames(\n styles.root,\n hasError && styles.rootHasError,\n isDisabled && styles.rootIsDisabled\n )}\n data-testid=\"image-input-root\"\n >\n {preview ? (\n <img className={styles.preview} src={preview} />\n ) : (\n <div className={styles.placeholder}>\n <Icon icon=\"upload\" size={30} />\n <span className={styles.placeholderTitle}>Click to Upload</span>\n <em className={styles.placeholderDescription}>(or drop an image here)</em>\n </div>\n )}\n\n <input\n className={styles.input}\n data-testid=\"image-input-input\"\n name={name}\n onChange={handleChange}\n type=\"file\"\n />\n </div>\n );\n};\n\nImageInput.propTypes = {\n name: PropTypes.string.isRequired,\n hasError: PropTypes.bool,\n isDisabled: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nexport default ImageInput;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport useVariant from '@hooks/useVariant';\n\nimport type { StyleVariant } from '@utility/interfaces';\n\nimport styles from './InfoPanel.module.css';\n\nexport interface InfoPanelProps {\n children: React.ReactNode;\n variant?: StyleVariant;\n}\n\nconst InfoPanel: React.FunctionComponent<InfoPanelProps> = ({ children, variant }) => {\n const { applyVariantClassName } = useVariant(variant);\n return <div className={classNames(styles.root, applyVariantClassName(styles))}>{children}</div>;\n};\n\nInfoPanel.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default InfoPanel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FixedActions from '@core/FixedActions';\n\ninterface ListActionsProps {\n children?: React.ReactNode;\n label: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n to?: string;\n}\n\nconst ListActions: React.FunctionComponent<ListActionsProps> = ({\n children,\n label,\n to,\n onClick,\n}) => (\n <FixedActions label={label} onClick={onClick} to={to}>\n {children}\n </FixedActions>\n);\n\nListActions.propTypes = {\n label: PropTypes.string.isRequired,\n children: PropTypes.node,\n to: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default ListActions;\n","import { useState } from 'react';\n\nimport type { InputValue } from '@utility/interfaces';\n\nimport { getFromObject } from '@sqrzro/utility';\n\nexport interface FormDataArgs {\n data?: Record<string, InputValue>;\n defaults?: Record<string, InputValue>;\n fields?: string[];\n}\n\nexport type FormDataReturn = [Record<string, InputValue>, (key: string, value: InputValue) => void];\n\nconst useFormData = ({ data, defaults, fields }: FormDataArgs): FormDataReturn => {\n const [fData, setFData] = useState(\n getFromObject({ ...(defaults || {}), ...(data || {}) }, fields || [])\n );\n\n const setFormData = (key: string, value: InputValue): void => {\n setFData({ ...fData, [key]: value });\n };\n\n return [fData, setFormData];\n};\n\nexport default useFormData;\n","import { EventService } from '@sqrzro/utility';\n\nconst INTERVAL = 200;\n\nconst send = (type: string, message: string): void => {\n EventService.publish('@toast/send', {});\n\n setTimeout(() => {\n EventService.publish('@toast/send', { type, message });\n }, INTERVAL);\n};\n\nconst success = (message: string): void => send('success', message);\n\nconst error = (message: string): void => send('error', message);\n\nconst ToastService = { success, error };\n\nexport default ToastService;\n","import { useState } from 'react';\n\nimport { ApiService } from '@sqrzro/utility';\n\nimport ToastService from '@services/ToastService';\nimport type { InputValue } from '@utility/interfaces';\n\ninterface ApiResponseObject<T = Record<string, unknown>> {\n data: T & { errors?: Record<string, [string]> };\n headers: Headers;\n status: number;\n url: string;\n}\n\ninterface UseFormArgs {\n errorMessage?: string | false;\n formData: Record<string, InputValue>;\n method?: 'get' | 'patch' | 'post';\n successMessage?: string | false;\n url: string;\n onSubmitSuccess?: (response: ApiResponseObject) => void;\n onSubmitError?: (err?: Error) => void;\n transformRequest?: (data: Record<string, InputValue>) => Record<string, InputValue>;\n}\n\ninterface UseFormReturn {\n errors: Record<string, string>;\n isLoading: boolean;\n handleSubmit: () => void;\n}\n\nconst useForm = ({\n errorMessage,\n formData,\n method = 'post',\n successMessage,\n url,\n onSubmitSuccess = (): void => void 0,\n onSubmitError = (): void => void 0,\n transformRequest = (data): Record<string, InputValue> => data,\n}: UseFormArgs): UseFormReturn => {\n const [errors, setErrors] = useState<Record<string, string>>({});\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n const handleSubmitSuccess = (response: ApiResponseObject): void => {\n setIsLoading(false);\n\n if (successMessage !== false) {\n ToastService.success(successMessage || 'Saved successfully');\n }\n onSubmitSuccess(response);\n };\n\n const handleSubmitError = (error: unknown): void => {\n /*\n * This will almost certainly never happen in reality, but because the catch block in the\n * handleSubmit function can only expect an unknown type, we can check it's an Error here.\n * This can be safely ignored by coverage.\n */\n /* istanbul ignore next */\n if (!(error instanceof Error)) {\n return;\n }\n\n setIsLoading(false);\n onSubmitError(error);\n\n /*\n * If the `err` is not a `ApiValidationError`, `getErrorsFromResponse` will throw it again.\n * For this reason, it needs to be in a try/catch block, and a general error message should\n * be toasted if the error was not validation.\n */\n\n try {\n setErrors(ApiService.getErrorsFromResponse(error));\n if (errorMessage !== false) {\n ToastService.error(errorMessage || 'Could not save. Please check the form.');\n }\n } catch (err) {\n ToastService.error(\"Something's gone wrong. Please try again.\");\n }\n };\n\n const handleSubmit = async (): Promise<void> => {\n setErrors({});\n setIsLoading(true);\n\n try {\n const response = await ApiService.request(method, url, transformRequest(formData));\n handleSubmitSuccess(response);\n } catch (err: unknown) {\n handleSubmitError(err);\n }\n };\n\n return { errors, isLoading, handleSubmit };\n};\n\nexport default useForm;\n","import React, { useState } from 'react';\n\nimport TextInput from '@components/TextInput';\nimport type { TextInputProps } from '@components/TextInput';\n\nimport styles from './PasswordInput.module.css';\n\n/**\n * A `TextInput` component, with a control that toggles it `type` between 'text' and 'password'. All\n * the props are simply passed though to the `TextInput`, so check there for more information.\n */\nconst PasswordInput: React.FunctionComponent<TextInputProps> = (props) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const toggleVisible = (): void => setIsVisible(!isVisible);\n\n return (\n <div className={styles.root}>\n <TextInput type={isVisible ? 'text' : 'password'} {...props} />\n <button className={styles.control} onClick={toggleVisible} type=\"button\">\n {isVisible ? 'Hide' : 'Show'}\n </button>\n </div>\n );\n};\n\nexport default PasswordInput;\n","import React, { Fragment } from 'react';\nimport Head from 'next/head';\n\nimport { AuthService } from '@sqrzro/utility';\n\nimport useAppContext from '@hooks/useAppContext';\nimport useFormData from '@hooks/useFormData';\nimport useForm from '@hooks/useForm';\n\nimport AppLogo from '@core/AppLogo';\nimport Panel from '@core/Panel';\n\nimport Button from '@components/Button';\nimport Form from '@components/Form';\nimport FormField from '@components/FormField';\nimport PasswordInput from '@components/PasswordInput';\n\nimport type { SceneComponentType } from '@utility/interfaces';\nimport { NextRouterPropType } from '@utility/prop-types';\n\nimport styles from './LoginForm.module.css';\n\nconst AUTH_DEFAULTS = {\n identifier: 'username',\n identifierLabel: 'Username',\n tfa: false,\n};\n\nconst LoginForm: SceneComponentType = ({ router }) => {\n const { name, ...context } = useAppContext();\n\n // eslint-disable-next-line react/destructuring-assignment\n const auth = { ...AUTH_DEFAULTS, ...context.auth };\n\n const [formData, setFormData] = useFormData({\n defaults: {\n [auth.identifier]: router.query[auth.identifier]?.toString() || '',\n password: '',\n },\n fields: [auth.identifier, 'password'],\n });\n\n const { errors, isLoading, handleSubmit } = useForm({\n errorMessage: false,\n formData,\n method: 'post',\n successMessage: false,\n url: 'tokens',\n onSubmitSuccess: (response) => AuthService.login(response.data.token as string),\n });\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === 'Enter') {\n handleSubmit();\n }\n };\n\n return (\n <Fragment>\n <Head>\n <title>Login | {name}</title>\n </Head>\n <div className={styles.root}>\n <Panel isPadded>\n <div className={styles.logo}>\n <AppLogo />\n </div>\n <Form\n data={formData}\n errors={errors}\n onChange={setFormData}\n onSubmit={handleSubmit}\n >\n <FormField\n label={auth.identifierLabel}\n name={auth.identifier}\n onKeyDown={handleKeyDown}\n />\n <FormField\n label=\"Password\"\n name=\"password\"\n onKeyDown={handleKeyDown}\n render={(props): React.ReactNode => <PasswordInput {...props} />}\n />\n <hr />\n <Button isDisabled={isLoading} type=\"submit\" isFullWidth>\n {isLoading ? 'Loading...' : 'Log In'}\n </Button>\n </Form>\n </Panel>\n </div>\n </Fragment>\n );\n};\n\nLoginForm.hasLayout = false;\n\nLoginForm.propTypes = {\n router: NextRouterPropType.isRequired,\n};\n\nexport default LoginForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Panel from '@core/Panel';\n\nimport styles from './Message.module.css';\n\ninterface MessageProps {\n children: React.ReactNode;\n title?: string | null;\n}\n\nconst Message: React.FunctionComponent<MessageProps> = ({ children, title }) => (\n <Panel isPadded isSpaced>\n <div className={styles.root}>\n {title ? <h3 className={styles.title}>{title}</h3> : null}\n {children}\n </div>\n </Panel>\n);\n\nMessage.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string,\n};\n\nexport default Message;\n","import React from 'react';\n\nimport TextInput from '@components/TextInput';\nimport type { TextInputProps } from '@components/TextInput';\n\n/**\n * A `TextInput` component with a pre-defined `prefix` prop set to a pound sign. All other props are\n * simply passed through to the TextInput. Technically, the order of the props is such that the\n * prefix can be overridden or removed all together. If this is the case, the component is no\n * different to a `TextInput`.\n */\nconst MoneyInput: React.FunctionComponent<TextInputProps> = (props) => (\n <TextInput prefix=\"£\" {...props} />\n);\n\nexport default MoneyInput;\n","import React, { Fragment } from 'react';\nimport Head from 'next/head';\n\nimport useAppContext from '@hooks/useAppContext';\nimport useFormData from '@hooks/useFormData';\nimport useForm from '@hooks/useForm';\n\nimport AppLogo from '@core/AppLogo';\nimport Panel from '@core/Panel';\n\nimport Button from '@components/Button';\nimport Form from '@components/Form';\nimport FormField from '@components/FormField';\nimport PasswordInput from '@components/PasswordInput';\n\nimport type { SceneComponentType } from '@utility/interfaces';\nimport { NextRouterPropType } from '@utility/prop-types';\n\nimport styles from './PasswordForm.module.css';\n\nconst AUTH_ROUTE = '/auth/login';\n\nconst PasswordForm: SceneComponentType = ({ router }) => {\n const { name } = useAppContext();\n\n const [formData, setFormData] = useFormData({\n fields: ['password', 'password_confirmation'],\n });\n\n const handleSubmitSuccess = (): void => {\n void router.push(`${AUTH_ROUTE}?email=${router.query.email?.toString() || ''}`);\n };\n\n const { errors, isLoading, handleSubmit } = useForm({\n errorMessage: false,\n formData,\n method: 'post',\n successMessage: 'Password reset successfully. You can now log in.',\n url: 'tokens/password',\n onSubmitSuccess: handleSubmitSuccess,\n transformRequest: (data) => ({ ...(router.query as Record<string, string>), ...data }),\n });\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === 'Enter') {\n handleSubmit();\n }\n };\n\n return (\n <Fragment>\n <Head>\n <title>Reset Password | {name}</title>\n </Head>\n <div className={styles.root}>\n <Panel isPadded>\n <div className={styles.logo}>\n <AppLogo />\n </div>\n <Form\n data={formData}\n errors={errors}\n onChange={setFormData}\n onSubmit={handleSubmit}\n >\n <FormField\n label=\"New Password\"\n name=\"password\"\n render={(props): React.ReactNode => <PasswordInput {...props} />}\n />\n <FormField\n label=\"Confirm New Password\"\n name=\"password_confirmation\"\n onKeyDown={handleKeyDown}\n render={(props): React.ReactNode => <PasswordInput {...props} />}\n />\n <hr />\n <Button isDisabled={isLoading} type=\"submit\">\n {isLoading ? 'Loading...' : 'Reset Password'}\n </Button>\n </Form>\n </Panel>\n </div>\n </Fragment>\n );\n};\n\nPasswordForm.hasLayout = false;\n\nPasswordForm.propTypes = {\n router: NextRouterPropType.isRequired,\n};\n\nexport default PasswordForm;\n","import React from 'react';\n\nimport ChkRadList from '@core/ChkRadList';\nimport type { ChkRadListElementProps } from '@core/ChkRadList';\n\nconst RadioList: React.FunctionComponent<ChkRadListElementProps> = (props) => (\n <ChkRadList {...props} type=\"radio\" />\n);\n\nexport default RadioList;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Assistive from '@core/Assistive';\n\nimport type { InputProps, SimpleEvent } from '@utility/interfaces';\n\nimport styles from './Switch.module.css';\n\ninterface SwitchProps extends InputProps {\n extra?: string;\n label: React.ReactNode | string;\n isMultiline?: boolean;\n}\n\nconst Switch: React.FunctionComponent<SwitchProps> = ({\n extra,\n name,\n label,\n value,\n isDisabled,\n isMultiline,\n onChange,\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n if (onChange) {\n const simpleEvent: SimpleEvent = { target: { name, value: event.target.checked } };\n onChange(simpleEvent);\n }\n };\n\n return (\n <label\n className={classNames(\n styles.root,\n isDisabled && styles.rootIsDisabled,\n (isMultiline || extra) && styles.rootIsMultiline\n )}\n data-testid=\"switch-root\"\n >\n <input\n aria-checked={Boolean(value)}\n checked={Boolean(value)}\n className={styles.input}\n disabled={isDisabled}\n id={name}\n name={name}\n onChange={handleChange}\n type=\"checkbox\"\n value=\"1\"\n />\n <i\n className={classNames(\n styles.icon,\n (isMultiline || extra) && styles.iconIsMultiline\n )}\n id={`${name}_icon`}\n >\n <Assistive>Yes</Assistive>\n </i>\n <div>\n <span\n className={classNames(styles.label, isDisabled && styles.labelIsDisabled)}\n aria-hidden\n >\n {label}\n </span>\n {extra ? <small className={styles.extra}>{extra}</small> : null}\n </div>\n </label>\n );\n};\n\nSwitch.propTypes = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n name: PropTypes.string.isRequired,\n extra: PropTypes.string,\n isDisabled: PropTypes.bool,\n isMultiline: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\n onChange: PropTypes.func,\n};\n\nexport default Switch;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport useVariant from '@hooks/useVariant';\n\nimport type { StyleVariant } from '@utility/interfaces';\nimport { StyleVariantPropType } from '@utility/prop-types';\n\nimport styles from './Tag.module.css';\n\nexport interface TagProps {\n children: React.ReactNode;\n variant?: StyleVariant | StyleVariant[];\n}\n\nconst Tag: React.FunctionComponent<TagProps> = ({ children, variant }) => {\n const { applyVariantClassName } = useVariant(variant);\n return <div className={classNames(styles.root, applyVariantClassName(styles))}>{children}</div>;\n};\n\nTag.propTypes = {\n children: PropTypes.node.isRequired,\n variant: StyleVariantPropType,\n};\n\nexport default Tag;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport type { TextInputProps } from '@components/TextInput';\n\nimport styles from './TextArea.module.css';\n\nconst TextArea: React.FunctionComponent<TextInputProps> = ({\n name,\n placeholder,\n value,\n hasError,\n isDisabled,\n onChange,\n onKeyDown,\n}) => {\n const handleChange = (event: React.ChangeEvent): void => {\n const target = event.target as HTMLInputElement;\n const simpleEvent = { target: { name, value: target.value } };\n\n if (onChange) {\n onChange(simpleEvent);\n }\n };\n\n return (\n <textarea\n className={classNames(\n styles.root,\n hasError && styles.rootHasError,\n isDisabled && styles.rootIsDisabled\n )}\n disabled={isDisabled}\n id={`c_${name}`}\n name={name}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n rows={6}\n value={value?.toString()}\n />\n );\n};\n\nTextArea.propTypes = {\n /** The name of the field. An ID is also generated from this (`c_${name}`). */\n name: PropTypes.string.isRequired,\n\n /** If set to trute, the `TextArea` will be styled to indicate this */\n hasError: PropTypes.bool,\n isDisabled: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nexport default TextArea;\n","import React from 'react';\n\nimport TextInput from '@components/TextInput';\nimport type { TextInputProps } from '@components/TextInput';\n\n/**\n * A `TextInput` component with a pre-defined `prefix` prop set to a 'http://'. All other props are\n * simply passed through to the TextInput. Technically, the order of the props is such that the\n * prefix can be overridden or removed all together. If this is the case, the component is no\n * different to a `TextInput`.\n */\nconst WebsiteInput: React.FunctionComponent<TextInputProps> = (props) => (\n <TextInput prefix=\"http://\" {...props} />\n);\n\nexport default WebsiteInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormatService from '@services/FormatService';\n\nimport Link from '@components/Link';\n\nimport styles from './WeekCalendarDay.module.css';\n\ninterface DataItem {\n id: number;\n datetime: string;\n patient: { name: string };\n}\n\ninterface TransformedItem extends DataItem {\n offset: number;\n to: string;\n}\n\ninterface WeekCalendarDayProps {\n data?: DataItem[] | null;\n date: Date;\n}\n\nconst WeekCalendarDay: React.FunctionComponent<WeekCalendarDayProps> = ({ data, date }) => {\n const filtered: TransformedItem[] = (data || [])\n .map((item) => {\n const [itemDate, itemTime] = item.datetime.split(' ');\n\n if (itemDate !== FormatService.date(date, 'Y-MM-dd')) {\n return null;\n }\n\n const [hours, minutes] = itemTime.split(':');\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers, no-mixed-operators\n const offset = (parseInt(hours, 10) - 8) * 60 + parseInt(minutes, 10) + 40;\n\n return { ...item, offset, to: `/appointments/${item.id}` };\n })\n .filter((item): item is TransformedItem => Boolean(item));\n\n return (\n <div className={styles.root}>\n <div className={styles.div}>{FormatService.date(date, 'E dd/MM')}</div>\n {filtered.map((item) => (\n <Link key={item.to} to={item.to}>\n {FormatService.date(item.datetime, 'HH:mm')} {item.patient.name}\n </Link>\n ))}\n </div>\n );\n};\n\nWeekCalendarDay.propTypes = {\n date: PropTypes.instanceOf(Date).isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n datetime: PropTypes.string.isRequired,\n patient: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired\n ),\n};\n\nexport default WeekCalendarDay;\n","import React, { useMemo } from 'react';\nimport { addDays, getWeek } from 'date-fns';\nimport PropTypes from 'prop-types';\n\nimport FormatService from '@services/FormatService';\n\nimport WeekCalendarDay from '@core/WeekCalendarDay';\n\nimport styles from './WeekCalendar.module.css';\n\n/*\n * This function gets the first date of a week number. It 'Just Works', but it uses a lot of magic\n * numbers, so it's easiest to just disable the eslint rule.\n */\n/* eslint-disable @typescript-eslint/no-magic-numbers */\nconst getFirstDayOfWeek = (week: number, year: number): Date => {\n const weekInDays = 7 * week;\n const firstDayOfWeek = new Date(year, 0, weekInDays - 6);\n const dow = firstDayOfWeek.getDay();\n const ISOweekStart = firstDayOfWeek;\n\n if (dow <= 4) {\n ISOweekStart.setDate(firstDayOfWeek.getDate() - firstDayOfWeek.getDay() + 1);\n } else {\n ISOweekStart.setDate(firstDayOfWeek.getDate() + 8 - firstDayOfWeek.getDay());\n }\n\n return ISOweekStart;\n};\n/* eslint-enable */\n\nconst formatHour = (hour: number): string => `${FormatService.twoDigits(hour)}00`;\n\nconst DAYS_IN_WEEK = 7;\nconst FIRST_HOUR = 8;\n\ninterface WeekCalendarProps {\n data: { id: number; datetime: string; patient: { name: string } }[];\n}\n\nconst WeekCalendar: React.FunctionComponent<WeekCalendarProps> = ({ data }) => {\n const week = useMemo<number>(() => getWeek(new Date()), []);\n\n let days = [getFirstDayOfWeek(week, new Date().getFullYear())];\n\n for (let index = 1; index < DAYS_IN_WEEK; index += 1) {\n days = [...days, addDays(days[0], index)];\n }\n\n return (\n <div className={styles.root}>\n <div className={styles.scale}>\n {/* eslint-disable react/no-array-index-key */}\n {Array.from({ length: 12 }).map((_item, index) => (\n <div key={index} className={styles.hour}>\n {formatHour(index + FIRST_HOUR)}\n </div>\n ))}\n {/* eslint-enable */}\n </div>\n {days.map((item) => (\n <WeekCalendarDay key={item.toString()} data={data} date={item} />\n ))}\n </div>\n );\n};\n\nWeekCalendar.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n datetime: PropTypes.string.isRequired,\n patient: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired\n ).isRequired,\n};\n\nexport default WeekCalendar;\n","import { ApiService, EventService, StorageService } from '@sqrzro/utility';\n\nconst start = async (): Promise<void> => {\n EventService.publish('@build/status', 'PENDING');\n\n try {\n const response = await ApiService.get<{ hash: string }>('build');\n\n StorageService.set('build_hash', response.data.hash);\n } catch (err) {\n EventService.publish('@build/status', 'ERROR');\n return;\n }\n\n try {\n await ApiService.pollForResponse([\n 'build/status',\n {\n hash: StorageService.get('build_hash'),\n },\n ]);\n EventService.publish('@build/status', 'SUCCESS');\n } catch (err) {\n EventService.publish('@build/status', 'ERROR');\n }\n\n StorageService.remove('build_hash');\n};\n\nconst open = (): boolean => EventService.publish('@build/open');\n\nconst BuildService = { start, open };\n\nexport default BuildService;\n","import { createElement, useCallback, useState } from 'react';\n\nimport ConnectedList from '@components/ConnectedList';\nimport type { ConnectedRepeaterElementProps, ListFunctions } from '@core/ConnectedRepeater';\n\ninterface UseConnectedListReturn extends ListFunctions {\n ConnectedList: React.FunctionComponent;\n}\n\nconst useConnectedList = (): UseConnectedListReturn => {\n const [listFunctions, setListFunctions] = useState<ListFunctions>({ reloadList: () => null });\n\n return {\n ConnectedList: useCallback(\n (props) =>\n createElement(ConnectedList, {\n ...props,\n setFunctions: (fnc: ListFunctions) => setListFunctions(fnc),\n } as ConnectedRepeaterElementProps),\n []\n ),\n reloadList: listFunctions.reloadList,\n };\n};\n\nexport default useConnectedList;\n","import { ApiService, AuthService } from '@sqrzro/utility';\n\nimport FilterService from '@services/FilterService';\n\nconst makeUrl = (alias: string): string => {\n const query = FilterService.getUrlForFilters({ dl: '1', token: AuthService.getToken() }, false);\n return `${ApiService.makeUrl(alias)}?${query}`;\n};\n\nconst download = (alias: string): void => {\n window.open(makeUrl(alias));\n};\n\nexport default { download, makeUrl };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Dropdown from '@components/Dropdown';\n\nimport type { FilterFieldProps, RenderSummaryArgs } from '@filters/interfaces';\nimport { isStringArray } from '@utility/interfaces';\nimport type { SimpleObject } from '@utility/interfaces';\n\nconst getData = (data?: SimpleObject[] | string[]): SimpleObject[] => {\n if (!data || !data.length || !isStringArray(data)) {\n return [];\n }\n\n return [\n {\n id: 1,\n name: data[0],\n },\n {\n id: 0,\n name: data[1],\n },\n ];\n};\n\nconst BooleanFilter: React.FunctionComponent<FilterFieldProps> = ({ data, ...props }) => (\n <Dropdown isPanelOnly {...props} data={getData(data)} />\n);\n\nBooleanFilter.propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n }).isRequired\n ),\n PropTypes.arrayOf(PropTypes.string.isRequired),\n ]),\n};\n\nexport const renderSummary = ({ data, value }: RenderSummaryArgs): string =>\n getData(data).find((item) => item.id.toString() === value?.toString())?.name || '';\n\nexport default BooleanFilter;\n","import React from 'react';\n\nimport CalendarInput from '@components/CalendarInput';\n\nimport type { FilterFieldProps, RenderSummaryArgs } from '@filters/interfaces';\nimport FormatService from '@services/FormatService';\n\nconst YEAR_LENGTH = 4;\n\nconst DateFilter: React.FunctionComponent<FilterFieldProps> = (props) => (\n <CalendarInput isPanelOnly isRange {...props} />\n);\n\nexport const renderSummary = ({ value }: RenderSummaryArgs): string => {\n if (!value || typeof value !== 'string') {\n return '';\n }\n\n const splitValues = value.split(',');\n\n if (splitValues.length === 1) {\n return '';\n }\n\n if (splitValues[0] === splitValues[1]) {\n return FormatService.date(splitValues[0]);\n }\n\n const isSameYear = splitValues[0].startsWith(splitValues[1].substring(0, YEAR_LENGTH));\n\n return splitValues\n .map((item) => FormatService.date(item, isSameYear ? 'dd/MM' : 'dd/MM/Y'))\n .join(' - ');\n};\n\nexport default DateFilter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Dropdown, { renderLabel } from '@components/Dropdown';\n\nimport type { FilterFieldProps, RenderSummaryArgs } from '@filters/interfaces';\nimport { isSimpleObjectArray } from '@utility/interfaces';\nimport type { SimpleObject } from '@utility/interfaces';\n\nconst checkData = (data?: SimpleObject[] | string[]): SimpleObject[] => {\n if (!isSimpleObjectArray(data)) {\n return [];\n }\n return data;\n};\n\nconst DropdownFilter: React.FunctionComponent<FilterFieldProps> = ({\n data,\n extraProps,\n ...props\n}) => (\n <Dropdown\n isPanelOnly\n {...props}\n data={checkData(data)}\n isMultiple={Boolean(extraProps?.isMultiple)}\n />\n);\n\nDropdownFilter.propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n }).isRequired\n ),\n PropTypes.arrayOf(PropTypes.string.isRequired),\n ]),\n extraProps: PropTypes.shape({\n isMultiple: PropTypes.bool,\n }),\n};\n\nexport const renderSummary = ({ data, value, props }: RenderSummaryArgs): string => {\n if (!data || !isSimpleObjectArray(data)) {\n return '';\n }\n\n return renderLabel(data, value, props?.isMultiple as boolean) || '';\n};\n\nexport default DropdownFilter;\n","import React, { Fragment, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Dropdown from '@components/Dropdown';\nimport type { FilterFieldProps, RenderSummaryArgs } from '@filters/interfaces';\n\nimport DateFilter, { renderSummary as dateRenderSummary } from '@filters/DateFilter';\nimport type { SimpleEvent } from '@utility/interfaces';\nimport DateService from '@services/DateService';\n\nconst QuickDateFilter: React.FunctionComponent<FilterFieldProps> = ({\n onChange,\n panelIndex,\n setPanelIndex,\n ...props\n}) => {\n const data = useMemo(\n () => [...DateService.getQuickDates(), { id: '[internal]', name: 'Custom...' }],\n []\n );\n\n const handleChange = (event: SimpleEvent): void => {\n if (event.target.value === '[internal]') {\n if (setPanelIndex) {\n setPanelIndex(1);\n }\n return;\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <Fragment>\n <div\n data-testid=\"quick-date-filter-dropdown\"\n style={{ display: panelIndex === 0 ? 'block' : 'none' }}\n >\n <Dropdown isPanelOnly {...props} data={data} onChange={handleChange} />\n </div>\n <div\n data-testid=\"quick-date-filter-date-filter\"\n style={{ display: panelIndex === 1 ? 'block' : 'none' }}\n >\n <DateFilter {...props} onChange={onChange} />\n </div>\n </Fragment>\n );\n};\n\nQuickDateFilter.propTypes = {\n panelIndex: PropTypes.number,\n setPanelIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport const renderSummary = ({ value }: RenderSummaryArgs): string => {\n if (!value || typeof value !== 'string') {\n return '';\n }\n\n const quickDate = DateService.getQuickDates().find(\n (item) => item.id.toString() === value.toString()\n );\n\n if (quickDate) {\n return quickDate.name;\n }\n\n return dateRenderSummary({ value });\n};\n\nexport default QuickDateFilter;\n","/* eslint-disable react/display-name */\n\nimport React from 'react';\n\nimport type { FilterField, FilterOptions } from '@filters/interfaces';\n\nimport BooleanFilter, { renderSummary as renderBooleanSummary } from '@filters/BooleanFilter';\nimport DateFilter, { renderSummary as renderDateSummary } from '@filters/DateFilter';\nimport DropdownFilter, { renderSummary as renderDropdownSummary } from '@filters/DropdownFilter';\nimport QuickDateFilter, { renderSummary as renderQuickDateSummary } from '@filters/QuickDateFilter';\n\nconst booleanFilter = (options: FilterOptions): FilterField => ({\n ...options,\n renderField: (props): React.ReactNode => <BooleanFilter {...props} />,\n renderSummary: renderBooleanSummary,\n});\n\nconst dateFilter = (options: FilterOptions): FilterField => ({\n ...options,\n panelOptions: { size: 'lg' },\n renderField: (props): React.ReactNode => <DateFilter {...props} />,\n renderSummary: renderDateSummary,\n});\n\nconst dropdownFilter = (options: FilterOptions): FilterField => ({\n ...options,\n panelOptions: { isScrollable: true },\n renderField: (props): React.ReactNode => <DropdownFilter {...props} />,\n renderSummary: renderDropdownSummary,\n});\n\nconst quickDateFilter = (options: FilterOptions): FilterField => ({\n ...options,\n panelOptions: [{}, { size: 'lg' }],\n renderField: (props): React.ReactNode => <QuickDateFilter {...props} />,\n renderSummary: renderQuickDateSummary,\n});\n\nconst FilterComponentService = {\n boolean: booleanFilter,\n date: dateFilter,\n dropdown: dropdownFilter,\n quickDate: quickDateFilter,\n};\n\nexport default FilterComponentService;\n"],"names":["undefined","createContext","createElement","merge","PropTypes","useContext","ucwords","React","classNames","styles","useState","useEffect","EventService","NextLink","Fragment","router","useRouter","useRef","AuthService","ForwardRef","iconMap","ArrowLeftIcon","ArrowRightIcon","CalendarIcon","CheckCircleIcon","CheckIcon","ChevronDownIcon","ExclamationCircleIcon","FilterIcon","UploadIcon","XIcon","useLayoutEffect","useCallback","AUTH_ROUTE","ApiService","parseNumeric","parseISO","fnsFormat","DAYS_IN_WEEK","fnsGetDay","fnsGetDaysInMonth","fnsAddMonths","fnsSubMonths","fnsSubDays","fnsSet","parseNumericArray","toggleArrayItem","transformData","parseRemote","forwardRef","memo","makeUrl","stringifySearch","parseSearch","FilterItem","useDeepCompareEffect","isValidElement","filterDuplicates","DEFAULT_TRANSFORMER","Component","Head","Children","cloneElement","spliceArray","useMemo","Html","Main","NextScript","NextDocument","getFromObject","getWeek","addDays","StorageService","renderSummary","dateRenderSummary","renderBooleanSummary","renderDateSummary","renderDropdownSummary","renderQuickDateSummary"],"mappings":"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"}