IMPR: React.JS embed friendly version

This commit is contained in:
Tony Air 2021-01-31 04:00:13 +07:00
parent 9f37ee2b73
commit 07c9c5c526
12 changed files with 1073 additions and 314 deletions

339
dist/css/app.css vendored
View File

@ -1,244 +1,131 @@
.meta-lightbox-overlay {
position: fixed;
top: 0;
left: 0;
z-index: 99998;
width: 100%;
height: 100%;
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
visibility: hidden;
opacity: 0;
box-sizing: border-box; }
.meta-lightbox-overlay.meta-lightbox-open {
visibility: visible;
opacity: 1; }
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0; }
.meta-lightbox-wrap {
position: absolute;
top: 10%;
bottom: 10%;
left: 10%;
right: 10%;
display: flex;
align-items: center;
text-align: center;
justify-content: center; }
.meta-lightbox-content {
display: flex;
.meta-MetaWindow .meta-spinner_embed,
.meta-MetaWindow .meta-spinner,
.meta-MetaWindow .meta-error {
display: none;
align-items: center;
justify-content: center;
text-align: center;
flex-direction: row;
color: #fff;
width: 100%;
height: 100%; }
.meta-lightbox-content .meta-lightbox-ajax {
color: #212529; }
.meta-lightbox-content .meta-lightbox-zoom-wrapper {
display: block;
height: 100%;
width: 100%; }
.meta-lightbox-content .meta-lightbox-zoom-wrapper:after {
color: #fff;
font: normal normal normal 14px/1 FontAwesome;
content: '\f00e';
position: absolute;
right: 1em;
bottom: 1em;
right: 1em;
text-shadow: 1px 1px 1px #000; }
.meta-lightbox-content .meta-lightbox-zoom-wrapper.no-zoom:after {
display: none; }
z-index: 2;
text-align: center; }
.meta-lightbox-title-wrap {
.meta-MetaWindow .meta-spinner_embed,
.meta-MetaWindow .meta-spinner {
font-size: 2rem;
color: #fff;
font-weight: bold;
text-transform: uppercase;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
z-index: 99999;
text-align: center; }
right: 0;
top: 0;
bottom: 0; }
.meta-lightbox-nav {
display: none; }
.meta-MetaWindow .meta-spinner_embed {
display: flex; }
.meta-lightbox-prev {
.meta-MetaWindow-overlay {
background: rgba(96, 125, 139, 0.8);
display: none;
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
align-items: center;
justify-content: center; }
.meta-MetaWindow-overlay__open {
display: flex; }
.meta-MetaWindow-overlay__loading .meta-spinner {
display: flex; }
.meta-MetaWindow-overlay__error .meta-content {
justify-content: center; }
.meta-MetaWindow-overlay__error .meta-error {
display: flex; }
.meta-MetaWindow .meta-close {
font-size: 1.2rem;
color: #212121;
text-shadow: #fff 0 0 0.25em;
position: absolute;
top: 50%;
left: 0; }
.meta-lightbox-next {
position: absolute;
top: 50%;
right: 0; }
.meta-lightbox-close {
position: absolute;
top: 2%;
right: 2%;
line-height: 1em; }
.meta-lightbox-image {
text-align: center; }
.meta-lightbox-image img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
vertical-align: middle; }
.meta-lightbox-content iframe {
width: 100%;
height: 100%; }
.meta-lightbox-inline,
.meta-lightbox-ajax {
max-height: 100%;
overflow: auto; }
.meta-lightbox-error {
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
width: 100%;
height: 100%;
color: #fff;
text-shadow: 0 1px 1px #000; }
.meta-lightbox-error .alert {
margin: 0;
top: 0;
right: 0;
padding: 0.5em 0.651em;
border: 0;
background: none;
z-index: 2; }
.meta-MetaWindow .meta-close:hover, .meta-MetaWindow .meta-close:focus {
color: #eceff1;
background: #2196f3;
text-shadow: none; }
.meta-lightbox-error p {
display: table-cell;
vertical-align: middle; }
.meta-MetaWindow .meta-content {
position: relative;
width: 90%;
height: 90%;
display: flex;
flex-direction: column; }
/* Effects
**********************************************/
.meta-lightbox-notouch .meta-lightbox-effect-fade,
.meta-lightbox-notouch .meta-lightbox-effect-fadeScale,
.meta-lightbox-notouch .meta-lightbox-effect-slideLeft,
.meta-lightbox-notouch .meta-lightbox-effect-slideRight,
.meta-lightbox-notouch .meta-lightbox-effect-slideUp,
.meta-lightbox-notouch .meta-lightbox-effect-slideDown,
.meta-lightbox-notouch .meta-lightbox-effect-fall {
transition: all 0.2s ease-in-out; }
.meta-MetaWindow .meta-wrap {
max-height: 100%;
max-width: 100%;
width: 100%;
overflow: auto; }
.meta-MetaWindow .meta-wrap img {
max-width: 100%;
max-height: 100%; }
/* fadeScale */
.meta-lightbox-effect-fadeScale .meta-lightbox-wrap {
transition: all 0.3s;
transform: scale(0.7); }
.meta-MetaWindow__text .meta-close {
background: #fff; }
.meta-lightbox-effect-fadeScale.meta-lightbox-open .meta-lightbox-wrap {
transform: scale(1); }
/* slideLeft / slideRight / slideUp / slideDown */
.meta-lightbox-effect-slideLeft .meta-lightbox-wrap,
.meta-lightbox-effect-slideRight .meta-lightbox-wrap,
.meta-lightbox-effect-slideUp .meta-lightbox-wrap,
.meta-lightbox-effect-slideDown .meta-lightbox-wrap {
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); }
.meta-lightbox-effect-slideLeft .meta-lightbox-wrap {
transform: translateX(-10%); }
.meta-lightbox-effect-slideRight .meta-lightbox-wrap {
transform: translateX(10%); }
.meta-lightbox-effect-slideLeft.meta-lightbox-open .meta-lightbox-wrap,
.meta-lightbox-effect-slideRight.meta-lightbox-open .meta-lightbox-wrap {
transform: translateX(0); }
.meta-lightbox-effect-slideDown .meta-lightbox-wrap {
transform: translateY(-10%); }
.meta-lightbox-effect-slideUp .meta-lightbox-wrap {
transform: translateY(10%); }
.meta-lightbox-effect-slideUp.meta-lightbox-open .meta-lightbox-wrap,
.meta-lightbox-effect-slideDown.meta-lightbox-open .meta-lightbox-wrap {
transform: translateY(0); }
/* fall */
.meta-lightbox-body-effect-fall .meta-lightbox-effect-fall {
perspective: 1000px; }
.meta-lightbox-effect-fall .meta-lightbox-wrap {
transition: all 0.3s ease-out;
transform: translateZ(300px); }
.meta-lightbox-effect-fall.meta-lightbox-open .meta-lightbox-wrap {
transform: translateZ(0); }
.meta-lightbox-theme-default.meta-lightbox-overlay {
background: #666;
background: rgba(0, 0, 0, 0.6); }
.meta-lightbox-theme-default .meta-lightbox-nav {
top: 10%;
width: 20%;
height: 80%;
background-repeat: no-repeat;
background-position: 50% 50%;
opacity: 0.5;
color: #fff;
font-size: 3em;
text-decoration: none;
text-shadow: 1px 1px 0 #000; }
@media (min-width: 576px) {
.meta-lightbox-theme-default .meta-lightbox-nav {
width: 8%; } }
.meta-lightbox-theme-default .meta-lightbox-nav .fa {
position: absolute;
top: 50%;
left: 50%;
margin-top: -1em;
margin-left: -0.2em; }
.meta-lightbox-theme-default .meta-lightbox-nav:hover {
color: #007bff;
opacity: 1;
background-color: rgba(0, 0, 0, 0.5); }
.meta-lightbox-theme-default .meta-lightbox-close {
display: block;
opacity: 0.5;
color: #fff;
text-decoration: none;
font-size: 2em;
text-shadow: 1px 1px 0 #000;
text-align: center;
width: 1.2em;
height: 1.2em;
line-height: 1.2em; }
.meta-lightbox-theme-default .meta-lightbox-close:focus {
color: #007bff;
opacity: 1;
background-color: rgba(0, 0, 0, 0.5); }
.meta-lightbox-theme-default .meta-lightbox-title {
background: #000;
color: #fff;
padding: 7px 15px; }
.meta-lightbox-theme-default .meta-lightbox-ajax,
.meta-lightbox-theme-default .meta-lightbox-inline {
color: #000;
.meta-MetaWindow__text .meta-content {
background: #fff;
padding: 2em;
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.6); }
color: #000;
padding: 1rem 1rem;
padding-right: 0; }
@media (max-width: 576px) {
.meta-lightbox-wrap {
top: 5px !important;
bottom: 5px;
left: 5px;
right: 5px; }
.meta-lightbox-theme-default .meta-lightbox-nav {
height: 100%;
opacity: 1;
font-size: 2em; }
.meta-lightbox-theme-default .meta-lightbox-nav .fa {
margin-left: -0.4em; }
.meta-lightbox-theme-default .meta-lightbox-close {
opacity: 1; } }
.meta-MetaWindow__text .meta-wrap {
padding-right: 1rem; }
.meta-MetaWindow__image .typography,
.meta-MetaWindow__image .meta-wrap, .meta-MetaWindow__video .typography,
.meta-MetaWindow__video .meta-wrap {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
max-height: 100%;
max-width: 100%;
min-height: 100%; }
.meta-MetaWindow__video:before, .meta-MetaWindow__embed:before {
content: "";
display: block;
position: relative;
width: 100%;
padding-top: 56.25%; }
.meta-MetaWindow__video a[rel='nofollow noreferrer noopener'], .meta-MetaWindow__embed a[rel='nofollow noreferrer noopener'] {
color: #fff;
font-size: 1.2rem;
font-weight: bold; }
.meta-MetaWindow__video a[rel='nofollow noreferrer noopener']:before, .meta-MetaWindow__embed a[rel='nofollow noreferrer noopener']:before {
content: 'Unable to load. Please follow the provided link: ';
display: block; }
.meta-MetaWindow__video iframe, .meta-MetaWindow__embed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%; }

91
dist/index.html vendored
View File

@ -18,27 +18,102 @@
<body>
<div class="wrapper">
<h1>Meta-lightbox Demo</h1>
NODE_ENV: development <p>
NODE_ENV: development <style>
[data-toggle='lightbox']:hover,
[data-toggle='lightbox']:focus {
text-decoration: underline;
}
</style>
<h2>Loading data</h2>
<p>
<a
href="../src/img/photo1.png"
data-toggle="lightbox"
data-lightbox-gallery="demo"
data-title="That's first link"
>Click me to start</a>
>Load an Image</a
>
<br />
<a href="../src/test.json" data-toggle="lightbox">
Load JSON
</a>
<br />
<a href="../src/test-pajax.html" data-toggle="lightbox">
Load Partial AJAX HTML </a
><br />
<a href="../src/not-found.html" data-toggle="lightbox"> Not Found test </a>
</p>
<h2>Embeds</h2>
<p>
<a href="../src/img/photo2.jpg" data-toggle="lightbox" data-lightbox-gallery="demo">
Use data-toggle="lightbox" attribute to attach lightbox action and href to specify URL.
<a
href="https://www.youtube.com/watch?v=WYvZZYthDRI"
data-toggle="lightbox"
data-embed="true"
>Embed Youtube link</a
>
<br />
<a
href="https://vimeo.com/26216129"
data-toggle="lightbox"
data-embed="true"
>Embed Vimeo link</a
>
<br />
<a
href="https://soundcloud.com/littlenapoleon/led-zeppelin-vs-rolling-stones"
data-toggle="lightbox"
data-embed="true"
>Embed SoundCloud link</a
><br />
<a
href="https://www.instagram.com/p/CKl5n87hf7R/"
data-toggle="lightbox"
data-embed="true"
>Embed Instagram</a
>
</p>
<h2>Other</h2>
<p>
<a
href="../src/img/photo2.jpg"
data-toggle="lightbox"
data-lightbox-gallery="demo"
>
Use [data-toggle="lightbox"] attribute to attach lightbox action and
[href] to specify URL.
</a>
</p>
<p>
<a href="../src/img/photo1.png" data-toggle="lightbox" data-lightbox-gallery="demo" data-title="Use data-title attribute to specify lightbox title">
Use data-lightbox-gallery="YOUR_GALLERY_NAME" to group ligthboxes and use next/prev arrows
<a
href="../src/img/photo1.png"
data-toggle="lightbox"
data-lightbox-gallery="demo"
data-title="Use data-title attribute to specify lightbox title"
>
Use [data-lightbox-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with
next/prev arrows
</a>
</p>
<p data-toggle="lightbox" data-href="https://youtu.be/GgnClrx8N2k" data-lightbox-gallery="demo" data-title="Yes you can link vimeo and youtube videos as long as AJAX content">
You can use data-href attribute to specify link and attach lightbox to another element
<p
data-toggle="lightbox"
data-href="https://youtu.be/GgnClrx8N2k"
data-lightbox-gallery="demo"
data-title="Yes you can link vimeo and youtube videos as long as AJAX content"
>
Use [data-toggle="lightbox"] + [data-href] attribute to toggle lightbox on
regular elements.
<b>Click me!</b>
</p>
<p>
<b>Note:</b> You can add jquery-zoom plugin and lighbox will
zoom photos on hover.

356
dist/js/app.js vendored
View File

@ -7,16 +7,364 @@
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js":
/*!*********************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js ***!
\*********************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/axios.js\");\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/xhr.js":
/*!********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/xhr.js ***!
\********************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nvar settle = __webpack_require__(/*! ./../core/settle */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js\");\n\nvar cookies = __webpack_require__(/*! ./../helpers/cookies */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/cookies.js\");\n\nvar buildURL = __webpack_require__(/*! ./../helpers/buildURL */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js\");\n\nvar buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/buildFullPath.js\");\n\nvar parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/parseHeaders.js\");\n\nvar isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isURLSameOrigin.js\");\n\nvar createError = __webpack_require__(/*! ../core/createError */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js\");\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/xhr.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/axios.js":
/*!*************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/axios.js ***!
\*************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/bind.js\");\n\nvar Axios = __webpack_require__(/*! ./core/Axios */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/Axios.js\");\n\nvar mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js\");\n\nvar defaults = __webpack_require__(/*! ./defaults */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/defaults.js\");\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js\");\naxios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/CancelToken.js\");\naxios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js\"); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = __webpack_require__(/*! ./helpers/spread */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/spread.js\"); // Expose isAxiosError\n\naxios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAxiosError.js\");\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/axios.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js":
/*!*********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js ***!
\*********************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/CancelToken.js":
/*!**************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/CancelToken.js ***!
\**************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar Cancel = __webpack_require__(/*! ./Cancel */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/Cancel.js\");\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/CancelToken.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js":
/*!***********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js ***!
\***********************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/Axios.js":
/*!******************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/Axios.js ***!
\******************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nvar buildURL = __webpack_require__(/*! ../helpers/buildURL */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js\");\n\nvar InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/InterceptorManager.js\");\n\nvar dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/dispatchRequest.js\");\n\nvar mergeConfig = __webpack_require__(/*! ./mergeConfig */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js\");\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n } // Hook up interceptors middleware\n\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/Axios.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/InterceptorManager.js":
/*!*******************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/InterceptorManager.js ***!
\*******************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/InterceptorManager.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/buildFullPath.js":
/*!**************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/buildFullPath.js ***!
\**************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAbsoluteURL.js\");\n\nvar combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/combineURLs.js\");\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/buildFullPath.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js":
/*!************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js ***!
\************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar enhanceError = __webpack_require__(/*! ./enhanceError */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/enhanceError.js\");\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/dispatchRequest.js":
/*!****************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/dispatchRequest.js ***!
\****************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nvar transformData = __webpack_require__(/*! ./transformData */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/transformData.js\");\n\nvar isCancel = __webpack_require__(/*! ../cancel/isCancel */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/cancel/isCancel.js\");\n\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/defaults.js\");\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/dispatchRequest.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/enhanceError.js":
/*!*************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/enhanceError.js ***!
\*************************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/enhanceError.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js":
/*!************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js ***!
\************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/mergeConfig.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js":
/*!*******************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js ***!
\*******************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar createError = __webpack_require__(/*! ./createError */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js\");\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/transformData.js":
/*!**************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/transformData.js ***!
\**************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/transformData.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/defaults.js":
/*!****************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/defaults.js ***!
\****************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nvar normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/normalizeHeaderName.js\");\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = __webpack_require__(/*! ./adapters/xhr */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/xhr.js\");\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = __webpack_require__(/*! ./adapters/http */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/xhr.js\");\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/defaults.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/bind.js":
/*!********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/bind.js ***!
\********************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/bind.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js":
/*!************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js ***!
\************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/buildURL.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/combineURLs.js":
/*!***************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/combineURLs.js ***!
\***************************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/combineURLs.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/cookies.js":
/*!***********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/cookies.js ***!
\***********************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/cookies.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAbsoluteURL.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
\*****************************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAbsoluteURL.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAxiosError.js":
/*!****************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAxiosError.js ***!
\****************************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function isAxiosError(payload) {\n return _typeof(payload) === 'object' && payload.isAxiosError === true;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isAxiosError.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isURLSameOrigin.js":
/*!*******************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
\*******************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/isURLSameOrigin.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/normalizeHeaderName.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
\***********************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\");\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/normalizeHeaderName.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/parseHeaders.js":
/*!****************************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/parseHeaders.js ***!
\****************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js\"); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/parseHeaders.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/spread.js":
/*!**********************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/spread.js ***!
\**********************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/spread.js?");
/***/ }),
/***/ "./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js":
/*!*************************************************************************!*\
!*** ./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js ***!
\*************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/helpers/bind.js\");\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && _typeof(val) === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (_typeof(obj) !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/utils.js?");
/***/ }),
/***/ "./node_modules/.pnpm/balanced-match@1.0.0/node_modules/balanced-match/index.js":
/*!**************************************************************************************!*\
!*** ./node_modules/.pnpm/balanced-match@1.0.0/node_modules/balanced-match/index.js ***!
\**************************************************************************************/
/***/ (function(module) {
"use strict";
eval("\n\nmodule.exports = balanced;\n\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\n\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [begs.pop(), bi];\n } else {\n beg = begs.pop();\n\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [left, right];\n }\n }\n\n return result;\n}\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/balanced-match@1.0.0/node_modules/balanced-match/index.js?");
/***/ }),
/***/ "./node_modules/.pnpm/brace-expansion@2.0.0/node_modules/brace-expansion/index.js":
/*!****************************************************************************************!*\
!*** ./node_modules/.pnpm/brace-expansion@2.0.0/node_modules/brace-expansion/index.js ***!
\****************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval("var balanced = __webpack_require__(/*! balanced-match */ \"./node_modules/.pnpm/balanced-match@1.0.0/node_modules/balanced-match/index.js\");\n\nmodule.exports = expandTop;\nvar escSlash = '\\0SLASH' + Math.random() + '\\0';\nvar escOpen = '\\0OPEN' + Math.random() + '\\0';\nvar escClose = '\\0CLOSE' + Math.random() + '\\0';\nvar escComma = '\\0COMMA' + Math.random() + '\\0';\nvar escPeriod = '\\0PERIOD' + Math.random() + '\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash).split('\\\\{').join(escOpen).split('\\\\}').join(escClose).split('\\\\,').join(escComma).split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\').split(escOpen).join('{').split(escClose).join('}').split(escComma).join(',').split(escPeriod).join('.');\n} // Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\n\n\nfunction parseCommaParts(str) {\n if (!str) return [''];\n var parts = [];\n var m = balanced('{', '}', str);\n if (!m) return str.split(',');\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n\n if (post.length) {\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str) return []; // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\n\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\n\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n\n return [str];\n }\n\n var n;\n\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n\n if (n.length === 1) {\n var post = m.post.length ? expand(m.post, false) : [''];\n return post.map(function (p) {\n return m.pre + n[0] + p;\n });\n }\n }\n } // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n\n\n var pre = m.pre;\n var post = m.post.length ? expand(m.post, false) : [''];\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length);\n var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;\n var test = lte;\n var reverse = y < x;\n\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n\n var pad = n.some(isPadded);\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') c = '';\n } else {\n c = String(i);\n\n if (pad) {\n var need = width - c.length;\n\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0) c = '-' + z + c.slice(1);else c = z + c;\n }\n }\n }\n\n N.push(c);\n }\n } else {\n N = [];\n\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand(n[j], false));\n }\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/brace-expansion@2.0.0/node_modules/brace-expansion/index.js?");
/***/ }),
/***/ "./node_modules/.pnpm/minimatch@3.0.4/node_modules/minimatch/minimatch.js":
/*!********************************************************************************!*\
!*** ./node_modules/.pnpm/minimatch@3.0.4/node_modules/minimatch/minimatch.js ***!
\********************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval("module.exports = minimatch;\nminimatch.Minimatch = Minimatch;\nvar path = {\n sep: '/'\n};\n\ntry {\n path = __webpack_require__(Object(function webpackMissingModule() { var e = new Error(\"Cannot find module 'path'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }()));\n} catch (er) {}\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {};\n\nvar expand = __webpack_require__(/*! brace-expansion */ \"./node_modules/.pnpm/brace-expansion@2.0.0/node_modules/brace-expansion/index.js\");\n\nvar plTypes = {\n '!': {\n open: '(?:(?!(?:',\n close: '))[^/]*?)'\n },\n '?': {\n open: '(?:',\n close: ')?'\n },\n '+': {\n open: '(?:',\n close: ')+'\n },\n '*': {\n open: '(?:',\n close: ')*'\n },\n '@': {\n open: '(?:',\n close: ')'\n }\n}; // any single thing other than /\n// don't need to escape / when using new RegExp()\n\nvar qmark = '[^/]'; // * => any number of characters\n\nvar star = qmark + '*?'; // ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\n\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'; // not a ^ or / followed by a dot,\n// followed by anything, any number of times.\n\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'; // characters that need to be escaped in RegExp.\n\nvar reSpecials = charSet('().*{}+?[]^$\\\\!'); // \"abc\" -> { a:true, b:true, c:true }\n\nfunction charSet(s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true;\n return set;\n }, {});\n} // normalizes slashes.\n\n\nvar slashSplit = /\\/+/;\nminimatch.filter = filter;\n\nfunction filter(pattern, options) {\n options = options || {};\n return function (p, i, list) {\n return minimatch(p, pattern, options);\n };\n}\n\nfunction ext(a, b) {\n a = a || {};\n b = b || {};\n var t = {};\n Object.keys(b).forEach(function (k) {\n t[k] = b[k];\n });\n Object.keys(a).forEach(function (k) {\n t[k] = a[k];\n });\n return t;\n}\n\nminimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return minimatch;\n var orig = minimatch;\n\n var m = function minimatch(p, pattern, options) {\n return orig.minimatch(p, pattern, ext(def, options));\n };\n\n m.Minimatch = function Minimatch(pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options));\n };\n\n return m;\n};\n\nMinimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return Minimatch;\n return minimatch.defaults(def).Minimatch;\n};\n\nfunction minimatch(p, pattern, options) {\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required');\n }\n\n if (!options) options = {}; // shortcut: comments match nothing.\n\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n } // \"\" only matches \"\"\n\n\n if (pattern.trim() === '') return p === '';\n return new Minimatch(pattern, options).match(p);\n}\n\nfunction Minimatch(pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options);\n }\n\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required');\n }\n\n if (!options) options = {};\n pattern = pattern.trim(); // windows support: need to use /, not \\\n\n if (path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/');\n }\n\n this.options = options;\n this.set = [];\n this.pattern = pattern;\n this.regexp = null;\n this.negate = false;\n this.comment = false;\n this.empty = false; // make the set of regexps etc.\n\n this.make();\n}\n\nMinimatch.prototype.debug = function () {};\n\nMinimatch.prototype.make = make;\n\nfunction make() {\n // don't do it more than once.\n if (this._made) return;\n var pattern = this.pattern;\n var options = this.options; // empty patterns and comments match nothing.\n\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n\n if (!pattern) {\n this.empty = true;\n return;\n } // step 1: figure out negation, etc.\n\n\n this.parseNegate(); // step 2: expand braces\n\n var set = this.globSet = this.braceExpand();\n if (options.debug) this.debug = console.error;\n this.debug(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit);\n });\n this.debug(this.pattern, set); // glob --> regexps\n\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this);\n }, this);\n this.debug(this.pattern, set); // filter out everything that didn't compile properly.\n\n set = set.filter(function (s) {\n return s.indexOf(false) === -1;\n });\n this.debug(this.pattern, set);\n this.set = set;\n}\n\nMinimatch.prototype.parseNegate = parseNegate;\n\nfunction parseNegate() {\n var pattern = this.pattern;\n var negate = false;\n var options = this.options;\n var negateOffset = 0;\n if (options.nonegate) return;\n\n for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === '!'; i++) {\n negate = !negate;\n negateOffset++;\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset);\n this.negate = negate;\n} // Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\n\n\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options);\n};\n\nMinimatch.prototype.braceExpand = braceExpand;\n\nfunction braceExpand(pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options;\n } else {\n options = {};\n }\n }\n\n pattern = typeof pattern === 'undefined' ? this.pattern : pattern;\n\n if (typeof pattern === 'undefined') {\n throw new TypeError('undefined pattern');\n }\n\n if (options.nobrace || !pattern.match(/\\{.*\\}/)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n\n return expand(pattern);\n} // parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\n\nMinimatch.prototype.parse = parse;\nvar SUBPARSE = {};\n\nfunction parse(pattern, isSub) {\n if (pattern.length > 1024 * 64) {\n throw new TypeError('pattern is too long');\n }\n\n var options = this.options; // shortcuts\n\n if (!options.noglobstar && pattern === '**') return GLOBSTAR;\n if (pattern === '') return '';\n var re = '';\n var hasMagic = !!options.nocase;\n var escaping = false; // ? => one single character\n\n var patternListStack = [];\n var negativeLists = [];\n var stateChar;\n var inClass = false;\n var reClassStart = -1;\n var classStart = -1; // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))' : '(?!\\\\.)';\n var self = this;\n\n function clearStateChar() {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star;\n hasMagic = true;\n break;\n\n case '?':\n re += qmark;\n hasMagic = true;\n break;\n\n default:\n re += '\\\\' + stateChar;\n break;\n }\n\n self.debug('clearStateChar %j %j', stateChar, re);\n stateChar = false;\n }\n }\n\n for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c); // skip over any that are escaped.\n\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c;\n escaping = false;\n continue;\n }\n\n switch (c) {\n case '/':\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false;\n\n case '\\\\':\n clearStateChar();\n escaping = true;\n continue;\n // the various stateChar values\n // for the \"extglob\" stuff.\n\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c); // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n\n if (inClass) {\n this.debug(' in class');\n if (c === '!' && i === classStart + 1) c = '^';\n re += c;\n continue;\n } // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n\n\n self.debug('call clearStateChar %j', stateChar);\n clearStateChar();\n stateChar = c; // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n\n if (options.noext) clearStateChar();\n continue;\n\n case '(':\n if (inClass) {\n re += '(';\n continue;\n }\n\n if (!stateChar) {\n re += '\\\\(';\n continue;\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n }); // negation is (?:(?!js)[^/]*)\n\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:';\n this.debug('plType %j %j', stateChar, re);\n stateChar = false;\n continue;\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)';\n continue;\n }\n\n clearStateChar();\n hasMagic = true;\n var pl = patternListStack.pop(); // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n\n re += pl.close;\n\n if (pl.type === '!') {\n negativeLists.push(pl);\n }\n\n pl.reEnd = re.length;\n continue;\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|';\n escaping = false;\n continue;\n }\n\n clearStateChar();\n re += '|';\n continue;\n // these are mostly the same in regexp and glob\n\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar();\n\n if (inClass) {\n re += '\\\\' + c;\n continue;\n }\n\n inClass = true;\n classStart = i;\n reClassStart = re.length;\n re += c;\n continue;\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c;\n escaping = false;\n continue;\n } // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n\n\n if (inClass) {\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i);\n\n try {\n RegExp('[' + cs + ']');\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE);\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]';\n hasMagic = hasMagic || sp[1];\n inClass = false;\n continue;\n }\n } // finish up the class.\n\n\n hasMagic = true;\n inClass = false;\n re += c;\n continue;\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar();\n\n if (escaping) {\n // no need\n escaping = false;\n } else if (reSpecials[c] && !(c === '^' && inClass)) {\n re += '\\\\';\n }\n\n re += c;\n } // switch\n\n } // for\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n\n\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1);\n sp = this.parse(cs, SUBPARSE);\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0];\n hasMagic = hasMagic || sp[1];\n } // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n\n\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length);\n this.debug('setting tail', re, pl); // maybe some even number of \\, then maybe 1 \\, followed by a |\n\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\';\n } // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n\n\n return $1 + $1 + $2 + '|';\n });\n this.debug('tail=%j\\n %s', tail, tail, pl, re);\n var t = pl.type === '*' ? star : pl.type === '?' ? qmark : '\\\\' + pl.type;\n hasMagic = true;\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail;\n } // handle trailing things that only matter at the very end.\n\n\n clearStateChar();\n\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\';\n } // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n\n\n var addPatternStart = false;\n\n switch (re.charAt(0)) {\n case '.':\n case '[':\n case '(':\n addPatternStart = true;\n } // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n\n\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n];\n var nlBefore = re.slice(0, nl.reStart);\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8);\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd);\n var nlAfter = re.slice(nl.reEnd);\n nlLast += nlAfter; // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n\n var openParensBefore = nlBefore.split('(').length - 1;\n var cleanAfter = nlAfter;\n\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '');\n }\n\n nlAfter = cleanAfter;\n var dollar = '';\n\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$';\n }\n\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast;\n re = newRe;\n } // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n\n\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re;\n }\n\n if (addPatternStart) {\n re = patternStart + re;\n } // parsing just a piece of a larger pattern.\n\n\n if (isSub === SUBPARSE) {\n return [re, hasMagic];\n } // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n\n\n if (!hasMagic) {\n return globUnescape(pattern);\n }\n\n var flags = options.nocase ? 'i' : '';\n\n try {\n var regExp = new RegExp('^' + re + '$', flags);\n } catch (er) {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.');\n }\n\n regExp._glob = pattern;\n regExp._src = re;\n return regExp;\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe();\n};\n\nMinimatch.prototype.makeRe = makeRe;\n\nfunction makeRe() {\n if (this.regexp || this.regexp === false) return this.regexp; // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n\n var set = this.set;\n\n if (!set.length) {\n this.regexp = false;\n return this.regexp;\n }\n\n var options = this.options;\n var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;\n var flags = options.nocase ? 'i' : '';\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return p === GLOBSTAR ? twoStar : typeof p === 'string' ? regExpEscape(p) : p._src;\n }).join('\\\\\\/');\n }).join('|'); // must match entire pattern\n // ending in a * or ** will make it less strict.\n\n re = '^(?:' + re + ')$'; // can match anything, as long as it's not this.\n\n if (this.negate) re = '^(?!' + re + ').*$';\n\n try {\n this.regexp = new RegExp(re, flags);\n } catch (ex) {\n this.regexp = false;\n }\n\n return this.regexp;\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {};\n var mm = new Minimatch(pattern, options);\n list = list.filter(function (f) {\n return mm.match(f);\n });\n\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n\n return list;\n};\n\nMinimatch.prototype.match = match;\n\nfunction match(f, partial) {\n this.debug('match', f, this.pattern); // short-circuit in the case of busted things.\n // comments, etc.\n\n if (this.comment) return false;\n if (this.empty) return f === '';\n if (f === '/' && partial) return true;\n var options = this.options; // windows: need to use /, not \\\n\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/');\n } // treat the test path as a set of pathparts.\n\n\n f = f.split(slashSplit);\n this.debug(this.pattern, 'split', f); // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set;\n this.debug(this.pattern, 'set', set); // Find the basename of the path by looking for the last non-empty segment\n\n var filename;\n var i;\n\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i];\n if (filename) break;\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i];\n var file = f;\n\n if (options.matchBase && pattern.length === 1) {\n file = [filename];\n }\n\n var hit = this.matchOne(file, pattern, partial);\n\n if (hit) {\n if (options.flipNegate) return true;\n return !this.negate;\n }\n } // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n\n\n if (options.flipNegate) return false;\n return this.negate;\n} // set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\n\n\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options;\n this.debug('matchOne', {\n 'this': this,\n file: file,\n pattern: pattern\n });\n this.debug('matchOne', file.length, pattern.length);\n\n for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n this.debug('matchOne loop');\n var p = pattern[pi];\n var f = file[fi];\n this.debug(pattern, p, f); // should be impossible.\n // some invalid regexp stuff in the set.\n\n if (p === false) return false;\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f]); // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n\n var fr = fi;\n var pr = pi + 1;\n\n if (pr === pl) {\n this.debug('** at the end'); // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' || !options.dot && file[fi].charAt(0) === '.') return false;\n }\n\n return true;\n } // ok, let's see if we can swallow whatever we can.\n\n\n while (fr < fl) {\n var swallowee = file[fr];\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee); // XXX remove this slice. Just pass the start index.\n\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee); // found a match.\n\n return true;\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' || !options.dot && swallowee.charAt(0) === '.') {\n this.debug('dot detected!', file, fr, pattern, pr);\n break;\n } // ** swallows a segment, and continue.\n\n\n this.debug('globstar swallow a segment, and continue');\n fr++;\n }\n } // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n\n\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n if (fr === fl) return true;\n }\n\n return false;\n } // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n\n\n var hit;\n\n if (typeof p === 'string') {\n if (options.nocase) {\n hit = f.toLowerCase() === p.toLowerCase();\n } else {\n hit = f === p;\n }\n\n this.debug('string match', p, f, hit);\n } else {\n hit = f.match(p);\n this.debug('pattern match', p, f, hit);\n }\n\n if (!hit) return false;\n } // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n // now either we fell off the end of the pattern, or we're done.\n\n\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true;\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial;\n } else if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n var emptyFileEnd = fi === fl - 1 && file[fi] === '';\n return emptyFileEnd;\n } // should be unreachable.\n\n\n throw new Error('wtf?');\n}; // replace stuff like \\* with *\n\n\nfunction globUnescape(s) {\n return s.replace(/\\\\(.)/g, '$1');\n}\n\nfunction regExpEscape(s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/minimatch@3.0.4/node_modules/minimatch/minimatch.js?");
/***/ }),
/***/ "./node_modules/.pnpm/react-tiny-oembed@1.0.1_react-dom@17.0.1+react@17.0.1/node_modules/react-tiny-oembed/lib/index.js":
/*!******************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/react-tiny-oembed@1.0.1_react-dom@17.0.1+react@17.0.1/node_modules/react-tiny-oembed/lib/index.js ***!
\******************************************************************************************************************************/
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (e, t) {\n \"object\" == ( false ? 0 : _typeof(exports)) && \"undefined\" != \"object\" ? t(exports, __webpack_require__(/*! react */ \"react\"), __webpack_require__(/*! minimatch */ \"./node_modules/.pnpm/minimatch@3.0.4/node_modules/minimatch/minimatch.js\"), __webpack_require__(/*! axios */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(/*! react */ \"react\"), __webpack_require__(/*! minimatch */ \"./node_modules/.pnpm/minimatch@3.0.4/node_modules/minimatch/minimatch.js\"), __webpack_require__(/*! axios */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0;\n}(this, function (e, t, r, n) {\n \"use strict\";\n\n function o(e) {\n return e && \"object\" == _typeof(e) && \"default\" in e ? e : {\n default: e\n };\n }\n\n var i = o(t),\n c = o(r),\n s = o(n),\n _a = function a() {\n return (_a = Object.assign || function (e) {\n for (var t, r = 1, n = arguments.length; r < n; r++) {\n for (var o in t = arguments[r]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n };\n\n function u(e, t, r, n) {\n return new (r || (r = Promise))(function (o, i) {\n function c(e) {\n try {\n a(n.next(e));\n } catch (e) {\n i(e);\n }\n }\n\n function s(e) {\n try {\n a(n.throw(e));\n } catch (e) {\n i(e);\n }\n }\n\n function a(e) {\n var t;\n e.done ? o(e.value) : (t = e.value, t instanceof r ? t : new r(function (e) {\n e(t);\n })).then(c, s);\n }\n\n a((n = n.apply(e, t || [])).next());\n });\n }\n\n function l(e, t) {\n var r,\n n,\n o,\n i,\n c = {\n label: 0,\n sent: function sent() {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return i = {\n next: s(0),\n throw: s(1),\n return: s(2)\n }, \"function\" == typeof Symbol && (i[Symbol.iterator] = function () {\n return this;\n }), i;\n\n function s(i) {\n return function (s) {\n return function (i) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n\n for (; c;) {\n try {\n if (r = 1, n && (o = 2 & i[0] ? n.return : i[0] ? n.throw || ((o = n.return) && o.call(n), 0) : n.next) && !(o = o.call(n, i[1])).done) return o;\n\n switch (n = 0, o && (i = [2 & i[0], o.value]), i[0]) {\n case 0:\n case 1:\n o = i;\n break;\n\n case 4:\n return c.label++, {\n value: i[1],\n done: !1\n };\n\n case 5:\n c.label++, n = i[1], i = [0];\n continue;\n\n case 7:\n i = c.ops.pop(), c.trys.pop();\n continue;\n\n default:\n if (!(o = c.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {\n c = 0;\n continue;\n }\n\n if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {\n c.label = i[1];\n break;\n }\n\n if (6 === i[0] && c.label < o[1]) {\n c.label = o[1], o = i;\n break;\n }\n\n if (o && c.label < o[2]) {\n c.label = o[2], c.ops.push(i);\n break;\n }\n\n o[2] && c.ops.pop(), c.trys.pop();\n continue;\n }\n\n i = t.call(e, c);\n } catch (e) {\n i = [6, e], n = 0;\n } finally {\n r = o = 0;\n }\n }\n\n if (5 & i[0]) throw i[1];\n return {\n value: i[0] ? i[1] : void 0,\n done: !0\n };\n }([i, s]);\n };\n }\n }\n\n var d = [{\n provider_name: \"YouTube\",\n provider_url: \"https://www.youtube.com/\",\n endpoints: [{\n schemes: [\"https://*.youtube.com/watch*\", \"https://*.youtube.com/v/*\", \"https://youtu.be/*\"],\n url: \"https://www.youtube.com/oembed\",\n discovery: !0\n }]\n }, {\n provider_name: \"Reddit\",\n provider_url: \"https://reddit.com/\",\n endpoints: [{\n schemes: [\"https://reddit.com/r/*/comments/*/*\", \"https://www.reddit.com/r/*/comments/*/*\"],\n url: \"https://www.reddit.com/oembed\"\n }]\n }, {\n provider_name: \"Flickr\",\n provider_url: \"https://www.flickr.com/\",\n endpoints: [{\n schemes: [\"http://*.flickr.com/photos/*\", \"http://flic.kr/p/*\", \"https://*.flickr.com/photos/*\", \"https://flic.kr/p/*\"],\n url: \"https://www.flickr.com/services/oembed/\",\n discovery: !0\n }]\n }, {\n provider_name: \"Vimeo\",\n provider_url: \"https://vimeo.com/\",\n endpoints: [{\n schemes: [\"https://vimeo.com/*\", \"https://vimeo.com/album/*/video/*\", \"https://vimeo.com/channels/*/*\", \"https://vimeo.com/groups/*/videos/*\", \"https://vimeo.com/ondemand/*/*\", \"https://player.vimeo.com/video/*\"],\n url: \"https://vimeo.com/api/oembed.{format}\",\n discovery: !0\n }]\n }, {\n provider_name: \"SoundCloud\",\n provider_url: \"http://soundcloud.com/\",\n endpoints: [{\n schemes: [\"http://soundcloud.com/*\", \"https://soundcloud.com/*\", \"https://soundcloud.app.goog.gl/*\"],\n url: \"https://soundcloud.com/oembed\"\n }]\n }, {\n provider_name: \"Twitter\",\n provider_url: \"http://www.twitter.com/\",\n endpoints: [{\n schemes: [\"https://twitter.com/*/status/*\", \"https://*.twitter.com/*/status/*\", \"https://twitter.com/*/moments/*\", \"https://*.twitter.com/*/moments/*\"],\n url: \"https://publish.twitter.com/oembed\"\n }]\n }, {\n provider_name: \"GIPHY\",\n provider_url: \"https://giphy.com\",\n endpoints: [{\n schemes: [\"https://giphy.com/gifs/*\", \"http://gph.is/*\", \"https://media.giphy.com/media/*/giphy.gif\"],\n url: \"https://giphy.com/services/oembed\",\n discovery: !0\n }]\n }];\n\n function m(e, t, r) {\n return u(this, void 0, void 0, function () {\n var n, o, i, c, a, u;\n return l(this, function (l) {\n switch (l.label) {\n case 0:\n if (n = p(r.url, t), o = n.base_url, i = n.requestInterceptor, c = n.responceInterceptor, !o) throw Error(\"Invalid url: cannot guess oembed endpoint\");\n return a = function (e, t) {\n e.endsWith(\"/\") && (e = e.slice(0, -1));\n var r = /\\{format\\}/gi;\n e.match(r) && (e = e.replace(r, \"json\"));\n if (!t) return e;\n var n = /\\{url\\}/gi,\n o = /\\{raw_url\\}/gi;\n if (t.match(o)) return t.replace(o, e);\n if (t.match(n)) return e = encodeURIComponent(e), t.replace(n, e);\n t.endsWith(\"/\") && (t = t.slice(0, -1));\n return t + \"/\" + e;\n }(o, e), u = s.default.create(), i && u.interceptors.request.use(i), c && u.interceptors.response.use(c), [4, u.get(a, {\n params: r\n })];\n\n case 1:\n return [2, l.sent().data];\n }\n });\n });\n }\n\n function p(e, t) {\n var r, n, o;\n return (t = t || d).forEach(function (t) {\n var i;\n t.endpoints.forEach(function (t) {\n (function (e, t) {\n var r = Boolean(t.find(function (t) {\n return c.default(e, t, {\n nocase: !0\n });\n }));\n return r || Boolean(t.find(function (t) {\n return c.default(e, t.replace(/\\*/g, \"**\"), {\n nocase: !0\n });\n }));\n })(e, t.schemes) && (i = t);\n }), i && (r = i.url, n = t.requestInterceptor, o = t.responceInterceptor);\n }), {\n base_url: r,\n requestInterceptor: n,\n responceInterceptor: o\n };\n }\n\n function f(e, r, n) {\n var o = [];\n t.useEffect(function () {\n var t = document.createElement(\"div\");\n return t.innerHTML = e, t.querySelectorAll(\"script\").forEach(function (e) {\n var t = document.createElement(\"script\");\n Array.from(e.attributes).forEach(function (e) {\n \"id\" !== e.nodeName && t.setAttribute(e.nodeName, e.nodeValue || \"\");\n }), t.innerHTML = e.innerHTML, Object.entries(r || {}).forEach(function (e) {\n var r = e[0],\n n = e[1];\n t.setAttribute(r, n);\n }), document.body.appendChild(t), o = o.concat(t);\n }), function () {\n o.forEach(function (e) {\n document.body.removeChild(e);\n }), o = [];\n };\n }, n || [e]);\n }\n\n e.default = function (e) {\n var r = e.url,\n n = e.proxy,\n o = e.style,\n c = e.options,\n s = e.providers,\n d = e.ImgComponent,\n p = e.LinkComponent,\n h = e.FallbackElement,\n v = e.LoadingFallbackElement,\n b = t.useState(void 0),\n w = b[0],\n y = b[1],\n _ = t.useState(\"idle\"),\n g = _[0],\n E = _[1],\n k = t.useState(\"\"),\n x = k[0],\n I = k[1];\n\n f(x, {\n defer: \"\"\n }), t.useEffect(function () {\n \"idle\" === g && function () {\n u(this, void 0, void 0, function () {\n var e, t;\n return l(this, function (o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2,, 3]), E(\"loading\"), [4, m(n, s, _a(_a({\n url: r,\n maxwidth: 700,\n maxheight: 500,\n align: \"center\"\n }, c), {\n format: \"json\"\n }))];\n\n case 1:\n if (!(e = o.sent())) throw Error(\"Nill embed responce\");\n return E(\"done\"), y(e), e.html && I(e.html), [3, 3];\n\n case 2:\n return t = o.sent(), console.error(\"Error\", t), E(\"error\"), [3, 3];\n\n case 3:\n return [2];\n }\n });\n });\n }();\n }, [g]);\n var q,\n S = i.default.createElement(\"a\", {\n href: r,\n target: \"_blank\",\n rel: \"nofollow noreferrer noopener\"\n }, r);\n return w && !w.html && (\"photo\" === w.type ? q = d ? i.default.createElement(d, {\n responce: w\n }) : i.default.createElement(\"img\", {\n alt: \"\",\n src: w.url\n }) : \"link\" === w.type && (q = p ? i.default.createElement(p, {\n responce: w\n }) : i.default.createElement(\"a\", {\n href: r,\n target: \"_blank\",\n rel: \"nofollow noreferrer noopener\"\n }, r))), \"loading\" === g || \"idle\" === g ? v || S : \"error\" === g ? h || S : i.default.createElement(\"span\", {\n style: o,\n className: \"__embed __embed_column\"\n }, q, x && i.default.createElement(\"span\", {\n className: \"__embed_column\",\n dangerouslySetInnerHTML: {\n __html: x\n }\n }), i.default.createElement(\"style\", null, \".__embed {\\n margin: auto;\\n width: 100%;\\n max-width: 700px;\\n} \\n.__embed iframe {\\n width: 100%;\\n margin: auto;\\n}\\n.__embed img, .__embed video {\\n width: 100%;\\n margin: 0;\\n}\\n.__embed blockquote {\\n margin: 0;\\n}\\n.__embed span {\\n border: 0;\\n} \\n.__embed_column {\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n}\"));\n }, e.defaultProviders = d, e.getEndpoint = p, e.requestEmbed = m, e.useScript = f, Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n});\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./node_modules/.pnpm/react-tiny-oembed@1.0.1_react-dom@17.0.1+react@17.0.1/node_modules/react-tiny-oembed/lib/index.js?");
/***/ }),
/***/ "./src/js/app.js":
/*!***********************************!*\
!*** ./src/js/app.js + 4 modules ***!
!*** ./src/js/app.js + 3 modules ***!
\***********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n;// CONCATENATED MODULE: ./src/scss/app.scss\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: external \"jQuery\"\nvar external_jQuery_namespaceObject = jQuery;\nvar external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery_namespaceObject);\n;// CONCATENATED MODULE: ./src/js/_events.js\n/**\n * Add your global events here\n */\n/* harmony default export */ var _events = ({\n AJAX: 'ajax-load',\n AJAXMAIN: 'ajax-main-load',\n MAININIT: 'main-init',\n TABHIDDEN: 'tab-hidden',\n TABFOCUSED: 'tab-focused',\n OFFLINE: 'offline',\n ONLINE: 'online',\n BACKONLINE: 'back-online',\n TOUCHENABLE: 'touch-enabled',\n TOUCHDISABLED: 'touch-disabled',\n LOADED: 'load',\n SWIPELEFT: 'swipeleft panleft',\n SWIPERIGHT: 'swiperight panright',\n ALLERTAPPEARED: 'alert-appeared',\n ALERTREMOVED: 'alert-removed',\n LODEDANDREADY: 'load-ready',\n LAZYIMAGEREADY: 'image-lazy-bg-loaded',\n LAZYIMAGESREADY: 'images-lazy-loaded',\n MAPLOADED: 'map-loaded',\n MAPAPILOADED: 'map-api-loaded',\n MAPMARKERCLICK: 'map-marker-click',\n MAPPOPUPCLOSE: 'map-popup-close',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n CAROUSEL_READY: 'bs.carousel.ready',\n SET_TARGET_UPDATE: 'set-target-update',\n RESTORE_FIELD: 'restore-field',\n FORM_INIT_BASICS: 'form-basics',\n FORM_INIT_STEPPED: 'form-init-stepped',\n FORM_INIT_VALIDATE: 'form-init-validate',\n FORM_INIT_VALIDATE_FIELD: 'form-init-validate-field',\n FORM_INIT_STORAGE: 'form-init-storage',\n FORM_VALIDATION_FAILED: 'form-validation-failed',\n FORM_STEPPED_NEW_STEP: 'form-new-step',\n FORM_STEPPED_FIRST_STEP: 'form-first-step',\n FORM_STEPPED_LAST_STEP: 'form-last-step',\n FORM_FIELDS: 'input,textarea,select'\n});\n;// CONCATENATED MODULE: ./src/js/meta-lightbox.js\n/*\n * MetaLightbox\n * https://tony.twma.pro\n *\n */\n// optional:\n//=require ../../bower_components/jquery-zoom/jquery.zoom.js\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar MetaLightboxUI = function ($) {\n var W = window;\n var $W = $(W);\n var D = document;\n var $Body = $('body');\n var NAME = 'MetaLightboxUI';\n var NETWORK_ERROR = '<div class=\"meta-lightbox-error\"><div class=\"alert alert-error alert-danger\">Connection failure.</div></div>';\n\n var MetaLightboxUI = /*#__PURE__*/function () {\n function MetaLightboxUI() {\n _classCallCheck(this, MetaLightboxUI);\n }\n\n _createClass(MetaLightboxUI, null, [{\n key: \"init\",\n value: function init() {\n console.log(\"\".concat(NAME, \": init ...\"));\n var ui = this;\n ui.isMSIE =\n /*@cc_on!@*/\n 0;\n\n try {\n ui.isHidpi = ui.is_hdpi();\n } catch (e) {\n console.log(\"\".concat(NAME, \": catch\"));\n }\n\n $(\".js\".concat(NAME, \",[data-toggle=\\\"lightbox\\\"],[data-lightbox-gallery]\")).on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n var $link = $(e.currentTarget);\n ui.show($link);\n });\n $(\".js\".concat(NAME, \"-close-inline\")).on('click', function (e) {\n var $el = $(e.currentTarget);\n $el.parents('.meta-lightbox-overlay').removeClass('meta-lightbox-open');\n });\n }\n }, {\n key: \"is_hdpi\",\n value: function is_hdpi() {\n console.log(\"\".concat(NAME, \": isHidpi\"));\n var mediaQuery = '(-webkit-min-device-pixel-ratio: 1.5),\\\n (min--moz-device-pixel-ratio: 1.5),\\\n (-o-min-device-pixel-ratio: 3/2),\\\n (min-resolution: 1.5dppx)';\n if (W.devicePixelRatio > 1) return true;\n return W.matchMedia && W.matchMedia(mediaQuery).matches;\n }\n }, {\n key: \"show\",\n value: function show($link) {\n console.log(\"\".concat(NAME, \": show\"));\n var ui = this;\n var $lightbox = ui.constructLightbox();\n if (!$lightbox) return;\n var $content = ui.$content;\n if (!$content) return;\n $Body.addClass(\"meta-lightbox-body-effect-fade\"); // Add content\n\n ui.process($content, $link); // Nav\n\n if ($link.data('lightbox-gallery')) {\n var $galleryItems = $(\"[data-lightbox-gallery=\\\"\".concat($link.data('lightbox-gallery'), \"\\\"]\"));\n\n if ($galleryItems.length === 1) {\n $('.meta-lightbox-nav').hide();\n } else {\n $('.meta-lightbox-nav').show();\n } // Prev\n\n\n $('.meta-lightbox-prev').off('click').on('click', function (e) {\n e.preventDefault();\n var index = $galleryItems.index($link);\n var $currentLink = $galleryItems.eq(index - 1);\n if (!$currentLink.length) $currentLink = $galleryItems.last(); //ui.hide();\n\n setTimeout(function () {\n ui.show($currentLink);\n }, 10);\n }); // Next\n\n $('.meta-lightbox-next').off('click').on('click', function (e) {\n e.preventDefault();\n var index = $galleryItems.index($link);\n var $currentLink = $galleryItems.eq(index + 1);\n if (!$currentLink.length) $currentLink = $galleryItems.first(); //ui.hide();\n\n setTimeout(function () {\n ui.show($currentLink);\n }, 10);\n });\n }\n\n setTimeout(function () {\n ui.$overlay.addClass('meta-lightbox-open');\n }, 1); // For CSS transitions\n }\n }, {\n key: \"constructLightbox\",\n value: function constructLightbox() {\n console.log(\"\".concat(NAME, \": constructLightbox\"));\n var ui = this;\n var overlay = $('<div>', {\n class: 'meta-lightbox-overlay meta-lightbox-theme-default meta-lightbox-effect-fade'\n });\n var wrap = $('<div>', {\n class: 'meta-lightbox-wrap'\n });\n var content = $('<div>', {\n class: 'meta-lightbox-content'\n });\n var nav = $('<a href=\"#\" class=\"meta-lightbox-nav meta-lightbox-prev\"><i class=\"fas fa fa-chevron-left\"></i> <span class=\"sr-only\">Previous</span></a><a href=\"#\" class=\"meta-lightbox-nav meta-lightbox-next\"><i class=\"fa fas fa-chevron-right\"></i> <span class=\"sr-only\">Next</span></a>');\n var close = $('<a href=\"#\" class=\"meta-lightbox-close fas fa fa-times\" title=\"Close\"><span class=\"sr-only\">Close</span></a>');\n var title = $('<div>', {\n class: 'meta-lightbox-title-wrap'\n });\n if (ui.$overlay) return ui.$overlay;\n if (ui.isMSIE) overlay.addClass('meta-lightbox-ie');\n wrap.append(content);\n wrap.append(title);\n overlay.append(wrap);\n overlay.append(nav);\n overlay.append(close);\n $Body.append(overlay);\n overlay.on('click', function (e) {\n e.preventDefault();\n ui.hide();\n });\n close.on('click', function (e) {\n e.preventDefault();\n ui.hide();\n });\n ui.$overlay = overlay;\n ui.$content = content;\n ui.$title = title;\n return ui.$overlay;\n }\n }, {\n key: \"setTitle\",\n value: function setTitle(str) {\n var ui = this;\n ui.$title.html(str);\n }\n }, {\n key: \"process\",\n value: function process($content, $link) {\n console.log(\"\".concat(NAME, \": process\"));\n var ui = this;\n var href = $link.attr('href') && $link.attr('href').length ? $link.attr('href') : $link.data('href'); // add custom link specific class\n\n ui.$content.attr('class', 'meta-lightbox-content');\n ui.$content.addClass($link.data('lightbox-class'));\n\n if (!href.length) {\n console.log($link);\n console.error(\"\".concat(NAME, \": href(attr/data) is missing\"));\n }\n\n var $pageSpinner = $('#PageLoading .loading-spinner');\n var loadingContent = $pageSpinner.length ? $pageSpinner.clone() : '';\n ui.$content.append(loadingContent).addClass('meta-lightbox-loading'); // Image\n\n if (href.match(/\\.(jpeg|jpg|gif|png|svg)$/i) || $link.data('force') === 'image') {\n $.ajax({\n url: href,\n success: function success() {\n var img = $('<img>', {\n src: href\n });\n var wrap = $('<div class=\"meta-lightbox-image\"></div>');\n var imgwrapper = $('<span class=\"meta-lightbox-zoom-wrapper\"></span>');\n imgwrapper.append(img);\n wrap.append(imgwrapper); // Vertically center images\n\n wrap.css({\n 'line-height': \"\".concat($content.height(), \"px\"),\n height: \"\".concat($content.height(), \"px\") // For Firefox\n\n });\n $W.resize(function () {\n wrap.css({\n 'line-height': \"\".concat($content.height(), \"px\"),\n height: \"\".concat($content.height(), \"px\") // For Firefox\n\n });\n });\n\n if (typeof imgwrapper['zoom'] !== 'undefined') {\n imgwrapper.zoom();\n } else {\n imgwrapper.addClass('no-zoom');\n }\n\n ui.$content.html(wrap);\n ui.contentLoaded();\n },\n error: function error(jqXHR, status) {\n var wrap = $(NETWORK_ERROR);\n ui.$content.html(wrap);\n ui.contentLoaded();\n }\n }); // Set the title\n\n var title = $link.data('title') ? $link.data('title') : $link.attr('title');\n ui.setTitle(title); // google analytics\n\n if (typeof ga === 'function') {\n ga('send', 'event', 'meta', 'Image Click', href);\n }\n } // Video (Youtube/Vimeo)\n else if (href.match(/(youtube|youtube-nocookie|youtu|vimeo)\\.(com|be)\\/(watch\\?v=([\\w-]+)|([\\w-]+))/) || $link.data('force') === 'youtube' || $link.data('force') === 'vimeo') {\n var video = href.match(/(youtube|youtube-nocookie|youtu|vimeo)\\.(com|be)\\/(watch\\?v=([\\w-]+)|([\\w-]+))/);\n var classTerm = 'meta-lightbox-video';\n var src;\n\n if (video[1] == 'youtube') {\n src = \"https://www.youtube.com/embed/\".concat(video[4]);\n classTerm = \"\".concat(classTerm, \" meta-lightbox-youtube\");\n }\n\n if (video[1] == 'youtu') {\n src = \"https://www.youtube.com/embed/\".concat(video[3]);\n classTerm = \"\".concat(classTerm, \" meta-lightbox-youtube\");\n }\n\n if (video[1] == 'youtube-nocookie') {\n src = \"https://www.youtube-nocookie.com/embed/\".concat(video[4]);\n classTerm = \"\".concat(classTerm, \" meta-lightbox-youtube\");\n }\n\n if (video[1] == 'vimeo') {\n src = \"https://player.vimeo.com/video/\".concat(video[3]);\n classTerm = \"\".concat(classTerm, \" meta-lightbox-vimeo\");\n }\n\n if (!src) {\n console.warn(\"\".concat(NAME, \": Video loading bad URL\"));\n return false;\n }\n\n var $iframe = ui.loadIframe(src, classTerm);\n\n if (!$iframe) {\n $link.addClass('meta-offline');\n return false;\n }\n\n $link.removeClass('meta-offline'); // Set the title\n\n var _title = $link.data('title') ? $link.data('title') : $link.attr('title');\n\n ui.setTitle(_title); // google analytics\n\n if (typeof ga === 'function') {\n ga('send', 'event', 'meta', 'Video Click', video);\n }\n } // Inline HTML\n else if (href.substring(0, 1) == '#' || $link.data('force') === 'inline') {\n if ($(href).length) {\n wrap = $('<div class=\"meta-lightbox-inline\" />');\n wrap.append($(href).clone().show()); // Vertically center html\n\n if (wrap.outerHeight() < ui.$content.height()) {\n wrap.css({\n position: 'relative',\n top: '50%',\n 'margin-top': \"\".concat(-(wrap.outerHeight() / 2), \"px\")\n });\n }\n\n $W.resize(function () {\n if (wrap.outerHeight() < ui.$content.height()) {\n wrap.css({\n position: 'relative',\n top: '50%',\n 'margin-top': \"\".concat(-(wrap.outerHeight() / 2), \"px\")\n });\n }\n });\n ui.$content.html(wrap);\n ui.contentLoaded();\n } else {\n wrap = $(NETWORK_ERROR);\n ui.$content.html(wrap);\n ui.contentLoaded();\n }\n\n $('.meta-lightbox-title-wrap').html(''); // google analytics\n\n if (typeof ga === 'function') {\n ga('send', 'event', 'meta', 'inline HTML click', href);\n }\n } // AJAX/iFrame (default)\n else {\n if ($link.data('force-iframe') || $link.data('force') === 'iframe') {\n console.log(\"\".concat(NAME, \": IFrame forced\"));\n\n var _$iframe = ui.loadIframe(href, 'meta-lightbox-iframe-content');\n\n if (!_$iframe) {\n $link.addClass('meta-offline');\n return false;\n }\n\n $link.removeClass('meta-offline');\n return true;\n }\n\n console.log(\"\".concat(NAME, \": loading AJAX\"));\n $.ajax({\n sync: false,\n async: true,\n url: href,\n dataType: 'html',\n method: 'GET',\n cache: false,\n statusCode: {\n 404: function _() {\n console.log(\"\".concat(NAME, \": page not found\"));\n W.location.href = url;\n },\n 302: function _() {\n console.log(\"\".concat(NAME, \": redirect 302\"));\n W.location.href = url;\n }\n },\n error: function error(jqXHR, status) {\n console.log(\"\".concat(NAME, \": AJAX request failure.\").concat(jqXHR.statusText));\n var wrap = $(NETWORK_ERROR);\n ui.$content.html(wrap);\n ui.contentLoaded(); // google analytics\n\n if (typeof ga === 'function') {\n ga('send', 'event', 'error', 'AJAX ERROR', jqXHR.statusText);\n }\n },\n success: function success(data, status, jqXHR) {\n console.log(\"\".concat(NAME, \": AJAX success\"));\n\n try {\n var dataJson = $.parseJSON(data);\n\n if (_typeof(dataJson) === 'object') {\n console.log(\"\".concat(NAME, \": AJAX JSON\")); // Replace regions\n\n if (_typeof(dataJson['regions']) === 'object' && typeof dataJson['regions']['LayoutAjax'] !== 'undefinded') {\n var wrap = $('<div class=\"meta-lightbox-ajax\" />');\n wrap.html(dataJson['regions']['LayoutAjax']);\n ui.$content.html(wrap);\n ui.contentLoaded();\n } // trigger events\n\n /*if (typeof (data['events']) === 'object') {\n for (var eventName in data.events) {\n $(D).trigger(eventName, [data['events'][eventName]]);\n }\n }*/\n\n\n var title = jqXHR.getResponseHeader('X-Title'),\n link = jqXHR.getResponseHeader('X-Link');\n\n if (title && title.length && link && link.length && link !== W.location.href && link.substring(0, link.indexOf('#')) !== W.location.href.replace($('base').attr('href'), '/')) {\n $('.meta-lightbox-ajax').data('curr-title', D.title);\n $('.meta-lightbox-ajax').data('curr-link', W.location.href);\n\n if (typeof W.localStorage !== 'undefined' && link !== '/') {\n W.localStorage.setItem('current-page', link);\n }\n\n if (D.URL !== link && D.URL !== $('base').attr('href') + link && D.URL !== \"\".concat($('base').attr('href'), \"/\").concat(link)) {\n W.history.pushState({\n title: title,\n page: link,\n ajax: 'true'\n }, title, link);\n }\n\n $('.meta-lightbox-title-wrap').html(''); // google analytics\n\n if (typeof ga === 'function') {\n ga('set', {\n page: link.replace($('base').attr('href'), ''),\n title: title\n });\n ga('send', 'pageview');\n }\n }\n }\n } catch (e) {\n console.log(\"\".concat(NAME, \": AJAX HTML\"));\n var $wrap = $('<div class=\"meta-lightbox-ajax\" />');\n $wrap.append(data);\n ui.$content.html($wrap);\n ui.contentLoaded();\n } // Vertically center html\n\n /*if (wrap.outerHeight() < ui.$content.height()) {\n wrap.css({\n position: 'relative',\n top: '50%',\n 'margin-top': `${-(wrap.outerHeight() / 2)}px`,\n });\n }\n $W.resize(() => {\n if (wrap.outerHeight() < ui.$content.height()) {\n wrap.css({\n position: 'relative',\n top: '50%',\n 'margin-top': `${-(wrap.outerHeight() / 2)}px`,\n });\n }\n });*/\n\n /*setTimeout(() => {\n $W.resize();\n if (typeof W.imagesLoaded === 'function') {\n W.imagesLoaded().then(() => {\n $W.resize();\n });\n }\n }, 500);*/\n\n\n ui.contentLoaded();\n }\n });\n }\n }\n }, {\n key: \"loadIframe\",\n value: function loadIframe(href, classTerm) {\n var ui = this;\n var $iframe = $('<iframe>', {\n src: href,\n class: classTerm,\n frameborder: 0,\n vspace: 0,\n hspace: 0,\n scrolling: 'auto',\n allowtransparency: 'true'\n });\n console.log(\"\".concat(NAME, \": loading iframe\"));\n $Body.append('<div id=\"MetaIFramePreload\" class=\"hidden d-none iframe-preload\" style=\"display:none\"></div>');\n var $preload = $('#MetaIFramePreload');\n $preload.html($iframe);\n $iframe.on('load', function () {\n // don't load on offline\n if ($Body.hasClass('is-offline')) {\n console.warn(\"\".concat(NAME, \": Unable to load iframe offline\"));\n return false;\n }\n\n ui.finishIFrameLoading();\n });\n return $iframe;\n }\n }, {\n key: \"finishIFrameLoading\",\n value: function finishIFrameLoading() {\n var ui = this;\n var $preload = $('#MetaIFramePreload');\n\n if (!$preload.length) {\n console.warn(\"\".concat(NAME, \": iframe preload not found\"));\n return false;\n }\n\n var $iframe = $preload.find('iframe');\n\n if (!$iframe.length) {\n console.warn(\"\".concat(NAME, \": iframe preload > iframe not found\"));\n return false;\n }\n\n console.log(\"\".concat(NAME, \": the iframe was loaded\"));\n $preload.html('');\n $preload.remove();\n ui.$content.addClass('iframe-delay');\n ui.$content.html($iframe);\n ui.contentLoaded();\n setTimeout(function () {\n ui.$content.removeClass('iframe-delay');\n }, 1000);\n }\n }, {\n key: \"contentLoaded\",\n value: function contentLoaded() {\n var ui = this;\n ui.$content.removeClass('meta-lightbox-loading');\n $(\".meta-lightbox-content .js\".concat(NAME, \",.meta-lightbox-content [data-toggle=\\\"lightbox\\\"],.meta-lightbox-content [data-lightbox-gallery]\")).on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n var $link = $(e.currentTarget);\n ui.show($link);\n });\n $(\".js\".concat(NAME, \"-close\")).on('click', function (e) {\n e.preventDefault();\n ui.hide();\n });\n setTimeout(function () {\n $W.trigger('meta-lightbox-loaded');\n }, 1); // For CSS transitions\n\n setTimeout(function () {\n $Body.addClass('meta-lightbox-body-effect-fade');\n }, 600);\n }\n }, {\n key: \"hide\",\n value: function hide(callback) {\n var ui = this;\n var $overlay = ui.$overlay;\n var title = $('.meta-lightbox-ajax').data('curr-title'),\n link = $('.meta-lightbox-ajax').data('curr-link');\n\n if (title && link) {\n if (typeof W.localStorage !== 'undefined' && link !== '/') {\n W.localStorage.setItem('current-page', link);\n }\n\n if (D.URL !== link && D.URL !== $('base').attr('href') + link && D.URL !== \"\".concat($('base').attr('href'), \"/\").concat(link)) {\n W.history.replaceState({\n title: title,\n page: link,\n ajax: 'true'\n }, title, link);\n }\n }\n\n $overlay.removeClass('meta-lightbox-open');\n $Body.removeClass('meta-lightbox-body-effect-fade');\n $('.meta-lightbox-content .meta-lightbox-zoom-wrapper').trigger('zoom.destroy'); // For IE\n\n if (ui.isMSIE) {\n $overlay.find('iframe').attr('src', ' ');\n $overlay.find('iframe').remove();\n }\n\n $('.meta-lightbox-prev').off('click'); // Remove click handlers\n\n $('.meta-lightbox-next').off('click'); // Empty content (for videos)\n\n $('.meta-lightbox-content').empty();\n $Body.removeClass('meta-lightbox-body-effect-fade');\n }\n }]);\n\n return MetaLightboxUI;\n }();\n\n $W.on(\"MetaLightboxUI.init \".concat(_events.AJAX, \" \").concat(_events.LOADED), function () {\n MetaLightboxUI.init();\n });\n $W.on(\"\".concat(_events.BACKONLINE), function () {\n $('.meta-offline').removeClass('meta-offline');\n console.log(\"\".concat(NAME, \": reloading iframe\"));\n MetaLightboxUI.finishIFrameLoading();\n var $iframe = $('.meta-lightbox-content iframe');\n\n if ($iframe.length) {\n $iframe.attr('src', $iframe.attr('src'));\n }\n });\n W.MetaLightboxUI = MetaLightboxUI;\n return MetaLightboxUI;\n}((external_jQuery_default()));\n\n/* harmony default export */ var meta_lightbox = (MetaLightboxUI);\n;// CONCATENATED MODULE: ./src/js/app.js\n/*\n * MetaLightbox\n * https://tony.twma.pro\n *\n */\n\n\n/*import React from 'react';\nimport ReactDOM from 'react-dom';\nimport MetaWindow from './_window.jsx';\n\nconst M = ReactDOM.render(<MetaWindow />, document.getElementById('App'));\nReactDOM.render(<MetaWindow />, document.getElementById('App'));\n\nsetTimeout(() => {\n M.setContent('<b>ZZZZZZZZZAAAA</b>');\n}, 5000);*/\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./src/js/app.js_+_4_modules?");
"use strict";
eval("// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external \"React\"\nvar external_React_ = __webpack_require__(\"react\");\nvar external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);\n;// CONCATENATED MODULE: external \"ReactDOM\"\nvar external_ReactDOM_namespaceObject = ReactDOM;\nvar external_ReactDOM_default = /*#__PURE__*/__webpack_require__.n(external_ReactDOM_namespaceObject);\n;// CONCATENATED MODULE: ./src/scss/_window.scss\n// extracted by mini-css-extract-plugin\n\n// EXTERNAL MODULE: ./node_modules/.pnpm/react-tiny-oembed@1.0.1_react-dom@17.0.1+react@17.0.1/node_modules/react-tiny-oembed/lib/index.js\nvar lib = __webpack_require__(\"./node_modules/.pnpm/react-tiny-oembed@1.0.1_react-dom@17.0.1+react@17.0.1/node_modules/react-tiny-oembed/lib/index.js\");\nvar lib_default = /*#__PURE__*/__webpack_require__.n(lib);\n;// CONCATENATED MODULE: ./src/js/_window.jsx\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n * Lightbox window\n */\n\n\n\nvar TelegramProvider = {\n provider_name: 'Instagram',\n provider_url: 'https://instagram.com',\n endpoints: [{\n schemes: ['http://instagram.com/*/p/*,', 'http://www.instagram.com/*/p/*,', 'https://instagram.com/*/p/*,', 'https://www.instagram.com/*/p/*,', 'http://instagram.com/p/*', 'http://instagr.am/p/*', 'http://www.instagram.com/p/*', 'http://www.instagr.am/p/*', 'https://instagram.com/p/*', 'https://instagr.am/p/*', 'https://www.instagram.com/p/*', 'https://www.instagr.am/p/*', 'http://instagram.com/tv/*', 'http://instagr.am/tv/*', 'http://www.instagram.com/tv/*', 'http://www.instagr.am/tv/*', 'https://instagram.com/tv/*', 'https://instagr.am/tv/*', 'https://www.instagram.com/tv/*', 'https://www.instagr.am/tv/*'],\n url: 'https://graph.facebook.com/v9.0/instagram_oembed',\n formats: ['json']\n }, {\n schemes: ['http://instagram.com/*/p/*,', 'http://www.instagram.com/*/p/*,', 'https://instagram.com/*/p/*,', 'https://www.instagram.com/*/p/*,', 'http://instagram.com/p/*', 'http://instagr.am/p/*', 'http://www.instagram.com/p/*', 'http://www.instagr.am/p/*', 'https://instagram.com/p/*', 'https://instagr.am/p/*', 'https://www.instagram.com/p/*', 'https://www.instagr.am/p/*', 'http://instagram.com/tv/*', 'http://instagr.am/tv/*', 'http://www.instagram.com/tv/*', 'http://www.instagr.am/tv/*', 'https://instagram.com/tv/*', 'https://instagr.am/tv/*', 'https://www.instagram.com/tv/*', 'https://www.instagr.am/tv/*'],\n url: 'https://api.instagram.com/oembed',\n formats: ['json']\n }]\n};\n\nvar axios = __webpack_require__(/*! axios */ \"./node_modules/.pnpm/axios@0.21.1/node_modules/axios/index.js\");\n\nvar MetaWindow = /*#__PURE__*/function (_Component) {\n _inherits(MetaWindow, _Component);\n\n var _super = _createSuper(MetaWindow);\n\n function MetaWindow(props) {\n var _this;\n\n _classCallCheck(this, MetaWindow);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n content: '',\n type: [],\n shown: false,\n loading: false,\n error: false,\n embed: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"reset\", function () {\n var ui = _assertThisInitialized(_this);\n\n ui.setState({\n content: '',\n type: [],\n shown: false,\n loading: false,\n error: false,\n embed: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"embed\", function (link) {\n var ui = _assertThisInitialized(_this);\n\n console.log(\"\".concat(ui.name, \": embed\"));\n ui.reset();\n ui.setState({\n embed: link,\n loading: false,\n type: ['embed', 'video']\n });\n ui.show();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"load\", function (link) {\n var ui = _assertThisInitialized(_this);\n\n var axios = ui.axios;\n ui.reset();\n ui.setState({\n loading: true\n });\n ui.show();\n axios.get(link, {\n responseType: 'arraybuffer'\n }).then(function (resp) {\n // handle success\n console.log(\"\".concat(ui.name, \": response content-type: \").concat(resp.headers['content-type']));\n\n switch (resp.headers['content-type']) {\n case 'image/jpeg':\n case 'image/png':\n case 'image/svg+xml':\n case 'image/bmp':\n case 'image/gif':\n case 'image/tiff':\n case 'image/webp': // irregular types:\n\n case 'image/jpg':\n case 'image/svg':\n ui.setContent(\"<img src=\\\"data:\".concat(resp.headers['content-type'], \";base64,\").concat(ui._imageEncode(resp.data), \"\\\" />\"), 'image');\n break;\n\n case 'application/json':\n case 'application/ld+json': // irregular types:\n\n case 'application/json; charset=UTF-8':\n var json = JSON.parse(ui._abToString(resp.data));\n ui.setContent(\"\".concat(json['Content']), 'text html json');\n break;\n\n case 'text/html':\n case 'application/xhtml+xml':\n case 'text/plain': // irregular types:\n\n case 'text/html; charset=UTF-8':\n case 'application/xhtml+xml; charset=UTF-8':\n case 'text/plain; charset=UTF-8':\n ui.setContent(ui._abToString(resp.data), 'text html pajax');\n break;\n\n default:\n console.warn(\"\".concat(ui.name, \": Unknown response content-type!\"));\n break;\n }\n }).catch(function (error) {\n console.error(error);\n var msg = '';\n\n if (error.response) {\n switch (error.response.status) {\n case 404:\n msg = 'Not Found.';\n break;\n\n case 500:\n msg = 'Server issue, please try again latter.';\n break;\n\n default:\n msg = 'Something went wrong.';\n break;\n }\n } else if (error.request) {\n msg = 'No response received';\n } else {\n console.warn('Error', error.message);\n }\n\n ui.setState({\n error: msg\n });\n }).then(function () {\n ui.setState({\n loading: false\n });\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_abToString\", function (arrayBuffer) {\n return String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_imageEncode\", function (arrayBuffer) {\n var u8 = new Uint8Array(arrayBuffer);\n var b64encoded = btoa([].reduce.call(new Uint8Array(arrayBuffer), function (p, c) {\n return p + String.fromCharCode(c);\n }, ''));\n return b64encoded;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setContent\", function (html, type) {\n var ui = _assertThisInitialized(_this);\n\n console.log(\"\".concat(ui.name, \": setContent\"));\n var typeArr = type ? type : ['html', 'text'];\n\n if (!Array.isArray(typeArr)) {\n typeArr = type.split(' ');\n }\n\n ui.setState({\n content: html,\n type: typeArr\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"show\", function () {\n var ui = _assertThisInitialized(_this);\n\n console.log(\"\".concat(ui.name, \": show\"));\n ui.setState({\n shown: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"hide\", function () {\n var ui = _assertThisInitialized(_this);\n\n console.log(\"\".concat(ui.name, \": hide\"));\n ui.setState({\n shown: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getHtml\", function () {\n var ui = _assertThisInitialized(_this);\n\n return {\n __html: ui.state.content\n };\n });\n\n var _ui = _assertThisInitialized(_this);\n\n _ui.name = _ui.constructor.name;\n console.log(\"\".concat(_ui.name, \": init\"));\n _ui.axios = axios;\n document.querySelectorAll('[data-toggle=\"lightbox\"]').forEach(function (i) {\n i.addEventListener('click', function (e) {\n e.preventDefault();\n var el = e.currentTarget;\n var link = el.getAttribute('href') || el.getAttribute('data-href');\n var embed = el.getAttribute('data-embed');\n\n if (embed) {\n _ui.embed(link);\n } else {\n _ui.load(link);\n }\n });\n });\n return _this;\n }\n\n _createClass(MetaWindow, [{\n key: \"render\",\n value: function render() {\n var ui = this;\n var name = ui.name;\n var content = ui.state.embed ? /*#__PURE__*/React.createElement(\"section\", {\n className: \"meta-wrap typography\"\n }, /*#__PURE__*/React.createElement((lib_default()), {\n url: ui.state.embed,\n providers: [].concat(_toConsumableArray(lib.defaultProviders), [TelegramProvider]),\n LoadingFallbackElement: /*#__PURE__*/React.createElement(\"div\", {\n className: \"meta-spinner_embed\"\n }, \"... Loading ...\")\n })) : /*#__PURE__*/React.createElement(\"section\", {\n className: \"meta-wrap typography\",\n dangerouslySetInnerHTML: ui.getHtml()\n });\n var className = \"meta-\".concat(name, \" meta-\").concat(name, \"__\").concat(ui.state.type.join(\" meta-\".concat(name, \"__\")));\n var overlayClassName = \"meta-\".concat(name, \"-overlay\").concat(ui.state.shown ? \" meta-\".concat(name, \"-overlay__open\") : '').concat(ui.state.loading ? \" meta-\".concat(name, \"-overlay__loading\") : '').concat(ui.state.error ? \" meta-\".concat(name, \"-overlay__error\") : '');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: overlayClassName\n }, /*#__PURE__*/React.createElement(\"article\", {\n className: \"meta-content\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"meta-close fas fa fa-times a\",\n onClick: ui.hide\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only\"\n }, \"Close\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"meta-spinner\"\n }, \"... Loading ...\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"meta-error alert alert-danger\"\n }, ui.state.error), content)));\n }\n }]);\n\n return MetaWindow;\n}(external_React_.Component);\n\n/* harmony default export */ var _window = (MetaWindow);\n;// CONCATENATED MODULE: ./src/js/app.js\n/*\n * MetaLightbox\n * https://tony.twma.pro\n *\n */\n\n/*import '../scss/app.scss';\nimport './meta-lightbox';*/\n\n\n\nvar M = external_ReactDOM_default().render( /*#__PURE__*/external_React_default().createElement(_window, null), document.getElementById('App'));\nexternal_ReactDOM_default().render( /*#__PURE__*/external_React_default().createElement(_window, null), document.getElementById('App')); // display custom HTML content manually using JS\n//M.setContent('<b>ZZZZZZZZZAAAA11<a href=\"/\">BBBB</a>122</b>');\n//M.show();\n\n//# sourceURL=webpack://@a2nt/meta-lightbox/./src/js/app.js_+_3_modules?");
/***/ }),
/***/ "react":
/*!************************!*\
!*** external "React" ***!
\************************/
/***/ (function(module) {
"use strict";
module.exports = React;
/***/ })
@ -39,7 +387,7 @@ eval("// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n;// CON
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;

2
dist/records.json vendored
View File

@ -17,7 +17,7 @@
"bySource": {},
"usedIds": []
},
"mini-css-extract-plugin /mnt/data/srv/dist/repositories/meta-lightbox/node_modules/.pnpm/css-loader@5.0.1_webpack@5.16.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/.pnpm/resolve-url-loader@3.1.2/node_modules/resolve-url-loader/index.js!./node_modules/.pnpm/sass-loader@10.1.1_node-sass@5.0.0+webpack@5.16.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/scss/app.scss": [
"mini-css-extract-plugin /mnt/data/srv/dist/repositories/meta-lightbox/node_modules/.pnpm/css-loader@5.0.1_webpack@5.17.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/.pnpm/resolve-url-loader@3.1.2/node_modules/resolve-url-loader/index.js!./node_modules/.pnpm/sass-loader@10.1.1_node-sass@5.0.0+webpack@5.17.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/scss/_window.scss": [
{
"chunks": {
"byName": {},

13
dist/report.html vendored

File diff suppressed because one or more lines are too long

View File

@ -36,17 +36,17 @@
],
"dependencies": {
"aos": "^2.3.4",
"bindings": "^1.5.0",
"axios": "^0.21.1",
"balanced-match": "^1.0.0",
"bootbox": "^5.5.2",
"bootstrap": "^4.6.0",
"bootstrap-confirmation2": "^4.2.0",
"bootstrap-datepicker": "^1.9.0",
"bootstrap-offcanvas": "^1.0.0",
"bootstrap-table": "^1.18.1",
"bootstrap-table": "^1.18.2",
"bootstrap-timepicker": "^0.5.2",
"events": "^3.2.0",
"brace-expansion": "^2.0.0",
"font-awesome": "^4.7.0",
"fsevents": "^2.3.1",
"hammerjs": "^2.0.8",
"inputmask": "^5.0.5",
"jquery": "^3.5.1",
@ -59,19 +59,18 @@
"lodash.throttle": "^4.1.1",
"mapbox-gl": "^2.0.1",
"material-design-color": "^2.3.2",
"minimatch": "^3.0.4",
"moment": "^2.29.1",
"oembed-github-gist": "^1.0.0",
"offcanvas-bootstrap": "^2.5.2",
"popper.js": "*",
"punycode": "^2.1.1",
"querystring": "^0.2.0",
"react-tiny-oembed": "^1.0.1",
"select2": "^4.0.13",
"setimmediate": "^1.0.5",
"smooth-scroll": "^16.1.3",
"sockjs-client": "^1.5.0",
"sticky-sidebar": "^3.3.1",
"tablednd": "^1.0.5",
"url": "^0.11.0",
"watchpack-chokidar2": "^2.0.1",
"yarn": "^1.22.10"
"tablednd": "^1.0.5"
},
"devDependencies": {
"@a2nt/image-sprite-webpack-plugin": "^0.2.5",
@ -95,13 +94,13 @@
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jquery": "^1.5.1",
"eslint-plugin-react": "^7.22.0",
"events": "^3.2.0",
"exif-js": "^2.3.0",
"exports-loader": "^1.1.1",
"exports-loader": "^2.0.0",
"fast-levenshtein": "^3.0.0",
"fastest-levenshtein": "^1.0.12",
"favicons-webpack-plugin": "github:jantimon/favicons-webpack-plugin#benkostr-webpack-5",
"file-loader": "^6.2.0",
"font-awesome": "^4.7.0",
"hoist-non-react-statics": "^3.3.2",
"html-dom-parser": "^1.0.0",
"html-entities": "^1.4.0",
@ -116,8 +115,10 @@
"node-sass": "^5.0.0",
"object-assign": "^4.1.1",
"optimize-css-assets-webpack-plugin": "^5.0.4",
"postcss-loader": "^4.1.0",
"postcss-loader": "^4.2.0",
"prop-types": "^15.7.2",
"punycode": "^2.1.1",
"querystring": "^0.2.0",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-hot-loader": "^4.13.0",
@ -132,18 +133,19 @@
"scheduler": "^0.20.1",
"script-ext-html-webpack-plugin": "^2.1.5",
"shallowequal": "^1.1.0",
"sockjs-client": "^1.5.0",
"strip-ansi": "^6.0.0",
"style-loader": "^2.0.0",
"svg-url-loader": "^7.1.1",
"terser-webpack-plugin": "^5.1.1",
"url": "^0.11.0",
"url-loader": "^4.1.1",
"webpack": "^5.16.0",
"webpack-bundle-analyzer": "^4.3.0",
"webpack": "^5.17.0",
"webpack-bundle-analyzer": "^4.4.0",
"webpack-cli": "^4.4.0",
"webpack-dev-server": "^4.0.0-beta.0",
"webpack-manifest-plugin": "^3.0.0",
"webpack-merge": "^5.7.3"
"webpack-merge": "^5.7.3",
"yarn": "^1.22.10"
},
"stylelint": {
"rules": {

View File

@ -1 +0,0 @@
@import "../src/scss/index";

View File

@ -1,21 +1,95 @@
<style>
[data-toggle='lightbox']:hover,
[data-toggle='lightbox']:focus {
text-decoration: underline;
}
</style>
<h2>Loading data</h2>
<p>
<a
href="../src/img/photo1.png"
data-toggle="lightbox"
data-lightbox-gallery="demo"
data-title="That's first link"
>Click me to start</a>
>Load an Image</a
>
<br />
<a href="../src/test.json" data-toggle="lightbox">
Load JSON
</a>
<br />
<a href="../src/test-pajax.html" data-toggle="lightbox">
Load Partial AJAX HTML </a
><br />
<a href="../src/not-found.html" data-toggle="lightbox"> Not Found test </a>
</p>
<h2>Embeds</h2>
<p>
<a href="../src/img/photo2.jpg" data-toggle="lightbox" data-lightbox-gallery="demo">
Use data-toggle="lightbox" attribute to attach lightbox action and href to specify URL.
<a
href="https://www.youtube.com/watch?v=WYvZZYthDRI"
data-toggle="lightbox"
data-embed="true"
>Embed Youtube link</a
>
<br />
<a
href="https://vimeo.com/26216129"
data-toggle="lightbox"
data-embed="true"
>Embed Vimeo link</a
>
<br />
<a
href="https://soundcloud.com/littlenapoleon/led-zeppelin-vs-rolling-stones"
data-toggle="lightbox"
data-embed="true"
>Embed SoundCloud link</a
><br />
<a
href="https://www.instagram.com/p/CKl5n87hf7R/"
data-toggle="lightbox"
data-embed="true"
>Embed Instagram</a
>
</p>
<h2>Other</h2>
<p>
<a
href="../src/img/photo2.jpg"
data-toggle="lightbox"
data-lightbox-gallery="demo"
>
Use [data-toggle="lightbox"] attribute to attach lightbox action and
[href] to specify URL.
</a>
</p>
<p>
<a href="../src/img/photo1.png" data-toggle="lightbox" data-lightbox-gallery="demo" data-title="Use data-title attribute to specify lightbox title">
Use data-lightbox-gallery="YOUR_GALLERY_NAME" to group ligthboxes and use next/prev arrows
<a
href="../src/img/photo1.png"
data-toggle="lightbox"
data-lightbox-gallery="demo"
data-title="Use data-title attribute to specify lightbox title"
>
Use [data-lightbox-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with
next/prev arrows
</a>
</p>
<p data-toggle="lightbox" data-href="https://youtu.be/GgnClrx8N2k" data-lightbox-gallery="demo" data-title="Yes you can link vimeo and youtube videos as long as AJAX content">
You can use data-href attribute to specify link and attach lightbox to another element
</p>
<p
data-toggle="lightbox"
data-href="https://youtu.be/GgnClrx8N2k"
data-lightbox-gallery="demo"
data-title="Yes you can link vimeo and youtube videos as long as AJAX content"
>
Use [data-toggle="lightbox"] + [data-href] attribute to toggle lightbox on
regular elements.
<b>Click me!</b>
</p>

View File

@ -2,55 +2,324 @@
* Lightbox window
*/
import { Component } from 'react';
import '../scss/app.scss';
import styles from '../scss/_window.scss';
import Embed, { defaultProviders } from 'react-tiny-oembed';
const TelegramProvider = {
provider_name: 'Instagram',
provider_url: 'https://instagram.com',
endpoints: [
{
schemes: [
'http://instagram.com/*/p/*,',
'http://www.instagram.com/*/p/*,',
'https://instagram.com/*/p/*,',
'https://www.instagram.com/*/p/*,',
'http://instagram.com/p/*',
'http://instagr.am/p/*',
'http://www.instagram.com/p/*',
'http://www.instagr.am/p/*',
'https://instagram.com/p/*',
'https://instagr.am/p/*',
'https://www.instagram.com/p/*',
'https://www.instagr.am/p/*',
'http://instagram.com/tv/*',
'http://instagr.am/tv/*',
'http://www.instagram.com/tv/*',
'http://www.instagr.am/tv/*',
'https://instagram.com/tv/*',
'https://instagr.am/tv/*',
'https://www.instagram.com/tv/*',
'https://www.instagr.am/tv/*',
],
url: 'https://graph.facebook.com/v9.0/instagram_oembed',
formats: ['json'],
},
{
schemes: [
'http://instagram.com/*/p/*,',
'http://www.instagram.com/*/p/*,',
'https://instagram.com/*/p/*,',
'https://www.instagram.com/*/p/*,',
'http://instagram.com/p/*',
'http://instagr.am/p/*',
'http://www.instagram.com/p/*',
'http://www.instagr.am/p/*',
'https://instagram.com/p/*',
'https://instagr.am/p/*',
'https://www.instagram.com/p/*',
'https://www.instagr.am/p/*',
'http://instagram.com/tv/*',
'http://instagr.am/tv/*',
'http://www.instagram.com/tv/*',
'http://www.instagr.am/tv/*',
'https://instagram.com/tv/*',
'https://instagr.am/tv/*',
'https://www.instagram.com/tv/*',
'https://www.instagr.am/tv/*',
],
url: 'https://api.instagram.com/oembed',
formats: ['json'],
},
],
};
const axios = require('axios');
class MetaWindow extends Component {
state = {
content: '',
type: [],
shown: false,
loading: false,
error: false,
embed: false,
};
constructor(props) {
super(props);
console.log(`${this.constructor.name}: init`);
const ui = this;
ui.name = ui.constructor.name;
console.log(`${ui.name}: init`);
ui.axios = axios;
document.querySelectorAll('[data-toggle="lightbox"]').forEach((i) => {
i.addEventListener('click', (e) => {
e.preventDefault();
const el = e.currentTarget;
const link =
el.getAttribute('href') || el.getAttribute('data-href');
const embed = el.getAttribute('data-embed');
if (embed) {
ui.embed(link);
} else {
ui.load(link);
}
});
});
}
setContent = (html) => {
console.log(`${this.constructor.name}: setContent`);
this.setState({ content: html });
this.show();
reset = () => {
const ui = this;
ui.setState({
content: '',
type: [],
shown: false,
loading: false,
error: false,
embed: false,
});
};
embed = (link) => {
const ui = this;
console.log(`${ui.name}: embed`);
ui.reset();
ui.setState({
embed: link,
loading: false,
type: ['embed', 'video'],
});
ui.show();
};
load = (link) => {
const ui = this;
const axios = ui.axios;
ui.reset();
ui.setState({ loading: true });
ui.show();
axios
.get(link, {
responseType: 'arraybuffer',
})
.then((resp) => {
// handle success
console.log(
`${ui.name}: response content-type: ${resp.headers['content-type']}`,
);
switch (resp.headers['content-type']) {
case 'image/jpeg':
case 'image/png':
case 'image/svg+xml':
case 'image/bmp':
case 'image/gif':
case 'image/tiff':
case 'image/webp':
// irregular types:
case 'image/jpg':
case 'image/svg':
ui.setContent(
`<img src="data:${
resp.headers['content-type']
};base64,${ui._imageEncode(resp.data)}" />`,
'image',
);
break;
case 'application/json':
case 'application/ld+json':
// irregular types:
case 'application/json; charset=UTF-8':
const json = JSON.parse(ui._abToString(resp.data));
ui.setContent(`${json['Content']}`, 'text html json');
break;
case 'text/html':
case 'application/xhtml+xml':
case 'text/plain':
// irregular types:
case 'text/html; charset=UTF-8':
case 'application/xhtml+xml; charset=UTF-8':
case 'text/plain; charset=UTF-8':
ui.setContent(
ui._abToString(resp.data),
'text html pajax',
);
break;
default:
console.warn(
`${ui.name}: Unknown response content-type!`,
);
break;
}
})
.catch((error) => {
console.error(error);
let msg = '';
if (error.response) {
switch (error.response.status) {
case 404:
msg = 'Not Found.';
break;
case 500:
msg = 'Server issue, please try again latter.';
break;
default:
msg = 'Something went wrong.';
break;
}
} else if (error.request) {
msg = 'No response received';
} else {
console.warn('Error', error.message);
}
ui.setState({ error: msg });
})
.then(() => {
ui.setState({ loading: false });
});
};
_abToString = (arrayBuffer) => {
return String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));
};
_imageEncode = (arrayBuffer) => {
let u8 = new Uint8Array(arrayBuffer);
let b64encoded = btoa(
[].reduce.call(
new Uint8Array(arrayBuffer),
function (p, c) {
return p + String.fromCharCode(c);
},
'',
),
);
return b64encoded;
};
setContent = (html, type) => {
const ui = this;
console.log(`${ui.name}: setContent`);
let typeArr = type ? type : ['html', 'text'];
if (!Array.isArray(typeArr)) {
typeArr = type.split(' ');
}
ui.setState({ content: html, type: typeArr });
};
show = () => {
this.setState({ shown: true });
const ui = this;
console.log(`${ui.name}: show`);
ui.setState({ shown: true });
};
hide = () => {
this.setState({ shown: false });
const ui = this;
console.log(`${ui.name}: hide`);
ui.setState({ shown: false });
};
getHtml = () => {
return { __html: this.state.content };
const ui = this;
return { __html: ui.state.content };
};
render() {
const className =
'meta-lightbox-overlay meta-lightbox-theme-default meta-lightbox-effect-fade ' +
(this.state.shown ? 'meta-lightbox-open' : '');
const ui = this;
const name = ui.name;
const content = ui.state.embed ? (
<section className="meta-wrap typography">
<Embed
url={ui.state.embed}
providers={[...defaultProviders, TelegramProvider]}
LoadingFallbackElement=<div className="meta-spinner_embed">
... Loading ...
</div>
/>
</section>
) : (
<section
className="meta-wrap typography"
dangerouslySetInnerHTML={ui.getHtml()}
></section>
);
const className = `meta-${name} meta-${name}__${ui.state.type.join(
` meta-${name}__`,
)}`;
const overlayClassName = `meta-${name}-overlay${
ui.state.shown ? ` meta-${name}-overlay__open` : ''
}${ui.state.loading ? ` meta-${name}-overlay__loading` : ''}${
ui.state.error ? ` meta-${name}-overlay__error` : ''
}`;
return (
<div className={className}>
<div
className="meta-lightbox-close fas fa fa-times a"
onClick={this.hide}
>
<span className="sr-only">Close</span>
</div>
<div className="meta-lightbox-content">
<div
className="meta-lightbox-wrap"
dangerouslySetInnerHTML={this.getHtml()}
></div>
<div className={overlayClassName}>
<article className="meta-content">
<button
className="meta-close fas fa fa-times a"
onClick={ui.hide}
>
<span className="sr-only">Close</span>
</button>
<div className="meta-spinner">... Loading ...</div>
<div className="meta-error alert alert-danger">
{ui.state.error}
</div>
{content}
</article>
</div>
</div>
);

View File

@ -4,16 +4,16 @@
*
*/
import '../scss/app.scss';
import './meta-lightbox';
/*import '../scss/app.scss';
import './meta-lightbox';*/
/*import React from 'react';
import React from 'react';
import ReactDOM from 'react-dom';
import MetaWindow from './_window.jsx';
const M = ReactDOM.render(<MetaWindow />, document.getElementById('App'));
ReactDOM.render(<MetaWindow />, document.getElementById('App'));
setTimeout(() => {
M.setContent('<b>ZZZZZZZZZAAAA</b>');
}, 5000);*/
// display custom HTML content manually using JS
//M.setContent('<b>ZZZZZZZZZAAAA11<a href="/">BBBB</a>122</b>');
//M.show();

View File

@ -1,9 +1,36 @@
$white: #fff !default;
$black: #000 !default;
$lightbox-link-hover-color: #007bff !default;
$lightbox-breakpoint: 576px !default;
$body-color: #212529 !default;
@import 'material-design-color/material-color.scss';
$body-bg: $clr-white !default;
$body-color: $clr-black !default;
$grid-gutter-width: 2rem !default;
$grid-gutter-height: 2rem !default;
$meta-overlay-bg: transparentize($clr-blue-grey-500, 0.2) !default;
$meta-text-wrapper-bg: $body-bg !default;
$meta-text-wrapper-color: $body-color !default;
$meta-text-wrapper-padding-width: $grid-gutter-width/2 !default;
$meta-text-wrapper-padding-height: $grid-gutter-height/2 !default;
$meta-close-size: 1.2rem !default;
$meta-close-color: $clr-grey-900 !default;
$meta-close-hover-color: $clr-blue-grey-50 !default;
$meta-close-hover-bg: $clr-blue !default;
$meta-close-hover-shadow: $clr-white !default;
$meta-spinner-color: $clr-white !default;
$meta-spinner-weight: bold !default;
$meta-spinner-size: 2rem !default;
$meta-embed-loading-failed-color: $meta-spinner-color !default;
$meta-embed-loading-failed-size: 1.2rem !default;
$meta-embed-loading-failed-weight: $meta-spinner-weight !default;
$meta-video-width: 16 !default;
$meta-video-height: 9 !default;
// extra variables and mixings
$grid-breakpoints: (
xs: 0,
sm: 576px,
@ -11,7 +38,7 @@ $grid-breakpoints: (
lg: 992px,
xl: 1200px,
xxl: 1390px,
xxxl: 1590px
xxxl: 1590px,
) !default;
$container-max-widths: (
sm: 540px,
@ -19,5 +46,65 @@ $container-max-widths: (
lg: 960px,
xl: 1140px,
xxl: 1330px,
xxxl: 1560px
xxxl: 1560px,
) !default;
// hovers
@mixin hover-focus() {
&:hover,
&:focus {
@content;
}
}
@mixin hover-focus-active() {
&:hover,
&:focus,
&:active {
@content;
}
}
@mixin spinner_style() {
font-size: $meta-spinner-size;
color: $meta-spinner-color;
font-weight: $meta-spinner-weight;
text-transform: uppercase;
}
// screen reader
// Only display content to screen readers
//
// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
@mixin sr-only() {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
@mixin pseudo($display: block, $pos: absolute, $content: '') {
content: $content;
display: $display;
position: $pos;
}
@mixin responsive-ratio($x, $y, $pseudo: false) {
$padding: unquote(($y / $x) * 100 + '%');
@if $pseudo {
&:before {
@include pseudo($pos: relative);
width: 100%;
padding-top: $padding;
}
} @else {
padding-top: $padding;
}
}

View File

@ -2,13 +2,13 @@
* Development assets generation
*/
const COMPRESS = false;
const path = require('path');
//const autoprefixer = require('autoprefixer');
const webpack = require('webpack');
const { merge } = require('webpack-merge');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const common = require('./webpack.config.common.js');
const commonVariables = require('./webpack.configuration');
@ -19,15 +19,22 @@ const PORT = process.env.PORT || conf.PORT;
const UIInfo = require('./package.json');
const NODE_ENV = conf.NODE_ENV || process.env.NODE_ENV;
const COMPRESS = NODE_ENV === 'production' ? true : false;
console.log('NODE_ENV: ' + NODE_ENV);
console.log('COMPRESS: ' + COMPRESS);
console.log('WebP images: ' + conf['webp']);
const config = merge(common, {
mode: 'development',
entry: {
hot: [
/*hot: [
'react-hot-loader/patch',
'webpack-dev-server/?https://' + conf.HOSTNAME + ':' + conf.PORT,
'webpack/hot/only-dev-server',
],
],*/
},
output: {
@ -122,18 +129,30 @@ const config = merge(common, {
Scrollspy: 'exports-loader?Scrollspy!bootstrap/js/dist/scrollspy',
Tab: 'exports-loader?Tab!bootstrap/js/dist/tab',
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
UINAME: JSON.stringify(UIInfo.name),
UIVERSION: JSON.stringify(UIInfo.version),
UIAUTHOR: JSON.stringify(UIInfo.author),
}),
//new webpack.HotModuleReplacementPlugin(),
new MiniCssExtractPlugin(),
new HtmlWebpackPlugin({
publicPath: '',
template: path.join(conf.APPDIR, conf.SRC, 'index.html'),
templateParameters: {
NODE_ENV: NODE_ENV,
REACT_SCRIPTS:
NODE_ENV === 'production'
? '<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script><script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>'
: '<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script><script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>',
},
}),
],
devServer: {
host: IP,
port: PORT,
historyApiFallback: true,
historyApiFallback: false,
//hot: true,
/*clientLogLevel: 'info',
disableHostCheck: true,