@digigov/ui 0.12.2 → 0.13.0

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 (660) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/{src/core/ServiceBadge/ServiceBadge.mdx → LICENSE} +0 -0
  3. package/api/APIErrors.d.ts +22 -0
  4. package/api/APIErrors.js +117 -0
  5. package/api/APIProvider.d.ts +15 -0
  6. package/api/APIProvider.js +43 -0
  7. package/api/fetchAPI.d.ts +18 -0
  8. package/api/fetchAPI.js +64 -0
  9. package/api/index.d.ts +9 -0
  10. package/api/index.js +104 -0
  11. package/api/index.spec.d.ts +1 -0
  12. package/api/index.spec.js +584 -0
  13. package/{src/api → api}/introduction.md +0 -0
  14. package/api/useResource.d.ts +11 -0
  15. package/api/useResource.js +144 -0
  16. package/api/useResourceAction.d.ts +2 -0
  17. package/api/useResourceAction.js +157 -0
  18. package/api/useResourceQuery.d.ts +18 -0
  19. package/api/useResourceQuery.js +229 -0
  20. package/api/utils.d.ts +6 -0
  21. package/api/utils.js +250 -0
  22. package/app/App.d.ts +14 -0
  23. package/app/App.js +49 -0
  24. package/{src/app/Confirmation/index.tsx → app/Confirmation/index.d.ts} +0 -0
  25. package/app/Confirmation/index.js +44 -0
  26. package/{src/app/Footer/index.tsx → app/Footer/index.d.ts} +0 -0
  27. package/app/Footer/index.js +200 -0
  28. package/app/Header/HeaderLogo.d.ts +3 -0
  29. package/app/Header/HeaderLogo.js +30 -0
  30. package/app/Header/HeaderSection.d.ts +5 -0
  31. package/app/Header/HeaderSection.js +20 -0
  32. package/app/Header/HeaderTitle.d.ts +5 -0
  33. package/app/Header/HeaderTitle.js +30 -0
  34. package/{src/app → app}/Header/__snapshots__/index.spec.tsx.snap +0 -0
  35. package/app/Header/index.d.ts +11 -0
  36. package/app/Header/index.js +106 -0
  37. package/{src/app → app}/Header/index.mdx +0 -0
  38. package/app/Header/index.spec.d.ts +1 -0
  39. package/app/Header/index.spec.js +45 -0
  40. package/app/NotFound/index.d.ts +3 -0
  41. package/app/NotFound/index.js +29 -0
  42. package/app/OutdatedBrowserBanner.d.ts +2 -0
  43. package/app/OutdatedBrowserBanner.js +41 -0
  44. package/app/PageTitle.d.ts +10 -0
  45. package/app/PageTitle.js +76 -0
  46. package/{src/app → app}/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -0
  47. package/app/QrCodeScanner/index.d.ts +29 -0
  48. package/app/QrCodeScanner/index.js +85 -0
  49. package/{src/app → app}/QrCodeScanner/index.mdx +0 -0
  50. package/app/QrCodeScanner/index.spec.d.ts +1 -0
  51. package/app/QrCodeScanner/index.spec.js +26 -0
  52. package/app/i18n.d.ts +10 -0
  53. package/app/i18n.js +63 -0
  54. package/{src/app/index.ts → app/index.d.ts} +0 -0
  55. package/app/index.js +70 -0
  56. package/{src/core → core}/Accordion/__snapshots__/index.spec.tsx.snap +0 -0
  57. package/core/Accordion/index.d.ts +21 -0
  58. package/core/Accordion/index.js +127 -0
  59. package/{src/core → core}/Accordion/index.mdx +0 -0
  60. package/core/Accordion/index.spec.d.ts +1 -0
  61. package/core/Accordion/index.spec.js +19 -0
  62. package/{src/core → core}/Blockquote/__snapshots__/index.spec.tsx.snap +0 -0
  63. package/core/Blockquote/index.d.ts +3 -0
  64. package/core/Blockquote/index.js +29 -0
  65. package/{src/core → core}/Blockquote/index.mdx +0 -0
  66. package/core/Blockquote/index.spec.d.ts +1 -0
  67. package/core/Blockquote/index.spec.js +21 -0
  68. package/{src/core/Breadcrumbs/index.tsx → core/Breadcrumbs/index.d.ts} +0 -0
  69. package/core/Breadcrumbs/index.js +44 -0
  70. package/core/Button/BackButton.d.ts +3 -0
  71. package/core/Button/BackButton.js +34 -0
  72. package/core/Button/ButtonLink.d.ts +4 -0
  73. package/core/Button/ButtonLink.js +28 -0
  74. package/core/Button/CallToAction.d.ts +7 -0
  75. package/core/Button/CallToAction.js +41 -0
  76. package/core/Button/Icon.d.ts +2 -0
  77. package/core/Button/Icon.js +19 -0
  78. package/{src/core → core}/Button/__snapshots__/index.spec.tsx.snap +0 -0
  79. package/core/Button/index.d.ts +15 -0
  80. package/core/Button/index.js +122 -0
  81. package/{src/core → core}/Button/index.mdx +0 -0
  82. package/core/Button/index.spec.d.ts +1 -0
  83. package/core/Button/index.spec.js +21 -0
  84. package/{src/core/Card/index.tsx → core/Card/index.d.ts} +0 -0
  85. package/core/Card/index.js +57 -0
  86. package/{src/core → core}/Details/__snapshots__/index.spec.tsx.snap +0 -0
  87. package/{src/core/Details/index.tsx → core/Details/index.d.ts} +0 -2
  88. package/core/Details/index.js +35 -0
  89. package/{src/core → core}/Details/index.mdx +0 -0
  90. package/core/Details/index.spec.d.ts +1 -0
  91. package/core/Details/index.spec.js +27 -0
  92. package/core/Divider/index.d.ts +5 -0
  93. package/core/Divider/index.js +20 -0
  94. package/{src/core → core}/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -0
  95. package/{src/core/ErrorSummary/index.tsx → core/ErrorSummary/index.d.ts} +0 -1
  96. package/core/ErrorSummary/index.js +19 -0
  97. package/{src/core → core}/ErrorSummary/index.mdx +0 -0
  98. package/core/ErrorSummary/index.spec.d.ts +1 -0
  99. package/core/ErrorSummary/index.spec.js +21 -0
  100. package/{src/core/Hidden/index.tsx → core/Hidden/index.d.ts} +0 -0
  101. package/core/Hidden/index.js +18 -0
  102. package/{src/core → core}/Link/__snapshots__/index.spec.tsx.snap +0 -0
  103. package/core/Link/index.d.ts +12 -0
  104. package/core/Link/index.js +50 -0
  105. package/core/Link/index.spec.d.ts +1 -0
  106. package/core/Link/index.spec.js +31 -0
  107. package/{src/core/List/List.tsx → core/List/List.d.ts} +0 -2
  108. package/core/List/List.js +19 -0
  109. package/{src/core/List/ListItem.tsx → core/List/ListItem.d.ts} +0 -2
  110. package/core/List/ListItem.js +19 -0
  111. package/core/List/ListItemContent.d.ts +7 -0
  112. package/core/List/ListItemContent.js +45 -0
  113. package/core/List/ListItemIcon.d.ts +7 -0
  114. package/core/List/ListItemIcon.js +48 -0
  115. package/core/List/ListItemText.d.ts +8 -0
  116. package/core/List/ListItemText.js +36 -0
  117. package/core/List/ListItemTitle.d.ts +10 -0
  118. package/core/List/ListItemTitle.js +44 -0
  119. package/{src/core → core}/List/__snapshots__/index.spec.tsx.snap +0 -0
  120. package/{src/core/List/index.tsx → core/List/index.d.ts} +0 -0
  121. package/core/List/index.js +96 -0
  122. package/{src/core → core}/List/index.mdx +0 -0
  123. package/core/List/index.spec.d.ts +1 -0
  124. package/core/List/index.spec.js +21 -0
  125. package/core/NavList/NavList.d.ts +17 -0
  126. package/core/NavList/NavList.js +99 -0
  127. package/core/NavList/NavListContext.d.ts +20 -0
  128. package/core/NavList/NavListContext.js +102 -0
  129. package/core/NavList/NavListItem.d.ts +13 -0
  130. package/core/NavList/NavListItem.js +171 -0
  131. package/core/NavList/NavListItemBase.d.ts +16 -0
  132. package/core/NavList/NavListItemBase.js +161 -0
  133. package/core/NavList/NavListSubMenu.d.ts +8 -0
  134. package/core/NavList/NavListSubMenu.js +52 -0
  135. package/{src/core → core}/NavList/__snapshots__/index.spec.tsx.snap +0 -0
  136. package/{src/core/NavList/index.tsx → core/NavList/index.d.ts} +0 -0
  137. package/core/NavList/index.js +68 -0
  138. package/{src/core → core}/NavList/index.mdx +0 -0
  139. package/core/NavList/index.spec.d.ts +1 -0
  140. package/core/NavList/index.spec.js +21 -0
  141. package/{src/core → core}/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -0
  142. package/core/NotificationBanner/index.d.ts +18 -0
  143. package/core/NotificationBanner/index.js +78 -0
  144. package/{src/core → core}/NotificationBanner/index.mdx +0 -0
  145. package/core/NotificationBanner/index.spec.d.ts +1 -0
  146. package/core/NotificationBanner/index.spec.js +32 -0
  147. package/core/ServiceBadge/ServiceBadge.mdx +0 -0
  148. package/core/ServiceBadge/index.d.ts +9 -0
  149. package/core/ServiceBadge/index.js +36 -0
  150. package/{src/core → core}/ServiceBadge/index.mdx +0 -0
  151. package/{src/core → core}/SummaryList/__snapshots__/index.spec.tsx.snap +0 -0
  152. package/{src/core/SummaryList/index.tsx → core/SummaryList/index.d.ts} +0 -2
  153. package/core/SummaryList/index.js +79 -0
  154. package/{src/core → core}/SummaryList/index.mdx +0 -0
  155. package/core/SummaryList/index.spec.d.ts +1 -0
  156. package/core/SummaryList/index.spec.js +19 -0
  157. package/{src/core/Table/index.tsx → core/Table/index.d.ts} +0 -0
  158. package/core/Table/index.js +96 -0
  159. package/core/Tabs/index.d.ts +16 -0
  160. package/core/Tabs/index.js +88 -0
  161. package/{src/core → core}/Tabs/index.mdx +0 -0
  162. package/{src/core/VisuallyHidden/index.tsx → core/VisuallyHidden/index.d.ts} +0 -0
  163. package/core/VisuallyHidden/index.js +18 -0
  164. package/{src/core → core}/WarningText/__snapshots__/index.spec.tsx.snap +0 -0
  165. package/{src/core/WarningText/index.tsx → core/WarningText/index.d.ts} +0 -1
  166. package/core/WarningText/index.js +19 -0
  167. package/{src/core → core}/WarningText/index.mdx +0 -0
  168. package/core/WarningText/index.spec.d.ts +1 -0
  169. package/core/WarningText/index.spec.js +21 -0
  170. package/{src/core/index.ts → core/index.d.ts} +0 -0
  171. package/core/index.js +227 -0
  172. package/custom.d.js +1 -0
  173. package/es/api/APIErrors.js +96 -0
  174. package/es/api/APIProvider.js +25 -0
  175. package/es/api/fetchAPI.js +49 -0
  176. package/{src/api/index.tsx → es/api/index.js} +3 -6
  177. package/es/api/index.spec.js +546 -0
  178. package/es/api/introduction.md +6 -0
  179. package/es/api/useResource.js +128 -0
  180. package/es/api/useResourceAction.js +141 -0
  181. package/es/api/useResourceQuery.js +208 -0
  182. package/es/api/utils.js +233 -0
  183. package/es/app/App.js +27 -0
  184. package/es/app/Confirmation/index.js +3 -0
  185. package/es/app/Footer/index.js +15 -0
  186. package/{src/app/Header/HeaderLogo.tsx → es/app/Header/HeaderLogo.js} +7 -9
  187. package/es/app/Header/HeaderSection.js +7 -0
  188. package/es/app/Header/HeaderTitle.js +17 -0
  189. package/es/app/Header/__snapshots__/index.spec.tsx.snap +393 -0
  190. package/{src/app/Header/index.tsx → es/app/Header/index.js} +4 -10
  191. package/es/app/Header/index.mdx +50 -0
  192. package/es/app/Header/index.spec.js +32 -0
  193. package/es/app/NotFound/index.js +12 -0
  194. package/es/app/OutdatedBrowserBanner.js +24 -0
  195. package/es/app/PageTitle.js +57 -0
  196. package/es/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +22 -0
  197. package/es/app/QrCodeScanner/index.js +64 -0
  198. package/es/app/QrCodeScanner/index.mdx +22 -0
  199. package/es/app/QrCodeScanner/index.spec.js +13 -0
  200. package/es/app/i18n.js +42 -0
  201. package/es/app/index.js +5 -0
  202. package/es/core/Accordion/__snapshots__/index.spec.tsx.snap +78 -0
  203. package/es/core/Accordion/index.js +67 -0
  204. package/es/core/Accordion/index.mdx +104 -0
  205. package/es/core/Accordion/index.spec.js +9 -0
  206. package/es/core/Blockquote/__snapshots__/index.spec.tsx.snap +13 -0
  207. package/{src/core/Blockquote/index.tsx → es/core/Blockquote/index.js} +7 -9
  208. package/es/core/Blockquote/index.mdx +61 -0
  209. package/es/core/Blockquote/index.spec.js +9 -0
  210. package/es/core/Breadcrumbs/index.js +3 -0
  211. package/{src/core/Button/BackButton.tsx → es/core/Button/BackButton.js} +8 -10
  212. package/es/core/Button/ButtonLink.js +16 -0
  213. package/es/core/Button/CallToAction.js +27 -0
  214. package/es/core/Button/Icon.js +7 -0
  215. package/es/core/Button/__snapshots__/index.spec.tsx.snap +13 -0
  216. package/es/core/Button/index.js +37 -0
  217. package/es/core/Button/index.mdx +65 -0
  218. package/es/core/Button/index.spec.js +9 -0
  219. package/es/core/Card/index.js +4 -0
  220. package/es/core/Details/__snapshots__/index.spec.tsx.snap +50 -0
  221. package/es/core/Details/index.js +5 -0
  222. package/es/core/Details/index.mdx +34 -0
  223. package/es/core/Details/index.spec.js +17 -0
  224. package/es/core/Divider/index.js +7 -0
  225. package/es/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +322 -0
  226. package/es/core/ErrorSummary/index.js +3 -0
  227. package/es/core/ErrorSummary/index.mdx +61 -0
  228. package/es/core/ErrorSummary/index.spec.js +9 -0
  229. package/es/core/Hidden/index.js +1 -0
  230. package/es/core/Link/__snapshots__/index.spec.tsx.snap +31 -0
  231. package/es/core/Link/index.js +26 -0
  232. package/es/core/Link/index.spec.js +21 -0
  233. package/es/core/List/List.js +3 -0
  234. package/es/core/List/ListItem.js +3 -0
  235. package/es/core/List/ListItemContent.js +27 -0
  236. package/es/core/List/ListItemIcon.js +29 -0
  237. package/es/core/List/ListItemText.js +19 -0
  238. package/es/core/List/ListItemTitle.js +25 -0
  239. package/es/core/List/__snapshots__/index.spec.tsx.snap +322 -0
  240. package/es/core/List/index.js +7 -0
  241. package/es/core/List/index.mdx +40 -0
  242. package/es/core/List/index.spec.js +9 -0
  243. package/es/core/NavList/NavList.js +78 -0
  244. package/es/core/NavList/NavListContext.js +80 -0
  245. package/es/core/NavList/NavListItem.js +141 -0
  246. package/es/core/NavList/NavListItemBase.js +133 -0
  247. package/es/core/NavList/NavListSubMenu.js +27 -0
  248. package/es/core/NavList/__snapshots__/index.spec.tsx.snap +334 -0
  249. package/es/core/NavList/index.js +5 -0
  250. package/es/core/NavList/index.mdx +185 -0
  251. package/es/core/NavList/index.spec.js +9 -0
  252. package/es/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +737 -0
  253. package/es/core/NotificationBanner/index.js +35 -0
  254. package/es/core/NotificationBanner/index.mdx +77 -0
  255. package/es/core/NotificationBanner/index.spec.js +20 -0
  256. package/es/core/ServiceBadge/ServiceBadge.mdx +0 -0
  257. package/es/core/ServiceBadge/index.js +20 -0
  258. package/es/core/ServiceBadge/index.mdx +42 -0
  259. package/es/core/SummaryList/__snapshots__/index.spec.tsx.snap +57 -0
  260. package/es/core/SummaryList/index.js +7 -0
  261. package/es/core/SummaryList/index.mdx +82 -0
  262. package/es/core/SummaryList/index.spec.js +9 -0
  263. package/es/core/Table/index.js +7 -0
  264. package/es/core/Tabs/index.js +37 -0
  265. package/es/core/Tabs/index.mdx +54 -0
  266. package/es/core/VisuallyHidden/index.js +1 -0
  267. package/es/core/WarningText/__snapshots__/index.spec.tsx.snap +336 -0
  268. package/es/core/WarningText/index.js +3 -0
  269. package/es/core/WarningText/index.mdx +46 -0
  270. package/es/core/WarningText/index.spec.js +9 -0
  271. package/es/core/index.js +17 -0
  272. package/es/custom.d.js +0 -0
  273. package/{src → es}/form/inputs/Input/index.mdx +0 -0
  274. package/es/govgr/Footer/Copyright.js +37 -0
  275. package/es/govgr/Footer/HellenicRepublicLogo.js +3 -0
  276. package/es/govgr/Footer/LicenseCCSA.js +18 -0
  277. package/es/govgr/Footer/index.js +21 -0
  278. package/{src → es}/govgr/Footer/index.mdx +0 -0
  279. package/{src/govgr/Footer/logo.ts → es/govgr/Footer/logo.js} +1 -1
  280. package/{src/govgr/Footer/logos/logo-el.ts → es/govgr/Footer/logos/logo-el.js} +1 -1
  281. package/{src/govgr/Footer/logos/logo-en.ts → es/govgr/Footer/logos/logo-en.js} +1 -1
  282. package/{src → es}/govgr/Logo/govgr-logo.svg +0 -0
  283. package/es/govgr/Logo/index.js +3 -0
  284. package/{src/govgr/Logo/logo.ts → es/govgr/Logo/logo.js} +1 -1
  285. package/es/govgr/index.js +4 -0
  286. package/es/hooks/useDebounce.js +41 -0
  287. package/es/hooks/useLatest.js +12 -0
  288. package/{src/hooks/useOutdatedBrowserCheck.ts → es/hooks/useOutdatedBrowserCheck.js} +15 -16
  289. package/es/hooks/useSearch.js +25 -0
  290. package/es/hooks/useTogglableSections.js +96 -0
  291. package/es/index.js +5 -0
  292. package/es/layouts/Basic/Bottom/index.js +3 -0
  293. package/{src → es}/layouts/Basic/Bottom/index.mdx +0 -0
  294. package/es/layouts/Basic/Content/index.js +18 -0
  295. package/{src → es}/layouts/Basic/Content/index.mdx +0 -0
  296. package/es/layouts/Basic/Main/index.js +3 -0
  297. package/{src → es}/layouts/Basic/Main/index.mdx +0 -0
  298. package/es/layouts/Basic/Masthead/index.js +4 -0
  299. package/{src → es}/layouts/Basic/Masthead/index.mdx +0 -0
  300. package/{src/layouts/Basic/Side/index.tsx → es/layouts/Basic/Side/index.js} +3 -5
  301. package/{src → es}/layouts/Basic/Side/index.mdx +0 -0
  302. package/{src/layouts/Basic/Top/index.tsx → es/layouts/Basic/Top/index.js} +5 -7
  303. package/{src → es}/layouts/Basic/Top/index.mdx +0 -0
  304. package/{src → es}/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -0
  305. package/es/layouts/Basic/index.js +8 -0
  306. package/{src → es}/layouts/Basic/index.mdx +0 -0
  307. package/es/layouts/Basic/index.spec.js +10 -0
  308. package/es/layouts/Grid/index.js +1 -0
  309. package/es/layouts/index.js +2 -0
  310. package/{src/locales/el.ts → es/locales/el.js} +14 -19
  311. package/{src/locales/en.ts → es/locales/en.js} +13 -17
  312. package/es/router/index.js +15 -0
  313. package/{src → es}/router/index.mdx +0 -0
  314. package/es/test-utils/delay.js +31 -0
  315. package/es/test-utils/mountWithTheme.js +30 -0
  316. package/{src → es}/themes/govgr.js +29 -33
  317. package/es/themes/grnet.js +110 -0
  318. package/es/themes/index.js +2 -0
  319. package/es/typography/Caption.js +7 -0
  320. package/es/typography/NormalText.js +3 -0
  321. package/es/typography/Paragraph.js +2 -0
  322. package/es/typography/Title.js +48 -0
  323. package/es/typography/index.js +8 -0
  324. package/{src → es}/typography/index.mdx +0 -0
  325. package/es/utils/evaluateBrowserVersion.js +201 -0
  326. package/es/utils/withDeprecation.js +103 -0
  327. package/esm/api/APIErrors.js +96 -0
  328. package/esm/api/APIProvider.js +25 -0
  329. package/esm/api/fetchAPI.js +49 -0
  330. package/esm/api/index.js +13 -0
  331. package/esm/api/index.spec.js +546 -0
  332. package/esm/api/introduction.md +6 -0
  333. package/esm/api/useResource.js +128 -0
  334. package/esm/api/useResourceAction.js +141 -0
  335. package/esm/api/useResourceQuery.js +208 -0
  336. package/esm/api/utils.js +233 -0
  337. package/esm/app/App.js +27 -0
  338. package/esm/app/Confirmation/index.js +3 -0
  339. package/esm/app/Footer/index.js +15 -0
  340. package/esm/app/Header/HeaderLogo.js +17 -0
  341. package/esm/app/Header/HeaderSection.js +7 -0
  342. package/esm/app/Header/HeaderTitle.js +17 -0
  343. package/esm/app/Header/__snapshots__/index.spec.tsx.snap +393 -0
  344. package/esm/app/Header/index.js +13 -0
  345. package/esm/app/Header/index.mdx +50 -0
  346. package/esm/app/Header/index.spec.js +32 -0
  347. package/esm/app/NotFound/index.js +12 -0
  348. package/esm/app/OutdatedBrowserBanner.js +24 -0
  349. package/esm/app/PageTitle.js +57 -0
  350. package/esm/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +22 -0
  351. package/esm/app/QrCodeScanner/index.js +64 -0
  352. package/esm/app/QrCodeScanner/index.mdx +22 -0
  353. package/esm/app/QrCodeScanner/index.spec.js +13 -0
  354. package/esm/app/i18n.js +42 -0
  355. package/esm/app/index.js +5 -0
  356. package/esm/core/Accordion/__snapshots__/index.spec.tsx.snap +78 -0
  357. package/esm/core/Accordion/index.js +67 -0
  358. package/esm/core/Accordion/index.mdx +104 -0
  359. package/esm/core/Accordion/index.spec.js +9 -0
  360. package/esm/core/Blockquote/__snapshots__/index.spec.tsx.snap +13 -0
  361. package/esm/core/Blockquote/index.js +16 -0
  362. package/esm/core/Blockquote/index.mdx +61 -0
  363. package/esm/core/Blockquote/index.spec.js +9 -0
  364. package/esm/core/Breadcrumbs/index.js +3 -0
  365. package/esm/core/Button/BackButton.js +21 -0
  366. package/esm/core/Button/ButtonLink.js +16 -0
  367. package/esm/core/Button/CallToAction.js +27 -0
  368. package/esm/core/Button/Icon.js +7 -0
  369. package/esm/core/Button/__snapshots__/index.spec.tsx.snap +13 -0
  370. package/esm/core/Button/index.js +37 -0
  371. package/esm/core/Button/index.mdx +65 -0
  372. package/esm/core/Button/index.spec.js +9 -0
  373. package/esm/core/Card/index.js +4 -0
  374. package/esm/core/Details/__snapshots__/index.spec.tsx.snap +50 -0
  375. package/esm/core/Details/index.js +5 -0
  376. package/esm/core/Details/index.mdx +34 -0
  377. package/esm/core/Details/index.spec.js +17 -0
  378. package/esm/core/Divider/index.js +7 -0
  379. package/esm/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +322 -0
  380. package/esm/core/ErrorSummary/index.js +3 -0
  381. package/esm/core/ErrorSummary/index.mdx +61 -0
  382. package/esm/core/ErrorSummary/index.spec.js +9 -0
  383. package/esm/core/Hidden/index.js +1 -0
  384. package/esm/core/Link/__snapshots__/index.spec.tsx.snap +31 -0
  385. package/esm/core/Link/index.js +26 -0
  386. package/esm/core/Link/index.spec.js +21 -0
  387. package/esm/core/List/List.js +3 -0
  388. package/esm/core/List/ListItem.js +3 -0
  389. package/esm/core/List/ListItemContent.js +27 -0
  390. package/esm/core/List/ListItemIcon.js +29 -0
  391. package/esm/core/List/ListItemText.js +19 -0
  392. package/esm/core/List/ListItemTitle.js +25 -0
  393. package/esm/core/List/__snapshots__/index.spec.tsx.snap +322 -0
  394. package/esm/core/List/index.js +7 -0
  395. package/esm/core/List/index.mdx +40 -0
  396. package/esm/core/List/index.spec.js +9 -0
  397. package/esm/core/NavList/NavList.js +78 -0
  398. package/esm/core/NavList/NavListContext.js +80 -0
  399. package/esm/core/NavList/NavListItem.js +141 -0
  400. package/esm/core/NavList/NavListItemBase.js +133 -0
  401. package/esm/core/NavList/NavListSubMenu.js +27 -0
  402. package/esm/core/NavList/__snapshots__/index.spec.tsx.snap +334 -0
  403. package/esm/core/NavList/index.js +5 -0
  404. package/esm/core/NavList/index.mdx +185 -0
  405. package/esm/core/NavList/index.spec.js +9 -0
  406. package/esm/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +737 -0
  407. package/esm/core/NotificationBanner/index.js +35 -0
  408. package/esm/core/NotificationBanner/index.mdx +77 -0
  409. package/esm/core/NotificationBanner/index.spec.js +20 -0
  410. package/esm/core/ServiceBadge/ServiceBadge.mdx +0 -0
  411. package/esm/core/ServiceBadge/index.js +20 -0
  412. package/esm/core/ServiceBadge/index.mdx +42 -0
  413. package/esm/core/SummaryList/__snapshots__/index.spec.tsx.snap +57 -0
  414. package/esm/core/SummaryList/index.js +7 -0
  415. package/esm/core/SummaryList/index.mdx +82 -0
  416. package/esm/core/SummaryList/index.spec.js +9 -0
  417. package/esm/core/Table/index.js +7 -0
  418. package/esm/core/Tabs/index.js +37 -0
  419. package/esm/core/Tabs/index.mdx +54 -0
  420. package/esm/core/VisuallyHidden/index.js +1 -0
  421. package/esm/core/WarningText/__snapshots__/index.spec.tsx.snap +336 -0
  422. package/esm/core/WarningText/index.js +3 -0
  423. package/esm/core/WarningText/index.mdx +46 -0
  424. package/esm/core/WarningText/index.spec.js +9 -0
  425. package/esm/core/index.js +17 -0
  426. package/esm/custom.d.js +0 -0
  427. package/esm/form/inputs/Input/index.mdx +10 -0
  428. package/esm/govgr/Footer/Copyright.js +37 -0
  429. package/esm/govgr/Footer/HellenicRepublicLogo.js +3 -0
  430. package/esm/govgr/Footer/LicenseCCSA.js +18 -0
  431. package/esm/govgr/Footer/index.js +21 -0
  432. package/esm/govgr/Footer/index.mdx +97 -0
  433. package/esm/govgr/Footer/logo.js +1 -0
  434. package/esm/govgr/Footer/logos/logo-el.js +1 -0
  435. package/esm/govgr/Footer/logos/logo-en.js +1 -0
  436. package/esm/govgr/Logo/govgr-logo.svg +1 -0
  437. package/esm/govgr/Logo/index.js +3 -0
  438. package/esm/govgr/Logo/logo.js +1 -0
  439. package/esm/govgr/index.js +4 -0
  440. package/esm/hooks/useDebounce.js +41 -0
  441. package/esm/hooks/useLatest.js +12 -0
  442. package/esm/hooks/useOutdatedBrowserCheck.js +46 -0
  443. package/esm/hooks/useSearch.js +25 -0
  444. package/esm/hooks/useTogglableSections.js +96 -0
  445. package/esm/index.js +10 -0
  446. package/esm/layouts/Basic/Bottom/index.js +3 -0
  447. package/esm/layouts/Basic/Bottom/index.mdx +37 -0
  448. package/esm/layouts/Basic/Content/index.js +18 -0
  449. package/esm/layouts/Basic/Content/index.mdx +64 -0
  450. package/esm/layouts/Basic/Main/index.js +3 -0
  451. package/esm/layouts/Basic/Main/index.mdx +64 -0
  452. package/esm/layouts/Basic/Masthead/index.js +4 -0
  453. package/esm/layouts/Basic/Masthead/index.mdx +74 -0
  454. package/esm/layouts/Basic/Side/index.js +7 -0
  455. package/esm/layouts/Basic/Side/index.mdx +71 -0
  456. package/esm/layouts/Basic/Top/index.js +11 -0
  457. package/esm/layouts/Basic/Top/index.mdx +74 -0
  458. package/esm/layouts/Basic/__snapshots__/index.spec.tsx.snap +54 -0
  459. package/esm/layouts/Basic/index.js +8 -0
  460. package/esm/layouts/Basic/index.mdx +62 -0
  461. package/esm/layouts/Basic/index.spec.js +10 -0
  462. package/esm/layouts/Grid/index.js +1 -0
  463. package/esm/layouts/index.js +2 -0
  464. package/esm/locales/el.js +55 -0
  465. package/esm/locales/en.js +55 -0
  466. package/esm/router/index.js +15 -0
  467. package/esm/router/index.mdx +40 -0
  468. package/esm/test-utils/delay.js +31 -0
  469. package/esm/test-utils/mountWithTheme.js +30 -0
  470. package/esm/themes/govgr.js +79 -0
  471. package/esm/themes/grnet.js +110 -0
  472. package/esm/themes/index.js +2 -0
  473. package/esm/typography/Caption.js +7 -0
  474. package/esm/typography/NormalText.js +3 -0
  475. package/esm/typography/Paragraph.js +2 -0
  476. package/esm/typography/Title.js +48 -0
  477. package/esm/typography/index.js +8 -0
  478. package/esm/typography/index.mdx +32 -0
  479. package/esm/utils/evaluateBrowserVersion.js +201 -0
  480. package/esm/utils/withDeprecation.js +103 -0
  481. package/form/inputs/Input/index.mdx +10 -0
  482. package/govgr/Footer/Copyright.d.ts +8 -0
  483. package/govgr/Footer/Copyright.js +52 -0
  484. package/{src/govgr/Footer/HellenicRepublicLogo.tsx → govgr/Footer/HellenicRepublicLogo.d.ts} +0 -1
  485. package/govgr/Footer/HellenicRepublicLogo.js +19 -0
  486. package/govgr/Footer/LicenseCCSA.d.ts +3 -0
  487. package/govgr/Footer/LicenseCCSA.js +33 -0
  488. package/govgr/Footer/index.d.ts +13 -0
  489. package/govgr/Footer/index.js +39 -0
  490. package/govgr/Footer/index.mdx +97 -0
  491. package/govgr/Footer/logo.d.ts +2 -0
  492. package/govgr/Footer/logo.js +8 -0
  493. package/govgr/Footer/logos/logo-el.d.ts +2 -0
  494. package/govgr/Footer/logos/logo-el.js +8 -0
  495. package/govgr/Footer/logos/logo-en.d.ts +2 -0
  496. package/govgr/Footer/logos/logo-en.js +8 -0
  497. package/govgr/Logo/govgr-logo.svg +1 -0
  498. package/{src/govgr/Logo/index.tsx → govgr/Logo/index.d.ts} +0 -2
  499. package/govgr/Logo/index.js +19 -0
  500. package/govgr/Logo/logo.d.ts +2 -0
  501. package/govgr/Logo/logo.js +8 -0
  502. package/{src/govgr/index.ts → govgr/index.d.ts} +0 -0
  503. package/govgr/index.js +57 -0
  504. package/hooks/useDebounce.d.ts +3 -0
  505. package/hooks/useDebounce.js +63 -0
  506. package/hooks/useLatest.d.ts +3 -0
  507. package/hooks/useLatest.js +26 -0
  508. package/hooks/useOutdatedBrowserCheck.d.ts +2 -0
  509. package/hooks/useOutdatedBrowserCheck.js +60 -0
  510. package/hooks/useSearch.d.ts +4 -0
  511. package/hooks/useSearch.js +40 -0
  512. package/hooks/useTogglableSections.d.ts +18 -0
  513. package/hooks/useTogglableSections.js +108 -0
  514. package/{src/index.ts → index.d.ts} +0 -0
  515. package/index.js +70 -0
  516. package/{src/layouts/Basic/Bottom/index.tsx → layouts/Basic/Bottom/index.d.ts} +0 -1
  517. package/layouts/Basic/Bottom/index.js +19 -0
  518. package/layouts/Basic/Bottom/index.mdx +37 -0
  519. package/layouts/Basic/Content/index.d.ts +5 -0
  520. package/layouts/Basic/Content/index.js +31 -0
  521. package/layouts/Basic/Content/index.mdx +64 -0
  522. package/{src/layouts/Basic/Main/index.tsx → layouts/Basic/Main/index.d.ts} +0 -1
  523. package/layouts/Basic/Main/index.js +19 -0
  524. package/layouts/Basic/Main/index.mdx +64 -0
  525. package/{src/layouts/Basic/Masthead/index.tsx → layouts/Basic/Masthead/index.d.ts} +0 -2
  526. package/layouts/Basic/Masthead/index.js +27 -0
  527. package/layouts/Basic/Masthead/index.mdx +74 -0
  528. package/layouts/Basic/Side/index.d.ts +3 -0
  529. package/layouts/Basic/Side/index.js +20 -0
  530. package/layouts/Basic/Side/index.mdx +71 -0
  531. package/layouts/Basic/Top/index.d.ts +3 -0
  532. package/layouts/Basic/Top/index.js +24 -0
  533. package/layouts/Basic/Top/index.mdx +74 -0
  534. package/layouts/Basic/__snapshots__/index.spec.tsx.snap +54 -0
  535. package/{src/layouts/Basic/index.tsx → layouts/Basic/index.d.ts} +0 -2
  536. package/layouts/Basic/index.js +97 -0
  537. package/layouts/Basic/index.mdx +62 -0
  538. package/layouts/Basic/index.spec.d.ts +1 -0
  539. package/layouts/Basic/index.spec.js +20 -0
  540. package/{src/layouts/Grid/index.tsx → layouts/Grid/index.d.ts} +0 -0
  541. package/layouts/Grid/index.js +18 -0
  542. package/{src/layouts/index.ts → layouts/index.d.ts} +0 -0
  543. package/layouts/index.js +34 -0
  544. package/locales/el.d.ts +56 -0
  545. package/locales/el.js +62 -0
  546. package/locales/en.d.ts +56 -0
  547. package/locales/en.js +62 -0
  548. package/package.json +8 -31
  549. package/router/index.d.ts +9 -0
  550. package/router/index.js +37 -0
  551. package/router/index.mdx +40 -0
  552. package/test-utils/delay.d.ts +2 -0
  553. package/test-utils/delay.js +45 -0
  554. package/test-utils/mountWithTheme.d.ts +3 -0
  555. package/test-utils/mountWithTheme.js +43 -0
  556. package/themes/govgr.d.ts +3 -0
  557. package/themes/govgr.js +89 -0
  558. package/themes/grnet.d.ts +2 -0
  559. package/themes/grnet.js +128 -0
  560. package/themes/index.d.ts +32 -0
  561. package/themes/index.js +19 -0
  562. package/typography/Caption.d.ts +7 -0
  563. package/typography/Caption.js +20 -0
  564. package/typography/NormalText.d.ts +5 -0
  565. package/typography/NormalText.js +19 -0
  566. package/typography/Paragraph.d.ts +6 -0
  567. package/typography/Paragraph.js +13 -0
  568. package/typography/Title.d.ts +9 -0
  569. package/typography/Title.js +63 -0
  570. package/{src/typography/index.ts → typography/index.d.ts} +0 -0
  571. package/typography/index.js +97 -0
  572. package/typography/index.mdx +32 -0
  573. package/utils/evaluateBrowserVersion.d.ts +15 -0
  574. package/utils/evaluateBrowserVersion.js +216 -0
  575. package/utils/withDeprecation.d.ts +16 -0
  576. package/utils/withDeprecation.js +116 -0
  577. package/.eslintrc.js +0 -4
  578. package/.prettierrc.js +0 -3
  579. package/.rush/temp/package-deps_build.json +0 -176
  580. package/.rush/temp/shrinkwrap-deps.json +0 -278
  581. package/CHANGELOG.json +0 -796
  582. package/docs/components.mdx +0 -1
  583. package/docs/create-a-new-service.mdx +0 -93
  584. package/docs/create-common-page-layout.mdx +0 -205
  585. package/docs/create-static-page.mdx +0 -179
  586. package/docs/edit-start-page.mdx +0 -143
  587. package/docs/index.mdx +0 -66
  588. package/docs/introduction.mdx +0 -34
  589. package/src/api/APIErrors.tsx +0 -44
  590. package/src/api/APIProvider.tsx +0 -27
  591. package/src/api/fetchAPI.ts +0 -45
  592. package/src/api/index.spec.tsx +0 -419
  593. package/src/api/useResource.tsx +0 -96
  594. package/src/api/useResourceAction.tsx +0 -80
  595. package/src/api/useResourceQuery.tsx +0 -177
  596. package/src/api/utils.tsx +0 -156
  597. package/src/app/App.tsx +0 -33
  598. package/src/app/Header/HeaderSection.tsx +0 -13
  599. package/src/app/Header/HeaderTitle.tsx +0 -24
  600. package/src/app/Header/index.spec.tsx +0 -32
  601. package/src/app/NotFound/index.tsx +0 -21
  602. package/src/app/OutdatedBrowserBanner.tsx +0 -37
  603. package/src/app/PageTitle.tsx +0 -70
  604. package/src/app/QrCodeScanner/index.spec.tsx +0 -19
  605. package/src/app/QrCodeScanner/index.tsx +0 -90
  606. package/src/app/i18n.tsx +0 -44
  607. package/src/core/Accordion/index.spec.tsx +0 -30
  608. package/src/core/Accordion/index.tsx +0 -86
  609. package/src/core/Blockquote/index.spec.tsx +0 -10
  610. package/src/core/Button/ButtonLink.tsx +0 -20
  611. package/src/core/Button/CallToAction.tsx +0 -31
  612. package/src/core/Button/Icon.tsx +0 -9
  613. package/src/core/Button/index.spec.tsx +0 -8
  614. package/src/core/Button/index.tsx +0 -46
  615. package/src/core/Details/index.spec.tsx +0 -38
  616. package/src/core/Divider/index.tsx +0 -13
  617. package/src/core/ErrorSummary/index.spec.tsx +0 -10
  618. package/src/core/Link/index.spec.tsx +0 -22
  619. package/src/core/Link/index.tsx +0 -41
  620. package/src/core/List/ListItemContent.tsx +0 -32
  621. package/src/core/List/ListItemIcon.tsx +0 -31
  622. package/src/core/List/ListItemText.tsx +0 -23
  623. package/src/core/List/ListItemTitle.tsx +0 -37
  624. package/src/core/List/index.spec.tsx +0 -10
  625. package/src/core/NavList/NavList.tsx +0 -103
  626. package/src/core/NavList/NavListContext.tsx +0 -85
  627. package/src/core/NavList/NavListItem.tsx +0 -143
  628. package/src/core/NavList/NavListItemBase.tsx +0 -146
  629. package/src/core/NavList/NavListSubMenu.tsx +0 -33
  630. package/src/core/NavList/index.spec.tsx +0 -10
  631. package/src/core/NotificationBanner/index.spec.tsx +0 -27
  632. package/src/core/NotificationBanner/index.tsx +0 -52
  633. package/src/core/ServiceBadge/index.tsx +0 -35
  634. package/src/core/SummaryList/index.spec.tsx +0 -28
  635. package/src/core/Tabs/index.tsx +0 -36
  636. package/src/core/WarningText/index.spec.tsx +0 -10
  637. package/src/custom.d.ts +0 -8
  638. package/src/govgr/Footer/Copyright.tsx +0 -64
  639. package/src/govgr/Footer/LicenseCCSA.tsx +0 -24
  640. package/src/govgr/Footer/index.tsx +0 -49
  641. package/src/hooks/useDebounce.ts +0 -50
  642. package/src/hooks/useLatest.ts +0 -12
  643. package/src/hooks/useSearch.ts +0 -47
  644. package/src/hooks/useTogglableSections.tsx +0 -102
  645. package/src/layouts/Basic/Content/index.tsx +0 -24
  646. package/src/layouts/Basic/index.spec.tsx +0 -24
  647. package/src/router/index.tsx +0 -28
  648. package/src/test-utils/delay.ts +0 -9
  649. package/src/test-utils/mountWithTheme.tsx +0 -33
  650. package/src/themes/grnet.js +0 -109
  651. package/src/themes/index.tsx +0 -38
  652. package/src/typography/Caption.tsx +0 -15
  653. package/src/typography/NormalText.tsx +0 -7
  654. package/src/typography/Paragraph.tsx +0 -9
  655. package/src/typography/Title.tsx +0 -51
  656. package/src/utils/evaluateBrowserVersion.ts +0 -346
  657. package/src/utils/withDeprecation.tsx +0 -97
  658. package/tsconfig.json +0 -18
  659. package/tsconfig.production.json +0 -27
  660. package/ui.build.log +0 -17
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useResource = useResource;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _utils = require("@digigov/ui/api/utils");
17
+
18
+ var _reactQuery = require("react-query");
19
+
20
+ var _api = require("@digigov/ui/api");
21
+
22
+ var _react = require("react");
23
+
24
+ function useResource(resource, id, query, options, suspense) {
25
+ var _useAPI = (0, _api.useAPI)(),
26
+ baseURL = _useAPI.config.baseURL,
27
+ token = _useAPI.token;
28
+
29
+ var _useState = (0, _react.useState)({
30
+ url: '',
31
+ dataSet: false
32
+ }),
33
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
34
+ _useState2$ = _useState2[0],
35
+ url = _useState2$.url,
36
+ dataSet = _useState2$.dataSet,
37
+ setFetchOpts = _useState2[1];
38
+
39
+ function customFetcher(_x, _x2) {
40
+ return _customFetcher.apply(this, arguments);
41
+ }
42
+
43
+ function _customFetcher() {
44
+ _customFetcher = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(fetchUrl, options) {
45
+ var response, _yield$processRespons, _data, _error;
46
+
47
+ return _regenerator["default"].wrap(function _callee$(_context) {
48
+ while (1) {
49
+ switch (_context.prev = _context.next) {
50
+ case 0:
51
+ setFetchOpts({
52
+ url: fetchUrl,
53
+ dataSet: false
54
+ });
55
+ _context.next = 3;
56
+ return fetch(fetchUrl, options);
57
+
58
+ case 3:
59
+ response = _context.sent;
60
+ _context.prev = 4;
61
+ _context.next = 7;
62
+ return (0, _utils.processResponse)(response);
63
+
64
+ case 7:
65
+ _yield$processRespons = _context.sent;
66
+ _data = _yield$processRespons.data;
67
+ _error = _yield$processRespons.error;
68
+
69
+ if (!_error) {
70
+ _context.next = 12;
71
+ break;
72
+ }
73
+
74
+ return _context.abrupt("return", Promise.reject(_error));
75
+
76
+ case 12:
77
+ if (!_data) {
78
+ _context.next = 14;
79
+ break;
80
+ }
81
+
82
+ return _context.abrupt("return", Promise.resolve(_data));
83
+
84
+ case 14:
85
+ _context.next = 19;
86
+ break;
87
+
88
+ case 16:
89
+ _context.prev = 16;
90
+ _context.t0 = _context["catch"](4);
91
+ return _context.abrupt("return", Promise.reject(_context.t0.error));
92
+
93
+ case 19:
94
+ case "end":
95
+ return _context.stop();
96
+ }
97
+ }
98
+ }, _callee, null, [[4, 16]]);
99
+ }));
100
+ return _customFetcher.apply(this, arguments);
101
+ }
102
+
103
+ var queryKey = (0, _utils.getQueryKey)(resource, id, query, null, options, 'GET', baseURL, token);
104
+ var enabled = true;
105
+ var resolvedQueryKey;
106
+
107
+ if (typeof queryKey === 'function') {
108
+ try {
109
+ resolvedQueryKey = queryKey();
110
+ } catch (err) {
111
+ enabled = false;
112
+ }
113
+ }
114
+
115
+ var _useQuery = (0, _reactQuery.useQuery)(resolvedQueryKey || queryKey, customFetcher, {
116
+ enabled: enabled,
117
+ refetchOnWindowFocus: false,
118
+ refetchOnMount: false,
119
+ suspense: suspense || false,
120
+ cacheTime: 300000,
121
+ staleTime: 20000,
122
+ retry: false,
123
+ useErrorBoundary: false // falls back to suspense
124
+
125
+ }),
126
+ status = _useQuery.status,
127
+ data = _useQuery.data,
128
+ error = _useQuery.error,
129
+ isFetching = _useQuery.isFetching,
130
+ refetch = _useQuery.refetch;
131
+
132
+ return {
133
+ data: data,
134
+ loading: isFetching,
135
+ loaded: ['error', 'success'].includes(status),
136
+ error: error,
137
+ invalidate: function invalidate() {
138
+ _reactQuery.queryCache.invalidateQueries(resolvedQueryKey || queryKey);
139
+ },
140
+ fetch: refetch,
141
+ dataSet: dataSet,
142
+ url: url
143
+ };
144
+ }
@@ -0,0 +1,2 @@
1
+ import { RequestResponse } from '@digigov/ui/api/useResource';
2
+ export declare function useResourceAction(resource: string, id?: (string | null | undefined) | number | ((...args: any) => void), method?: string, data?: Record<string, any> | null | ((...args: any) => void), query?: Record<string, any> | null | ((...args: any) => void), options?: RequestInit | null): RequestResponse;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useResourceAction = useResourceAction;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = require("react");
17
+
18
+ var _utils = require("@digigov/ui/api/utils");
19
+
20
+ var _reactQuery = require("react-query");
21
+
22
+ var _api = require("@digigov/ui/api");
23
+
24
+ function useResourceAction(resource, id) {
25
+ var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'POST';
26
+ var data = arguments.length > 3 ? arguments[3] : undefined;
27
+ var query = arguments.length > 4 ? arguments[4] : undefined;
28
+ var options = arguments.length > 5 ? arguments[5] : undefined;
29
+
30
+ var _useAPI = (0, _api.useAPI)(),
31
+ baseURL = _useAPI.config.baseURL,
32
+ token = _useAPI.token;
33
+
34
+ var _useState = (0, _react.useState)({
35
+ url: '',
36
+ dataSet: false
37
+ }),
38
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
39
+ _useState2$ = _useState2[0],
40
+ url = _useState2$.url,
41
+ dataSet = _useState2$.dataSet,
42
+ setFetchOpts = _useState2[1];
43
+
44
+ var _useState3 = (0, _react.useState)(false),
45
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
46
+ consume = _useState4[0],
47
+ setConsume = _useState4[1];
48
+
49
+ function customFetcher() {
50
+ return _customFetcher.apply(this, arguments);
51
+ }
52
+
53
+ function _customFetcher() {
54
+ _customFetcher = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
55
+ var _ref,
56
+ _ref2,
57
+ fetchUrl,
58
+ options,
59
+ response,
60
+ _yield$processRespons,
61
+ _data2,
62
+ _args = arguments;
63
+
64
+ return _regenerator["default"].wrap(function _callee$(_context) {
65
+ while (1) {
66
+ switch (_context.prev = _context.next) {
67
+ case 0:
68
+ _ref = _args.length <= 0 ? undefined : _args[0], _ref2 = (0, _slicedToArray2["default"])(_ref, 2), fetchUrl = _ref2[0], options = _ref2[1];
69
+
70
+ if (options.body) {
71
+ setFetchOpts({
72
+ url: fetchUrl,
73
+ dataSet: true
74
+ });
75
+ } else {
76
+ setFetchOpts({
77
+ url: fetchUrl,
78
+ dataSet: false
79
+ });
80
+ }
81
+
82
+ _context.next = 4;
83
+ return fetch(fetchUrl, options);
84
+
85
+ case 4:
86
+ response = _context.sent;
87
+ _context.prev = 5;
88
+ _context.next = 8;
89
+ return (0, _utils.processResponse)(response, true);
90
+
91
+ case 8:
92
+ _yield$processRespons = _context.sent;
93
+ _data2 = _yield$processRespons.data;
94
+
95
+ if (!_data2) {
96
+ _context.next = 12;
97
+ break;
98
+ }
99
+
100
+ return _context.abrupt("return", Promise.resolve(_data2));
101
+
102
+ case 12:
103
+ _context.next = 17;
104
+ break;
105
+
106
+ case 14:
107
+ _context.prev = 14;
108
+ _context.t0 = _context["catch"](5);
109
+ return _context.abrupt("return", Promise.reject(_context.t0.error));
110
+
111
+ case 17:
112
+ case "end":
113
+ return _context.stop();
114
+ }
115
+ }
116
+ }, _callee, null, [[5, 14]]);
117
+ }));
118
+ return _customFetcher.apply(this, arguments);
119
+ }
120
+
121
+ var _useMutation = (0, _reactQuery.useMutation)(customFetcher, {}),
122
+ _useMutation2 = (0, _slicedToArray2["default"])(_useMutation, 2),
123
+ mutate = _useMutation2[0],
124
+ _useMutation2$ = _useMutation2[1],
125
+ status = _useMutation2$.status,
126
+ _data = _useMutation2$.data,
127
+ error = _useMutation2$.error,
128
+ reset = _useMutation2$.reset;
129
+
130
+ (0, _react.useEffect)(function () {
131
+ if (consume) {
132
+ var queryKey = (0, _utils.getQueryKey)(resource, id, query, data, options, method, baseURL, token);
133
+
134
+ if (typeof queryKey === 'function') {
135
+ mutate(queryKey());
136
+ } else {
137
+ mutate(queryKey);
138
+ }
139
+
140
+ setConsume(false);
141
+ }
142
+ }, [consume]);
143
+ return {
144
+ data: _data,
145
+ loading: status === 'loading',
146
+ loaded: ['success', 'error'].includes(status),
147
+ error: error,
148
+ invalidate: function invalidate() {
149
+ reset();
150
+ },
151
+ fetch: function fetch() {
152
+ setConsume(true);
153
+ },
154
+ dataSet: dataSet,
155
+ url: url
156
+ };
157
+ }
@@ -0,0 +1,18 @@
1
+ export declare function useResourceManyBase(resource: string, query?: Record<string, any> | null | ((...args: any) => any), options?: RequestInit | null): any;
2
+ export declare type UseResourceManyResponse = {
3
+ data?: any;
4
+ meta?: {
5
+ total?: number;
6
+ count?: number;
7
+ };
8
+ page: number;
9
+ limit: number;
10
+ totalPages: number;
11
+ total: number;
12
+ limitOptions: number[];
13
+ setPage: (page: number) => void;
14
+ setLimit: (limit: number) => void;
15
+ hasNext: boolean;
16
+ hasPrevious: boolean;
17
+ };
18
+ export declare function useResourceMany(resource: string, query?: Record<string, any> | null, options?: RequestInit | null): UseResourceManyResponse;
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useResourceMany = useResourceMany;
9
+ exports.useResourceManyBase = useResourceManyBase;
10
+
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
+
15
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
16
+
17
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
+
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
20
+
21
+ var _react = require("react");
22
+
23
+ var _utils = require("@digigov/ui/api/utils");
24
+
25
+ var _reactQuery = require("react-query");
26
+
27
+ var _api = require("@digigov/ui/api");
28
+
29
+ var _excluded = ["data"];
30
+ var DEFAULT_PAGINATION_LIMIT = 30;
31
+ var DEFAULT_LIMIT_OPTIONS = [10, 30, 60, 100];
32
+
33
+ function useResourceManyBase(resource, query, options) {
34
+ var _useAPI = (0, _api.useAPI)(),
35
+ baseURL = _useAPI.config.baseURL,
36
+ token = _useAPI.token;
37
+
38
+ var _useState = (0, _react.useState)({
39
+ url: '',
40
+ dataSet: false
41
+ }),
42
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
43
+ _useState2$ = _useState2[0],
44
+ url = _useState2$.url,
45
+ dataSet = _useState2$.dataSet,
46
+ setFetchOpts = _useState2[1];
47
+
48
+ var customFetcher = (0, _react.useCallback)( /*#__PURE__*/function () {
49
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(fetchUrl, options) {
50
+ var response, _yield$processRespons, _data;
51
+
52
+ return _regenerator["default"].wrap(function _callee$(_context) {
53
+ while (1) {
54
+ switch (_context.prev = _context.next) {
55
+ case 0:
56
+ setFetchOpts({
57
+ url: fetchUrl,
58
+ dataSet: false
59
+ });
60
+ _context.next = 3;
61
+ return fetch(fetchUrl, options);
62
+
63
+ case 3:
64
+ response = _context.sent;
65
+ _context.prev = 4;
66
+ _context.next = 7;
67
+ return (0, _utils.processResponse)(response, true);
68
+
69
+ case 7:
70
+ _yield$processRespons = _context.sent;
71
+ _data = _yield$processRespons.data;
72
+
73
+ if (!_data) {
74
+ _context.next = 11;
75
+ break;
76
+ }
77
+
78
+ return _context.abrupt("return", Promise.resolve(_data));
79
+
80
+ case 11:
81
+ _context.next = 16;
82
+ break;
83
+
84
+ case 13:
85
+ _context.prev = 13;
86
+ _context.t0 = _context["catch"](4);
87
+ return _context.abrupt("return", Promise.reject(_context.t0.error));
88
+
89
+ case 16:
90
+ case "end":
91
+ return _context.stop();
92
+ }
93
+ }
94
+ }, _callee, null, [[4, 13]]);
95
+ }));
96
+
97
+ return function (_x, _x2) {
98
+ return _ref.apply(this, arguments);
99
+ };
100
+ }(), []);
101
+ var queryKey = (0, _utils.getQueryKey)(resource, null, query, null, options, 'GET', baseURL, token);
102
+ var enabled = true;
103
+ var resolvedQueryKey;
104
+
105
+ if (typeof queryKey === 'function') {
106
+ try {
107
+ resolvedQueryKey = queryKey();
108
+ } catch (err) {
109
+ enabled = false;
110
+ }
111
+ }
112
+
113
+ var _usePaginatedQuery = (0, _reactQuery.usePaginatedQuery)({
114
+ queryKey: resolvedQueryKey || queryKey,
115
+ queryFn: customFetcher,
116
+ config: {
117
+ enabled: enabled,
118
+ suspense: true,
119
+ cacheTime: 30000,
120
+ refetchOnMount: false
121
+ }
122
+ }),
123
+ resolvedData = _usePaginatedQuery.resolvedData,
124
+ data = _usePaginatedQuery.latestData,
125
+ error = _usePaginatedQuery.error,
126
+ isFetching = _usePaginatedQuery.isFetching,
127
+ refetch = _usePaginatedQuery.refetch;
128
+
129
+ return {
130
+ data: data || resolvedData,
131
+ loading: isFetching,
132
+ loaded: !!data || !!error,
133
+ error: error,
134
+ invalidate: function invalidate() {
135
+ _reactQuery.queryCache.invalidateQueries(resolvedQueryKey || queryKey);
136
+ },
137
+ fetch: refetch,
138
+ dataSet: dataSet,
139
+ url: url
140
+ };
141
+ }
142
+
143
+ function useResourceMany(resource, query, options) {
144
+ // allow developer to set a custom limit, fallback to a common value
145
+ var _useState3 = (0, _react.useState)(query && query.limit || DEFAULT_PAGINATION_LIMIT),
146
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
147
+ limit = _useState4[0],
148
+ setLimit = _useState4[1];
149
+
150
+ var _useState5 = (0, _react.useState)({
151
+ offset: query && query.offset || 0,
152
+ limit: limit
153
+ }),
154
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
155
+ pageParams = _useState6[0],
156
+ setPageParams = _useState6[1]; // update options when limit is changed
157
+
158
+
159
+ (0, _react.useEffect)(function () {
160
+ if (pageParams.limit !== limit) {
161
+ setPageParams((0, _extends2["default"])({}, pageParams, {
162
+ limit: limit
163
+ }));
164
+ }
165
+ }, [limit]); // update user provided query with pagination params
166
+
167
+ var queryKey = JSON.stringify(query);
168
+ var pageParamsKey = JSON.stringify(pageParams);
169
+ var q = (0, _react.useMemo)(function () {
170
+ return (0, _extends2["default"])({}, pageParams, query);
171
+ }, [queryKey, pageParamsKey]);
172
+
173
+ var _useResourceManyBase = useResourceManyBase(resource, q, options),
174
+ data = _useResourceManyBase.data,
175
+ rest = (0, _objectWithoutProperties2["default"])(_useResourceManyBase, _excluded); // extract data/metadata from response
176
+
177
+
178
+ var resp = data ? data.data : data;
179
+ var meta = data ? data.meta : data;
180
+ var totalPages = (0, _react.useMemo)(function () {
181
+ return data && data.meta && data.meta.total || 1;
182
+ }, [data]);
183
+ var total = (0, _react.useMemo)(function () {
184
+ return data && data.meta && data.meta.count || 0;
185
+ }, [data]);
186
+ var limitOptions = (0, _react.useMemo)(function () {
187
+ return DEFAULT_LIMIT_OPTIONS;
188
+ }, []);
189
+ var page = (0, _react.useMemo)(function () {
190
+ var offset = parseInt(pageParams.offset) || 0;
191
+
192
+ var _limit = parseInt("".concat(pageParams.limit)) || parseInt("".concat(limit));
193
+
194
+ return offset / _limit;
195
+ }, [pageParams]); // set params to specific page
196
+
197
+ var setPage = (0, _react.useCallback)(function (page) {
198
+ if (page > totalPages) {
199
+ page = totalPages;
200
+ }
201
+
202
+ if (page <= 0) {
203
+ page = 0;
204
+ }
205
+
206
+ var _limit = limit || DEFAULT_PAGINATION_LIMIT;
207
+
208
+ var offset = _limit * page;
209
+ setPageParams({
210
+ offset: offset,
211
+ limit: limit
212
+ });
213
+ }, [setPageParams]);
214
+ var hasNext = page < totalPages - 1;
215
+ var hasPrevious = page > 0;
216
+ return (0, _extends2["default"])({
217
+ data: resp,
218
+ meta: meta,
219
+ page: page,
220
+ limit: limit,
221
+ totalPages: totalPages,
222
+ total: total,
223
+ limitOptions: limitOptions,
224
+ setPage: setPage,
225
+ setLimit: setLimit,
226
+ hasNext: hasNext,
227
+ hasPrevious: hasPrevious
228
+ }, rest);
229
+ }
package/api/utils.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { ProcessedResponse } from '@digigov/ui/api/fetchAPI';
2
+ import { ArrayQueryKey } from 'react-query/types';
3
+ export declare function parseErrors(response: Response): Promise<string[]>;
4
+ export declare function processResponse(response: any, raiseError?: boolean): Promise<ProcessedResponse>;
5
+ export declare function getArgs(resource: any, id: any, query: any, data: any, options: any, method: any, baseURL: any, token: any): any[];
6
+ export declare function getQueryKey(resource: string, id: string | number | null | undefined | ((...args: any) => void), query: Record<string, any> | null | undefined | ((...args: any) => void), data: Record<string, any> | null | undefined | ((...args: any) => void), options: RequestInit | null | undefined, method: string | null | undefined, baseURL: string, token: string | null | undefined): ArrayQueryKey | ((...args: any) => ArrayQueryKey);