UNPKG

@n8d/htwoo-core

Version:

hTWOo is a Fluent Design Framework purely in HTML and CSS

2 lines (1 loc) • 2.79 kB
define(["exports"],(function(e){"use strict";var t,o,s,i,r,n,l,a,c,h,f=function(e,t,o,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(e,o):i?i.value=o:t.set(e,o),o},d=function(e,t,o,s){if("a"===o&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?s:"a"===o?s.call(e):s?s.value:t.get(e)};e.DialogType=void 0,(h=e.DialogType||(e.DialogType={})).DIALOG="dialog",h.MODAL="modal";class p{constructor(h,w,u=e.DialogType.DIALOG,g=p.options){t.set(this,void 0),o.set(this,void 0),s.set(this,void 0),i.set(this,void 0),r.set(this,{closer:null,backdropCloser:!0,escCloser:!0}),n.set(this,(()=>{if(console.debug("-> Fired showDialog -- ",d(this,o,"f")),d(this,s,"f")===e.DialogType.DIALOG)d(this,o,"f").show();else{if(d(this,s,"f")!==e.DialogType.MODAL)throw new Error(`Invalid dialog type specified for ${d(this,o,"f")}`);d(this,o,"f").showModal(),d(this,o,"f").addEventListener("click",d(this,l,"f"))}d(this,i,"f")&&d(this,i,"f").addEventListener("click",d(this,c,"f"));d(this,o,"f").querySelector("[autofocus]")&&(console.debug("No Autofocus"),d(this,o,"f").focus()),d(this,o,"f").addEventListener("keydown",d(this,a,"f"))})),l.set(this,(e=>{const t=d(this,o,"f").getBoundingClientRect();t.top<=e.clientY&&e.clientY<=t.top+t.height&&t.left<=e.clientX&&e.clientX<=t.left+t.width||e.target!==d(this,o,"f")||d(this,o,"f").close()})),a.set(this,(e=>{27===e.keyCode&&d(this,o,"f").close()})),c.set(this,(e=>{console.debug("closing dialog"),d(this,o,"f").close()})),console.debug("Register dialog",u);const y=document.querySelector(h),v=document.querySelector(w);if(!y)throw new Error(`Launcher '${h}' Element cannot be found`);if(f(this,t,y,"f"),!v)throw new Error(`Dialog '${w}' Element not found`);if(f(this,o,v,"f"),d(this,t,"f").addEventListener("click",d(this,n,"f")),f(this,s,u,"f"),f(this,r,{closer:void 0===g.closer?null:g.closer,backdropCloser:void 0===g.backdropCloser||g.backdropCloser,escCloser:void 0===g.escCloser||g.escCloser},"f"),null!==g.closer){const e=v.querySelector(g.closer);d(this,r,"f").closer=g.closer,e&&f(this,i,e,"f")}console.debug("AFTER LAUNCH ::: ",d(this,s,"f"),d(this,t,"f"),d(this,o,"f"),d(this,i,"f"))}}t=new WeakMap,o=new WeakMap,s=new WeakMap,i=new WeakMap,r=new WeakMap,n=new WeakMap,l=new WeakMap,a=new WeakMap,c=new WeakMap,p.options={closer:null,backdropCloser:!0,escCloser:!0},p.dialogType=e.DialogType,e.HOODialog=p}));