@eeacms/volto-eea-design-system 1.50.2 → 1.60.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/README.md +4 -0
- package/package.json +1 -1
- package/src/ui/Header/Header.jsx +8 -1
- package/src/ui/Header/Header.stories.test.js +11 -3
- package/src/ui/Header/Header.test.jsx +55 -32
- package/src/ui/Header/HeaderSearchPopUp.js +83 -24
- package/src/ui/Header/HeaderSearchPopUp.test.js +119 -98
- package/theme/themes/eea/assets/images/Header/ai-search.svg +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
### [1.60.1](https://github.com/eea/volto-eea-design-system/compare/1.60.0...1.60.1) - 17 April 2026
|
|
8
|
+
|
|
9
|
+
#### :hammer_and_wrench: Others
|
|
10
|
+
|
|
11
|
+
- filter header search box settings by path [Miu Razvan - [`4d752c6`](https://github.com/eea/volto-eea-design-system/commit/4d752c6f589cb0ccf49885a3b3a02fdf3875fb72)]
|
|
12
|
+
### [1.60.0](https://github.com/eea/volto-eea-design-system/compare/1.50.2...1.60.0) - 17 April 2026
|
|
13
|
+
|
|
14
|
+
#### :house: Documentation changes
|
|
15
|
+
|
|
16
|
+
- docs: Update README [Alin Voinea - [`06e6ce7`](https://github.com/eea/volto-eea-design-system/commit/06e6ce7553bb50dea0d000f990f19c568e658b9f)]
|
|
17
|
+
|
|
18
|
+
#### :hammer_and_wrench: Others
|
|
19
|
+
|
|
20
|
+
- update readme [Miu Razvan - [`268086f`](https://github.com/eea/volto-eea-design-system/commit/268086fa17f9f68283dc7528ddbcd71105b676da)]
|
|
21
|
+
- Release 1.60.0 [Alin Voinea - [`c74e3ac`](https://github.com/eea/volto-eea-design-system/commit/c74e3acb79cce153067984a234401e3d16ac0b05)]
|
|
22
|
+
- update version [Miu Razvan - [`5753c9f`](https://github.com/eea/volto-eea-design-system/commit/5753c9f98c80a8699889a55a3fe1abecf3853b77)]
|
|
23
|
+
- fix tests [Miu Razvan - [`32b5e42`](https://github.com/eea/volto-eea-design-system/commit/32b5e42c6f458f7391f930165852700daa758790)]
|
|
24
|
+
- fix tests [Miu Razvan - [`dca166a`](https://github.com/eea/volto-eea-design-system/commit/dca166aa44a9bc3c123a17e78333b850ef401fb6)]
|
|
25
|
+
- fix tests [Miu Razvan - [`0e876ca`](https://github.com/eea/volto-eea-design-system/commit/0e876caf4e172b84dfbc30a16c58009ee4481d94)]
|
|
26
|
+
- fix tests [Miu Razvan - [`86f657a`](https://github.com/eea/volto-eea-design-system/commit/86f657a70a357a412257e9d8cb63f9050ca718e4)]
|
|
27
|
+
- Make use of eea_settings [Miu Razvan - [`78ab3c5`](https://github.com/eea/volto-eea-design-system/commit/78ab3c59a4a7232b09812b3967ddd2b93cdd7fad)]
|
|
28
|
+
- Bump version + add upgrade step [Miu Razvan - [`a1dbbd5`](https://github.com/eea/volto-eea-design-system/commit/a1dbbd557f66174f05ce87ed21073aecefa1f507)]
|
|
7
29
|
### [1.50.2](https://github.com/eea/volto-eea-design-system/compare/1.50.1...1.50.2) - 9 April 2026
|
|
8
30
|
|
|
9
31
|
#### :bug: Bug Fixes
|
|
@@ -31,6 +53,8 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
31
53
|
|
|
32
54
|
#### :house: Internal changes
|
|
33
55
|
|
|
56
|
+
- chore: [JENKINSFILE] add package version in sonarqube [valentinab25 - [`a2500ee`](https://github.com/eea/volto-eea-design-system/commit/a2500ee91c3d926183403b7e55ef717f697eb736)]
|
|
57
|
+
- chore: [JENKINSFILE] use sonarqube branches [EEA Jenkins - [`79058be`](https://github.com/eea/volto-eea-design-system/commit/79058be6ad228970127ee388bbc78ad69b92465b)]
|
|
34
58
|
|
|
35
59
|
#### :hammer_and_wrench: Others
|
|
36
60
|
|
|
@@ -67,6 +91,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
67
91
|
#### :hammer_and_wrench: Others
|
|
68
92
|
|
|
69
93
|
- add rule for eeacms/countup to jest-config.js [David Ichim - [`59244c2`](https://github.com/eea/volto-eea-design-system/commit/59244c2e85447766e9e2a051e080652d93f67458)]
|
|
94
|
+
- Add Sonarqube tag using bise-frontend addons list [EEA Jenkins - [`314266b`](https://github.com/eea/volto-eea-design-system/commit/314266bd8131b8ade427f23f81a084714f0104af)]
|
|
70
95
|
### [1.40.0](https://github.com/eea/volto-eea-design-system/compare/1.39.1...1.40.0) - 4 November 2025
|
|
71
96
|
|
|
72
97
|
### [1.39.1](https://github.com/eea/volto-eea-design-system/compare/1.39.0...1.39.1) - 22 September 2025
|
|
@@ -142,8 +167,10 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
142
167
|
|
|
143
168
|
#### :hammer_and_wrench: Others
|
|
144
169
|
|
|
170
|
+
- Add Sonarqube tag using fise-frontend addons list [EEA Jenkins - [`d3a993f`](https://github.com/eea/volto-eea-design-system/commit/d3a993f7c9f687d709e1c8bc48b4972aca7a161e)]
|
|
145
171
|
- Fix with sed the issue from line 714 missing } [David Ichim - [`e4e10a0`](https://github.com/eea/volto-eea-design-system/commit/e4e10a0a8a82c1fa20dcff9fa8178a6a938a7fd5)]
|
|
146
172
|
- Fixed link for don't use more than six colors [David Ichim - [`f42c698`](https://github.com/eea/volto-eea-design-system/commit/f42c69895258291ef72c0299e348f5671b2c127b)]
|
|
173
|
+
- Add Sonarqube tag using ied-frontend addons list [EEA Jenkins - [`a8fa4e1`](https://github.com/eea/volto-eea-design-system/commit/a8fa4e157f6351939fd6ee126f733efc1adf6dfe)]
|
|
147
174
|
- lint fix [David Ichim - [`5d4d60a`](https://github.com/eea/volto-eea-design-system/commit/5d4d60ac305b8694fec64a9cce625a1015e8486f)]
|
|
148
175
|
### [1.36.3](https://github.com/eea/volto-eea-design-system/compare/1.36.2...1.36.3) - 4 March 2025
|
|
149
176
|
|
|
@@ -177,6 +204,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
177
204
|
#### :hammer_and_wrench: Others
|
|
178
205
|
|
|
179
206
|
- Update package.json [Ichim David - [`40ae6a7`](https://github.com/eea/volto-eea-design-system/commit/40ae6a70377c54256f7365a12bded4e25b0c322e)]
|
|
207
|
+
- Add Sonarqube tag using bise-frontend addons list [EEA Jenkins - [`b433236`](https://github.com/eea/volto-eea-design-system/commit/b433236f3e264304c86082281da90384da7ab0ff)]
|
|
180
208
|
### [1.34.1](https://github.com/eea/volto-eea-design-system/compare/1.34.0...1.34.1) - 14 October 2024
|
|
181
209
|
|
|
182
210
|
### [1.34.0](https://github.com/eea/volto-eea-design-system/compare/1.33.1...1.34.0) - 11 October 2024
|
|
@@ -258,6 +286,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
258
286
|
|
|
259
287
|
#### :hammer_and_wrench: Others
|
|
260
288
|
|
|
289
|
+
- Add Sonarqube tag using marine-frontend addons list [EEA Jenkins - [`dfa1d1b`](https://github.com/eea/volto-eea-design-system/commit/dfa1d1bd53ae63b20aa0ef64c37bf71faf376290)]
|
|
261
290
|
### [1.31.0](https://github.com/eea/volto-eea-design-system/compare/1.23.8...1.31.0) - 22 May 2024
|
|
262
291
|
|
|
263
292
|
#### :boom: Breaking Change
|
|
@@ -286,6 +315,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
286
315
|
|
|
287
316
|
#### :hammer_and_wrench: Others
|
|
288
317
|
|
|
318
|
+
- Add Sonarqube tag using insitu-frontend addons list [EEA Jenkins - [`2ccf437`](https://github.com/eea/volto-eea-design-system/commit/2ccf4372f93d56ce3cc8bfd66de5c9fbb2698cf4)]
|
|
289
319
|
### [1.23.5](https://github.com/eea/volto-eea-design-system/compare/1.23.4...1.23.5) - 5 April 2024
|
|
290
320
|
|
|
291
321
|
#### :nail_care: Enhancements
|
|
@@ -321,6 +351,8 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
321
351
|
- Update package.json version to 1.23.0 [David Ichim - [`4b2eeee`](https://github.com/eea/volto-eea-design-system/commit/4b2eeee398b771ac80111e1755f67273c8940ced)]
|
|
322
352
|
- fixed merge conflict [David Ichim - [`efe0f4b`](https://github.com/eea/volto-eea-design-system/commit/efe0f4b7df1782f5143e1bee31c997801427d35c)]
|
|
323
353
|
- Update react-slick version to 0.30.1 [David Ichim - [`62d4570`](https://github.com/eea/volto-eea-design-system/commit/62d457014866fc075a3203fd0f9e66354aa73fe5)]
|
|
354
|
+
- Add Sonarqube tag using freshwater-frontend addons list [EEA Jenkins - [`c6c74f0`](https://github.com/eea/volto-eea-design-system/commit/c6c74f049ee787632b8ad0ec0f28531ac4d0f20f)]
|
|
355
|
+
- Add Sonarqube tag using insitu-frontend addons list [EEA Jenkins - [`d3d7793`](https://github.com/eea/volto-eea-design-system/commit/d3d779363caa10f384d829a7e4242c5d54268099)]
|
|
324
356
|
### [1.23.0](https://github.com/eea/volto-eea-design-system/compare/1.22.7...1.23.0) - 19 February 2024
|
|
325
357
|
|
|
326
358
|
### [1.22.7](https://github.com/eea/volto-eea-design-system/compare/1.22.6...1.22.7) - 22 January 2024
|
|
@@ -406,7 +438,11 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
406
438
|
- Add dropdown test case to Header component [David Ichim - [`9ea3234`](https://github.com/eea/volto-eea-design-system/commit/9ea3234c2c0f1c819c7c2b54a75c56cda7812c56)]
|
|
407
439
|
- Remove unused import in Header.test.jsx [David Ichim - [`082069e`](https://github.com/eea/volto-eea-design-system/commit/082069e1f057786e0f1fb00c98d54b8e03b5d9c5)]
|
|
408
440
|
- Added some tests for TopDropdownMenu mobile and dropdown interaction [David Ichim - [`9d24488`](https://github.com/eea/volto-eea-design-system/commit/9d24488c1e97b2b1b14bd9bd8cb6f5b68414794b)]
|
|
441
|
+
- test: [JENKINS] Run cypress in started frontend container [valentinab25 - [`eadf018`](https://github.com/eea/volto-eea-design-system/commit/eadf018aa1f32d310619ce4ef08f9b11950a20dc)]
|
|
409
442
|
- Lint fix [David Ichim - [`e29fd50`](https://github.com/eea/volto-eea-design-system/commit/e29fd50ee73477007dcf94a268596e6c11176d7b)]
|
|
443
|
+
- test: [JENKINS] Add cpu limit on cypress docker [valentinab25 - [`947cb92`](https://github.com/eea/volto-eea-design-system/commit/947cb929c01ebb6f46bf124833fe1fec0f385edb)]
|
|
444
|
+
- test: [JENKINS] Increase shm-size to cypress docker [valentinab25 - [`8356dfe`](https://github.com/eea/volto-eea-design-system/commit/8356dfe929039dcd165af0692cbbfc771a0f7fb4)]
|
|
445
|
+
- test: [JENKINS] Improve cypress time [valentinab25 - [`e38f17e`](https://github.com/eea/volto-eea-design-system/commit/e38f17ed735e743e59df7d06ca723c1218bdb569)]
|
|
410
446
|
### [1.20.0](https://github.com/eea/volto-eea-design-system/compare/1.19.0...1.20.0) - 2 November 2023
|
|
411
447
|
|
|
412
448
|
#### :rocket: New Features
|
|
@@ -439,6 +475,9 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
439
475
|
|
|
440
476
|
#### :house: Internal changes
|
|
441
477
|
|
|
478
|
+
- chore: [JENKINS] do not run tests on PR comments [valentinab25 - [`51b68fc`](https://github.com/eea/volto-eea-design-system/commit/51b68fc76a956996e01521b784262c67e7094d35)]
|
|
479
|
+
- chore: [JENKINS] add comment step [valentinab25 - [`5022758`](https://github.com/eea/volto-eea-design-system/commit/50227587db2c72d17e26e7b66f28d4c09b760873)]
|
|
480
|
+
- chore: [JENKINS] Refactor automated testing [valentinab25 - [`a70ca64`](https://github.com/eea/volto-eea-design-system/commit/a70ca642918f578d6737d975e4769bac8312f48d)]
|
|
442
481
|
- chore: husky, lint-staged use fixed versions [valentinab25 - [`59ecb8e`](https://github.com/eea/volto-eea-design-system/commit/59ecb8e28b259472303324f9655b0cbbcbbf9c23)]
|
|
443
482
|
|
|
444
483
|
#### :hammer_and_wrench: Others
|
|
@@ -564,6 +603,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
564
603
|
|
|
565
604
|
#### :hammer_and_wrench: Others
|
|
566
605
|
|
|
606
|
+
- test: Fix eslint and yarn i18n [Alin Voinea - [`331149f`](https://github.com/eea/volto-eea-design-system/commit/331149f5eb16a9cc6f2d996f7b793909773063c2)]
|
|
567
607
|
- i18n: Add en [Alin Voinea - [`4584295`](https://github.com/eea/volto-eea-design-system/commit/458429530d993c27cfb962ddfe2f376f3568bf01)]
|
|
568
608
|
- Release 1.17.0 [Alin Voinea - [`e3c25ee`](https://github.com/eea/volto-eea-design-system/commit/e3c25eeeca5e863244faae396b5aa915d0702633)]
|
|
569
609
|
- test: add unit tests for DS components - refs #254313 [ana-oprea - [`0c4d4d1`](https://github.com/eea/volto-eea-design-system/commit/0c4d4d118b8e13082c576dc5c2dce6a715f49006)]
|
|
@@ -673,6 +713,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
673
713
|
#### :hammer_and_wrench: Others
|
|
674
714
|
|
|
675
715
|
- Release 1.14.0 [Alin Voinea - [`cb9084f`](https://github.com/eea/volto-eea-design-system/commit/cb9084fb2246dc1b729e12a419a26daa12c26f7a)]
|
|
716
|
+
- test: [JENKINS] set pipe fail [valentinab25 - [`1cdfc39`](https://github.com/eea/volto-eea-design-system/commit/1cdfc39d08f1ae301dea57f1e4be5265c4a4c6f9)]
|
|
676
717
|
- test: try storybook upload [valentinab25 - [`6d5833d`](https://github.com/eea/volto-eea-design-system/commit/6d5833d4419d00f1ac04c9eb78a0884214f9a494)]
|
|
677
718
|
- test: remove useless code [valentinab25 - [`2c14b0c`](https://github.com/eea/volto-eea-design-system/commit/2c14b0ce4596cfc11a81b9762677596d1861acfe)]
|
|
678
719
|
### [1.13.2](https://github.com/eea/volto-eea-design-system/compare/1.13.1...1.13.2) - 13 June 2023
|
|
@@ -711,6 +752,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
711
752
|
|
|
712
753
|
#### :house: Internal changes
|
|
713
754
|
|
|
755
|
+
- chore: [JENKINS] Deprecate circularity website [valentinab25 - [`fb2b166`](https://github.com/eea/volto-eea-design-system/commit/fb2b166d64f95a1c183901abfe0fe0254d1bbc7a)]
|
|
714
756
|
|
|
715
757
|
#### :house: Documentation changes
|
|
716
758
|
|
|
@@ -1044,6 +1086,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1044
1086
|
|
|
1045
1087
|
- Release 1.0.0-beta.5 [Alin Voinea - [`e4417e1`](https://github.com/eea/volto-eea-design-system/commit/e4417e121477511c350ae3fbe4e70aadb445ed86)]
|
|
1046
1088
|
- better useOnScreen hook [Andrei Grigore - [`c214b6b`](https://github.com/eea/volto-eea-design-system/commit/c214b6b76443f81c795ce2f3aa457562ec088b30)]
|
|
1089
|
+
- Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`b227cf8`](https://github.com/eea/volto-eea-design-system/commit/b227cf8a8c44b9d91e9fda8a7999fb0a42bacdca)]
|
|
1047
1090
|
- feature(mobile): increased performance by lazy loading footer images #303 from eea/increase_performance [ichim-david - [`80d1df1`](https://github.com/eea/volto-eea-design-system/commit/80d1df1c459680331d486f9e8e6a95c9db0adbf6)]
|
|
1048
1091
|
- prettier [David Ichim - [`a7f8384`](https://github.com/eea/volto-eea-design-system/commit/a7f838470c1bcc4e2be115d514d92a1b686a5e9b)]
|
|
1049
1092
|
- fixed less build failure due to changes in footer.less [David Ichim - [`190bc8c`](https://github.com/eea/volto-eea-design-system/commit/190bc8cfa88191b45808f1e27c6e2737ee3d15b1)]
|
|
@@ -1114,6 +1157,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1114
1157
|
|
|
1115
1158
|
#### :house: Internal changes
|
|
1116
1159
|
|
|
1160
|
+
- chore(docusaurus): ignore website/.yarn [Giorgos Stamatis - [`0b33ffd`](https://github.com/eea/volto-eea-design-system/commit/0b33ffd1dda61b126e3cc5ff48888124d6aee41b)]
|
|
1117
1161
|
- style(header): react syntax fix [Antonis Tarantilis - [`3add127`](https://github.com/eea/volto-eea-design-system/commit/3add1271c785a92bea0ef925d7bc562cef1e0d92)]
|
|
1118
1162
|
|
|
1119
1163
|
#### :house: Documentation changes
|
|
@@ -1310,6 +1354,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1310
1354
|
|
|
1311
1355
|
- Release 1.0.0-alpha.10 [Alin Voinea - [`7014d08`](https://github.com/eea/volto-eea-design-system/commit/7014d080ce114bd0bc039abeecbd7229333b0971)]
|
|
1312
1356
|
- Add variable definitions [kreafox - [`293fe65`](https://github.com/eea/volto-eea-design-system/commit/293fe65e2f24e6290e1286229169a77f9be4750e)]
|
|
1357
|
+
- Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`ef58a6f`](https://github.com/eea/volto-eea-design-system/commit/ef58a6f5ad8deea26b1395a86778fe1159b7617b)]
|
|
1313
1358
|
- Back to dev [Alin Voinea - [`31d4616`](https://github.com/eea/volto-eea-design-system/commit/31d461662b9184a7bbe190e86f3c47fab39229fe)]
|
|
1314
1359
|
### [1.0.0-alpha.9](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.8...1.0.0-alpha.9) - 28 December 2022
|
|
1315
1360
|
|
|
@@ -1367,6 +1412,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1367
1412
|
- bump package version [David Ichim - [`b4628be`](https://github.com/eea/volto-eea-design-system/commit/b4628bed134abc76e38a243d4e98143e19cef989)]
|
|
1368
1413
|
- feature(docusaurus, storybook): logos selection for sites plus inverted options #253 from eea/doc-logo-page [ichim-david - [`dbfc90d`](https://github.com/eea/volto-eea-design-system/commit/dbfc90d035dc40e9d4054347f00fde4de486d63d)]
|
|
1369
1414
|
- (feat): Add ability to disable the language select from website top menu - refs #158616 [dobri1408 - [`411c8e4`](https://github.com/eea/volto-eea-design-system/commit/411c8e4afaf0b2b9edfdeeecdca22aa4cc41f329)]
|
|
1415
|
+
- Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`c4769e9`](https://github.com/eea/volto-eea-design-system/commit/c4769e987d525f5dcafac8e6cf8a89fd8111667d)]
|
|
1370
1416
|
- test(Jenkins): Run tests and cypress with latest canary @plone/volto [Alin Voinea - [`92feea0`](https://github.com/eea/volto-eea-design-system/commit/92feea09796c9ef0530f65fa1d34139905133215)]
|
|
1371
1417
|
- Proof reading page header section [ichim-david - [`230239e`](https://github.com/eea/volto-eea-design-system/commit/230239e1b22734fb8606656985bc5e513731e244)]
|
|
1372
1418
|
### [1.0.0-alpha.7](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.6...1.0.0-alpha.7) - 16 December 2022
|
|
@@ -1398,6 +1444,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1398
1444
|
#### :hammer_and_wrench: Others
|
|
1399
1445
|
|
|
1400
1446
|
- Release 1.0.0-alpha.7 [Alin Voinea - [`7e66bcc`](https://github.com/eea/volto-eea-design-system/commit/7e66bcc296b389bc55073e7f99681534977dce3a)]
|
|
1447
|
+
- Add Sonarqube tag using cca-frontend addons list [EEA Jenkins - [`ce47e9b`](https://github.com/eea/volto-eea-design-system/commit/ce47e9b163bcb4eda988e3a87718b54ffbd3f99f)]
|
|
1401
1448
|
- added back descriptionDistance variable until package release [David Ichim - [`3af811a`](https://github.com/eea/volto-eea-design-system/commit/3af811a8d86a132e16de118697ba5a4302a8a4da)]
|
|
1402
1449
|
- Back to dev [Alin Voinea - [`cb531c9`](https://github.com/eea/volto-eea-design-system/commit/cb531c933c907bdbb88c9de0f1df2eb7ce899a4c)]
|
|
1403
1450
|
- Proper paths if the package is not installed, but in development [Tiberiu Ichim - [`7a2655f`](https://github.com/eea/volto-eea-design-system/commit/7a2655f7cf9d3c687f172eefcf2b4cff4b12f832)]
|
|
@@ -1485,6 +1532,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1485
1532
|
#### :hammer_and_wrench: Others
|
|
1486
1533
|
|
|
1487
1534
|
- feature(Docusaurus): Updates on color palette information including thematic websites #231 from eea/refactor-docusaurus [ichim-david - [`ec7843d`](https://github.com/eea/volto-eea-design-system/commit/ec7843dea07f626dc1c71ae1baa8bb5b0caa52f3)]
|
|
1535
|
+
- Upgrade Jenkinsfile storybook to yarn 3 [Alin Voinea - [`d20de8d`](https://github.com/eea/volto-eea-design-system/commit/d20de8d6e21a14660b7b5125a80218a8a6f19e62)]
|
|
1488
1536
|
- Back to dev [Alin Voinea - [`563fbc5`](https://github.com/eea/volto-eea-design-system/commit/563fbc5fac0d4b0295690d0a3a4e04271753f18a)]
|
|
1489
1537
|
- perf(docusaurus): added remixicon and roboto locally [Giorgos Stamatis - [`b67b1a7`](https://github.com/eea/volto-eea-design-system/commit/b67b1a72bc9cdc7c62a25967e81b430f8b62d558)]
|
|
1490
1538
|
### [1.0.0-alpha.4](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.3...1.0.0-alpha.4) - 22 November 2022
|
|
@@ -1577,6 +1625,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1577
1625
|
- modified left value of full width classes with toolbars [David Ichim - [`70d82d4`](https://github.com/eea/volto-eea-design-system/commit/70d82d47fbc2c00a3a709de0d5c087c8443a1eae)]
|
|
1578
1626
|
- WIP settings column grid width when using full size class [David Ichim - [`affc7ac`](https://github.com/eea/volto-eea-design-system/commit/affc7ac99527aa92d5a192d90dc8c9ec46a66404)]
|
|
1579
1627
|
- fix eslint [Miu Razvan - [`30c52e4`](https://github.com/eea/volto-eea-design-system/commit/30c52e4eb443555ca44c1b35df064e73d52c0a8b)]
|
|
1628
|
+
- Add Sonarqube tag using circularity-frontend addons list [EEA Jenkins - [`76a41c7`](https://github.com/eea/volto-eea-design-system/commit/76a41c786995fd54afe4d1c345de939f683ffa70)]
|
|
1580
1629
|
- fix broken variable call for contentBox.variables introduced in previous commit by mistake [David Ichim - [`d249c11`](https://github.com/eea/volto-eea-design-system/commit/d249c1160d19bedb174a2fde3fdab48d9ce297d4)]
|
|
1581
1630
|
- clean up [Miu Razvan - [`89f3cb3`](https://github.com/eea/volto-eea-design-system/commit/89f3cb33d70a14806a953f0acd1807e94169ee5c)]
|
|
1582
1631
|
- Feature(container): flexible container size #260 from eea/feature-flexible-container [ichim-david - [`8f84c5b`](https://github.com/eea/volto-eea-design-system/commit/8f84c5b67afe9cbe01b2a44a8f92a9a554e1036a)]
|
|
@@ -1678,6 +1727,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1678
1727
|
|
|
1679
1728
|
#### :nail_care: Enhancements
|
|
1680
1729
|
|
|
1730
|
+
- change(jenkins): added yarn policy for storybook building [ichim-david - [`3d1b844`](https://github.com/eea/volto-eea-design-system/commit/3d1b844efeea40b99c00c9aa97089e0a0be58a57)]
|
|
1681
1731
|
- change(docusaurus): typography updates [ichim-david - [`60a93a4`](https://github.com/eea/volto-eea-design-system/commit/60a93a4aece4e478ae13c2dfe697fd3703aa178a)]
|
|
1682
1732
|
- change(accordion): allow customization of accordion title with css variables [David Ichim - [`15e7d27`](https://github.com/eea/volto-eea-design-system/commit/15e7d27f02c640df582f51a51ef36e645723f842)]
|
|
1683
1733
|
- change(content-box): added css variables that will set text color and background for children [David Ichim - [`86cac53`](https://github.com/eea/volto-eea-design-system/commit/86cac531cc94386b6022e1be80dba826b39f2443)]
|
|
@@ -1712,6 +1762,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
1712
1762
|
#### :hammer_and_wrench: Others
|
|
1713
1763
|
|
|
1714
1764
|
- Merge pull request #243 from eea/develop [ichim-david - [`576564c`](https://github.com/eea/volto-eea-design-system/commit/576564ce395ee6ac9e74bcb19d5c4f0b4cd3c33b)]
|
|
1765
|
+
- Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`4a5be6e`](https://github.com/eea/volto-eea-design-system/commit/4a5be6eec78dae230626e61ea2c77e7f3c62510d)]
|
|
1715
1766
|
- Back to dev [Alin Voinea - [`b251255`](https://github.com/eea/volto-eea-design-system/commit/b251255a7ed14d8290717726d86eaf54b87aa2d4)]
|
|
1716
1767
|
### [0.9.0](https://github.com/eea/volto-eea-design-system/compare/0.8.1...0.9.0) - 19 September 2022
|
|
1717
1768
|
|
|
@@ -2467,6 +2518,10 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
2467
2518
|
#### :hammer_and_wrench: Others
|
|
2468
2519
|
|
|
2469
2520
|
- prettier changes [David Ichim - [`134da52`](https://github.com/eea/volto-eea-design-system/commit/134da52549b9d5eac5a12b7ad3005073500ac2c4)]
|
|
2521
|
+
- [JENKINSFILE] remove debug, add error per stage [valentinab25 - [`903eecd`](https://github.com/eea/volto-eea-design-system/commit/903eecdb6bcbb8d73cff5e447d80c85e2a2c906d)]
|
|
2522
|
+
- [JENKINSFILE] mention comment author in comment [valentinab25 - [`39a26aa`](https://github.com/eea/volto-eea-design-system/commit/39a26aa1ff0f35e93e8df9f442c29c5ab79ff493)]
|
|
2523
|
+
- [JENKINSFILE] format PR comments [valentinab25 - [`739438c`](https://github.com/eea/volto-eea-design-system/commit/739438c64950c745d630d1998314a2bed595b23a)]
|
|
2524
|
+
- [JENKINSFILE] Add failure comment, no jenkins fail [valentinab25 - [`c325bf1`](https://github.com/eea/volto-eea-design-system/commit/c325bf14f3fb0da150f2a56cda0a9f03d8d8a628)]
|
|
2470
2525
|
### [0.2.3](https://github.com/eea/volto-eea-design-system/compare/0.2.2...0.2.3) - 29 April 2022
|
|
2471
2526
|
|
|
2472
2527
|
#### :rocket: New Features
|
|
@@ -2891,6 +2946,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
2891
2946
|
- set profile section overflow to auto [nileshgulia1 - [`71ab47f`](https://github.com/eea/volto-eea-design-system/commit/71ab47f89a433233c14b394c3824e607dd18a393)]
|
|
2892
2947
|
- remove segment custom width [nileshgulia1 - [`1d3ea40`](https://github.com/eea/volto-eea-design-system/commit/1d3ea40f98bbdc1eab95b4da739a659b5e29ec16)]
|
|
2893
2948
|
- fix profile section css overflow [nileshgulia1 - [`db5126f`](https://github.com/eea/volto-eea-design-system/commit/db5126fc902e191d1e18fb7e4c54877c8d8786e6)]
|
|
2949
|
+
- Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`647a6e3`](https://github.com/eea/volto-eea-design-system/commit/647a6e3e2093f2c4884c356eb148453551c8f33f)]
|
|
2894
2950
|
- fix warning related to proptype [nileshgulia1 - [`946c6c6`](https://github.com/eea/volto-eea-design-system/commit/946c6c6bc9dece0985ae4b9f9cad6ece2be0ff2c)]
|
|
2895
2951
|
- removed override already present in card.less [ichim-david - [`50d2ab2`](https://github.com/eea/volto-eea-design-system/commit/50d2ab26f85c8f409da02ec128cc1df34848ca69)]
|
|
2896
2952
|
- update [Miu Razvan - [`bbcab87`](https://github.com/eea/volto-eea-design-system/commit/bbcab87ef4c8475f347f0daf4ab7e428e69c2316)]
|
|
@@ -2977,6 +3033,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
2977
3033
|
- remove segment custom width [nileshgulia1 - [`4a60d84`](https://github.com/eea/volto-eea-design-system/commit/4a60d84d5fe76578b7760aa1dad6eef9a20916a7)]
|
|
2978
3034
|
- Reformat header.less [Tiberiu Ichim - [`1f99dfc`](https://github.com/eea/volto-eea-design-system/commit/1f99dfc82c165304ca5600ce5138c1233615ab69)]
|
|
2979
3035
|
- fix profile section css overflow [nileshgulia1 - [`8fd2654`](https://github.com/eea/volto-eea-design-system/commit/8fd265413149f1b5e033dffa0fbcb5ef5ecad15f)]
|
|
3036
|
+
- Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`6051724`](https://github.com/eea/volto-eea-design-system/commit/6051724437a38675e659c797bb5586ef81286ec0)]
|
|
2980
3037
|
- fix warning related to proptype [nileshgulia1 - [`824b9be`](https://github.com/eea/volto-eea-design-system/commit/824b9beff77aae139882cd50a1d670a02ec6f723)]
|
|
2981
3038
|
- refactor breadcrumbs component, make it functional and customizable [nileshgulia1 - [`4ec374e`](https://github.com/eea/volto-eea-design-system/commit/4ec374e20565eb0a5aed0ff67a02cd6f77eba1f0)]
|
|
2982
3039
|
- removed override already present in card.less [ichim-david - [`93c4e5a`](https://github.com/eea/volto-eea-design-system/commit/93c4e5aac9cc85ff2cc6c04180f6655d5f5616dc)]
|
|
@@ -3545,6 +3602,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
3545
3602
|
- Refs #142010 - Optimize Volto-addons gitflow pipelines [valentinab25 - [`3af46d2`](https://github.com/eea/volto-eea-design-system/commit/3af46d2b14fa0b1ef44736f25b0f9ac93b23d18d)]
|
|
3546
3603
|
- Refs #140454 updated eea-design-system readme with extra info on package contents [David Ichim - [`d2efc3d`](https://github.com/eea/volto-eea-design-system/commit/d2efc3ddae7b91efc82cf3bce8fb8e42d696a780)]
|
|
3547
3604
|
- Refs #140454 add h1 to the list of elements that are max 800px and centered [David Ichim - [`7d3c30f`](https://github.com/eea/volto-eea-design-system/commit/7d3c30f409aa4cb43810839f8960589456cc1b2e)]
|
|
3605
|
+
- Add Sonarqube tag using ims-frontend addons list [EEA Jenkins - [`8d657d0`](https://github.com/eea/volto-eea-design-system/commit/8d657d056cde5163cfe90ac66bc973f55d82e5e9)]
|
|
3548
3606
|
### [0.1.0](https://github.com/eea/volto-eea-design-system/compare/0.0.1...0.1.0) - 17 November 2021
|
|
3549
3607
|
|
|
3550
3608
|
#### :hammer_and_wrench: Others
|
package/README.md
CHANGED
|
@@ -25,6 +25,10 @@ This package provides the following features:
|
|
|
25
25
|
2. A repository for the design system source files and mockups
|
|
26
26
|
3. A website to showcase the design system
|
|
27
27
|
|
|
28
|
+
## Upgrade
|
|
29
|
+
|
|
30
|
+
- Version `^1.60.0` requires `^eea.volto.policy@12.0` to allow customizing the header search box.
|
|
31
|
+
|
|
28
32
|
### Try the design system website
|
|
29
33
|
|
|
30
34
|
Checkout the docs found within the [website](https://github.com/eea/volto-eea-design-system/blob/develop/website/README.md) folder
|
package/package.json
CHANGED
package/src/ui/Header/Header.jsx
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
import React from 'react'; // , { Component }
|
|
7
7
|
import { useHistory } from 'react-router-dom';
|
|
8
|
+
import { useSelector } from 'react-redux';
|
|
8
9
|
import cx from 'classnames';
|
|
9
10
|
import { Container, Image, Menu, Grid, Dropdown } from 'semantic-ui-react'; // Dropdown,
|
|
10
11
|
|
|
11
12
|
import closeIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/close-line.svg';
|
|
12
|
-
import
|
|
13
|
+
import searchSVG from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/search-line.svg';
|
|
14
|
+
import aiSearchIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/ai-search.svg';
|
|
13
15
|
import burgerIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/menu-line.svg';
|
|
14
16
|
|
|
15
17
|
import HeaderSearchPopUp from './HeaderSearchPopUp';
|
|
@@ -159,6 +161,11 @@ const Main = ({
|
|
|
159
161
|
const [burger, setBurger] = React.useState('');
|
|
160
162
|
const searchInputRef = React.useRef(null);
|
|
161
163
|
const [isClient, setIsClient] = React.useState();
|
|
164
|
+
const headerSettings = useSelector(
|
|
165
|
+
(state) => state.eeaSettings?.data?.header || {},
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
const searchIcon = headerSettings.useAISearchIcon ? aiSearchIcon : searchSVG;
|
|
162
169
|
|
|
163
170
|
const itemsLayouts =
|
|
164
171
|
menuItemsLayouts || config.settings?.menuItemsLayouts || {};
|
|
@@ -2,9 +2,15 @@ import React from 'react';
|
|
|
2
2
|
import { createMemoryHistory } from 'history';
|
|
3
3
|
import { Router } from 'react-router-dom';
|
|
4
4
|
import { render, fireEvent, act } from '@testing-library/react';
|
|
5
|
+
import { Provider } from 'react-redux';
|
|
6
|
+
import { createStore } from 'redux';
|
|
5
7
|
import { Default } from './Header.stories';
|
|
6
8
|
import '@testing-library/jest-dom';
|
|
7
9
|
|
|
10
|
+
const mockStore = createStore(() => ({
|
|
11
|
+
eeaSettings: { data: { header: {} } },
|
|
12
|
+
}));
|
|
13
|
+
|
|
8
14
|
global.ResizeObserver = require('resize-observer-polyfill');
|
|
9
15
|
|
|
10
16
|
const history = createMemoryHistory();
|
|
@@ -129,9 +135,11 @@ describe('Default component', () => {
|
|
|
129
135
|
|
|
130
136
|
it('renders the default with correct number of cards', () => {
|
|
131
137
|
const { container, getByText } = render(
|
|
132
|
-
<
|
|
133
|
-
<
|
|
134
|
-
|
|
138
|
+
<Provider store={mockStore}>
|
|
139
|
+
<Router history={history}>
|
|
140
|
+
<Default {...args} />
|
|
141
|
+
</Router>
|
|
142
|
+
</Provider>,
|
|
135
143
|
);
|
|
136
144
|
const dropdown = container.querySelector('.official-union .content');
|
|
137
145
|
fireEvent.click(dropdown);
|
|
@@ -4,8 +4,29 @@ import '@testing-library/jest-dom';
|
|
|
4
4
|
|
|
5
5
|
import { createMemoryHistory } from 'history';
|
|
6
6
|
import { Router } from 'react-router-dom';
|
|
7
|
+
import { Provider } from 'react-redux';
|
|
7
8
|
import '@testing-library/jest-dom';
|
|
8
9
|
|
|
10
|
+
const mockState = {
|
|
11
|
+
eeaSettings: {
|
|
12
|
+
data: {
|
|
13
|
+
header: {
|
|
14
|
+
useAISearchIcon: false,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const mockStore = {
|
|
21
|
+
getState: () => mockState,
|
|
22
|
+
subscribe: () => () => {},
|
|
23
|
+
dispatch: () => {},
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const renderWithProvider = (component) => {
|
|
27
|
+
return render(<Provider store={mockStore}>{component}</Provider>);
|
|
28
|
+
};
|
|
29
|
+
|
|
9
30
|
// Mock subcomponents that pull in ESM helpers not transformed by Jest here
|
|
10
31
|
jest.doMock('./HeaderSearchPopUp', () => () => null);
|
|
11
32
|
jest.doMock('./HeaderMenuPopUp', () => () => null);
|
|
@@ -26,16 +47,16 @@ describe('Header component', () => {
|
|
|
26
47
|
});
|
|
27
48
|
|
|
28
49
|
it('renders without crashing', () => {
|
|
29
|
-
|
|
50
|
+
renderWithProvider(<Header />);
|
|
30
51
|
});
|
|
31
52
|
|
|
32
53
|
it('renders children correctly', () => {
|
|
33
|
-
|
|
54
|
+
renderWithProvider(<Header>Test Children</Header>);
|
|
34
55
|
expect(screen.getByText('Test Children')).toBeInTheDocument();
|
|
35
56
|
});
|
|
36
57
|
|
|
37
58
|
it('renders without crashing', () => {
|
|
38
|
-
|
|
59
|
+
renderWithProvider(
|
|
39
60
|
<Header>
|
|
40
61
|
<Header.TopHeader>
|
|
41
62
|
<Header.TopItem>
|
|
@@ -83,7 +104,7 @@ describe('Header component', () => {
|
|
|
83
104
|
});
|
|
84
105
|
|
|
85
106
|
it('renders without crashing', () => {
|
|
86
|
-
|
|
107
|
+
renderWithProvider(
|
|
87
108
|
<Header>
|
|
88
109
|
<Header.TopHeader>
|
|
89
110
|
<Header.TopItem>
|
|
@@ -129,7 +150,7 @@ describe('Header component', () => {
|
|
|
129
150
|
});
|
|
130
151
|
|
|
131
152
|
it('renders without crashing', () => {
|
|
132
|
-
const { getByText, getAllByText, container } =
|
|
153
|
+
const { getByText, getAllByText, container } = renderWithProvider(
|
|
133
154
|
<Router history={history}>
|
|
134
155
|
<Header>
|
|
135
156
|
<Header.TopHeader>
|
|
@@ -427,7 +448,7 @@ test('marks only the best-matching top-level item active (sibling collision case
|
|
|
427
448
|
},
|
|
428
449
|
];
|
|
429
450
|
|
|
430
|
-
const { container, getByText } =
|
|
451
|
+
const { container, getByText } = renderWithProvider(
|
|
431
452
|
<Router history={history}>
|
|
432
453
|
<Header>
|
|
433
454
|
<Header.Main
|
|
@@ -476,7 +497,7 @@ test('exact match wins: parent item active only on its own URL', async () => {
|
|
|
476
497
|
},
|
|
477
498
|
];
|
|
478
499
|
|
|
479
|
-
const { container, getByText } =
|
|
500
|
+
const { container, getByText } = renderWithProvider(
|
|
480
501
|
<Router history={history}>
|
|
481
502
|
<Header>
|
|
482
503
|
<Header.Main
|
|
@@ -515,7 +536,7 @@ test('mobile burger menu interactions', async () => {
|
|
|
515
536
|
},
|
|
516
537
|
];
|
|
517
538
|
|
|
518
|
-
const { container } =
|
|
539
|
+
const { container } = renderWithProvider(
|
|
519
540
|
<Router history={history}>
|
|
520
541
|
<Header>
|
|
521
542
|
<Header.Main
|
|
@@ -559,7 +580,7 @@ test('search interactions and state management', async () => {
|
|
|
559
580
|
},
|
|
560
581
|
];
|
|
561
582
|
|
|
562
|
-
const { container } =
|
|
583
|
+
const { container } = renderWithProvider(
|
|
563
584
|
<Router history={history}>
|
|
564
585
|
<Header>
|
|
565
586
|
<Header.Main
|
|
@@ -603,7 +624,7 @@ test('escape key handling', async () => {
|
|
|
603
624
|
},
|
|
604
625
|
];
|
|
605
626
|
|
|
606
|
-
const { container } =
|
|
627
|
+
const { container } = renderWithProvider(
|
|
607
628
|
<Router history={history}>
|
|
608
629
|
<Header>
|
|
609
630
|
<Header.Main
|
|
@@ -650,7 +671,7 @@ test('multilingual pathname handling', async () => {
|
|
|
650
671
|
},
|
|
651
672
|
];
|
|
652
673
|
|
|
653
|
-
const { rerender } =
|
|
674
|
+
const { rerender } = renderWithProvider(
|
|
654
675
|
<Router history={history}>
|
|
655
676
|
<Header>
|
|
656
677
|
<Header.Main
|
|
@@ -674,25 +695,27 @@ test('multilingual pathname handling', async () => {
|
|
|
674
695
|
|
|
675
696
|
// Test with empty multilingual path
|
|
676
697
|
rerender(
|
|
677
|
-
<
|
|
678
|
-
<
|
|
679
|
-
<Header
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
{item.title}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
{item.
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
698
|
+
<Provider store={mockStore}>
|
|
699
|
+
<Router history={history}>
|
|
700
|
+
<Header>
|
|
701
|
+
<Header.Main
|
|
702
|
+
pathname="/en/"
|
|
703
|
+
isMultilingual={true}
|
|
704
|
+
menuItems={menuItems}
|
|
705
|
+
renderGlobalMenuItem={(item) => (
|
|
706
|
+
<a href={item.url} title={item.title}>
|
|
707
|
+
{item.title}
|
|
708
|
+
</a>
|
|
709
|
+
)}
|
|
710
|
+
renderMenuItem={(item, options) => (
|
|
711
|
+
<a href={item.url || '/'} {...(options || {})}>
|
|
712
|
+
{item.title}
|
|
713
|
+
</a>
|
|
714
|
+
)}
|
|
715
|
+
/>
|
|
716
|
+
</Header>
|
|
717
|
+
</Router>
|
|
718
|
+
</Provider>,
|
|
696
719
|
);
|
|
697
720
|
});
|
|
698
721
|
|
|
@@ -707,11 +730,11 @@ test('menu click outside behavior with different active states', async () => {
|
|
|
707
730
|
},
|
|
708
731
|
];
|
|
709
732
|
|
|
710
|
-
const { container } =
|
|
733
|
+
const { container } = renderWithProvider(
|
|
711
734
|
<Router history={history}>
|
|
712
735
|
<Header>
|
|
713
736
|
<Header.Main
|
|
714
|
-
pathname="/
|
|
737
|
+
pathname="/test"
|
|
715
738
|
menuItems={menuItems}
|
|
716
739
|
renderGlobalMenuItem={(item) => (
|
|
717
740
|
<a href={item.url} title={item.title}>
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import isArray from 'lodash/isArray';
|
|
3
|
+
import isPlainObject from 'lodash/isPlainObject';
|
|
4
|
+
import { useSelector } from 'react-redux';
|
|
5
|
+
import { Container, Input, List, Image } from 'semantic-ui-react';
|
|
3
6
|
import { withRouter, Link } from 'react-router-dom';
|
|
4
7
|
import { useClickOutside } from '@eeacms/volto-eea-design-system/helpers';
|
|
5
8
|
import { handleEnterKeyPress } from '@eeacms/volto-eea-design-system/helpers';
|
|
6
9
|
|
|
10
|
+
import searchSVG from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/search-line.svg';
|
|
11
|
+
import aiSearchIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/ai-search.svg';
|
|
12
|
+
|
|
7
13
|
const getRandomItems = (arr, max) => {
|
|
8
14
|
return (
|
|
9
15
|
arr?.slice(0, max).map(function () {
|
|
@@ -12,6 +18,51 @@ const getRandomItems = (arr, max) => {
|
|
|
12
18
|
);
|
|
13
19
|
};
|
|
14
20
|
|
|
21
|
+
const getSearchInput = (config, location) => {
|
|
22
|
+
return (
|
|
23
|
+
config.filter(
|
|
24
|
+
(v) =>
|
|
25
|
+
v.type === 'search-input' &&
|
|
26
|
+
location.pathname.match(v.matchpath ? v.matchpath : v.path),
|
|
27
|
+
)[0] ||
|
|
28
|
+
config.filter((v) => v.type === 'search-input')[0] ||
|
|
29
|
+
{}
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const serializeAction = (action, location) => {
|
|
34
|
+
if (action.type === 'info' && isArray(action.content)) {
|
|
35
|
+
const matchedContent =
|
|
36
|
+
action.content.filter((c) => {
|
|
37
|
+
const path = c.matchpath ? c.matchpath : c.path;
|
|
38
|
+
return path && location.pathname.match(path);
|
|
39
|
+
})[0] || action.content[0];
|
|
40
|
+
return {
|
|
41
|
+
type: 'info',
|
|
42
|
+
content: (isPlainObject(matchedContent) && matchedContent.text) || null,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return action;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
function ActionItem({ action }) {
|
|
49
|
+
if (action.type === 'info') {
|
|
50
|
+
return <div>{action.content}</div>;
|
|
51
|
+
}
|
|
52
|
+
if (action.type === 'button-link') {
|
|
53
|
+
return (
|
|
54
|
+
<a
|
|
55
|
+
href={action.url}
|
|
56
|
+
className="ui button white inverted"
|
|
57
|
+
title={action.title}
|
|
58
|
+
>
|
|
59
|
+
{action.title}
|
|
60
|
+
</a>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
15
66
|
function HeaderSearchPopUp({
|
|
16
67
|
history,
|
|
17
68
|
location,
|
|
@@ -21,27 +72,31 @@ function HeaderSearchPopUp({
|
|
|
21
72
|
triggerRefs = [],
|
|
22
73
|
}) {
|
|
23
74
|
const nodeRef = React.useRef();
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
75
|
+
|
|
76
|
+
const searchInput = getSearchInput(headerSearchBox, location);
|
|
77
|
+
const actions =
|
|
78
|
+
headerSearchBox
|
|
79
|
+
.filter((v) => ['info', 'button-link'].includes(v.type))
|
|
80
|
+
.map((v) => serializeAction(v, location)) || [];
|
|
30
81
|
|
|
31
82
|
const {
|
|
32
83
|
path = '',
|
|
33
|
-
buttonTitle,
|
|
34
|
-
buttonUrl,
|
|
35
|
-
description,
|
|
36
84
|
placeholder = 'Search',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
85
|
+
suggestionsTitle,
|
|
86
|
+
maxToShow,
|
|
87
|
+
suggestions,
|
|
88
|
+
} = searchInput;
|
|
40
89
|
|
|
41
90
|
const [visibleSuggestions, setVisibileSuggestions] = React.useState(
|
|
42
91
|
getRandomItems(suggestions, maxToShow),
|
|
43
92
|
);
|
|
44
93
|
|
|
94
|
+
const headerSettings = useSelector(
|
|
95
|
+
(state) => state.eeaSettings?.data?.header || {},
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
const searchIcon = headerSettings.useAISearchIcon ? aiSearchIcon : searchSVG;
|
|
99
|
+
|
|
45
100
|
useEffect(() => {
|
|
46
101
|
setVisibileSuggestions(getRandomItems(suggestions, maxToShow));
|
|
47
102
|
}, [maxToShow, suggestions]);
|
|
@@ -77,18 +132,27 @@ function HeaderSearchPopUp({
|
|
|
77
132
|
ref={searchInputRef}
|
|
78
133
|
className="icon search"
|
|
79
134
|
action={{
|
|
80
|
-
className: 'icon
|
|
135
|
+
className: 'icon',
|
|
81
136
|
'aria-label': 'Submit search',
|
|
82
137
|
onClick: onSubmit,
|
|
83
138
|
onKeyDown: (event) => {
|
|
84
139
|
handleEnterKeyPress(event, onSubmit);
|
|
85
140
|
},
|
|
141
|
+
children: (
|
|
142
|
+
<Image
|
|
143
|
+
src={searchIcon}
|
|
144
|
+
alt="Global search"
|
|
145
|
+
height={45}
|
|
146
|
+
width={45}
|
|
147
|
+
className="header-search-icon"
|
|
148
|
+
/>
|
|
149
|
+
),
|
|
86
150
|
}}
|
|
87
151
|
placeholder={placeholder}
|
|
88
152
|
fluid
|
|
89
153
|
/>
|
|
90
154
|
</form>
|
|
91
|
-
{
|
|
155
|
+
{suggestions?.length > 0 && (
|
|
92
156
|
<div className="search-suggestions">
|
|
93
157
|
{suggestionsTitle && <h4>{suggestionsTitle}</h4>}
|
|
94
158
|
|
|
@@ -109,17 +173,12 @@ function HeaderSearchPopUp({
|
|
|
109
173
|
</div>
|
|
110
174
|
)}
|
|
111
175
|
</Container>
|
|
112
|
-
{
|
|
176
|
+
{actions?.length > 0 && (
|
|
113
177
|
<div className="advanced-search">
|
|
114
178
|
<Container>
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
className="ui button white inverted"
|
|
119
|
-
title="Advanced search"
|
|
120
|
-
>
|
|
121
|
-
{buttonTitle}
|
|
122
|
-
</a>
|
|
179
|
+
{actions.map((action, i) => (
|
|
180
|
+
<ActionItem key={i} action={action} />
|
|
181
|
+
))}
|
|
123
182
|
</Container>
|
|
124
183
|
</div>
|
|
125
184
|
)}
|
|
@@ -2,41 +2,53 @@ import React from 'react';
|
|
|
2
2
|
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
3
|
import { createMemoryHistory } from 'history';
|
|
4
4
|
import { Router } from 'react-router-dom';
|
|
5
|
+
import { Provider } from 'react-redux';
|
|
5
6
|
import HeaderSearchPopUp from './HeaderSearchPopUp';
|
|
6
7
|
import '@testing-library/jest-dom';
|
|
7
8
|
|
|
9
|
+
const mockState = {
|
|
10
|
+
eeaSettings: {
|
|
11
|
+
data: {
|
|
12
|
+
header: {
|
|
13
|
+
useAISearchIcon: false,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const mockStore = {
|
|
20
|
+
getState: () => mockState,
|
|
21
|
+
subscribe: () => () => {},
|
|
22
|
+
dispatch: () => {},
|
|
23
|
+
};
|
|
24
|
+
|
|
8
25
|
describe('HeaderSearchPopUp', () => {
|
|
9
26
|
let history;
|
|
10
27
|
const mockOnClose = jest.fn();
|
|
11
28
|
const sampleHeaderSearchBox = [
|
|
12
29
|
{
|
|
30
|
+
type: 'search-input',
|
|
13
31
|
path: '/search',
|
|
14
|
-
buttonTitle: 'Advanced Search',
|
|
15
|
-
buttonUrl: '/advanced-search',
|
|
16
|
-
description: 'Sample description',
|
|
17
32
|
placeholder: 'Search',
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
suggestionsTitle: 'Suggestions Title',
|
|
34
|
+
suggestions: ['suggestion 1', 'suggestion 2', 'suggestion 3'],
|
|
35
|
+
maxToShow: 3,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
type: 'button-link',
|
|
39
|
+
title: 'Advanced Search',
|
|
40
|
+
url: '/advanced-search',
|
|
24
41
|
},
|
|
25
42
|
];
|
|
26
43
|
|
|
27
44
|
const sampleHeaderSearchBoxWithMatchpath = [
|
|
28
45
|
{
|
|
46
|
+
type: 'search-input',
|
|
29
47
|
matchpath: '/search',
|
|
30
|
-
buttonTitle: 'Advanced Search',
|
|
31
|
-
buttonUrl: undefined,
|
|
32
|
-
description: 'Sample description',
|
|
33
48
|
placeholder: 'Search',
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
maxToShow: 3,
|
|
38
|
-
},
|
|
39
|
-
isDefault: true,
|
|
49
|
+
suggestionsTitle: 'Suggestions Title',
|
|
50
|
+
suggestions: ['suggestion 1', 'suggestion 2', 'suggestion 3'],
|
|
51
|
+
maxToShow: 3,
|
|
40
52
|
},
|
|
41
53
|
];
|
|
42
54
|
|
|
@@ -50,26 +62,30 @@ describe('HeaderSearchPopUp', () => {
|
|
|
50
62
|
|
|
51
63
|
it('should render HeaderSearchPopUp', () => {
|
|
52
64
|
render(
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
<Provider store={mockStore}>
|
|
66
|
+
<Router history={history}>
|
|
67
|
+
<HeaderSearchPopUp
|
|
68
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
69
|
+
onClose={mockOnClose}
|
|
70
|
+
triggerRefs={[]}
|
|
71
|
+
/>
|
|
72
|
+
</Router>
|
|
73
|
+
</Provider>,
|
|
60
74
|
);
|
|
61
75
|
expect(screen.getByPlaceholderText('Search')).toBeInTheDocument();
|
|
62
76
|
});
|
|
63
77
|
|
|
64
78
|
it('should update search text on change', () => {
|
|
65
79
|
render(
|
|
66
|
-
<
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
<Provider store={mockStore}>
|
|
81
|
+
<Router history={history}>
|
|
82
|
+
<HeaderSearchPopUp
|
|
83
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
84
|
+
onClose={mockOnClose}
|
|
85
|
+
triggerRefs={[]}
|
|
86
|
+
/>
|
|
87
|
+
</Router>
|
|
88
|
+
</Provider>,
|
|
73
89
|
);
|
|
74
90
|
const input = screen.getByPlaceholderText('Search');
|
|
75
91
|
fireEvent.change(input, { target: { value: 'New text' } });
|
|
@@ -80,32 +96,35 @@ describe('HeaderSearchPopUp', () => {
|
|
|
80
96
|
window.searchContext = { resetSearch: jest.fn() };
|
|
81
97
|
|
|
82
98
|
const { container } = render(
|
|
83
|
-
<
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
99
|
+
<Provider store={mockStore}>
|
|
100
|
+
<Router history={history}>
|
|
101
|
+
<HeaderSearchPopUp
|
|
102
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
103
|
+
onClose={mockOnClose}
|
|
104
|
+
triggerRefs={[]}
|
|
105
|
+
/>
|
|
106
|
+
</Router>
|
|
107
|
+
</Provider>,
|
|
90
108
|
);
|
|
91
109
|
const input = screen.getByPlaceholderText('Search');
|
|
92
110
|
fireEvent.change(input, { target: { value: 'Search text' } });
|
|
93
111
|
fireEvent.submit(container.querySelector('form'));
|
|
94
112
|
fireEvent.keyDown(input, { key: 'Enter', code: 'Enter' });
|
|
95
113
|
expect(history.location.pathname).toBe('/search');
|
|
96
|
-
// expect(history.location.search).toBe('?q=Search text');
|
|
97
114
|
});
|
|
98
115
|
|
|
99
116
|
it('should navigate to the suggestion when a suggestion is clicked', () => {
|
|
100
117
|
window.searchContext = { resetSearch: jest.fn() };
|
|
101
118
|
|
|
102
119
|
render(
|
|
103
|
-
<
|
|
104
|
-
<
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
120
|
+
<Provider store={mockStore}>
|
|
121
|
+
<Router history={history}>
|
|
122
|
+
<HeaderSearchPopUp
|
|
123
|
+
headerSearchBox={sampleHeaderSearchBoxWithMatchpath}
|
|
124
|
+
onClose={mockOnClose}
|
|
125
|
+
/>
|
|
126
|
+
</Router>
|
|
127
|
+
</Provider>,
|
|
109
128
|
);
|
|
110
129
|
fireEvent.click(screen.getByText('suggestion 1'));
|
|
111
130
|
expect(history.location.pathname).toBe('/');
|
|
@@ -114,13 +133,15 @@ describe('HeaderSearchPopUp', () => {
|
|
|
114
133
|
|
|
115
134
|
it('should handle keydown events on search action button', () => {
|
|
116
135
|
const { container } = render(
|
|
117
|
-
<
|
|
118
|
-
<
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
136
|
+
<Provider store={mockStore}>
|
|
137
|
+
<Router history={history}>
|
|
138
|
+
<HeaderSearchPopUp
|
|
139
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
140
|
+
onClose={mockOnClose}
|
|
141
|
+
triggerRefs={[]}
|
|
142
|
+
/>
|
|
143
|
+
</Router>
|
|
144
|
+
</Provider>,
|
|
124
145
|
);
|
|
125
146
|
|
|
126
147
|
const searchActionButton = container.querySelector(
|
|
@@ -128,25 +149,23 @@ describe('HeaderSearchPopUp', () => {
|
|
|
128
149
|
);
|
|
129
150
|
expect(searchActionButton).toBeInTheDocument();
|
|
130
151
|
|
|
131
|
-
// Test Enter key press on search action button
|
|
132
152
|
fireEvent.keyDown(searchActionButton, { key: 'Enter', code: 'Enter' });
|
|
133
|
-
|
|
134
|
-
// Test other key press (should not trigger action)
|
|
135
153
|
fireEvent.keyDown(searchActionButton, { key: 'Tab', code: 'Tab' });
|
|
136
154
|
});
|
|
137
155
|
|
|
138
156
|
it('should handle search without searchContext', () => {
|
|
139
|
-
// Remove searchContext to test the fallback
|
|
140
157
|
delete window.searchContext;
|
|
141
158
|
|
|
142
159
|
const { container } = render(
|
|
143
|
-
<
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
160
|
+
<Provider store={mockStore}>
|
|
161
|
+
<Router history={history}>
|
|
162
|
+
<HeaderSearchPopUp
|
|
163
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
164
|
+
onClose={mockOnClose}
|
|
165
|
+
triggerRefs={[]}
|
|
166
|
+
/>
|
|
167
|
+
</Router>
|
|
168
|
+
</Provider>,
|
|
150
169
|
);
|
|
151
170
|
|
|
152
171
|
const input = screen.getByPlaceholderText('Search');
|
|
@@ -157,16 +176,17 @@ describe('HeaderSearchPopUp', () => {
|
|
|
157
176
|
});
|
|
158
177
|
|
|
159
178
|
it('should handle suggestion click without searchContext', () => {
|
|
160
|
-
// Remove searchContext to test the fallback
|
|
161
179
|
delete window.searchContext;
|
|
162
180
|
|
|
163
181
|
render(
|
|
164
|
-
<
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
<Provider store={mockStore}>
|
|
183
|
+
<Router history={history}>
|
|
184
|
+
<HeaderSearchPopUp
|
|
185
|
+
headerSearchBox={sampleHeaderSearchBox}
|
|
186
|
+
onClose={mockOnClose}
|
|
187
|
+
/>
|
|
188
|
+
</Router>
|
|
189
|
+
</Provider>,
|
|
170
190
|
);
|
|
171
191
|
|
|
172
192
|
fireEvent.click(screen.getByText('suggestion 1'));
|
|
@@ -176,23 +196,27 @@ describe('HeaderSearchPopUp', () => {
|
|
|
176
196
|
it('should render without search suggestions', () => {
|
|
177
197
|
const headerSearchBoxNoSuggestions = [
|
|
178
198
|
{
|
|
199
|
+
type: 'search-input',
|
|
179
200
|
path: '/search',
|
|
180
|
-
buttonTitle: 'Advanced Search',
|
|
181
|
-
buttonUrl: '/advanced-search',
|
|
182
|
-
description: 'Sample description',
|
|
183
201
|
placeholder: 'Search',
|
|
184
|
-
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'button-link',
|
|
205
|
+
title: 'Advanced Search',
|
|
206
|
+
url: '/advanced-search',
|
|
185
207
|
},
|
|
186
208
|
];
|
|
187
209
|
|
|
188
210
|
render(
|
|
189
|
-
<
|
|
190
|
-
<
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
211
|
+
<Provider store={mockStore}>
|
|
212
|
+
<Router history={history}>
|
|
213
|
+
<HeaderSearchPopUp
|
|
214
|
+
headerSearchBox={headerSearchBoxNoSuggestions}
|
|
215
|
+
onClose={mockOnClose}
|
|
216
|
+
triggerRefs={[]}
|
|
217
|
+
/>
|
|
218
|
+
</Router>
|
|
219
|
+
</Provider>,
|
|
196
220
|
);
|
|
197
221
|
|
|
198
222
|
expect(screen.getByPlaceholderText('Search')).toBeInTheDocument();
|
|
@@ -202,28 +226,25 @@ describe('HeaderSearchPopUp', () => {
|
|
|
202
226
|
it('should render with empty suggestions array', () => {
|
|
203
227
|
const headerSearchBoxEmptySuggestions = [
|
|
204
228
|
{
|
|
229
|
+
type: 'search-input',
|
|
205
230
|
path: '/search',
|
|
206
|
-
buttonTitle: 'Advanced Search',
|
|
207
|
-
buttonUrl: '/advanced-search',
|
|
208
|
-
description: 'Sample description',
|
|
209
231
|
placeholder: 'Search',
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
maxToShow: 3,
|
|
214
|
-
},
|
|
215
|
-
isDefault: true,
|
|
232
|
+
suggestionsTitle: 'Suggestions Title',
|
|
233
|
+
suggestions: [],
|
|
234
|
+
maxToShow: 3,
|
|
216
235
|
},
|
|
217
236
|
];
|
|
218
237
|
|
|
219
238
|
render(
|
|
220
|
-
<
|
|
221
|
-
<
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
239
|
+
<Provider store={mockStore}>
|
|
240
|
+
<Router history={history}>
|
|
241
|
+
<HeaderSearchPopUp
|
|
242
|
+
headerSearchBox={headerSearchBoxEmptySuggestions}
|
|
243
|
+
onClose={mockOnClose}
|
|
244
|
+
triggerRefs={[]}
|
|
245
|
+
/>
|
|
246
|
+
</Router>
|
|
247
|
+
</Provider>,
|
|
227
248
|
);
|
|
228
249
|
|
|
229
250
|
expect(screen.getByPlaceholderText('Search')).toBeInTheDocument();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg fill="currentColor" height="20" viewBox="0 -960 960 960" width="20" version="1.1"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
|
4
|
+
<path
|
|
5
|
+
d="m 743.91749,-527.97997 q -1.19965,0 -9.59723,-7.19791 -19.19445,-73.17883 -72.57899,-126.56339 -53.38456,-53.38454 -126.56339,-72.57899 -2.39931,-1.19966 -7.19791,-9.59723 0,-2.3993 7.19791,-9.59722 73.17883,-19.19444 126.56339,-72.579 53.38454,-53.38456 72.57899,-126.56338 1.19966,-2.39931 9.59723,-7.19792 2.3993,0 9.59722,7.19792 20.39409,73.17882 73.17882,126.56338 52.78474,53.38456 125.96356,72.579 2.39931,0 7.19792,9.59722 0,1.19965 -7.19792,9.59723 -73.17882,19.19445 -126.56338,72.57899 -53.38456,53.38456 -72.579,126.56339 0,2.39931 -9.59722,7.19791 z M 796.70222,-0.13268868 494.38968,-302.44522 q -35.98958,28.79167 -82.77604,45.58681 -46.78647,16.79514 -99.5712,16.79514 -130.76217,0 -221.335957,-90.5738 -90.57379432,-90.57378 -90.57379432,-221.33595 0,-130.76217 90.57379432,-221.33597 90.573787,-90.57379 221.335957,-90.57379 34.78993,0 68.38021,7.19792 33.59029,7.19792 63.58161,21.59376 l -11.99653,104.36979 q -26.39236,-17.99479 -56.38368,-27.59202 -29.99133,-9.59722 -63.58161,-9.59722 -89.97396,0 -152.95574,62.98177 -62.981779,62.98179 -62.981779,152.95576 0,89.97396 62.981779,152.95574 62.98178,62.98178 152.95574,62.98178 79.1771,0 138.55991,-50.98526 59.38283,-50.98523 73.77866,-134.96094 l 86.375,59.98264 q -8.39756,26.39236 -20.99392,49.18577 -12.59636,22.7934 -28.19184,43.18751 l 302.31253,302.312529 z"
|
|
6
|
+
fill="rgba(255,255,255,1)" style="stroke-width:1" />
|
|
6
7
|
</svg>
|