mirror of
https://github.com/a2nt/meta-lightbox.git
synced 2024-10-22 17:05:53 +02:00
IMPR: standard linting
This commit is contained in:
parent
9aca2b359c
commit
745ad254a0
2
dist/js/app.js
vendored
2
dist/js/app.js
vendored
@ -1 +1 @@
|
||||
!function(){"use strict";var e={826:function(e){e.exports=function makeYoutubeEmbed(e){if("string"===typeof e){var t=function getId(e){var t=e.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);if(t&&11==t[2].length)return t[2]}(e);return t?"//www.youtube.com/embed/"+t:void 0}}}},t={};function __webpack_require__(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,__webpack_require__),r.exports}!function(){var e="ajax-load",t="load-ready";function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function _unsupportedIterableToArray(e,t){if(!e)return;if("string"===typeof e)return _arrayLikeToArray(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(e,t)}(e)||function _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.")}()}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _defineProperty(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var a=window,n=function(){function MetaWindow(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{shown:!1},n=arguments.length>1?arguments[1]:void 0;_classCallCheck(this,MetaWindow),_defineProperty(this,"state",{content:"",type:["empty"],shown:!1,loading:!1,error:!1,embed:!1,collections:[],current:null,target:null,extraClass:null}),_defineProperty(this,"show",(function(){var t=e;console.log("".concat(t.name,": show")),t.setState({shown:!0}),a.dispatchEvent(new Event("{ui.name}.show"))})),_defineProperty(this,"hide",(function(){var t=e;console.log("".concat(t.name,": hide")),t.setState({shown:!1}),a.dispatchEvent(new Event("{ui.name}.hide"))})),_defineProperty(this,"next",(function(){var t=e,n=t.state.current.getAttribute("data-gallery"),r=t._currIndex();r<t.state.collections[n].length-1?r++:r=0,t.state.collections[n][r].click(),console.log("".concat(t.name,": next")),a.dispatchEvent(new Event("{ui.name}.next"))})),_defineProperty(this,"prev",(function(){var t=e,n=t.state.current.getAttribute("data-gallery"),r=t._currIndex();r>0?r--:r=t.state.collections[n].length-1,t.state.collections[n][r].click(),console.log("".concat(t.name,": prev")),a.dispatchEvent(new Event("{ui.name}.prev"))})),_defineProperty(this,"reset",(function(){e.setState({content:"",type:["empty"],shown:!1,loading:!1,error:!1,embed:!1})})),_defineProperty(this,"load",(function(t){var n=e;n.reset(),n.setState({loading:!0}),n.show(),fetch(t).then((function(e){var r=e.headers.get("content-type");console.log(e),console.log("".concat(n.name,": response content-type: ").concat(r));switch(r){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":e.arrayBuffer().then((function(e){n.setContent('<img src="data:'.concat(r,";base64,").concat(n._imageEncode(e),'" />'),"meta-".concat(n.name,"--image"))}));break;case"application/json":case"application/ld+json":case"application/json; charset=UTF-8":n.setContent("".concat((!1).Content),["meta-".concat(n.name,"--text"),"meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--json")]);break;case"video/mp4":n.setContent('<video controls autoplay><source src="'.concat(t,'" type="video/mp4">Your browser does not support the video tag.</video>'),["meta-".concat(n.name,"--image"),"meta-".concat(n.name,"--video")]);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":n.setContent(e.data,["meta-".concat(n.name,"--text"),"meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--pajax")]);break;default:console.warn("".concat(n.name,": Unknown response content-type!"))}a.dispatchEvent(new Event("{ui.name}.loaded"))})).catch((function(e){console.error(e);var t="";if(e.response)switch(e.response.status){case 404:t="Not Found.";break;case 500:t="Server issue, please try again latter.";break;default:t="Something went wrong."}else e.request?t="No response received":console.warn("Error",e.message);n.setState({error:t}),a.dispatchEvent(new Event("{ui.name}.error"))})).then((function(){n.setState({loading:!1}),setTimeout((function(){n.state.current.classList.remove("loading")}),1e3)}))})),_defineProperty(this,"_currIndex",(function(){var t=e,a=t.state.current,n=a.getAttribute("data-gallery");return t.state.collections[n].indexOf(a)})),_defineProperty(this,"embed",(function(t){var a=e;console.log("".concat(a.name,": embed")),a.reset(),a.setState({embed:t,loading:!1,type:["meta-".concat(a.name,"--embed"),"meta-".concat(a.name,"--video")]}),a.show()})),_defineProperty(this,"setCaption",(function(t){var a=e;console.log("".concat(a.name,": setCaption")),a.state.caption=t})),_defineProperty(this,"addExtraClass",(function(t){var a=e;t&&t.length&&(console.log("".concat(a.name,": addExtraClass(").concat(t,")")),a.state.extraClass=t)})),_defineProperty(this,"getCaption",(function(){return e.state.caption})),_defineProperty(this,"_imageEncode",(function(e){var t="";return[].slice.call(new Uint8Array(e)).forEach((function(e){return t+=String.fromCharCode(e)})),window.btoa(t)})),_defineProperty(this,"setContent",(function(t,a){var n=e;console.log("".concat(n.name,": setContent"));var r=a||["meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--text")];Array.isArray(r)||(r=a.split(" ")),n.setState({content:t,type:r})})),_defineProperty(this,"getHtml",(function(){var t=e;if(t.state.embed){var a=__webpack_require__(826)(t.state.embed);t.state.content='<iframe width="600" height="380" src="'.concat(a,'" frameborder="0"></iframe>')}return t.state.content}));var r=this;switch(r.name=r.constructor.name,console.log("".concat(r.name,": init")),r.setState(t),n){case"show":case"hide":r.hide()}a.dispatchEvent(new Event("{ui.name}.init"))}return function _createClass(e,t,a){return t&&_defineProperties(e.prototype,t),a&&_defineProperties(e,a),Object.defineProperty(e,"prototype",{writable:!1}),e}(MetaWindow,[{key:"cleanLinks",value:function cleanLinks(){document.querySelectorAll('[data-toggle="lightbox"]').forEach((function(e){e.classList.remove("loading")}))}},{key:"collectGaleries",value:function collectGaleries(e){var t=this;e&&(t.state.collections[e]=[],document.querySelectorAll('[data-toggle="lightbox"][data-gallery="'.concat(e,'"]')).forEach((function(a){t.state.collections[e].push(a)})))}},{key:"toggle",value:function toggle(e){var t=this;t.cleanLinks();var a=e.getAttribute("href")||e.getAttribute("data-href"),n=e.getAttribute("data-embed");e.classList.add("loading"),t.state.current=e;var r=e.getAttribute("data-title");r&&t.setCaption(r),n?t.embed(a):t.load(a),t.addExtraClass(e.getAttribute("data-lightbox-class"))}},{key:"init",value:function init(){var e=this;console.log("MetaWindow: [links] init"),document.querySelectorAll('[data-toggle="lightbox"],[data-gallery]').forEach((function(t){var a=t.getAttribute("data-gallery");e.collectGaleries(a),t.addEventListener("click",(function(t){t.preventDefault(),console.log("MetaWindow: [link] click");var a=t.currentTarget;e.toggle(a)}))}))}},{key:"setState",value:function setState(e){var t=this;t.state=Object.assign({},t.state,e),t.render()}},{key:"render",value:function render(){var e,t=this,a=t.name,n=t.state.current;t.state.target.innerHTML="";var r=document.createElement("div");r.classList.add("meta-".concat(a)),(e=r.classList).add.apply(e,_toConsumableArray(t.state.type)),t.state.target.append(r);var o=document.createElement("div");o.classList.add("meta-".concat(a,"-overlay")),t.state.shown&&o.classList.add("meta-".concat(a,"-overlay--open")),t.state.loading&&o.classList.add("meta-".concat(a,"-overlay--loading")),t.state.error&&o.classList.add("meta-".concat(a,"-overlay--error")),r.append(o);var i=document.createElement("div");i.classList.add("meta-content"),o.append(i);var c=document.createElement("button");if(c.classList.add("meta-nav","meta-close","a"),c.innerHTML='<i class="icon fa fas fa-times"></i> <span class="visually-hidden">Close</span>',c.addEventListener("click",(function(e){e.preventDefault(),t.hide()})),i.append(c),n){var s=n.getAttribute("data-gallery");if(s&&t.state.collections[s].length>1){var l=document.createElement("nav");l.classList.add("meta-navs");var d=document.createElement("button");d.classList.add("meta-nav","meta-nav-arrow","meta-nav-arrow__prev","a"),d.innerHTML='<i class="icon fa fas fa-chevron-left"></i> <span class="visually-hidden">Previous</span>',d.addEventListener("click",(function(e){e.preventDefault(),t.prev()})),l.append(d);var u=document.createElement("button");u.classList.add("meta-nav","meta-nav-arrow","meta-nav-arrow__next","a"),u.innerHTML='<i class="icon fa fas fa-chevron-right"></i> <span class="visually-hidden">Next</span>',u.addEventListener("click",(function(e){e.preventDefault(),t.next()})),l.append(u),i.append(l)}}var m=document.createElement("section");if(m.classList.add("meta-wrap","typography"),t.state.extraClass&&m.classList.add(t.state.extraClass),m.innerHTML=t.getHtml(),i.append(m),t.state.error){var p=document.createElement("div");p.classList.add("meta-error"),p.innerHTML=t.state.error,i.append(p)}else if(t.state.caption){var f=document.createElement("div");f.classList.add("meta-caption"),f.innerHTML=t.getCaption(),i.append(f)}return"undefined"!==typeof window.FontAwesome&&window.FontAwesome.dom.i2svg(),t}}]),MetaWindow}(),r=n,o=document.getElementById("MetaLightboxApp");o||console.log("MetaWindow: missing container #MetaLightboxApp");var i=function init(){var e=window.MetaWindow;"undefined"===typeof e&&(e=new r({target:o}),window.MetaWindow=e),e.init()};window.addEventListener("".concat(t),i),window.addEventListener("".concat(e),i),window.addEventListener("MetaWindow.initLinks",i)}()}();
|
||||
!function(){"use strict";var e={826:function(e){e.exports=function makeYoutubeEmbed(e){if("string"===typeof e){var t=function getId(e){var t=e.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);if(t&&11==t[2].length)return t[2]}(e);return t?"//www.youtube.com/embed/"+t:void 0}}}},t={};function __webpack_require__(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,__webpack_require__),r.exports}!function(){var e="ajax-load",t="load-ready";function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function _unsupportedIterableToArray(e,t){if(!e)return;if("string"===typeof e)return _arrayLikeToArray(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(e,t)}(e)||function _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.")}()}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _defineProperty(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var a=window,n=function(){function MetaWindow(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{shown:!1},n=arguments.length>1?arguments[1]:void 0;_classCallCheck(this,MetaWindow),_defineProperty(this,"state",{content:"",type:["empty"],shown:!1,loading:!1,error:!1,embed:!1,collections:[],current:null,target:null,extraClass:null}),_defineProperty(this,"show",(function(){var t=e;console.log("".concat(t.name,": show")),t.setState({shown:!0}),a.dispatchEvent(new Event("{ui.name}.show"))})),_defineProperty(this,"hide",(function(){var t=e;console.log("".concat(t.name,": hide")),t.setState({shown:!1}),a.dispatchEvent(new Event("{ui.name}.hide"))})),_defineProperty(this,"next",(function(){var t=e,n=t.state.current.getAttribute("data-gallery"),r=t._currIndex();r<t.state.collections[n].length-1?r++:r=0,t.state.collections[n][r].click(),console.log("".concat(t.name,": next")),a.dispatchEvent(new Event("{ui.name}.next"))})),_defineProperty(this,"prev",(function(){var t=e,n=t.state.current.getAttribute("data-gallery"),r=t._currIndex();r>0?r--:r=t.state.collections[n].length-1,t.state.collections[n][r].click(),console.log("".concat(t.name,": prev")),a.dispatchEvent(new Event("{ui.name}.prev"))})),_defineProperty(this,"reset",(function(){e.setState({content:"",type:["empty"],shown:!1,loading:!1,error:!1,embed:!1})})),_defineProperty(this,"load",(function(t){var n=e;n.reset(),n.setState({loading:!0}),n.show(),window.fetch(t).then((function(e){var r=e.headers.get("content-type");console.log(e),console.log("".concat(n.name,": response content-type: ").concat(r));switch(r){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":e.arrayBuffer().then((function(e){n.setContent('<img src="data:'.concat(r,";base64,").concat(n._imageEncode(e),'" />'),"meta-".concat(n.name,"--image"))}));break;case"application/json":case"application/ld+json":case"application/json; charset=UTF-8":n.setContent("".concat((!1).Content),["meta-".concat(n.name,"--text"),"meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--json")]);break;case"video/mp4":n.setContent('<video controls autoplay><source src="'.concat(t,'" type="video/mp4">Your browser does not support the video tag.</video>'),["meta-".concat(n.name,"--image"),"meta-".concat(n.name,"--video")]);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":n.setContent(e.data,["meta-".concat(n.name,"--text"),"meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--pajax")]);break;default:console.warn("".concat(n.name,": Unknown response content-type!"))}a.dispatchEvent(new Event("{ui.name}.loaded"))})).catch((function(e){console.error(e);var t="";if(e.response)switch(e.response.status){case 404:t="Not Found.";break;case 500:t="Server issue, please try again latter.";break;default:t="Something went wrong."}else e.request?t="No response received":console.warn("Error",e.message);n.setState({error:t}),a.dispatchEvent(new Event("{ui.name}.error"))})).then((function(){n.setState({loading:!1}),setTimeout((function(){n.state.current.classList.remove("loading")}),1e3)}))})),_defineProperty(this,"_currIndex",(function(){var t=e,a=t.state.current,n=a.getAttribute("data-gallery");return t.state.collections[n].indexOf(a)})),_defineProperty(this,"embed",(function(t){var a=e;console.log("".concat(a.name,": embed")),a.reset(),a.setState({embed:t,loading:!1,type:["meta-".concat(a.name,"--embed"),"meta-".concat(a.name,"--video")]}),a.show()})),_defineProperty(this,"setCaption",(function(t){var a=e;console.log("".concat(a.name,": setCaption")),a.state.caption=t})),_defineProperty(this,"addExtraClass",(function(t){var a=e;t&&t.length&&(console.log("".concat(a.name,": addExtraClass(").concat(t,")")),a.state.extraClass=t)})),_defineProperty(this,"getCaption",(function(){return e.state.caption})),_defineProperty(this,"_imageEncode",(function(e){var t="";return[].slice.call(new Uint8Array(e)).forEach((function(e){t+=String.fromCharCode(e)})),window.btoa(t)})),_defineProperty(this,"setContent",(function(t,a){var n=e;console.log("".concat(n.name,": setContent"));var r=a||["meta-".concat(n.name,"--html"),"meta-".concat(n.name,"--text")];Array.isArray(r)||(r=a.split(" ")),n.setState({content:t,type:r})})),_defineProperty(this,"getHtml",(function(){var t=e;if(t.state.embed){var a=__webpack_require__(826)(t.state.embed);t.state.content='<iframe width="600" height="380" src="'.concat(a,'" frameborder="0"></iframe>')}return t.state.content}));var r=this;switch(r.name=r.constructor.name,console.log("".concat(r.name,": init")),r.setState(t),n){case"show":case"hide":r.hide()}a.dispatchEvent(new Event("{ui.name}.init"))}return function _createClass(e,t,a){return t&&_defineProperties(e.prototype,t),a&&_defineProperties(e,a),Object.defineProperty(e,"prototype",{writable:!1}),e}(MetaWindow,[{key:"cleanLinks",value:function cleanLinks(){document.querySelectorAll('[data-toggle="lightbox"]').forEach((function(e){e.classList.remove("loading")}))}},{key:"collectGaleries",value:function collectGaleries(e){var t=this;e&&(t.state.collections[e]=[],document.querySelectorAll('[data-toggle="lightbox"][data-gallery="'.concat(e,'"]')).forEach((function(a){t.state.collections[e].push(a)})))}},{key:"toggle",value:function toggle(e){var t=this;t.cleanLinks();var a=e.getAttribute("href")||e.getAttribute("data-href"),n=e.getAttribute("data-embed");e.classList.add("loading"),t.state.current=e;var r=e.getAttribute("data-title");r&&t.setCaption(r),n?t.embed(a):t.load(a),t.addExtraClass(e.getAttribute("data-lightbox-class"))}},{key:"init",value:function init(){var e=this;console.log("MetaWindow: [links] init"),document.querySelectorAll('[data-toggle="lightbox"],[data-gallery]').forEach((function(t){var a=t.getAttribute("data-gallery");e.collectGaleries(a),t.addEventListener("click",(function(t){t.preventDefault(),console.log("MetaWindow: [link] click");var a=t.currentTarget;e.toggle(a)}))}))}},{key:"setState",value:function setState(e){var t=this;t.state=Object.assign({},t.state,e),t.render()}},{key:"render",value:function render(){var e,t=this,a=t.name,n=t.state.current;t.state.target.innerHTML="";var r=document.createElement("div");r.classList.add("meta-".concat(a)),(e=r.classList).add.apply(e,_toConsumableArray(t.state.type)),t.state.target.append(r);var o=document.createElement("div");o.classList.add("meta-".concat(a,"-overlay")),t.state.shown&&o.classList.add("meta-".concat(a,"-overlay--open")),t.state.loading&&o.classList.add("meta-".concat(a,"-overlay--loading")),t.state.error&&o.classList.add("meta-".concat(a,"-overlay--error")),r.append(o);var i=document.createElement("div");i.classList.add("meta-content"),o.append(i);var c=document.createElement("button");if(c.classList.add("meta-nav","meta-close","a"),c.innerHTML='<i class="icon fa fas fa-times"></i> <span class="visually-hidden">Close</span>',c.addEventListener("click",(function(e){e.preventDefault(),t.hide()})),i.append(c),n){var s=n.getAttribute("data-gallery");if(s&&t.state.collections[s].length>1){var l=document.createElement("nav");l.classList.add("meta-navs");var d=document.createElement("button");d.classList.add("meta-nav","meta-nav-arrow","meta-nav-arrow__prev","a"),d.innerHTML='<i class="icon fa fas fa-chevron-left"></i> <span class="visually-hidden">Previous</span>',d.addEventListener("click",(function(e){e.preventDefault(),t.prev()})),l.append(d);var u=document.createElement("button");u.classList.add("meta-nav","meta-nav-arrow","meta-nav-arrow__next","a"),u.innerHTML='<i class="icon fa fas fa-chevron-right"></i> <span class="visually-hidden">Next</span>',u.addEventListener("click",(function(e){e.preventDefault(),t.next()})),l.append(u),i.append(l)}}var m=document.createElement("section");if(m.classList.add("meta-wrap","typography"),t.state.extraClass&&m.classList.add(t.state.extraClass),m.innerHTML=t.getHtml(),i.append(m),t.state.error){var p=document.createElement("div");p.classList.add("meta-error"),p.innerHTML=t.state.error,i.append(p)}else if(t.state.caption){var f=document.createElement("div");f.classList.add("meta-caption"),f.innerHTML=t.getCaption(),i.append(f)}return"undefined"!==typeof window.FontAwesome&&window.FontAwesome.dom.i2svg(),t}}]),MetaWindow}(),r=n,o=document.getElementById("MetaLightboxApp");o||console.log("MetaWindow: missing container #MetaLightboxApp");var i=function init(){var e=window.MetaWindow;"undefined"===typeof e&&(e=new r({target:o}),window.MetaWindow=e),e.init()};window.addEventListener("".concat(t),i),window.addEventListener("".concat(e),i),window.addEventListener("MetaWindow.initLinks",i)}()}();
|
4
dist/report.html
vendored
4
dist/report.html
vendored
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>@a2nt/meta-lightbox-js [2 May 2022 at 23:31]</title>
|
||||
<title>@a2nt/meta-lightbox-js [3 May 2022 at 20:58]</title>
|
||||
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
||||
|
||||
<script>
|
||||
@ -31,7 +31,7 @@
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script>
|
||||
window.chartData = [{"label":"js/app.js","isAsset":true,"statSize":23026,"parsedSize":10608,"gzipSize":3366,"groups":[{"label":"node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed","path":"./node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed","statSize":577,"groups":[{"id":826,"label":"index.js","path":"./node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed/index.js","statSize":577,"parsedSize":265,"gzipSize":217}],"parsedSize":265,"gzipSize":217},{"label":"src","path":"./src","statSize":22449,"groups":[{"label":"js","path":"./src/js","statSize":18141,"groups":[{"id":348,"label":"test-build.js + 3 modules (concatenated)","path":"./src/js/test-build.js + 3 modules (concatenated)","statSize":18141,"parsedSize":10343,"gzipSize":3232,"concatenated":true,"groups":[{"label":"src/js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js","statSize":18141,"groups":[{"id":null,"label":"test-build.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/test-build.js","statSize":300,"parsedSize":171,"gzipSize":53,"inaccurateSizes":true},{"id":null,"label":"app.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/app.js","statSize":815,"parsedSize":464,"gzipSize":145,"inaccurateSizes":true},{"id":null,"label":"_events.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/_events.js","statSize":1366,"parsedSize":778,"gzipSize":243,"inaccurateSizes":true},{"id":null,"label":"window.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/window.js","statSize":15660,"parsedSize":8928,"gzipSize":2789,"inaccurateSizes":true}],"parsedSize":10343,"gzipSize":3232,"inaccurateSizes":true}]}],"parsedSize":10343,"gzipSize":3232},{"label":"scss","path":"./src/scss","statSize":4308,"groups":[{"id":null,"label":"app.scss","path":"./src/scss/app.scss","statSize":4308}],"parsedSize":0,"gzipSize":0}],"parsedSize":10343,"gzipSize":3232}]}];
|
||||
window.chartData = [{"label":"js/app.js","isAsset":true,"statSize":22926,"parsedSize":10608,"gzipSize":3367,"groups":[{"label":"node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed","path":"./node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed","statSize":577,"groups":[{"id":826,"label":"index.js","path":"./node_modules/.pnpm/youtube-embed@1.0.0/node_modules/youtube-embed/index.js","statSize":577,"parsedSize":265,"gzipSize":217}],"parsedSize":265,"gzipSize":217},{"label":"src","path":"./src","statSize":22349,"groups":[{"label":"js","path":"./src/js","statSize":18041,"groups":[{"id":348,"label":"test-build.js + 3 modules (concatenated)","path":"./src/js/test-build.js + 3 modules (concatenated)","statSize":18041,"parsedSize":10343,"gzipSize":3233,"concatenated":true,"groups":[{"label":"src/js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js","statSize":18041,"groups":[{"id":null,"label":"test-build.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/test-build.js","statSize":302,"parsedSize":173,"gzipSize":54,"inaccurateSizes":true},{"id":null,"label":"app.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/app.js","statSize":817,"parsedSize":468,"gzipSize":146,"inaccurateSizes":true},{"id":null,"label":"_events.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/_events.js","statSize":1366,"parsedSize":783,"gzipSize":244,"inaccurateSizes":true},{"id":null,"label":"window.js","path":"./src/js/test-build.js + 3 modules (concatenated)/src/js/window.js","statSize":15556,"parsedSize":8918,"gzipSize":2787,"inaccurateSizes":true}],"parsedSize":10343,"gzipSize":3233,"inaccurateSizes":true}]}],"parsedSize":10343,"gzipSize":3233},{"label":"scss","path":"./src/scss","statSize":4308,"groups":[{"id":null,"label":"app.scss","path":"./src/scss/app.scss","statSize":4308}],"parsedSize":0,"gzipSize":0}],"parsedSize":10343,"gzipSize":3233}]}];
|
||||
window.defaultSizes = "parsed";
|
||||
</script>
|
||||
</body>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@a2nt/meta-lightbox-js",
|
||||
"version": "4.2.2",
|
||||
"version": "4.2.3",
|
||||
"description": "Universal lightbox",
|
||||
"author": "Tony Air <tony@twma.pro>",
|
||||
"license": "BSD-2-Clause",
|
||||
|
@ -41,4 +41,4 @@ export default {
|
||||
FORM_STEPPED_FIRST_STEP: 'form-first-step',
|
||||
FORM_STEPPED_LAST_STEP: 'form-last-step',
|
||||
FORM_FIELDS: 'input,textarea,select',
|
||||
};
|
||||
}
|
||||
|
@ -4,31 +4,31 @@
|
||||
*
|
||||
*/
|
||||
|
||||
import Events from './_events';
|
||||
import MetaWindow from './window';
|
||||
import Events from './_events'
|
||||
import MetaWindow from './window'
|
||||
|
||||
const container = document.getElementById('MetaLightboxApp');
|
||||
const container = document.getElementById('MetaLightboxApp')
|
||||
if (!container) {
|
||||
console.log(`MetaWindow: missing container #MetaLightboxApp`);
|
||||
console.log('MetaWindow: missing container #MetaLightboxApp')
|
||||
}
|
||||
|
||||
const init = () => {
|
||||
let ui = window.MetaWindow;
|
||||
let ui = window.MetaWindow
|
||||
|
||||
if (typeof ui === 'undefined') {
|
||||
ui = new MetaWindow({
|
||||
target: container,
|
||||
});
|
||||
})
|
||||
|
||||
window.MetaWindow = ui;
|
||||
window.MetaWindow = ui
|
||||
}
|
||||
|
||||
ui.init();
|
||||
};
|
||||
ui.init()
|
||||
}
|
||||
|
||||
window.addEventListener(`${Events.LOADEDANDREADY}`, init);
|
||||
window.addEventListener(`${Events.AJAX}`, init);
|
||||
window.addEventListener(`MetaWindow.initLinks`, init);
|
||||
window.addEventListener(`${Events.LOADEDANDREADY}`, init)
|
||||
window.addEventListener(`${Events.AJAX}`, init)
|
||||
window.addEventListener('MetaWindow.initLinks', init)
|
||||
|
||||
/* function importAll(r) {
|
||||
return r.keys().map(r);
|
||||
@ -38,4 +38,4 @@ const images = importAll(
|
||||
require.context('../img/', false, /\.(png|jpe?g|svg)$/),
|
||||
); */
|
||||
|
||||
export default MetaWindow;
|
||||
export default MetaWindow
|
||||
|
@ -1,2 +1,2 @@
|
||||
import styles from "../scss/window.scss";
|
||||
import "./app.js";
|
||||
import '../scss/window.scss'
|
||||
import './app.js'
|
||||
|
@ -4,9 +4,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
import ui from "./app";
|
||||
import "../scss/app.scss";
|
||||
import "../scss/test-build.scss";
|
||||
import ui from './app'
|
||||
import '../scss/app.scss'
|
||||
import '../scss/test-build.scss'
|
||||
|
||||
/* function importAll(r) {
|
||||
return r.keys().map(r);
|
||||
@ -16,4 +16,4 @@ const images = importAll(
|
||||
require.context('../img/', false, /\.(png|jpe?g|svg)$/),
|
||||
); */
|
||||
|
||||
export default ui;
|
||||
export default ui
|
||||
|
461
src/js/window.js
461
src/js/window.js
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Lightbox window
|
||||
*/
|
||||
import Events from './_events';
|
||||
const W = window;
|
||||
// import Events from './_events'
|
||||
const W = window
|
||||
|
||||
class MetaWindow {
|
||||
state = {
|
||||
@ -16,75 +16,75 @@ class MetaWindow {
|
||||
current: null,
|
||||
target: null,
|
||||
extraClass: null,
|
||||
};
|
||||
}
|
||||
|
||||
cleanLinks () {
|
||||
document.querySelectorAll(`[data-toggle="lightbox"]`)
|
||||
document.querySelectorAll('[data-toggle="lightbox"]')
|
||||
.forEach((el) => {
|
||||
el.classList.remove('loading');
|
||||
});
|
||||
el.classList.remove('loading')
|
||||
})
|
||||
}
|
||||
|
||||
collectGaleries (gallery) {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
if (!gallery) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
|
||||
ui.state.collections[gallery] = [];
|
||||
ui.state.collections[gallery] = []
|
||||
document
|
||||
.querySelectorAll(
|
||||
`[data-toggle="lightbox"][data-gallery="${gallery}"]`
|
||||
)
|
||||
.forEach((el) => {
|
||||
ui.state.collections[gallery].push(el);
|
||||
});
|
||||
ui.state.collections[gallery].push(el)
|
||||
})
|
||||
}
|
||||
|
||||
toggle (el) {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
ui.cleanLinks();
|
||||
ui.cleanLinks()
|
||||
|
||||
const link = el.getAttribute('href') || el.getAttribute('data-href');
|
||||
const embed = el.getAttribute('data-embed');
|
||||
el.classList.add('loading');
|
||||
ui.state.current = el;
|
||||
const link = el.getAttribute('href') || el.getAttribute('data-href')
|
||||
const embed = el.getAttribute('data-embed')
|
||||
el.classList.add('loading')
|
||||
ui.state.current = el
|
||||
|
||||
const title = el.getAttribute('data-title');
|
||||
const title = el.getAttribute('data-title')
|
||||
if (title) {
|
||||
ui.setCaption(title);
|
||||
ui.setCaption(title)
|
||||
}
|
||||
|
||||
if (embed) {
|
||||
ui.embed(link);
|
||||
ui.embed(link)
|
||||
} else {
|
||||
ui.load(link);
|
||||
ui.load(link)
|
||||
}
|
||||
|
||||
ui.addExtraClass(el.getAttribute('data-lightbox-class'));
|
||||
ui.addExtraClass(el.getAttribute('data-lightbox-class'))
|
||||
}
|
||||
|
||||
init () {
|
||||
const ui = this;
|
||||
console.log(`MetaWindow: [links] init`);
|
||||
const ui = this
|
||||
console.log('MetaWindow: [links] init')
|
||||
|
||||
document
|
||||
.querySelectorAll(`[data-toggle="lightbox"],[data-gallery]`)
|
||||
.querySelectorAll('[data-toggle="lightbox"],[data-gallery]')
|
||||
.forEach((el) => {
|
||||
const gallery = el.getAttribute('data-gallery');
|
||||
ui.collectGaleries(gallery);
|
||||
const gallery = el.getAttribute('data-gallery')
|
||||
ui.collectGaleries(gallery)
|
||||
|
||||
// click handler
|
||||
el.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
console.log(`MetaWindow: [link] click`);
|
||||
e.preventDefault()
|
||||
console.log('MetaWindow: [link] click')
|
||||
|
||||
const el = e.currentTarget;
|
||||
ui.toggle(el);
|
||||
});
|
||||
});
|
||||
const el = e.currentTarget
|
||||
ui.toggle(el)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
constructor (
|
||||
@ -93,83 +93,83 @@ class MetaWindow {
|
||||
},
|
||||
action
|
||||
) {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
ui.name = ui.constructor.name;
|
||||
console.log(`${ui.name}: init`);
|
||||
ui.name = ui.constructor.name
|
||||
console.log(`${ui.name}: init`)
|
||||
|
||||
ui.setState(state);
|
||||
ui.setState(state)
|
||||
switch (action) {
|
||||
case 'show':
|
||||
ui.hide();
|
||||
break;
|
||||
ui.hide()
|
||||
break
|
||||
case 'hide':
|
||||
ui.hide();
|
||||
break;
|
||||
ui.hide()
|
||||
break
|
||||
}
|
||||
|
||||
W.dispatchEvent(new Event(`{ui.name}.init`));
|
||||
W.dispatchEvent(new Event('{ui.name}.init'))
|
||||
}
|
||||
|
||||
show = () => {
|
||||
const ui = this;
|
||||
console.log(`${ui.name}: show`);
|
||||
const ui = this
|
||||
console.log(`${ui.name}: show`)
|
||||
|
||||
ui.setState({
|
||||
shown: true,
|
||||
});
|
||||
})
|
||||
|
||||
W.dispatchEvent(new Event(`{ui.name}.show`));
|
||||
};
|
||||
W.dispatchEvent(new Event('{ui.name}.show'))
|
||||
}
|
||||
|
||||
hide = () => {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
console.log(`${ui.name}: hide`);
|
||||
console.log(`${ui.name}: hide`)
|
||||
ui.setState({
|
||||
shown: false,
|
||||
});
|
||||
W.dispatchEvent(new Event(`{ui.name}.hide`));
|
||||
};
|
||||
})
|
||||
W.dispatchEvent(new Event('{ui.name}.hide'))
|
||||
}
|
||||
|
||||
next = () => {
|
||||
const ui = this;
|
||||
const el = ui.state.current;
|
||||
const gallery = el.getAttribute('data-gallery');
|
||||
const ui = this
|
||||
const el = ui.state.current
|
||||
const gallery = el.getAttribute('data-gallery')
|
||||
|
||||
let i = ui._currIndex();
|
||||
let i = ui._currIndex()
|
||||
if (i < ui.state.collections[gallery].length - 1) {
|
||||
i++;
|
||||
i++
|
||||
} else {
|
||||
i = 0;
|
||||
i = 0
|
||||
}
|
||||
|
||||
ui.state.collections[gallery][i].click();
|
||||
ui.state.collections[gallery][i].click()
|
||||
|
||||
console.log(`${ui.name}: next`);
|
||||
W.dispatchEvent(new Event(`{ui.name}.next`));
|
||||
};
|
||||
console.log(`${ui.name}: next`)
|
||||
W.dispatchEvent(new Event('{ui.name}.next'))
|
||||
}
|
||||
|
||||
prev = () => {
|
||||
const ui = this;
|
||||
const el = ui.state.current;
|
||||
const gallery = el.getAttribute('data-gallery');
|
||||
const ui = this
|
||||
const el = ui.state.current
|
||||
const gallery = el.getAttribute('data-gallery')
|
||||
|
||||
let i = ui._currIndex();
|
||||
let i = ui._currIndex()
|
||||
if (i > 0) {
|
||||
i--;
|
||||
i--
|
||||
} else {
|
||||
i = ui.state.collections[gallery].length - 1;
|
||||
i = ui.state.collections[gallery].length - 1
|
||||
}
|
||||
|
||||
ui.state.collections[gallery][i].click();
|
||||
ui.state.collections[gallery][i].click()
|
||||
|
||||
console.log(`${ui.name}: prev`);
|
||||
W.dispatchEvent(new Event(`{ui.name}.prev`));
|
||||
};
|
||||
console.log(`${ui.name}: prev`)
|
||||
W.dispatchEvent(new Event('{ui.name}.prev'))
|
||||
}
|
||||
|
||||
reset = () => {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
ui.setState({
|
||||
content: '',
|
||||
@ -181,27 +181,27 @@ class MetaWindow {
|
||||
// collections: [],
|
||||
// current: null,
|
||||
// target: null,
|
||||
});
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
load = (link) => {
|
||||
const ui = this;
|
||||
const ui = this
|
||||
|
||||
ui.reset();
|
||||
ui.reset()
|
||||
ui.setState({
|
||||
loading: true,
|
||||
});
|
||||
ui.show();
|
||||
})
|
||||
ui.show()
|
||||
|
||||
fetch(link).then((resp) => {
|
||||
window.fetch(link).then((resp) => {
|
||||
// handle success
|
||||
const type = resp.headers.get("content-type");
|
||||
console.log(resp);
|
||||
const type = resp.headers.get('content-type')
|
||||
console.log(resp)
|
||||
|
||||
console.log(
|
||||
`${ui.name}: response content-type: ${type}`
|
||||
);
|
||||
const json = false;
|
||||
)
|
||||
const json = false
|
||||
|
||||
switch (type) {
|
||||
case 'image/jpeg':
|
||||
@ -211,7 +211,6 @@ class MetaWindow {
|
||||
case 'image/gif':
|
||||
case 'image/tiff':
|
||||
case 'image/webp':
|
||||
// irregular types:
|
||||
case 'image/jpg':
|
||||
case 'image/svg':
|
||||
// json = JSON.parse(ui._abToString(resp.data));
|
||||
@ -219,30 +218,28 @@ class MetaWindow {
|
||||
ui.setContent(
|
||||
`<img src="data:${type};base64,${ui._imageEncode(buffer)}" />`,
|
||||
`meta-${ui.name}--image`
|
||||
);
|
||||
});
|
||||
break;
|
||||
)
|
||||
})
|
||||
break
|
||||
case 'application/json':
|
||||
case 'application/ld+json':
|
||||
// irregular types:
|
||||
case 'application/json; charset=UTF-8':
|
||||
ui.setContent(`${json['Content']}`, [
|
||||
ui.setContent(`${json.Content}`, [
|
||||
`meta-${ui.name}--text`,
|
||||
`meta-${ui.name}--html`,
|
||||
`meta-${ui.name}--json`,
|
||||
]);
|
||||
])
|
||||
|
||||
break;
|
||||
break
|
||||
case 'video/mp4':
|
||||
ui.setContent(`<video controls autoplay><source src="${link}" type="video/mp4">Your browser does not support the video tag.</video>`, [
|
||||
`meta-${ui.name}--image`,
|
||||
`meta-${ui.name}--video`,
|
||||
]);
|
||||
break;
|
||||
])
|
||||
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':
|
||||
@ -250,260 +247,258 @@ class MetaWindow {
|
||||
`meta-${ui.name}--text`,
|
||||
`meta-${ui.name}--html`,
|
||||
`meta-${ui.name}--pajax`,
|
||||
]);
|
||||
break;
|
||||
])
|
||||
break
|
||||
default:
|
||||
console.warn(`${ui.name}: Unknown response content-type!`);
|
||||
break;
|
||||
console.warn(`${ui.name}: Unknown response content-type!`)
|
||||
break
|
||||
}
|
||||
|
||||
W.dispatchEvent(new Event(`{ui.name}.loaded`));
|
||||
W.dispatchEvent(new Event('{ui.name}.loaded'))
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
console.error(error)
|
||||
|
||||
let msg = '';
|
||||
let msg = ''
|
||||
|
||||
if (error.response) {
|
||||
switch (error.response.status) {
|
||||
case 404:
|
||||
msg = 'Not Found.';
|
||||
break;
|
||||
msg = 'Not Found.'
|
||||
break
|
||||
case 500:
|
||||
msg = 'Server issue, please try again latter.';
|
||||
break;
|
||||
msg = 'Server issue, please try again latter.'
|
||||
break
|
||||
default:
|
||||
msg = 'Something went wrong.';
|
||||
break;
|
||||
msg = 'Something went wrong.'
|
||||
break
|
||||
}
|
||||
} else if (error.request) {
|
||||
msg = 'No response received';
|
||||
msg = 'No response received'
|
||||
} else {
|
||||
console.warn('Error', error.message);
|
||||
console.warn('Error', error.message)
|
||||
}
|
||||
|
||||
ui.setState({
|
||||
error: msg,
|
||||
});
|
||||
})
|
||||
|
||||
W.dispatchEvent(new Event(`{ui.name}.error`));
|
||||
W.dispatchEvent(new Event('{ui.name}.error'))
|
||||
})
|
||||
.then(() => {
|
||||
ui.setState({
|
||||
loading: false,
|
||||
});
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
ui.state.current.classList.remove('loading');
|
||||
}, 1000);
|
||||
});
|
||||
};
|
||||
ui.state.current.classList.remove('loading')
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
|
||||
_currIndex = () => {
|
||||
const ui = this;
|
||||
const el = ui.state.current;
|
||||
const gallery = el.getAttribute('data-gallery');
|
||||
const ui = this
|
||||
const el = ui.state.current
|
||||
const gallery = el.getAttribute('data-gallery')
|
||||
|
||||
return ui.state.collections[gallery].indexOf(el);
|
||||
};
|
||||
return ui.state.collections[gallery].indexOf(el)
|
||||
}
|
||||
|
||||
embed = (link) => {
|
||||
const ui = this;
|
||||
console.log(`${ui.name}: embed`);
|
||||
const ui = this
|
||||
console.log(`${ui.name}: embed`)
|
||||
|
||||
ui.reset();
|
||||
ui.reset()
|
||||
ui.setState({
|
||||
embed: link,
|
||||
loading: false,
|
||||
type: [`meta-${ui.name}--embed`, `meta-${ui.name}--video`],
|
||||
});
|
||||
})
|
||||
|
||||
ui.show();
|
||||
};
|
||||
|
||||
setCaption = (title) => {
|
||||
const ui = this;
|
||||
console.log(`${ui.name}: setCaption`);
|
||||
|
||||
ui.state.caption = title;
|
||||
};
|
||||
|
||||
addExtraClass = (cls) => {
|
||||
const ui = this;
|
||||
|
||||
if (!cls || !cls.length) {
|
||||
return;
|
||||
ui.show()
|
||||
}
|
||||
|
||||
console.log(`${ui.name}: addExtraClass(${cls})`);
|
||||
ui.state.extraClass = cls;
|
||||
};
|
||||
setCaption = (title) => {
|
||||
const ui = this
|
||||
console.log(`${ui.name}: setCaption`)
|
||||
|
||||
ui.state.caption = title
|
||||
}
|
||||
|
||||
addExtraClass = (cls) => {
|
||||
const ui = this
|
||||
|
||||
if (!cls || !cls.length) {
|
||||
return
|
||||
}
|
||||
|
||||
console.log(`${ui.name}: addExtraClass(${cls})`)
|
||||
ui.state.extraClass = cls
|
||||
}
|
||||
|
||||
getCaption = () => {
|
||||
const ui = this;
|
||||
return ui.state.caption;
|
||||
};
|
||||
const ui = this
|
||||
return ui.state.caption
|
||||
}
|
||||
|
||||
/* _abToString = (arrayBuffer) => {
|
||||
return String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));
|
||||
}; */
|
||||
|
||||
_imageEncode = (buffer) => {
|
||||
let binary = '';
|
||||
const bytes = [].slice.call(new Uint8Array(buffer));
|
||||
bytes.forEach((b) => binary += String.fromCharCode(b));
|
||||
return window.btoa(binary);
|
||||
};
|
||||
let binary = ''
|
||||
const bytes = [].slice.call(new Uint8Array(buffer))
|
||||
bytes.forEach((b) => {
|
||||
binary += String.fromCharCode(b)
|
||||
})
|
||||
return window.btoa(binary)
|
||||
}
|
||||
|
||||
setContent = (html, type) => {
|
||||
const ui = this;
|
||||
console.log(`${ui.name}: setContent`);
|
||||
const ui = this
|
||||
console.log(`${ui.name}: setContent`)
|
||||
|
||||
let typeArr = type
|
||||
? type
|
||||
: [`meta-${ui.name}--html`, `meta-${ui.name}--text`];
|
||||
let typeArr = type || [`meta-${ui.name}--html`, `meta-${ui.name}--text`]
|
||||
if (!Array.isArray(typeArr)) {
|
||||
typeArr = type.split(' ');
|
||||
typeArr = type.split(' ')
|
||||
}
|
||||
|
||||
ui.setState({
|
||||
content: html,
|
||||
type: typeArr,
|
||||
});
|
||||
};
|
||||
|
||||
getHtml = () => {
|
||||
const ui = this;
|
||||
|
||||
if (ui.state.embed) {
|
||||
const youtubeEmbed = require('youtube-embed');
|
||||
const embedLink = youtubeEmbed(ui.state.embed);
|
||||
ui.state.content = `<iframe width="600" height="380" src="${embedLink}" frameborder="0"></iframe>`;
|
||||
})
|
||||
}
|
||||
|
||||
return ui.state.content;
|
||||
};
|
||||
getHtml = () => {
|
||||
const ui = this
|
||||
|
||||
if (ui.state.embed) {
|
||||
const youtubeEmbed = require('youtube-embed')
|
||||
const embedLink = youtubeEmbed(ui.state.embed)
|
||||
ui.state.content = `<iframe width="600" height="380" src="${embedLink}" frameborder="0"></iframe>`
|
||||
}
|
||||
|
||||
return ui.state.content
|
||||
}
|
||||
|
||||
setState (state) {
|
||||
const ui = this;
|
||||
ui.state = Object.assign({}, ui.state, state);
|
||||
ui.render();
|
||||
const ui = this
|
||||
ui.state = Object.assign({}, ui.state, state)
|
||||
ui.render()
|
||||
}
|
||||
|
||||
render () {
|
||||
const ui = this;
|
||||
const name = ui.name;
|
||||
const ui = this
|
||||
const name = ui.name
|
||||
const el = ui.state.current
|
||||
|
||||
const navs = null;
|
||||
const el = ui.state.current;
|
||||
ui.state.target.innerHTML = ''
|
||||
const meta = document.createElement('div')
|
||||
meta.classList.add(`meta-${name}`)
|
||||
meta.classList.add(...ui.state.type)
|
||||
ui.state.target.append(meta)
|
||||
|
||||
ui.state.target.innerHTML = '';
|
||||
const meta = document.createElement('div');
|
||||
meta.classList.add(`meta-${name}`);
|
||||
meta.classList.add(...ui.state.type);
|
||||
ui.state.target.append(meta);
|
||||
|
||||
const metaOverlay = document.createElement('div');
|
||||
metaOverlay.classList.add(`meta-${name}-overlay`);
|
||||
const metaOverlay = document.createElement('div')
|
||||
metaOverlay.classList.add(`meta-${name}-overlay`)
|
||||
if (ui.state.shown) {
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--open`);
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--open`)
|
||||
}
|
||||
|
||||
if (ui.state.loading) {
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--loading`);
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--loading`)
|
||||
}
|
||||
|
||||
if (ui.state.error) {
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--error`);
|
||||
metaOverlay.classList.add(`meta-${name}-overlay--error`)
|
||||
}
|
||||
|
||||
meta.append(metaOverlay);
|
||||
meta.append(metaOverlay)
|
||||
|
||||
const metaContent = document.createElement('div');
|
||||
metaContent.classList.add('meta-content');
|
||||
metaOverlay.append(metaContent);
|
||||
const metaContent = document.createElement('div')
|
||||
metaContent.classList.add('meta-content')
|
||||
metaOverlay.append(metaContent)
|
||||
|
||||
const btnClose = document.createElement('button');
|
||||
btnClose.classList.add('meta-nav', 'meta-close', 'a');
|
||||
const btnClose = document.createElement('button')
|
||||
btnClose.classList.add('meta-nav', 'meta-close', 'a')
|
||||
btnClose.innerHTML =
|
||||
'<i class="icon fa fas fa-times"></i>' +
|
||||
' <span class="visually-hidden">Close</span>';
|
||||
' <span class="visually-hidden">Close</span>'
|
||||
btnClose.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
ui.hide();
|
||||
});
|
||||
metaContent.append(btnClose);
|
||||
e.preventDefault()
|
||||
ui.hide()
|
||||
})
|
||||
metaContent.append(btnClose)
|
||||
|
||||
if (el) {
|
||||
const gallery = el.getAttribute('data-gallery');
|
||||
const gallery = el.getAttribute('data-gallery')
|
||||
if (gallery && ui.state.collections[gallery].length > 1) {
|
||||
const navs = document.createElement('nav');
|
||||
navs.classList.add('meta-navs');
|
||||
const navs = document.createElement('nav')
|
||||
navs.classList.add('meta-navs')
|
||||
|
||||
const prevBtn = document.createElement('button');
|
||||
const prevBtn = document.createElement('button')
|
||||
prevBtn.classList.add(
|
||||
'meta-nav',
|
||||
'meta-nav-arrow',
|
||||
'meta-nav-arrow__prev',
|
||||
'a'
|
||||
);
|
||||
)
|
||||
prevBtn.innerHTML =
|
||||
'<i class="icon fa fas fa-chevron-left"></i>' +
|
||||
' <span class="visually-hidden">Previous</span>';
|
||||
' <span class="visually-hidden">Previous</span>'
|
||||
prevBtn.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
ui.prev();
|
||||
});
|
||||
navs.append(prevBtn);
|
||||
e.preventDefault()
|
||||
ui.prev()
|
||||
})
|
||||
navs.append(prevBtn)
|
||||
|
||||
const nextBtn = document.createElement('button');
|
||||
const nextBtn = document.createElement('button')
|
||||
nextBtn.classList.add(
|
||||
'meta-nav',
|
||||
'meta-nav-arrow',
|
||||
'meta-nav-arrow__next',
|
||||
'a'
|
||||
);
|
||||
)
|
||||
nextBtn.innerHTML =
|
||||
'<i class="icon fa fas fa-chevron-right"></i>' +
|
||||
' <span class="visually-hidden">Next</span>';
|
||||
' <span class="visually-hidden">Next</span>'
|
||||
nextBtn.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
ui.next();
|
||||
});
|
||||
navs.append(nextBtn);
|
||||
e.preventDefault()
|
||||
ui.next()
|
||||
})
|
||||
navs.append(nextBtn)
|
||||
|
||||
metaContent.append(navs);
|
||||
metaContent.append(navs)
|
||||
}
|
||||
}
|
||||
|
||||
const content = document.createElement('section');
|
||||
content.classList.add('meta-wrap', 'typography');
|
||||
const content = document.createElement('section')
|
||||
content.classList.add('meta-wrap', 'typography')
|
||||
if (ui.state.extraClass) {
|
||||
content.classList.add(ui.state.extraClass);
|
||||
content.classList.add(ui.state.extraClass)
|
||||
}
|
||||
|
||||
content.innerHTML = ui.getHtml();
|
||||
metaContent.append(content);
|
||||
content.innerHTML = ui.getHtml()
|
||||
metaContent.append(content)
|
||||
|
||||
if (ui.state.error) {
|
||||
const error = document.createElement('div');
|
||||
error.classList.add('meta-error');
|
||||
error.innerHTML = ui.state.error;
|
||||
metaContent.append(error);
|
||||
const error = document.createElement('div')
|
||||
error.classList.add('meta-error')
|
||||
error.innerHTML = ui.state.error
|
||||
metaContent.append(error)
|
||||
} else if (ui.state.caption) {
|
||||
const caption = document.createElement('div');
|
||||
caption.classList.add('meta-caption');
|
||||
caption.innerHTML = ui.getCaption();
|
||||
metaContent.append(caption);
|
||||
const caption = document.createElement('div')
|
||||
caption.classList.add('meta-caption')
|
||||
caption.innerHTML = ui.getCaption()
|
||||
metaContent.append(caption)
|
||||
}
|
||||
|
||||
// update fontawesome dome
|
||||
if (typeof window.FontAwesome !== 'undefined') {
|
||||
window.FontAwesome.dom.i2svg();
|
||||
window.FontAwesome.dom.i2svg()
|
||||
}
|
||||
|
||||
return ui;
|
||||
return ui
|
||||
}
|
||||
}
|
||||
|
||||
export default MetaWindow;
|
||||
export default MetaWindow
|
||||
|
Loading…
Reference in New Issue
Block a user