From fbb1a9bd8ed1b30fb34d5264ca837808bc868558 Mon Sep 17 00:00:00 2001 From: Tony Air Date: Sun, 31 Jan 2021 07:04:51 +0700 Subject: [PATCH] IMPR: Gallery Next/Prev functionality --- dist/css/app.css | 2 +- dist/index.html | 2 +- dist/js/app.js | 2 +- dist/report.html | 4 +- src/html/meta-lightbox.html | 14 +- src/index.html | 4 - src/js/_window.jsx | 96 ++++- src/js/app.js | 3 - src/js/meta-lightbox.js | 686 ------------------------------ src/js/todo.js | 133 ------ src/scss/_variables.scss | 13 +- src/scss/_window.scss | 70 ++- src/scss/app.scss | 2 +- src/scss/meta-lightbox-theme.scss | 90 ---- src/scss/meta-lightbox.scss | 216 ---------- webpack.config.serve.js | 2 +- 16 files changed, 168 insertions(+), 1171 deletions(-) delete mode 100755 src/js/meta-lightbox.js delete mode 100755 src/js/todo.js delete mode 100755 src/scss/meta-lightbox-theme.scss delete mode 100755 src/scss/meta-lightbox.scss diff --git a/dist/css/app.css b/dist/css/app.css index 814312d..147be84 100644 --- a/dist/css/app.css +++ b/dist/css/app.css @@ -1 +1 @@ -.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.meta-MetaWindow .meta-error,.meta-MetaWindow .meta-spinner,.meta-MetaWindow .meta-spinner_embed{display:none;align-items:center;justify-content:center;z-index:2;text-align:center}.meta-MetaWindow .meta-spinner,.meta-MetaWindow .meta-spinner_embed{font-size:2rem;color:#fff;font-weight:700;text-transform:uppercase;position:absolute;left:0;right:0;top:0;bottom:0}.meta-MetaWindow .meta-spinner_embed{display:flex}.meta-MetaWindow-overlay{background:rgba(96,125,139,.8);display:none;position:fixed;left:0;right:0;top:0;bottom:0;align-items:center;justify-content:center}.meta-MetaWindow-overlay__loading .meta-spinner,.meta-MetaWindow-overlay__open{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 .25em;position:absolute;top:0;right:0;padding:.5em .651em;border:0;background:none;z-index:2}.meta-MetaWindow .meta-close:focus,.meta-MetaWindow .meta-close:hover{color:#eceff1;background:#2196f3;text-shadow:none}.meta-MetaWindow .meta-content{position:relative;width:90%;height:90%;display:flex;flex-direction:column}.meta-MetaWindow .meta-wrap{width:100%;overflow:auto}.meta-MetaWindow .meta-wrap,.meta-MetaWindow .meta-wrap img{max-height:100%;max-width:100%}.meta-MetaWindow__text .meta-close{background:#fff}.meta-MetaWindow__text .meta-content{background:#fff;color:#000;padding:1rem 0 1rem 1rem}.meta-MetaWindow__text .meta-wrap{padding-right:1rem}.meta-MetaWindow__image .meta-wrap,.meta-MetaWindow__image .typography,.meta-MetaWindow__video .meta-wrap,.meta-MetaWindow__video .typography{display:flex;justify-content:center;align-items:center;flex-direction:column;max-height:100%;max-width:100%;min-height:100%}.meta-MetaWindow__embed:before,.meta-MetaWindow__video:before{content:"";display:block;position:relative;width:100%;padding-top:56.25%}.meta-MetaWindow__embed a[rel="nofollow noreferrer noopener"],.meta-MetaWindow__video a[rel="nofollow noreferrer noopener"]{color:#fff;font-size:1.2rem;font-weight:700}.meta-MetaWindow__embed a[rel="nofollow noreferrer noopener"]:before,.meta-MetaWindow__video a[rel="nofollow noreferrer noopener"]:before{content:"Unable to load. Please follow the provided link: ";display:block}.meta-MetaWindow__embed iframe,.meta-MetaWindow__video iframe{position:absolute;top:0;left:0;width:100%;height:100%} \ No newline at end of file +.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.meta-MetaWindow .meta-error,.meta-MetaWindow .meta-spinner,.meta-MetaWindow .meta-spinner_embed{display:none;align-items:center;justify-content:center;z-index:2;text-align:center}.meta-MetaWindow .meta-spinner,.meta-MetaWindow .meta-spinner_embed{font-size:2rem;color:#fff;font-weight:700;text-transform:uppercase;position:absolute;left:0;right:0;top:0;bottom:0}.meta-MetaWindow .meta-spinner_embed{display:flex}.meta-MetaWindow-overlay{background:rgba(96,125,139,.8);display:none;position:fixed;left:0;right:0;top:0;bottom:0;align-items:center;justify-content:center}.meta-MetaWindow-overlay__loading .meta-spinner,.meta-MetaWindow-overlay__open{display:flex}.meta-MetaWindow-overlay__error .meta-content{justify-content:center}.meta-MetaWindow-overlay__error .meta-error{display:flex}.meta-MetaWindow .meta-nav{font-size:2rem;color:#212121;text-shadow:#fff 0 0 .25em;border:0;background:none;z-index:2}.meta-MetaWindow .meta-nav:focus,.meta-MetaWindow .meta-nav:hover{color:#eceff1;background:#2196f3;text-shadow:none}.meta-MetaWindow .meta-nav-arrow{position:absolute;bottom:0;top:auto;display:flex;justify-content:center;align-items:center;font-size:2.5rem;padding:.25rem .5rem}@media (min-width:992px){.meta-MetaWindow .meta-nav-arrow{top:0;bottom:0}}.meta-MetaWindow .meta-nav-arrow__next{right:0}.meta-MetaWindow .meta-nav-arrow__prev{left:0}@media (min-width:992px){.meta-MetaWindow .meta-nav-arrow__next{right:-3rem}.meta-MetaWindow .meta-nav-arrow__prev{left:-3rem}}.meta-MetaWindow .meta-close{position:absolute;top:-3rem;right:0;width:1.25em}@media (min-width:992px){.meta-MetaWindow .meta-close{top:-3rem;right:-3rem}}.meta-MetaWindow .meta-content{position:relative;width:100%;height:80%;display:flex;flex-direction:column}@media (min-width:992px){.meta-MetaWindow .meta-content{width:90%;height:90%;width:calc(90% - 3rem);height:calc(90% - 3rem)}}.meta-MetaWindow .meta-wrap{width:100%;overflow:auto}.meta-MetaWindow .meta-wrap,.meta-MetaWindow .meta-wrap img{max-height:100%;max-width:100%}.meta-MetaWindow__text .meta-nav{background:#fff}.meta-MetaWindow__text .meta-content{background:#fff;color:#000;padding:1rem 0 1rem 1rem}.meta-MetaWindow__text .meta-wrap{padding-right:1rem}.meta-MetaWindow__image .meta-wrap,.meta-MetaWindow__image .typography,.meta-MetaWindow__video .meta-wrap,.meta-MetaWindow__video .typography{display:flex;justify-content:center;align-items:center;flex-direction:column;max-height:100%;max-width:100%;min-height:100%}.meta-MetaWindow__embed:before,.meta-MetaWindow__video:before{content:"";display:block;position:relative;width:100%;padding-top:56.25%}.meta-MetaWindow__embed a[rel="nofollow noreferrer noopener"],.meta-MetaWindow__video a[rel="nofollow noreferrer noopener"]{color:#fff;font-size:1.2rem;font-weight:700}.meta-MetaWindow__embed a[rel="nofollow noreferrer noopener"]:before,.meta-MetaWindow__video a[rel="nofollow noreferrer noopener"]:before{content:"Unable to load. Please follow the provided link: ";display:block}.meta-MetaWindow__embed iframe,.meta-MetaWindow__video iframe{position:absolute;top:0;left:0;width:100%;height:100%} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index ca993dc..4f51ba6 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,3 +1,3 @@ Meta-lightbox Demo

Meta-lightbox Demo

NODE_ENV: production

Loading data

Load an Image
Load JSON
Load Partial AJAX HTML
Not Found test

Embeds

Embed Youtube link
Embed Vimeo link
Embed SoundCloud link
Embed Instagram

Other

Use [data-toggle="lightbox"] attribute to attach lightbox action and [href] to specify URL.

Use [data-lightbox-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with next/prev arrows

Use [data-toggle="lightbox"] + [data-href] attribute to toggle lightbox on regular elements. Click me!

Note: You can add jquery-zoom plugin and lighbox will zoom photos on hover.

\ No newline at end of file + }

Meta-lightbox Demo

NODE_ENV: production

Loading data

Load an Image
Load JSON
Load Partial AJAX HTML
Not Found test

Embeds

Embed Youtube link
Embed Vimeo link
Embed SoundCloud link
Embed Instagram

Other

Use [data-toggle="lightbox"] attribute to attach lightbox action and [href] to specify URL.

Use [data-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with next/prev arrows

Use [data-toggle="lightbox"] + [data-href] attribute to toggle lightbox on regular elements. Click me!

\ No newline at end of file diff --git a/dist/js/app.js b/dist/js/app.js index 3c43c20..7ff43f8 100644 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -1 +1 @@ -!function(){var e={940:function(e,t,r){e.exports=r(412)},355:function(e,t,r){"use strict";var n=r(854),i=r(706),h=r(575),d=r(778),g=r(205),y=r(17),b=r(426),v=r(348);e.exports=function xhrAdapter(e){return new Promise((function dispatchXhrRequest(t,r){var w=e.data,_=e.headers;n.isFormData(w)&&delete _["Content-Type"];var x=new XMLHttpRequest;if(e.auth){var E=e.auth.username||"",S=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";_.Authorization="Basic "+btoa(E+":"+S)}var C=g(e.baseURL,e.url);if(x.open(e.method.toUpperCase(),d(C,e.params,e.paramsSerializer),!0),x.timeout=e.timeout,x.onreadystatechange=function handleLoad(){if(x&&4===x.readyState&&(0!==x.status||x.responseURL&&0===x.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in x?y(x.getAllResponseHeaders()):null,h={data:e.responseType&&"text"!==e.responseType?x.response:x.responseText,status:x.status,statusText:x.statusText,headers:n,config:e,request:x};i(t,r,h),x=null}},x.onabort=function handleAbort(){x&&(r(v("Request aborted",e,"ECONNABORTED",x)),x=null)},x.onerror=function handleError(){r(v("Network Error",e,null,x)),x=null},x.ontimeout=function handleTimeout(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(v(t,e,"ECONNABORTED",x)),x=null},n.isStandardBrowserEnv()){var j=(e.withCredentials||b(C))&&e.xsrfCookieName?h.read(e.xsrfCookieName):void 0;j&&(_[e.xsrfHeaderName]=j)}if("setRequestHeader"in x&&n.forEach(_,(function setRequestHeader(e,t){"undefined"===typeof w&&"content-type"===t.toLowerCase()?delete _[t]:x.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(x.withCredentials=!!e.withCredentials),e.responseType)try{x.responseType=e.responseType}catch(O){if("json"!==e.responseType)throw O}"function"===typeof e.onDownloadProgress&&x.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&x.upload&&x.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function onCanceled(e){x&&(x.abort(),r(e),x=null)})),w||(w=null),x.send(w)}))}},412:function(e,t,r){"use strict";var n=r(854),i=r(810),h=r(769),d=r(624);function createInstance(e){var t=new h(e),r=i(h.prototype.request,t);return n.extend(r,h.prototype,t),n.extend(r,t),r}var g=createInstance(r(339));g.Axios=h,g.create=function create(e){return createInstance(d(g.defaults,e))},g.Cancel=r(499),g.CancelToken=r(294),g.isCancel=r(949),g.all=function all(e){return Promise.all(e)},g.spread=r(656),g.isAxiosError=r(606),e.exports=g,e.exports.default=g},499:function(e){"use strict";function Cancel(e){this.message=e}Cancel.prototype.toString=function toString(){return"Cancel"+(this.message?": "+this.message:"")},Cancel.prototype.__CANCEL__=!0,e.exports=Cancel},294:function(e,t,r){"use strict";var n=r(499);function CancelToken(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function promiseExecutor(e){t=e}));var r=this;e((function cancel(e){r.reason||(r.reason=new n(e),t(r.reason))}))}CancelToken.prototype.throwIfRequested=function throwIfRequested(){if(this.reason)throw this.reason},CancelToken.source=function source(){var e;return{token:new CancelToken((function executor(t){e=t})),cancel:e}},e.exports=CancelToken},949:function(e){"use strict";e.exports=function isCancel(e){return!(!e||!e.__CANCEL__)}},769:function(e,t,r){"use strict";var n=r(854),i=r(778),h=r(637),d=r(736),g=r(624);function Axios(e){this.defaults=e,this.interceptors={request:new h,response:new h}}Axios.prototype.request=function request(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=g(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[d,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach((function unshiftRequestInterceptors(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function pushResponseInterceptors(e){t.push(e.fulfilled,e.rejected)}));t.length;)r=r.then(t.shift(),t.shift());return r},Axios.prototype.getUri=function getUri(e){return e=g(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function forEachMethodNoData(e){Axios.prototype[e]=function(t,r){return this.request(g(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function forEachMethodWithData(e){Axios.prototype[e]=function(t,r,n){return this.request(g(n||{},{method:e,url:t,data:r}))}})),e.exports=Axios},637:function(e,t,r){"use strict";var n=r(854);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},InterceptorManager.prototype.eject=function eject(e){this.handlers[e]&&(this.handlers[e]=null)},InterceptorManager.prototype.forEach=function forEach(e){n.forEach(this.handlers,(function forEachHandler(t){null!==t&&e(t)}))},e.exports=InterceptorManager},205:function(e,t,r){"use strict";var n=r(797),i=r(75);e.exports=function buildFullPath(e,t){return e&&!n(t)?i(e,t):t}},348:function(e,t,r){"use strict";var n=r(177);e.exports=function createError(e,t,r,i,h){var d=new Error(e);return n(d,t,r,i,h)}},736:function(e,t,r){"use strict";var n=r(854),i=r(92),h=r(949),d=r(339);function throwIfCancellationRequested(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function dispatchRequest(e){return throwIfCancellationRequested(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function cleanHeaderConfig(t){delete e.headers[t]})),(e.adapter||d.adapter)(e).then((function onAdapterResolution(t){return throwIfCancellationRequested(e),t.data=i(t.data,t.headers,e.transformResponse),t}),(function onAdapterRejection(t){return h(t)||(throwIfCancellationRequested(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},177:function(e){"use strict";e.exports=function enhanceError(e,t,r,n,i){return e.config=t,r&&(e.code=r),e.request=n,e.response=i,e.isAxiosError=!0,e.toJSON=function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},624:function(e,t,r){"use strict";var n=r(854);e.exports=function mergeConfig(e,t){t=t||{};var r={},i=["url","method","data"],h=["headers","auth","proxy","params"],d=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],g=["validateStatus"];function getMergedValue(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function mergeDeepProperties(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=getMergedValue(void 0,e[i])):r[i]=getMergedValue(e[i],t[i])}n.forEach(i,(function valueFromConfig2(e){n.isUndefined(t[e])||(r[e]=getMergedValue(void 0,t[e]))})),n.forEach(h,mergeDeepProperties),n.forEach(d,(function defaultToConfig2(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=getMergedValue(void 0,e[i])):r[i]=getMergedValue(void 0,t[i])})),n.forEach(g,(function merge(n){n in t?r[n]=getMergedValue(e[n],t[n]):n in e&&(r[n]=getMergedValue(void 0,e[n]))}));var y=i.concat(h).concat(d).concat(g),b=Object.keys(e).concat(Object.keys(t)).filter((function filterAxiosKeys(e){return-1===y.indexOf(e)}));return n.forEach(b,mergeDeepProperties),r}},706:function(e,t,r){"use strict";var n=r(348);e.exports=function settle(e,t,r){var i=r.config.validateStatus;r.status&&i&&!i(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},92:function(e,t,r){"use strict";var n=r(854);e.exports=function transformData(e,t,r){return n.forEach(r,(function transform(r){e=r(e,t)})),e}},339:function(e,t,r){"use strict";var n=r(854),i=r(852),h={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var d={adapter:function getDefaultAdapter(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(e=r(355)),e}(),transformRequest:[function transformRequest(e,t){return i(t,"Accept"),i(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(setContentTypeIfUnset(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(setContentTypeIfUnset(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function transformResponse(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],(function forEachMethodNoData(e){d.headers[e]={}})),n.forEach(["post","put","patch"],(function forEachMethodWithData(e){d.headers[e]=n.merge(h)})),e.exports=d},810:function(e){"use strict";e.exports=function bind(e,t){return function wrap(){for(var r=new Array(arguments.length),n=0;n=0)return;d[t]="set-cookie"===t?(d[t]?d[t]:[]).concat([r]):d[t]?d[t]+", "+r:r}})),d):d}},656:function(e){"use strict";e.exports=function spread(e){return function wrap(t){return e.apply(null,t)}}},854:function(e,t,r){"use strict";function _typeof(e){return(_typeof="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function _typeof(e){return typeof e}:function _typeof(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var n=r(810),i=Object.prototype.toString;function isArray(e){return"[object Array]"===i.call(e)}function isUndefined(e){return"undefined"===typeof e}function isObject(e){return null!==e&&"object"===_typeof(e)}function isPlainObject(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isFunction(e){return"[object Function]"===i.call(e)}function forEach(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==_typeof(e)&&(e=[e]),isArray(e))for(var r=0,n=e.length;r=0&&b>0){for(n=[],h=r.length;v>=0&&!g;)v==y?(n.push(v),y=r.indexOf(e,v+1)):1==n.length?g=[n.pop(),b]:((i=n.pop())=0?y:b;n.length&&(g=[h,d])}return g}e.exports=balanced,balanced.range=range},281:function(e,t,r){var n=r(524);e.exports=function expandTop(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return expand(function escapeBraces(e){return e.split("\\\\").join(i).split("\\{").join(h).split("\\}").join(d).split("\\,").join(g).split("\\.").join(y)}(e),!0).map(unescapeBraces)};var i="\0SLASH"+Math.random()+"\0",h="\0OPEN"+Math.random()+"\0",d="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",y="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function unescapeBraces(e){return e.split(i).join("\\").split(h).join("{").split(d).join("}").split(g).join(",").split(y).join(".")}function parseCommaParts(e){if(!e)return[""];var t=[],r=n("{","}",e);if(!r)return e.split(",");var i=r.pre,h=r.body,d=r.post,g=i.split(",");g[g.length-1]+="{"+h+"}";var y=parseCommaParts(d);return d.length&&(g[g.length-1]+=y.shift(),g.push.apply(g,y)),t.push.apply(t,g),t}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand(e,t){var r=[],i=n("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var h,g=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),y=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),b=g||y,v=i.body.indexOf(",")>=0;if(!b&&!v)return i.post.match(/,.*\}/)?expand(e=i.pre+"{"+i.body+d+i.post):[e];if(b)h=i.body.split(/\.\./);else if(1===(h=parseCommaParts(i.body)).length&&1===(h=expand(h[0],!1).map(embrace)).length)return(x=i.post.length?expand(i.post,!1):[""]).map((function(e){return i.pre+h[0]+e}));var w,_=i.pre,x=i.post.length?expand(i.post,!1):[""];if(b){var E=numeric(h[0]),S=numeric(h[1]),C=Math.max(h[0].length,h[1].length),j=3==h.length?Math.abs(numeric(h[2])):1,O=lte;S0){var P=new Array(k+1).join("0");T=R<0?"-"+P+T.slice(1):P+T}}w.push(T)}}else{w=[];for(var M=0;M65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,h="",v=!!r.nocase,x=!1,E=[],S=[],C=!1,j=-1,O=-1,A="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",R=this;function clearStateChar(){if(n){switch(n){case"*":h+=y,v=!0;break;case"?":h+=g,v=!0;break;default:h+="\\"+n}R.debug("clearStateChar %j %j",n,h),n=!1}}for(var T,k=0,P=e.length;k-1;B--){var z=S[B],D=h.slice(0,z.reStart),F=h.slice(z.reStart,z.reEnd-8),H=h.slice(z.reEnd-8,z.reEnd),V=h.slice(z.reEnd);H+=V;var W=D.split("(").length-1,G=V;for(k=0;k=0&&!(i=e[h]);h--);for(h=0;h>> no match, partial?",e,_,t,x),_!==g))}if("string"===typeof v?(b=n.nocase?w.toLowerCase()===v.toLowerCase():w===v,this.debug("string match",v,w,b)):(b=w.match(v),this.debug("pattern match",v,w,b)),!b)return!1}if(h===g&&d===y)return!0;if(h===g)return r;if(d===y)return h===g-1&&""===e[h];throw new Error("wtf?")}},668:function(e,t,r){var n,i,h,d;function _typeof(e){return(_typeof="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function _typeof(e){return typeof e}:function _typeof(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}d=function(e,t,r,n){"use strict";function o(e){return e&&"object"==_typeof(e)&&"default"in e?e:{default:e}}var i=o(t),h=o(r),d=o(n),g=function a(){return(g=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&i[i.length-1])||6!==h[0]&&2!==h[0])){d=0;continue}if(3===h[0]&&(!i||h[1]>i[0]&&h[1]e.length)&&(t=e.length);for(var r=0,n=new Array(t);r'),"image");break;case"application/json":case"application/ld+json":case"application/json; charset=UTF-8":var r=JSON.parse(t._abToString(e.data));t.setContent("".concat(r.Content),"text html json");break;case"text/html":case"application/xhtml+xml":case"text/plain":case"text/html; charset=UTF-8":case"application/xhtml+xml; charset=UTF-8":case"text/plain; charset=UTF-8":t.setContent(t._abToString(e.data),"text html pajax");break;default:console.warn("".concat(t.name,": Unknown response content-type!"))}})).catch((function(e){console.error(e);var r="";if(e.response)switch(e.response.status){case 404:r="Not Found.";break;case 500:r="Server issue, please try again latter.";break;default:r="Something went wrong."}else e.request?r="No response received":console.warn("Error",e.message);t.setState({error:r})})).then((function(){t.setState({loading:!1})}))})),_defineProperty(_assertThisInitialized(r),"_abToString",(function(e){return String.fromCharCode.apply(null,new Uint8Array(e))})),_defineProperty(_assertThisInitialized(r),"_imageEncode",(function(e){new Uint8Array(e);return btoa([].reduce.call(new Uint8Array(e),(function(e,t){return e+String.fromCharCode(t)}),""))})),_defineProperty(_assertThisInitialized(r),"setContent",(function(e,t){var n=_assertThisInitialized(r);console.log("".concat(n.name,": setContent"));var i=t||["html","text"];Array.isArray(i)||(i=t.split(" ")),n.setState({content:e,type:i})})),_defineProperty(_assertThisInitialized(r),"show",(function(){var e=_assertThisInitialized(r);console.log("".concat(e.name,": show")),e.setState({shown:!0})})),_defineProperty(_assertThisInitialized(r),"hide",(function(){var e=_assertThisInitialized(r);console.log("".concat(e.name,": hide")),e.setState({shown:!1})})),_defineProperty(_assertThisInitialized(r),"getHtml",(function(){return{__html:_assertThisInitialized(r).state.content}}));var n=_assertThisInitialized(r);return n.name=n.constructor.name,console.log("".concat(n.name,": init")),n.axios=g,document.querySelectorAll('[data-toggle="lightbox"]').forEach((function(e){e.addEventListener("click",(function(e){e.preventDefault();var t=e.currentTarget,r=t.getAttribute("href")||t.getAttribute("data-href");t.getAttribute("data-embed")?n.embed(r):n.load(r)}))})),r}return function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}(MetaWindow,[{key:"render",value:function render(){var e=this,t=e.name,r=e.state.embed?React.createElement("section",{className:"meta-wrap typography"},React.createElement(h(),{url:e.state.embed,providers:[].concat(_toConsumableArray(i.defaultProviders),[d]),LoadingFallbackElement:React.createElement("div",{className:"meta-spinner_embed"},"... Loading ...")})):React.createElement("section",{className:"meta-wrap typography",dangerouslySetInnerHTML:e.getHtml()}),n="meta-".concat(t," meta-").concat(t,"__").concat(e.state.type.join(" meta-".concat(t,"__"))),g="meta-".concat(t,"-overlay").concat(e.state.shown?" meta-".concat(t,"-overlay__open"):"").concat(e.state.loading?" meta-".concat(t,"-overlay__loading"):"").concat(e.state.error?" meta-".concat(t,"-overlay__error"):"");return React.createElement("div",{className:n},React.createElement("div",{className:g},React.createElement("article",{className:"meta-content"},React.createElement("button",{className:"meta-close fas fa fa-times a",onClick:e.hide},React.createElement("span",{className:"sr-only"},"Close")),React.createElement("div",{className:"meta-spinner"},"... Loading ..."),React.createElement("div",{className:"meta-error alert alert-danger"},e.state.error),r)))}}]),MetaWindow}(e.Component);n().render(t().createElement(y,null),document.getElementById("App"));n().render(t().createElement(y,null),document.getElementById("App"))}()}(); \ No newline at end of file +!function(){var e={940:function(e,t,r){e.exports=r(412)},355:function(e,t,r){"use strict";var n=r(854),i=r(706),h=r(575),d=r(778),g=r(205),y=r(17),b=r(426),v=r(348);e.exports=function xhrAdapter(e){return new Promise((function dispatchXhrRequest(t,r){var w=e.data,_=e.headers;n.isFormData(w)&&delete _["Content-Type"];var x=new XMLHttpRequest;if(e.auth){var E=e.auth.username||"",S=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";_.Authorization="Basic "+btoa(E+":"+S)}var C=g(e.baseURL,e.url);if(x.open(e.method.toUpperCase(),d(C,e.params,e.paramsSerializer),!0),x.timeout=e.timeout,x.onreadystatechange=function handleLoad(){if(x&&4===x.readyState&&(0!==x.status||x.responseURL&&0===x.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in x?y(x.getAllResponseHeaders()):null,h={data:e.responseType&&"text"!==e.responseType?x.response:x.responseText,status:x.status,statusText:x.statusText,headers:n,config:e,request:x};i(t,r,h),x=null}},x.onabort=function handleAbort(){x&&(r(v("Request aborted",e,"ECONNABORTED",x)),x=null)},x.onerror=function handleError(){r(v("Network Error",e,null,x)),x=null},x.ontimeout=function handleTimeout(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(v(t,e,"ECONNABORTED",x)),x=null},n.isStandardBrowserEnv()){var A=(e.withCredentials||b(C))&&e.xsrfCookieName?h.read(e.xsrfCookieName):void 0;A&&(_[e.xsrfHeaderName]=A)}if("setRequestHeader"in x&&n.forEach(_,(function setRequestHeader(e,t){"undefined"===typeof w&&"content-type"===t.toLowerCase()?delete _[t]:x.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(x.withCredentials=!!e.withCredentials),e.responseType)try{x.responseType=e.responseType}catch(R){if("json"!==e.responseType)throw R}"function"===typeof e.onDownloadProgress&&x.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&x.upload&&x.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function onCanceled(e){x&&(x.abort(),r(e),x=null)})),w||(w=null),x.send(w)}))}},412:function(e,t,r){"use strict";var n=r(854),i=r(810),h=r(769),d=r(624);function createInstance(e){var t=new h(e),r=i(h.prototype.request,t);return n.extend(r,h.prototype,t),n.extend(r,t),r}var g=createInstance(r(339));g.Axios=h,g.create=function create(e){return createInstance(d(g.defaults,e))},g.Cancel=r(499),g.CancelToken=r(294),g.isCancel=r(949),g.all=function all(e){return Promise.all(e)},g.spread=r(656),g.isAxiosError=r(606),e.exports=g,e.exports.default=g},499:function(e){"use strict";function Cancel(e){this.message=e}Cancel.prototype.toString=function toString(){return"Cancel"+(this.message?": "+this.message:"")},Cancel.prototype.__CANCEL__=!0,e.exports=Cancel},294:function(e,t,r){"use strict";var n=r(499);function CancelToken(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function promiseExecutor(e){t=e}));var r=this;e((function cancel(e){r.reason||(r.reason=new n(e),t(r.reason))}))}CancelToken.prototype.throwIfRequested=function throwIfRequested(){if(this.reason)throw this.reason},CancelToken.source=function source(){var e;return{token:new CancelToken((function executor(t){e=t})),cancel:e}},e.exports=CancelToken},949:function(e){"use strict";e.exports=function isCancel(e){return!(!e||!e.__CANCEL__)}},769:function(e,t,r){"use strict";var n=r(854),i=r(778),h=r(637),d=r(736),g=r(624);function Axios(e){this.defaults=e,this.interceptors={request:new h,response:new h}}Axios.prototype.request=function request(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=g(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[d,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach((function unshiftRequestInterceptors(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function pushResponseInterceptors(e){t.push(e.fulfilled,e.rejected)}));t.length;)r=r.then(t.shift(),t.shift());return r},Axios.prototype.getUri=function getUri(e){return e=g(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function forEachMethodNoData(e){Axios.prototype[e]=function(t,r){return this.request(g(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function forEachMethodWithData(e){Axios.prototype[e]=function(t,r,n){return this.request(g(n||{},{method:e,url:t,data:r}))}})),e.exports=Axios},637:function(e,t,r){"use strict";var n=r(854);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},InterceptorManager.prototype.eject=function eject(e){this.handlers[e]&&(this.handlers[e]=null)},InterceptorManager.prototype.forEach=function forEach(e){n.forEach(this.handlers,(function forEachHandler(t){null!==t&&e(t)}))},e.exports=InterceptorManager},205:function(e,t,r){"use strict";var n=r(797),i=r(75);e.exports=function buildFullPath(e,t){return e&&!n(t)?i(e,t):t}},348:function(e,t,r){"use strict";var n=r(177);e.exports=function createError(e,t,r,i,h){var d=new Error(e);return n(d,t,r,i,h)}},736:function(e,t,r){"use strict";var n=r(854),i=r(92),h=r(949),d=r(339);function throwIfCancellationRequested(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function dispatchRequest(e){return throwIfCancellationRequested(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function cleanHeaderConfig(t){delete e.headers[t]})),(e.adapter||d.adapter)(e).then((function onAdapterResolution(t){return throwIfCancellationRequested(e),t.data=i(t.data,t.headers,e.transformResponse),t}),(function onAdapterRejection(t){return h(t)||(throwIfCancellationRequested(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},177:function(e){"use strict";e.exports=function enhanceError(e,t,r,n,i){return e.config=t,r&&(e.code=r),e.request=n,e.response=i,e.isAxiosError=!0,e.toJSON=function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},624:function(e,t,r){"use strict";var n=r(854);e.exports=function mergeConfig(e,t){t=t||{};var r={},i=["url","method","data"],h=["headers","auth","proxy","params"],d=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],g=["validateStatus"];function getMergedValue(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function mergeDeepProperties(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=getMergedValue(void 0,e[i])):r[i]=getMergedValue(e[i],t[i])}n.forEach(i,(function valueFromConfig2(e){n.isUndefined(t[e])||(r[e]=getMergedValue(void 0,t[e]))})),n.forEach(h,mergeDeepProperties),n.forEach(d,(function defaultToConfig2(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=getMergedValue(void 0,e[i])):r[i]=getMergedValue(void 0,t[i])})),n.forEach(g,(function merge(n){n in t?r[n]=getMergedValue(e[n],t[n]):n in e&&(r[n]=getMergedValue(void 0,e[n]))}));var y=i.concat(h).concat(d).concat(g),b=Object.keys(e).concat(Object.keys(t)).filter((function filterAxiosKeys(e){return-1===y.indexOf(e)}));return n.forEach(b,mergeDeepProperties),r}},706:function(e,t,r){"use strict";var n=r(348);e.exports=function settle(e,t,r){var i=r.config.validateStatus;r.status&&i&&!i(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},92:function(e,t,r){"use strict";var n=r(854);e.exports=function transformData(e,t,r){return n.forEach(r,(function transform(r){e=r(e,t)})),e}},339:function(e,t,r){"use strict";var n=r(854),i=r(852),h={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var d={adapter:function getDefaultAdapter(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(e=r(355)),e}(),transformRequest:[function transformRequest(e,t){return i(t,"Accept"),i(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(setContentTypeIfUnset(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(setContentTypeIfUnset(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function transformResponse(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],(function forEachMethodNoData(e){d.headers[e]={}})),n.forEach(["post","put","patch"],(function forEachMethodWithData(e){d.headers[e]=n.merge(h)})),e.exports=d},810:function(e){"use strict";e.exports=function bind(e,t){return function wrap(){for(var r=new Array(arguments.length),n=0;n=0)return;d[t]="set-cookie"===t?(d[t]?d[t]:[]).concat([r]):d[t]?d[t]+", "+r:r}})),d):d}},656:function(e){"use strict";e.exports=function spread(e){return function wrap(t){return e.apply(null,t)}}},854:function(e,t,r){"use strict";function _typeof(e){return(_typeof="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function _typeof(e){return typeof e}:function _typeof(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var n=r(810),i=Object.prototype.toString;function isArray(e){return"[object Array]"===i.call(e)}function isUndefined(e){return"undefined"===typeof e}function isObject(e){return null!==e&&"object"===_typeof(e)}function isPlainObject(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isFunction(e){return"[object Function]"===i.call(e)}function forEach(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==_typeof(e)&&(e=[e]),isArray(e))for(var r=0,n=e.length;r=0&&b>0){for(n=[],h=r.length;v>=0&&!g;)v==y?(n.push(v),y=r.indexOf(e,v+1)):1==n.length?g=[n.pop(),b]:((i=n.pop())=0?y:b;n.length&&(g=[h,d])}return g}e.exports=balanced,balanced.range=range},281:function(e,t,r){var n=r(524);e.exports=function expandTop(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return expand(function escapeBraces(e){return e.split("\\\\").join(i).split("\\{").join(h).split("\\}").join(d).split("\\,").join(g).split("\\.").join(y)}(e),!0).map(unescapeBraces)};var i="\0SLASH"+Math.random()+"\0",h="\0OPEN"+Math.random()+"\0",d="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",y="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function unescapeBraces(e){return e.split(i).join("\\").split(h).join("{").split(d).join("}").split(g).join(",").split(y).join(".")}function parseCommaParts(e){if(!e)return[""];var t=[],r=n("{","}",e);if(!r)return e.split(",");var i=r.pre,h=r.body,d=r.post,g=i.split(",");g[g.length-1]+="{"+h+"}";var y=parseCommaParts(d);return d.length&&(g[g.length-1]+=y.shift(),g.push.apply(g,y)),t.push.apply(t,g),t}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand(e,t){var r=[],i=n("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var h,g=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),y=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),b=g||y,v=i.body.indexOf(",")>=0;if(!b&&!v)return i.post.match(/,.*\}/)?expand(e=i.pre+"{"+i.body+d+i.post):[e];if(b)h=i.body.split(/\.\./);else if(1===(h=parseCommaParts(i.body)).length&&1===(h=expand(h[0],!1).map(embrace)).length)return(x=i.post.length?expand(i.post,!1):[""]).map((function(e){return i.pre+h[0]+e}));var w,_=i.pre,x=i.post.length?expand(i.post,!1):[""];if(b){var E=numeric(h[0]),S=numeric(h[1]),C=Math.max(h[0].length,h[1].length),A=3==h.length?Math.abs(numeric(h[2])):1,R=lte;S0){var P=new Array(k+1).join("0");T=O<0?"-"+P+T.slice(1):P+T}}w.push(T)}}else{w=[];for(var I=0;I65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,h="",v=!!r.nocase,x=!1,E=[],S=[],C=!1,A=-1,R=-1,j="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",O=this;function clearStateChar(){if(n){switch(n){case"*":h+=y,v=!0;break;case"?":h+=g,v=!0;break;default:h+="\\"+n}O.debug("clearStateChar %j %j",n,h),n=!1}}for(var T,k=0,P=e.length;k-1;B--){var z=S[B],D=h.slice(0,z.reStart),F=h.slice(z.reStart,z.reEnd-8),H=h.slice(z.reEnd-8,z.reEnd),V=h.slice(z.reEnd);H+=V;var W=D.split("(").length-1,G=V;for(k=0;k=0&&!(i=e[h]);h--);for(h=0;h>> no match, partial?",e,_,t,x),_!==g))}if("string"===typeof v?(b=n.nocase?w.toLowerCase()===v.toLowerCase():w===v,this.debug("string match",v,w,b)):(b=w.match(v),this.debug("pattern match",v,w,b)),!b)return!1}if(h===g&&d===y)return!0;if(h===g)return r;if(d===y)return h===g-1&&""===e[h];throw new Error("wtf?")}},668:function(e,t,r){var n,i,h,d;function _typeof(e){return(_typeof="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function _typeof(e){return typeof e}:function _typeof(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}d=function(e,t,r,n){"use strict";function o(e){return e&&"object"==_typeof(e)&&"default"in e?e:{default:e}}var i=o(t),h=o(r),d=o(n),g=function a(){return(g=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&i[i.length-1])||6!==h[0]&&2!==h[0])){d=0;continue}if(3===h[0]&&(!i||h[1]>i[0]&&h[1]e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?n--:n=e.state.collections[t].length-1,e.state.collections[t][n].click()})),_defineProperty(_assertThisInitialized(r),"reset",(function(){_assertThisInitialized(r).setState({content:"",type:[],shown:!1,loading:!1,error:!1,embed:!1})})),_defineProperty(_assertThisInitialized(r),"embed",(function(e){var t=_assertThisInitialized(r);console.log("".concat(t.name,": embed")),t.reset(),t.setState({embed:e,loading:!1,type:["embed","video"]}),t.show()})),_defineProperty(_assertThisInitialized(r),"load",(function(e){var t=_assertThisInitialized(r),n=t.axios;t.reset(),t.setState({loading:!0}),t.show(),n.get(e,{responseType:"arraybuffer"}).then((function(e){switch(console.log("".concat(t.name,": response content-type: ").concat(e.headers["content-type"])),e.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":case"image/jpg":case"image/svg":t.setContent(''),"image");break;case"application/json":case"application/ld+json":case"application/json; charset=UTF-8":var r=JSON.parse(t._abToString(e.data));t.setContent("".concat(r.Content),"text html json");break;case"text/html":case"application/xhtml+xml":case"text/plain":case"text/html; charset=UTF-8":case"application/xhtml+xml; charset=UTF-8":case"text/plain; charset=UTF-8":t.setContent(t._abToString(e.data),"text html pajax");break;default:console.warn("".concat(t.name,": Unknown response content-type!"))}})).catch((function(e){console.error(e);var r="";if(e.response)switch(e.response.status){case 404:r="Not Found.";break;case 500:r="Server issue, please try again latter.";break;default:r="Something went wrong."}else e.request?r="No response received":console.warn("Error",e.message);t.setState({error:r})})).then((function(){t.setState({loading:!1})}))})),_defineProperty(_assertThisInitialized(r),"_abToString",(function(e){return String.fromCharCode.apply(null,new Uint8Array(e))})),_defineProperty(_assertThisInitialized(r),"_imageEncode",(function(e){new Uint8Array(e);return btoa([].reduce.call(new Uint8Array(e),(function(e,t){return e+String.fromCharCode(t)}),""))})),_defineProperty(_assertThisInitialized(r),"setContent",(function(e,t){var n=_assertThisInitialized(r);console.log("".concat(n.name,": setContent"));var i=t||["html","text"];Array.isArray(i)||(i=t.split(" ")),n.setState({content:e,type:i})})),_defineProperty(_assertThisInitialized(r),"show",(function(){var e=_assertThisInitialized(r);console.log("".concat(e.name,": show")),e.setState({shown:!0})})),_defineProperty(_assertThisInitialized(r),"hide",(function(){var e=_assertThisInitialized(r);console.log("".concat(e.name,": hide")),e.setState({shown:!1})})),_defineProperty(_assertThisInitialized(r),"getHtml",(function(){return{__html:_assertThisInitialized(r).state.content}}));var n=_assertThisInitialized(r);return n.name=n.constructor.name,console.log("".concat(n.name,": init")),n.axios=g,document.querySelectorAll('[data-toggle="lightbox"]').forEach((function(e){var t=e.getAttribute("data-gallery");t&&(n.state.collections[t]=[],document.querySelectorAll('[data-toggle="lightbox"][data-gallery="'.concat(t,'"]')).forEach((function(e){n.state.collections[t].push(e)}))),e.addEventListener("click",(function(e){e.preventDefault();var t=e.currentTarget,r=t.getAttribute("href")||t.getAttribute("data-href"),i=t.getAttribute("data-embed");n.state.current=t,i?n.embed(r):n.load(r)}))})),r}return function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}(MetaWindow,[{key:"render",value:function render(){var e=this,t=e.name,r=null,n=e.state.current;if(n){var g=n.getAttribute("data-gallery");g&&e.state.collections[g].length>1&&(r=React.createElement("nav",{className:"meta-navs"},React.createElement("button",{className:"meta-nav meta-nav-arrow meta-nav-arrow__prev a",onClick:e.prev},React.createElement("i",{className:"fa fas fa-chevron-left"}),React.createElement("span",{className:"sr-only"},"Previous")),React.createElement("button",{className:"meta-nav meta-nav-arrow meta-nav-arrow__next a",onClick:e.next},React.createElement("i",{className:"fa fas fa-chevron-right"}),React.createElement("span",{className:"sr-only"},"Next"))))}var y=e.state.embed?React.createElement("section",{className:"meta-wrap typography"},React.createElement(h(),{url:e.state.embed,providers:[].concat(_toConsumableArray(i.defaultProviders),[d]),LoadingFallbackElement:React.createElement("div",{className:"meta-spinner_embed"},"... Loading ...")})):React.createElement("section",{className:"meta-wrap typography",dangerouslySetInnerHTML:e.getHtml()}),b="meta-".concat(t," meta-").concat(t,"__").concat(e.state.type.join(" meta-".concat(t,"__"))),v="meta-".concat(t,"-overlay").concat(e.state.shown?" meta-".concat(t,"-overlay__open"):"").concat(e.state.loading?" meta-".concat(t,"-overlay__loading"):"").concat(e.state.error?" meta-".concat(t,"-overlay__error"):"");return React.createElement("div",{className:b},React.createElement("div",{className:v},React.createElement("article",{className:"meta-content"},r,React.createElement("button",{className:"meta-nav meta-close a",onClick:e.hide},React.createElement("i",{className:"fa fas fa-times"}),React.createElement("span",{className:"sr-only"},"Close")),React.createElement("div",{className:"meta-spinner"},"... Loading ..."),React.createElement("div",{className:"meta-error alert alert-danger"},e.state.error),y)))}}]),MetaWindow}(e.Component);n().render(t().createElement(y,null),document.getElementById("App"));n().render(t().createElement(y,null),document.getElementById("App"))}()}(); \ No newline at end of file diff --git a/dist/report.html b/dist/report.html index 0a2c560..76bb16b 100644 --- a/dist/report.html +++ b/dist/report.html @@ -3,7 +3,7 @@ - @a2nt/meta-lightbox-react [31 Jan 2021 at 04:58] + @a2nt/meta-lightbox-react [31 Jan 2021 at 07:04] diff --git a/src/html/meta-lightbox.html b/src/html/meta-lightbox.html index 93d5d09..c9898f6 100755 --- a/src/html/meta-lightbox.html +++ b/src/html/meta-lightbox.html @@ -11,7 +11,7 @@ Load an Image @@ -63,11 +63,7 @@

Other

- + Use [data-toggle="lightbox"] attribute to attach lightbox action and [href] to specify URL. @@ -76,17 +72,17 @@ - Use [data-lightbox-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with + Use [data-gallery="YOUR_GALLERY_NAME"] to group ligthboxes with next/prev arrows

Use [data-toggle="lightbox"] + [data-href] attribute to toggle lightbox on diff --git a/src/index.html b/src/index.html index b82a302..5da2c2c 100755 --- a/src/index.html +++ b/src/index.html @@ -20,10 +20,6 @@

Meta-lightbox Demo

NODE_ENV: <%= NODE_ENV %> <%= require('html-loader!./html/meta-lightbox.html') %> -

- Note: You can add jquery-zoom plugin and lighbox will - zoom photos on hover. -

diff --git a/src/js/_window.jsx b/src/js/_window.jsx index 46aec05..02eb683 100755 --- a/src/js/_window.jsx +++ b/src/js/_window.jsx @@ -6,7 +6,7 @@ import styles from '../scss/_window.scss'; import Embed, { defaultProviders } from 'react-tiny-oembed'; -const TelegramProvider = { +const InstagramProvider = { provider_name: 'Instagram', provider_url: 'https://instagram.com', endpoints: [ @@ -75,6 +75,8 @@ class MetaWindow extends Component { loading: false, error: false, embed: false, + collections: [], + current: null, }; constructor(props) { @@ -86,14 +88,30 @@ class MetaWindow extends Component { ui.axios = axios; - document.querySelectorAll('[data-toggle="lightbox"]').forEach((i) => { - i.addEventListener('click', (e) => { + document.querySelectorAll('[data-toggle="lightbox"]').forEach((el) => { + // collections + const gallery = el.getAttribute('data-gallery'); + if (gallery) { + ui.state.collections[gallery] = []; + document + .querySelectorAll( + `[data-toggle="lightbox"][data-gallery="${gallery}"]`, + ) + .forEach((el) => { + ui.state.collections[gallery].push(el); + }); + } + + // click handler + el.addEventListener('click', (e) => { e.preventDefault(); + const el = e.currentTarget; const link = el.getAttribute('href') || el.getAttribute('data-href'); const embed = el.getAttribute('data-embed'); + ui.state.current = el; if (embed) { ui.embed(link); @@ -104,8 +122,47 @@ class MetaWindow extends Component { }); } + _currIndex = () => { + const ui = this; + const el = ui.state.current; + const gallery = el.getAttribute('data-gallery'); + + return ui.state.collections[gallery].indexOf(el); + }; + + next = () => { + const ui = this; + const el = ui.state.current; + const gallery = el.getAttribute('data-gallery'); + + let i = ui._currIndex(); + if (i < ui.state.collections[gallery].length - 1) { + i++; + } else { + i = 0; + } + + ui.state.collections[gallery][i].click(); + }; + + prev = () => { + const ui = this; + const el = ui.state.current; + const gallery = el.getAttribute('data-gallery'); + + let i = ui._currIndex(); + if (i > 0) { + i--; + } else { + i = ui.state.collections[gallery].length - 1; + } + + ui.state.collections[gallery][i].click(); + }; + reset = () => { const ui = this; + ui.setState({ content: '', type: [], @@ -237,6 +294,7 @@ class MetaWindow extends Component { '', ), ); + return b64encoded; }; @@ -275,11 +333,37 @@ class MetaWindow extends Component { const ui = this; const name = ui.name; + let navs = null; + const el = ui.state.current; + if (el) { + const gallery = el.getAttribute('data-gallery'); + if (gallery && ui.state.collections[gallery].length > 1) { + navs = ( + + ); + } + } + const content = ui.state.embed ? (
... Loading ... @@ -306,10 +390,12 @@ class MetaWindow extends Component {
+ {navs} diff --git a/src/js/app.js b/src/js/app.js index 0b9bb63..6edefa0 100755 --- a/src/js/app.js +++ b/src/js/app.js @@ -4,9 +4,6 @@ * */ -/*import '../scss/app.scss'; -import './meta-lightbox';*/ - import React from 'react'; import ReactDOM from 'react-dom'; import MetaWindow from './_window.jsx'; diff --git a/src/js/meta-lightbox.js b/src/js/meta-lightbox.js deleted file mode 100755 index 23d17cd..0000000 --- a/src/js/meta-lightbox.js +++ /dev/null @@ -1,686 +0,0 @@ -/* - * MetaLightbox - * https://tony.twma.pro - * - */ - -// optional: -//=require ../../bower_components/jquery-zoom/jquery.zoom.js - -'use strict'; - -import $ from 'jquery'; - -import Events from './_events'; - -const MetaLightboxUI = (($) => { - const W = window; - const $W = $(W); - const D = document; - const $Body = $('body'); - - const NAME = 'MetaLightboxUI'; - const NETWORK_ERROR = - '
Connection failure.
'; - - class MetaLightboxUI { - static init() { - console.log(`${NAME}: init ...`); - - const ui = this; - ui.isMSIE = /*@cc_on!@*/ 0; - try { - ui.isHidpi = ui.is_hdpi(); - } catch (e) { - console.log(`${NAME}: catch`); - } - - $(`.js${NAME},[data-toggle="lightbox"],[data-lightbox-gallery]`).on( - 'click', - (e) => { - e.preventDefault(); - e.stopPropagation(); - const $link = $(e.currentTarget); - - ui.show($link); - }, - ); - - $(`.js${NAME}-close-inline`).on('click', (e) => { - const $el = $(e.currentTarget); - $el.parents('.meta-lightbox-overlay').removeClass('meta-lightbox-open'); - }); - } - - static is_hdpi() { - console.log(`${NAME}: isHidpi`); - const mediaQuery = - '(-webkit-min-device-pixel-ratio: 1.5),\ - (min--moz-device-pixel-ratio: 1.5),\ - (-o-min-device-pixel-ratio: 3/2),\ - (min-resolution: 1.5dppx)'; - if (W.devicePixelRatio > 1) return true; - return W.matchMedia && W.matchMedia(mediaQuery).matches; - } - - static show($link) { - console.log(`${NAME}: show`); - const ui = this; - - const $lightbox = ui.constructLightbox(); - if (!$lightbox) return; - - const $content = ui.$content; - if (!$content) return; - - $Body.addClass(`meta-lightbox-body-effect-fade`); - - // Add content - ui.process($content, $link); - - // Nav - if ($link.data('lightbox-gallery')) { - const $galleryItems = $( - `[data-lightbox-gallery="${$link.data('lightbox-gallery')}"]`, - ); - - if ($galleryItems.length === 1) { - $('.meta-lightbox-nav').hide(); - } else { - $('.meta-lightbox-nav').show(); - } - - // Prev - $('.meta-lightbox-prev') - .off('click') - .on('click', (e) => { - e.preventDefault(); - const index = $galleryItems.index($link); - let $currentLink = $galleryItems.eq(index - 1); - if (!$currentLink.length) $currentLink = $galleryItems.last(); - - //ui.hide(); - setTimeout(() => { - ui.show($currentLink); - }, 10); - }); - - // Next - $('.meta-lightbox-next') - .off('click') - .on('click', (e) => { - e.preventDefault(); - const index = $galleryItems.index($link); - let $currentLink = $galleryItems.eq(index + 1); - if (!$currentLink.length) $currentLink = $galleryItems.first(); - - //ui.hide(); - setTimeout(() => { - ui.show($currentLink); - }, 10); - }); - } - - setTimeout(() => { - ui.$overlay.addClass('meta-lightbox-open'); - }, 1); // For CSS transitions - } - - static constructLightbox() { - console.log(`${NAME}: constructLightbox`); - const ui = this; - - const overlay = $('
', { - class: - 'meta-lightbox-overlay meta-lightbox-theme-default meta-lightbox-effect-fade', - }); - const wrap = $('
', { - class: 'meta-lightbox-wrap', - }); - const content = $('
', { - class: 'meta-lightbox-content', - }); - const nav = $( - ' Previous Next', - ); - const close = $( - 'Close', - ); - const title = $('
', { - class: 'meta-lightbox-title-wrap', - }); - - if (ui.$overlay) return ui.$overlay; - - if (ui.isMSIE) overlay.addClass('meta-lightbox-ie'); - - wrap.append(content); - wrap.append(title); - overlay.append(wrap); - overlay.append(nav); - overlay.append(close); - $Body.append(overlay); - - overlay.on('click', (e) => { - e.preventDefault(); - ui.hide(); - }); - - close.on('click', (e) => { - e.preventDefault(); - ui.hide(); - }); - - ui.$overlay = overlay; - ui.$content = content; - ui.$title = title; - - return ui.$overlay; - } - - static setTitle(str) { - const ui = this; - - ui.$title.html(str); - } - - static process($content, $link) { - console.log(`${NAME}: process`); - const ui = this; - - const href = - $link.attr('href') && $link.attr('href').length - ? $link.attr('href') - : $link.data('href'); - - // add custom link specific class - ui.$content.attr('class', 'meta-lightbox-content'); - ui.$content.addClass($link.data('lightbox-class')); - - if (!href.length) { - console.log($link); - console.error(`${NAME}: href(attr/data) is missing`); - } - - const $pageSpinner = $('#PageLoading .loading-spinner'); - const loadingContent = $pageSpinner.length ? $pageSpinner.clone() : ''; - ui.$content.append(loadingContent).addClass('meta-lightbox-loading'); - - // Image - if ( - href.match(/\.(jpeg|jpg|gif|png|svg)$/i) || - $link.data('force') === 'image' - ) { - $.ajax({ - url: href, - success: () => { - const img = $('', { src: href }); - const wrap = $('
'); - const imgwrapper = $( - '', - ); - - imgwrapper.append(img); - wrap.append(imgwrapper); - - // Vertically center images - wrap.css({ - 'line-height': `${$content.height()}px`, - height: `${$content.height()}px`, // For Firefox - }); - - $W.resize(() => { - wrap.css({ - 'line-height': `${$content.height()}px`, - height: `${$content.height()}px`, // For Firefox - }); - }); - - if (typeof imgwrapper['zoom'] !== 'undefined') { - imgwrapper.zoom(); - } else { - imgwrapper.addClass('no-zoom'); - } - - ui.$content.html(wrap); - ui.contentLoaded(); - }, - error: (jqXHR, status) => { - const wrap = $(NETWORK_ERROR); - - ui.$content.html(wrap); - ui.contentLoaded(); - }, - }); - - // Set the title - const title = $link.data('title') - ? $link.data('title') - : $link.attr('title'); - ui.setTitle(title); - - // google analytics - if (typeof ga === 'function') { - ga('send', 'event', 'meta', 'Image Click', href); - } - } - // Video (Youtube/Vimeo) - else if ( - href.match( - /(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/, - ) || - $link.data('force') === 'youtube' || - $link.data('force') === 'vimeo' - ) { - const video = href.match( - /(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/, - ); - let classTerm = 'meta-lightbox-video'; - let src; - - if (video[1] == 'youtube') { - src = `https://www.youtube.com/embed/${video[4]}`; - classTerm = `${classTerm} meta-lightbox-youtube`; - } - if (video[1] == 'youtu') { - src = `https://www.youtube.com/embed/${video[3]}`; - classTerm = `${classTerm} meta-lightbox-youtube`; - } - if (video[1] == 'youtube-nocookie') { - src = `https://www.youtube-nocookie.com/embed/${video[4]}`; - classTerm = `${classTerm} meta-lightbox-youtube`; - } - if (video[1] == 'vimeo') { - src = `https://player.vimeo.com/video/${video[3]}`; - classTerm = `${classTerm} meta-lightbox-vimeo`; - } - - if (!src) { - console.warn(`${NAME}: Video loading bad URL`); - return false; - } - - const $iframe = ui.loadIframe(src, classTerm); - if (!$iframe) { - $link.addClass('meta-offline'); - return false; - } - $link.removeClass('meta-offline'); - - // Set the title - const title = $link.data('title') - ? $link.data('title') - : $link.attr('title'); - ui.setTitle(title); - - // google analytics - if (typeof ga === 'function') { - ga('send', 'event', 'meta', 'Video Click', video); - } - } - // Inline HTML - else if ( - href.substring(0, 1) == '#' || - $link.data('force') === 'inline' - ) { - if ($(href).length) { - wrap = $('
'); - wrap.append($(href).clone().show()); - - // Vertically center html - if (wrap.outerHeight() < ui.$content.height()) { - wrap.css({ - position: 'relative', - top: '50%', - 'margin-top': `${-(wrap.outerHeight() / 2)}px`, - }); - } - $W.resize(() => { - if (wrap.outerHeight() < ui.$content.height()) { - wrap.css({ - position: 'relative', - top: '50%', - 'margin-top': `${-(wrap.outerHeight() / 2)}px`, - }); - } - }); - - ui.$content.html(wrap); - ui.contentLoaded(); - } else { - wrap = $(NETWORK_ERROR); - ui.$content.html(wrap); - ui.contentLoaded(); - } - - $('.meta-lightbox-title-wrap').html(''); - - // google analytics - if (typeof ga === 'function') { - ga('send', 'event', 'meta', 'inline HTML click', href); - } - } - // AJAX/iFrame (default) - else { - if ($link.data('force-iframe') || $link.data('force') === 'iframe') { - console.log(`${NAME}: IFrame forced`); - - const $iframe = ui.loadIframe(href, 'meta-lightbox-iframe-content'); - if (!$iframe) { - $link.addClass('meta-offline'); - return false; - } - - $link.removeClass('meta-offline'); - return true; - } - - console.log(`${NAME}: loading AJAX`); - $.ajax({ - sync: false, - async: true, - url: href, - dataType: 'html', - method: 'GET', - cache: false, - statusCode: { - 404: function () { - console.log(`${NAME}: page not found`); - W.location.href = url; - }, - 302: function () { - console.log(`${NAME}: redirect 302`); - W.location.href = url; - }, - }, - error: function (jqXHR, status) { - console.log(`${NAME}: AJAX request failure.${jqXHR.statusText}`); - - var wrap = $(NETWORK_ERROR); - ui.$content.html(wrap); - ui.contentLoaded(); - - // google analytics - if (typeof ga === 'function') { - ga('send', 'event', 'error', 'AJAX ERROR', jqXHR.statusText); - } - }, - success: function (data, status, jqXHR) { - console.log(`${NAME}: AJAX success`); - - try { - const dataJson = $.parseJSON(data); - if (typeof dataJson === 'object') { - console.log(`${NAME}: AJAX JSON`); - // Replace regions - if ( - typeof dataJson['regions'] === 'object' && - typeof dataJson['regions']['LayoutAjax'] !== 'undefinded' - ) { - var wrap = $('
'); - wrap.html(dataJson['regions']['LayoutAjax']); - ui.$content.html(wrap); - ui.contentLoaded(); - } - - // trigger events - /*if (typeof (data['events']) === 'object') { - for (var eventName in data.events) { - $(D).trigger(eventName, [data['events'][eventName]]); - } - }*/ - - var title = jqXHR.getResponseHeader('X-Title'), - link = jqXHR.getResponseHeader('X-Link'); - - if ( - title && - title.length && - link && - link.length && - link !== W.location.href && - link.substring(0, link.indexOf('#')) !== - W.location.href.replace($('base').attr('href'), '/') - ) { - $('.meta-lightbox-ajax').data('curr-title', D.title); - $('.meta-lightbox-ajax').data('curr-link', W.location.href); - - if (typeof W.localStorage !== 'undefined' && link !== '/') { - W.localStorage.setItem('current-page', link); - } - - if ( - D.URL !== link && - D.URL !== $('base').attr('href') + link && - D.URL !== `${$('base').attr('href')}/${link}` - ) { - W.history.pushState( - { - title, - page: link, - ajax: 'true', - }, - title, - link, - ); - } - - $('.meta-lightbox-title-wrap').html(''); - - // google analytics - if (typeof ga === 'function') { - ga('set', { - page: link.replace($('base').attr('href'), ''), - title, - }); - ga('send', 'pageview'); - } - } - } - } catch (e) { - console.log(`${NAME}: AJAX HTML`); - const $wrap = $('
'); - $wrap.append(data); - ui.$content.html($wrap); - ui.contentLoaded(); - } - - // Vertically center html - /*if (wrap.outerHeight() < ui.$content.height()) { - wrap.css({ - position: 'relative', - top: '50%', - 'margin-top': `${-(wrap.outerHeight() / 2)}px`, - }); - } - $W.resize(() => { - if (wrap.outerHeight() < ui.$content.height()) { - wrap.css({ - position: 'relative', - top: '50%', - 'margin-top': `${-(wrap.outerHeight() / 2)}px`, - }); - } - });*/ - - /*setTimeout(() => { - $W.resize(); - - if (typeof W.imagesLoaded === 'function') { - W.imagesLoaded().then(() => { - $W.resize(); - }); - } - }, 500);*/ - - ui.contentLoaded(); - }, - }); - } - } - - static loadIframe(href, classTerm) { - const ui = this; - - const $iframe = $('