@blaze-cms/react-page-builder 0.123.1-alpha.2 → 0.124.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +213 -0
- package/lib/components/BackToTop/BackToTop.js +94 -0
- package/lib/components/BackToTop/BackToTop.js.map +1 -0
- package/lib/components/BackToTop/index.js +16 -0
- package/lib/components/BackToTop/index.js.map +1 -0
- package/lib/components/CarouselWrapper.js +6 -8
- package/lib/components/CarouselWrapper.js.map +1 -1
- package/lib/components/SearchContent/index.js +5 -2
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib/components/Video/Video.js +32 -9
- package/lib/components/Video/Video.js.map +1 -1
- package/lib/components/Video/VideoModal.js +72 -0
- package/lib/components/Video/VideoModal.js.map +1 -0
- package/lib/components/Video/VideoRender.js +2 -2
- package/lib/components/Video/VideoRender.js.map +1 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js +7 -15
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YouTubeProvider.js +12 -4
- package/lib/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js +23 -14
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib/components/Video/providers/YouTube/helpers/index.js +24 -0
- package/lib/components/Video/providers/YouTube/helpers/index.js.map +1 -1
- package/lib/components/Wrapper.js +10 -3
- package/lib/components/Wrapper.js.map +1 -1
- package/lib/components/index.js +5 -0
- package/lib/components/index.js.map +1 -1
- package/lib/helpers/build-raw-query.js +1 -1
- package/lib/helpers/build-raw-query.js.map +1 -1
- package/lib-es/components/BackToTop/BackToTop.js +50 -0
- package/lib-es/components/BackToTop/BackToTop.js.map +1 -0
- package/lib-es/components/BackToTop/index.js +3 -0
- package/lib-es/components/BackToTop/index.js.map +1 -0
- package/lib-es/components/CarouselWrapper.js +6 -7
- package/lib-es/components/CarouselWrapper.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +5 -2
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/lib-es/components/Video/Video.js +32 -10
- package/lib-es/components/Video/Video.js.map +1 -1
- package/lib-es/components/Video/VideoModal.js +31 -0
- package/lib-es/components/Video/VideoModal.js.map +1 -0
- package/lib-es/components/Video/VideoRender.js +2 -2
- package/lib-es/components/Video/VideoRender.js.map +1 -1
- package/lib-es/components/Video/providers/JWPlayer/JWPlayerProvider.js +6 -11
- package/lib-es/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/YouTubeProvider.js +12 -4
- package/lib-es/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/YoutubeEmbeded.js +19 -10
- package/lib-es/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/helpers/index.js +18 -1
- package/lib-es/components/Video/providers/YouTube/helpers/index.js.map +1 -1
- package/lib-es/components/Wrapper.js +15 -9
- package/lib-es/components/Wrapper.js.map +1 -1
- package/lib-es/components/index.js +4 -1
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/helpers/build-raw-query.js +1 -1
- package/lib-es/helpers/build-raw-query.js.map +1 -1
- package/package.json +3 -3
- package/src/components/BackToTop/BackToTop.js +52 -0
- package/src/components/BackToTop/index.js +3 -0
- package/src/components/CarouselWrapper.js +2 -7
- package/src/components/SearchContent/index.js +5 -2
- package/src/components/Video/Video.js +39 -12
- package/src/components/Video/VideoModal.js +31 -0
- package/src/components/Video/VideoRender.js +2 -2
- package/src/components/Video/providers/JWPlayer/JWPlayerProvider.js +6 -9
- package/src/components/Video/providers/YouTube/YouTubeProvider.js +14 -4
- package/src/components/Video/providers/YouTube/YoutubeEmbeded.js +19 -15
- package/src/components/Video/providers/YouTube/helpers/index.js +15 -1
- package/src/components/Wrapper.js +14 -12
- package/src/components/index.js +2 -1
- package/src/helpers/build-raw-query.js +2 -1
- package/tests/helpers/mocks.js +1 -1
- package/tests/unit/src/components/BackToTop/BackToTop.test.js +16 -0
- package/tests/unit/src/components/BackToTop/__snapshots__/BackToTop.test.js.snap +3 -0
- package/tests/unit/src/components/Card/__snapshots__/CardContainer.test.js.snap +3 -0
- package/tests/unit/src/components/Card/__snapshots__/CardRender.test.js.snap +3 -0
- package/tests/unit/src/components/Image/__snapshots__/ImageFactory.test.js.snap +9 -0
- package/tests/unit/src/components/Video/Video.test.js +12 -4
- package/tests/unit/src/components/Video/VideoModal.test.js +15 -0
- package/tests/unit/src/components/Video/__snapshots__/Video.test.js.snap +12 -0
- package/tests/unit/src/components/Video/__snapshots__/VideoModal.test.js.snap +13 -0
- package/tests/unit/src/components/__snapshots__/Wrapper.test.js.snap +3 -0
- package/tests/unit/src/components/__snapshots__/index.test.js.snap +4 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
+
const _excluded = ["type", "showAfterPixels"];
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import { FaArrowUp } from 'react-icons/fa';
|
|
6
|
+
import Wrapper from '../Wrapper';
|
|
7
|
+
import { getClassModifiers } from '../../utils';
|
|
8
|
+
|
|
9
|
+
const BackToTop = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
type,
|
|
12
|
+
showAfterPixels
|
|
13
|
+
} = _ref,
|
|
14
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
15
|
+
|
|
16
|
+
const [goToTop, setGoToTop] = useState(false);
|
|
17
|
+
const modifiers = getClassModifiers(type, otherProps);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const handleOnScroll = () => setGoToTop(window.scrollY >= showAfterPixels);
|
|
20
|
+
|
|
21
|
+
document.addEventListener('scroll', handleOnScroll);
|
|
22
|
+
return () => document.removeEventListener('scroll', handleOnScroll);
|
|
23
|
+
}, [showAfterPixels]);
|
|
24
|
+
|
|
25
|
+
const handleBackToTop = () => {
|
|
26
|
+
window.scroll({
|
|
27
|
+
top: 0,
|
|
28
|
+
left: 0,
|
|
29
|
+
behavior: 'smooth'
|
|
30
|
+
});
|
|
31
|
+
setGoToTop(false);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, goToTop && /*#__PURE__*/React.createElement(Wrapper, {
|
|
35
|
+
className: type,
|
|
36
|
+
modifiers: modifiers,
|
|
37
|
+
onClick: handleBackToTop
|
|
38
|
+
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(FaArrowUp, null))));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
BackToTop.propTypes = {
|
|
42
|
+
type: PropTypes.string,
|
|
43
|
+
showAfterPixels: PropTypes.number
|
|
44
|
+
};
|
|
45
|
+
BackToTop.defaultProps = {
|
|
46
|
+
type: 'backtotop',
|
|
47
|
+
showAfterPixels: 200
|
|
48
|
+
};
|
|
49
|
+
export default BackToTop;
|
|
50
|
+
//# sourceMappingURL=BackToTop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BackToTop/BackToTop.js"],"names":["React","useEffect","useState","PropTypes","FaArrowUp","Wrapper","getClassModifiers","BackToTop","type","showAfterPixels","otherProps","goToTop","setGoToTop","modifiers","handleOnScroll","window","scrollY","document","addEventListener","removeEventListener","handleBackToTop","scroll","top","left","behavior","propTypes","string","number","defaultProps"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,QAA3B,QAA2C,OAA3C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,gBAA1B;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,iBAAT,QAAkC,aAAlC;;AAEA,MAAMC,SAAS,GAAG,QAA8C;AAAA,MAA7C;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAA6C;AAAA,MAAjBC,UAAiB;;AAC9D,QAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBV,QAAQ,CAAC,KAAD,CAAtC;AACA,QAAMW,SAAS,GAAGP,iBAAiB,CAACE,IAAD,EAAOE,UAAP,CAAnC;AAEAT,EAAAA,SAAS,CACP,MAAM;AACJ,UAAMa,cAAc,GAAG,MAAMF,UAAU,CAACG,MAAM,CAACC,OAAP,IAAkBP,eAAnB,CAAvC;;AACAQ,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,QAA1B,EAAoCJ,cAApC;AACA,WAAO,MAAMG,QAAQ,CAACE,mBAAT,CAA6B,QAA7B,EAAuCL,cAAvC,CAAb;AACD,GALM,EAMP,CAACL,eAAD,CANO,CAAT;;AASA,QAAMW,eAAe,GAAG,MAAM;AAC5BL,IAAAA,MAAM,CAACM,MAAP,CAAc;AACZC,MAAAA,GAAG,EAAE,CADO;AAEZC,MAAAA,IAAI,EAAE,CAFM;AAGZC,MAAAA,QAAQ,EAAE;AAHE,KAAd;AAKAZ,IAAAA,UAAU,CAAC,KAAD,CAAV;AACD,GAPD;;AASA,sBACE,0CACGD,OAAO,iBACN,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAEH,IAApB;AAA0B,IAAA,SAAS,EAAEK,SAArC;AAAgD,IAAA,OAAO,EAAEO;AAAzD,kBACE,4CACE,oBAAC,SAAD,OADF,CADF,CAFJ,CADF;AAWD,CAjCD;;AAmCAb,SAAS,CAACkB,SAAV,GAAsB;AACpBjB,EAAAA,IAAI,EAAEL,SAAS,CAACuB,MADI;AAEpBjB,EAAAA,eAAe,EAAEN,SAAS,CAACwB;AAFP,CAAtB;AAKApB,SAAS,CAACqB,YAAV,GAAyB;AACvBpB,EAAAA,IAAI,EAAE,WADiB;AAEvBC,EAAAA,eAAe,EAAE;AAFM,CAAzB;AAKA,eAAeF,SAAf","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaArrowUp } from 'react-icons/fa';\nimport Wrapper from '../Wrapper';\nimport { getClassModifiers } from '../../utils';\n\nconst BackToTop = ({ type, showAfterPixels, ...otherProps }) => {\n const [goToTop, setGoToTop] = useState(false);\n const modifiers = getClassModifiers(type, otherProps);\n\n useEffect(\n () => {\n const handleOnScroll = () => setGoToTop(window.scrollY >= showAfterPixels);\n document.addEventListener('scroll', handleOnScroll);\n return () => document.removeEventListener('scroll', handleOnScroll);\n },\n [showAfterPixels]\n );\n\n const handleBackToTop = () => {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n setGoToTop(false);\n };\n\n return (\n <>\n {goToTop && (\n <Wrapper className={type} modifiers={modifiers} onClick={handleBackToTop}>\n <i>\n <FaArrowUp />\n </i>\n </Wrapper>\n )}\n </>\n );\n};\n\nBackToTop.propTypes = {\n type: PropTypes.string,\n showAfterPixels: PropTypes.number\n};\n\nBackToTop.defaultProps = {\n type: 'backtotop',\n showAfterPixels: 200\n};\n\nexport default BackToTop;\n"],"file":"BackToTop.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BackToTop/index.js"],"names":["BackToTop"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,aAAtB;AAEA,eAAeA,SAAf","sourcesContent":["import BackToTop from './BackToTop';\n\nexport default BackToTop;\n"],"file":"index.js"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { useRef, useState, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { FaAngleLeft, FaAngleRight } from 'react-icons/fa';
|
|
4
3
|
|
|
5
4
|
const CarouselWrapper = ({
|
|
6
5
|
children,
|
|
@@ -95,9 +94,9 @@ const CarouselWrapper = ({
|
|
|
95
94
|
setShouldAutoScroll(false);
|
|
96
95
|
handleButtonNavigation();
|
|
97
96
|
}
|
|
98
|
-
}, /*#__PURE__*/React.createElement("i",
|
|
99
|
-
|
|
100
|
-
})))
|
|
97
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
98
|
+
className: "arrow left"
|
|
99
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
101
100
|
className: "cards-carousel--right-button-wrapper"
|
|
102
101
|
}, displayRight && /*#__PURE__*/React.createElement("button", {
|
|
103
102
|
type: "button",
|
|
@@ -106,9 +105,9 @@ const CarouselWrapper = ({
|
|
|
106
105
|
setShouldAutoScroll(false);
|
|
107
106
|
handleButtonNavigation(true);
|
|
108
107
|
}
|
|
109
|
-
}, /*#__PURE__*/React.createElement("i",
|
|
110
|
-
|
|
111
|
-
})))
|
|
108
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
109
|
+
className: "arrow right"
|
|
110
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
112
111
|
className: contentClassName,
|
|
113
112
|
ref: ref,
|
|
114
113
|
onScroll: handleScroll
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/CarouselWrapper.js"],"names":["React","useRef","useState","useEffect","PropTypes","
|
|
1
|
+
{"version":3,"sources":["../../src/components/CarouselWrapper.js"],"names":["React","useRef","useState","useEffect","PropTypes","CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","buttonDisplay","setButtonDisplays","displayLeft","displayRight","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"arrow left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"arrow right\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"file":"CarouselWrapper.js"}
|
|
@@ -11,7 +11,8 @@ const SearchContent = ({
|
|
|
11
11
|
searchInputWrapperMobile,
|
|
12
12
|
searchInputWrapperDesktop,
|
|
13
13
|
collapsible,
|
|
14
|
-
isMobile
|
|
14
|
+
isMobile,
|
|
15
|
+
placeholder
|
|
15
16
|
}) => {
|
|
16
17
|
const [collapsed, setCollapsed] = useState(collapsible);
|
|
17
18
|
const [searchTerm, setSearchTerm] = useState(null);
|
|
@@ -134,7 +135,7 @@ const SearchContent = ({
|
|
|
134
135
|
onChange: e => setSearchTerm(e.target.value),
|
|
135
136
|
onKeyPress: handleKeyPress,
|
|
136
137
|
className: "search-content--expanded__input",
|
|
137
|
-
placeholder:
|
|
138
|
+
placeholder: placeholder,
|
|
138
139
|
onBlur: () => {
|
|
139
140
|
if (!collapsible) return;
|
|
140
141
|
if (!searchTerm || searchTerm === '') setCollapsed(true);
|
|
@@ -156,6 +157,7 @@ SearchContent.propTypes = {
|
|
|
156
157
|
searchInputAlignment: PropTypes.string,
|
|
157
158
|
searchInputWrapperMobile: PropTypes.string,
|
|
158
159
|
searchInputWrapperDesktop: PropTypes.string,
|
|
160
|
+
placeholder: PropTypes.string,
|
|
159
161
|
isMobile: PropTypes.bool,
|
|
160
162
|
collapsible: PropTypes.bool,
|
|
161
163
|
entity: PropTypes.string.isRequired
|
|
@@ -164,6 +166,7 @@ SearchContent.defaultProps = {
|
|
|
164
166
|
searchInputAlignment: '',
|
|
165
167
|
searchInputWrapperMobile: '',
|
|
166
168
|
searchInputWrapperDesktop: '',
|
|
169
|
+
placeholder: '',
|
|
167
170
|
isMobile: false,
|
|
168
171
|
collapsible: false
|
|
169
172
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","results","searchPublishedContent","map","name","includes","searchResultsMessage","propTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","results","searchPublishedContent","map","name","includes","searchResultsMessage","propTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
const _excluded = ["url", "modifier", "autoplay", "isCaptionDisplayed", "caption", "credits", "areVideoCreditsDisplayed", "provider"];
|
|
4
|
+
const _excluded = ["url", "modifier", "autoplay", "isCaptionDisplayed", "caption", "credits", "areVideoCreditsDisplayed", "provider", "playInModal", "imageId"];
|
|
5
5
|
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
|
|
@@ -9,7 +9,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
9
9
|
|
|
10
10
|
import React from 'react';
|
|
11
11
|
import PropTypes from 'prop-types';
|
|
12
|
+
import useGetImages from '../../hooks/use-get-images';
|
|
12
13
|
import VideoRender from './VideoRender';
|
|
14
|
+
import VideoModal from './VideoModal';
|
|
13
15
|
import Wrapper from '../Wrapper';
|
|
14
16
|
import getClassModifiers from '../../utils/get-class-modifiers';
|
|
15
17
|
import { shouldShowProperty } from '../../helpers';
|
|
@@ -23,14 +25,23 @@ const Video = _ref => {
|
|
|
23
25
|
caption,
|
|
24
26
|
credits,
|
|
25
27
|
areVideoCreditsDisplayed,
|
|
26
|
-
provider
|
|
28
|
+
provider,
|
|
29
|
+
playInModal,
|
|
30
|
+
imageId
|
|
27
31
|
} = _ref,
|
|
28
|
-
|
|
32
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
29
33
|
|
|
34
|
+
const {
|
|
35
|
+
data: {
|
|
36
|
+
getFile: imageData
|
|
37
|
+
},
|
|
38
|
+
loading
|
|
39
|
+
} = useGetImages(imageId);
|
|
40
|
+
if (loading) return '';
|
|
30
41
|
if (!url) return null;
|
|
31
42
|
const modifiers = `video--${provider.toLowerCase()} ${getClassModifiers('video', _objectSpread({
|
|
32
43
|
modifier
|
|
33
|
-
},
|
|
44
|
+
}, props))}`;
|
|
34
45
|
const shouldDisplayCaption = shouldShowProperty({
|
|
35
46
|
isDisplayed: isCaptionDisplayed,
|
|
36
47
|
value: caption
|
|
@@ -42,12 +53,19 @@ const Video = _ref => {
|
|
|
42
53
|
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
43
54
|
className: "video",
|
|
44
55
|
modifiers: modifiers
|
|
45
|
-
}, /*#__PURE__*/React.createElement(
|
|
56
|
+
}, playInModal ? /*#__PURE__*/React.createElement(VideoModal, _extends({
|
|
46
57
|
url: url,
|
|
47
58
|
modifier: modifier,
|
|
48
59
|
autoplay: autoplay,
|
|
49
|
-
provider: provider
|
|
50
|
-
|
|
60
|
+
provider: provider,
|
|
61
|
+
imageData: imageData
|
|
62
|
+
}, props)) : /*#__PURE__*/React.createElement(VideoRender, _extends({
|
|
63
|
+
url: url,
|
|
64
|
+
modifier: modifier,
|
|
65
|
+
autoplay: autoplay,
|
|
66
|
+
provider: provider,
|
|
67
|
+
imageData: imageData
|
|
68
|
+
}, props)), (shouldDisplayCaption || shouldDisplayCredits) && /*#__PURE__*/React.createElement("div", {
|
|
51
69
|
className: "video__details",
|
|
52
70
|
"data-testid": "video-details"
|
|
53
71
|
}, shouldDisplayCaption && /*#__PURE__*/React.createElement("div", {
|
|
@@ -65,17 +83,21 @@ Video.propTypes = {
|
|
|
65
83
|
autoplay: PropTypes.bool,
|
|
66
84
|
areVideoCreditsDisplayed: PropTypes.bool,
|
|
67
85
|
isCaptionDisplayed: PropTypes.bool,
|
|
68
|
-
provider: PropTypes.string
|
|
86
|
+
provider: PropTypes.string,
|
|
87
|
+
playInModal: PropTypes.bool,
|
|
88
|
+
imageId: PropTypes.string
|
|
69
89
|
};
|
|
70
90
|
Video.defaultProps = {
|
|
71
91
|
caption: '',
|
|
72
92
|
credits: '',
|
|
73
93
|
modifier: '',
|
|
74
|
-
|
|
94
|
+
imageId: '',
|
|
75
95
|
url: '',
|
|
76
96
|
provider: 'youtube',
|
|
97
|
+
autoplay: false,
|
|
77
98
|
isCaptionDisplayed: false,
|
|
78
|
-
areVideoCreditsDisplayed: false
|
|
99
|
+
areVideoCreditsDisplayed: false,
|
|
100
|
+
playInModal: false
|
|
79
101
|
};
|
|
80
102
|
export default Video;
|
|
81
103
|
//# sourceMappingURL=Video.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Video/Video.js"],"names":["React","PropTypes","VideoRender","Wrapper","getClassModifiers","shouldShowProperty","Video","url","modifier","autoplay","isCaptionDisplayed","caption","credits","areVideoCreditsDisplayed","provider","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Video/Video.js"],"names":["React","PropTypes","useGetImages","VideoRender","VideoModal","Wrapper","getClassModifiers","shouldShowProperty","Video","url","modifier","autoplay","isCaptionDisplayed","caption","credits","areVideoCreditsDisplayed","provider","playInModal","imageId","props","data","getFile","imageData","loading","modifiers","toLowerCase","shouldDisplayCaption","isDisplayed","value","shouldDisplayCredits","propTypes","string","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport useGetImages from '../../hooks/use-get-images';\nimport VideoRender from './VideoRender';\nimport VideoModal from './VideoModal';\nimport Wrapper from '../Wrapper';\nimport getClassModifiers from '../../utils/get-class-modifiers';\nimport { shouldShowProperty } from '../../helpers';\n\nconst Video = ({\n url,\n modifier,\n autoplay,\n isCaptionDisplayed,\n caption,\n credits,\n areVideoCreditsDisplayed,\n provider,\n playInModal,\n imageId,\n ...props\n}) => {\n const {\n data: { getFile: imageData },\n loading\n } = useGetImages(imageId);\n\n if (loading) return '';\n if (!url) return null;\n\n const modifiers = `video--${provider.toLowerCase()} ${getClassModifiers('video', {\n modifier,\n ...props\n })}`;\n\n const shouldDisplayCaption = shouldShowProperty({\n isDisplayed: isCaptionDisplayed,\n value: caption\n });\n const shouldDisplayCredits = shouldShowProperty({\n isDisplayed: areVideoCreditsDisplayed,\n value: credits\n });\n\n return (\n <Wrapper className=\"video\" modifiers={modifiers}>\n {playInModal ? (\n <VideoModal\n url={url}\n modifier={modifier}\n autoplay={autoplay}\n provider={provider}\n imageData={imageData}\n {...props}\n />\n ) : (\n <VideoRender\n url={url}\n modifier={modifier}\n autoplay={autoplay}\n provider={provider}\n imageData={imageData}\n {...props}\n />\n )}\n\n {(shouldDisplayCaption || shouldDisplayCredits) && (\n <div className=\"video__details\" data-testid=\"video-details\">\n {shouldDisplayCaption && <div className=\"caption\">{caption}</div>}\n {shouldDisplayCredits && <div className=\"credits\">{credits}</div>}\n </div>\n )}\n </Wrapper>\n );\n};\n\nVideo.propTypes = {\n url: PropTypes.string,\n modifier: PropTypes.string,\n caption: PropTypes.string,\n credits: PropTypes.string,\n autoplay: PropTypes.bool,\n areVideoCreditsDisplayed: PropTypes.bool,\n isCaptionDisplayed: PropTypes.bool,\n provider: PropTypes.string,\n playInModal: PropTypes.bool,\n imageId: PropTypes.string\n};\n\nVideo.defaultProps = {\n caption: '',\n credits: '',\n modifier: '',\n imageId: '',\n url: '',\n provider: 'youtube',\n autoplay: false,\n isCaptionDisplayed: false,\n areVideoCreditsDisplayed: false,\n playInModal: false\n};\n\nexport default Video;\n"],"file":"Video.js"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import Modal from '@blaze-react/modal';
|
|
4
|
+
import VideoRender from './VideoRender';
|
|
5
|
+
|
|
6
|
+
const VideoModal = _ref => {
|
|
7
|
+
let props = _extends({}, _ref);
|
|
8
|
+
|
|
9
|
+
const [displayModal, setDisplayModal] = useState(false);
|
|
10
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
11
|
+
role: "button",
|
|
12
|
+
onClick: () => {
|
|
13
|
+
setDisplayModal(!displayModal);
|
|
14
|
+
}
|
|
15
|
+
}, /*#__PURE__*/React.createElement(VideoRender, _extends({
|
|
16
|
+
placeholderOnly: true,
|
|
17
|
+
autoplay: false
|
|
18
|
+
}, props))), displayModal && /*#__PURE__*/React.createElement(Modal, {
|
|
19
|
+
className: "modal--video",
|
|
20
|
+
isFullScreen: true,
|
|
21
|
+
showFooter: false,
|
|
22
|
+
isSimple: true,
|
|
23
|
+
onClose: () => setDisplayModal(!displayModal)
|
|
24
|
+
}, /*#__PURE__*/React.createElement(VideoRender, _extends({}, props, {
|
|
25
|
+
placeholderOnly: false,
|
|
26
|
+
autoplay: true
|
|
27
|
+
}))));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export default VideoModal;
|
|
31
|
+
//# sourceMappingURL=VideoModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Video/VideoModal.js"],"names":["React","useState","Modal","VideoRender","VideoModal","props","displayModal","setDisplayModal"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,OAAOC,KAAP,MAAkB,oBAAlB;AACA,OAAOC,WAAP,MAAwB,eAAxB;;AAEA,MAAMC,UAAU,GAAG,QAAkB;AAAA,MAAZC,KAAY;;AACnC,QAAM,CAACC,YAAD,EAAeC,eAAf,IAAkCN,QAAQ,CAAC,KAAD,CAAhD;AAEA,sBACE,uDACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,OAAO,EAAE,MAAM;AACbM,MAAAA,eAAe,CAAC,CAACD,YAAF,CAAf;AACD;AAJH,kBAKE,oBAAC,WAAD;AAAa,IAAA,eAAe,MAA5B;AAA6B,IAAA,QAAQ,EAAE;AAAvC,KAAkDD,KAAlD,EALF,CADF,EAQGC,YAAY,iBACX,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,cADZ;AAEE,IAAA,YAAY,MAFd;AAGE,IAAA,UAAU,EAAE,KAHd;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,OAAO,EAAE,MAAMC,eAAe,CAAC,CAACD,YAAF;AALhC,kBAME,oBAAC,WAAD,eAAiBD,KAAjB;AAAwB,IAAA,eAAe,EAAE,KAAzC;AAAgD,IAAA,QAAQ;AAAxD,KANF,CATJ,CADF;AAqBD,CAxBD;;AA0BA,eAAeD,UAAf","sourcesContent":["import React, { useState } from 'react';\nimport Modal from '@blaze-react/modal';\nimport VideoRender from './VideoRender';\n\nconst VideoModal = ({ ...props }) => {\n const [displayModal, setDisplayModal] = useState(false);\n\n return (\n <>\n <div\n role=\"button\"\n onClick={() => {\n setDisplayModal(!displayModal);\n }}>\n <VideoRender placeholderOnly autoplay={false} {...props} />\n </div>\n {displayModal && (\n <Modal\n className=\"modal--video\"\n isFullScreen\n showFooter={false}\n isSimple\n onClose={() => setDisplayModal(!displayModal)}>\n <VideoRender {...props} placeholderOnly={false} autoplay />\n </Modal>\n )}\n </>\n );\n};\n\nexport default VideoModal;\n"],"file":"VideoModal.js"}
|
|
@@ -9,10 +9,10 @@ const VideoRender = _ref => {
|
|
|
9
9
|
let {
|
|
10
10
|
provider
|
|
11
11
|
} = _ref,
|
|
12
|
-
|
|
12
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
13
13
|
|
|
14
14
|
const Provider = getProvider(provider);
|
|
15
|
-
return /*#__PURE__*/React.createElement(Provider,
|
|
15
|
+
return /*#__PURE__*/React.createElement(Provider, props);
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
VideoRender.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Video/VideoRender.js"],"names":["React","PropTypes","getProvider","withTitle","VideoRender","provider","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Video/VideoRender.js"],"names":["React","PropTypes","getProvider","withTitle","VideoRender","provider","props","Provider","propTypes","string","isRequired"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,WAAP,MAAwB,aAAxB;AACA,SAASC,SAAT,QAA0B,WAA1B;;AAEA,MAAMC,WAAW,GAAG,QAA4B;AAAA,MAA3B;AAAEC,IAAAA;AAAF,GAA2B;AAAA,MAAZC,KAAY;;AAC9C,QAAMC,QAAQ,GAAGL,WAAW,CAACG,QAAD,CAA5B;AACA,sBAAO,oBAAC,QAAD,EAAcC,KAAd,CAAP;AACD,CAHD;;AAKAF,WAAW,CAACI,SAAZ,GAAwB;AACtBH,EAAAA,QAAQ,EAAEJ,SAAS,CAACQ,MAAV,CAAiBC;AADL,CAAxB;AAIA,eAAeP,SAAS,CAACC,WAAD,CAAxB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport getProvider from './providers';\nimport { withTitle } from '../../HOC';\n\nconst VideoRender = ({ provider, ...props }) => {\n const Provider = getProvider(provider);\n return <Provider {...props} />;\n};\n\nVideoRender.propTypes = {\n provider: PropTypes.string.isRequired\n};\n\nexport default withTitle(VideoRender);\n"],"file":"VideoRender.js"}
|
|
@@ -7,7 +7,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import ReactJWPlayer from 'react-jw-player';
|
|
10
|
-
import useGetImages from '../../../../hooks/use-get-images';
|
|
11
10
|
import { JW_PLAYER_TYPE_FILE, VIDEO_WRAPPER_CLASS_NAME } from '../../../../constants';
|
|
12
11
|
import JWPlayerController from './JWPlayerController';
|
|
13
12
|
const PlayerController = new JWPlayerController();
|
|
@@ -20,15 +19,9 @@ const JWPlayerProvider = ({
|
|
|
20
19
|
type,
|
|
21
20
|
urlScript,
|
|
22
21
|
muted,
|
|
23
|
-
|
|
22
|
+
imageData,
|
|
24
23
|
loop: repeat
|
|
25
24
|
}) => {
|
|
26
|
-
const {
|
|
27
|
-
data,
|
|
28
|
-
loading
|
|
29
|
-
} = useGetImages(imageId);
|
|
30
|
-
if (loading) return null;
|
|
31
|
-
|
|
32
25
|
const handleOnReady = () => {
|
|
33
26
|
const jwPlayer = window.jwplayer(name);
|
|
34
27
|
|
|
@@ -58,7 +51,7 @@ const JWPlayerProvider = ({
|
|
|
58
51
|
if (type === JW_PLAYER_TYPE_FILE) {
|
|
59
52
|
const {
|
|
60
53
|
url: imageURL = ''
|
|
61
|
-
} =
|
|
54
|
+
} = imageData;
|
|
62
55
|
return _objectSpread(_objectSpread({}, props), {}, {
|
|
63
56
|
image: imageURL,
|
|
64
57
|
file: url
|
|
@@ -82,7 +75,8 @@ JWPlayerProvider.propTypes = {
|
|
|
82
75
|
loop: PropTypes.bool,
|
|
83
76
|
controls: PropTypes.bool,
|
|
84
77
|
muted: PropTypes.bool,
|
|
85
|
-
type: PropTypes.string
|
|
78
|
+
type: PropTypes.string,
|
|
79
|
+
imageData: PropTypes.object
|
|
86
80
|
};
|
|
87
81
|
JWPlayerProvider.defaultProps = {
|
|
88
82
|
autoplay: false,
|
|
@@ -90,7 +84,8 @@ JWPlayerProvider.defaultProps = {
|
|
|
90
84
|
controls: true,
|
|
91
85
|
muted: false,
|
|
92
86
|
type: 'playlist',
|
|
93
|
-
imageId: null
|
|
87
|
+
imageId: null,
|
|
88
|
+
imageData: {}
|
|
94
89
|
};
|
|
95
90
|
export default JWPlayerProvider;
|
|
96
91
|
//# sourceMappingURL=JWPlayerProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Video/providers/JWPlayer/JWPlayerProvider.js"],"names":["React","PropTypes","ReactJWPlayer","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Video/providers/JWPlayer/JWPlayerProvider.js"],"names":["React","PropTypes","ReactJWPlayer","JW_PLAYER_TYPE_FILE","VIDEO_WRAPPER_CLASS_NAME","JWPlayerController","PlayerController","JWPlayerProvider","url","name","autoplay","controls","type","urlScript","muted","imageData","loop","repeat","handleOnReady","jwPlayer","window","jwplayer","setPlayer","getJWPlayerProps","events","props","customProps","playerScript","isAutoPlay","isMuted","playerId","onReady","className","imageURL","image","file","playlist","propTypes","string","isRequired","imageId","bool","object","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactJWPlayer from 'react-jw-player';\nimport { JW_PLAYER_TYPE_FILE, VIDEO_WRAPPER_CLASS_NAME } from '../../../../constants';\nimport JWPlayerController from './JWPlayerController';\n\nconst PlayerController = new JWPlayerController();\n\nconst JWPlayerProvider = ({\n url,\n name,\n autoplay,\n controls,\n type,\n urlScript,\n muted,\n imageData,\n loop: repeat\n}) => {\n const handleOnReady = () => {\n const jwPlayer = window.jwplayer(name);\n if (jwPlayer) {\n PlayerController.setPlayer(jwPlayer);\n }\n };\n\n const getJWPlayerProps = () => {\n const { events } = PlayerController;\n\n const props = {\n customProps: { repeat, controls, events },\n playerScript: urlScript,\n isAutoPlay: autoplay,\n isMuted: muted,\n playerId: name,\n onReady: handleOnReady,\n className: VIDEO_WRAPPER_CLASS_NAME\n };\n\n if (type === JW_PLAYER_TYPE_FILE) {\n const { url: imageURL = '' } = imageData;\n return { ...props, image: imageURL, file: url };\n }\n\n return { ...props, playlist: url };\n };\n\n return <ReactJWPlayer {...getJWPlayerProps()} />;\n};\n\nJWPlayerProvider.propTypes = {\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n urlScript: PropTypes.string.isRequired,\n imageId: PropTypes.string,\n autoplay: PropTypes.bool,\n loop: PropTypes.bool,\n controls: PropTypes.bool,\n muted: PropTypes.bool,\n type: PropTypes.string,\n imageData: PropTypes.object\n};\n\nJWPlayerProvider.defaultProps = {\n autoplay: false,\n loop: false,\n controls: true,\n muted: false,\n type: 'playlist',\n imageId: null,\n imageData: {}\n};\n\nexport default JWPlayerProvider;\n"],"file":"JWPlayerProvider.js"}
|
|
@@ -7,7 +7,9 @@ import { VIDEO_WRAPPER_CLASS_NAME } from '../../../../constants';
|
|
|
7
7
|
const YouTubeProvider = ({
|
|
8
8
|
url,
|
|
9
9
|
autoplay,
|
|
10
|
-
loop
|
|
10
|
+
loop,
|
|
11
|
+
placeholderOnly,
|
|
12
|
+
imageData
|
|
11
13
|
}) => {
|
|
12
14
|
const videoId = getYouTubeID(url);
|
|
13
15
|
if (!videoId) return null;
|
|
@@ -17,18 +19,24 @@ const YouTubeProvider = ({
|
|
|
17
19
|
}, /*#__PURE__*/React.createElement(YoutubeEmbeded, {
|
|
18
20
|
autoplay: autoplay,
|
|
19
21
|
videoId: videoId,
|
|
20
|
-
params: params
|
|
22
|
+
params: params,
|
|
23
|
+
placeholderOnly: placeholderOnly,
|
|
24
|
+
imageData: imageData
|
|
21
25
|
}));
|
|
22
26
|
};
|
|
23
27
|
|
|
24
28
|
YouTubeProvider.propTypes = {
|
|
25
29
|
url: PropTypes.string.isRequired,
|
|
26
30
|
autoplay: PropTypes.bool,
|
|
27
|
-
loop: PropTypes.bool
|
|
31
|
+
loop: PropTypes.bool,
|
|
32
|
+
placeholderOnly: PropTypes.bool,
|
|
33
|
+
imageData: PropTypes.object
|
|
28
34
|
};
|
|
29
35
|
YouTubeProvider.defaultProps = {
|
|
30
36
|
autoplay: false,
|
|
31
|
-
loop: false
|
|
37
|
+
loop: false,
|
|
38
|
+
placeholderOnly: false,
|
|
39
|
+
imageData: {}
|
|
32
40
|
};
|
|
33
41
|
export default YouTubeProvider;
|
|
34
42
|
//# sourceMappingURL=YouTubeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Video/providers/YouTube/YouTubeProvider.js"],"names":["React","PropTypes","YoutubeEmbeded","getYouTubeID","booleanToNumber","VIDEO_WRAPPER_CLASS_NAME","YouTubeProvider","url","autoplay","loop","videoId","params","propTypes","string","isRequired","bool","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,WAA9C;AACA,SAASC,wBAAT,QAAyC,uBAAzC;;AAEA,MAAMC,eAAe,GAAG,CAAC;AAAEC,EAAAA,GAAF;AAAOC,EAAAA,QAAP;AAAiBC,EAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Video/providers/YouTube/YouTubeProvider.js"],"names":["React","PropTypes","YoutubeEmbeded","getYouTubeID","booleanToNumber","VIDEO_WRAPPER_CLASS_NAME","YouTubeProvider","url","autoplay","loop","placeholderOnly","imageData","videoId","params","propTypes","string","isRequired","bool","object","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,WAA9C;AACA,SAASC,wBAAT,QAAyC,uBAAzC;;AAEA,MAAMC,eAAe,GAAG,CAAC;AAAEC,EAAAA,GAAF;AAAOC,EAAAA,QAAP;AAAiBC,EAAAA,IAAjB;AAAuBC,EAAAA,eAAvB;AAAwCC,EAAAA;AAAxC,CAAD,KAAyD;AAC/E,QAAMC,OAAO,GAAGT,YAAY,CAACI,GAAD,CAA5B;AAEA,MAAI,CAACK,OAAL,EAAc,OAAO,IAAP;AACd,QAAMC,MAAM,GAAI,QAAOT,eAAe,CAACK,IAAD,CAAO,EAA7C;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEJ;AAAhB,kBACE,oBAAC,cAAD;AACE,IAAA,QAAQ,EAAEG,QADZ;AAEE,IAAA,OAAO,EAAEI,OAFX;AAGE,IAAA,MAAM,EAAEC,MAHV;AAIE,IAAA,eAAe,EAAEH,eAJnB;AAKE,IAAA,SAAS,EAAEC;AALb,IADF,CADF;AAWD,CAjBD;;AAmBAL,eAAe,CAACQ,SAAhB,GAA4B;AAC1BP,EAAAA,GAAG,EAAEN,SAAS,CAACc,MAAV,CAAiBC,UADI;AAE1BR,EAAAA,QAAQ,EAAEP,SAAS,CAACgB,IAFM;AAG1BR,EAAAA,IAAI,EAAER,SAAS,CAACgB,IAHU;AAI1BP,EAAAA,eAAe,EAAET,SAAS,CAACgB,IAJD;AAK1BN,EAAAA,SAAS,EAAEV,SAAS,CAACiB;AALK,CAA5B;AAQAZ,eAAe,CAACa,YAAhB,GAA+B;AAC7BX,EAAAA,QAAQ,EAAE,KADmB;AAE7BC,EAAAA,IAAI,EAAE,KAFuB;AAG7BC,EAAAA,eAAe,EAAE,KAHY;AAI7BC,EAAAA,SAAS,EAAE;AAJkB,CAA/B;AAOA,eAAeL,eAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport YoutubeEmbeded from './YoutubeEmbeded';\nimport { getYouTubeID, booleanToNumber } from './helpers';\nimport { VIDEO_WRAPPER_CLASS_NAME } from '../../../../constants';\n\nconst YouTubeProvider = ({ url, autoplay, loop, placeholderOnly, imageData }) => {\n const videoId = getYouTubeID(url);\n\n if (!videoId) return null;\n const params = `loop=${booleanToNumber(loop)}`;\n\n return (\n <div className={VIDEO_WRAPPER_CLASS_NAME}>\n <YoutubeEmbeded\n autoplay={autoplay}\n videoId={videoId}\n params={params}\n placeholderOnly={placeholderOnly}\n imageData={imageData}\n />\n </div>\n );\n};\n\nYouTubeProvider.propTypes = {\n url: PropTypes.string.isRequired,\n autoplay: PropTypes.bool,\n loop: PropTypes.bool,\n placeholderOnly: PropTypes.bool,\n imageData: PropTypes.object\n};\n\nYouTubeProvider.defaultProps = {\n autoplay: false,\n loop: false,\n placeholderOnly: false,\n imageData: {}\n};\n\nexport default YouTubeProvider;\n"],"file":"YouTubeProvider.js"}
|