@learncard/react 2.8.10 → 2.8.11
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/dist/cjs/{CertificateDisplayCard-081fb157.js → CertificateDisplayCard-355bb9db.js} +2 -2
- package/dist/cjs/{CertificateDisplayCard-081fb157.js.map → CertificateDisplayCard-355bb9db.js.map} +1 -1
- package/dist/cjs/Lightbox-d7b749fd.js +175 -0
- package/dist/cjs/Lightbox-d7b749fd.js.map +1 -0
- package/dist/cjs/{MeritBadgeDisplayCard-3f8eb0fc.js → MeritBadgeDisplayCard-cdb59ca4.js} +2 -2
- package/dist/cjs/{MeritBadgeDisplayCard-3f8eb0fc.js.map → MeritBadgeDisplayCard-cdb59ca4.js.map} +1 -1
- package/dist/cjs/{VCCard-d4b60ae8.js → VCCard-41ec5401.js} +2 -2
- package/dist/cjs/{VCCard-d4b60ae8.js.map → VCCard-41ec5401.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard2-0bf59253.js → VCDisplayCard2-896291d9.js} +4 -4
- package/dist/cjs/{VCDisplayCard2-0bf59253.js.map → VCDisplayCard2-896291d9.js.map} +1 -1
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index13.js +5 -5
- package/dist/cjs/index19.js +1 -1
- package/dist/cjs/index21.js +2 -2
- package/dist/cjs/index37.js +5 -5
- package/dist/cjs/index40.js +4 -4
- package/dist/cjs/index6.js +2 -2
- package/dist/esm/{CertificateDisplayCard-98ec793a.js → CertificateDisplayCard-3ff759b1.js} +2 -2
- package/dist/esm/{CertificateDisplayCard-98ec793a.js.map → CertificateDisplayCard-3ff759b1.js.map} +1 -1
- package/dist/esm/Lightbox-f02b5b4f.js +169 -0
- package/dist/esm/Lightbox-f02b5b4f.js.map +1 -0
- package/dist/esm/{MeritBadgeDisplayCard-3a5d50b0.js → MeritBadgeDisplayCard-a3e1cac5.js} +2 -2
- package/dist/esm/{MeritBadgeDisplayCard-3a5d50b0.js.map → MeritBadgeDisplayCard-a3e1cac5.js.map} +1 -1
- package/dist/esm/{VCCard-d252e48a.js → VCCard-ec7b123f.js} +2 -2
- package/dist/esm/{VCCard-d252e48a.js.map → VCCard-ec7b123f.js.map} +1 -1
- package/dist/esm/{VCDisplayCard2-e7ea7aaa.js → VCDisplayCard2-a4144508.js} +4 -4
- package/dist/esm/{VCDisplayCard2-e7ea7aaa.js.map → VCDisplayCard2-a4144508.js.map} +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/index13.js +5 -5
- package/dist/esm/index19.js +1 -1
- package/dist/esm/index21.js +2 -2
- package/dist/esm/index37.js +5 -5
- package/dist/esm/index40.js +4 -4
- package/dist/esm/index6.js +2 -2
- package/dist/main.css +1 -1
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/Lightbox-880f4672.js +0 -81
- package/dist/cjs/Lightbox-880f4672.js.map +0 -1
- package/dist/esm/Lightbox-883afe8f.js +0 -75
- package/dist/esm/Lightbox-883afe8f.js.map +0 -1
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var reactDom = require('react-dom');
|
|
5
|
-
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
9
|
-
|
|
10
|
-
const Lightbox = ({ items, currentUrl, setCurrentUrl }) => {
|
|
11
|
-
const currentItem = items.find((item) => item.url === currentUrl);
|
|
12
|
-
const goToNextItem = React.useCallback(() => {
|
|
13
|
-
const currentIndex = items.findIndex((item) => item.url === currentUrl);
|
|
14
|
-
const nextItem = items.at((currentIndex + 1) % items.length);
|
|
15
|
-
if (nextItem) {
|
|
16
|
-
setCurrentUrl(nextItem.url);
|
|
17
|
-
}
|
|
18
|
-
}, [currentUrl]);
|
|
19
|
-
const goToPreviousItem = React.useCallback(() => {
|
|
20
|
-
const currentIndex = items.findIndex((item) => item.url === currentUrl);
|
|
21
|
-
const previousItem = items.at((currentIndex - 1) % items.length);
|
|
22
|
-
if (previousItem) {
|
|
23
|
-
setCurrentUrl(previousItem.url);
|
|
24
|
-
}
|
|
25
|
-
}, [currentUrl]);
|
|
26
|
-
const innerRef = React.useRef(null);
|
|
27
|
-
React.useEffect(() => {
|
|
28
|
-
const keydownListener = (e) => {
|
|
29
|
-
if (!currentUrl || !currentItem) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (e.key === "Escape") {
|
|
33
|
-
e.preventDefault();
|
|
34
|
-
e.stopPropagation();
|
|
35
|
-
setCurrentUrl(void 0);
|
|
36
|
-
}
|
|
37
|
-
if (e.key === "ArrowRight") {
|
|
38
|
-
e.preventDefault();
|
|
39
|
-
e.stopPropagation();
|
|
40
|
-
goToNextItem();
|
|
41
|
-
}
|
|
42
|
-
if (e.key === "ArrowLeft") {
|
|
43
|
-
e.preventDefault();
|
|
44
|
-
e.stopPropagation();
|
|
45
|
-
goToPreviousItem();
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
window.addEventListener("keydown", keydownListener);
|
|
49
|
-
return () => {
|
|
50
|
-
window.removeEventListener("keydown", keydownListener);
|
|
51
|
-
};
|
|
52
|
-
}, [currentUrl, currentItem]);
|
|
53
|
-
if (!currentUrl || !currentItem) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, reactDom.createPortal(
|
|
57
|
-
/* @__PURE__ */ React__default["default"].createElement("div", {
|
|
58
|
-
className: "absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]",
|
|
59
|
-
onClick: (e) => {
|
|
60
|
-
if (e.target !== innerRef.current) {
|
|
61
|
-
setCurrentUrl(void 0);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}, currentItem.type === "photo" && /* @__PURE__ */ React__default["default"].createElement("img", {
|
|
65
|
-
className: "cursor-pointer max-w-[90vw] max-h-[90vh]",
|
|
66
|
-
src: currentUrl,
|
|
67
|
-
onClick: () => {
|
|
68
|
-
window.open(currentUrl, "_blank");
|
|
69
|
-
},
|
|
70
|
-
ref: innerRef
|
|
71
|
-
}), currentItem.type === "video" && new URL(currentUrl).hostname.replace("www.", "").startsWith("youtube.com") && /* @__PURE__ */ React__default["default"].createElement("iframe", {
|
|
72
|
-
width: "560",
|
|
73
|
-
height: "315",
|
|
74
|
-
src: currentUrl.replace("watch?v=", "embed/")
|
|
75
|
-
})),
|
|
76
|
-
document.body
|
|
77
|
-
));
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
exports.Lightbox = Lightbox;
|
|
81
|
-
//# sourceMappingURL=Lightbox-880f4672.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox-880f4672.js","sources":["../../src/components/Lightbox/Lightbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport type LightboxItemType = 'photo' | 'video';\n\nexport type LightboxItem = {\n url: string;\n type: LightboxItemType;\n};\n\nexport type LightboxImage = LightboxItem & {\n type: 'photo';\n alt?: string;\n};\n\nexport type LightboxVideo = LightboxItem & {\n type: 'video';\n};\n\nexport type LightboxProps = {\n items: LightboxItem[];\n currentUrl: string | undefined;\n setCurrentUrl: (url: string | undefined) => void;\n};\n\nexport const Lightbox: React.FC<LightboxProps> = ({ items, currentUrl, setCurrentUrl }) => {\n const currentItem = items.find(item => item.url === currentUrl);\n const goToNextItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const nextItem = items.at((currentIndex + 1) % items.length);\n\n if (nextItem) {\n setCurrentUrl(nextItem.url);\n }\n }, [currentUrl]);\n const goToPreviousItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const previousItem = items.at((currentIndex - 1) % items.length);\n\n if (previousItem) {\n setCurrentUrl(previousItem.url);\n }\n }, [currentUrl]);\n\n const innerRef = useRef<HTMLImageElement>(null);\n\n useEffect(() => {\n const keydownListener: (this: Window, e: KeyboardEvent) => any = e => {\n if (!currentUrl || !currentItem) {\n return;\n }\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n\n setCurrentUrl(undefined);\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n\n goToNextItem();\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n e.stopPropagation();\n\n goToPreviousItem();\n }\n };\n\n window.addEventListener('keydown', keydownListener);\n\n return () => {\n window.removeEventListener('keydown', keydownListener);\n };\n }, [currentUrl, currentItem]);\n\n if (!currentUrl || !currentItem) {\n return null;\n }\n\n return (\n <>\n {createPortal(\n <div\n className=\"absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]\"\n onClick={e => {\n if (e.target !== innerRef.current) {\n setCurrentUrl(undefined);\n }\n }}\n >\n {currentItem.type === 'photo' && (\n <img\n className=\"cursor-pointer max-w-[90vw] max-h-[90vh]\"\n src={currentUrl}\n onClick={() => {\n window.open(currentUrl, '_blank');\n }}\n ref={innerRef}\n />\n )}\n {currentItem.type === 'video' &&\n new URL(currentUrl).hostname\n .replace('www.', '')\n .startsWith('youtube.com') && (\n <iframe\n width=\"560\"\n height=\"315\"\n src={currentUrl.replace('watch?v=', 'embed/')}\n />\n )}\n </div>,\n document.body\n )}\n </>\n );\n};\n"],"names":["useCallback","useRef","useEffect","React","createPortal"],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useRef, useEffect } from 'react';
|
|
2
|
-
import { createPortal } from 'react-dom';
|
|
3
|
-
|
|
4
|
-
const Lightbox = ({ items, currentUrl, setCurrentUrl }) => {
|
|
5
|
-
const currentItem = items.find((item) => item.url === currentUrl);
|
|
6
|
-
const goToNextItem = useCallback(() => {
|
|
7
|
-
const currentIndex = items.findIndex((item) => item.url === currentUrl);
|
|
8
|
-
const nextItem = items.at((currentIndex + 1) % items.length);
|
|
9
|
-
if (nextItem) {
|
|
10
|
-
setCurrentUrl(nextItem.url);
|
|
11
|
-
}
|
|
12
|
-
}, [currentUrl]);
|
|
13
|
-
const goToPreviousItem = useCallback(() => {
|
|
14
|
-
const currentIndex = items.findIndex((item) => item.url === currentUrl);
|
|
15
|
-
const previousItem = items.at((currentIndex - 1) % items.length);
|
|
16
|
-
if (previousItem) {
|
|
17
|
-
setCurrentUrl(previousItem.url);
|
|
18
|
-
}
|
|
19
|
-
}, [currentUrl]);
|
|
20
|
-
const innerRef = useRef(null);
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
const keydownListener = (e) => {
|
|
23
|
-
if (!currentUrl || !currentItem) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (e.key === "Escape") {
|
|
27
|
-
e.preventDefault();
|
|
28
|
-
e.stopPropagation();
|
|
29
|
-
setCurrentUrl(void 0);
|
|
30
|
-
}
|
|
31
|
-
if (e.key === "ArrowRight") {
|
|
32
|
-
e.preventDefault();
|
|
33
|
-
e.stopPropagation();
|
|
34
|
-
goToNextItem();
|
|
35
|
-
}
|
|
36
|
-
if (e.key === "ArrowLeft") {
|
|
37
|
-
e.preventDefault();
|
|
38
|
-
e.stopPropagation();
|
|
39
|
-
goToPreviousItem();
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
window.addEventListener("keydown", keydownListener);
|
|
43
|
-
return () => {
|
|
44
|
-
window.removeEventListener("keydown", keydownListener);
|
|
45
|
-
};
|
|
46
|
-
}, [currentUrl, currentItem]);
|
|
47
|
-
if (!currentUrl || !currentItem) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, createPortal(
|
|
51
|
-
/* @__PURE__ */ React.createElement("div", {
|
|
52
|
-
className: "absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]",
|
|
53
|
-
onClick: (e) => {
|
|
54
|
-
if (e.target !== innerRef.current) {
|
|
55
|
-
setCurrentUrl(void 0);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}, currentItem.type === "photo" && /* @__PURE__ */ React.createElement("img", {
|
|
59
|
-
className: "cursor-pointer max-w-[90vw] max-h-[90vh]",
|
|
60
|
-
src: currentUrl,
|
|
61
|
-
onClick: () => {
|
|
62
|
-
window.open(currentUrl, "_blank");
|
|
63
|
-
},
|
|
64
|
-
ref: innerRef
|
|
65
|
-
}), currentItem.type === "video" && new URL(currentUrl).hostname.replace("www.", "").startsWith("youtube.com") && /* @__PURE__ */ React.createElement("iframe", {
|
|
66
|
-
width: "560",
|
|
67
|
-
height: "315",
|
|
68
|
-
src: currentUrl.replace("watch?v=", "embed/")
|
|
69
|
-
})),
|
|
70
|
-
document.body
|
|
71
|
-
));
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export { Lightbox as L };
|
|
75
|
-
//# sourceMappingURL=Lightbox-883afe8f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox-883afe8f.js","sources":["../../src/components/Lightbox/Lightbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport type LightboxItemType = 'photo' | 'video';\n\nexport type LightboxItem = {\n url: string;\n type: LightboxItemType;\n};\n\nexport type LightboxImage = LightboxItem & {\n type: 'photo';\n alt?: string;\n};\n\nexport type LightboxVideo = LightboxItem & {\n type: 'video';\n};\n\nexport type LightboxProps = {\n items: LightboxItem[];\n currentUrl: string | undefined;\n setCurrentUrl: (url: string | undefined) => void;\n};\n\nexport const Lightbox: React.FC<LightboxProps> = ({ items, currentUrl, setCurrentUrl }) => {\n const currentItem = items.find(item => item.url === currentUrl);\n const goToNextItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const nextItem = items.at((currentIndex + 1) % items.length);\n\n if (nextItem) {\n setCurrentUrl(nextItem.url);\n }\n }, [currentUrl]);\n const goToPreviousItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const previousItem = items.at((currentIndex - 1) % items.length);\n\n if (previousItem) {\n setCurrentUrl(previousItem.url);\n }\n }, [currentUrl]);\n\n const innerRef = useRef<HTMLImageElement>(null);\n\n useEffect(() => {\n const keydownListener: (this: Window, e: KeyboardEvent) => any = e => {\n if (!currentUrl || !currentItem) {\n return;\n }\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n\n setCurrentUrl(undefined);\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n\n goToNextItem();\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n e.stopPropagation();\n\n goToPreviousItem();\n }\n };\n\n window.addEventListener('keydown', keydownListener);\n\n return () => {\n window.removeEventListener('keydown', keydownListener);\n };\n }, [currentUrl, currentItem]);\n\n if (!currentUrl || !currentItem) {\n return null;\n }\n\n return (\n <>\n {createPortal(\n <div\n className=\"absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]\"\n onClick={e => {\n if (e.target !== innerRef.current) {\n setCurrentUrl(undefined);\n }\n }}\n >\n {currentItem.type === 'photo' && (\n <img\n className=\"cursor-pointer max-w-[90vw] max-h-[90vh]\"\n src={currentUrl}\n onClick={() => {\n window.open(currentUrl, '_blank');\n }}\n ref={innerRef}\n />\n )}\n {currentItem.type === 'video' &&\n new URL(currentUrl).hostname\n .replace('www.', '')\n .startsWith('youtube.com') && (\n <iframe\n width=\"560\"\n height=\"315\"\n src={currentUrl.replace('watch?v=', 'embed/')}\n />\n )}\n </div>,\n document.body\n )}\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|