@ilo-org/react 0.10.6 → 0.12.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.
Files changed (246) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/lib/cjs/AccordionCtx-be704051.js +9 -0
  3. package/lib/cjs/{GlobalCtx-97e4b433.js → GlobalCtx-10114bdd.js} +2 -2
  4. package/lib/cjs/ListCtx-14aa546f.js +9 -0
  5. package/lib/cjs/TagCtx-690a1d54.js +7 -0
  6. package/lib/cjs/components/Accordion/Accordion.js +6 -6
  7. package/lib/cjs/components/Accordion/AccordionButton.js +5 -5
  8. package/lib/cjs/components/Accordion/AccordionItem.js +2 -2
  9. package/lib/cjs/components/Accordion/AccordionPanel.js +8 -8
  10. package/lib/cjs/components/Accordion/index.js +2 -2
  11. package/lib/cjs/components/Breadcrumb/Breadcrumb.js +5 -5
  12. package/lib/cjs/components/Breadcrumb/index.js +1 -1
  13. package/lib/cjs/components/Button/Button.js +1 -1
  14. package/lib/cjs/components/Button/index.js +1 -1
  15. package/lib/cjs/components/Callout/Callout.js +4 -4
  16. package/lib/cjs/components/Callout/index.js +1 -1
  17. package/lib/cjs/components/Cards/Card.js +40 -0
  18. package/lib/cjs/components/Cards/CardGroup.js +33 -0
  19. package/lib/cjs/components/Cards/DataCard/index.js +27 -0
  20. package/lib/cjs/components/Cards/DetailCard/index.js +20 -0
  21. package/lib/cjs/components/Cards/FactlistCard/index.js +23 -0
  22. package/lib/cjs/components/Cards/FeatureCard/index.js +24 -0
  23. package/lib/cjs/components/Cards/MultilinkCard/index.js +24 -0
  24. package/lib/cjs/components/Cards/PromoCard/index.js +23 -0
  25. package/lib/cjs/components/Cards/StatCard/index.js +21 -0
  26. package/lib/cjs/components/Cards/TextCard/index.js +25 -0
  27. package/lib/cjs/components/Cards/index.js +37 -0
  28. package/lib/cjs/components/Checkbox/Checkbox.js +5 -5
  29. package/lib/cjs/components/Checkbox/index.js +1 -1
  30. package/lib/cjs/components/Collapse/Collapse.js +1194 -44
  31. package/lib/cjs/components/Collapse/index.js +0 -1
  32. package/lib/cjs/components/ContextMenu/ContextMenu.js +1 -1
  33. package/lib/cjs/components/ContextMenu/index.js +1 -1
  34. package/lib/cjs/components/Credit/Credit.js +3 -3
  35. package/lib/cjs/components/Credit/index.js +1 -1
  36. package/lib/cjs/components/DatePicker/DatePicker.js +4 -4
  37. package/lib/cjs/components/DatePicker/index.js +1 -1
  38. package/lib/cjs/components/Dropdown/Dropdown.js +5 -5
  39. package/lib/cjs/components/Dropdown/index.js +1 -1
  40. package/lib/cjs/components/Empty/Empty.js +1 -1
  41. package/lib/cjs/components/Empty/index.js +1 -1
  42. package/lib/cjs/components/Fieldset/Fieldset.js +5 -5
  43. package/lib/cjs/components/Fieldset/index.js +1 -1
  44. package/lib/cjs/components/FileUpload/FileUpload.js +5 -5
  45. package/lib/cjs/components/FileUpload/index.js +1 -1
  46. package/lib/cjs/components/Footer/Footer.js +1 -1
  47. package/lib/cjs/components/Footer/index.js +1 -1
  48. package/lib/cjs/components/Form/Form.js +3 -3
  49. package/lib/cjs/components/Form/index.js +1 -1
  50. package/lib/cjs/components/FormControl/FormControl.js +7 -7
  51. package/lib/cjs/components/FormControl/index.js +1 -1
  52. package/lib/cjs/components/GlobalProvider/GlobalProvider.js +1 -1
  53. package/lib/cjs/components/GlobalProvider/index.js +1 -1
  54. package/lib/cjs/components/Heading/Heading.js +1 -1
  55. package/lib/cjs/components/Heading/index.js +1 -1
  56. package/lib/cjs/components/Hero/Hero.js +1 -1
  57. package/lib/cjs/components/Hero/HeroCard.js +1 -1
  58. package/lib/cjs/components/Hero/index.js +1 -1
  59. package/lib/cjs/components/Icon/Icon.js +3 -3
  60. package/lib/cjs/components/Icon/index.js +1 -1
  61. package/lib/cjs/components/Image/Image.js +1 -1
  62. package/lib/cjs/components/Image/index.js +1 -1
  63. package/lib/cjs/components/Input/Input.js +1 -1
  64. package/lib/cjs/components/Input/index.js +1 -1
  65. package/lib/cjs/components/Link/Link.js +1 -1
  66. package/lib/cjs/components/Link/index.js +1 -1
  67. package/lib/cjs/components/LinkList/LinkList.js +2 -2
  68. package/lib/cjs/components/LinkList/index.js +1 -1
  69. package/lib/cjs/components/List/List.js +4 -4
  70. package/lib/cjs/components/List/ListItem.js +2 -2
  71. package/lib/cjs/components/List/index.js +2 -2
  72. package/lib/cjs/components/Loading/Loading.js +1 -1
  73. package/lib/cjs/components/Loading/index.js +1 -1
  74. package/lib/cjs/components/LocalNav/LocalNav.js +4 -4
  75. package/lib/cjs/components/LocalNav/index.js +1 -1
  76. package/lib/cjs/components/Logo/Logo.js +15 -15
  77. package/lib/cjs/components/Logo/index.js +1 -1
  78. package/lib/cjs/components/LogoGrid/LogoGrid.js +1 -1
  79. package/lib/cjs/components/LogoGrid/index.js +1 -1
  80. package/lib/cjs/components/Navigation/Navigation.js +6 -6
  81. package/lib/cjs/components/Navigation/index.js +1 -1
  82. package/lib/cjs/components/Notification/Notification.js +3 -3
  83. package/lib/cjs/components/Notification/index.js +1 -1
  84. package/lib/cjs/components/NumberPicker/NumberPicker.js +4 -4
  85. package/lib/cjs/components/NumberPicker/index.js +1 -1
  86. package/lib/cjs/components/Pagination/Pagination.js +1 -1
  87. package/lib/cjs/components/Pagination/index.js +1 -1
  88. package/lib/cjs/components/Profile/Profile.js +1 -1
  89. package/lib/cjs/components/Profile/index.js +1 -1
  90. package/lib/cjs/components/Radio/Radio.js +5 -5
  91. package/lib/cjs/components/Radio/index.js +1 -1
  92. package/lib/cjs/components/ReadMore/ReadMore.js +4 -4
  93. package/lib/cjs/components/ReadMore/index.js +1 -1
  94. package/lib/cjs/components/RichText/RichText.js +1 -1
  95. package/lib/cjs/components/RichText/index.js +1 -1
  96. package/lib/cjs/components/SearchField/SearchField.js +3 -3
  97. package/lib/cjs/components/SearchField/index.js +1 -1
  98. package/lib/cjs/components/SocialMedia/SocialMedia.js +1 -1
  99. package/lib/cjs/components/SocialMedia/index.js +1 -1
  100. package/lib/cjs/components/TableOfContents/TableOfContents.js +1 -1
  101. package/lib/cjs/components/TableOfContents/index.js +1 -1
  102. package/lib/cjs/components/Tabs/Tabs.args.js +156 -0
  103. package/lib/cjs/components/Tabs/Tabs.js +24 -0
  104. package/lib/cjs/components/Tabs/index.js +15 -0
  105. package/lib/cjs/components/Tag/Tag.js +4 -4
  106. package/lib/cjs/components/Tag/TagSet.js +6 -6
  107. package/lib/cjs/components/Tag/index.js +2 -2
  108. package/lib/cjs/components/TextInput/TextInput.js +4 -4
  109. package/lib/cjs/components/TextInput/index.js +1 -1
  110. package/lib/cjs/components/Textarea/Textarea.js +4 -4
  111. package/lib/cjs/components/Textarea/index.js +1 -1
  112. package/lib/cjs/components/Toggle/Toggle.js +4 -4
  113. package/lib/cjs/components/Toggle/index.js +1 -1
  114. package/lib/cjs/components/Tooltip/Tooltip.js +5 -5
  115. package/lib/cjs/components/Tooltip/index.js +1 -1
  116. package/lib/cjs/components/Video/Video.js +11 -12
  117. package/lib/cjs/components/Video/VideoPlayer.js +55 -13
  118. package/lib/cjs/components/Video/index.js +6 -8
  119. package/lib/cjs/components/index.js +21 -12
  120. package/lib/cjs/hooks/index.js +1 -1
  121. package/lib/cjs/hooks/useGlobalSettings.js +3 -3
  122. package/lib/cjs/hooks/usePrevious.js +3 -3
  123. package/lib/cjs/hooks/useVideoPlayer.js +7 -7
  124. package/lib/cjs/index.js +21 -12
  125. package/lib/esm/components/Cards/Card.js +38 -0
  126. package/lib/esm/components/{Card → Cards}/CardGroup.js +14 -6
  127. package/lib/esm/components/Cards/DataCard/index.js +25 -0
  128. package/lib/esm/components/Cards/DetailCard/index.js +18 -0
  129. package/lib/esm/components/Cards/FactlistCard/index.js +21 -0
  130. package/lib/esm/components/Cards/FeatureCard/index.js +22 -0
  131. package/lib/esm/components/Cards/MultilinkCard/index.js +22 -0
  132. package/lib/esm/components/Cards/PromoCard/index.js +21 -0
  133. package/lib/esm/components/Cards/StatCard/index.js +19 -0
  134. package/lib/esm/components/Cards/TextCard/index.js +23 -0
  135. package/lib/esm/components/Cards/index.js +22 -0
  136. package/lib/esm/components/Collapse/Collapse.js +1156 -6
  137. package/lib/esm/components/Collapse/index.js +0 -1
  138. package/lib/esm/components/FileUpload/FileUpload.js +3 -3
  139. package/lib/esm/components/LinkList/LinkList.js +1 -1
  140. package/lib/esm/components/NumberPicker/NumberPicker.js +3 -3
  141. package/lib/esm/components/Radio/Radio.js +3 -3
  142. package/lib/esm/components/Tabs/Tabs.args.js +154 -0
  143. package/lib/esm/components/Tabs/Tabs.js +22 -0
  144. package/lib/esm/components/Tabs/index.js +9 -0
  145. package/lib/esm/components/TextInput/TextInput.js +3 -3
  146. package/lib/esm/components/Textarea/Textarea.js +3 -3
  147. package/lib/esm/components/Video/Video.js +10 -11
  148. package/lib/esm/components/Video/VideoPlayer.js +57 -11
  149. package/lib/esm/components/Video/index.js +5 -7
  150. package/lib/esm/components/index.js +14 -6
  151. package/lib/esm/index.js +14 -6
  152. package/lib/types/react/src/components/Cards/Card.props.d.ts +307 -0
  153. package/lib/types/react/src/components/{Card → Cards}/CardGroup.props.d.ts +1 -1
  154. package/lib/types/react/src/components/Cards/DataCard/index.d.ts +4 -0
  155. package/lib/types/react/src/components/Cards/DetailCard/index.d.ts +4 -0
  156. package/lib/types/react/src/components/Cards/FactlistCard/index.d.ts +4 -0
  157. package/lib/types/react/src/components/Cards/FeatureCard/index.d.ts +4 -0
  158. package/lib/types/react/src/components/Cards/MultilinkCard/index.d.ts +4 -0
  159. package/lib/types/react/src/components/Cards/PromoCard/index.d.ts +4 -0
  160. package/lib/types/react/src/components/Cards/StatCard/index.d.ts +4 -0
  161. package/lib/types/react/src/components/Cards/TextCard/index.d.ts +4 -0
  162. package/lib/types/react/src/components/Cards/index.d.ts +11 -0
  163. package/lib/types/react/src/components/Tabs/Tabs.args.d.ts +10 -0
  164. package/lib/types/react/src/components/Tabs/Tabs.d.ts +4 -0
  165. package/lib/types/react/src/components/Tabs/Tabs.props.d.ts +12 -0
  166. package/lib/types/react/src/components/Tabs/index.d.ts +1 -0
  167. package/lib/types/react/src/components/Video/Video.d.ts +2 -2
  168. package/lib/types/react/src/components/Video/Video.props.d.ts +5 -43
  169. package/lib/types/react/src/components/Video/VideoPlayer.d.ts +3 -3
  170. package/lib/types/react/src/components/Video/VideoPlayer.props.d.ts +6 -31
  171. package/lib/types/react/src/components/index.d.ts +2 -1
  172. package/lib/types/react/src/types/index.d.ts +3 -3
  173. package/package.json +9 -7
  174. package/src/components/{Card → Cards}/Card.args.ts +41 -36
  175. package/src/components/Cards/Card.props.ts +382 -0
  176. package/src/components/Cards/Card.tsx +36 -0
  177. package/src/components/{Card → Cards}/CardGroup.args.ts +26 -26
  178. package/src/components/{Card → Cards}/CardGroup.props.ts +1 -1
  179. package/src/components/{Card → Cards}/CardGroup.tsx +12 -13
  180. package/src/components/Cards/DataCard/index.tsx +107 -0
  181. package/src/components/Cards/DetailCard/index.tsx +62 -0
  182. package/src/components/Cards/FactlistCard/index.tsx +42 -0
  183. package/src/components/Cards/FeatureCard/index.tsx +69 -0
  184. package/src/components/Cards/MultilinkCard/index.tsx +76 -0
  185. package/src/components/Cards/PromoCard/index.tsx +60 -0
  186. package/src/components/Cards/StatCard/index.tsx +36 -0
  187. package/src/components/Cards/TextCard/index.tsx +63 -0
  188. package/src/components/Cards/index.ts +22 -0
  189. package/src/components/LinkList/LinkList.tsx +1 -1
  190. package/src/components/Tabs/Tabs.args.tsx +201 -0
  191. package/src/components/Tabs/Tabs.props.ts +13 -0
  192. package/src/components/Tabs/Tabs.tsx +60 -0
  193. package/src/components/Tabs/index.ts +1 -0
  194. package/src/components/Video/Video.args.ts +18 -24
  195. package/src/components/Video/Video.props.ts +5 -47
  196. package/src/components/Video/Video.tsx +24 -19
  197. package/src/components/Video/VideoPlayer.props.ts +7 -38
  198. package/src/components/Video/VideoPlayer.tsx +67 -322
  199. package/src/components/index.ts +2 -1
  200. package/src/declarations.d.ts +22 -0
  201. package/src/types/index.ts +4 -4
  202. package/lib/cjs/AccordionCtx-fe08ff45.js +0 -9
  203. package/lib/cjs/DailyMotion-17b56ecb.js +0 -259
  204. package/lib/cjs/Facebook-0c8d86ee.js +0 -239
  205. package/lib/cjs/FilePlayer-01d6dc08.js +0 -596
  206. package/lib/cjs/Kaltura-40e8e581.js +0 -235
  207. package/lib/cjs/ListCtx-7db7fe04.js +0 -9
  208. package/lib/cjs/Mixcloud-e23f49d6.js +0 -222
  209. package/lib/cjs/Preview-8e490f54.js +0 -227
  210. package/lib/cjs/SoundCloud-2500b6cb.js +0 -249
  211. package/lib/cjs/Streamable-00723065.js +0 -234
  212. package/lib/cjs/TagCtx-929c7753.js +0 -7
  213. package/lib/cjs/Twitch-2c5c5733.js +0 -244
  214. package/lib/cjs/VideoPlayer-5f0a64c6.js +0 -2067
  215. package/lib/cjs/Vidyard-d36d6c45.js +0 -237
  216. package/lib/cjs/Vimeo-d311e3b8.js +0 -285
  217. package/lib/cjs/Wistia-318b4e43.js +0 -288
  218. package/lib/cjs/YouTube-a3796a55.js +0 -377
  219. package/lib/cjs/components/Card/Card.js +0 -43
  220. package/lib/cjs/components/Card/CardGroup.js +0 -25
  221. package/lib/cjs/components/Card/index.js +0 -21
  222. package/lib/cjs/index-0af02e81.js +0 -1154
  223. package/lib/esm/DailyMotion-989c2db3.js +0 -257
  224. package/lib/esm/Facebook-04e9cc59.js +0 -237
  225. package/lib/esm/FilePlayer-0789336d.js +0 -594
  226. package/lib/esm/Kaltura-a9ed37a9.js +0 -233
  227. package/lib/esm/Mixcloud-5a3b4353.js +0 -220
  228. package/lib/esm/Preview-7ca1835e.js +0 -225
  229. package/lib/esm/SoundCloud-47bccd79.js +0 -247
  230. package/lib/esm/Streamable-ee762126.js +0 -232
  231. package/lib/esm/Twitch-3cd4b54b.js +0 -242
  232. package/lib/esm/VideoPlayer-96c2b20c.js +0 -2062
  233. package/lib/esm/Vidyard-258ab0ef.js +0 -235
  234. package/lib/esm/Vimeo-4b29b580.js +0 -283
  235. package/lib/esm/Wistia-3cbce669.js +0 -286
  236. package/lib/esm/YouTube-db52da1c.js +0 -375
  237. package/lib/esm/components/Card/Card.js +0 -41
  238. package/lib/esm/components/Card/index.js +0 -14
  239. package/lib/esm/index-623ce3f5.js +0 -1152
  240. package/lib/types/react/src/components/Card/Card.props.d.ts +0 -110
  241. package/lib/types/react/src/components/Card/index.d.ts +0 -2
  242. package/src/components/Card/Card.props.ts +0 -142
  243. package/src/components/Card/Card.tsx +0 -183
  244. package/src/components/Card/index.ts +0 -2
  245. /package/lib/types/react/src/components/{Card → Cards}/Card.d.ts +0 -0
  246. /package/lib/types/react/src/components/{Card → Cards}/CardGroup.d.ts +0 -0
