@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
|
@@ -2,8 +2,7 @@ import React, { useState, useEffect } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { useInView } from '@blaze-react/utils/lib/customHooks';
|
|
4
4
|
import { IN_VIEW_CONFIG } from '../../../../constants';
|
|
5
|
-
|
|
6
|
-
const YT_IMAGE_URL = 'https://i.ytimg.com';
|
|
5
|
+
import { getPosterUrl, YT_HQ_FORMAT, YT_IMAGE_URL } from './helpers';
|
|
7
6
|
|
|
8
7
|
const YoutubeEmbeded = ({
|
|
9
8
|
autoplay,
|
|
@@ -20,7 +19,9 @@ const YoutubeEmbeded = ({
|
|
|
20
19
|
muted,
|
|
21
20
|
adNetwork,
|
|
22
21
|
iframeClass,
|
|
23
|
-
priority
|
|
22
|
+
priority,
|
|
23
|
+
placeholderOnly,
|
|
24
|
+
imageData
|
|
24
25
|
}) => {
|
|
25
26
|
const [isIntersecting, outerRef] = useInView(IN_VIEW_CONFIG);
|
|
26
27
|
const [preconnected, setPreconnected] = useState(false);
|
|
@@ -33,12 +34,16 @@ const YoutubeEmbeded = ({
|
|
|
33
34
|
displayImage: priority
|
|
34
35
|
});
|
|
35
36
|
const encodedId = encodeURIComponent(videoId);
|
|
36
|
-
const videoPlaylisCovertId = typeof playlistCoverId === 'string' ? encodeURIComponent(playlistCoverId) : null;
|
|
37
37
|
const paramsImp = videoParams ? `&${videoParams}` : '';
|
|
38
|
-
const format = webp ? 'webp' : 'jpg';
|
|
39
|
-
const vi = webp ? 'vi_webp' : 'vi';
|
|
40
|
-
const posterUrl = !playlist ? `${YT_IMAGE_URL}/${vi}/${encodedId}/${imageSize}.${format}` : `${YT_IMAGE_URL}/${vi}/${videoPlaylisCovertId}/${imageSize}.${format}`;
|
|
41
38
|
const ytUrl = noCookie ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com';
|
|
39
|
+
const posterUrl = getPosterUrl({
|
|
40
|
+
imageData,
|
|
41
|
+
playlistCoverId,
|
|
42
|
+
playlist,
|
|
43
|
+
encodedId,
|
|
44
|
+
imageSize,
|
|
45
|
+
webp
|
|
46
|
+
});
|
|
42
47
|
const mutedValue = muted ? '&mute=1' : '';
|
|
43
48
|
const iframeSrc = !playlist ? `${ytUrl}/embed/${encodedId}?autoplay=1${mutedValue}${paramsImp}` : `${ytUrl}/embed/videoseries?autoplay=1${mutedValue}&list=${encodedId}${paramsImp}`;
|
|
44
49
|
const parsedWrapperClassname = `yt-facade ${renderIframe ? 'yt-activated' : ''}`;
|
|
@@ -64,7 +69,7 @@ const YoutubeEmbeded = ({
|
|
|
64
69
|
};
|
|
65
70
|
|
|
66
71
|
const addIframe = () => {
|
|
67
|
-
if (renderIframe) return;
|
|
72
|
+
if (renderIframe || placeholderOnly) return;
|
|
68
73
|
onIframeAdded();
|
|
69
74
|
setRenderIframe(true);
|
|
70
75
|
};
|
|
@@ -124,7 +129,9 @@ YoutubeEmbeded.propTypes = {
|
|
|
124
129
|
announce: PropTypes.string,
|
|
125
130
|
playlistCoverId: PropTypes.string,
|
|
126
131
|
videoParams: PropTypes.string,
|
|
127
|
-
videoTitle: PropTypes.string
|
|
132
|
+
videoTitle: PropTypes.string,
|
|
133
|
+
placeholderOnly: PropTypes.bool,
|
|
134
|
+
imageData: PropTypes.object
|
|
128
135
|
};
|
|
129
136
|
YoutubeEmbeded.defaultProps = {
|
|
130
137
|
priority: true,
|
|
@@ -141,7 +148,9 @@ YoutubeEmbeded.defaultProps = {
|
|
|
141
148
|
videoId: '',
|
|
142
149
|
playlistCoverId: '',
|
|
143
150
|
videoParams: '',
|
|
144
|
-
videoTitle: ''
|
|
151
|
+
videoTitle: '',
|
|
152
|
+
placeholderOnly: false,
|
|
153
|
+
imageData: {}
|
|
145
154
|
};
|
|
146
155
|
export default YoutubeEmbeded;
|
|
147
156
|
//# sourceMappingURL=YoutubeEmbeded.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Video/providers/YouTube/YoutubeEmbeded.js"],"names":["React","useState","useEffect","PropTypes","useInView","IN_VIEW_CONFIG","YT_HQ_FORMAT","YT_IMAGE_URL","YoutubeEmbeded","autoplay","videoId","playlistCoverId","videoTitle","poster","videoParams","announce","noCookie","webp","playlist","onIframeAdded","muted","adNetwork","iframeClass","priority","isIntersecting","outerRef","preconnected","setPreconnected","renderIframe","setRenderIframe","imageSize","displayImage","setImageDetails","encodedId","encodeURIComponent","videoPlaylisCovertId","paramsImp","format","vi","posterUrl","ytUrl","mutedValue","iframeSrc","parsedWrapperClassname","img","Image","onload","newImageSize","width","src","warmConnections","addIframe","backgroundImage","propTypes","bool","func","string","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { IN_VIEW_CONFIG } from '../../../../constants';\n\nconst YT_HQ_FORMAT = 'hqdefault';\nconst YT_IMAGE_URL = 'https://i.ytimg.com';\n\nconst YoutubeEmbeded = ({\n autoplay,\n videoId,\n playlistCoverId,\n videoTitle,\n poster,\n videoParams,\n announce,\n noCookie,\n webp,\n playlist,\n onIframeAdded,\n muted,\n adNetwork,\n iframeClass,\n priority\n}) => {\n const [isIntersecting, outerRef] = useInView(IN_VIEW_CONFIG);\n const [preconnected, setPreconnected] = useState(false);\n const [renderIframe, setRenderIframe] = useState(!!autoplay);\n const [{ imageSize, displayImage }, setImageDetails] = useState({\n imageSize: poster,\n displayImage: priority\n });\n\n const encodedId = encodeURIComponent(videoId);\n const videoPlaylisCovertId =\n typeof playlistCoverId === 'string' ? encodeURIComponent(playlistCoverId) : null;\n const paramsImp = videoParams ? `&${videoParams}` : '';\n const format = webp ? 'webp' : 'jpg';\n const vi = webp ? 'vi_webp' : 'vi';\n const posterUrl = !playlist\n ? `${YT_IMAGE_URL}/${vi}/${encodedId}/${imageSize}.${format}`\n : `${YT_IMAGE_URL}/${vi}/${videoPlaylisCovertId}/${imageSize}.${format}`;\n const ytUrl = noCookie ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com';\n\n const mutedValue = muted ? '&mute=1' : '';\n const iframeSrc = !playlist\n ? `${ytUrl}/embed/${encodedId}?autoplay=1${mutedValue}${paramsImp}`\n : `${ytUrl}/embed/videoseries?autoplay=1${mutedValue}&list=${encodedId}${paramsImp}`;\n const parsedWrapperClassname = `yt-facade ${renderIframe ? 'yt-activated' : ''}`;\n\n useEffect(\n () => {\n if ((!priority && !isIntersecting) || imageSize === YT_HQ_FORMAT) return;\n\n const img = new Image();\n // eslint-disable-next-line func-names\n img.onload = function() {\n let newImageSize = imageSize;\n if (this && this.width === 120) newImageSize = YT_HQ_FORMAT;\n setImageDetails({ imageSize: newImageSize, displayImage: true });\n };\n\n img.src = posterUrl;\n },\n [imageSize, isIntersecting, posterUrl, priority]\n );\n\n const warmConnections = () => {\n if (preconnected) return;\n setPreconnected(true);\n };\n\n const addIframe = () => {\n if (renderIframe) return;\n onIframeAdded();\n setRenderIframe(true);\n };\n\n return (\n <>\n {preconnected && (\n <>\n <link rel=\"preconnect\" href={YT_IMAGE_URL} />\n <link rel=\"preconnect\" href={ytUrl} />\n <link rel=\"preconnect\" href=\"https://www.google.com\" />\n {adNetwork && (\n <>\n <link rel=\"preconnect\" href=\"https://static.doubleclick.net\" />\n <link rel=\"preconnect\" href=\"https://googleads.g.doubleclick.net\" />\n </>\n )}\n </>\n )}\n <div\n ref={outerRef}\n role=\"button\"\n onPointerOver={warmConnections}\n onClick={addIframe}\n className={parsedWrapperClassname}\n data-title={videoTitle}\n style={{\n backgroundImage: `url(${displayImage ? posterUrl : ''})`\n }}>\n <div\n type=\"button\"\n className=\"yt-facade-button-wrapper\"\n aria-label={`${announce} ${videoTitle}`}>\n <div className=\"yt-facade-button\" />\n </div>\n {renderIframe && (\n <iframe\n className={iframeClass}\n title={videoTitle}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={iframeSrc}\n />\n )}\n </div>\n </>\n );\n};\n\nYoutubeEmbeded.propTypes = {\n priority: PropTypes.bool,\n onIframeAdded: PropTypes.func,\n adNetwork: PropTypes.bool,\n autoplay: PropTypes.bool,\n playlist: PropTypes.bool,\n muted: PropTypes.bool,\n webp: PropTypes.bool,\n noCookie: PropTypes.bool,\n videoId: PropTypes.string,\n iframeClass: PropTypes.string,\n poster: PropTypes.string,\n announce: PropTypes.string,\n playlistCoverId: PropTypes.string,\n videoParams: PropTypes.string,\n videoTitle: PropTypes.string\n};\n\nYoutubeEmbeded.defaultProps = {\n priority: true,\n onIframeAdded: () => {},\n adNetwork: false,\n autoplay: false,\n playlist: false,\n muted: false,\n webp: false,\n noCookie: false,\n iframeClass: '',\n poster: 'sddefault',\n announce: 'Watch',\n videoId: '',\n playlistCoverId: '',\n videoParams: '',\n videoTitle: ''\n};\n\nexport default YoutubeEmbeded;\n"],"file":"YoutubeEmbeded.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Video/providers/YouTube/YoutubeEmbeded.js"],"names":["React","useState","useEffect","PropTypes","useInView","IN_VIEW_CONFIG","getPosterUrl","YT_HQ_FORMAT","YT_IMAGE_URL","YoutubeEmbeded","autoplay","videoId","playlistCoverId","videoTitle","poster","videoParams","announce","noCookie","webp","playlist","onIframeAdded","muted","adNetwork","iframeClass","priority","placeholderOnly","imageData","isIntersecting","outerRef","preconnected","setPreconnected","renderIframe","setRenderIframe","imageSize","displayImage","setImageDetails","encodedId","encodeURIComponent","paramsImp","ytUrl","posterUrl","mutedValue","iframeSrc","parsedWrapperClassname","img","Image","onload","newImageSize","width","src","warmConnections","addIframe","backgroundImage","propTypes","bool","func","string","object","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { IN_VIEW_CONFIG } from '../../../../constants';\nimport { getPosterUrl, YT_HQ_FORMAT, YT_IMAGE_URL } from './helpers';\n\nconst YoutubeEmbeded = ({\n autoplay,\n videoId,\n playlistCoverId,\n videoTitle,\n poster,\n videoParams,\n announce,\n noCookie,\n webp,\n playlist,\n onIframeAdded,\n muted,\n adNetwork,\n iframeClass,\n priority,\n placeholderOnly,\n imageData\n}) => {\n const [isIntersecting, outerRef] = useInView(IN_VIEW_CONFIG);\n const [preconnected, setPreconnected] = useState(false);\n const [renderIframe, setRenderIframe] = useState(!!autoplay);\n const [{ imageSize, displayImage }, setImageDetails] = useState({\n imageSize: poster,\n displayImage: priority\n });\n\n const encodedId = encodeURIComponent(videoId);\n const paramsImp = videoParams ? `&${videoParams}` : '';\n const ytUrl = noCookie ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com';\n const posterUrl = getPosterUrl({\n imageData,\n playlistCoverId,\n playlist,\n encodedId,\n imageSize,\n webp\n });\n const mutedValue = muted ? '&mute=1' : '';\n const iframeSrc = !playlist\n ? `${ytUrl}/embed/${encodedId}?autoplay=1${mutedValue}${paramsImp}`\n : `${ytUrl}/embed/videoseries?autoplay=1${mutedValue}&list=${encodedId}${paramsImp}`;\n const parsedWrapperClassname = `yt-facade ${renderIframe ? 'yt-activated' : ''}`;\n\n useEffect(\n () => {\n if ((!priority && !isIntersecting) || imageSize === YT_HQ_FORMAT) return;\n\n const img = new Image();\n // eslint-disable-next-line func-names\n img.onload = function() {\n let newImageSize = imageSize;\n if (this && this.width === 120) newImageSize = YT_HQ_FORMAT;\n setImageDetails({ imageSize: newImageSize, displayImage: true });\n };\n\n img.src = posterUrl;\n },\n [imageSize, isIntersecting, posterUrl, priority]\n );\n\n const warmConnections = () => {\n if (preconnected) return;\n setPreconnected(true);\n };\n\n const addIframe = () => {\n if (renderIframe || placeholderOnly) return;\n onIframeAdded();\n setRenderIframe(true);\n };\n\n return (\n <>\n {preconnected && (\n <>\n <link rel=\"preconnect\" href={YT_IMAGE_URL} />\n <link rel=\"preconnect\" href={ytUrl} />\n <link rel=\"preconnect\" href=\"https://www.google.com\" />\n {adNetwork && (\n <>\n <link rel=\"preconnect\" href=\"https://static.doubleclick.net\" />\n <link rel=\"preconnect\" href=\"https://googleads.g.doubleclick.net\" />\n </>\n )}\n </>\n )}\n <div\n ref={outerRef}\n role=\"button\"\n onPointerOver={warmConnections}\n onClick={addIframe}\n className={parsedWrapperClassname}\n data-title={videoTitle}\n style={{\n backgroundImage: `url(${displayImage ? posterUrl : ''})`\n }}>\n <div\n type=\"button\"\n className=\"yt-facade-button-wrapper\"\n aria-label={`${announce} ${videoTitle}`}>\n <div className=\"yt-facade-button\" />\n </div>\n {renderIframe && (\n <iframe\n className={iframeClass}\n title={videoTitle}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={iframeSrc}\n />\n )}\n </div>\n </>\n );\n};\n\nYoutubeEmbeded.propTypes = {\n priority: PropTypes.bool,\n onIframeAdded: PropTypes.func,\n adNetwork: PropTypes.bool,\n autoplay: PropTypes.bool,\n playlist: PropTypes.bool,\n muted: PropTypes.bool,\n webp: PropTypes.bool,\n noCookie: PropTypes.bool,\n videoId: PropTypes.string,\n iframeClass: PropTypes.string,\n poster: PropTypes.string,\n announce: PropTypes.string,\n playlistCoverId: PropTypes.string,\n videoParams: PropTypes.string,\n videoTitle: PropTypes.string,\n placeholderOnly: PropTypes.bool,\n imageData: PropTypes.object\n};\n\nYoutubeEmbeded.defaultProps = {\n priority: true,\n onIframeAdded: () => {},\n adNetwork: false,\n autoplay: false,\n playlist: false,\n muted: false,\n webp: false,\n noCookie: false,\n iframeClass: '',\n poster: 'sddefault',\n announce: 'Watch',\n videoId: '',\n playlistCoverId: '',\n videoParams: '',\n videoTitle: '',\n placeholderOnly: false,\n imageData: {}\n};\n\nexport default YoutubeEmbeded;\n"],"file":"YoutubeEmbeded.js"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
const YOUTUBE_REGEX = /^.*((m\.)?youtu\.be\/|vi?\/|u\/\w\/|embed\/|\?vi?=|\&vi?=)([^#\&\?]*).*/;
|
|
2
|
+
const YT_IMAGE_URL = 'https://i.ytimg.com';
|
|
3
|
+
const YT_HQ_FORMAT = 'hqdefault';
|
|
2
4
|
|
|
3
5
|
function getYouTubeID(uri) {
|
|
4
6
|
const [,,, videoId] = uri.match(YOUTUBE_REGEX) || [];
|
|
@@ -9,5 +11,20 @@ function booleanToNumber(flag) {
|
|
|
9
11
|
return flag ? 1 : 0;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
const getPosterUrl = ({
|
|
15
|
+
imageData,
|
|
16
|
+
playlistCoverId,
|
|
17
|
+
playlist,
|
|
18
|
+
encodedId,
|
|
19
|
+
imageSize,
|
|
20
|
+
webp
|
|
21
|
+
}) => {
|
|
22
|
+
if (imageData && imageData.url) return imageData.url;
|
|
23
|
+
const videoPlaylisCovertId = typeof playlistCoverId === 'string' ? encodeURIComponent(playlistCoverId) : null;
|
|
24
|
+
const format = webp ? 'webp' : 'jpg';
|
|
25
|
+
const vi = webp ? 'vi_webp' : 'vi';
|
|
26
|
+
return !playlist ? `${YT_IMAGE_URL}/${vi}/${encodedId}/${imageSize}.${format}` : `${YT_IMAGE_URL}/${vi}/${videoPlaylisCovertId}/${imageSize}.${format}`;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { getYouTubeID, booleanToNumber, getPosterUrl, YT_IMAGE_URL, YT_HQ_FORMAT };
|
|
13
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Video/providers/YouTube/helpers/index.js"],"names":["YOUTUBE_REGEX","getYouTubeID","uri","videoId","match","booleanToNumber","flag"],"mappings":"AAAA,MAAMA,aAAa,GAAG,yEAAtB;;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAA2B;AACzB,QAAM,KAAOC,OAAP,IAAkBD,GAAG,CAACE,KAAJ,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Video/providers/YouTube/helpers/index.js"],"names":["YOUTUBE_REGEX","YT_IMAGE_URL","YT_HQ_FORMAT","getYouTubeID","uri","videoId","match","booleanToNumber","flag","getPosterUrl","imageData","playlistCoverId","playlist","encodedId","imageSize","webp","url","videoPlaylisCovertId","encodeURIComponent","format","vi"],"mappings":"AAAA,MAAMA,aAAa,GAAG,yEAAtB;AACA,MAAMC,YAAY,GAAG,qBAArB;AACA,MAAMC,YAAY,GAAG,WAArB;;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAA2B;AACzB,QAAM,KAAOC,OAAP,IAAkBD,GAAG,CAACE,KAAJ,CAAUN,aAAV,KAA4B,EAApD;AACA,SAAOK,OAAP;AACD;;AAED,SAASE,eAAT,CAAyBC,IAAzB,EAA+B;AAC7B,SAAOA,IAAI,GAAG,CAAH,GAAO,CAAlB;AACD;;AAED,MAAMC,YAAY,GAAG,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,eAAb;AAA8BC,EAAAA,QAA9B;AAAwCC,EAAAA,SAAxC;AAAmDC,EAAAA,SAAnD;AAA8DC,EAAAA;AAA9D,CAAD,KAA0E;AAC7F,MAAIL,SAAS,IAAIA,SAAS,CAACM,GAA3B,EAAgC,OAAON,SAAS,CAACM,GAAjB;AAChC,QAAMC,oBAAoB,GACxB,OAAON,eAAP,KAA2B,QAA3B,GAAsCO,kBAAkB,CAACP,eAAD,CAAxD,GAA4E,IAD9E;AAGA,QAAMQ,MAAM,GAAGJ,IAAI,GAAG,MAAH,GAAY,KAA/B;AACA,QAAMK,EAAE,GAAGL,IAAI,GAAG,SAAH,GAAe,IAA9B;AACA,SAAO,CAACH,QAAD,GACF,GAAEX,YAAa,IAAGmB,EAAG,IAAGP,SAAU,IAAGC,SAAU,IAAGK,MAAO,EADvD,GAEF,GAAElB,YAAa,IAAGmB,EAAG,IAAGH,oBAAqB,IAAGH,SAAU,IAAGK,MAAO,EAFzE;AAGD,CAVD;;AAYA,SAAShB,YAAT,EAAuBI,eAAvB,EAAwCE,YAAxC,EAAsDR,YAAtD,EAAoEC,YAApE","sourcesContent":["const YOUTUBE_REGEX = /^.*((m\\.)?youtu\\.be\\/|vi?\\/|u\\/\\w\\/|embed\\/|\\?vi?=|\\&vi?=)([^#\\&\\?]*).*/;\nconst YT_IMAGE_URL = 'https://i.ytimg.com';\nconst YT_HQ_FORMAT = 'hqdefault';\n\nfunction getYouTubeID(uri) {\n const [, , , videoId] = uri.match(YOUTUBE_REGEX) || [];\n return videoId;\n}\n\nfunction booleanToNumber(flag) {\n return flag ? 1 : 0;\n}\n\nconst getPosterUrl = ({ imageData, playlistCoverId, playlist, encodedId, imageSize, webp }) => {\n if (imageData && imageData.url) return imageData.url;\n const videoPlaylisCovertId =\n typeof playlistCoverId === 'string' ? encodeURIComponent(playlistCoverId) : null;\n\n const format = webp ? 'webp' : 'jpg';\n const vi = webp ? 'vi_webp' : 'vi';\n return !playlist\n ? `${YT_IMAGE_URL}/${vi}/${encodedId}/${imageSize}.${format}`\n : `${YT_IMAGE_URL}/${vi}/${videoPlaylisCovertId}/${imageSize}.${format}`;\n};\n\nexport { getYouTubeID, booleanToNumber, getPosterUrl, YT_IMAGE_URL, YT_HQ_FORMAT };\n"],"file":"index.js"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
const _excluded = ["children", "className", "modifiers", "style", "tagType"];
|
|
1
4
|
import React from 'react';
|
|
2
5
|
import PropTypes from 'prop-types';
|
|
3
|
-
const Wrapper = React.forwardRef(({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const Wrapper = React.forwardRef((_ref, ref) => {
|
|
7
|
+
let {
|
|
8
|
+
children,
|
|
9
|
+
className,
|
|
10
|
+
modifiers,
|
|
11
|
+
style,
|
|
12
|
+
tagType
|
|
13
|
+
} = _ref,
|
|
14
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
15
|
+
|
|
10
16
|
const TagType = !tagType || tagType === 'Default' ? 'div' : tagType;
|
|
11
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, children && /*#__PURE__*/React.createElement(TagType, {
|
|
17
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children && /*#__PURE__*/React.createElement(TagType, _extends({
|
|
12
18
|
ref: ref,
|
|
13
19
|
className: `${className} ${modifiers}`,
|
|
14
20
|
style: style
|
|
15
|
-
}, children));
|
|
21
|
+
}, props), children));
|
|
16
22
|
});
|
|
17
23
|
Wrapper.propTypes = {
|
|
18
24
|
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Wrapper.js"],"names":["React","PropTypes","Wrapper","forwardRef","children","className","modifiers","style","tagType","
|
|
1
|
+
{"version":3,"sources":["../../src/components/Wrapper.js"],"names":["React","PropTypes","Wrapper","forwardRef","ref","children","className","modifiers","style","tagType","props","TagType","propTypes","oneOfType","arrayOf","node","isRequired","string","object","defaultProps"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,MAAMC,OAAO,GAAGF,KAAK,CAACG,UAAN,CACd,OAA+DC,GAA/D,KAAuE;AAAA,MAAtE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,SAAZ;AAAuBC,IAAAA,SAAvB;AAAkCC,IAAAA,KAAlC;AAAyCC,IAAAA;AAAzC,GAAsE;AAAA,MAAjBC,KAAiB;;AACrE,QAAMC,OAAO,GAAG,CAACF,OAAD,IAAYA,OAAO,KAAK,SAAxB,GAAoC,KAApC,GAA4CA,OAA5D;AACA,sBACE,0CACGJ,QAAQ,iBACP,oBAAC,OAAD;AAAS,IAAA,GAAG,EAAED,GAAd;AAAmB,IAAA,SAAS,EAAG,GAAEE,SAAU,IAAGC,SAAU,EAAxD;AAA2D,IAAA,KAAK,EAAEC;AAAlE,KAA6EE,KAA7E,GACGL,QADH,CAFJ,CADF;AASD,CAZa,CAAhB;AAeAH,OAAO,CAACU,SAAR,GAAoB;AAClBP,EAAAA,QAAQ,EAAEJ,SAAS,CAACY,SAAV,CAAoB,CAACZ,SAAS,CAACa,OAAV,CAAkBb,SAAS,CAACc,IAA5B,CAAD,EAAoCd,SAAS,CAACc,IAA9C,CAApB,EAAyEC,UADjE;AAElBV,EAAAA,SAAS,EAAEL,SAAS,CAACgB,MAFH;AAGlBV,EAAAA,SAAS,EAAEN,SAAS,CAACgB,MAHH;AAIlBT,EAAAA,KAAK,EAAEP,SAAS,CAACiB,MAJC;AAKlBT,EAAAA,OAAO,EAAER,SAAS,CAACgB;AALD,CAApB;AAQAf,OAAO,CAACiB,YAAR,GAAuB;AACrBb,EAAAA,SAAS,EAAE,EADU;AAErBC,EAAAA,SAAS,EAAE,EAFU;AAGrBC,EAAAA,KAAK,EAAE,EAHc;AAIrBC,EAAAA,OAAO,EAAE;AAJY,CAAvB;AAOA,eAAeP,OAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Wrapper = React.forwardRef(\n ({ children, className, modifiers, style, tagType, ...props }, ref) => {\n const TagType = !tagType || tagType === 'Default' ? 'div' : tagType;\n return (\n <>\n {children && (\n <TagType ref={ref} className={`${className} ${modifiers}`} style={style} {...props}>\n {children}\n </TagType>\n )}\n </>\n );\n }\n);\n\nWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n className: PropTypes.string,\n modifiers: PropTypes.string,\n style: PropTypes.object,\n tagType: PropTypes.string\n};\n\nWrapper.defaultProps = {\n className: '',\n modifiers: '',\n style: {},\n tagType: ''\n};\n\nexport default Wrapper;\n"],"file":"Wrapper.js"}
|
|
@@ -76,6 +76,9 @@ export default {
|
|
|
76
76
|
'./PasswordResetRequest')),
|
|
77
77
|
breadcrumb: dynamic(() => import(
|
|
78
78
|
/* webpackChunkName: "blazePbBreadcrumb" */
|
|
79
|
-
'./Breadcrumb'))
|
|
79
|
+
'./Breadcrumb')),
|
|
80
|
+
backtotop: dynamic(() => import(
|
|
81
|
+
/* webpackChunkName: "blazePbBackToTop" */
|
|
82
|
+
'./BackToTop'))
|
|
80
83
|
};
|
|
81
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchcontent","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest","breadcrumb"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,aAAa,EAAEf,OAAO,CAAC,MACrB;AAAO;AAA8C,mBAArD,CADoB,CAhBT;AAmBbgB,EAAAA,YAAY,EAAEhB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAnBR;AAsBbiB,EAAAA,gBAAgB,EAAEjB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAtBZ;AAyBbkB,EAAAA,KAAK,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAzBD;AA0BbmB,EAAAA,IAAI,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA1BA;AA2BboB,EAAAA,KAAK,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CA3BD;AA4BbqB,EAAAA,IAAI,EAAErB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA5BA;AA6BbsB,EAAAA,QAAQ,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA7BJ;AA8BbuB,EAAAA,OAAO,EAAEvB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA9BH;AA+BbwB,EAAAA,YAAY,EAAExB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA/BR;AAkCbyB,EAAAA,aAAa,EAAEzB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CAlCT;AAqCb0B,EAAAA,oBAAoB,EAAE1B,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B,CArChB;AAwCb2B,EAAAA,UAAU,EAAE3B,OAAO,CAAC,MAAM;AAAO;AAA4C,gBAAnD,CAAP;
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchcontent","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest","breadcrumb","backtotop"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,aAAa,EAAEf,OAAO,CAAC,MACrB;AAAO;AAA8C,mBAArD,CADoB,CAhBT;AAmBbgB,EAAAA,YAAY,EAAEhB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAnBR;AAsBbiB,EAAAA,gBAAgB,EAAEjB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAtBZ;AAyBbkB,EAAAA,KAAK,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAzBD;AA0BbmB,EAAAA,IAAI,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA1BA;AA2BboB,EAAAA,KAAK,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CA3BD;AA4BbqB,EAAAA,IAAI,EAAErB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA5BA;AA6BbsB,EAAAA,QAAQ,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA7BJ;AA8BbuB,EAAAA,OAAO,EAAEvB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA9BH;AA+BbwB,EAAAA,YAAY,EAAExB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA/BR;AAkCbyB,EAAAA,aAAa,EAAEzB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CAlCT;AAqCb0B,EAAAA,oBAAoB,EAAE1B,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B,CArChB;AAwCb2B,EAAAA,UAAU,EAAE3B,OAAO,CAAC,MAAM;AAAO;AAA4C,gBAAnD,CAAP,CAxCN;AAyCb4B,EAAAA,SAAS,EAAE5B,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP;AAzCL,CAAf","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchcontent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchContent')\n ),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n ),\n breadcrumb: dynamic(() => import(/* webpackChunkName: \"blazePbBreadcrumb\" */ './Breadcrumb')),\n backtotop: dynamic(() => import(/* webpackChunkName: \"blazePbBackToTop\" */ './BackToTop'))\n};\n"],"file":"index.js"}
|
|
@@ -92,7 +92,7 @@ const buildRawQuery = (docType, operator, searchValues, filterData, id, itemsToD
|
|
|
92
92
|
type: 'number',
|
|
93
93
|
script: {
|
|
94
94
|
lang: 'painless',
|
|
95
|
-
source: "doc['
|
|
95
|
+
source: "!doc['id.keyword'].empty ? params.sortOrder.indexOf(doc['id.keyword'].value) : 0",
|
|
96
96
|
params: {
|
|
97
97
|
sortOrder: itemsToDisplayIds
|
|
98
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/build-raw-query.js"],"names":["buildRawQueryBase","getItemsToDisplayIds","getExtraAzBits","buildAzFilter","AND_OPERATOR","buildRawQuery","docType","operator","searchValues","filterData","id","itemsToDisplay","shouldApplySort","azOptions","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","filterValues","filterOperator","relations","stringProps","azFilter","shouldReturnAggs","isAZ","searchValuesTextCheckboxSelectJoined","searchValuesTextCheckboxOr","length","finalValue","finalValueWithCheckboxOrValues","must","bool","should","finalValueIfNoCheckboxOrValues","mustValues","query","azQueryBits","itemsToDisplayIds","push","ids","values","sort","_script","type","script","lang","source","params","sortOrder","order"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/build-raw-query.js"],"names":["buildRawQueryBase","getItemsToDisplayIds","getExtraAzBits","buildAzFilter","AND_OPERATOR","buildRawQuery","docType","operator","searchValues","filterData","id","itemsToDisplay","shouldApplySort","azOptions","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","filterValues","filterOperator","relations","stringProps","azFilter","shouldReturnAggs","isAZ","searchValuesTextCheckboxSelectJoined","searchValuesTextCheckboxOr","length","finalValue","finalValueWithCheckboxOrValues","must","bool","should","finalValueIfNoCheckboxOrValues","mustValues","query","azQueryBits","itemsToDisplayIds","push","ids","values","sort","_script","type","script","lang","source","params","sortOrder","order"],"mappings":"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","sourcesContent":["import buildRawQueryBase from './build-raw-query-base';\nimport getItemsToDisplayIds from './get-items-to-display-ids';\nimport getExtraAzBits from './get-extra-az-bits';\nimport buildAzFilter from './build-az-filter';\nimport { AND_OPERATOR } from '../constants';\n\nconst buildRawQuery = (\n docType,\n operator,\n searchValues,\n filterData,\n id,\n itemsToDisplay,\n shouldApplySort,\n azOptions\n) => {\n const {\n searchValuesText,\n searchValuesCheckboxSelectRange,\n searchValuesCheckboxOr\n } = searchValues;\n\n const { filterValues, filterOperator, relations, stringProps, azFilter } = filterData;\n const { shouldReturnAggs, isAZ } = azOptions || {};\n const searchValuesTextCheckboxSelectJoined =\n operator === AND_OPERATOR ? [...searchValuesText, ...searchValuesCheckboxSelectRange] : [];\n let searchValuesTextCheckboxOr = searchValuesText;\n if (searchValuesCheckboxOr.length) {\n searchValuesTextCheckboxOr = [...searchValuesText, ...searchValuesCheckboxOr];\n }\n\n let finalValue;\n\n if (searchValuesTextCheckboxSelectJoined.length) {\n const finalValueWithCheckboxOrValues = {\n must: [...searchValuesTextCheckboxSelectJoined, { bool: { should: searchValuesCheckboxOr } }]\n };\n const finalValueIfNoCheckboxOrValues = { must: searchValuesTextCheckboxSelectJoined };\n finalValue = searchValuesCheckboxOr.length\n ? finalValueWithCheckboxOrValues\n : finalValueIfNoCheckboxOrValues;\n } else {\n finalValue = {\n must: [...searchValuesCheckboxSelectRange, { bool: { should: searchValuesTextCheckboxOr } }]\n };\n }\n const mustValues = [\n {\n bool: finalValue\n }\n ];\n\n buildAzFilter(azFilter, mustValues);\n\n const query = {\n bool: {\n must: mustValues,\n ...buildRawQueryBase({ docType, id, filterValues, filterOperator, relations, stringProps })\n }\n };\n const azQueryBits = getExtraAzBits(shouldReturnAggs, isAZ, azFilter);\n\n if (itemsToDisplay && itemsToDisplay.length) {\n const itemsToDisplayIds = getItemsToDisplayIds(itemsToDisplay);\n query.bool.must.push({ ids: { values: itemsToDisplayIds } });\n if (shouldApplySort) {\n return {\n query,\n sort: {\n _script: {\n type: 'number',\n script: {\n lang: 'painless',\n source:\n \"!doc['id.keyword'].empty ? params.sortOrder.indexOf(doc['id.keyword'].value) : 0\",\n params: {\n sortOrder: itemsToDisplayIds\n }\n },\n order: 'asc'\n }\n },\n ...azQueryBits\n };\n }\n }\n\n return isAZ\n ? {\n query,\n ...azQueryBits\n }\n : query;\n};\n\nexport default buildRawQuery;\n"],"file":"build-raw-query.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.124.0-alpha.2",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@blaze-cms/core-auth-ui": "^0.119.0",
|
|
31
31
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
32
32
|
"@blaze-cms/image-cdn-react": "^0.2.0",
|
|
33
|
-
"@blaze-cms/nextjs-components": "^0.
|
|
33
|
+
"@blaze-cms/nextjs-components": "^0.124.0-alpha.2",
|
|
34
34
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
35
35
|
"@blaze-cms/utils": "^0.118.0",
|
|
36
36
|
"@blaze-react/breadcrumb": "0.8.0-alpha.60",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"lib/*",
|
|
85
85
|
"lib-es/*"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "52045d2ed84e79531b9634ad5ce95b89f674382a"
|
|
88
88
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { FaArrowUp } from 'react-icons/fa';
|
|
4
|
+
import Wrapper from '../Wrapper';
|
|
5
|
+
import { getClassModifiers } from '../../utils';
|
|
6
|
+
|
|
7
|
+
const BackToTop = ({ type, showAfterPixels, ...otherProps }) => {
|
|
8
|
+
const [goToTop, setGoToTop] = useState(false);
|
|
9
|
+
const modifiers = getClassModifiers(type, otherProps);
|
|
10
|
+
|
|
11
|
+
useEffect(
|
|
12
|
+
() => {
|
|
13
|
+
const handleOnScroll = () => setGoToTop(window.scrollY >= showAfterPixels);
|
|
14
|
+
document.addEventListener('scroll', handleOnScroll);
|
|
15
|
+
return () => document.removeEventListener('scroll', handleOnScroll);
|
|
16
|
+
},
|
|
17
|
+
[showAfterPixels]
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const handleBackToTop = () => {
|
|
21
|
+
window.scroll({
|
|
22
|
+
top: 0,
|
|
23
|
+
left: 0,
|
|
24
|
+
behavior: 'smooth'
|
|
25
|
+
});
|
|
26
|
+
setGoToTop(false);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<>
|
|
31
|
+
{goToTop && (
|
|
32
|
+
<Wrapper className={type} modifiers={modifiers} onClick={handleBackToTop}>
|
|
33
|
+
<i>
|
|
34
|
+
<FaArrowUp />
|
|
35
|
+
</i>
|
|
36
|
+
</Wrapper>
|
|
37
|
+
)}
|
|
38
|
+
</>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
BackToTop.propTypes = {
|
|
43
|
+
type: PropTypes.string,
|
|
44
|
+
showAfterPixels: PropTypes.number
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
BackToTop.defaultProps = {
|
|
48
|
+
type: 'backtotop',
|
|
49
|
+
showAfterPixels: 200
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export default BackToTop;
|
|
@@ -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,
|
|
@@ -81,9 +80,7 @@ const CarouselWrapper = ({
|
|
|
81
80
|
setShouldAutoScroll(false);
|
|
82
81
|
handleButtonNavigation();
|
|
83
82
|
}}>
|
|
84
|
-
<i
|
|
85
|
-
<FaAngleLeft size={arrowSize} />
|
|
86
|
-
</i>
|
|
83
|
+
<i className="arrow left" />
|
|
87
84
|
</button>
|
|
88
85
|
)}
|
|
89
86
|
</div>
|
|
@@ -96,9 +93,7 @@ const CarouselWrapper = ({
|
|
|
96
93
|
setShouldAutoScroll(false);
|
|
97
94
|
handleButtonNavigation(true);
|
|
98
95
|
}}>
|
|
99
|
-
<i
|
|
100
|
-
<FaAngleRight size={arrowSize} />
|
|
101
|
-
</i>
|
|
96
|
+
<i className="arrow right" />
|
|
102
97
|
</button>
|
|
103
98
|
)}
|
|
104
99
|
</div>
|
|
@@ -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);
|
|
@@ -131,7 +132,7 @@ const SearchContent = ({
|
|
|
131
132
|
onChange={e => setSearchTerm(e.target.value)}
|
|
132
133
|
onKeyPress={handleKeyPress}
|
|
133
134
|
className="search-content--expanded__input"
|
|
134
|
-
placeholder=
|
|
135
|
+
placeholder={placeholder}
|
|
135
136
|
onBlur={() => {
|
|
136
137
|
if (!collapsible) return;
|
|
137
138
|
if (!searchTerm || searchTerm === '') setCollapsed(true);
|
|
@@ -160,6 +161,7 @@ SearchContent.propTypes = {
|
|
|
160
161
|
searchInputAlignment: PropTypes.string,
|
|
161
162
|
searchInputWrapperMobile: PropTypes.string,
|
|
162
163
|
searchInputWrapperDesktop: PropTypes.string,
|
|
164
|
+
placeholder: PropTypes.string,
|
|
163
165
|
isMobile: PropTypes.bool,
|
|
164
166
|
collapsible: PropTypes.bool,
|
|
165
167
|
entity: PropTypes.string.isRequired
|
|
@@ -169,6 +171,7 @@ SearchContent.defaultProps = {
|
|
|
169
171
|
searchInputAlignment: '',
|
|
170
172
|
searchInputWrapperMobile: '',
|
|
171
173
|
searchInputWrapperDesktop: '',
|
|
174
|
+
placeholder: '',
|
|
172
175
|
isMobile: false,
|
|
173
176
|
collapsible: false
|
|
174
177
|
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
import useGetImages from '../../hooks/use-get-images';
|
|
3
4
|
import VideoRender from './VideoRender';
|
|
5
|
+
import VideoModal from './VideoModal';
|
|
4
6
|
import Wrapper from '../Wrapper';
|
|
5
7
|
import getClassModifiers from '../../utils/get-class-modifiers';
|
|
6
8
|
import { shouldShowProperty } from '../../helpers';
|
|
@@ -14,13 +16,21 @@ const Video = ({
|
|
|
14
16
|
credits,
|
|
15
17
|
areVideoCreditsDisplayed,
|
|
16
18
|
provider,
|
|
17
|
-
|
|
19
|
+
playInModal,
|
|
20
|
+
imageId,
|
|
21
|
+
...props
|
|
18
22
|
}) => {
|
|
23
|
+
const {
|
|
24
|
+
data: { getFile: imageData },
|
|
25
|
+
loading
|
|
26
|
+
} = useGetImages(imageId);
|
|
27
|
+
|
|
28
|
+
if (loading) return '';
|
|
19
29
|
if (!url) return null;
|
|
20
30
|
|
|
21
31
|
const modifiers = `video--${provider.toLowerCase()} ${getClassModifiers('video', {
|
|
22
32
|
modifier,
|
|
23
|
-
...
|
|
33
|
+
...props
|
|
24
34
|
})}`;
|
|
25
35
|
|
|
26
36
|
const shouldDisplayCaption = shouldShowProperty({
|
|
@@ -34,13 +44,26 @@ const Video = ({
|
|
|
34
44
|
|
|
35
45
|
return (
|
|
36
46
|
<Wrapper className="video" modifiers={modifiers}>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
{playInModal ? (
|
|
48
|
+
<VideoModal
|
|
49
|
+
url={url}
|
|
50
|
+
modifier={modifier}
|
|
51
|
+
autoplay={autoplay}
|
|
52
|
+
provider={provider}
|
|
53
|
+
imageData={imageData}
|
|
54
|
+
{...props}
|
|
55
|
+
/>
|
|
56
|
+
) : (
|
|
57
|
+
<VideoRender
|
|
58
|
+
url={url}
|
|
59
|
+
modifier={modifier}
|
|
60
|
+
autoplay={autoplay}
|
|
61
|
+
provider={provider}
|
|
62
|
+
imageData={imageData}
|
|
63
|
+
{...props}
|
|
64
|
+
/>
|
|
65
|
+
)}
|
|
66
|
+
|
|
44
67
|
{(shouldDisplayCaption || shouldDisplayCredits) && (
|
|
45
68
|
<div className="video__details" data-testid="video-details">
|
|
46
69
|
{shouldDisplayCaption && <div className="caption">{caption}</div>}
|
|
@@ -59,18 +82,22 @@ Video.propTypes = {
|
|
|
59
82
|
autoplay: PropTypes.bool,
|
|
60
83
|
areVideoCreditsDisplayed: PropTypes.bool,
|
|
61
84
|
isCaptionDisplayed: PropTypes.bool,
|
|
62
|
-
provider: PropTypes.string
|
|
85
|
+
provider: PropTypes.string,
|
|
86
|
+
playInModal: PropTypes.bool,
|
|
87
|
+
imageId: PropTypes.string
|
|
63
88
|
};
|
|
64
89
|
|
|
65
90
|
Video.defaultProps = {
|
|
66
91
|
caption: '',
|
|
67
92
|
credits: '',
|
|
68
93
|
modifier: '',
|
|
69
|
-
|
|
94
|
+
imageId: '',
|
|
70
95
|
url: '',
|
|
71
96
|
provider: 'youtube',
|
|
97
|
+
autoplay: false,
|
|
72
98
|
isCaptionDisplayed: false,
|
|
73
|
-
areVideoCreditsDisplayed: false
|
|
99
|
+
areVideoCreditsDisplayed: false,
|
|
100
|
+
playInModal: false
|
|
74
101
|
};
|
|
75
102
|
|
|
76
103
|
export default Video;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import Modal from '@blaze-react/modal';
|
|
3
|
+
import VideoRender from './VideoRender';
|
|
4
|
+
|
|
5
|
+
const VideoModal = ({ ...props }) => {
|
|
6
|
+
const [displayModal, setDisplayModal] = useState(false);
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<>
|
|
10
|
+
<div
|
|
11
|
+
role="button"
|
|
12
|
+
onClick={() => {
|
|
13
|
+
setDisplayModal(!displayModal);
|
|
14
|
+
}}>
|
|
15
|
+
<VideoRender placeholderOnly autoplay={false} {...props} />
|
|
16
|
+
</div>
|
|
17
|
+
{displayModal && (
|
|
18
|
+
<Modal
|
|
19
|
+
className="modal--video"
|
|
20
|
+
isFullScreen
|
|
21
|
+
showFooter={false}
|
|
22
|
+
isSimple
|
|
23
|
+
onClose={() => setDisplayModal(!displayModal)}>
|
|
24
|
+
<VideoRender {...props} placeholderOnly={false} autoplay />
|
|
25
|
+
</Modal>
|
|
26
|
+
)}
|
|
27
|
+
</>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default VideoModal;
|
|
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import getProvider from './providers';
|
|
4
4
|
import { withTitle } from '../../HOC';
|
|
5
5
|
|
|
6
|
-
const VideoRender = ({ provider, ...
|
|
6
|
+
const VideoRender = ({ provider, ...props }) => {
|
|
7
7
|
const Provider = getProvider(provider);
|
|
8
|
-
return <Provider {...
|
|
8
|
+
return <Provider {...props} />;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
VideoRender.propTypes = {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import ReactJWPlayer from 'react-jw-player';
|
|
4
|
-
import useGetImages from '../../../../hooks/use-get-images';
|
|
5
4
|
import { JW_PLAYER_TYPE_FILE, VIDEO_WRAPPER_CLASS_NAME } from '../../../../constants';
|
|
6
5
|
import JWPlayerController from './JWPlayerController';
|
|
7
6
|
|
|
@@ -15,13 +14,9 @@ const JWPlayerProvider = ({
|
|
|
15
14
|
type,
|
|
16
15
|
urlScript,
|
|
17
16
|
muted,
|
|
18
|
-
|
|
17
|
+
imageData,
|
|
19
18
|
loop: repeat
|
|
20
19
|
}) => {
|
|
21
|
-
const { data, loading } = useGetImages(imageId);
|
|
22
|
-
|
|
23
|
-
if (loading) return null;
|
|
24
|
-
|
|
25
20
|
const handleOnReady = () => {
|
|
26
21
|
const jwPlayer = window.jwplayer(name);
|
|
27
22
|
if (jwPlayer) {
|
|
@@ -43,7 +38,7 @@ const JWPlayerProvider = ({
|
|
|
43
38
|
};
|
|
44
39
|
|
|
45
40
|
if (type === JW_PLAYER_TYPE_FILE) {
|
|
46
|
-
const { url: imageURL = '' } =
|
|
41
|
+
const { url: imageURL = '' } = imageData;
|
|
47
42
|
return { ...props, image: imageURL, file: url };
|
|
48
43
|
}
|
|
49
44
|
|
|
@@ -62,7 +57,8 @@ JWPlayerProvider.propTypes = {
|
|
|
62
57
|
loop: PropTypes.bool,
|
|
63
58
|
controls: PropTypes.bool,
|
|
64
59
|
muted: PropTypes.bool,
|
|
65
|
-
type: PropTypes.string
|
|
60
|
+
type: PropTypes.string,
|
|
61
|
+
imageData: PropTypes.object
|
|
66
62
|
};
|
|
67
63
|
|
|
68
64
|
JWPlayerProvider.defaultProps = {
|
|
@@ -71,7 +67,8 @@ JWPlayerProvider.defaultProps = {
|
|
|
71
67
|
controls: true,
|
|
72
68
|
muted: false,
|
|
73
69
|
type: 'playlist',
|
|
74
|
-
imageId: null
|
|
70
|
+
imageId: null,
|
|
71
|
+
imageData: {}
|
|
75
72
|
};
|
|
76
73
|
|
|
77
74
|
export default JWPlayerProvider;
|