@ndla/ui 3.3.7 → 3.3.12
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/es/Article/Article.js +23 -1
- package/es/Article/ArticleNotions.js +80 -32
- package/es/Breadcrumb/Breadcrumb.js +2 -1
- package/es/Breadcrumblist/Breadcrumblist.js +14 -10
- package/es/CloseButton/CloseButton.js +62 -0
- package/es/CloseButton/index.js +9 -0
- package/es/Frontpage/FrontpageAllSubjects.js +7 -7
- package/es/Frontpage/FrontpageProgramMenu.js +10 -10
- package/es/MediaList/MediaList.js +22 -73
- package/es/MessageBox/MessageBox.js +146 -78
- package/es/MessageBox/MessageBoxTag.js +37 -0
- package/es/MessageBox/index.js +3 -1
- package/es/NDLAFilm/FilmSlideshow.js +214 -247
- package/es/NDLAFilm/NavigationArrow.js +13 -60
- package/es/NDLAFilm/SlideshowIndicator.js +16 -63
- package/es/NDLAFilm/interfaces.js +0 -0
- package/es/Programme/Programme.js +15 -8
- package/es/SearchTypeResult/SearchFieldHeader.js +5 -5
- package/es/SearchTypeResult/SearchHeader.js +9 -9
- package/es/SearchTypeResult/SearchItem.js +19 -19
- package/es/SearchTypeResult/SearchNotionItem.js +12 -12
- package/es/SearchTypeResult/SearchNotionsResult.js +9 -14
- package/es/Spinner/Spinner.js +3 -3
- package/es/index.js +2 -1
- package/es/locale/messages-en.js +10 -0
- package/es/locale/messages-nb.js +10 -0
- package/es/locale/messages-nn.js +10 -0
- package/lib/Article/Article.d.ts +3 -1
- package/lib/Article/Article.js +25 -3
- package/lib/Article/ArticleNotions.js +79 -30
- package/lib/Breadcrumb/Breadcrumb.js +2 -1
- package/lib/Breadcrumblist/Breadcrumblist.d.ts +2 -1
- package/lib/Breadcrumblist/Breadcrumblist.js +15 -10
- package/lib/CloseButton/CloseButton.d.ts +6 -0
- package/lib/CloseButton/CloseButton.js +69 -0
- package/lib/CloseButton/index.d.ts +9 -0
- package/lib/CloseButton/index.js +15 -0
- package/lib/Frontpage/FrontpageAllSubjects.d.ts +1 -1
- package/lib/Frontpage/FrontpageAllSubjects.js +7 -7
- package/lib/Frontpage/FrontpageProgramMenu.js +10 -10
- package/lib/MediaList/MediaList.d.ts +48 -0
- package/lib/MediaList/MediaList.js +24 -78
- package/lib/MediaList/index.d.ts +8 -0
- package/lib/MessageBox/MessageBox.d.ts +22 -6
- package/lib/MessageBox/MessageBox.js +146 -77
- package/lib/MessageBox/MessageBoxTag.d.ts +12 -0
- package/lib/MessageBox/MessageBoxTag.js +44 -0
- package/lib/MessageBox/index.d.ts +3 -1
- package/lib/MessageBox/index.js +22 -2
- package/lib/NDLAFilm/FilmSlideshow.d.ts +16 -0
- package/lib/NDLAFilm/FilmSlideshow.js +214 -248
- package/lib/NDLAFilm/NavigationArrow.d.ts +15 -0
- package/lib/NDLAFilm/NavigationArrow.js +20 -65
- package/lib/NDLAFilm/SlideshowIndicator.d.ts +15 -0
- package/lib/NDLAFilm/SlideshowIndicator.js +16 -69
- package/lib/NDLAFilm/interfaces.d.ts +10 -0
- package/lib/NDLAFilm/interfaces.js +1 -0
- package/lib/NDLAFilm/shapes.d.ts +15 -0
- package/lib/Programme/Programme.d.ts +2 -1
- package/lib/Programme/Programme.js +18 -9
- package/lib/SearchTypeResult/SearchFieldHeader.d.ts +3 -3
- package/lib/SearchTypeResult/SearchFieldHeader.js +5 -5
- package/lib/SearchTypeResult/SearchHeader.d.ts +3 -3
- package/lib/SearchTypeResult/SearchHeader.js +9 -9
- package/lib/SearchTypeResult/SearchItem.d.ts +2 -3
- package/lib/SearchTypeResult/SearchItem.js +19 -19
- package/lib/SearchTypeResult/SearchNotionItem.d.ts +1 -1
- package/lib/SearchTypeResult/SearchNotionItem.js +12 -12
- package/lib/SearchTypeResult/SearchNotionsResult.js +8 -13
- package/lib/SearchTypeResult/index.d.ts +1 -0
- package/lib/Spinner/Spinner.d.ts +3 -3
- package/lib/Spinner/Spinner.js +2 -2
- package/lib/index.d.ts +2 -1
- package/lib/index.js +23 -0
- package/lib/locale/messages-en.d.ts +10 -0
- package/lib/locale/messages-en.js +10 -0
- package/lib/locale/messages-nb.d.ts +10 -0
- package/lib/locale/messages-nb.js +10 -0
- package/lib/locale/messages-nn.d.ts +10 -0
- package/lib/locale/messages-nn.js +10 -0
- package/package.json +10 -10
- package/src/Article/Article.tsx +17 -0
- package/src/Article/ArticleNotions.tsx +10 -7
- package/src/Breadcrumb/Breadcrumb.tsx +1 -1
- package/src/Breadcrumblist/Breadcrumblist.tsx +5 -3
- package/src/CloseButton/CloseButton.tsx +40 -0
- package/src/CloseButton/index.ts +11 -0
- package/src/Frontpage/FrontpageAllSubjects.tsx +2 -2
- package/src/Frontpage/FrontpageProgramMenu.tsx +1 -0
- package/src/MediaList/MediaList.tsx +158 -0
- package/src/MediaList/{index.js → index.ts} +0 -0
- package/src/MessageBox/MessageBox.tsx +117 -96
- package/src/MessageBox/MessageBoxTag.tsx +35 -0
- package/src/MessageBox/index.ts +3 -1
- package/src/NDLAFilm/FilmSlideshow.tsx +265 -0
- package/src/NDLAFilm/NavigationArrow.tsx +42 -0
- package/src/NDLAFilm/SlideshowIndicator.tsx +40 -0
- package/src/NDLAFilm/interfaces.ts +10 -0
- package/src/NDLAFilm/{shapes.js → shapes.ts} +0 -0
- package/src/Programme/Programme.tsx +7 -3
- package/src/SearchTypeResult/SearchFieldHeader.tsx +3 -3
- package/src/SearchTypeResult/SearchHeader.tsx +3 -3
- package/src/SearchTypeResult/SearchItem.tsx +4 -5
- package/src/SearchTypeResult/SearchNotionItem.tsx +1 -2
- package/src/SearchTypeResult/SearchNotionsResult.tsx +3 -8
- package/src/SearchTypeResult/index.ts +2 -0
- package/src/Spinner/Spinner.tsx +9 -5
- package/src/index.ts +2 -1
- package/src/locale/messages-en.ts +14 -0
- package/src/locale/messages-nb.ts +14 -0
- package/src/locale/messages-nn.ts +14 -0
- package/src/MediaList/MediaList.jsx +0 -182
- package/src/NDLAFilm/FilmSlideshow.jsx +0 -277
- package/src/NDLAFilm/NavigationArrow.jsx +0 -46
- package/src/NDLAFilm/SlideshowIndicator.jsx +0 -43
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import _styled from "@emotion/styled-base";
|
|
2
|
+
|
|
3
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Copyright (c) 2022-present, NDLA.
|
|
7
|
+
*
|
|
8
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
9
|
+
* LICENSE file in the root directory of this source tree.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { useTranslation } from 'react-i18next';
|
|
14
|
+
import { jsx as ___EmotionJSX } from "@emotion/core";
|
|
15
|
+
|
|
16
|
+
var MiniMesssage = _styled("div", {
|
|
17
|
+
target: "ew8lqb00",
|
|
18
|
+
label: "MiniMesssage"
|
|
19
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
20
|
+
name: "2fjqvn",
|
|
21
|
+
styles: "background-color:#f9f4c8;text-align:center;display:inline-block;padding:5px;text-transform:uppercase;font-weight:600;font-size:14px;margin-left:10px;margin-bottom:10px;border-radius:5px;"
|
|
22
|
+
} : {
|
|
23
|
+
name: "2fjqvn",
|
|
24
|
+
styles: "background-color:#f9f4c8;text-align:center;display:inline-block;padding:5px;text-transform:uppercase;font-weight:600;font-size:14px;margin-left:10px;margin-bottom:10px;border-radius:5px;",
|
|
25
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1lc3NhZ2VCb3hUYWcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWErQiIsImZpbGUiOiJNZXNzYWdlQm94VGFnLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuY29uc3QgTWluaU1lc3NzYWdlID0gc3R5bGVkLmRpdmBcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjRjODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuYDtcblxudHlwZSBQcm9wcyA9IHtcbiAgdGFnTWVzc2FnZTogc3RyaW5nO1xufTtcbmV4cG9ydCBjb25zdCBNZXNzYWdlQm94VGFnID0gKHsgdGFnTWVzc2FnZSB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiA8TWluaU1lc3NzYWdlPnt0KHRhZ01lc3NhZ2UpfTwvTWluaU1lc3NzYWdlPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VCb3hUYWc7XG4iXX0= */",
|
|
26
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export var MessageBoxTag = function MessageBoxTag(_ref) {
|
|
30
|
+
var tagMessage = _ref.tagMessage;
|
|
31
|
+
|
|
32
|
+
var _useTranslation = useTranslation(),
|
|
33
|
+
t = _useTranslation.t;
|
|
34
|
+
|
|
35
|
+
return ___EmotionJSX(MiniMesssage, null, t(tagMessage));
|
|
36
|
+
};
|
|
37
|
+
export default MessageBoxTag;
|
package/es/MessageBox/index.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
2
|
|
|
3
|
-
function
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
4
|
|
|
5
|
-
function
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
6
|
|
|
7
|
-
function
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
10
|
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
14
|
-
|
|
15
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
16
|
-
|
|
17
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
18
|
-
|
|
19
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
-
|
|
21
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
12
|
|
|
23
13
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
24
14
|
|
|
@@ -29,14 +19,13 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
29
19
|
* LICENSE file in the root directory of this source tree.
|
|
30
20
|
*
|
|
31
21
|
*/
|
|
32
|
-
import React, {
|
|
33
|
-
|
|
34
|
-
import {
|
|
22
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react'; // @ts-ignore
|
|
23
|
+
|
|
24
|
+
import { useSwipeable } from 'react-swipeable';
|
|
35
25
|
import BEMHelper from 'react-bem-helper';
|
|
36
|
-
import { OneColumn } from '@ndla/ui';
|
|
37
26
|
import SafeLink from '@ndla/safelink';
|
|
27
|
+
import { OneColumn } from '../Layout';
|
|
38
28
|
import Spinner from '../Spinner';
|
|
39
|
-
import { movieShape } from './shapes';
|
|
40
29
|
import NavigationArrow from './NavigationArrow';
|
|
41
30
|
import SlideshowIndicator from './SlideshowIndicator';
|
|
42
31
|
import { jsx as ___EmotionJSX } from "@emotion/core";
|
|
@@ -58,253 +47,231 @@ var renderSlideItem = function renderSlideItem(slide) {
|
|
|
58
47
|
}));
|
|
59
48
|
};
|
|
60
49
|
|
|
61
|
-
var FilmSlideshow =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
50
|
+
var FilmSlideshow = function FilmSlideshow(_ref) {
|
|
51
|
+
var _ref$autoSlide = _ref.autoSlide,
|
|
52
|
+
autoSlide = _ref$autoSlide === void 0 ? false : _ref$autoSlide,
|
|
53
|
+
_ref$slideshow = _ref.slideshow,
|
|
54
|
+
slideshow = _ref$slideshow === void 0 ? [] : _ref$slideshow,
|
|
55
|
+
_ref$slideInterval = _ref.slideInterval,
|
|
56
|
+
slideInterval = _ref$slideInterval === void 0 ? 5000 : _ref$slideInterval;
|
|
57
|
+
|
|
58
|
+
var _useState = useState(0),
|
|
59
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
60
|
+
swipeDistance = _useState2[0],
|
|
61
|
+
setSwipeDistance = _useState2[1];
|
|
62
|
+
|
|
63
|
+
var _useState3 = useState(0),
|
|
64
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
65
|
+
slideIndex = _useState4[0],
|
|
66
|
+
setSlideIndex = _useState4[1];
|
|
67
|
+
|
|
68
|
+
var _useState5 = useState(0),
|
|
69
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
70
|
+
slideIndexTarget = _useState6[0],
|
|
71
|
+
setSlideIndexTarget = _useState6[1];
|
|
72
|
+
|
|
73
|
+
var _useState7 = useState(true),
|
|
74
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
75
|
+
animationComplete = _useState8[0],
|
|
76
|
+
setAnimationComplete = _useState8[1];
|
|
77
|
+
|
|
78
|
+
var slideRef = useRef(null);
|
|
79
|
+
var slideText = useRef(null);
|
|
80
|
+
var timer = useRef(null);
|
|
81
|
+
var gotoSlide = useCallback(function (indexTarget) {
|
|
82
|
+
var useAnimation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
83
|
+
setSwipeDistance(0);
|
|
84
|
+
|
|
85
|
+
if (timer.current) {
|
|
86
|
+
clearTimeout(timer.current);
|
|
95
87
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
88
|
+
|
|
89
|
+
setSlideIndexTarget(indexTarget);
|
|
90
|
+
setAnimationComplete(!useAnimation);
|
|
91
|
+
}, []);
|
|
92
|
+
|
|
93
|
+
var onChangedSlide = function onChangedSlide() {
|
|
94
|
+
if (!animationComplete) {
|
|
95
|
+
if (slideRef.current) {
|
|
96
|
+
slideRef.current.style.transition = 'none';
|
|
97
|
+
slideRef.current.style.transform = "translateX(".concat(slideIndexTarget * 100, "vw))");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
setAnimationComplete(true);
|
|
101
|
+
setSlideIndex(slideIndexTarget);
|
|
102
|
+
} else if (slideIndexTarget === -1) {
|
|
103
|
+
if (slideRef.current) {
|
|
109
104
|
// Go to last slide for continuous loop
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
105
|
+
slideRef.current.style.transition = 'none';
|
|
106
|
+
slideRef.current.style.transform = "translateX(".concat(slideshow.length * 100, "vw))");
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
setSlideIndex(slideshow.length - 1);
|
|
110
|
+
setSlideIndexTarget(slideshow.length - 1);
|
|
111
|
+
setAnimationComplete(true);
|
|
112
|
+
} else if (slideIndexTarget === slideshow.length) {
|
|
113
|
+
if (slideRef.current) {
|
|
118
114
|
// Go to first slide for continuous loop
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
this.setState({
|
|
122
|
-
slideIndex: 0,
|
|
123
|
-
slideIndexTarget: 0,
|
|
124
|
-
animationComplete: true
|
|
125
|
-
});
|
|
126
|
-
} else {
|
|
127
|
-
this.setState(function (prevState) {
|
|
128
|
-
return {
|
|
129
|
-
animationComplete: true,
|
|
130
|
-
slideIndex: prevState.slideIndexTarget
|
|
131
|
-
};
|
|
132
|
-
});
|
|
115
|
+
slideRef.current.style.transition = 'none';
|
|
116
|
+
slideRef.current.style.transform = "translateX(100vw))";
|
|
133
117
|
}
|
|
118
|
+
|
|
119
|
+
setSlideIndex(0);
|
|
120
|
+
setSlideIndexTarget(0);
|
|
121
|
+
setAnimationComplete(true);
|
|
122
|
+
} else {
|
|
123
|
+
setAnimationComplete(true);
|
|
124
|
+
setSlideIndex(slideIndexTarget);
|
|
134
125
|
}
|
|
135
|
-
}
|
|
136
|
-
key: "onSwipeEnd",
|
|
137
|
-
value: function onSwipeEnd() {
|
|
138
|
-
var slide;
|
|
139
|
-
|
|
140
|
-
if (this.swipeDistance > 40) {
|
|
141
|
-
slide = -1;
|
|
142
|
-
} else if (this.swipeDistance < -40) {
|
|
143
|
-
slide = 1;
|
|
144
|
-
} else {
|
|
145
|
-
slide = 0;
|
|
146
|
-
}
|
|
126
|
+
};
|
|
147
127
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
slideIndex: prevState.slideIndex + slide,
|
|
158
|
-
slideIndexTarget: prevState.slideIndex + slide
|
|
159
|
-
};
|
|
160
|
-
});
|
|
161
|
-
} else {
|
|
162
|
-
// Reset transfrom
|
|
163
|
-
this.slideRef.current.style.transform = this.getSlidePosition(this.state.slideIndex + slide);
|
|
164
|
-
}
|
|
128
|
+
var onSwipeEnd = function onSwipeEnd() {
|
|
129
|
+
var slide;
|
|
130
|
+
|
|
131
|
+
if (swipeDistance > 40) {
|
|
132
|
+
slide = -1;
|
|
133
|
+
} else if (swipeDistance < -40) {
|
|
134
|
+
slide = 1;
|
|
135
|
+
} else {
|
|
136
|
+
slide = 0;
|
|
165
137
|
}
|
|
166
|
-
}, {
|
|
167
|
-
key: "onSwipe",
|
|
168
|
-
value: function onSwipe(eventData) {
|
|
169
|
-
if (eventData.dir === 'Up' || eventData.dir === 'Down') {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
138
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
var opacityText = 1 - Math.min(100, Math.abs(this.swipeDistance)) / 100;
|
|
178
|
-
this.slideText.current.style.transition = 'none';
|
|
179
|
-
this.slideText.current.style.opacity = opacityText;
|
|
139
|
+
if (slideRef.current && slideText.current) {
|
|
140
|
+
slideRef.current.style.transition = defaultTransitionSwipeEnd;
|
|
141
|
+
slideText.current.style.transition = defaultTransitionText;
|
|
142
|
+
slideText.current.style.opacity = '1';
|
|
180
143
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
});
|
|
193
|
-
} else if (this.state.slideIndex >= slideshowLength) {
|
|
194
|
-
this.slideRef.current.style.transition = 'none';
|
|
195
|
-
this.slideRef.current.style.transform = this.getSlidePosition(0);
|
|
196
|
-
this.setState({
|
|
197
|
-
slideIndex: 0,
|
|
198
|
-
slideIndexTarget: 0
|
|
199
|
-
});
|
|
144
|
+
|
|
145
|
+
setSwipeDistance(0);
|
|
146
|
+
initTimer();
|
|
147
|
+
|
|
148
|
+
if (slide !== 0) {
|
|
149
|
+
setSlideIndex(slideIndex + slide);
|
|
150
|
+
setSlideIndexTarget(slideIndex + slide);
|
|
151
|
+
} else {
|
|
152
|
+
// Reset transfrom
|
|
153
|
+
if (slideRef.current) {
|
|
154
|
+
slideRef.current.style.transform = getSlidePosition(slideIndex + slide);
|
|
200
155
|
}
|
|
201
156
|
}
|
|
202
|
-
}
|
|
203
|
-
key: "getSlidePosition",
|
|
204
|
-
value: function getSlidePosition(target) {
|
|
205
|
-
if (this.swipeDistance !== 0) {
|
|
206
|
-
return "translateX(calc(".concat(this.swipeDistance, "px -\n ").concat((target + 1) * 100, "vw))");
|
|
207
|
-
}
|
|
157
|
+
};
|
|
208
158
|
|
|
209
|
-
|
|
159
|
+
var onSwipe = function onSwipe(eventData) {
|
|
160
|
+
if (eventData.dir === 'Up' || eventData.dir === 'Down') {
|
|
161
|
+
return;
|
|
210
162
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
this.swipeDistance = 0;
|
|
215
|
-
clearTimeout(this.timer);
|
|
216
|
-
this.initTimer();
|
|
217
|
-
this.setState({
|
|
218
|
-
slideIndexTarget: slideIndexTarget,
|
|
219
|
-
animationComplete: !useAnimation
|
|
220
|
-
});
|
|
163
|
+
|
|
164
|
+
if (timer.current) {
|
|
165
|
+
clearTimeout(timer.current);
|
|
221
166
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.timer = setTimeout(function () {
|
|
229
|
-
_this2.gotoSlide(_this2.state.slideIndex + 1);
|
|
230
|
-
}, this.props.slideInterval);
|
|
231
|
-
}
|
|
167
|
+
|
|
168
|
+
setSwipeDistance(eventData.deltaX);
|
|
169
|
+
|
|
170
|
+
if (slideRef && slideRef.current) {
|
|
171
|
+
slideRef.current.style.transition = 'none';
|
|
172
|
+
slideRef.current.style.transform = getSlidePosition(slideIndexTarget);
|
|
232
173
|
}
|
|
233
|
-
}, {
|
|
234
|
-
key: "render",
|
|
235
|
-
value: function render() {
|
|
236
|
-
var slideshow = this.props.slideshow;
|
|
237
|
-
var _this$state = this.state,
|
|
238
|
-
slideIndex = _this$state.slideIndex,
|
|
239
|
-
slideIndexTarget = _this$state.slideIndexTarget,
|
|
240
|
-
animationComplete = _this$state.animationComplete;
|
|
241
|
-
|
|
242
|
-
if (slideshow.length === 0) {
|
|
243
|
-
return ___EmotionJSX("div", null, ___EmotionJSX("div", classes('slideshow'), ___EmotionJSX(Spinner, {
|
|
244
|
-
inverted: true
|
|
245
|
-
})));
|
|
246
|
-
}
|
|
247
174
|
|
|
248
|
-
|
|
249
|
-
|
|
175
|
+
var opacityText = 1 - Math.min(100, Math.abs(swipeDistance)) / 100;
|
|
176
|
+
|
|
177
|
+
if (slideText && slideText.current) {
|
|
178
|
+
slideText.current.style.transition = 'none';
|
|
179
|
+
slideText.current.style.opacity = opacityText.toString();
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
var onTransitionEnd = function onTransitionEnd() {
|
|
184
|
+
var slideshowLength = slideshow.length;
|
|
250
185
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
186
|
+
if (slideIndex === -1) {
|
|
187
|
+
if (slideRef.current) {
|
|
188
|
+
slideRef.current.style.transition = 'none';
|
|
189
|
+
slideRef.current.style.transform = getSlidePosition(slideshowLength - 1);
|
|
255
190
|
}
|
|
256
191
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}), !animationComplete && ___EmotionJSX("div", _extends({}, classes('item', 'fade-over'), {
|
|
274
|
-
role: "img",
|
|
275
|
-
onAnimationEnd: this.onChangedSlide,
|
|
276
|
-
style: {
|
|
277
|
-
backgroundImage: "url(".concat(slideshow[activeSlide].metaImage && slideshow[activeSlide].metaImage.url || '', ")")
|
|
278
|
-
}
|
|
279
|
-
})), ___EmotionJSX("div", _extends({
|
|
280
|
-
ref: this.slideRef
|
|
281
|
-
}, classes('item-wrapper'), {
|
|
282
|
-
onTransitionEnd: this.onTransitionEnd,
|
|
283
|
-
style: {
|
|
284
|
-
width: slideshowWidth,
|
|
285
|
-
transform: this.getSlidePosition(slideIndex)
|
|
286
|
-
}
|
|
287
|
-
}), renderSlideItem(slideshow[slideshow.length - 1], -1), slideshow.map(renderSlideItem), renderSlideItem(slideshow[0], slideshow.length))), ___EmotionJSX(SlideshowIndicator, {
|
|
288
|
-
slideshow: slideshow,
|
|
289
|
-
activeSlide: activeSlide,
|
|
290
|
-
gotoSlide: this.gotoSlide
|
|
291
|
-
}));
|
|
192
|
+
setSlideIndex(slideshowLength - 1);
|
|
193
|
+
setSlideIndexTarget(slideshowLength - 1);
|
|
194
|
+
} else if (slideIndex >= slideshowLength) {
|
|
195
|
+
if (slideRef.current) {
|
|
196
|
+
slideRef.current.style.transition = 'none';
|
|
197
|
+
slideRef.current.style.transform = getSlidePosition(0);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
setSlideIndex(0);
|
|
201
|
+
setSlideIndexTarget(0);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var getSlidePosition = function getSlidePosition(target) {
|
|
206
|
+
if (swipeDistance !== 0) {
|
|
207
|
+
return "translateX(calc(".concat(swipeDistance, "px -\n ").concat((target + 1) * 100, "vw))");
|
|
292
208
|
}
|
|
293
|
-
}]);
|
|
294
209
|
|
|
295
|
-
|
|
296
|
-
}
|
|
210
|
+
return "translateX(-".concat((target + 1) * 100, "vw)");
|
|
211
|
+
};
|
|
297
212
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
213
|
+
var initTimer = useCallback(function () {
|
|
214
|
+
if (autoSlide) {
|
|
215
|
+
timer.current = setTimeout(function () {
|
|
216
|
+
gotoSlide(slideIndex + 1);
|
|
217
|
+
}, slideInterval);
|
|
218
|
+
}
|
|
219
|
+
}, [autoSlide, gotoSlide, slideInterval, slideIndex]);
|
|
220
|
+
useEffect(function () {
|
|
221
|
+
initTimer();
|
|
222
|
+
}, [initTimer]);
|
|
223
|
+
var handlers = useSwipeable({
|
|
224
|
+
onSwiped: onSwipeEnd,
|
|
225
|
+
onSwiping: onSwipe
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
if (slideshow.length === 0) {
|
|
229
|
+
return ___EmotionJSX("div", null, ___EmotionJSX("div", classes('slideshow'), ___EmotionJSX(Spinner, {
|
|
230
|
+
inverted: true
|
|
231
|
+
})));
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
var slideshowWidth = "".concat((slideshow.length + 2) * 100, "vw");
|
|
235
|
+
var activeSlide = slideIndex;
|
|
236
|
+
|
|
237
|
+
if (activeSlide < 0) {
|
|
238
|
+
activeSlide = slideshow.length - 1;
|
|
239
|
+
} else if (activeSlide >= slideshow.length) {
|
|
240
|
+
activeSlide = 0;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return ___EmotionJSX("section", _extends({}, classes(''), handlers), ___EmotionJSX(React.Fragment, null, ___EmotionJSX("div", classes('slide-link-wrapper'), ___EmotionJSX(OneColumn, null, ___EmotionJSX(SafeLink, _extends({
|
|
244
|
+
to: slideshow[activeSlide].path
|
|
245
|
+
}, classes('item-wrapper', 'text', {
|
|
246
|
+
out: !animationComplete
|
|
247
|
+
})), ___EmotionJSX("div", _extends({}, classes('slide-info'), {
|
|
248
|
+
ref: slideText
|
|
249
|
+
}), ___EmotionJSX("h1", null, slideshow[activeSlide].title), ___EmotionJSX("p", null, slideshow[activeSlide].metaDescription))))), ___EmotionJSX(NavigationArrow, {
|
|
250
|
+
slideIndexTarget: slideIndexTarget > 0 ? slideIndexTarget - 1 : slideshow.length - 1,
|
|
251
|
+
gotoSlide: gotoSlide
|
|
252
|
+
}), ___EmotionJSX(NavigationArrow, {
|
|
253
|
+
slideIndexTarget: slideIndexTarget < slideshow.length - 1 ? slideIndexTarget + 1 : 0,
|
|
254
|
+
gotoSlide: gotoSlide,
|
|
255
|
+
rightArrow: true
|
|
256
|
+
}), !animationComplete && ___EmotionJSX("div", _extends({}, classes('item', 'fade-over'), {
|
|
257
|
+
role: "img",
|
|
258
|
+
onAnimationEnd: onChangedSlide,
|
|
259
|
+
style: {
|
|
260
|
+
backgroundImage: "url(".concat(slideshow[activeSlide].metaImage && slideshow[activeSlide].metaImage.url || '', ")")
|
|
261
|
+
}
|
|
262
|
+
})), ___EmotionJSX("div", _extends({
|
|
263
|
+
ref: slideRef
|
|
264
|
+
}, classes('item-wrapper'), {
|
|
265
|
+
onTransitionEnd: onTransitionEnd,
|
|
266
|
+
style: {
|
|
267
|
+
width: slideshowWidth,
|
|
268
|
+
transform: getSlidePosition(slideIndex)
|
|
269
|
+
}
|
|
270
|
+
}), renderSlideItem(slideshow[slideshow.length - 1]), slideshow.map(renderSlideItem), renderSlideItem(slideshow[0])), ___EmotionJSX(SlideshowIndicator, {
|
|
271
|
+
slideshow: slideshow,
|
|
272
|
+
activeSlide: activeSlide,
|
|
273
|
+
gotoSlide: gotoSlide
|
|
274
|
+
})));
|
|
309
275
|
};
|
|
276
|
+
|
|
310
277
|
export default FilmSlideshow;
|