diff --git a/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx index bf1c1ffe..0216c127 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx @@ -1,22 +1,22 @@ -import React, { useState, useRef } from 'react'; -import PropTypes from 'prop-types'; -import { useIntl, defineMessages } from 'react-intl'; -import { Container, Row, Col } from 'design-react-kit/dist/design-react-kit'; - -import cx from 'classnames'; -import { UniversalLink } from '@plone/volto/components'; -import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable'; +import 'slick-carousel/slick/slick.css'; +import 'design-volto-theme/components/slick-carousel/slick/slick-theme.css'; +import { Col, Container, Row } from 'design-react-kit/dist/design-react-kit'; import { - ListingLinkMore, ListingImage, + ListingLinkMore, } from 'design-volto-theme/components/ItaliaTheme'; +import React, { useRef, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; + +import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +import { GalleryPreview } from 'design-volto-theme/components/ItaliaTheme'; import { Icon } from 'design-volto-theme/components/ItaliaTheme'; +import PropTypes from 'prop-types'; +import { UniversalLink } from '@plone/volto/components'; +import cx from 'classnames'; import { flattenToAppURL } from '@plone/volto/helpers'; -import { GalleryPreview } from 'design-volto-theme/components/ItaliaTheme'; -import 'slick-carousel/slick/slick.css'; -import 'slick-carousel/slick/slick-theme.css'; -import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable'; const messages = defineMessages({ viewImage: { diff --git a/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx index a80427f9..eb088df2 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx @@ -1,23 +1,23 @@ +import 'slick-carousel/slick/slick.css'; +import 'design-volto-theme/components/slick-carousel/slick/slick-theme.css'; + +import { Col, Container, Row } from 'design-react-kit/dist/design-react-kit'; +import { + Icon, + ListingImage, + ListingLinkMore, +} from 'design-volto-theme/components/ItaliaTheme'; /* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ /* eslint-disable jsx-a11y/interactive-supports-focus */ -import React, { useState, useRef } from 'react'; -import PropTypes from 'prop-types'; -import cx from 'classnames'; -import { useIntl, defineMessages } from 'react-intl'; -import { Container, Row, Col } from 'design-react-kit/dist/design-react-kit'; +import React, { useRef, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import PropTypes from 'prop-types'; import { UniversalLink } from '@plone/volto/components'; +import cx from 'classnames'; import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable'; -import { - Icon, - ListingLinkMore, - ListingImage, -} from 'design-volto-theme/components/ItaliaTheme'; -import 'slick-carousel/slick/slick.css'; -import 'slick-carousel/slick/slick-theme.css'; - const messages = defineMessages({ viewImage: { id: "Vedi l'immagine", diff --git a/src/components/ItaliaTheme/View/Commons/Gallery.jsx b/src/components/ItaliaTheme/View/Commons/Gallery.jsx index 3c93ea9e..248a9122 100644 --- a/src/components/ItaliaTheme/View/Commons/Gallery.jsx +++ b/src/components/ItaliaTheme/View/Commons/Gallery.jsx @@ -1,20 +1,19 @@ +import 'slick-carousel/slick/slick.css'; +import 'design-volto-theme/components/slick-carousel/slick/slick-theme.css'; + /* eslint-disable react-hooks/exhaustive-deps */ import React, { useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; +import { resetSearchContent, searchContent } from '@plone/volto/actions'; import { useDispatch, useSelector } from 'react-redux'; -import PropTypes from 'prop-types'; - -import 'slick-carousel/slick/slick.css'; -import 'slick-carousel/slick/slick-theme.css'; - -import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable'; -import { searchContent, resetSearchContent } from '@plone/volto/actions'; -import { flattenToAppURL } from '@plone/volto/helpers'; -import Image from '@plone/volto/components/theme/Image/Image'; +import EmbeddedVideo from './EmbeddedVideo'; import { GalleryPreview } from 'design-volto-theme/components/ItaliaTheme'; +import Image from '@plone/volto/components/theme/Image/Image'; +import PropTypes from 'prop-types'; import { contentFolderHasItems } from 'design-volto-theme/helpers'; -import EmbeddedVideo from './EmbeddedVideo'; +import { flattenToAppURL } from '@plone/volto/helpers'; +import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable'; const messages = defineMessages({ gallery: { diff --git a/src/components/slick-carousel/slick/ajax-loader.gif b/src/components/slick-carousel/slick/ajax-loader.gif new file mode 100644 index 00000000..e0e6e976 Binary files /dev/null and b/src/components/slick-carousel/slick/ajax-loader.gif differ diff --git a/src/components/slick-carousel/slick/slick-theme.css b/src/components/slick-carousel/slick/slick-theme.css new file mode 100644 index 00000000..93d89926 --- /dev/null +++ b/src/components/slick-carousel/slick/slick-theme.css @@ -0,0 +1,190 @@ +@charset 'UTF-8'; +/* Slider */ +.slick-loading .slick-list +{ + background: #fff url('./ajax-loader.gif') center center no-repeat; +} + +/* Arrows */ +.slick-prev, +.slick-next +{ + font-size: 0; + line-height: 0; + + position: absolute; + top: 50%; + + display: block; + + width: 20px; + height: 20px; + padding: 0; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); + + cursor: pointer; + + color: transparent; + border: none; + outline: none; + background: transparent; +} +.slick-prev:hover, +.slick-prev:focus, +.slick-next:hover, +.slick-next:focus +{ + color: transparent; + outline: none; + background: transparent; +} +.slick-prev:hover:before, +.slick-prev:focus:before, +.slick-next:hover:before, +.slick-next:focus:before +{ + opacity: 1; +} +.slick-prev.slick-disabled:before, +.slick-next.slick-disabled:before +{ + opacity: .25; +} + +.slick-prev:before, +.slick-next:before +{ + font-size: 20px; + line-height: 1; + + opacity: .75; + color: white; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.slick-prev +{ + left: -25px; +} +[dir='rtl'] .slick-prev +{ + right: -25px; + left: auto; +} +.slick-prev:before +{ + content: '←'; +} +[dir='rtl'] .slick-prev:before +{ + content: '→'; +} + +.slick-next +{ + right: -25px; +} +[dir='rtl'] .slick-next +{ + right: auto; + left: -25px; +} +.slick-next:before +{ + content: '→'; +} +[dir='rtl'] .slick-next:before +{ + content: '←'; +} + +/* Dots */ +.slick-dotted.slick-slider +{ + margin-bottom: 30px; +} + +.slick-dots +{ + position: absolute; + bottom: -25px; + + display: block; + + width: 100%; + padding: 0; + margin: 0; + + list-style: none; + + text-align: center; +} +.slick-dots li +{ + position: relative; + + display: inline-block; + + width: 20px; + height: 20px; + margin: 0 5px; + padding: 0; + + cursor: pointer; +} +.slick-dots li button +{ + font-size: 0; + line-height: 0; + + display: block; + + width: 20px; + height: 20px; + padding: 5px; + + cursor: pointer; + + color: transparent; + border: 0; + outline: none; + background: transparent; +} +.slick-dots li button:hover, +.slick-dots li button:focus +{ + outline: none; +} +.slick-dots li button:hover:before, +.slick-dots li button:focus:before +{ + opacity: 1; +} +.slick-dots li button:before +{ + line-height: 20px; + + position: absolute; + top: 0; + left: 0; + + width: 20px; + height: 20px; + + content: ''; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 6px; + background-repeat: no-repeat; + + opacity: .25; + color: black; +} +.slick-dots li.slick-active button:before +{ + opacity: .75; + color: black; +}