@digigov/ui 2.0.0-2445d5cb → 2.0.0-36b707c1

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 (321) hide show
  1. package/app/Loader/Loader.stories/index.js +2 -0
  2. package/app/Loader/Loader.stories.d.ts +1 -0
  3. package/app/Loader/Loader.stories.js.map +2 -2
  4. package/app/Loader/__stories__/FullPageLoader/index.js +13 -0
  5. package/{patterns/FilteredResults/FilterChips → app/Loader/__stories__/FullPageLoader}/package.json +1 -1
  6. package/app/Loader/__stories__/FullPageLoader.d.ts +2 -0
  7. package/app/Loader/__stories__/FullPageLoader.js.map +7 -0
  8. package/app/Modal/__stories__/Auto/index.js +5 -3
  9. package/app/Modal/__stories__/Auto.js.map +2 -2
  10. package/app/Modal/auto/index.js +1 -1
  11. package/app/Modal/auto.js.map +2 -2
  12. package/app/Modal/index.d.ts +2 -3
  13. package/app/Modal/index.js +2 -3
  14. package/app/Modal/index.js.map +2 -2
  15. package/app/Modal/index.native/index.js +20 -0
  16. package/{patterns/FilteredResults → app/Modal/index.native}/package.json +1 -1
  17. package/app/Modal/index.native.d.ts +7 -0
  18. package/app/Modal/index.native.js.map +7 -0
  19. package/app/Modal/{Modal → index.web}/index.js +3 -3
  20. package/{patterns → app/Modal/index.web}/package.json +1 -1
  21. package/app/Modal/{Modal.js.map → index.web.js.map} +2 -2
  22. package/app/OutdatedBrowserBanner/index.d.ts +0 -1
  23. package/cjs/app/Loader/Loader.stories/index.js +4 -1
  24. package/cjs/app/Loader/Loader.stories.js.map +2 -2
  25. package/cjs/{patterns/FilteredResults/FilterFields → app/Loader/__stories__/FullPageLoader}/index.js +9 -11
  26. package/cjs/app/Loader/__stories__/FullPageLoader.js.map +7 -0
  27. package/cjs/app/Modal/__stories__/Auto/index.js +2 -1
  28. package/cjs/app/Modal/__stories__/Auto.js.map +2 -2
  29. package/cjs/app/Modal/auto/index.js +1 -1
  30. package/cjs/app/Modal/auto.js.map +2 -2
  31. package/cjs/app/Modal/index.js +3 -5
  32. package/cjs/app/Modal/index.js.map +2 -2
  33. package/cjs/{patterns/FilteredResults/DataTable → app/Modal/index.native}/index.js +21 -10
  34. package/cjs/app/Modal/index.native.js.map +7 -0
  35. package/cjs/app/Modal/{Modal → index.web}/index.js +6 -6
  36. package/cjs/app/Modal/{Modal.js.map → index.web.js.map} +2 -2
  37. package/cjs/content/Accordion/__stories__/Auto/index.js +2 -1
  38. package/cjs/content/Accordion/__stories__/Auto.js.map +2 -2
  39. package/cjs/content/Accordion/index.js +1 -3
  40. package/cjs/content/Accordion/index.js.map +2 -2
  41. package/cjs/{patterns/FilteredResults/FilteredResults.stories → content/Markdown/Markdown.stories}/index.js +12 -11
  42. package/cjs/content/Markdown/Markdown.stories.js.map +7 -0
  43. package/cjs/content/Markdown/__stories__/Default/index.js +63 -0
  44. package/cjs/content/Markdown/__stories__/Default.js.map +7 -0
  45. package/cjs/content/SafeHTML/SafeHTML.stories/index.js +46 -0
  46. package/cjs/content/SafeHTML/SafeHTML.stories.js.map +7 -0
  47. package/cjs/content/SafeHTML/__stories__/Default/index.js +61 -0
  48. package/cjs/content/SafeHTML/__stories__/Default.js.map +7 -0
  49. package/cjs/content/StepNav/__stories__/Auto/index.js +3 -2
  50. package/cjs/content/StepNav/__stories__/Auto.js.map +2 -2
  51. package/cjs/content/StepNav/index.js +0 -2
  52. package/cjs/content/StepNav/index.js.map +2 -2
  53. package/cjs/content/SummaryList/SummaryList.stories/index.js +19 -35
  54. package/cjs/content/SummaryList/SummaryList.stories.js.map +3 -3
  55. package/cjs/content/SummaryList/__stories__/SummaryListExample/index.js +70 -0
  56. package/cjs/content/SummaryList/__stories__/SummaryListExample.js.map +7 -0
  57. package/cjs/feedback/WarningText/index.js +3 -0
  58. package/cjs/feedback/WarningText/index.js.map +2 -2
  59. package/cjs/form/AutoComplete/index.js +3 -1
  60. package/cjs/form/AutoComplete/index.js.map +2 -2
  61. package/cjs/form/AutoComplete/utils/index.js +1 -1
  62. package/cjs/form/AutoComplete/utils.js.map +2 -2
  63. package/cjs/form/Checkbox/index.js +2 -0
  64. package/cjs/form/Checkbox/index.js.map +2 -2
  65. package/cjs/i18n/index.js +1 -1
  66. package/cjs/i18n/index.js.map +2 -2
  67. package/cjs/i18n/locales/el/index.js +1 -1
  68. package/cjs/i18n/locales/el.js.map +1 -1
  69. package/cjs/index.js +0 -2
  70. package/cjs/index.js.map +2 -2
  71. package/cjs/lazy/index.js +27 -31
  72. package/cjs/lazy.js.map +2 -2
  73. package/cjs/navigation/Drawer/__stories__/Auto/index.js +4 -4
  74. package/cjs/navigation/Drawer/__stories__/Auto.js.map +2 -2
  75. package/cjs/navigation/Drawer/index.js +1 -3
  76. package/cjs/navigation/Drawer/index.js.map +2 -2
  77. package/cjs/navigation/Pagination/__stories__/Auto/index.js +4 -3
  78. package/cjs/navigation/Pagination/__stories__/Auto.js.map +2 -2
  79. package/cjs/navigation/Pagination/index.js +1 -3
  80. package/cjs/navigation/Pagination/index.js.map +2 -2
  81. package/cjs/navigation/Tabs/__stories__/Auto/index.js +2 -1
  82. package/cjs/navigation/Tabs/__stories__/Auto.js.map +2 -2
  83. package/cjs/navigation/Tabs/__stories__/Default/index.js +2 -1
  84. package/cjs/navigation/Tabs/__stories__/Default.js.map +2 -2
  85. package/cjs/navigation/Tabs/__stories__/Dense/index.js +2 -1
  86. package/cjs/navigation/Tabs/__stories__/Dense.js.map +2 -2
  87. package/cjs/navigation/Tabs/__stories__/UsingAccordion/index.js +2 -1
  88. package/cjs/navigation/Tabs/__stories__/UsingAccordion.js.map +2 -2
  89. package/cjs/navigation/Tabs/index.js +1 -3
  90. package/cjs/navigation/Tabs/index.js.map +2 -2
  91. package/cjs/registry/index.js +6 -16
  92. package/cjs/registry.js.map +2 -2
  93. package/cjs/typography/CodeBlock/index.js +4 -2
  94. package/cjs/typography/CodeBlock/index.js.map +3 -3
  95. package/cjs/utils/Base/index.js +3 -0
  96. package/cjs/utils/Base/index.js.map +2 -2
  97. package/content/Accordion/__stories__/Auto/index.js +6 -4
  98. package/content/Accordion/__stories__/Auto.js.map +2 -2
  99. package/content/Accordion/auto.d.ts +2 -2
  100. package/content/Accordion/index.d.ts +0 -1
  101. package/content/Accordion/index.js +0 -1
  102. package/content/Accordion/index.js.map +2 -2
  103. package/content/Card/interaction.test.d.ts +1 -0
  104. package/content/Markdown/Markdown.stories/index.js +13 -0
  105. package/{patterns/FilteredResults/hooks → content/Markdown/Markdown.stories}/package.json +1 -1
  106. package/content/Markdown/Markdown.stories.d.ts +9 -0
  107. package/content/Markdown/Markdown.stories.js.map +7 -0
  108. package/content/Markdown/__stories__/Default/index.js +30 -0
  109. package/{patterns/FilteredResults/FilterFields → content/Markdown/__stories__/Default}/package.json +1 -1
  110. package/{patterns/FilteredResults → content/Markdown}/__stories__/Default.d.ts +1 -0
  111. package/content/Markdown/__stories__/Default.js.map +7 -0
  112. package/content/Markdown/index.d.ts +1 -1
  113. package/content/Markdown/index.test.d.ts +1 -0
  114. package/content/SafeHTML/SafeHTML.stories/index.js +13 -0
  115. package/{app/Modal/Modal → content/SafeHTML/SafeHTML.stories}/package.json +1 -1
  116. package/content/SafeHTML/SafeHTML.stories.d.ts +9 -0
  117. package/content/SafeHTML/SafeHTML.stories.js.map +7 -0
  118. package/content/SafeHTML/__stories__/Default/index.js +28 -0
  119. package/{patterns/FilteredResults/DataTable → content/SafeHTML/__stories__/Default}/package.json +1 -1
  120. package/content/SafeHTML/__stories__/Default.d.ts +3 -0
  121. package/content/SafeHTML/__stories__/Default.js.map +7 -0
  122. package/content/SafeHTML/index.test.d.ts +1 -0
  123. package/content/StepNav/__stories__/Auto/index.js +4 -2
  124. package/content/StepNav/__stories__/Auto.js.map +2 -2
  125. package/content/StepNav/auto.d.ts +2 -2
  126. package/content/StepNav/index.d.ts +0 -1
  127. package/content/StepNav/index.js +0 -1
  128. package/content/StepNav/index.js.map +2 -2
  129. package/content/SummaryList/SummaryList.stories/index.js +17 -17
  130. package/content/SummaryList/SummaryList.stories.d.ts +15 -9
  131. package/content/SummaryList/SummaryList.stories.js.map +2 -2
  132. package/content/SummaryList/__stories__/SummaryListExample/index.js +43 -0
  133. package/content/SummaryList/__stories__/SummaryListExample/package.json +6 -0
  134. package/content/SummaryList/__stories__/SummaryListExample.d.ts +14 -0
  135. package/content/SummaryList/__stories__/SummaryListExample.js.map +7 -0
  136. package/feedback/ErrorSummary/interaction.test.d.ts +1 -0
  137. package/feedback/WarningText/index.d.ts +1 -0
  138. package/feedback/WarningText/index.js +2 -0
  139. package/feedback/WarningText/index.js.map +2 -2
  140. package/form/AutoComplete/index.js +3 -1
  141. package/form/AutoComplete/index.js.map +2 -2
  142. package/form/AutoComplete/utils/index.js +1 -1
  143. package/form/AutoComplete/utils.js.map +2 -2
  144. package/form/Checkbox/index.d.ts +1 -0
  145. package/form/Checkbox/index.js +1 -0
  146. package/form/Checkbox/index.js.map +2 -2
  147. package/i18n/index.js +1 -1
  148. package/i18n/index.js.map +2 -2
  149. package/i18n/locales/el/index.js +1 -1
  150. package/i18n/locales/el.js.map +1 -1
  151. package/index.d.ts +0 -1
  152. package/index.js +1 -2
  153. package/index.js.map +2 -2
  154. package/lazy/index.js +27 -31
  155. package/lazy.d.ts +94 -104
  156. package/lazy.js.map +2 -2
  157. package/navigation/Drawer/__stories__/Auto/index.js +1 -1
  158. package/navigation/Drawer/__stories__/Auto.js.map +1 -1
  159. package/navigation/Drawer/index.d.ts +0 -1
  160. package/navigation/Drawer/index.js +0 -1
  161. package/navigation/Drawer/index.js.map +2 -2
  162. package/navigation/NavList/interaction.test.d.ts +1 -0
  163. package/navigation/Pagination/__stories__/Auto/index.js +4 -2
  164. package/navigation/Pagination/__stories__/Auto.js.map +2 -2
  165. package/navigation/Pagination/auto.d.ts +2 -2
  166. package/navigation/Pagination/index.d.ts +0 -1
  167. package/navigation/Pagination/index.js +0 -1
  168. package/navigation/Pagination/index.js.map +2 -2
  169. package/navigation/Tabs/__stories__/Auto/index.js +5 -3
  170. package/navigation/Tabs/__stories__/Auto.js.map +2 -2
  171. package/navigation/Tabs/__stories__/Default/index.js +4 -2
  172. package/navigation/Tabs/__stories__/Default.js.map +2 -2
  173. package/navigation/Tabs/__stories__/Dense/index.js +4 -2
  174. package/navigation/Tabs/__stories__/Dense.js.map +2 -2
  175. package/navigation/Tabs/__stories__/UsingAccordion/index.js +4 -2
  176. package/navigation/Tabs/__stories__/UsingAccordion.js.map +2 -2
  177. package/navigation/Tabs/index.d.ts +0 -1
  178. package/navigation/Tabs/index.js +0 -1
  179. package/navigation/Tabs/index.js.map +2 -2
  180. package/package.json +12 -8
  181. package/registry/index.js +6 -16
  182. package/registry.d.ts +5 -9
  183. package/registry.js.map +2 -2
  184. package/src/app/Header/interaction.test.tsx +31 -0
  185. package/src/app/Loader/Loader.stories.js +1 -0
  186. package/src/app/Loader/__stories__/FullPageLoader.tsx +16 -0
  187. package/src/app/Loader/index.test.tsx +4 -0
  188. package/src/app/Modal/__stories__/Auto.tsx +4 -2
  189. package/src/app/Modal/auto.tsx +1 -1
  190. package/src/app/Modal/index.native.tsx +17 -0
  191. package/src/app/Modal/index.tsx +2 -3
  192. package/src/content/Accordion/__stories__/Auto.tsx +5 -3
  193. package/src/content/Accordion/index.tsx +0 -1
  194. package/src/content/Card/interaction.test.tsx +15 -0
  195. package/src/content/Markdown/Markdown.stories.js +9 -0
  196. package/src/content/Markdown/__stories__/Default.tsx +41 -0
  197. package/src/content/Markdown/index.test.tsx +20 -0
  198. package/src/content/SafeHTML/SafeHTML.stories.js +9 -0
  199. package/src/content/SafeHTML/__stories__/Default.tsx +41 -0
  200. package/src/content/SafeHTML/index.test.tsx +20 -0
  201. package/src/content/StepNav/__stories__/Auto.tsx +4 -1
  202. package/src/content/StepNav/index.tsx +0 -1
  203. package/src/content/SummaryList/SummaryList.stories.js +17 -10
  204. package/src/content/SummaryList/__stories__/SummaryListExample.tsx +75 -0
  205. package/src/content/SummaryList/index.test.tsx +4 -0
  206. package/src/content/Table/interaction.test.tsx +14 -0
  207. package/src/feedback/ErrorSummary/interaction.test.tsx +17 -0
  208. package/src/feedback/WarningText/index.tsx +1 -0
  209. package/src/form/AutoComplete/index.tsx +3 -3
  210. package/src/form/AutoComplete/utils.ts +2 -2
  211. package/src/form/Button/interaction.test.tsx +15 -0
  212. package/src/form/Checkbox/index.tsx +1 -0
  213. package/src/form/DateInputContainer/interaction.test.tsx +28 -7
  214. package/src/form/TextArea/interaction.test.tsx +24 -13
  215. package/src/form/TextInput/interaction.test.tsx +22 -7
  216. package/src/i18n/index.tsx +2 -2
  217. package/src/i18n/locales/el.ts +1 -1
  218. package/src/index.ts +0 -1
  219. package/src/lazy.js +27 -31
  220. package/src/navigation/Drawer/__stories__/Auto.tsx +1 -1
  221. package/src/navigation/Drawer/index.tsx +0 -1
  222. package/src/navigation/NavList/interaction.test.tsx +45 -0
  223. package/src/navigation/Pagination/__stories__/Auto.tsx +3 -1
  224. package/src/navigation/Pagination/index.tsx +0 -1
  225. package/src/navigation/Tabs/__stories__/Auto.tsx +5 -3
  226. package/src/navigation/Tabs/__stories__/Default.tsx +4 -2
  227. package/src/navigation/Tabs/__stories__/Dense.tsx +4 -3
  228. package/src/navigation/Tabs/__stories__/UsingAccordion.tsx +4 -2
  229. package/src/navigation/Tabs/index.tsx +0 -1
  230. package/src/registry.js +6 -16
  231. package/src/typography/CodeBlock/index.tsx +7 -5
  232. package/src/utils/Base/index.tsx +1 -0
  233. package/typography/CodeBlock/index.d.ts +4 -4
  234. package/typography/CodeBlock/index.js +4 -2
  235. package/typography/CodeBlock/index.js.map +2 -2
  236. package/utils/Base/index.d.ts +1 -0
  237. package/utils/Base/index.js +2 -0
  238. package/utils/Base/index.js.map +2 -2
  239. package/utils/hooks/useDebounce.d.ts +1 -1
  240. package/utils/hooks/useKeypress.d.ts +1 -1
  241. package/cjs/patterns/FilteredResults/DataTable.js.map +0 -7
  242. package/cjs/patterns/FilteredResults/FilterChips/index.js +0 -82
  243. package/cjs/patterns/FilteredResults/FilterChips.js.map +0 -7
  244. package/cjs/patterns/FilteredResults/FilterFields.js.map +0 -7
  245. package/cjs/patterns/FilteredResults/FilteredResults.stories.js.map +0 -7
  246. package/cjs/patterns/FilteredResults/__stories__/Default/index.js +0 -250
  247. package/cjs/patterns/FilteredResults/__stories__/Default.js.map +0 -7
  248. package/cjs/patterns/FilteredResults/hooks/index.js +0 -132
  249. package/cjs/patterns/FilteredResults/hooks.js.map +0 -7
  250. package/cjs/patterns/FilteredResults/index.js +0 -155
  251. package/cjs/patterns/FilteredResults/index.js.map +0 -7
  252. package/cjs/patterns/index.js +0 -22
  253. package/cjs/patterns/index.js.map +0 -7
  254. package/patterns/FilteredResults/DataTable/index.js +0 -18
  255. package/patterns/FilteredResults/DataTable.d.ts +0 -5
  256. package/patterns/FilteredResults/DataTable.js.map +0 -7
  257. package/patterns/FilteredResults/FilterChips/index.js +0 -52
  258. package/patterns/FilteredResults/FilterChips.d.ts +0 -3
  259. package/patterns/FilteredResults/FilterChips.js.map +0 -7
  260. package/patterns/FilteredResults/FilterFields/index.js +0 -11
  261. package/patterns/FilteredResults/FilterFields.d.ts +0 -5
  262. package/patterns/FilteredResults/FilterFields.js.map +0 -7
  263. package/patterns/FilteredResults/FilteredResults.stories/index.js +0 -12
  264. package/patterns/FilteredResults/FilteredResults.stories/package.json +0 -6
  265. package/patterns/FilteredResults/FilteredResults.stories.d.ts +0 -8
  266. package/patterns/FilteredResults/FilteredResults.stories.js.map +0 -7
  267. package/patterns/FilteredResults/__stories__/Default/index.js +0 -220
  268. package/patterns/FilteredResults/__stories__/Default/package.json +0 -6
  269. package/patterns/FilteredResults/__stories__/Default.js.map +0 -7
  270. package/patterns/FilteredResults/hooks/index.js +0 -105
  271. package/patterns/FilteredResults/hooks.d.ts +0 -22
  272. package/patterns/FilteredResults/hooks.js.map +0 -7
  273. package/patterns/FilteredResults/index.d.ts +0 -25
  274. package/patterns/FilteredResults/index.js +0 -122
  275. package/patterns/FilteredResults/index.js.map +0 -7
  276. package/patterns/index.d.ts +0 -1
  277. package/patterns/index.js +0 -2
  278. package/patterns/index.js.map +0 -7
  279. package/src/app/Footer/Footer.stories.playwright.json +0 -27
  280. package/src/app/Header/Header.stories.playwright.json +0 -49
  281. package/src/app/Masthead/Masthead.stories.playwright.json +0 -21
  282. package/src/app/Modal/Modal.stories.playwright.json +0 -53
  283. package/src/content/Accordion/Accordion.stories.playwright.json +0 -21
  284. package/src/content/Card/Card.stories.playwright.json +0 -21
  285. package/src/content/Details/Details.stories.playwright.json +0 -21
  286. package/src/content/StepNav/StepNav.stories.playwright.json +0 -33
  287. package/src/content/SummaryList/SummaryList.stories.playwright.json +0 -27
  288. package/src/content/Table/Table.stories.playwright.json +0 -37
  289. package/src/feedback/CopyToClipboard/CopyToClipboard.stories.playwright.json +0 -53
  290. package/src/feedback/ErrorSummary/ErrorSummary.stories.playwright.json +0 -27
  291. package/src/feedback/NotificationBanner/NotificationBanner.stories.playwright.json +0 -49
  292. package/src/feedback/PhaseBanner/PhaseBanner.stories.playwright.json +0 -21
  293. package/src/form/AutoComplete/AutoComplete.stories.playwright.json +0 -33
  294. package/src/form/Button/Button.stories.playwright.json +0 -109
  295. package/src/form/Checkbox/Checkbox.stories.playwright.json +0 -55
  296. package/src/form/DateInputContainer/DateInputContainer.stories.playwright.json +0 -61
  297. package/src/form/RadioContainer/RadioContainer.stories.playwright.json +0 -49
  298. package/src/form/SelectContainer/SelectContainer.stories.playwright.json +0 -21
  299. package/src/form/TextArea/TextArea.stories.playwright.json +0 -59
  300. package/src/form/TextInput/TextInput.stories.playwright.json +0 -43
  301. package/src/navigation/BackLink/BackLink.stories.playwright.json +0 -21
  302. package/src/navigation/Breadcrumbs/Breadcrumbs.stories.playwright.json +0 -33
  303. package/src/navigation/Dropdown/Dropdown.stories.playwright.json +0 -85
  304. package/src/navigation/Link/Link.stories.playwright.json +0 -65
  305. package/src/navigation/NavList/NavList.stories.playwright.json +0 -53
  306. package/src/navigation/NavList/__stories__/NavLinksOneLevel.json +0 -17
  307. package/src/navigation/NavList/__stories__/NavLinksWithSubmenu.json +0 -36
  308. package/src/navigation/Pagination/Pagination.stories.playwright.json +0 -27
  309. package/src/navigation/Tabs/Tabs.stories.playwright.json +0 -27
  310. package/src/patterns/FilteredResults/DataTable.tsx +0 -47
  311. package/src/patterns/FilteredResults/FilterChips.tsx +0 -54
  312. package/src/patterns/FilteredResults/FilterFields.tsx +0 -15
  313. package/src/patterns/FilteredResults/FilteredResults.stories.js +0 -7
  314. package/src/patterns/FilteredResults/__stories__/Default.tsx +0 -243
  315. package/src/patterns/FilteredResults/hooks.ts +0 -131
  316. package/src/patterns/FilteredResults/index.test.tsx +0 -21
  317. package/src/patterns/FilteredResults/index.tsx +0 -180
  318. package/src/patterns/index.tsx +0 -1
  319. /package/{patterns/FilteredResults/index.test.d.ts → app/Header/interaction.test.d.ts} +0 -0
  320. /package/app/Modal/{Modal.d.ts → index.web.d.ts} +0 -0
  321. /package/src/app/Modal/{Modal.tsx → index.web.tsx} +0 -0
