@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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -7,19 +9,15 @@ exports["default"] = void 0;
|
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
12
|
var _reactSwipeable = require("react-swipeable");
|
|
13
13
|
|
|
14
14
|
var _reactBemHelper = _interopRequireDefault(require("react-bem-helper"));
|
|
15
15
|
|
|
16
|
-
var _ui = require("@ndla/ui");
|
|
17
|
-
|
|
18
16
|
var _safelink = _interopRequireDefault(require("@ndla/safelink"));
|
|
19
17
|
|
|
20
|
-
var
|
|
18
|
+
var _Layout = require("../Layout");
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _Spinner = _interopRequireDefault(require("../Spinner"));
|
|
23
21
|
|
|
24
22
|
var _NavigationArrow = _interopRequireDefault(require("./NavigationArrow"));
|
|
25
23
|
|
|
@@ -33,27 +31,17 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
33
31
|
|
|
34
32
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
33
|
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
39
|
-
|
|
40
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
41
|
-
|
|
42
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
43
|
-
|
|
44
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
34
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
45
35
|
|
|
46
|
-
function
|
|
36
|
+
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."); }
|
|
47
37
|
|
|
48
|
-
function
|
|
38
|
+
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); }
|
|
49
39
|
|
|
50
|
-
function
|
|
40
|
+
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; }
|
|
51
41
|
|
|
52
|
-
function
|
|
42
|
+
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; }
|
|
53
43
|
|
|
54
|
-
function
|
|
55
|
-
|
|
56
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
44
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
57
45
|
|
|
58
46
|
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); }
|
|
59
47
|
|
|
@@ -75,254 +63,232 @@ var renderSlideItem = function renderSlideItem(slide) {
|
|
|
75
63
|
}));
|
|
76
64
|
};
|
|
77
65
|
|
|
78
|
-
var FilmSlideshow =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
66
|
+
var FilmSlideshow = function FilmSlideshow(_ref) {
|
|
67
|
+
var _ref$autoSlide = _ref.autoSlide,
|
|
68
|
+
autoSlide = _ref$autoSlide === void 0 ? false : _ref$autoSlide,
|
|
69
|
+
_ref$slideshow = _ref.slideshow,
|
|
70
|
+
slideshow = _ref$slideshow === void 0 ? [] : _ref$slideshow,
|
|
71
|
+
_ref$slideInterval = _ref.slideInterval,
|
|
72
|
+
slideInterval = _ref$slideInterval === void 0 ? 5000 : _ref$slideInterval;
|
|
73
|
+
|
|
74
|
+
var _useState = (0, _react.useState)(0),
|
|
75
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
76
|
+
swipeDistance = _useState2[0],
|
|
77
|
+
setSwipeDistance = _useState2[1];
|
|
78
|
+
|
|
79
|
+
var _useState3 = (0, _react.useState)(0),
|
|
80
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
81
|
+
slideIndex = _useState4[0],
|
|
82
|
+
setSlideIndex = _useState4[1];
|
|
83
|
+
|
|
84
|
+
var _useState5 = (0, _react.useState)(0),
|
|
85
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
86
|
+
slideIndexTarget = _useState6[0],
|
|
87
|
+
setSlideIndexTarget = _useState6[1];
|
|
88
|
+
|
|
89
|
+
var _useState7 = (0, _react.useState)(true),
|
|
90
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
91
|
+
animationComplete = _useState8[0],
|
|
92
|
+
setAnimationComplete = _useState8[1];
|
|
93
|
+
|
|
94
|
+
var slideRef = (0, _react.useRef)(null);
|
|
95
|
+
var slideText = (0, _react.useRef)(null);
|
|
96
|
+
var timer = (0, _react.useRef)(null);
|
|
97
|
+
var gotoSlide = (0, _react.useCallback)(function (indexTarget) {
|
|
98
|
+
var useAnimation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
99
|
+
setSwipeDistance(0);
|
|
100
|
+
|
|
101
|
+
if (timer.current) {
|
|
102
|
+
clearTimeout(timer.current);
|
|
112
103
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
104
|
+
|
|
105
|
+
setSlideIndexTarget(indexTarget);
|
|
106
|
+
setAnimationComplete(!useAnimation);
|
|
107
|
+
}, []);
|
|
108
|
+
|
|
109
|
+
var onChangedSlide = function onChangedSlide() {
|
|
110
|
+
if (!animationComplete) {
|
|
111
|
+
if (slideRef.current) {
|
|
112
|
+
slideRef.current.style.transition = 'none';
|
|
113
|
+
slideRef.current.style.transform = "translateX(".concat(slideIndexTarget * 100, "vw))");
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
setAnimationComplete(true);
|
|
117
|
+
setSlideIndex(slideIndexTarget);
|
|
118
|
+
} else if (slideIndexTarget === -1) {
|
|
119
|
+
if (slideRef.current) {
|
|
126
120
|
// Go to last slide for continuous loop
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
121
|
+
slideRef.current.style.transition = 'none';
|
|
122
|
+
slideRef.current.style.transform = "translateX(".concat(slideshow.length * 100, "vw))");
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
setSlideIndex(slideshow.length - 1);
|
|
126
|
+
setSlideIndexTarget(slideshow.length - 1);
|
|
127
|
+
setAnimationComplete(true);
|
|
128
|
+
} else if (slideIndexTarget === slideshow.length) {
|
|
129
|
+
if (slideRef.current) {
|
|
135
130
|
// Go to first slide for continuous loop
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
this.setState({
|
|
139
|
-
slideIndex: 0,
|
|
140
|
-
slideIndexTarget: 0,
|
|
141
|
-
animationComplete: true
|
|
142
|
-
});
|
|
143
|
-
} else {
|
|
144
|
-
this.setState(function (prevState) {
|
|
145
|
-
return {
|
|
146
|
-
animationComplete: true,
|
|
147
|
-
slideIndex: prevState.slideIndexTarget
|
|
148
|
-
};
|
|
149
|
-
});
|
|
131
|
+
slideRef.current.style.transition = 'none';
|
|
132
|
+
slideRef.current.style.transform = "translateX(100vw))";
|
|
150
133
|
}
|
|
134
|
+
|
|
135
|
+
setSlideIndex(0);
|
|
136
|
+
setSlideIndexTarget(0);
|
|
137
|
+
setAnimationComplete(true);
|
|
138
|
+
} else {
|
|
139
|
+
setAnimationComplete(true);
|
|
140
|
+
setSlideIndex(slideIndexTarget);
|
|
151
141
|
}
|
|
152
|
-
}
|
|
153
|
-
key: "onSwipeEnd",
|
|
154
|
-
value: function onSwipeEnd() {
|
|
155
|
-
var slide;
|
|
156
|
-
|
|
157
|
-
if (this.swipeDistance > 40) {
|
|
158
|
-
slide = -1;
|
|
159
|
-
} else if (this.swipeDistance < -40) {
|
|
160
|
-
slide = 1;
|
|
161
|
-
} else {
|
|
162
|
-
slide = 0;
|
|
163
|
-
}
|
|
142
|
+
};
|
|
164
143
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
slideIndex: prevState.slideIndex + slide,
|
|
175
|
-
slideIndexTarget: prevState.slideIndex + slide
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
} else {
|
|
179
|
-
// Reset transfrom
|
|
180
|
-
this.slideRef.current.style.transform = this.getSlidePosition(this.state.slideIndex + slide);
|
|
181
|
-
}
|
|
144
|
+
var onSwipeEnd = function onSwipeEnd() {
|
|
145
|
+
var slide;
|
|
146
|
+
|
|
147
|
+
if (swipeDistance > 40) {
|
|
148
|
+
slide = -1;
|
|
149
|
+
} else if (swipeDistance < -40) {
|
|
150
|
+
slide = 1;
|
|
151
|
+
} else {
|
|
152
|
+
slide = 0;
|
|
182
153
|
}
|
|
183
|
-
}, {
|
|
184
|
-
key: "onSwipe",
|
|
185
|
-
value: function onSwipe(eventData) {
|
|
186
|
-
if (eventData.dir === 'Up' || eventData.dir === 'Down') {
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
154
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
var opacityText = 1 - Math.min(100, Math.abs(this.swipeDistance)) / 100;
|
|
195
|
-
this.slideText.current.style.transition = 'none';
|
|
196
|
-
this.slideText.current.style.opacity = opacityText;
|
|
155
|
+
if (slideRef.current && slideText.current) {
|
|
156
|
+
slideRef.current.style.transition = defaultTransitionSwipeEnd;
|
|
157
|
+
slideText.current.style.transition = defaultTransitionText;
|
|
158
|
+
slideText.current.style.opacity = '1';
|
|
197
159
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
});
|
|
210
|
-
} else if (this.state.slideIndex >= slideshowLength) {
|
|
211
|
-
this.slideRef.current.style.transition = 'none';
|
|
212
|
-
this.slideRef.current.style.transform = this.getSlidePosition(0);
|
|
213
|
-
this.setState({
|
|
214
|
-
slideIndex: 0,
|
|
215
|
-
slideIndexTarget: 0
|
|
216
|
-
});
|
|
160
|
+
|
|
161
|
+
setSwipeDistance(0);
|
|
162
|
+
initTimer();
|
|
163
|
+
|
|
164
|
+
if (slide !== 0) {
|
|
165
|
+
setSlideIndex(slideIndex + slide);
|
|
166
|
+
setSlideIndexTarget(slideIndex + slide);
|
|
167
|
+
} else {
|
|
168
|
+
// Reset transfrom
|
|
169
|
+
if (slideRef.current) {
|
|
170
|
+
slideRef.current.style.transform = getSlidePosition(slideIndex + slide);
|
|
217
171
|
}
|
|
218
172
|
}
|
|
219
|
-
}
|
|
220
|
-
key: "getSlidePosition",
|
|
221
|
-
value: function getSlidePosition(target) {
|
|
222
|
-
if (this.swipeDistance !== 0) {
|
|
223
|
-
return "translateX(calc(".concat(this.swipeDistance, "px -\n ").concat((target + 1) * 100, "vw))");
|
|
224
|
-
}
|
|
173
|
+
};
|
|
225
174
|
|
|
226
|
-
|
|
175
|
+
var onSwipe = function onSwipe(eventData) {
|
|
176
|
+
if (eventData.dir === 'Up' || eventData.dir === 'Down') {
|
|
177
|
+
return;
|
|
227
178
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
this.swipeDistance = 0;
|
|
232
|
-
clearTimeout(this.timer);
|
|
233
|
-
this.initTimer();
|
|
234
|
-
this.setState({
|
|
235
|
-
slideIndexTarget: slideIndexTarget,
|
|
236
|
-
animationComplete: !useAnimation
|
|
237
|
-
});
|
|
179
|
+
|
|
180
|
+
if (timer.current) {
|
|
181
|
+
clearTimeout(timer.current);
|
|
238
182
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
this.timer = setTimeout(function () {
|
|
246
|
-
_this2.gotoSlide(_this2.state.slideIndex + 1);
|
|
247
|
-
}, this.props.slideInterval);
|
|
248
|
-
}
|
|
183
|
+
|
|
184
|
+
setSwipeDistance(eventData.deltaX);
|
|
185
|
+
|
|
186
|
+
if (slideRef && slideRef.current) {
|
|
187
|
+
slideRef.current.style.transition = 'none';
|
|
188
|
+
slideRef.current.style.transform = getSlidePosition(slideIndexTarget);
|
|
249
189
|
}
|
|
250
|
-
}, {
|
|
251
|
-
key: "render",
|
|
252
|
-
value: function render() {
|
|
253
|
-
var slideshow = this.props.slideshow;
|
|
254
|
-
var _this$state = this.state,
|
|
255
|
-
slideIndex = _this$state.slideIndex,
|
|
256
|
-
slideIndexTarget = _this$state.slideIndexTarget,
|
|
257
|
-
animationComplete = _this$state.animationComplete;
|
|
258
|
-
|
|
259
|
-
if (slideshow.length === 0) {
|
|
260
|
-
return (0, _core.jsx)("div", null, (0, _core.jsx)("div", classes('slideshow'), (0, _core.jsx)(_Spinner["default"], {
|
|
261
|
-
inverted: true
|
|
262
|
-
})));
|
|
263
|
-
}
|
|
264
190
|
|
|
265
|
-
|
|
266
|
-
var activeSlide = slideIndex;
|
|
191
|
+
var opacityText = 1 - Math.min(100, Math.abs(swipeDistance)) / 100;
|
|
267
192
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
193
|
+
if (slideText && slideText.current) {
|
|
194
|
+
slideText.current.style.transition = 'none';
|
|
195
|
+
slideText.current.style.opacity = opacityText.toString();
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
var onTransitionEnd = function onTransitionEnd() {
|
|
200
|
+
var slideshowLength = slideshow.length;
|
|
201
|
+
|
|
202
|
+
if (slideIndex === -1) {
|
|
203
|
+
if (slideRef.current) {
|
|
204
|
+
slideRef.current.style.transition = 'none';
|
|
205
|
+
slideRef.current.style.transform = getSlidePosition(slideshowLength - 1);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
setSlideIndex(slideshowLength - 1);
|
|
209
|
+
setSlideIndexTarget(slideshowLength - 1);
|
|
210
|
+
} else if (slideIndex >= slideshowLength) {
|
|
211
|
+
if (slideRef.current) {
|
|
212
|
+
slideRef.current.style.transition = 'none';
|
|
213
|
+
slideRef.current.style.transform = getSlidePosition(0);
|
|
272
214
|
}
|
|
273
215
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
onSwiping: this.onSwipe
|
|
277
|
-
}), (0, _core.jsx)("div", classes('slide-link-wrapper'), (0, _core.jsx)(_ui.OneColumn, null, (0, _core.jsx)(_safelink["default"], _extends({
|
|
278
|
-
to: slideshow[activeSlide].path
|
|
279
|
-
}, classes('item-wrapper', 'text', {
|
|
280
|
-
out: !animationComplete
|
|
281
|
-
})), (0, _core.jsx)("div", _extends({}, classes('slide-info'), {
|
|
282
|
-
ref: this.slideText
|
|
283
|
-
}), (0, _core.jsx)("h1", null, slideshow[activeSlide].title), (0, _core.jsx)("p", null, slideshow[activeSlide].metaDescription))))), (0, _core.jsx)(_NavigationArrow["default"], {
|
|
284
|
-
slideIndexTarget: slideIndexTarget > 0 ? slideIndexTarget - 1 : slideshow.length - 1,
|
|
285
|
-
gotoSlide: this.gotoSlide
|
|
286
|
-
}), (0, _core.jsx)(_NavigationArrow["default"], {
|
|
287
|
-
slideIndexTarget: slideIndexTarget < slideshow.length - 1 ? slideIndexTarget + 1 : 0,
|
|
288
|
-
gotoSlide: this.gotoSlide,
|
|
289
|
-
rightArrow: true
|
|
290
|
-
}), !animationComplete && (0, _core.jsx)("div", _extends({}, classes('item', 'fade-over'), {
|
|
291
|
-
role: "img",
|
|
292
|
-
onAnimationEnd: this.onChangedSlide,
|
|
293
|
-
style: {
|
|
294
|
-
backgroundImage: "url(".concat(slideshow[activeSlide].metaImage && slideshow[activeSlide].metaImage.url || '', ")")
|
|
295
|
-
}
|
|
296
|
-
})), (0, _core.jsx)("div", _extends({
|
|
297
|
-
ref: this.slideRef
|
|
298
|
-
}, classes('item-wrapper'), {
|
|
299
|
-
onTransitionEnd: this.onTransitionEnd,
|
|
300
|
-
style: {
|
|
301
|
-
width: slideshowWidth,
|
|
302
|
-
transform: this.getSlidePosition(slideIndex)
|
|
303
|
-
}
|
|
304
|
-
}), renderSlideItem(slideshow[slideshow.length - 1], -1), slideshow.map(renderSlideItem), renderSlideItem(slideshow[0], slideshow.length))), (0, _core.jsx)(_SlideshowIndicator["default"], {
|
|
305
|
-
slideshow: slideshow,
|
|
306
|
-
activeSlide: activeSlide,
|
|
307
|
-
gotoSlide: this.gotoSlide
|
|
308
|
-
}));
|
|
216
|
+
setSlideIndex(0);
|
|
217
|
+
setSlideIndexTarget(0);
|
|
309
218
|
}
|
|
310
|
-
}
|
|
219
|
+
};
|
|
311
220
|
|
|
312
|
-
|
|
313
|
-
|
|
221
|
+
var getSlidePosition = function getSlidePosition(target) {
|
|
222
|
+
if (swipeDistance !== 0) {
|
|
223
|
+
return "translateX(calc(".concat(swipeDistance, "px -\n ").concat((target + 1) * 100, "vw))");
|
|
224
|
+
}
|
|
314
225
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
226
|
+
return "translateX(-".concat((target + 1) * 100, "vw)");
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
var initTimer = (0, _react.useCallback)(function () {
|
|
230
|
+
if (autoSlide) {
|
|
231
|
+
timer.current = setTimeout(function () {
|
|
232
|
+
gotoSlide(slideIndex + 1);
|
|
233
|
+
}, slideInterval);
|
|
234
|
+
}
|
|
235
|
+
}, [autoSlide, gotoSlide, slideInterval, slideIndex]);
|
|
236
|
+
(0, _react.useEffect)(function () {
|
|
237
|
+
initTimer();
|
|
238
|
+
}, [initTimer]);
|
|
239
|
+
var handlers = (0, _reactSwipeable.useSwipeable)({
|
|
240
|
+
onSwiped: onSwipeEnd,
|
|
241
|
+
onSwiping: onSwipe
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
if (slideshow.length === 0) {
|
|
245
|
+
return (0, _core.jsx)("div", null, (0, _core.jsx)("div", classes('slideshow'), (0, _core.jsx)(_Spinner["default"], {
|
|
246
|
+
inverted: true
|
|
247
|
+
})));
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
var slideshowWidth = "".concat((slideshow.length + 2) * 100, "vw");
|
|
251
|
+
var activeSlide = slideIndex;
|
|
252
|
+
|
|
253
|
+
if (activeSlide < 0) {
|
|
254
|
+
activeSlide = slideshow.length - 1;
|
|
255
|
+
} else if (activeSlide >= slideshow.length) {
|
|
256
|
+
activeSlide = 0;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return (0, _core.jsx)("section", _extends({}, classes(''), handlers), (0, _core.jsx)(_react["default"].Fragment, null, (0, _core.jsx)("div", classes('slide-link-wrapper'), (0, _core.jsx)(_Layout.OneColumn, null, (0, _core.jsx)(_safelink["default"], _extends({
|
|
260
|
+
to: slideshow[activeSlide].path
|
|
261
|
+
}, classes('item-wrapper', 'text', {
|
|
262
|
+
out: !animationComplete
|
|
263
|
+
})), (0, _core.jsx)("div", _extends({}, classes('slide-info'), {
|
|
264
|
+
ref: slideText
|
|
265
|
+
}), (0, _core.jsx)("h1", null, slideshow[activeSlide].title), (0, _core.jsx)("p", null, slideshow[activeSlide].metaDescription))))), (0, _core.jsx)(_NavigationArrow["default"], {
|
|
266
|
+
slideIndexTarget: slideIndexTarget > 0 ? slideIndexTarget - 1 : slideshow.length - 1,
|
|
267
|
+
gotoSlide: gotoSlide
|
|
268
|
+
}), (0, _core.jsx)(_NavigationArrow["default"], {
|
|
269
|
+
slideIndexTarget: slideIndexTarget < slideshow.length - 1 ? slideIndexTarget + 1 : 0,
|
|
270
|
+
gotoSlide: gotoSlide,
|
|
271
|
+
rightArrow: true
|
|
272
|
+
}), !animationComplete && (0, _core.jsx)("div", _extends({}, classes('item', 'fade-over'), {
|
|
273
|
+
role: "img",
|
|
274
|
+
onAnimationEnd: onChangedSlide,
|
|
275
|
+
style: {
|
|
276
|
+
backgroundImage: "url(".concat(slideshow[activeSlide].metaImage && slideshow[activeSlide].metaImage.url || '', ")")
|
|
277
|
+
}
|
|
278
|
+
})), (0, _core.jsx)("div", _extends({
|
|
279
|
+
ref: slideRef
|
|
280
|
+
}, classes('item-wrapper'), {
|
|
281
|
+
onTransitionEnd: onTransitionEnd,
|
|
282
|
+
style: {
|
|
283
|
+
width: slideshowWidth,
|
|
284
|
+
transform: getSlidePosition(slideIndex)
|
|
285
|
+
}
|
|
286
|
+
}), renderSlideItem(slideshow[slideshow.length - 1]), slideshow.map(renderSlideItem), renderSlideItem(slideshow[0])), (0, _core.jsx)(_SlideshowIndicator["default"], {
|
|
287
|
+
slideshow: slideshow,
|
|
288
|
+
activeSlide: activeSlide,
|
|
289
|
+
gotoSlide: gotoSlide
|
|
290
|
+
})));
|
|
326
291
|
};
|
|
292
|
+
|
|
327
293
|
var _default = FilmSlideshow;
|
|
328
294
|
exports["default"] = _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present, NDLA.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
interface Props {
|
|
9
|
+
slideIndexTarget: number;
|
|
10
|
+
slideshowLength?: number;
|
|
11
|
+
gotoSlide: (indexTarget: number, useAnimation: boolean) => void;
|
|
12
|
+
rightArrow?: boolean;
|
|
13
|
+
}
|
|
14
|
+
declare const NavigationArrow: ({ slideIndexTarget, gotoSlide, rightArrow }: Props) => JSX.Element;
|
|
15
|
+
export default NavigationArrow;
|
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
9
|
-
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
9
|
|
|
12
10
|
var _reactBemHelper = _interopRequireDefault(require("react-bem-helper"));
|
|
13
11
|
|
|
@@ -17,74 +15,31 @@ var _core = require("@emotion/core");
|
|
|
17
15
|
|
|
18
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
29
|
-
|
|
30
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
31
|
-
|
|
32
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
33
|
-
|
|
34
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
35
|
-
|
|
36
|
-
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); }; }
|
|
37
|
-
|
|
38
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
39
|
-
|
|
40
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
41
|
-
|
|
42
|
-
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; } }
|
|
43
|
-
|
|
44
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
45
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Copyright (c) 2016-present, NDLA.
|
|
20
|
+
*
|
|
21
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
22
|
+
* LICENSE file in the root directory of this source tree.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
46
25
|
var classes = new _reactBemHelper["default"]({
|
|
47
26
|
name: 'film-slideshow',
|
|
48
27
|
prefix: 'c-'
|
|
49
28
|
});
|
|
50
29
|
|
|
51
|
-
var NavigationArrow =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
_createClass(NavigationArrow, [{
|
|
63
|
-
key: "render",
|
|
64
|
-
value: function render() {
|
|
65
|
-
var _this$props = this.props,
|
|
66
|
-
slideIndexTarget = _this$props.slideIndexTarget,
|
|
67
|
-
gotoSlide = _this$props.gotoSlide,
|
|
68
|
-
rightArrow = _this$props.rightArrow;
|
|
69
|
-
var Chevron = rightArrow ? _common.ChevronRight : _common.ChevronLeft;
|
|
70
|
-
return (0, _core.jsx)("div", classes('navigation-arrows', rightArrow ? 'right' : ''), (0, _core.jsx)("button", {
|
|
71
|
-
type: "button",
|
|
72
|
-
tabIndex: -1,
|
|
73
|
-
onClick: function onClick() {
|
|
74
|
-
gotoSlide(slideIndexTarget, true);
|
|
75
|
-
}
|
|
76
|
-
}, (0, _core.jsx)(Chevron, null)));
|
|
30
|
+
var NavigationArrow = function NavigationArrow(_ref) {
|
|
31
|
+
var slideIndexTarget = _ref.slideIndexTarget,
|
|
32
|
+
gotoSlide = _ref.gotoSlide,
|
|
33
|
+
rightArrow = _ref.rightArrow;
|
|
34
|
+
var Chevron = rightArrow ? _common.ChevronRight : _common.ChevronLeft;
|
|
35
|
+
return (0, _core.jsx)("div", classes('navigation-arrows', rightArrow ? 'right' : ''), (0, _core.jsx)("button", {
|
|
36
|
+
type: "button",
|
|
37
|
+
tabIndex: -1,
|
|
38
|
+
onClick: function onClick() {
|
|
39
|
+
gotoSlide(slideIndexTarget, true);
|
|
77
40
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return NavigationArrow;
|
|
81
|
-
}(_react.Component);
|
|
82
|
-
|
|
83
|
-
NavigationArrow.propTypes = {
|
|
84
|
-
slideIndexTarget: _propTypes["default"].number,
|
|
85
|
-
slideshowLength: _propTypes["default"].number,
|
|
86
|
-
gotoSlide: _propTypes["default"].func,
|
|
87
|
-
rightArrow: _propTypes["default"].bool
|
|
41
|
+
}, (0, _core.jsx)(Chevron, null)));
|
|
88
42
|
};
|
|
43
|
+
|
|
89
44
|
var _default = NavigationArrow;
|
|
90
45
|
exports["default"] = _default;
|