@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,546 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
+ import _extends from "@babel/runtime/helpers/extends";
5
+
6
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
7
+ import React, { Suspense, useEffect } from 'react';
8
+ import { render, fireEvent } from '@testing-library/react';
9
+ import fetchMock from 'fetch-mock';
10
+ import { APIProvider, useResource, useResourceAction, useResourceMany, APIErrors } from '@digigov/ui/api/index';
11
+ import delay from '@digigov/ui/test-utils/delay';
12
+ import fetchAPI from '@digigov/ui/api/fetchAPI';
13
+ import 'whatwg-fetch';
14
+
15
+ var _ref2 = /*#__PURE__*/React.createElement("span", null, "something went wrong");
16
+
17
+ var HandleError = function HandleError(_ref) {
18
+ var error = _ref.error;
19
+
20
+ if (error.name === 'APIError') {
21
+ error = error.error;
22
+
23
+ if (error.status === 404) {
24
+ return /*#__PURE__*/React.createElement(React.Fragment, null, "Not found");
25
+ }
26
+ } // TODO: render the <SomethingWentWrong /> page here
27
+
28
+
29
+ return _ref2;
30
+ };
31
+
32
+ var makeWrapper = function makeWrapper(_ref3) {
33
+ var config = _ref3.config,
34
+ token = _ref3.token;
35
+ return function (_ref4) {
36
+ var children = _ref4.children;
37
+ return /*#__PURE__*/React.createElement(Suspense, {
38
+ fallback: 'Loading'
39
+ }, /*#__PURE__*/React.createElement(APIErrors, {
40
+ fallback: HandleError
41
+ }, /*#__PURE__*/React.createElement(APIProvider, {
42
+ config: config,
43
+ token: token
44
+ }, children)));
45
+ };
46
+ };
47
+
48
+ var BASE_URL = 'http://test/api';
49
+ var TOKEN = 'mytoken';
50
+ var DELAY = 100;
51
+
52
+ var buildMockOptions = function buildMockOptions(_ref5) {
53
+ var resource = _ref5.resource,
54
+ _ref5$method = _ref5.method,
55
+ method = _ref5$method === void 0 ? 'GET' : _ref5$method,
56
+ _ref5$authenticated = _ref5.authenticated,
57
+ authenticated = _ref5$authenticated === void 0 ? true : _ref5$authenticated,
58
+ _ref5$query = _ref5.query,
59
+ query = _ref5$query === void 0 ? {} : _ref5$query,
60
+ response = _ref5.response,
61
+ _ref5$delay = _ref5.delay,
62
+ delay = _ref5$delay === void 0 ? DELAY / 2 : _ref5$delay;
63
+ var headers = {
64
+ 'content-type': 'application/json'
65
+ };
66
+ var options = {
67
+ delay: delay
68
+ };
69
+
70
+ if (authenticated) {
71
+ headers.Authorization = "Token ".concat(TOKEN);
72
+ }
73
+
74
+ var params = new URLSearchParams(query).toString();
75
+ return ["".concat(BASE_URL, "/").concat(resource).concat(params && "?".concat(params)), response, _extends({
76
+ headers: headers,
77
+ method: method
78
+ }, options)];
79
+ };
80
+
81
+ var getAPI = function getAPI() {
82
+ return {
83
+ config: {
84
+ baseURL: BASE_URL
85
+ },
86
+ token: TOKEN
87
+ };
88
+ };
89
+
90
+ var wrapper = makeWrapper(getAPI());
91
+ describe('fetchAPI', function () {
92
+ fetchMock.config.overwriteRoutes = true;
93
+ afterAll(function () {
94
+ fetchMock.restore();
95
+ });
96
+ beforeEach(fetchMock.resetBehavior);
97
+ beforeEach(fetchMock.resetHistory);
98
+ it('fetchAPI gets', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
99
+ var resource, path, _yield$fetchAPI, data;
100
+
101
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
102
+ while (1) {
103
+ switch (_context.prev = _context.next) {
104
+ case 0:
105
+ resource = 'resource';
106
+ path = 'some_id';
107
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
108
+ resource: "".concat(resource, "/").concat(path, "/"),
109
+ response: {
110
+ value: 'SWR'
111
+ }
112
+ })));
113
+ _context.next = 5;
114
+ return fetchAPI(resource, {
115
+ path: path
116
+ }, getAPI());
117
+
118
+ case 5:
119
+ _yield$fetchAPI = _context.sent;
120
+ data = _yield$fetchAPI.data;
121
+ expect(data.value).toBe('SWR');
122
+ expect(fetchMock.calls()).toHaveLength(1);
123
+
124
+ case 9:
125
+ case "end":
126
+ return _context.stop();
127
+ }
128
+ }
129
+ }, _callee);
130
+ })));
131
+ });
132
+ describe('useResource', function () {
133
+ fetchMock.config.overwriteRoutes = true;
134
+ afterAll(function () {
135
+ fetchMock.restore();
136
+ });
137
+ beforeEach(fetchMock.resetBehavior);
138
+ beforeEach(fetchMock.resetHistory);
139
+ it('useResource should return data', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
140
+ var resource, Page, _render, container, _container$firstChild, _container$firstChild2;
141
+
142
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
143
+ while (1) {
144
+ switch (_context2.prev = _context2.next) {
145
+ case 0:
146
+ Page = function _Page() {
147
+ var _useResource = useResource(resource),
148
+ data = _useResource.data;
149
+
150
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", data === null || data === void 0 ? void 0 : data.value);
151
+ };
152
+
153
+ resource = 'resource';
154
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
155
+ resource: resource,
156
+ response: {
157
+ value: 'SWR'
158
+ }
159
+ })));
160
+ _render = render( /*#__PURE__*/React.createElement(Page, null), {
161
+ wrapper: wrapper
162
+ }), container = _render.container;
163
+ expect(container.firstChild).not.toBe(null);
164
+
165
+ if (!container.firstChild) {
166
+ _context2.next = 10;
167
+ break;
168
+ }
169
+
170
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild = container.firstChild) === null || _container$firstChild === void 0 ? void 0 : _container$firstChild.textContent).toMatchInlineSnapshot("\"hello, \"");
171
+ _context2.next = 9;
172
+ return delay(DELAY);
173
+
174
+ case 9:
175
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild2 = container.firstChild) === null || _container$firstChild2 === void 0 ? void 0 : _container$firstChild2.textContent).toMatchInlineSnapshot("\"hello, SWR\"");
176
+
177
+ case 10:
178
+ expect(fetchMock.calls()).toHaveLength(1);
179
+
180
+ case 11:
181
+ case "end":
182
+ return _context2.stop();
183
+ }
184
+ }
185
+ }, _callee2);
186
+ })));
187
+ it('should run duplicate request once', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
188
+ var _container$firstChild3, _container$firstChild4;
189
+
190
+ var resource, Page, _render2, container;
191
+
192
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
193
+ while (1) {
194
+ switch (_context3.prev = _context3.next) {
195
+ case 0:
196
+ Page = function _Page2() {
197
+ useResource(resource);
198
+
199
+ var _useResource2 = useResource(resource),
200
+ duplData = _useResource2.data;
201
+
202
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", duplData === null || duplData === void 0 ? void 0 : duplData.value);
203
+ };
204
+
205
+ resource = 'dupliresource';
206
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
207
+ resource: resource,
208
+ response: {
209
+ value: 'myvalue'
210
+ }
211
+ })));
212
+ _render2 = render( /*#__PURE__*/React.createElement(Page, null), {
213
+ wrapper: wrapper
214
+ }), container = _render2.container;
215
+ expect(container.firstChild).not.toBe(null);
216
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild3 = container.firstChild) === null || _container$firstChild3 === void 0 ? void 0 : _container$firstChild3.textContent).toMatchInlineSnapshot("\"hello, \"");
217
+ _context3.next = 8;
218
+ return delay(DELAY);
219
+
220
+ case 8:
221
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild4 = container.firstChild) === null || _container$firstChild4 === void 0 ? void 0 : _container$firstChild4.textContent).toMatchInlineSnapshot("\"hello, myvalue\"");
222
+ expect(fetchMock.calls()).toHaveLength(1);
223
+
224
+ case 10:
225
+ case "end":
226
+ return _context3.stop();
227
+ }
228
+ }
229
+ }, _callee3);
230
+ })));
231
+ });
232
+ describe('useResourceAction', function () {
233
+ fetchMock.config.overwriteRoutes = true;
234
+ afterAll(function () {
235
+ fetchMock.restore();
236
+ });
237
+ beforeEach(fetchMock.resetBehavior);
238
+ beforeEach(fetchMock.resetHistory);
239
+ it('useResourceAction should return result ', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
240
+ var _container$firstChild5, _container$firstChild6;
241
+
242
+ var resource, Page, _render3, container;
243
+
244
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
245
+ while (1) {
246
+ switch (_context4.prev = _context4.next) {
247
+ case 0:
248
+ Page = function _Page3() {
249
+ var _useResourceAction = useResourceAction(resource, undefined, 'POST', {
250
+ some: 'data'
251
+ }, undefined),
252
+ data = _useResourceAction.data,
253
+ fetch = _useResourceAction.fetch;
254
+
255
+ useEffect(function () {
256
+ fetch();
257
+ }, []);
258
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", data && data.value);
259
+ };
260
+
261
+ resource = 'resourceaction';
262
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
263
+ resource: resource,
264
+ response: {
265
+ value: 'myvalue'
266
+ },
267
+ method: 'POST'
268
+ })));
269
+ _render3 = render( /*#__PURE__*/React.createElement(Page, null), {
270
+ wrapper: wrapper
271
+ }), container = _render3.container;
272
+ expect(container.firstChild).not.toBe(null);
273
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild5 = container.firstChild) === null || _container$firstChild5 === void 0 ? void 0 : _container$firstChild5.textContent).toMatchInlineSnapshot("\"hello, \"");
274
+ _context4.next = 8;
275
+ return delay(DELAY * 2);
276
+
277
+ case 8:
278
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild6 = container.firstChild) === null || _container$firstChild6 === void 0 ? void 0 : _container$firstChild6.textContent).toMatchInlineSnapshot("\"hello, myvalue\"");
279
+ expect(fetchMock.calls()).toHaveLength(1);
280
+
281
+ case 10:
282
+ case "end":
283
+ return _context4.stop();
284
+ }
285
+ }
286
+ }, _callee4);
287
+ })));
288
+ it('useResourceAction should be invalidated and run twice', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
289
+ var _container$firstChild7, _container$firstChild8, _container$firstChild9, _container$firstChild10;
290
+
291
+ var resource, Page, _render4, container;
292
+
293
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
294
+ while (1) {
295
+ switch (_context5.prev = _context5.next) {
296
+ case 0:
297
+ Page = function _Page4() {
298
+ var _useResourceAction2 = useResourceAction(resource, undefined, 'POST', {
299
+ some: 'data'
300
+ }, undefined),
301
+ data = _useResourceAction2.data,
302
+ fetch = _useResourceAction2.fetch,
303
+ invalidate = _useResourceAction2.invalidate;
304
+
305
+ useEffect(function () {
306
+ fetch();
307
+ }, []);
308
+ useEffect(function () {
309
+ setTimeout(function () {
310
+ invalidate();
311
+ }, DELAY * 2);
312
+ setTimeout(function () {
313
+ fetch();
314
+ }, DELAY * 3);
315
+ }, []);
316
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", data && data.value);
317
+ };
318
+
319
+ resource = 'resourceactiondouble';
320
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
321
+ resource: resource,
322
+ response: {
323
+ value: 'myvalue'
324
+ },
325
+ method: 'POST'
326
+ })));
327
+ _render4 = render( /*#__PURE__*/React.createElement(Page, null), {
328
+ wrapper: wrapper
329
+ }), container = _render4.container;
330
+ expect(container.firstChild).not.toBe(null);
331
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild7 = container.firstChild) === null || _container$firstChild7 === void 0 ? void 0 : _container$firstChild7.textContent).toMatchInlineSnapshot("\"hello, \"");
332
+ _context5.next = 8;
333
+ return delay(DELAY);
334
+
335
+ case 8:
336
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild8 = container.firstChild) === null || _container$firstChild8 === void 0 ? void 0 : _container$firstChild8.textContent).toMatchInlineSnapshot("\"hello, myvalue\"");
337
+ _context5.next = 11;
338
+ return delay(DELAY);
339
+
340
+ case 11:
341
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild9 = container.firstChild) === null || _container$firstChild9 === void 0 ? void 0 : _container$firstChild9.textContent).toMatchInlineSnapshot("\"hello, \"");
342
+ _context5.next = 14;
343
+ return delay(DELAY * 2);
344
+
345
+ case 14:
346
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild10 = container.firstChild) === null || _container$firstChild10 === void 0 ? void 0 : _container$firstChild10.textContent).toMatchInlineSnapshot("\"hello, myvalue\"");
347
+ expect(fetchMock.calls()).toHaveLength(2);
348
+
349
+ case 16:
350
+ case "end":
351
+ return _context5.stop();
352
+ }
353
+ }
354
+ }, _callee5);
355
+ })));
356
+ });
357
+ describe('useResourceMany', function () {
358
+ fetchMock.config.overwriteRoutes = true;
359
+ afterAll(function () {
360
+ fetchMock.restore();
361
+ });
362
+ beforeEach(fetchMock.resetBehavior);
363
+ beforeEach(fetchMock.resetHistory); //check this test again (loading/hello)
364
+
365
+ it('useResourceMany should return data', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
366
+ var _container$firstChild11, _container$firstChild12;
367
+
368
+ var resource, Page, _render5, container;
369
+
370
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
371
+ while (1) {
372
+ switch (_context6.prev = _context6.next) {
373
+ case 0:
374
+ Page = function _Page5() {
375
+ var _useResourceMany = useResourceMany(resource),
376
+ data = _useResourceMany.data;
377
+
378
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", data && data.join(''));
379
+ };
380
+
381
+ resource = 'resourceMany';
382
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
383
+ resource: resource,
384
+ query: {
385
+ offset: 0,
386
+ limit: 30
387
+ },
388
+ response: {
389
+ data: ['S', 'W', 'R'],
390
+ meta: {
391
+ total: 1,
392
+ count: 3
393
+ }
394
+ }
395
+ })));
396
+ _render5 = render( /*#__PURE__*/React.createElement(Page, null), {
397
+ wrapper: wrapper
398
+ }), container = _render5.container;
399
+ expect(container.firstChild).not.toBe(null);
400
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild11 = container.firstChild) === null || _container$firstChild11 === void 0 ? void 0 : _container$firstChild11.textContent).toMatchInlineSnapshot("\"Loading\"");
401
+ _context6.next = 8;
402
+ return delay(DELAY * 2);
403
+
404
+ case 8:
405
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild12 = container.firstChild) === null || _container$firstChild12 === void 0 ? void 0 : _container$firstChild12.textContent).toMatchInlineSnapshot("\"hello, SWR\"");
406
+ expect(fetchMock.calls()).toHaveLength(1);
407
+
408
+ case 10:
409
+ case "end":
410
+ return _context6.stop();
411
+ }
412
+ }
413
+ }, _callee6);
414
+ })));
415
+ it('useResourceMany should handle hasNext, hasPrevious', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
416
+ var _container$firstChild13, _container$firstChild14;
417
+
418
+ var resource, Page, _render6, container;
419
+
420
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
421
+ while (1) {
422
+ switch (_context7.prev = _context7.next) {
423
+ case 0:
424
+ Page = function _Page6() {
425
+ var _useResourceMany2 = useResourceMany(resource),
426
+ hasNext = _useResourceMany2.hasNext,
427
+ hasPrevious = _useResourceMany2.hasPrevious;
428
+
429
+ return /*#__PURE__*/React.createElement("div", null, hasNext ? '' : 'no', " next,", hasPrevious ? '' : 'no', " previous");
430
+ };
431
+
432
+ resource = 'resourceManyhasNext';
433
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
434
+ resource: resource,
435
+ query: {
436
+ offset: 0,
437
+ limit: 30
438
+ },
439
+ response: {
440
+ data: ['S', 'W', 'R'],
441
+ meta: {
442
+ total: 1,
443
+ count: 3
444
+ }
445
+ }
446
+ })));
447
+ _render6 = render( /*#__PURE__*/React.createElement(Page, null), {
448
+ wrapper: wrapper
449
+ }), container = _render6.container;
450
+ expect(container.firstChild).not.toBe(null);
451
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild13 = container.firstChild) === null || _container$firstChild13 === void 0 ? void 0 : _container$firstChild13.textContent).toMatchInlineSnapshot("\"Loading\"");
452
+ _context7.next = 8;
453
+ return delay(DELAY);
454
+
455
+ case 8:
456
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild14 = container.firstChild) === null || _container$firstChild14 === void 0 ? void 0 : _container$firstChild14.textContent).toMatchInlineSnapshot("\"no next,no previous\"");
457
+ expect(fetchMock.calls()).toHaveLength(1);
458
+
459
+ case 10:
460
+ case "end":
461
+ return _context7.stop();
462
+ }
463
+ }
464
+ }, _callee7);
465
+ })));
466
+ it('useResourceMany should handle setPage with custom limit option', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
467
+ var _container$firstChild15, _container$firstChild16, _container$firstChild17;
468
+
469
+ var resource, Page, _render7, container, getByText;
470
+
471
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
472
+ while (1) {
473
+ switch (_context8.prev = _context8.next) {
474
+ case 0:
475
+ Page = function _Page7() {
476
+ var _useResourceMany3 = useResourceMany(resource, {
477
+ limit: 10
478
+ }),
479
+ data = _useResourceMany3.data,
480
+ setPage = _useResourceMany3.setPage,
481
+ page = _useResourceMany3.page;
482
+
483
+ var nextPage = function nextPage() {
484
+ setPage(page + 1);
485
+ };
486
+
487
+ return /*#__PURE__*/React.createElement("div", null, "hello, ", data.join(''), /*#__PURE__*/React.createElement("button", {
488
+ onClick: nextPage
489
+ }, "next"));
490
+ };
491
+
492
+ resource = 'resourceManysetpage';
493
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
494
+ resource: resource,
495
+ query: {
496
+ offset: 0,
497
+ limit: 10
498
+ },
499
+ response: {
500
+ data: ['S', 'W', 'R'],
501
+ meta: {
502
+ total: 3,
503
+ count: 100
504
+ }
505
+ }
506
+ })));
507
+ fetchMock.mock.apply(fetchMock, _toConsumableArray(buildMockOptions({
508
+ resource: resource,
509
+ query: {
510
+ offset: 10,
511
+ limit: 10
512
+ },
513
+ response: {
514
+ data: ['R', 'W', 'S'],
515
+ meta: {
516
+ total: 3,
517
+ count: 100
518
+ }
519
+ }
520
+ })));
521
+ _render7 = render( /*#__PURE__*/React.createElement(Page, null), {
522
+ wrapper: wrapper
523
+ }), container = _render7.container, getByText = _render7.getByText;
524
+ expect(container.firstChild).not.toBe(null);
525
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild15 = container.firstChild) === null || _container$firstChild15 === void 0 ? void 0 : _container$firstChild15.textContent).toMatchInlineSnapshot("\"Loading\"");
526
+ _context8.next = 9;
527
+ return delay(DELAY);
528
+
529
+ case 9:
530
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild16 = container.firstChild) === null || _container$firstChild16 === void 0 ? void 0 : _container$firstChild16.textContent).toMatchInlineSnapshot("\"hello, SWRnext\"");
531
+ fireEvent.click(getByText('next'));
532
+ _context8.next = 13;
533
+ return delay(DELAY * 2);
534
+
535
+ case 13:
536
+ expect(container === null || container === void 0 ? void 0 : (_container$firstChild17 = container.firstChild) === null || _container$firstChild17 === void 0 ? void 0 : _container$firstChild17.textContent).toMatchInlineSnapshot("\"hello, RWSnext\"");
537
+ expect(fetchMock.calls()).toHaveLength(2);
538
+
539
+ case 15:
540
+ case "end":
541
+ return _context8.stop();
542
+ }
543
+ }
544
+ }, _callee8);
545
+ })));
546
+ });
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: DigiGOV API client
3
+ order: 0
4
+ ---
5
+
6
+ # DigiGOV API client
@@ -0,0 +1,128 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import { getQueryKey, processResponse } from '@digigov/ui/api/utils';
5
+ import { useQuery, queryCache } from 'react-query';
6
+ import { useAPI } from '@digigov/ui/api';
7
+ import { useState } from 'react';
8
+ export function useResource(resource, id, query, options, suspense) {
9
+ var _useAPI = useAPI(),
10
+ baseURL = _useAPI.config.baseURL,
11
+ token = _useAPI.token;
12
+
13
+ var _useState = useState({
14
+ url: '',
15
+ dataSet: false
16
+ }),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ _useState2$ = _useState2[0],
19
+ url = _useState2$.url,
20
+ dataSet = _useState2$.dataSet,
21
+ setFetchOpts = _useState2[1];
22
+
23
+ function customFetcher(_x, _x2) {
24
+ return _customFetcher.apply(this, arguments);
25
+ }
26
+
27
+ function _customFetcher() {
28
+ _customFetcher = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetchUrl, options) {
29
+ var response, _yield$processRespons, _data, _error;
30
+
31
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
32
+ while (1) {
33
+ switch (_context.prev = _context.next) {
34
+ case 0:
35
+ setFetchOpts({
36
+ url: fetchUrl,
37
+ dataSet: false
38
+ });
39
+ _context.next = 3;
40
+ return fetch(fetchUrl, options);
41
+
42
+ case 3:
43
+ response = _context.sent;
44
+ _context.prev = 4;
45
+ _context.next = 7;
46
+ return processResponse(response);
47
+
48
+ case 7:
49
+ _yield$processRespons = _context.sent;
50
+ _data = _yield$processRespons.data;
51
+ _error = _yield$processRespons.error;
52
+
53
+ if (!_error) {
54
+ _context.next = 12;
55
+ break;
56
+ }
57
+
58
+ return _context.abrupt("return", Promise.reject(_error));
59
+
60
+ case 12:
61
+ if (!_data) {
62
+ _context.next = 14;
63
+ break;
64
+ }
65
+
66
+ return _context.abrupt("return", Promise.resolve(_data));
67
+
68
+ case 14:
69
+ _context.next = 19;
70
+ break;
71
+
72
+ case 16:
73
+ _context.prev = 16;
74
+ _context.t0 = _context["catch"](4);
75
+ return _context.abrupt("return", Promise.reject(_context.t0.error));
76
+
77
+ case 19:
78
+ case "end":
79
+ return _context.stop();
80
+ }
81
+ }
82
+ }, _callee, null, [[4, 16]]);
83
+ }));
84
+ return _customFetcher.apply(this, arguments);
85
+ }
86
+
87
+ var queryKey = getQueryKey(resource, id, query, null, options, 'GET', baseURL, token);
88
+ var enabled = true;
89
+ var resolvedQueryKey;
90
+
91
+ if (typeof queryKey === 'function') {
92
+ try {
93
+ resolvedQueryKey = queryKey();
94
+ } catch (err) {
95
+ enabled = false;
96
+ }
97
+ }
98
+
99
+ var _useQuery = useQuery(resolvedQueryKey || queryKey, customFetcher, {
100
+ enabled: enabled,
101
+ refetchOnWindowFocus: false,
102
+ refetchOnMount: false,
103
+ suspense: suspense || false,
104
+ cacheTime: 300000,
105
+ staleTime: 20000,
106
+ retry: false,
107
+ useErrorBoundary: false // falls back to suspense
108
+
109
+ }),
110
+ status = _useQuery.status,
111
+ data = _useQuery.data,
112
+ error = _useQuery.error,
113
+ isFetching = _useQuery.isFetching,
114
+ refetch = _useQuery.refetch;
115
+
116
+ return {
117
+ data: data,
118
+ loading: isFetching,
119
+ loaded: ['error', 'success'].includes(status),
120
+ error: error,
121
+ invalidate: function invalidate() {
122
+ queryCache.invalidateQueries(resolvedQueryKey || queryKey);
123
+ },
124
+ fetch: refetch,
125
+ dataSet: dataSet,
126
+ url: url
127
+ };
128
+ }