@eeacms/volto-clms-theme 1.1.100 → 1.1.102

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 CHANGED
@@ -4,6 +4,17 @@ 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.1.102](https://github.com/eea/volto-clms-theme/compare/1.1.101...1.1.102) - 16 January 2024
8
+
9
+ #### :bug: Bug Fixes
10
+
11
+ - fix:CLMS-2970 [Unai - [`24cbfe5`](https://github.com/eea/volto-clms-theme/commit/24cbfe5a2bd410d9483ce812a61d49bc37e569a8)]
12
+
13
+ #### :hammer_and_wrench: Others
14
+
15
+ - event view fixes [Unai - [`a17c48a`](https://github.com/eea/volto-clms-theme/commit/a17c48abee94afc78da21b2c0b67a0b33cb59de4)]
16
+ ### [1.1.101](https://github.com/eea/volto-clms-theme/compare/1.1.100...1.1.101) - 10 January 2024
17
+
7
18
  ### [1.1.100](https://github.com/eea/volto-clms-theme/compare/1.1.99...1.1.100) - 21 December 2023
8
19
 
9
20
  #### :hammer_and_wrench: Others
@@ -191,7 +202,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
191
202
 
192
203
  - to render nothing, return null [Mikel Larreategi - [`2fb3580`](https://github.com/eea/volto-clms-theme/commit/2fb35802b23e3aba5fd166aeefd103c929ffb5d1)]
193
204
  - simplify condtioin [Mikel Larreategi - [`f9b43da`](https://github.com/eea/volto-clms-theme/commit/f9b43da91d360e0028402f9a7ba762f16b0d9b22)]
194
- - test: [JENKINS] Use java17 for sonarqube scanner [valentinab25 - [`7c6e9ca`](https://github.com/eea/volto-clms-theme/commit/7c6e9cac9da0c06d0f24711303404f5055fba7d1)]
195
205
  ### [1.1.80](https://github.com/eea/volto-clms-theme/compare/1.1.79...1.1.80) - 17 November 2023
196
206
 
197
207
  #### :bug: Bug Fixes
@@ -202,7 +212,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
202
212
 
203
213
  #### :hammer_and_wrench: Others
204
214
 
205
- - test: [JENKINS] Run cypress in started frontend container [valentinab25 - [`37c3299`](https://github.com/eea/volto-clms-theme/commit/37c3299dd19c95057e70d48152bfef2365f2416c)]
206
215
  - CLMS-2509 (Bug): Lint [Urkorue - [`1bbc011`](https://github.com/eea/volto-clms-theme/commit/1bbc011481c0ee1feb68d0cf57c4a5a9f4c224ca)]
207
216
  - CLMS-2509 (Bug): Timeseries icon centered [Urkorue - [`fc38685`](https://github.com/eea/volto-clms-theme/commit/fc3868598ab592f01bb3ee23f985ada5c11227d4)]
208
217
  ### [1.1.78](https://github.com/eea/volto-clms-theme/compare/1.1.77...1.1.78) - 16 November 2023
@@ -255,17 +264,14 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
255
264
 
256
265
  #### :hammer_and_wrench: Others
257
266
 
258
- - test: [JENKINS] Add cpu limit on cypress docker [valentinab25 - [`c55db1c`](https://github.com/eea/volto-clms-theme/commit/c55db1c20cfef1eb34c587343a4822fa4bde3c54)]
259
267
  ### [1.1.73](https://github.com/eea/volto-clms-theme/compare/1.1.72...1.1.73) - 6 November 2023
260
268
 
261
269
  #### :hammer_and_wrench: Others
262
270
 
263
- - test: [JENKINS] Increase shm-size to cypress docker [valentinab25 - [`3a543b9`](https://github.com/eea/volto-clms-theme/commit/3a543b9000c1168d54edfb8003eb08dfa7c85031)]
264
271
  - comment Integration tests [Ion Lizarazu - [`74713f8`](https://github.com/eea/volto-clms-theme/commit/74713f8f78d77ba193d8c27462cc8787d698ab81)]
265
272
  - uncomment cypress tests [Ion Lizarazu - [`3526a5c`](https://github.com/eea/volto-clms-theme/commit/3526a5c46481667b0518c6cce0927e67726c6f6c)]
266
273
  - use chrome instead of chromium to run cypress tests [Ion Lizarazu - [`6ae3a06`](https://github.com/eea/volto-clms-theme/commit/6ae3a06dbec1914c06a55c0dcb826c49b75f9739)]
267
274
  - ccltabs activeTab condition having first child [Ion Lizarazu - [`3cf9376`](https://github.com/eea/volto-clms-theme/commit/3cf9376d55f5f41b7e42c25e5925cd871ec71d81)]
268
- - test: [JENKINS] Improve cypress time [valentinab25 - [`f41ecfe`](https://github.com/eea/volto-clms-theme/commit/f41ecfea8b5a1e409303ffcc7befe7f51316d652)]
269
275
  ### [1.1.72](https://github.com/eea/volto-clms-theme/compare/1.1.71...1.1.72) - 2 November 2023
270
276
 
271
277
  ### [1.1.71](https://github.com/eea/volto-clms-theme/compare/1.1.70...1.1.71) - 31 October 2023
@@ -276,7 +282,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
276
282
 
277
283
  #### :house: Internal changes
278
284
 
279
- - chore: [JENKINS] Refactor automated testing [valentinab25 - [`67ca3bb`](https://github.com/eea/volto-clms-theme/commit/67ca3bb111f34842569c12b9c87a2a91bd14b09e)]
280
285
 
281
286
  #### :hammer_and_wrench: Others
282
287
 
@@ -373,7 +378,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
373
378
 
374
379
  - readme [Mikel Larreategi - [`3c0ab05`](https://github.com/eea/volto-clms-theme/commit/3c0ab051981a4efad7712bc46182eed9d79fd10f)]
375
380
  - remove from addons [Mikel Larreategi - [`89c2e7d`](https://github.com/eea/volto-clms-theme/commit/89c2e7d793193e6bb64642f0b06a01cd3c81108a)]
376
- - yarn.lock added after running yarn [Unai - [`ad307be`](https://github.com/eea/volto-clms-theme/commit/ad307be72bbfe753f7571ea4d784a09978e0f7f2)]
377
381
  - prettier issue fix [Unai - [`8bc0650`](https://github.com/eea/volto-clms-theme/commit/8bc0650918f9fa1065d19d2c15ce153a5fc5abbb)]
378
382
  - set a limit of 5 items in the download queue [Mikel Larreategi - [`b81cc83`](https://github.com/eea/volto-clms-theme/commit/b81cc8383165bafbbff52fbeeb365d413051802e)]
379
383
  - adjust logo size [Mikel Larreategi - [`b90a72c`](https://github.com/eea/volto-clms-theme/commit/b90a72c07102025a7e90607b25d34611ddd4f4f6)]
@@ -515,7 +519,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
515
519
 
516
520
  - fix cart items concat function [Ion Lizarazu - [`4b72249`](https://github.com/eea/volto-clms-theme/commit/4b72249ef17a0cda22661809fce5be7c2d1f6649)]
517
521
  - revert Jenkinsfile [Ion Lizarazu - [`64f6cd0`](https://github.com/eea/volto-clms-theme/commit/64f6cd08100357843b507c00d3286d7debe0ef04)]
518
- - yarn.lock file [Ion Lizarazu - [`8444ad1`](https://github.com/eea/volto-clms-theme/commit/8444ad1606b3939e4609bdd186e5ace2252588a8)]
519
522
  - packages.json versions order [Ion Lizarazu - [`4fd7a86`](https://github.com/eea/volto-clms-theme/commit/4fd7a86ab43238841b421e1ed10ebd52ab420a15)]
520
523
  - downloadablefilestablewidget param modification [Ion Lizarazu - [`5dd794a`](https://github.com/eea/volto-clms-theme/commit/5dd794a33a8eddd042a753b7ab47e7d2a323b011)]
521
524
  - add technical_documents_accordion_text field to the dataset view [Ion Lizarazu - [`96ed1e5`](https://github.com/eea/volto-clms-theme/commit/96ed1e5e2c2b501bd303bc76b333a70ad1614c16)]
@@ -640,7 +643,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
640
643
 
641
644
  - remove NUTS text for area naming in the cart [ionlizarazu - [`062e0a3`](https://github.com/eea/volto-clms-theme/commit/062e0a375f5352bc13c18ff7ec33fad4bcc59f2f)]
642
645
  - dependencies [ionlizarazu - [`405ef96`](https://github.com/eea/volto-clms-theme/commit/405ef96090fe7bd4af73a49d3285a92fad712e3b)]
643
- - yarn.lock [ionlizarazu - [`7132119`](https://github.com/eea/volto-clms-theme/commit/71321195c4dd4fceed67f2f0872f3e24bba61c17)]
644
646
  - volto-blocks-grid module mapping [ionlizarazu - [`4fec3ca`](https://github.com/eea/volto-clms-theme/commit/4fec3cabc437322ad92ed90d682250bd123ccaaf)]
645
647
  - volto-blocks-grid v7.0.2 [ionlizarazu - [`2557e60`](https://github.com/eea/volto-clms-theme/commit/2557e6039d3cea33ca0bd11a0a3ef4764c611f78)]
646
648
  - remove styling from teaser block [ionlizarazu - [`879e684`](https://github.com/eea/volto-clms-theme/commit/879e684057c88f52f60f0fa54cbaa155c7d14688)]
@@ -728,7 +730,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
728
730
 
729
731
  #### :house: Internal changes
730
732
 
731
- - chore: [JENKINS] Remove alpha testing version [valentinab25 - [`b4cbf65`](https://github.com/eea/volto-clms-theme/commit/b4cbf6557fbc67f7fc4cea5aa2cb19804f3d7e3c)]
732
733
 
733
734
  #### :hammer_and_wrench: Others
734
735
 
@@ -1927,7 +1928,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1927
1928
  #### :hammer_and_wrench: Others
1928
1929
 
1929
1930
  - related products and datasets added to news and meeting views and login-plone route created [Unai - [`5704a1a`](https://github.com/eea/volto-clms-theme/commit/5704a1a766148746162b60efaf232ea90dc20cf4)]
1930
- - Revert "[JENKINS] Use eeacms/plone-backend and Volto alpha version- Refs #151967" [Mikel Larreategi - [`46eb694`](https://github.com/eea/volto-clms-theme/commit/46eb69415280a3c982405299135027ae4221426a)]
1931
1931
  - sort items according to the lowercased label and put those with special meaning at the end [Mikel Larreategi - [`6410abe`](https://github.com/eea/volto-clms-theme/commit/6410abe096f60dcad54dced2026c9df9b7946d68)]
1932
1932
  - lint fix [Unai - [`1264a7a`](https://github.com/eea/volto-clms-theme/commit/1264a7adfe8d679fea1bd821ad087add20f4271d)]
1933
1933
  - footer newsletter subscription change, global search maxLength change from 8000 to 200 and /login design change [Unai - [`a09d24a`](https://github.com/eea/volto-clms-theme/commit/a09d24adbb6fa053fb2a2cc0071506b906593b42)]
@@ -2078,7 +2078,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2078
2078
  - search block new features [ionlizarazu - [`8e814cb`](https://github.com/eea/volto-clms-theme/commit/8e814cbd359782540c21fe37b37ef146d331f0d6)]
2079
2079
  - language selector cookie management [ionlizarazu - [`1385ac9`](https://github.com/eea/volto-clms-theme/commit/1385ac95795702206d3623ba6e780faa43a89e0a)]
2080
2080
  - toolbar cookie management [ionlizarazu - [`5c23200`](https://github.com/eea/volto-clms-theme/commit/5c23200790b20e1d4f1bc966463c37bf4c808f47)]
2081
- - Add Sonarqube tag using clms-frontend addons list [EEA Jenkins - [`0316a0d`](https://github.com/eea/volto-clms-theme/commit/0316a0d8b6fb0fa14af13002415f3c95d9f8ede3)]
2082
2081
  ### [1.0.84](https://github.com/eea/volto-clms-theme/compare/1.0.83...1.0.84) - 18 March 2022
2083
2082
 
2084
2083
  #### :hammer_and_wrench: Others
@@ -2983,13 +2982,11 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2983
2982
  #### :hammer_and_wrench: Others
2984
2983
 
2985
2984
  - replace @collective/volto-dropdownmenu with volto-dropdownmenu [ionlizarazu - [`07f004f`](https://github.com/eea/volto-clms-theme/commit/07f004fe0219e403fb51bc045c83d34f3b981f76)]
2986
- - yarn.lock [ionlizarazu - [`fe1ca04`](https://github.com/eea/volto-clms-theme/commit/fe1ca04889d29fe7b653db4c69af2751b84b8a1a)]
2987
2985
  - add NODE_ENV parameter [ionlizarazu - [`101f27c`](https://github.com/eea/volto-clms-theme/commit/101f27c25b8fbd192e1b11865e95cf5ffee08c1b)]
2988
2986
  - upgrade volto-dropdownmenu version [ionlizarazu - [`2081855`](https://github.com/eea/volto-clms-theme/commit/2081855301f4c708776e0dbab39db143cee00dbc)]
2989
2987
  - HomeSearch block missing url behaviour [ionlizarazu - [`d20a378`](https://github.com/eea/volto-clms-theme/commit/d20a378ce3f254b8343692348f314bf281974542)]
2990
2988
  - babel configuration [ionlizarazu - [`203ea2d`](https://github.com/eea/volto-clms-theme/commit/203ea2de07f99ca3403e4ca220ca74d7ce69b61d)]
2991
2989
  - prettier [ionlizarazu - [`e79e26b`](https://github.com/eea/volto-clms-theme/commit/e79e26bf2fa40ba7b4eb53a24dabd87928221c28)]
2992
- - add yarn lock [ionlizarazu - [`e1ab28b`](https://github.com/eea/volto-clms-theme/commit/e1ab28b060d5a74431c368b0de82a68dabce1eab)]
2993
2990
  - Jenkinsfile cypress test [ionlizarazu - [`b385d65`](https://github.com/eea/volto-clms-theme/commit/b385d65986f717c60f8c434a08fc11b829d08eb4)]
2994
2991
  - cypress [ionlizarazu - [`a243cf0`](https://github.com/eea/volto-clms-theme/commit/a243cf0182fa3dd113c16ff495c71e310252d83b)]
2995
2992
  - some fixes [ionlizarazu - [`046279b`](https://github.com/eea/volto-clms-theme/commit/046279b9d05bea8a64eca03eed493e02621534c9)]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-clms-theme",
3
- "version": "1.1.100",
3
+ "version": "1.1.102",
4
4
  "description": "volto-clms-theme: Volto theme for CLMS site",
5
5
  "main": "src/index.js",
6
6
  "author": "CodeSyntax for the European Environment Agency",
@@ -1,31 +1,31 @@
1
- import { flattenToAppURL } from '@plone/volto/helpers';
2
- import { Redirect } from 'react-router-dom';
3
- import { useSelector } from 'react-redux';
1
+ // import { flattenToAppURL } from '@plone/volto/helpers';
2
+ // import { Redirect } from 'react-router-dom';
3
+ // import { useSelector } from 'react-redux';
4
4
  import DefaultView from '@plone/volto/components/theme/View/DefaultView';
5
5
 
6
6
  const CLMSDataSetAccordionView = (props) => {
7
- const { content } = props;
8
- const parent_url = content?.parent?.['@id'];
9
- const userSession = useSelector((state) => state.userSession);
10
- const isLoggedIn = userSession?.token;
7
+ // const { content } = props;
8
+ // const parent_url = content?.parent?.['@id'];
9
+ // const userSession = useSelector((state) => state.userSession);
10
+ // const isLoggedIn = userSession?.token;
11
11
 
12
12
  // if (!__SERVER__) {
13
13
  // window.location.href = flattenToAppURL(parent_url);
14
14
  // }
15
15
 
16
- if (isLoggedIn) {
17
- return (
18
- <DefaultView
19
- key={props.content['@id']}
20
- content={props.content}
21
- location={props.location}
22
- token={props.token}
23
- history={props.history}
24
- />
25
- );
26
- } else {
27
- return <Redirect to={flattenToAppURL(parent_url)} />;
28
- }
16
+ // if (isLoggedIn) {
17
+ return (
18
+ <DefaultView
19
+ key={props.content['@id']}
20
+ content={props.content}
21
+ location={props.location}
22
+ token={props.token}
23
+ history={props.history}
24
+ />
25
+ );
26
+ // } else {
27
+ // return <Redirect to={flattenToAppURL(parent_url)} />;
28
+ // }
29
29
  };
30
30
 
31
31
  export default CLMSDataSetAccordionView;
@@ -421,7 +421,15 @@ const CLMSCartContent = (props) => {
421
421
  return {
422
422
  key: projection,
423
423
  value: projection,
424
- text: projection,
424
+ text:
425
+ projection === item?.original_projection
426
+ ? projection +
427
+ ' (Source system of the dataset)'
428
+ : projection,
429
+ className:
430
+ projection === item?.original_projection
431
+ ? 'original_projection'
432
+ : 'projection',
425
433
  };
426
434
  })
427
435
  }
@@ -31,7 +31,7 @@ export const TimeseriesPicker = (props) => {
31
31
  /* Calculate if the difference in days is smaller than the allowed limit */
32
32
  const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
33
33
  const diffDays = Math.round(Math.abs((start - end) / oneDay));
34
- return diffDays <= limit;
34
+ return diffDays < limit;
35
35
  };
36
36
 
37
37
  return (
@@ -126,6 +126,7 @@ export const getCartObjectFromMapviewer = (
126
126
  dataset_uid: dataset_data.UID,
127
127
  task_in_progress: false,
128
128
  projection: dataset_data.projection || projections[0],
129
+ original_projection: dataset_data.original_projection || '',
129
130
  timeExtent: local_cart_data.timeExtent || [],
130
131
  layer:
131
132
  type_options.length > 0 && type_options[0].layers.length > 0
@@ -13,21 +13,22 @@ import {
13
13
  Recurrence,
14
14
  // When,
15
15
  } from '@plone/volto/components/theme/View/EventDatesInfo';
16
- import { When } from '@eeacms/volto-clms-theme/components/CclWhen/CclWhen';
17
-
16
+ import { expandToBackendURL } from '@plone/volto/helpers';
17
+ import calendarSVG from '@plone/volto/icons/calendar.svg';
18
18
  import checkSVG from '@plone/volto/icons/check.svg';
19
19
  import config from '@plone/volto/registry';
20
20
  import CclListingCards from '@eeacms/volto-clms-theme/components/Blocks/CustomTemplates/VoltoListingBlock/CclListingCards';
21
21
  import CclButton from '@eeacms/volto-clms-theme/components/CclButton/CclButton';
22
22
  import { StringToHTML } from '@eeacms/volto-clms-theme/components/CclUtils';
23
+ import { When } from '@eeacms/volto-clms-theme/components/CclWhen/CclWhen';
23
24
 
24
25
  import { postMeetingRegister } from '../../actions';
26
+ import CclCard from '../CclCard/CclCard';
25
27
  import { CLMSRelatedItems } from '../CLMSRelatedItems';
26
28
  import { LightGalleryListing } from './CclLightGallery';
27
29
  import { RegisterButtonReasons } from './utils';
28
30
 
29
31
  import jwtDecode from 'jwt-decode';
30
- import CclCard from '../CclCard/CclCard';
31
32
 
32
33
  export const CLMSMeetingView = (props) => {
33
34
  const { content, intl } = props;
@@ -113,6 +114,10 @@ export const CLMSMeetingView = (props) => {
113
114
  id: 'agreePrivacyPolicyLinkText',
114
115
  defaultMessage: 'privacy policy.',
115
116
  },
117
+ downloadEvent: {
118
+ id: 'Download Event',
119
+ defineMessages: 'Download Event',
120
+ },
116
121
  });
117
122
 
118
123
  function createForm() {
@@ -262,7 +267,12 @@ export const CLMSMeetingView = (props) => {
262
267
  (content.allow_register && content.subscribers_link)) && (
263
268
  <Segment.Group compact horizontal>
264
269
  {content.allow_anonymous_registration && (
265
- <Segment padded={'very'} color={'olive'} circular>
270
+ <Segment
271
+ className={'event-segment'}
272
+ padded={'very'}
273
+ color={'olive'}
274
+ circular
275
+ >
266
276
  <strong>
267
277
  <FormattedMessage
268
278
  id="Anonymous registration form"
@@ -305,10 +315,26 @@ export const CLMSMeetingView = (props) => {
305
315
  ></Message>
306
316
  </p>
307
317
  )}
318
+ <div className="download-event">
319
+ <Icon name={calendarSVG} />
320
+ <a
321
+ className="ics-download"
322
+ target="_blank"
323
+ rel="noreferrer"
324
+ href={`${expandToBackendURL(content['@id'])}/ics_view`}
325
+ >
326
+ {intl.formatMessage(messages.downloadEvent)}
327
+ </a>
328
+ </div>
308
329
  </Segment>
309
330
  )}
310
331
  {content.allow_register && content.subscribers_link && (
311
- <Segment padded={'very'} color={'olive'} circular>
332
+ <Segment
333
+ className={'event-segment'}
334
+ padded={'very'}
335
+ color={'olive'}
336
+ circular
337
+ >
312
338
  <strong>
313
339
  <FormattedMessage
314
340
  id="Meeting register information"
@@ -335,12 +361,24 @@ export const CLMSMeetingView = (props) => {
335
361
  defaultMessage="Mail archive"
336
362
  />
337
363
  </CclButton>
364
+ <div className="download-event">
365
+ <Icon name={calendarSVG} />
366
+ <a
367
+ className="ics-download"
368
+ target="_blank"
369
+ rel="noreferrer"
370
+ href={`${expandToBackendURL(content['@id'])}/ics_view`}
371
+ >
372
+ {intl.formatMessage(messages.downloadEvent)}
373
+ </a>
374
+ </div>
338
375
  </Segment>
339
376
  )}
340
377
  </Segment.Group>
341
378
  )}
342
379
  {content.description}
343
380
  <Segment
381
+ className={'event-segment'}
344
382
  compact
345
383
  padded={'small'}
346
384
  color={'olive'}
@@ -355,7 +393,7 @@ export const CLMSMeetingView = (props) => {
355
393
  {content.whole_day ? (
356
394
  <When
357
395
  start={content.start}
358
- end={content.start}
396
+ end={content.end}
359
397
  whole_day={content.whole_day}
360
398
  br_in_timezone={true}
361
399
  />
@@ -476,6 +514,17 @@ export const CLMSMeetingView = (props) => {
476
514
  </div>
477
515
  </div>
478
516
  )}
517
+ <div className="download-event">
518
+ <Icon name={calendarSVG} />
519
+ <a
520
+ className="ics-download"
521
+ target="_blank"
522
+ rel="noreferrer"
523
+ href={`${expandToBackendURL(content['@id'])}/ics_view`}
524
+ >
525
+ {intl.formatMessage(messages.downloadEvent)}
526
+ </a>
527
+ </div>
479
528
  </Segment>
480
529
  <Segment basic>
481
530
  {content?.image && (
@@ -42,3 +42,12 @@ body {
42
42
  justify-content: center;
43
43
  }
44
44
  }
45
+
46
+ .event-segment {
47
+ max-width: 444px;
48
+ }
49
+
50
+ .download-event {
51
+ display: flex;
52
+ align-items: center;
53
+ }