@@ -1,326 +1,71 @@
1
- import {
2
- FC,
3
- FocusEvent,
4
- MouseEvent,
5
- createRef,
6
- useCallback,
7
- useState,
8
- } from "react";
9
- /* temporary way of importing ReactPlayer due to a known issue with ReactPlayer.
10
- * Revert to standard method of importing once RP's dev has fixed.
11
- */
12
- import { default as RP } from "react-player/lazy";
13
- import { findDOMNode } from "react-dom";
14
- import { ReactPlayerProps } from "react-player/types/lib";
15
- const ReactPlayer = RP as unknown as FC<ReactPlayerProps>;
16
- import classNames from "classnames";
17
- import useGlobalSettings from "../../hooks/useGlobalSettings";
18
- import { VideoPlayerProps } from "./VideoPlayer.props";
19
- import hoursMinutesSeconds from "../../utils/hoursMinutesSeconds";
20
- import screenfull from "screenfull";
21
-
22
- const VideoPlayer: FC<VideoPlayerProps> = ({
23
- controls,
24
- src,
25
- poster,
26
- youtube,
27
- tracks,
28
- }) => {
29
- const { prefix } = useGlobalSettings();
30
- const baseClass = `${prefix}--legacyvideo`;
31
-
32
- const playerClasses = classNames("", {
33
- [`${baseClass}--player`]: true,
34
- [`youtube`]: youtube,
35
- });
36
-
37
- const controlsClasses = classNames("", {
38
- [`${baseClass}--controls`]: true,
39
- });
40
-
41
- /**
42
- * State hooks for our player controls
43
- */
44
- const [duration, setDuration] = useState("0:00");
45
- const [playedtime, setPlayedtime] = useState("0:00");
46
- const [buffer, setBuffer] = useState(0);
47
- const [playing, setPlaying] = useState(false);
48
- const [playhead, setPlayhead] = useState(0);
49
- const [volume, setVolume] = useState(0.8);
50
- const [muted, setMute] = useState(false);
51
- const [showposter, showPoster] = useState(true);
52
- const [showvolume, showVolume] = useState(false);
53
- const [seeking, setSeeking] = useState(false);
54
-
55
- /**
56
- * Ref for the video element
57
- */
58
- const videoElement = createRef();
59
-
60
- /**
61
- * Ref for the video container
62
- */
63
- const videoContainer = createRef();
64
-
65
- const youtubeparams = {
66
- controls: 0,
67
- modestbranding: 1,
68
- };
69
-
70
- const playerconfig = {
71
- file: {
72
- tracks: tracks || [],
73
- },
74
- youtube: youtube ? { playerVars: youtubeparams } : {},
75
- };
76
-
77
- /**
78
- * Fullscreen functionality
79
- */
80
- const toggleFullscreen = () => {
81
- /* This is a known issue with ReactPlayer */
82
- /* @ts-ignore */
83
- screenfull.request(findDOMNode(videoContainer.current));
84
- };
85
-
86
- /**
87
- * Play/pause functionality
88
- */
89
- const togglePlay = () => {
90
- setPlaying(!playing);
91
- showPoster(false);
92
- };
93
-
94
- /**
95
- * Show volume slider
96
- */
97
- const showVolumeSlider = () => {
98
- showVolume(true);
99
- };
100
-
101
- /**
102
- * Hide volume slider
103
- */
104
- const hideVolumeSlider = () => {
105
- setTimeout(() => {
106
- showVolume(false);
107
- }, 2000);
108
- };
109
-
110
- /**
111
- * Mute/unmute
112
- */
113
- const toggleMute = () => {
114
- setMute(!muted);
115
- hideVolumeSlider();
116
- };
117
-
118
- /**
119
- * Volume change
120
- */
121
- const handleVolumeChange = (event: any) => {
122
- console.log("handleVolumeChange", event.target.value);
123
- setVolume(event.target.value * 0.1);
124
- };
125
-
126
- /**
127
- * Begin seek
128
- */
129
- const handleSeekMouseDown = () => {
130
- setSeeking(true);
131
- };
132
-
133
- /**
134
- * Seek
135
- */
136
- const handleSeekChange = (event: any) => {
137
- setPlayhead(parseFloat(event.target.value));
138
- };
139
-
140
- /**
141
- * End seek
142
- */
143
- const handleSeekMouseUp = (event: any) => {
144
- setSeeking(false);
145
- /* This is a known issue with ReactPlayer */
146
- /* @ts-ignore */
147
- videoElement.current.seekTo(parseFloat(event.target.value));
148
- };
149
-
150
- /**
151
- * handle display of progress
152
- */
153
- const handleProgress = (state: any) => {
154
- if (!seeking) {
155
- setPlayhead(state.played);
156
- setBuffer(state.loaded);
157
- setPlayedtime(hoursMinutesSeconds(state.playedSeconds));
158
- }
159
- };
160
-
161
- /**
162
- * get the duration to display
163
- */
164
- const handleDuration = (duration: any) => {
165
- setDuration(hoursMinutesSeconds(duration));
166
- };
167
-
168
- /**
169
- * on video end
170
- */
171
- const handleEnded = () => {
172
- setPlaying(false);
173
- setSeeking(false);
174
- };
175
-
176
- const handlePlayHover = useCallback(
177
- (
178
- event: MouseEvent<HTMLButtonElement> | FocusEvent<HTMLButtonElement>,
179
- state: boolean
180
- ) => {
181
- const element = event.currentTarget;
182
- if (!element.classList.contains(`${controlsClasses}--play`)) {
183
- return;
1
+ import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
2
+ import "videojs-youtube";
3
+ import { VideoPlayerProps, VideoPlayerRef } from "./VideoPlayer.props";
4
+ import videojs, { ILOVideo } from "video.js";
5
+
6
+ const video = videojs as unknown as ILOVideo;
7
+
8
+ const VideoPlayer = forwardRef<VideoPlayerRef, VideoPlayerProps>(
9
+ ({ src, poster, youtube }, ref) => {
10
+ const videoNode = useRef<HTMLVideoElement>(null);
11
+ const player = useRef<videojs.Player>();
12
+
13
+ useImperativeHandle(
14
+ ref,
15
+ () => ({
16
+ get player() {
17
+ return player.current;
18
+ },
19
+ }),
20
+ [player]
21
+ );
22
+
23
+ useEffect(() => {
24
+ if (videoNode.current) {
25
+ player.current = video(videoNode.current, {
26
+ autoplay: false,
27
+ controls: true,
28
+ preload: "auto",
29
+ bigPlayButton: false,
30
+ poster: poster?.src,
31
+ controlBar: {
32
+ descriptionsButton: false,
33
+ playbackRateMenuButton: false,
34
+ chaptersButton: false,
35
+ audioTrackButton: false,
36
+ pictureInPictureToggle: false,
37
+ subsCapsButton: false,
38
+ seekToLive: false,
39
+ liveDisplay: false,
40
+ },
41
+ errorDisplay: false,
42
+ textTrackSettings: false,
43
+ resizeManager: false,
44
+ /**
45
+ * If youtube is true, it will default to the youtube video
46
+ */
47
+ sources: [
48
+ { type: youtube ? "video/youtube" : undefined, src: src as string },
49
+ ],
50
+ dataSetup: {
51
+ techOrder: ["youtube"],
52
+ },
53
+ liveTracker: false,
54
+ });
184
55
  }
185
-
186
- const duration = element.previousSibling;
187
- if (duration instanceof HTMLLabelElement) {
188
- duration.classList.toggle(
189
- `${controlsClasses}--duration--hovered`,
190
- state
191
- );
192
- }
193
- },
194
- [controlsClasses]
195
- );
196
-
197
- return (
198
- <div
199
- className={`${baseClass}--container`}
200
- ref={videoContainer as React.RefObject<HTMLDivElement>}
201
- >
202
- <ReactPlayer
203
- className={playerClasses}
204
- config={playerconfig as any}
205
- loop={false}
206
- muted={muted}
207
- playing={playing}
208
- ref={videoElement}
209
- url={src as any}
210
- width="100%"
211
- height="100%"
212
- progressInterval={30}
213
- volume={volume}
214
- onProgress={handleProgress}
215
- onDuration={handleDuration}
216
- onEnded={handleEnded}
217
- />
218
- <picture className={`${baseClass}--poster ${showposter ? "show" : ""}`}>
219
- {poster?.url &&
220
- poster.url
221
- .sort(
222
- (a: any, b: any) =>
223
- parseFloat(a.breakpoint) - parseFloat(b.breakpoint)
224
- )
225
- .slice(1)
226
- .reverse()
227
- .map((item: any, index: any) => (
228
- <source
229
- srcSet={item.src}
230
- media={`(min-width: ${item.breakpoint}px)`}
231
- key={index}
232
- />
233
- ))}
234
- <img src={poster?.url[0]?.src} alt={poster?.alt} />
235
- </picture>
236
- <div className={`${controlsClasses} ${showposter ? "notplayed" : ""}`}>
237
- <label
238
- className={`${controlsClasses}--duration ${showposter ? "show" : ""}`}
239
- >
240
- {duration}
241
- </label>
242
- <button
243
- className={`${controlsClasses}--${!playing ? "play" : "pause"}`}
244
- onClick={togglePlay}
245
- onMouseOver={(e) => handlePlayHover(e, true)}
246
- onFocus={(e) => handlePlayHover(e, true)}
247
- onMouseOut={(e) => handlePlayHover(e, false)}
248
- onBlur={(e) => handlePlayHover(e, false)}
249
- >
250
- <span>
251
- {!playing ? controls && controls.play : controls && controls.pause}
252
- </span>
253
- </button>
254
- <div
255
- className={`${controlsClasses}--progress ${showposter ? "" : "show"}`}
256
- >
257
- <input
258
- type="range"
259
- min={0}
260
- max={0.999999}
261
- step="any"
262
- value={playhead}
263
- onMouseDown={handleSeekMouseDown}
264
- onChange={handleSeekChange}
265
- onMouseUp={handleSeekMouseUp}
266
- className={`${controlsClasses}--progress-playhead`}
267
- />
268
- <progress
269
- className={`${controlsClasses}--progress-current`}
270
- max={1}
271
- value={playhead}
272
- />
273
- <progress
274
- className={`${controlsClasses}--progress-loaded`}
275
- max={1}
276
- value={buffer}
277
- />
278
- <div className={`${controlsClasses}--progress-played-container`}>
279
- <label
280
- className={`${controlsClasses}--progress-played`}
281
- style={{ ["--playhead" as any]: `${playhead * 100}%` }}
282
- >
283
- {playedtime}
284
- </label>
285
- </div>
286
- </div>
287
- <div
288
- className={`${controlsClasses}--volume ${showposter ? "" : "show"}`}
289
- onMouseEnter={showVolumeSlider}
290
- onMouseLeave={hideVolumeSlider}
291
- >
292
- <button
293
- className={`${controlsClasses}--showvolume ${muted ? "muted" : ""}`}
294
- onClick={toggleMute}
295
- >
296
- <span>{controls && controls.volume}</span>
297
- </button>
298
- <div className={`${controlsClasses}--setvolume-container`}>
299
- <input
300
- className={`${controlsClasses}--setvolume ${
301
- showvolume ? "show" : ""
302
- }`}
303
- type="range"
304
- step="0.5"
305
- defaultValue={volume}
306
- min="1"
307
- max="10"
308
- onChange={handleVolumeChange}
309
- onMouseLeave={hideVolumeSlider}
310
- />
311
- </div>
312
- </div>
313
- <button
314
- className={`${controlsClasses}--fullscreen ${
315
- showposter ? "" : "show"
316
- }`}
317
- onClick={toggleFullscreen}
318
- >
319
- <span>{controls && controls.fullscreen}</span>
320
- </button>
56
+ return () => {
57
+ if (player.current) {
58
+ player.current.dispose();
59
+ }
60
+ };
61
+ }, [poster?.src, src, youtube]);
62
+
63
+ return (
64
+ <div className="ilo--videoplayer">
65
+ <video ref={videoNode} className="ilo--video--element" />
321
66
  </div>
322
- </div>
323
- );
324
- };
67
+ );
68
+ }
69
+ );
325
70
 
326
71
  export default VideoPlayer;
@@ -41,5 +41,6 @@ export { TableOfContents } from "./TableOfContents";
41
41
  export { Footer } from "./Footer";
42
42
  export { LocalNav } from "./LocalNav";
43
43
  export { Navigation } from "./Navigation";
44
- export { Card, CardGroup } from "./Card";
44
+ export { Card, CardGroup } from "./Cards";
45
45
  export { Breadcrumb } from "./Breadcrumb";
46
+ export { Tabs } from "./Tabs";
@@ -1,3 +1,5 @@
1
+ import videojs from "video.js";
2
+
1
3
  declare module "*.svg" {
2
4
  const content: string;
3
5
  export default content;
@@ -12,3 +14,23 @@ declare module "*.jpg" {
12
14
  const content: string;
13
15
  export default content;
14
16
  }
17
+
18
+ declare module "video.js" {
19
+ interface VideoJsPlayerOptionsAugmentation extends videojs.PlayerOptions {
20
+ liveTracker: boolean;
21
+ textTrackSettings: boolean;
22
+ errorDisplay: boolean;
23
+ resizeManager: boolean;
24
+ dataSetup: {
25
+ techOrder: string[];
26
+ };
27
+ }
28
+
29
+ type ILOVideo = (
30
+ id: string | HTMLVideoElement,
31
+ options: VideoJsPlayerOptionsAugmentation,
32
+ ready?: () => void
33
+ ) => videojs.Player;
34
+ }
35
+
36
+ declare module "videojs-youtube" {}
@@ -53,14 +53,14 @@ export type SocialTypes =
53
53
  | "tiktok"
54
54
  | "flickr";
55
55
  export type CardColor = "turquoise" | "green" | "yellow" | "blue";
56
- export type CardSize = "wide" | "standard" | "narrow";
57
- export type CardCornerType = "cornercut" | "corner";
56
+ export type CardSize = "wide" | "standard" | "narrow" | "fluid";
57
+ export type CardCornerType = boolean;
58
58
  export type CardAlignment = "left" | "right";
59
59
  export type CardTypes =
60
60
  | "stat"
61
61
  | "multilink"
62
- | "graphic"
63
- | "graphicpromo"
62
+ | "text"
63
+ | "promo"
64
64
  | "feature"
65
65
  | "detail"
66
66
  | "factlist"
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$0 = require('react');
4
-
5
- const AccordionContext = require$$0.createContext({});
6
- const AccordionItemContext = require$$0.createContext({});
7
-
8
- exports.AccordionContext = AccordionContext;
9
- exports.AccordionItemContext = AccordionItemContext;