@@ -1,131 +0,0 @@
1
- import { useState, useEffect, useMemo } from 'react';
2
- import { FieldSpec } from '@digigov/form/types';
3
- import { ScalarType } from '@digigov/ui/patterns/FilteredResults';
4
-
5
- export function isBooleanString(str: string): boolean {
6
- return /^(true|false)$/i.test(str);
7
- }
8
-
9
- export function normalizeText(text: string): string {
10
- return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
11
- }
12
-
13
- export const getOptionLabelForSelectValue = (field, value) => {
14
- if (field.extra?.options) {
15
- const matchedOption = field.extra.options.find(
16
- (option) => option.value.toString() === value?.toString()
17
- );
18
- if (matchedOption) {
19
- return matchedOption.label.primary;
20
- }
21
- }
22
- return value;
23
- };
24
-
25
- export const useURLParamsSearch = (searchFunc, { navigate, fields }) => {
26
- const urlParams = new URLSearchParams(window.location.search);
27
- const currentParams = Object.fromEntries(urlParams.entries());
28
- const values = fields.reduce((newValues, field) => {
29
- if (currentParams[field.key]) {
30
- newValues[field.key] = currentParams[field.key];
31
- }
32
- return newValues;
33
- }, {});
34
-
35
- const search = (params) => {
36
- navigate(
37
- '?' +
38
- new URLSearchParams(
39
- // @ts-ignore
40
- Object.entries({ ...currentParams, ...params }).filter(
41
- ([_, value]) => !!value
42
- )
43
- ).toString()
44
- );
45
- return searchFunc(params);
46
- };
47
- return { search, values };
48
- };
49
-
50
- interface UseStaticSearchProps<
51
- DT extends Record<string, ScalarType>,
52
- FT extends Record<string, ScalarType>,
53
- > {
54
- fields: FieldSpec[];
55
- data: DT[];
56
- initialFilters: FT;
57
- }
58
-
59
- export function useStaticSearch<
60
- DT extends Record<string, ScalarType>,
61
- FT extends Record<string, ScalarType>,
62
- >({ fields, data, initialFilters }: UseStaticSearchProps<DT, FT>) {
63
- const [results, setResults] = useState<DT[]>(data);
64
-
65
- useEffect(() => {
66
- search(initialFilters);
67
- }, [initialFilters]);
68
-
69
- const search = (filters: FT) => {
70
- if (!filters || Object.keys(filters).every((key) => filters[key] === '')) {
71
- setResults(data);
72
- return;
73
- }
74
-
75
- const newResults = data.filter((row) => {
76
- const filterKeys = Object.keys(filters);
77
- const enabledFilters = filterKeys.filter(
78
- (filterKey) =>
79
- filters[filterKey]?.toString() && row[filterKey]?.toString()
80
- );
81
- const freeTextFilters = filterKeys.filter(
82
- (filterKey) =>
83
- filters[filterKey]?.toString() && !row[filterKey]?.toString()
84
- );
85
- let filtersMatchingValue = false;
86
-
87
- // Filter the fields that exists as columns in table
88
- if (enabledFilters.length > 0) {
89
- filtersMatchingValue = enabledFilters.every((filterKey) => {
90
- if (filters[filterKey]?.toString() !== row[filterKey]?.toString()) {
91
- const field = fields.find((f) => f.key === filterKey);
92
- const optionsObj = field?.extra?.options.find(
93
- (option) => option?.label?.primary === row[filterKey]
94
- );
95
- return (
96
- optionsObj?.value.toString() === filters[filterKey]?.toString()
97
- );
98
- }
99
- filtersMatchingValue = true;
100
- return filtersMatchingValue;
101
- });
102
- if (!filtersMatchingValue) {
103
- return false;
104
- }
105
- }
106
- // Filter the free text fields (doesn't exist as columns)
107
- if (freeTextFilters.length > 0) {
108
- return freeTextFilters.every((filterKey) => {
109
- return Object.values(row).some((value) => {
110
- if (typeof value !== 'string') {
111
- return false;
112
- }
113
- const normalizedItemValue = normalizeText(
114
- value.toString().toLowerCase()
115
- );
116
-
117
- const normalizedFilterValue = normalizeText(
118
- filters[filterKey]?.toString().toLowerCase().trim() || ''
119
- );
120
- return normalizedItemValue.includes(normalizedFilterValue);
121
- });
122
- });
123
- }
124
- return filtersMatchingValue;
125
- });
126
-
127
- setResults(newResults);
128
- };
129
-
130
- return useMemo(() => ({ search, results }), [search, results]);
131
- }
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import { test, expect } from '@playwright/experimental-ct-react';
3
- import { Default } from '@digigov/ui/patterns/FilteredResults/__stories__/Default';
4
- import TestVariant from '@digigov/ui/utils/TestVariant';
5
-
6
- test('renders the All FilteredResults variants', async ({ mount, page }) => {
7
- await mount(
8
- <div>
9
- <TestVariant title="Default">
10
- <Default />
11
- </TestVariant>
12
- </div>
13
- );
14
- await page.evaluate(() => document.fonts.ready);
15
-
16
- const screenshot = await page.screenshot({
17
- fullPage: true,
18
- animations: 'disabled',
19
- });
20
- expect(screenshot).toMatchSnapshot();
21
- });
@@ -1,180 +0,0 @@
1
- import React, { useContext, useEffect } from 'react';
2
- import FormBuilder from '@digigov/form/FormBuilder';
3
- import { FormContext } from '@digigov/form/FormContext';
4
- import { FieldSpec } from '@digigov/form/types';
5
- import CloseButton from '@digigov/ui/app/CloseButton';
6
- import FilterContainer, {
7
- FilterContent,
8
- FilterHeadingContainer,
9
- } from '@digigov/ui/app/FilterContainer';
10
- import { Button } from '@digigov/ui/form/Button';
11
- import { Grid } from '@digigov/ui/layouts/Grid';
12
- import { Hidden } from '@digigov/ui/layouts/Hidden';
13
- import { SectionBreak } from '@digigov/ui/layouts/SectionBreak';
14
- import { Drawer, DrawerHeading } from '@digigov/ui/navigation/Drawer';
15
- import { useDrawer } from '@digigov/ui/navigation/Drawer/hooks';
16
- import { FilterChips } from '@digigov/ui/patterns/FilteredResults/FilterChips';
17
- import { FilterFields } from '@digigov/ui/patterns/FilteredResults/FilterFields';
18
- import { Heading } from '@digigov/ui/typography/Heading';
19
-
20
- export type ScalarType = string | number | boolean | null | undefined;
21
-
22
- export interface DataConfigType {
23
- key: string;
24
- title: string;
25
- displayComponent?: (value: string | number | boolean) => React.ReactNode;
26
- }
27
- export interface FilteredResultsProps<
28
- DT extends Record<string, ScalarType>,
29
- FT extends Record<string, ScalarType>,
30
- > {
31
- fields: FieldSpec[];
32
- data: DT[];
33
- variant?: 'drawer-left' | 'drawer-right' | 'block';
34
- defaultFilters?: FT;
35
- currentFilters?: FT;
36
- onSearch: (filters: unknown) => void;
37
- children?: React.ReactNode;
38
- }
39
-
40
- export const FormBuilderSyncValues = ({ values, autoSubmit }) => {
41
- const form = useContext(FormContext);
42
- const previousValues = form.getValues();
43
- useEffect(() => {
44
- const mergedObject = { ...values, ...previousValues };
45
- let shouldSubmit = false;
46
- for (const key in mergedObject) {
47
- // catching the filters that have been parsed from url & avoid continuous submitting
48
- if (values[key] !== undefined && previousValues[key] !== values[key]) {
49
- shouldSubmit = true;
50
- previousValues[key] = values[key];
51
- form.setValue(key, values[key]);
52
- }
53
- }
54
- if (autoSubmit && shouldSubmit) {
55
- form.submit();
56
- }
57
- }, [values]);
58
- return <></>;
59
- };
60
-
61
- export const DrawerFilteredResults = React.forwardRef<HTMLDivElement, unknown>(
62
- function DrawerFilteredResults(
63
- { fields, direction = 'left', ...props },
64
- ref
65
- ) {
66
- const { registerDrawer, registerAction, currentOpen } = useDrawer();
67
-
68
- return (
69
- <>
70
- {currentOpen && (
71
- <Grid item xs={12} md={12} lg={4} ref={ref}>
72
- <Drawer
73
- {...registerDrawer('filters-drawer', {
74
- upRelative: 'lg',
75
- direction,
76
- })}
77
- >
78
- <DrawerHeading {...registerAction('filters-drawer', 'close')}>
79
- <Heading size="md">Φίλτρα</Heading>
80
- </DrawerHeading>
81
- <FilterContent>
82
- <FilterFields fields={fields} horizontal={false} />
83
- </FilterContent>
84
- </Drawer>
85
- </Grid>
86
- )}
87
- <Grid item xs={12} md={12} lg={currentOpen ? 8 : 12}>
88
- <Button
89
- mb={4}
90
- {...registerAction(
91
- 'filters-drawer',
92
- currentOpen === 'filters-drawer' ? 'close' : 'open'
93
- )}
94
- color="secondary"
95
- >
96
- Φίλτρα
97
- </Button>
98
- <FilterChips />
99
- {props.children}
100
- </Grid>
101
- </>
102
- );
103
- }
104
- );
105
-
106
- export const BlockFilteredResults = React.forwardRef<HTMLDivElement, unknown>(
107
- function BlockFilteredResults({ fields, ...props }, ref) {
108
- const [open, setOpen] = React.useState(true);
109
- return (
110
- <Grid item xs={12} ref={ref}>
111
- <FilterContainer open={open}>
112
- <FilterHeadingContainer>
113
- <Hidden mdUp>
114
- <CloseButton onClick={() => setOpen(false)}>Κλείσιμο</CloseButton>
115
- </Hidden>
116
- <Heading size="md">Φίλτρα</Heading>
117
- </FilterHeadingContainer>
118
- <FilterContent>
119
- <FilterChips />
120
- <FilterFields fields={fields} horizontal={true} />
121
- </FilterContent>
122
- </FilterContainer>
123
- <Button
124
- color="secondary"
125
- mdUpHidden
126
- mb={4}
127
- onClick={() => setOpen(true)}
128
- >
129
- Φίλτρα
130
- </Button>
131
- <SectionBreak size="md" visible={false} />
132
- {props.children}
133
- </Grid>
134
- );
135
- }
136
- );
137
-
138
- export const FilteredResults = React.forwardRef<
139
- HTMLFormElement,
140
- FilteredResultsProps<Record<string, ScalarType>, Record<string, ScalarType>>
141
- >(function FilteredResults(
142
- {
143
- fields,
144
- onSearch,
145
- variant = 'block',
146
- defaultFilters,
147
- currentFilters,
148
- children,
149
- },
150
- ref
151
- ) {
152
- const isDrawer = variant.startsWith('drawer-');
153
- return (
154
- <FormBuilder
155
- onSubmit={onSearch}
156
- initial={defaultFilters}
157
- fields={fields}
158
- grid
159
- ref={ref}
160
- >
161
- {currentFilters && (
162
- <FormBuilderSyncValues values={currentFilters} autoSubmit={true} />
163
- )}
164
- {isDrawer ? (
165
- // @ts-ignore
166
- <DrawerFilteredResults
167
- fields={fields}
168
- direction={variant.split('-')[1]}
169
- >
170
- {children}
171
- </DrawerFilteredResults>
172
- ) : (
173
- // @ts-ignore
174
- <BlockFilteredResults fields={fields}>{children}</BlockFilteredResults>
175
- )}
176
- </FormBuilder>
177
- );
178
- });
179
-
180
- export default FilteredResults;
@@ -1 +0,0 @@
1
- export * from '@digigov/ui/patterns/FilteredResults';
File without changes
File without changes