@kitconcept/volto-light-theme 2.0.0 → 2.1.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.
- package/.github/workflows/acceptance.yml +2 -1
- package/.github/workflows/code.yml +2 -1
- package/.github/workflows/unit.yml +2 -1
- package/CHANGELOG.md +30 -0
- package/locales/de/LC_MESSAGES/volto.po +2 -2
- package/locales/en/LC_MESSAGES/volto.po +1 -1
- package/locales/pt_BR/volto.po +317 -0
- package/locales/volto.pot +2 -2
- package/package.json +1 -1
- package/src/components/Blocks/Listing/ImageGallery.jsx +126 -0
- package/src/components/MobileNavigation/MobileNavigation.jsx +123 -89
- package/src/components/MobileNavigation/MobileToolsFooter.jsx +10 -0
- package/src/components/Navigation/Navigation.jsx +35 -41
- package/src/customizations/volto/components/manage/Blocks/Listing/ImageGallery.jsx +8 -0
- package/src/icons/back-down.svg +8 -0
- package/src/icons/fullscreen.svg +7 -0
- package/src/icons/left-key.svg +4 -0
- package/src/icons/pause.svg +6 -0
- package/src/icons/play.svg +4 -0
- package/src/icons/right-key.svg +4 -0
- package/src/index.js +5 -0
- package/src/theme/_content.scss +1 -1
- package/src/theme/_fonts.scss +317 -0
- package/src/theme/_header.scss +32 -16
- package/src/theme/_layout.scss +7 -24
- package/src/theme/_sitemap.scss +25 -0
- package/src/theme/_typo-custom.scss +0 -73
- package/src/theme/_typography.scss +1 -245
- package/src/theme/_variables.scss +14 -0
- package/src/theme/blocks/_grid.scss +8 -0
- package/src/theme/blocks/_image.scss +1 -1
- package/src/theme/blocks/_listing.scss +111 -5
- package/src/theme/blocks/_teaser.scss +1 -4
- package/src/theme/main.scss +5 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: Acceptance tests
|
|
2
|
-
on: [push]
|
|
2
|
+
on: [push, pull_request]
|
|
3
3
|
|
|
4
4
|
env:
|
|
5
5
|
ADDON_NAME: "@kitconcept/volto-light-theme"
|
|
@@ -9,6 +9,7 @@ env:
|
|
|
9
9
|
jobs:
|
|
10
10
|
|
|
11
11
|
acceptance:
|
|
12
|
+
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
|
12
13
|
runs-on: ubuntu-latest
|
|
13
14
|
steps:
|
|
14
15
|
- name: Checkout
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: Code analysis checks
|
|
2
|
-
on: [push]
|
|
2
|
+
on: [push, pull_request]
|
|
3
3
|
jobs:
|
|
4
4
|
codeanalysis:
|
|
5
|
+
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
|
5
6
|
runs-on: ubuntu-latest
|
|
6
7
|
strategy:
|
|
7
8
|
matrix:
|
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,36 @@
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## 2.1.0 (2023-12-13)
|
|
12
|
+
|
|
13
|
+
### Feature
|
|
14
|
+
|
|
15
|
+
- Added Image Gallery Listing Metadata @robgietema [#127](https://github.com/kitconcept/volto-light-theme/pull/127)
|
|
16
|
+
- Add Brazilian Portuguese translation [@ericof] [#294](https://github.com/kitconcept/volto-light-theme/pull/294)
|
|
17
|
+
|
|
18
|
+
### Bugfix
|
|
19
|
+
|
|
20
|
+
- Also clean up Navigation PropTypes @fredvd [#272b](https://github.com/kitconcept/volto-light-theme/pull/272b)
|
|
21
|
+
- Fix css of External link icon indicator @iRohitSingh [#91](https://github.com/kitconcept/volto-light-theme/pull/91)
|
|
22
|
+
- Fix css of Sitemap @iRohitSingh [#209](https://github.com/kitconcept/volto-light-theme/pull/209)
|
|
23
|
+
- Fixed css errors in the header and image scss files @ichim-david
|
|
24
|
+
All the mobile menu items are now links @ichim-david
|
|
25
|
+
Close buttons are now tabbable @ichim-david
|
|
26
|
+
Close menu when hitting the escape key @ichim-david [#264](https://github.com/kitconcept/volto-light-theme/pull/264)
|
|
27
|
+
- Use only one set of values for container widths which can be modified from variables @ichim-david [#265](https://github.com/kitconcept/volto-light-theme/pull/265)
|
|
28
|
+
- Update contentMetadataTagsImageField settings to use preview_image field. @iRohitSingh [#274](https://github.com/kitconcept/volto-light-theme/pull/274)
|
|
29
|
+
- Removed the "overview" React Message from Fat Menu @Molochem [#276](https://github.com/kitconcept/volto-light-theme/pull/276)
|
|
30
|
+
- Moved custom font loading to a separate fonts.scss @ichim-david
|
|
31
|
+
Added variable definitions for loading the cms font instead of hard-coding to Metropolis @ichim-david [#279](https://github.com/kitconcept/volto-light-theme/pull/279)
|
|
32
|
+
- Minor style fixes for hamburger menu icon @danalvrz [#281](https://github.com/kitconcept/volto-light-theme/pull/281)
|
|
33
|
+
- Don't force aspect ratio for the Image content type view @iRohitSingh [#293](https://github.com/kitconcept/volto-light-theme/pull/293)
|
|
34
|
+
|
|
35
|
+
### Internal
|
|
36
|
+
|
|
37
|
+
- Run CI workflows for external PRs. @davisagli [#271](https://github.com/kitconcept/volto-light-theme/pull/271)
|
|
38
|
+
- Remove old code from navigation component @steffenri [#272](https://github.com/kitconcept/volto-light-theme/pull/272)
|
|
39
|
+
- Remove Hero Block @iRohitSingh [#278](https://github.com/kitconcept/volto-light-theme/pull/278)
|
|
40
|
+
|
|
11
41
|
## 2.0.0 (2023-11-16)
|
|
12
42
|
|
|
13
43
|
### Breaking
|
|
@@ -53,6 +53,7 @@ msgid "Center"
|
|
|
53
53
|
msgstr "Mittig"
|
|
54
54
|
|
|
55
55
|
#: components/MobileNavigation/MobileNavigation
|
|
56
|
+
#: components/Navigation/Navigation
|
|
56
57
|
# defaultMessage: Close menu
|
|
57
58
|
msgid "Close menu"
|
|
58
59
|
msgstr "Menü schließen"
|
|
@@ -164,10 +165,9 @@ msgid "Open menu"
|
|
|
164
165
|
msgstr "Menü öffnen"
|
|
165
166
|
|
|
166
167
|
#: components/MobileNavigation/MobileNavigation
|
|
167
|
-
#: components/Navigation/Navigation
|
|
168
168
|
# defaultMessage: Overview
|
|
169
169
|
msgid "Overview"
|
|
170
|
-
msgstr ""
|
|
170
|
+
msgstr "Übersicht"
|
|
171
171
|
|
|
172
172
|
#: components/Theme/EventView
|
|
173
173
|
# defaultMessage: Phone
|
|
@@ -47,6 +47,7 @@ msgid "Center"
|
|
|
47
47
|
msgstr ""
|
|
48
48
|
|
|
49
49
|
#: components/MobileNavigation/MobileNavigation
|
|
50
|
+
#: components/Navigation/Navigation
|
|
50
51
|
# defaultMessage: Close menu
|
|
51
52
|
msgid "Close menu"
|
|
52
53
|
msgstr ""
|
|
@@ -158,7 +159,6 @@ msgid "Open menu"
|
|
|
158
159
|
msgstr ""
|
|
159
160
|
|
|
160
161
|
#: components/MobileNavigation/MobileNavigation
|
|
161
|
-
#: components/Navigation/Navigation
|
|
162
162
|
# defaultMessage: Overview
|
|
163
163
|
msgid "Overview"
|
|
164
164
|
msgstr ""
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: \n"
|
|
4
|
+
"Report-Msgid-Bugs-To: \n"
|
|
5
|
+
"POT-Creation-Date: \n"
|
|
6
|
+
"PO-Revision-Date: \n"
|
|
7
|
+
"Last-Translator: \n"
|
|
8
|
+
"Language: \n"
|
|
9
|
+
"Language-Team: \n"
|
|
10
|
+
"Content-Type: \n"
|
|
11
|
+
"Content-Transfer-Encoding: \n"
|
|
12
|
+
"Plural-Forms: \n"
|
|
13
|
+
|
|
14
|
+
#: components/MobileNavigation/MobileNavigation
|
|
15
|
+
# defaultMessage: Back
|
|
16
|
+
msgid "Back"
|
|
17
|
+
msgstr "Voltar"
|
|
18
|
+
|
|
19
|
+
#: components/Blocks/schema
|
|
20
|
+
# defaultMessage: Background color
|
|
21
|
+
msgid "Background color"
|
|
22
|
+
msgstr "Cor de fundo"
|
|
23
|
+
|
|
24
|
+
#: components/Blocks/Button/schema
|
|
25
|
+
# defaultMessage: Block Width
|
|
26
|
+
msgid "Block Width"
|
|
27
|
+
msgstr "Largura do bloco"
|
|
28
|
+
|
|
29
|
+
#: components/Breadcrumbs/Breadcrumbs
|
|
30
|
+
# defaultMessage: Breadcrumbs
|
|
31
|
+
msgid "Breadcrumbs"
|
|
32
|
+
msgstr "Breadcrumbs"
|
|
33
|
+
|
|
34
|
+
#: components/Blocks/Image/Edit
|
|
35
|
+
# defaultMessage: Browse the site, drop an image, or type an URL
|
|
36
|
+
msgid "Browse the site, drop an image, or type an URL"
|
|
37
|
+
msgstr "Encontre no site, envie uma imagem ou cole uma URL"
|
|
38
|
+
|
|
39
|
+
#: components/Blocks/Slider/schema
|
|
40
|
+
# defaultMessage: Button text
|
|
41
|
+
msgid "Button text"
|
|
42
|
+
msgstr "Texto do botão"
|
|
43
|
+
|
|
44
|
+
#: components/Widgets/AlignWidget
|
|
45
|
+
# defaultMessage: Center
|
|
46
|
+
msgid "Center"
|
|
47
|
+
msgstr "Centralizado"
|
|
48
|
+
|
|
49
|
+
#: components/MobileNavigation/MobileNavigation
|
|
50
|
+
#: components/Navigation/Navigation
|
|
51
|
+
# defaultMessage: Close menu
|
|
52
|
+
msgid "Close menu"
|
|
53
|
+
msgstr "Fechar menu"
|
|
54
|
+
|
|
55
|
+
#: components/Theme/EventView
|
|
56
|
+
# defaultMessage: Contact
|
|
57
|
+
msgid "Contact"
|
|
58
|
+
msgstr "Contato"
|
|
59
|
+
|
|
60
|
+
#: components/Blocks/Slider/DefaultBody
|
|
61
|
+
# defaultMessage: Continue reading
|
|
62
|
+
msgid "Continue reading"
|
|
63
|
+
msgstr "Continue lendo"
|
|
64
|
+
|
|
65
|
+
#: components/Footer/Footer
|
|
66
|
+
# defaultMessage: Copyright
|
|
67
|
+
msgid "Copyright"
|
|
68
|
+
msgstr "Copyright"
|
|
69
|
+
|
|
70
|
+
#: components/Blocks/Image/schema
|
|
71
|
+
# defaultMessage: Description
|
|
72
|
+
msgid "Description"
|
|
73
|
+
msgstr "Descrição"
|
|
74
|
+
|
|
75
|
+
#: components/Footer/Footer
|
|
76
|
+
# defaultMessage: Distributed under the {license}.
|
|
77
|
+
msgid "Distributed under the {license}."
|
|
78
|
+
msgstr "Distribuído sob a licença {license}."
|
|
79
|
+
|
|
80
|
+
#: components/Theme/EventView
|
|
81
|
+
# defaultMessage: End
|
|
82
|
+
msgid "End"
|
|
83
|
+
msgstr "Término"
|
|
84
|
+
|
|
85
|
+
#: components/Blocks/Slider/schema
|
|
86
|
+
# defaultMessage: Flag align
|
|
87
|
+
msgid "Flag align"
|
|
88
|
+
msgstr "Alinhar"
|
|
89
|
+
|
|
90
|
+
#: components/Widgets/AlignWidget
|
|
91
|
+
# defaultMessage: Full
|
|
92
|
+
msgid "Full"
|
|
93
|
+
msgstr "Completo"
|
|
94
|
+
|
|
95
|
+
#: components/Footer/Footer
|
|
96
|
+
# defaultMessage: GNU GPL license
|
|
97
|
+
msgid "GNU GPL license"
|
|
98
|
+
msgstr "Licença GNU GPL"
|
|
99
|
+
|
|
100
|
+
#: components/Blocks/Slider/schema
|
|
101
|
+
# defaultMessage: Hide Button
|
|
102
|
+
msgid "Hide Button"
|
|
103
|
+
msgstr "Ocultar botão"
|
|
104
|
+
|
|
105
|
+
#: components/Breadcrumbs/Breadcrumbs
|
|
106
|
+
#: components/MobileNavigation/MobileNavigation
|
|
107
|
+
# defaultMessage: Home
|
|
108
|
+
msgid "Home"
|
|
109
|
+
msgstr "Início"
|
|
110
|
+
|
|
111
|
+
#: components/Theme/EventView
|
|
112
|
+
# defaultMessage: ICS Download
|
|
113
|
+
msgid "ICS-Download"
|
|
114
|
+
msgstr "Baixar ICS"
|
|
115
|
+
|
|
116
|
+
#: components/Blocks/Image/ImageSidebar
|
|
117
|
+
# defaultMessage: Image
|
|
118
|
+
msgid "Image"
|
|
119
|
+
msgstr "Imagem"
|
|
120
|
+
|
|
121
|
+
#: components/Widgets/AlignWidget
|
|
122
|
+
# defaultMessage: Left
|
|
123
|
+
msgid "Left"
|
|
124
|
+
msgstr "Esquerda"
|
|
125
|
+
|
|
126
|
+
#: components/Theme/EventView
|
|
127
|
+
# defaultMessage: Location
|
|
128
|
+
msgid "Location"
|
|
129
|
+
msgstr "Local"
|
|
130
|
+
|
|
131
|
+
#: components/Anontools/Anontools
|
|
132
|
+
# defaultMessage: Log in
|
|
133
|
+
msgid "Log in"
|
|
134
|
+
msgstr "Entrar"
|
|
135
|
+
|
|
136
|
+
#: components/Blocks/Listing/ListingBody
|
|
137
|
+
# defaultMessage: Next Page
|
|
138
|
+
msgid "Next Page"
|
|
139
|
+
msgstr "Próxima página"
|
|
140
|
+
|
|
141
|
+
#: components/Theme/EventView
|
|
142
|
+
# defaultMessage: No date
|
|
143
|
+
msgid "No date"
|
|
144
|
+
msgstr "Sem data"
|
|
145
|
+
|
|
146
|
+
#: components/Blocks/Image/ImageSidebar
|
|
147
|
+
# defaultMessage: No image selected
|
|
148
|
+
msgid "No image selected"
|
|
149
|
+
msgstr "Nenhuma imagem selecionada"
|
|
150
|
+
|
|
151
|
+
#: components/Blocks/Listing/ListingBody
|
|
152
|
+
# defaultMessage: No items found in this container.
|
|
153
|
+
msgid "No items found in this container."
|
|
154
|
+
msgstr "Nenhum item encontrado nesta pasta"
|
|
155
|
+
|
|
156
|
+
#: components/MobileNavigation/MobileNavigation
|
|
157
|
+
# defaultMessage: Open menu
|
|
158
|
+
msgid "Open menu"
|
|
159
|
+
msgstr "Abrir o menu"
|
|
160
|
+
|
|
161
|
+
#: components/MobileNavigation/MobileNavigation
|
|
162
|
+
# defaultMessage: Overview
|
|
163
|
+
msgid "Overview"
|
|
164
|
+
msgstr "Geral"
|
|
165
|
+
|
|
166
|
+
#: components/Theme/EventView
|
|
167
|
+
# defaultMessage: Phone
|
|
168
|
+
msgid "Phone"
|
|
169
|
+
msgstr "Telefone"
|
|
170
|
+
|
|
171
|
+
#: components/Blocks/Slider/DefaultBody
|
|
172
|
+
# defaultMessage: Please choose an existing content as source for this element
|
|
173
|
+
msgid "Please choose an existing content as source for this element"
|
|
174
|
+
msgstr "Por favor, escolha um conteúdo existente como fonte para esse elemento"
|
|
175
|
+
|
|
176
|
+
#: components/Footer/Footer
|
|
177
|
+
# defaultMessage: Plone Foundation
|
|
178
|
+
msgid "Plone Foundation"
|
|
179
|
+
msgstr "Plone Foundation"
|
|
180
|
+
|
|
181
|
+
#: components/Logo/Logo
|
|
182
|
+
# defaultMessage: Plone Site
|
|
183
|
+
msgid "Plone Site"
|
|
184
|
+
msgstr "Site Plone"
|
|
185
|
+
|
|
186
|
+
#: components/Footer/Footer
|
|
187
|
+
# defaultMessage: Plone{reg} Open Source CMS/WCM
|
|
188
|
+
msgid "Plone{reg} Open Source CMS/WCM"
|
|
189
|
+
msgstr "Plone{reg} Open Source CMS/WCM"
|
|
190
|
+
|
|
191
|
+
#: components/Footer/Footer
|
|
192
|
+
# defaultMessage: Powered by Plone & Python
|
|
193
|
+
msgid "Powered by Plone & Python"
|
|
194
|
+
msgstr "Feito com Plone & Python"
|
|
195
|
+
|
|
196
|
+
#: index
|
|
197
|
+
# defaultMessage: Press
|
|
198
|
+
msgid "Press"
|
|
199
|
+
msgstr "Imprensa"
|
|
200
|
+
|
|
201
|
+
#: components/Blocks/Listing/ListingBody
|
|
202
|
+
# defaultMessage: Previous Page
|
|
203
|
+
msgid "Previous Page"
|
|
204
|
+
msgstr "Página anterior"
|
|
205
|
+
|
|
206
|
+
#: components/Anontools/Anontools
|
|
207
|
+
# defaultMessage: Register
|
|
208
|
+
msgid "Register"
|
|
209
|
+
msgstr "Criar conta"
|
|
210
|
+
|
|
211
|
+
#: components/Blocks/Listing/ListingBody
|
|
212
|
+
# defaultMessage: Result
|
|
213
|
+
msgid "Result"
|
|
214
|
+
msgstr "Resultado"
|
|
215
|
+
|
|
216
|
+
#: components/Widgets/AlignWidget
|
|
217
|
+
# defaultMessage: Right
|
|
218
|
+
msgid "Right"
|
|
219
|
+
msgstr "Direita"
|
|
220
|
+
|
|
221
|
+
#: components/Blocks/Search/components/SearchInput
|
|
222
|
+
#: components/Blocks/Search/TopSideFacets
|
|
223
|
+
#: components/SearchWidget/SearchWidget
|
|
224
|
+
# defaultMessage: Search
|
|
225
|
+
msgid "Search"
|
|
226
|
+
msgstr "Buscar"
|
|
227
|
+
|
|
228
|
+
#: components/SearchWidget/SearchWidget
|
|
229
|
+
# defaultMessage: Search Site
|
|
230
|
+
msgid "Search Site"
|
|
231
|
+
msgstr "Buscar no site"
|
|
232
|
+
|
|
233
|
+
#: components/Blocks/Search/components/SearchDetails
|
|
234
|
+
# defaultMessage: Search results
|
|
235
|
+
msgid "Search results"
|
|
236
|
+
msgstr "Resultados de busca"
|
|
237
|
+
|
|
238
|
+
#: components/Blocks/Search/components/SearchDetails
|
|
239
|
+
# defaultMessage: Searched for
|
|
240
|
+
msgid "Searched for"
|
|
241
|
+
msgstr "Busca por"
|
|
242
|
+
|
|
243
|
+
#: components/Logo/Logo
|
|
244
|
+
# defaultMessage: Site
|
|
245
|
+
msgid "Site"
|
|
246
|
+
msgstr "Site"
|
|
247
|
+
|
|
248
|
+
#: components/Header/Header
|
|
249
|
+
#: index
|
|
250
|
+
# defaultMessage: Sitemap
|
|
251
|
+
msgid "Sitemap"
|
|
252
|
+
msgstr "Mapa do Site"
|
|
253
|
+
|
|
254
|
+
#: components/Blocks/Search/TopSideFacets
|
|
255
|
+
# defaultMessage: Sorting
|
|
256
|
+
msgid "Sorting"
|
|
257
|
+
msgstr "Ordenação"
|
|
258
|
+
|
|
259
|
+
#: components/Blocks/Slider/DefaultBody
|
|
260
|
+
# defaultMessage: Source
|
|
261
|
+
msgid "Source"
|
|
262
|
+
msgstr "Fonte"
|
|
263
|
+
|
|
264
|
+
#: components/Theme/EventView
|
|
265
|
+
# defaultMessage: Start
|
|
266
|
+
msgid "Start"
|
|
267
|
+
msgstr "Início"
|
|
268
|
+
|
|
269
|
+
#: components/Footer/Footer
|
|
270
|
+
# defaultMessage: The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends.
|
|
271
|
+
msgid "The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends."
|
|
272
|
+
msgstr "O {plonecms} tem {copyright} 2000-{current_year} pela {plonefoundation} e comunidade."
|
|
273
|
+
|
|
274
|
+
#: components/Blocks/Image/schema
|
|
275
|
+
# defaultMessage: Title
|
|
276
|
+
msgid "Title"
|
|
277
|
+
msgstr "Título"
|
|
278
|
+
|
|
279
|
+
#: components/Blocks/Image/Edit
|
|
280
|
+
# defaultMessage: Uploading image
|
|
281
|
+
msgid "Uploading image"
|
|
282
|
+
msgstr "Enviando imagem"
|
|
283
|
+
|
|
284
|
+
#: components/Theme/EventView
|
|
285
|
+
# defaultMessage: Website
|
|
286
|
+
msgid "Website"
|
|
287
|
+
msgstr "Site"
|
|
288
|
+
|
|
289
|
+
#: components/Widgets/AlignWidget
|
|
290
|
+
# defaultMessage: Wide
|
|
291
|
+
msgid "Wide"
|
|
292
|
+
msgstr "Largo"
|
|
293
|
+
|
|
294
|
+
#: components/Blocks/Image/ImageSidebar
|
|
295
|
+
# defaultMessage: Clear image
|
|
296
|
+
msgid "image_block_clear"
|
|
297
|
+
msgstr "Remover imagem"
|
|
298
|
+
|
|
299
|
+
#: components/Blocks/Image/ImageSidebar
|
|
300
|
+
# defaultMessage: Image preview
|
|
301
|
+
msgid "image_block_preview"
|
|
302
|
+
msgstr "Preview da imagem"
|
|
303
|
+
|
|
304
|
+
#: components/Blocks/Listing/ListingBody
|
|
305
|
+
# defaultMessage: Loading
|
|
306
|
+
msgid "loading"
|
|
307
|
+
msgstr "carregando"
|
|
308
|
+
|
|
309
|
+
#: components/Blocks/Slider/DefaultBody
|
|
310
|
+
# defaultMessage: More info
|
|
311
|
+
msgid "moreInfo"
|
|
312
|
+
msgstr "Mais informações"
|
|
313
|
+
|
|
314
|
+
#: components/Blocks/Listing/ListingBody
|
|
315
|
+
# defaultMessage: of
|
|
316
|
+
msgid "of"
|
|
317
|
+
msgstr "de"
|
package/locales/volto.pot
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: Plone\n"
|
|
4
|
-
"POT-Creation-Date: 2023-11-
|
|
4
|
+
"POT-Creation-Date: 2023-11-30T13:23:01.241Z\n"
|
|
5
5
|
"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
6
6
|
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
7
7
|
"MIME-Version: 1.0\n"
|
|
@@ -49,6 +49,7 @@ msgid "Center"
|
|
|
49
49
|
msgstr ""
|
|
50
50
|
|
|
51
51
|
#: components/MobileNavigation/MobileNavigation
|
|
52
|
+
#: components/Navigation/Navigation
|
|
52
53
|
# defaultMessage: Close menu
|
|
53
54
|
msgid "Close menu"
|
|
54
55
|
msgstr ""
|
|
@@ -160,7 +161,6 @@ msgid "Open menu"
|
|
|
160
161
|
msgstr ""
|
|
161
162
|
|
|
162
163
|
#: components/MobileNavigation/MobileNavigation
|
|
163
|
-
#: components/Navigation/Navigation
|
|
164
164
|
# defaultMessage: Overview
|
|
165
165
|
msgid "Overview"
|
|
166
166
|
msgstr ""
|
package/package.json
CHANGED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import loadable from '@loadable/component';
|
|
4
|
+
import 'react-image-gallery/styles/css/image-gallery.css';
|
|
5
|
+
import { Button } from 'semantic-ui-react';
|
|
6
|
+
import { Icon } from '@plone/volto/components';
|
|
7
|
+
import { flattenToAppURL } from '@plone/volto/helpers';
|
|
8
|
+
import config from '@plone/volto/registry';
|
|
9
|
+
|
|
10
|
+
import galleryLeftSVG from '../../../icons/left-key.svg';
|
|
11
|
+
import galleryRightSVG from '../../../icons/right-key.svg';
|
|
12
|
+
import galleryPlaySVG from '../../../icons/play.svg';
|
|
13
|
+
import galleryPauseSVG from '../../../icons/pause.svg';
|
|
14
|
+
import galleryFullScreenSVG from '../../../icons/fullscreen.svg';
|
|
15
|
+
import galleryBackDownSVG from '../../../icons/back-down.svg';
|
|
16
|
+
|
|
17
|
+
const ImageGallery = loadable(() => import('react-image-gallery'));
|
|
18
|
+
|
|
19
|
+
const renderLeftNav = (onClick, disabled) => {
|
|
20
|
+
return (
|
|
21
|
+
<Button
|
|
22
|
+
className="image-gallery-icon image-gallery-left-nav primary basic"
|
|
23
|
+
disabled={disabled}
|
|
24
|
+
onClick={onClick}
|
|
25
|
+
>
|
|
26
|
+
<Icon name={galleryLeftSVG} size="48px" fill="black" />
|
|
27
|
+
</Button>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
const renderRightNav = (onClick, disabled) => {
|
|
31
|
+
return (
|
|
32
|
+
<Button
|
|
33
|
+
className="image-gallery-icon image-gallery-right-nav primary basic"
|
|
34
|
+
disabled={disabled}
|
|
35
|
+
onClick={onClick}
|
|
36
|
+
>
|
|
37
|
+
<Icon name={galleryRightSVG} size="48px" />
|
|
38
|
+
</Button>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const renderPlayPauseButton = (onClick, isPlaying) => (
|
|
43
|
+
<Button
|
|
44
|
+
type="button"
|
|
45
|
+
className="image-gallery-icon image-gallery-play-button basic primary"
|
|
46
|
+
onClick={onClick}
|
|
47
|
+
aria-label="Play or Pause Slideshow"
|
|
48
|
+
>
|
|
49
|
+
{isPlaying ? (
|
|
50
|
+
<Icon name={galleryPauseSVG} size="48px" />
|
|
51
|
+
) : (
|
|
52
|
+
<Icon name={galleryPlaySVG} size="48px" />
|
|
53
|
+
)}
|
|
54
|
+
</Button>
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
const renderFullscreenButton = (onClick, isFullscreen) => {
|
|
58
|
+
return (
|
|
59
|
+
<Button
|
|
60
|
+
type="button"
|
|
61
|
+
className="image-gallery-icon image-gallery-fullscreen-button primary basic"
|
|
62
|
+
onClick={onClick}
|
|
63
|
+
aria-label="Open Fullscreen"
|
|
64
|
+
>
|
|
65
|
+
{isFullscreen ? (
|
|
66
|
+
<Icon name={galleryBackDownSVG} size="48px" />
|
|
67
|
+
) : (
|
|
68
|
+
<Icon name={galleryFullScreenSVG} size="48px" />
|
|
69
|
+
)}
|
|
70
|
+
</Button>
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const ImageGalleryTemplate = ({ items }) => {
|
|
75
|
+
const { settings } = config;
|
|
76
|
+
const renderItems = items.filter(
|
|
77
|
+
(content) =>
|
|
78
|
+
settings.imageObjects.includes(content['@type']) && content.image_field,
|
|
79
|
+
);
|
|
80
|
+
const imagesInfo = renderItems.map((item) => {
|
|
81
|
+
return {
|
|
82
|
+
original: `${flattenToAppURL(item['@id'])}/@@images/${
|
|
83
|
+
item.image_field
|
|
84
|
+
}/large`,
|
|
85
|
+
thumbnail: `${flattenToAppURL(item['@id'])}/@@images/${
|
|
86
|
+
item.image_field
|
|
87
|
+
}/thumb`,
|
|
88
|
+
description: (
|
|
89
|
+
<>
|
|
90
|
+
<div className="title">{item.title}</div>
|
|
91
|
+
<div className="description">{item.description}</div>
|
|
92
|
+
<div className="download">
|
|
93
|
+
<a
|
|
94
|
+
href={`${flattenToAppURL(item['@id'])}/@@images/${
|
|
95
|
+
item.image_field
|
|
96
|
+
}/huge`}
|
|
97
|
+
download
|
|
98
|
+
>
|
|
99
|
+
download
|
|
100
|
+
</a>
|
|
101
|
+
</div>
|
|
102
|
+
<div className="credits">{item.copyright_and_sources}</div>
|
|
103
|
+
</>
|
|
104
|
+
),
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
renderItems.length > 0 && (
|
|
110
|
+
<ImageGallery
|
|
111
|
+
items={imagesInfo}
|
|
112
|
+
renderLeftNav={renderLeftNav}
|
|
113
|
+
renderRightNav={renderRightNav}
|
|
114
|
+
renderPlayPauseButton={renderPlayPauseButton}
|
|
115
|
+
renderFullscreenButton={renderFullscreenButton}
|
|
116
|
+
lazyLoad={true}
|
|
117
|
+
/>
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
ImageGalleryTemplate.propTypes = {
|
|
123
|
+
items: PropTypes.arrayOf(PropTypes.any).isRequired,
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default ImageGalleryTemplate;
|