UNPKG

@diplodoc/transform

Version:

A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML

3 lines (2 loc) 3.59 kB
"use strict";(()=>{(()=>{var y=t=>{let e=t.composedPath();return Array.isArray(e)&&e.length>0?e[0]:t.target},I=t=>{let e=y(t);return!e||!e.matches},h={TITLE:".yfm .yfm-term_title",CONTENT:".yfm .yfm-term_dfn"},u="open",f=h.CONTENT.replace(/\./g,"")+" "+u,a=!0;function S(t,e){let n=e.getAttribute("id")||Math.random().toString(36).substr(2,8);t==null||t.setAttribute("term-id",n)}function B(t,e){let n=e.getAttribute("aria-live")||"polite";t==null||t.setAttribute("aria-live",n),t==null||t.setAttribute("aria-modal","true")}function v(t,e){let{x:n,y:o,right:i,left:c,width:s,height:p}=e.getBoundingClientRect(),r=T(e);if(!r)return;let{right:l,left:O}=r.getBoundingClientRect();if((l<c||O>i)&&!a){m(t);return}a&&r&&(r.addEventListener("scroll",L),a=!1);let R=Number(t.getAttribute("relativeX")),k=Number(t.getAttribute("relativeY"));if(R===n&&k===o)return;t.setAttribute("relativeX",String(n)),t.setAttribute("relativeY",String(o));let x=p+5,d=t.parentElement;if(!d)return;let{width:b}=t.getBoundingClientRect(),{left:M}=d.getBoundingClientRect(),E=Number(g(e).left),N=b+E,W=E-b<0,w=N>document.body.clientWidth,X=(w||document.dir==="rtl")&&!W?b-s:0,Y=g(d).top-d.offsetTop,_=w?N-document.body.clientWidth+5:0,D=g(e).left-M+d.offsetLeft-X,q=D+b>=document.body.clientWidth;t.style.top=Number(g(e).top+x-Y)+"px",t.style.left=Number(D-(q?_:0))+"px"}function L(){let t=document.getElementsByClassName(f)[0];if(!t)return;let e=t.getAttribute("term-id")||"",n=document.getElementById(e);n&&v(t,n)}function T(t){return t?t.closest("table")||t.closest("code")||t.parentElement:null}function A(t){let e=document.getElementsByClassName(f)[0],n=t.getAttribute("id"),i=`${t.getAttribute("term-key")}_element`,c=t.closest(".wide-container"),s;if(c){let l=t.closest(".wide-content");if(!l)return;s=l.querySelector(`[id="${i}"]`)}else s=document.getElementById(i);if(e&&n===e.getAttribute("term-id")){m(e);return}let r=t.closest([h.CONTENT.replace(" ",""),u].join("."));e&&!r&&m(e),!(!t.matches(h.TITLE)||!s)&&(S(s,t),B(s,t),v(s,t),s.classList.toggle(u),P(s))}function m(t){t.classList.remove(u);let e=C(t),n=T(e);n&&(n.removeEventListener("scroll",L),a=!0)}function g(t){let e=t.getBoundingClientRect(),n=document.body,o=document.documentElement,i=window.pageYOffset||o.scrollTop||n.scrollTop,c=window.pageXOffset||o.scrollLeft||n.scrollLeft,s=o.clientTop||n.clientTop||0,p=o.clientLeft||n.clientLeft||0,r=e.top+i-s,l=e.left+c-p;return{top:Math.round(r),left:Math.round(l)}}function P(t){let e=t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=e[0],o=e[e.length-1];n&&n.focus(),t.addEventListener("keydown",function(i){(i.key==="Tab"||i.keyCode===9)&&(i.shiftKey?document.activeElement===n&&(o.focus(),i.preventDefault()):document.activeElement===o&&(n.focus(),i.preventDefault()))})}function C(t){let e=t.getAttribute("term-id");if(!e)return null;if(t.closest(".wide-container")){let o=t.closest(".wide-content");return o?o.querySelector(`[id="${e}"]`):null}return document.getElementById(e)}typeof document!="undefined"&&(document.addEventListener("click",t=>{(y(t)||!I(t))&&A(y(t))}),document.addEventListener("keydown",t=>{var e;let n=document.getElementsByClassName(f)[0];t.key==="Enter"&&document.activeElement&&A(document.activeElement),t.key==="Escape"&&n&&(m(n),(e=C(n))==null||e.focus())}),window.addEventListener("resize",()=>{let t=document.getElementsByClassName(f)[0];if(!t)return;let e=t.getAttribute("term-id")||"",n=document.getElementById(e);if(!n){t.classList.toggle(u);return}v(t,n)}))})();})(); //# sourceMappingURL=_yfm-only.min.js.map