UNPKG

@liascript/exporter

Version:
1 lines 9.8 kB
!function(t,e,i,n,s){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof r[n]&&r[n],c=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function h(e,i){if(!c[e]){if(!t[e]){var s="function"==typeof r[n]&&r[n];if(!i&&s)return s(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(i){var n=t[e][1][i];return null!=n?n:i},d.cache={};var u=c[e]=new h.Module(e);t[e][0].call(u.exports,d,u,u.exports,this)}return c[e].exports;function d(t){var e=d.resolve(t);return!1===e?{}:h(e)}}h.isParcelRequire=!0,h.Module=function(t){this.id=t,this.bundle=h,this.exports={}},h.modules=t,h.cache=c,h.parent=o,h.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(h,"root",{get:function(){return r[n]}}),r[n]=h;for(var a=0;a<e.length;a++)h(e[a]);if(i){var u=h(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}}({d6Fgm:[function(t,e,i){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"initTooltip",(()=>f));var s=t("../embed/index"),r=t("../preview-lia"),o=t("../../helper"),c=t("./html");const l="lia-tooltip",h=/(?:https?:)(?:\/\/)liascript\.github\.io\/course\/\?(.+\.md)/i;var a=Object();class u extends HTMLElement{sourceUrl="";cache=null;isFetching=!1;isClicked=!1;isActive=!1;lightMode=!0;constructor(){super()}connectedCallback(){this.sourceUrl=this.getAttribute("src")||"",this.sourceUrl&&(this.sourceUrl.endsWith("/")&&(this.sourceUrl=this.sourceUrl.slice(0,-1)),this.container=document.getElementById(l)||void 0,this.container&&this.firstChild&&(this.firstChild.addEventListener("mouseenter",this._onmouseenter),this.firstChild.addEventListener("mouseout",this._onmouseout),this.firstChild.addEventListener("click",this._onclick),this.firstChild.addEventListener("focus",this._onfocus),this.firstChild.addEventListener("focusout",this._onfocusout),this.firstChild.addEventListener("keyup",this._onescape)))}disconnectedCallback(){this.firstChild&&(this.firstChild.removeEventListener("mouseenter",this._onmouseenter),this.firstChild.removeEventListener("mouseout",this._onmouseout),this.firstChild.removeEventListener("click",this._onclick),this.firstChild.removeEventListener("focus",this._onfocus),this.firstChild.removeEventListener("focusout",this._onfocusout),this.firstChild.removeEventListener("keyup",this._onescape))}_onclick(){const t=this.parentElement;t.isActive=!1,t.isClicked=!0}_onescape(t){if("Escape"===t.code){const t=this.parentElement;t.setAttribute("data-active","false"),t.deactivate()}}_onmouseenter(){this.style.cursor="progress";const t=this.getBoundingClientRect();this.parentElement.activate(t.left+t.width/2,t.top+t.height/2)}_onmouseout(){this.parentElement.deactivate()}_onfocus(t){const e=this.getBoundingClientRect();this.parentElement.activate(e.left+e.width/2,e.top+e.height/2)}_onfocusout(){const t=this.parentElement;t.container&&t.container.setAttribute("data-active","false"),t.deactivate()}activate(t,e){if(this.container){if(this.isActive=!0,this.isClicked)return void(this.isClicked=!1);if(this.container.style.left=t-425*t/window.innerWidth+"px",1.5*e>window.innerHeight?(this.container.style.top="",this.container.style.bottom=window.innerHeight-e+10+"px"):(this.container.style.top=`${e+10}px`,this.container.style.bottom=""),this.cache)this.show();else if(a[this.sourceUrl])this.cache=a[this.sourceUrl],this.show();else if(!this.isFetching){this.isFetching=!0;let t=this,e=this.sourceUrl.match(h);if(e)r.fetch(e[1],(function(e,i){t.cache=d(t.sourceUrl,i.title,i.description,i.logo,i.logo_alt),t.show()}));else{const t=/\/\/([a-z]+)\.(wikipedia|wiktionary|wikibooks|wikinews|wikiquote|wikisource|wikiversity|wikivoyage|wikimedia|wikidata)\.org\/wiki\/([^#?\s]+(?:\([^#?\s]*\)[^#?\s]*)*)/i,e=this.sourceUrl.match(t);if(e){let t=e[1],i=e[2],n=e[3];try{n=decodeURIComponent(n)}catch(t){console.error("Error decoding title:",t)}let r=`https://${t}.${i}.org/api/rest_v1/page/summary/${encodeURIComponent(n)}`;window.fetch(r,{headers:{Accept:"application/json"}}).then((t=>{if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()})).then((t=>{this.cache=d(this.sourceUrl,t.title,t.extract,t.thumbnail?.source,t.thumbnail?.caption),this.show()})).catch((t=>{console.error("Wikimedia API error:",t),s.extract(this.sourceUrl,{}).then((t=>{this.cache=d(this.sourceUrl,t.title,void 0,t.thumbnail_url),this.show()})).catch((t=>{p(this.sourceUrl,function(t){this.parse(t)}.bind(this))}))}))}else try{s.extract(this.sourceUrl,{}).then((t=>{this.cache=d(this.sourceUrl,t.title,void 0,t.thumbnail_url),this.show()})).catch((t=>{p(this.sourceUrl,function(t){this.parse(t)}.bind(this))}))}catch(t){}}}}}deactivate(){this.container&&"false"===this.container.getAttribute("data-active")&&(this.isActive=!1,this.container.style.display="none",this.container.style.zIndex="-1000")}parse(t){if(null!==this.cache)return void this.show();let e=c.parse(this.sourceUrl,t);if("string"==typeof e.image){const t=e.image.match(/.*?%22(.*)\/%22/);t&&2==t.length&&(e.image=t[1])}this.cache=d(e.url,e.title,e.description,e.image,e.image_alt),""===this.cache&&(this.container=void 0),this.show()}show(){this.container&&this.cache&&this.isActive&&(this.lightMode?(this.container.style.background="white",this.container.style.boxShadow="0 30px 90px -20px rgba(0, 0, 0, 0.3)"):(this.container.style.background="#202020",this.container.style.boxShadow="0 30px 90px -20px rgba(120, 120, 120, 0.3)"),this.container.style.zIndex="20000",this.container.style.display="inline-block",this.container.innerHTML=this.cache),this.firstChild&&(this.firstChild.style.cursor="")}set light(t){this.lightMode!==t&&(this.lightMode=t,this.show())}get light(){return this.lightMode}}function d(t,e,i,n,s){if(!t)return"";t=t.replace(o.PROXY,"");let r="";if(n)try{o.allowedProtocol(n)||(n=new URL(n,t).toString()),r+=`<img src="${n}" ${s=s?`alt="${s}"`:""} style="background-color:white; margin-bottom: 1.5rem;">`}catch(t){}return e&&(r+=`<h4>${e}</h4>`),i&&(r+=i),""!=r&&(r+=`<hr style="border: 0px; height:1px; background:#888;"/><a style="font-size:x-small; display:block" href="${t}" target="_blank">${t}</a>`),a[t]=r,r}function f(){document.getElementById(l)||setTimeout((function(){const t=document.createElement("div");t.id=l,t.style.zIndex="-1000",t.style.width="425px",t.style.padding="15px",t.style.background="white",t.style.boxShadow="0 30px 90px -20px rgba(0, 0, 0, 0.3)",t.style.position="fixed",t.style.display="none",t.style.maxHeight="480px",t.style.overflow="auto",t.setAttribute("data-active","true"),t.addEventListener("mouseenter",(()=>{t.style.display="inline-block",t.style.zIndex="20000",t.setAttribute("data-active","true")})),t.addEventListener("mouseleave",(()=>{t.style.display="none",t.style.zIndex="-1000",t.setAttribute("data-active","false")})),document.body.appendChild(t)}),0)}function p(t,e,i=0){if(0==i&&function(t){return!!t.search(/wikipedia\.org/gi)}(t))return void p(o.PROXY+t,e,1);let n=new XMLHttpRequest;n.open("GET",t,!0),n.onload=function(t){if(4===n.readyState&&200===n.status)try{let t=n.responseText;try{t=JSON.parse(t).contents}catch(t){}e(t)}catch(t){console.warn("fetching",t)}},n.onerror=function(n){0===i&&p(o.PROXY+t,e,1)},n.send()}customElements.define("preview-link",u)},{"../embed/index":"1h4qj","../preview-lia":"jUClR","../../helper":"967cd","./html":"l4EUr","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],l4EUr:[function(t,e,i){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"parse",(()=>u));var s=t("../../helper");const r=/href=[\"'](.*?)[\"']/gi,o=/src=[\"'](.*?)[\"']/gi,c=/alt=[\"'](.*?)[\"']/gi,l=/<h1.*?>(.*?)<\/h1>/gi,h=/<h2.*?>(.*?)<\/h2>/gi,a=/<title>(.*?)<\/title>/gi;function u(t,e){const i=function(t){const e=g("og:image",t);if(e)return{url:e,alt:g("og:image:alt",t)};const i=p(/<link.*?rel=[\"']image_src[\"'].*?>/gi,t);if(i)return{url:p(r,i)};const n=g("twitter:image",t);if(n)return{url:n,alt:g("twitter:image:alt",t)};const s=p(/<img .*?>/gi,t);return s?{url:p(o,s),alt:p(c,s)}:{}}(e),n=new URL(function(t){return p(/<base.*?href\s*=\s*[\"'](.*?)[\"']>/gi,t)}(e)||t);return{url:t,title:d(e),description:f(n,e),image:i.url,image_alt:i.alt}}function d(t){const e=g("og:title",t);if(e&&e.length>0)return e;const i=g("twitter:title",t);if(i&&i.length>0)return i;const n=p(a,t);if(n&&n.length>0)return n;const s=p(l,t);if(s&&s.length>0)return s;const r=p(h,t);return r&&r.length>0?r:void 0}function f(t,e){const i=g("og:description",e);if(i&&i.length>0)return i;const n=g("twitter:description",e);if(n&&n.length>0)return n;const r=p(/<meta.*?name=[\"']description[\"'].*?>/gi,e);if(r){const t=p(/content=[\"'](.*?)[\"']/gi,r);if(t&&t.length>0)return t}let o=p(/<p>([\s\S]+?)<\/p>/gi,e);return o?(o=o.replace(/(href|src)\s*=\s*[\"'].*?[\"']/g,(function(e){return function(t,e){const i=e.search(/[\"']/);e.startsWith("href")&&(e+=' target="blank_"');const n=e.slice(0,i+1),r=e.slice(i+1);if(s.allowedProtocol(n))return e;if(r.startsWith("//"))return e;if(r.startsWith("/"))return n+t.origin+r;if(r.startsWith("#"))return n+t.href+r;return n+t.origin+"/"+r}(t,e)})),o):void 0}function p(t,e){const i=e.matchAll(t).next();return i.value?i.value[i.value.length-1]:void 0}function g(t,e){const i=p(new RegExp(`<meta[^>]+?property=["']${t}["'][^>]*?>`,"gi"),e);if(i)return p(/content=[\"'](.*?)[\"']/gi,i)}},{"../../helper":"967cd","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}]},["d6Fgm"],"d6Fgm","parcelRequire55a5");