UNPKG

d1-web

Version:

Lightweight responsive front-end framework

4 lines (3 loc) 26.1 kB
/*! d1-web/basic v2.7.5 */ !function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?a(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}function s(t){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,i=s(t);if(e){var a=s(this).constructor;n=Reflect.construct(i,arguments,a)}else n=i.apply(this,arguments);return c(this,n)}}function h(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")} /*! app - core of d1-web */()}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){var e=this;do{if(e.matches(t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var f=function(){function e(){t(this,e),this.sequence=0,this.plugins={},this.handlers={},this.opt={plug:{},debug:0,cAct:"act",cHide:"hide",cToggle:"toggle",cOff:"off",cClose:"close",cJs:"js",hClose:"#cancel",hOk:"#ok",sCancel:"Cancel",sOk:"OK"}}return n(e,[{key:"init",value:function(t){var e=this;document.body.classList.add(this.opt.cJs),this.fire("start"),t||(t=document.body.dataset.d1)&&(t=this.parse(t)),this.setOpt(t),this.dbg(["opt",this.opt]),this.fire("options"),this.initPlugins(),this.b([window],"hashchange",(function(t){return e.on("hashchange",t)})),this.b([document],["invalid","focus","blur"],(function(t){return e.on(t.type,t)}),!0),this.b([document],["click","keydown","input","change","submit"],(function(t){return e.on(t.type,t)})),location.hash&&this.on("hashchange"),this.fire("after"),this.fire("ready")}},{key:"on",value:function(t,e){this.fire("before",e),this.fire(t,e),this.fire("after",e)}},{key:"arrange",value:function(t){t&&this.fire("arrange",{n:t})}},{key:"setOpt",value:function(t){var e=this;t&&Object.keys(t).forEach((function(n){return e.opt[n]=t[n]}))}},{key:"plug",value:function(t,e){var n=new t;this.plugins[e||n.name]=n}},{key:"initPlugins",value:function(){var t=this;this.opt.disable&&this.opt.disable.forEach((function(e){return delete t.plugins[e]})),this.dbg(["plugins",this.plugins]),Object.keys(this.plugins).forEach((function(e){t.plugins[e].install(t),t.fire("plugin",{name:e,plugin:t.plugins[e]})})),this.fire("init"),this.fire("arrange"),this.fire("plugins")}},{key:"pf",value:function(t,e){for(var n,i=arguments.length,a=new Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];this.plugins[t]&&this.plugins[t][e]?(n=this.plugins[t])[e].apply(n,a):this.dbg(["no plugin function",t+"."+e+"()"],-1)}},{key:"toggle",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];this.pf.apply(this,["toggle","toggle"].concat(e))}},{key:"fetch",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];this.pf.apply(this,["fetch","fetch"].concat(e))}},{key:"dialog",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];this.pf.apply(this,["dialog","openDialog"].concat(e))}},{key:"fire",value:function(t,e){var n,i=this;(e=null!==(n=e)&&void 0!==n?n:{}).type||(e.type=t),this.dbg(["fire "+t,e]),this.handlers[t]&&this.handlers[t].forEach((function(t){var n;return null!==(n=e)&&void 0!==n&&n.unfire?null:t.call(i,e)}))}},{key:"listen",value:function(t,e){this.h(t,"",e)}},{key:"h",value:function(t,e,n,i){var a=this;t instanceof Array?t.forEach((function(t){return a.h(t,e,n,i)})):(this.handlers[t]||(this.handlers[t]=[]),this.handlers[t][i?"unshift":"push"]((function(t){e&&(t.recv=t.target.closest?t.target.closest(e):null),e&&!t.recv||n(t)})))}},{key:"dispatch",value:function(t,e,n){n||(n={bubbles:!0,cancelable:!0,view:window}),"function"==typeof Event&&(e instanceof Array?e.forEach((function(e){return t.dispatchEvent(new Event(e,n))})):t.dispatchEvent(new Event(e,n)))}},{key:"isDebug",value:function(t){return this.opt.debug>(t||0)||-1!=location.href.indexOf("d1debug")}},{key:"dbg",value:function(t,e,n){this.isDebug(e)&&console[n||e<0?"error":"log"](t)}},{key:"seq",value:function(){return++this.sequence}},{key:"a",value:function(t){return t?Array.prototype.slice.call(t):t}},{key:"path",value:function(t,e,n){if(e){"string"===this.typeOf(e)&&(e=e.split("."));for(var i=0;i<e.length;i++)if(e[i]||0===e[i]){if(null===t||void 0===t[e[i]])return n;t=t[e[i]]}}return t}},{key:"q",value:function(t,e){try{return(e||document).querySelector(t)}catch(t){return null}}},{key:"qq",value:function(t,e){try{return this.a((e||document).querySelectorAll(t))}catch(t){return[]}}},{key:"next",value:function(t,e,n){for(;t=t[n?"previousElementSibling":"nextElementSibling"];)if(t.matches(e))return t}},{key:"nn",value:function(t){return t?"string"==typeof t?this.qq(t):t.tagName?[t]:this.a(t):[]}},{key:"b",value:function(t,e,n,i){e||this.e(t,n),n&&this.nn(t).forEach((function(t){return e instanceof Array?e.forEach((function(e){return t.addEventListener(e,(function(t){return n(t)}),i)})):t.addEventListener(e,(function(t){return n(t)}),i)}))}},{key:"e",value:function(t,e){var n=this;e&&this.nn(t).forEach((function(t){return e.call(n,t)}))}},{key:"ee",value:function(t,e,n){this.e(this.qq(e,t),n)}},{key:"cls",value:function(t,e,n,i){var a,o,r=this,s=i?[n,e]:[e,n];(s=s.map((function(t){return t&&"array"!==r.typeOf(t)?t.split(/\s+/).filter((function(t){return t})):t})))[1]&&(a=t.classList).remove.apply(a,h(s[1])),s[0]&&(o=t.classList).add.apply(o,h(s[0]))}},{key:"typeOf",value:function(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()}},{key:"parse",value:function(t,e){var n="";try{n=JSON.parse(t)}catch(i){this.dbg(["JSON parse failed",t],-1),n=!0===e?t:void 0===e?null:e}return n}},{key:"ins",value:function(t,e,n,i,a){var o=document.createElement(t||"span");if("array"===this.typeOf(e)?e.forEach((function(t){return t.nodeType?o.appendChild(t):o.innerHTML+=t})):e&&e.nodeType?o.appendChild(e):e&&(o.innerHTML=e),n)for(var r in"string"===this.typeOf(n)&&(n={className:n}),n)null!==n[r]&&void 0!==n[r]&&(r.match(/-/)?o.setAttribute(r.replace(/^-/,""),n[r]):o[r]=n[r]);return i?a?i.parentNode.insertBefore(o,a<0?i:i.nextSibling):!1===a?i.insertBefore(o,i.firstChild):i.appendChild(o):o}},{key:"clr",value:function(t){if(t)for(;t.firstChild;)t.removeChild(t.firstChild)}},{key:"x",value:function(t,e,n){return this.ins("a",this.i("close","&#x2715;"),{href:this.opt.hClose,className:n||""},t,e)}},{key:"i",value:function(t,e){return this.plugins.icons?this.plugins.icons.i(t,e):this.ins("span",e||t)}},{key:"vis",value:function(t){return t&&!t.classList.contains(this.opt.cOff)}},{key:"fixIds",value:function(t){var e=this;this.ee(t,"[id]",(function(n){var i=n.id,a="id-"+e.seq();n.id=a,e.ee(t,'a[href="#'+i+'"]',(function(t){return t.href="#"+a})),e.ee(t,'label[for="'+i+'"]',(function(t){return t.htmlFor=a}))}))}}]),e}(),d=function(){function e(n){t(this,e),this.app=null,this.name=n||"plugin",this.opt={}}return n(e,[{key:"install",value:function(t){var e=this;t.opt.plug[this.name]||(t.opt.plug[this.name]={});var n=t.opt.plug[this.name];Object.keys(this.opt).forEach((function(t){return t in n?null:n[t]=e.opt[t]})),this.opt=n,this.app=t,this.app.listen("init",(function(t){return e.init()})),this.arrange&&this.app.listen("arrange",(function(t){return e.arrange(t)}))}},{key:"init",value:function(){console.log("plugin.init()")}}]),e}(),g=function(e){r(a,e);var i=u(a);function a(){var e;return t(this,a),(e=i.call(this,"toggle")).nEsc=0,e.opt={keepHash:!0,mediaSuffixes:["-mobile","-desktop"],dlgUnscroll:!0,qTrg:"[id].target",qPop:".pop>div[id]",qNav:".nav ul",qDlg:".dlg",qTab:".tabs+div>div[id]",qTre:"ul.tree ul",qDrw:".drawer[id]",qAccRoot:"ul.tree.accordion",qAcc:"ul.tree.accordion ul",qGal:".gal>a[id]",qSubMem:".tabs.mem+div>div[id], ul.mem:not(.nav) ul",qDrawer:".drawer[id]:not(.shift)",qTip:'[data-tip=""][title], .tip[title]',qModal:".gal>a[id], .dlg",qMassTgl:"a[data-nodes]:not([data-set])",cMem:"mem",cFade:"fade",cTarget:"target",cToggle:"toggle",hUnhash:"#_"},e}return n(a,[{key:"init",value:function(){var t=this,e=this.app;e.e("a[data-href]",(function(t){return t.href=t.dataset.href})),e.listen("before",(function(e){return"click"==(null==e?void 0:e.type)?t.beforeClick(e):null})),e.listen("keydown",(function(e){return t.onKey(e)})),e.listen("click",(function(e){return t.onClick(e)})),e.h("click",'a[href^="#"]',(function(e){return t.onClickHash(e)})),e.listen("hashchange",(function(e){return t.onHash(e)})),e.listen("esc",(function(e){return t.esc(e)})),e.listen("active",(function(e){return t.hiliteLink(e.n,e.on)})),e.h("click",this.opt.qMassTgl,(function(e){return t.massToggle(e.recv,e)})),e.listen("modal",(function(e){return t.modalStyle(e)}));var n=this.opt;this.opt.qTgl=this.opt.mediaSuffixes.concat([""]).map((function(t){return"."+e.opt.cToggle+t})).join(", "),this.opt.qUnpop=[n.qPop,n.qNav,n.qDlg,n.qDrw].join(", "),this.opt.qUnpopOn=[n.qPop,n.qNav,n.qDlg,n.qDrw].map((function(t){return t+":not(."+e.opt.cOff+")"})).join(", "),this.arrangeOnce()}},{key:"arrangeOnce",value:function(){var t=this,e=null,n=this.app,i=this.opt,a=[i.qTrg,i.qPop,i.qNav,i.qDlg,i.qTab,i.qTre,i.qDrw].join(", ");n.e(a,(function(e){return t.initToggler(e)})),this.opt.mediaSuffixes.forEach((function(e){return n.e(t.opt.qTrg+e,(function(n){return t.initToggler(n,e)}))})),n.e(this.opt.qMassTgl,(function(e){return n.e(e.dataset.nodes,(function(e){return t.initToggler(e,"",!0)}))})),n.ee(e,this.opt.qNav+", "+this.opt.qTre,(function(e){return t.attachSubNav(e)})),n.ee(e,this.opt.qGal+":last-child",(function(t){return n.x(t,1)})),n.ee(e,this.opt.qSubMem,(function(e){return e.classList.add(t.opt.cMem)})),n.ee(e,"[id]",(function(e){return t.restoreVisibility(e)})),n.ee(e,this.opt.qTab+":not(."+n.opt.cOff+") ~ [id]:not(."+n.opt.cOff+")",(function(e){return t.tgl(e,0)})),n.ee(e,this.opt.qTab+":first-of-type",(function(e){return n.qq(t.opt.qTab,e.parentNode).filter((function(t){return n.vis(t)})).length?null:t.tgl(n.q(n.q('a[href^="#"]',e.parentNode.previousElementSibling).hash),1)})),n.ee(e,"."+n.opt.cToggle+"[id]",(function(e){return t.hiliteLinks(e)})),n.ee(e,this.opt.qMassTgl,(function(e){return t.massToggle(e)}))}},{key:"arrange",value:function(t){var e=t.n;this.app.ee(e,this.opt.qTip,(function(t){t.setAttribute("data-tip",t.title.replace(/\s\s+/g,"\n")),t.removeAttribute("title")}))}},{key:"modalStyle",value:function(t,e){var n=document.body.classList.contains(this.opt.cFade),i=this.app.q(this.opt.qDlg+":not(."+this.app.opt.cOff+"), "+this.opt.qGal+'[id="'+location.hash.substr(1)+'"]');if(n!==!!i){var a=window.innerWidth-document.documentElement.clientWidth,o=document.body.style;document.body.classList[i?"add":"remove"](this.opt.cFade),this.opt.dlgUnscroll&&(o.overflow=i?"hidden":"",i&&o.paddingRight||(o.paddingRight=i?a+"px":"")),this.app.dbg(["modalStyle",i,o.paddingRight])}if(i&&null!=t&&t.show){var r=this.app.q('input:not([type="hidden"]), select, textarea, a.btn',i),s=this.app.q(":focus",i);r&&!s&&(this.app.dbg(["focus",i,r,s]),r.focus(),"text"==r.type&&r.select())}}},{key:"esc",value:function(t){this.app.dbg(["esc",t]),t&&t.preventDefault&&t.preventDefault(),this.unpop(),this.addHistory(),this.app.fire("modal",{n:null,src:"esc",show:!1})}},{key:"addHistory",value:function(t){t?history.pushState({},"",t):location.hash&&(location.hash=this.opt.hUnhash,location.hash&&history.replaceState({},"",location.pathname+location.search))}},{key:"onKey",value:function(t){var e=t.keyCode;this.app.dbg(["keydown",e,this.nEsc]),27==e&&this.nEsc>=4&&localStorage.clear(),27==e&&this.app.fire("esc",t),this.nEsc=27==e&&this.nEsc<4?this.nEsc+1:0}},{key:"onHash",value:function(t){var e;if(null===(e=t?t.newURL:location.hash)||void 0===e||!e.match(new RegExp(this.opt.hUnhash+"$")))if(this.app.dbg(["hashchange",location.hash,null==t?void 0:t.newURL]),this.nEsc=0,location.hash&&location.hash!==this.app.opt.hClose)if("#unstore"===location.hash)localStorage.clear();else{var n=this.app.q(location.hash);if(n)n.matches(this.opt.qTgl)&&(this.unpop(),this.toggle(n,!0),this.opt.keepHash||this.addHistory());this.app.fire("modal",{n:n,src:"#",show:null})}else this.app.fire("esc",t)}},{key:"beforeClick",value:function(t){if(location.hash){var e=this.app.q(location.hash);(!e||e.matches(this.opt.qUnpopOn)&&!e.contains(t.target))&&this.addHistory()}this.unpop(t.target,!0)}},{key:"onClickHash",value:function(t){var e=t.recv;if(e&&e.hash===this.app.opt.hClose){t.preventDefault();var n=e.closest(this.opt.qTgl);this.app.dbg(["close",this.opt.qTgl,e,n]),n?(this.tgl(n,!1),this.addHistory(),n.matches(this.opt.qModal)&&this.app.fire("modal",{n:n,src:"x",show:!1})):this.app.fire("esc",t)}else{var i=this.app.q(e.hash);i&&i.matches(this.opt.qTgl)&&(t.preventDefault(),i=this.toggle(i),this.app.vis(i)&&this.opt.keepHash?this.addHistory(e.hash):this.addHistory());var a=t.recv.closest(this.opt.qUnpopOn);i&&a&&!a.contains(i)&&this.toggle(a,!1)}}},{key:"onClick",value:function(t){this.nEsc=0}},{key:"initToggler",value:function(t,e,n){t.classList.remove(this.opt.cTarget+(e||"")),t.classList.add(this.app.opt.cToggle+(e||"")),n||this.tgl(t,0)}},{key:"attachSubNav",value:function(t){var e=this.app.a(t.parentNode.children).filter((function(t){return"A"==t.tagName})),n=e.filter((function(t){return!t.href}))[0]||e[0]||this.app.ins(""," ",{},t.parentNode,!1)&&this.app.ins("a",this.app.i("toggle","[+]"),{},t.parentNode,!1);n&&(t.id||(t.id="ul-"+this.app.seq()),n.href="#"+t.id)}},{key:"toggle",value:function(t,e,n,i){var a=t?t.tagName?t:this.app.q(t):null;if(a){if(a.matches(this.opt.qTab)&&void 0===e&&(e=!0),this.app.fire("beforetoggle",{n:a,on:e,deep:n}),this.tgl(a,e),this.app.dbg(["toggle"+(n?" deep":""),e,a],n?2:1),this.app.vis(a)&&this.fixPosition(a),-1!=n&&(n||(this.toggleDependent(a),i&&this.opt.keepHash&&(a.id=i,this.addHistory("#"+i))),this.storeVisibility(a),!n&&a.matches(this.opt.qModal))){var o=void 0===e?this.app.vis(a):e;this.app.fire("modal",{n:a,src:"toggle",show:o})}this.app.fire("aftertoggle",{n:a,on:e,deep:n})}return a}},{key:"tgl",value:function(t,e){var n;t&&t.classList[e?"remove":void 0===e?"toggle":"add"](this.app.opt.cOff),this.hiliteLinks(t),e=null!==(n=e)&&void 0!==n?n:this.app.vis(t),this.app.fire("toggle",{n:t,on:e})}},{key:"toggleDependent",value:function(t){var e=this;this.app.vis(t)&&(t.matches(this.opt.qDlg)||(t.matches(this.opt.qTab)?this.app.e(t.parentNode.children,(function(n){return n==t?null:e.toggle(n,!1,1)})):t.matches(this.opt.qAcc)&&this.app.ee(t.closest(this.opt.qAccRoot),this.opt.qAcc,(function(n){return n.contains(t)?null:e.toggle(n,!1,1)}))))}},{key:"massToggle",value:function(t,e){var n=this;e&&e.preventDefault();var i=this.app.vis(this.app.q(t.dataset.nodes));e&&(i=!i),this.app.fire("active",{n:t,on:i}),e&&(this.app.qq(t.dataset.nodes).forEach((function(t){return n.toggle(t,i)})),this.addHistory())}},{key:"unpop",value:function(t,e){var n=this,i=[t];if(t){var a=t.closest("a");a&&a.hash&&i.push(this.app.q(a.hash))}this.app.dbg(["unpop",i]);var o=this.app.qq(this.opt.qUnpopOn).filter((function(t){return!(i&&i.filter((function(e){return e&&e.tagName&&t.contains(e)})).length)}));e||(o=o.filter((function(t){return!n.app.q(n.opt.qUnpopOn,t)}))),o=o.filter((function(t){return!n.containsRels(t)})),this.app.e(o,(function(t){return n.toggle(t,!1,!e)}))}},{key:"containsRels",value:function(t){return this.app.qq(this.opt.qUnpopOn).map((function(t){return t.vRel})).filter((function(t){return t})).filter((function(e){return t.contains(e)})).length}},{key:"storeVisibility",value:function(t){t&&t.id&&t.classList.contains(this.opt.cMem)&&localStorage.setItem("vis#"+t.id,this.app.vis(t)?1:-1)}},{key:"restoreVisibility",value:function(t){if(t&&t.id&&t.classList&&t.classList.contains(this.opt.cMem)){var e=localStorage.getItem("vis#"+t.id);e&&this.toggle(t,e>0,-1)}}},{key:"hiliteLinks",value:function(t){var e=this,n=this.app.vis(t);t.id&&this.app.e('a[href="#'+t.id+'"]',(function(t){return e.app.fire("active",{n:t,on:n})}))}},{key:"hiliteLink",value:function(t,e){t.classList[e?"add":"remove"](this.app.opt.cAct),this.app.cls(t,t.dataset.act,t.dataset.inact,!e)}},{key:"fixPosition",value:function(t){var e=t.matches(this.opt.qNav),n=e?window.getComputedStyle(t.parentNode.parentNode):null,i=!!n&&"flex"!=n.display;if(t.matches(this.opt.qPop)||e){var a=t.style,o=t.parentNode,r=o.nextElementSibling,s=(r=r&&"INPUT"==r.tagName?r:null)||t.parentNode;if(s){var l=document.documentElement.clientWidth;a.right="auto",a.left=i?"100%":0,a.top=i?0:"100%";var c=t.getBoundingClientRect(),u=s.getBoundingClientRect(),h=c.right>l,p=c.bottom>window.innerHeight,f=u.width>300;i?a.left=h||f?"3em":"100%":h&&c.width>u.width&&u.right>c.width?a.left=u.width-c.width+"px":a.left=0,i?a.top=h||f?"90%":0:p&&u.top>c.height?a.top=(r?-u.height:0)-c.height+"px":a.top="100%",r&&(o.style.verticalAlign="bottom")}}}}]),a}(d),v=function(){function e(){t(this,e)}return n(e,null,[{key:"build",value:function(t,n){t=e.url2a(t);var i=e.get(!0,t);Object.keys(n).forEach((function(t){return i[encodeURIComponent(t)]=encodeURIComponent(n[t])}));var a=Object.keys(i).map((function(t){return t+"="+i[t]})).join("&");return t.host?t.protocol+"//"+t.host+t.pathname+(a?"?"+a:"")+t.hash:t.href.replace(/[\?#].*$/,"")+(a?"?"+a:"")+t.hash}},{key:"get",value:function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!0===n&&(n=location.href),!n)return null;var i,a={},o=(n=e.url2a(n)).search?n.search.replace(/^\?/,"").split("&"):[];for(i=0;i<o.length;i++){var r=o[i].split("=");a[r[0]]=decodeURIComponent(r[1].replace(/\+/g," "))}return!0===t?a:a[t]}},{key:"url2a",value:function(t){if(t&&!t.tagName){var e=t;(t=document.createElement("a")).href=e}return t}}]),e}(),y=function(e){r(a,e);var i=u(a);function a(){var e;return t(this,a),(e=i.call(this,"dialog")).dlg=null,e.opt={ccDlg:"dlg rad",customDialog:!0,aConfirm:"_confirm",cBtn:"btn pad",qAlert:"a.alert",qDialog:'a.dialog, input.dialog, [type="submit"].dialog'},e}return n(a,[{key:"init",value:function(){var t=this;this.opt.ccDlg=this.app.opt.cToggle+" "+this.app.opt.cOff+" "+this.opt.ccDlg,this.dlg||(this.dlg=this.app.ins("div","",{className:this.opt.ccDlg},document.body)),this.app.h("click",this.opt.qAlert+", "+this.opt.qDialog,(function(e){return t.onClick(e)}))}},{key:"openDialog",value:function(t,e,n,i){var a=this;i=i||{};var o=this.dlg,r=this.app;o.className=this.opt.ccDlg+(i.class?" "+i.class:""),r.clr(o),t.nodeType&&(t=t.dataset.head||"");var s=r.ins("div","","row bg",o),l=r.ins("h3"," "+(t||""),"fit pad",s);if(i.icon){var c=i.icon.match(/(\S+)(\s(.*))?/);c&&l.insertBefore(r.ins("span",r.i(c[1]),{className:c[3]||""}),l.firstChild)}r.x(s,0,"pad hover col-0");var u=r.ins("div","","pad",o);e&&r.ins("div",e,{},u);var h={value:!0};(i.def||""===i.def)&&(h=r.ins("input","",{value:i.def},u));var p=r.ins("p","","r",u),f=this.opt.cBtn+" "+(i.btn||(" "==e.substr(0,1)?"bg-e":"")),d=this.opt.cBtn+" bg-n",g=r.ins("a",i.ok||r.opt.sOk,{href:r.opt.hClose,className:i.rev?d:f},p);n&&(r.ins("a",i.cancel||r.opt.sCancel,{href:r.opt.hClose,className:i.rev?f:d},g,i.rev?-1:1),r.ins(""," ",{},g,i.rev?-1:1),g.href=r.opt.hOk,r.b([g],"click",(function(t){t.preventDefault(),a.callback(n,h.value,t)})),h.tagName&&r.b([h],"keyup",(function(t){return 13==t.keyCode?a.callback(n,h.value,t):null}))),this.app.toggle(this.dlg,!0,!1,"dlg-"+this.app.seq())}},{key:"closeDialog",value:function(){this.app.toggle(this.dlg,!1)}},{key:"callback",value:function(t,e,n){t.call(this,e,n)||this.closeDialog()}},{key:"onClick",value:function(t){var e=this,n=t.recv;if(!n.form||n.form.checkValidity()){t.preventDefault();var i=this.app,a=(n.dataset.head||"").replace(/%([\w\-]+)%/g,(function(t,e){return n.getAttribute(e)})),o=n.dataset.pic||"",r=n.dataset.prompt||"",s=(n.dataset.caption||n.title||r||"!").replace(/%([\w\-]+)%/g,(function(t,e){return n.getAttribute(e)})),l="reverse"in n.dataset,c=n.dataset.src;!(c=c?i.q(c):null)&&n.form&&(c=n.form.elements[r]);var u=null,h=n.matches(this.opt.qAlert),p=r?c?c.value:v.get(r,n)||"":null;return p&&"go"in n.dataset?this.onAnswer(n,p,r):this.opt.customDialog?this.openDialog(a,s,h?null:function(t){return e.onAnswer(n,t,r)},{ok:n.dataset.ok,cancel:n.dataset.cancel,icon:o,btn:" "==s.substr(0,1)||n&&n.className.match(/-[we]\b/)?"bg-e":"bg-y",def:p,rev:l}):(u=h?alert(s):r?prompt(s,p):confirm(s),this.onAnswer(n,u,r)),this.dlg.vRel=n,this.dlg}this.app.fire("validate",t)}},{key:"onAnswer",value:function(t,e,n,i){var a=this.app;if(e||""===e){if(t&&t.form){if(!0!==e){var o=t.form.elements[n]||a.ins("input","",{type:"hidden",name:n},t.form);o&&(o.value=e)}(t.form.reportValidity?t.form.reportValidity():t.form.checkValidity())?(a.q('[type="hidden"][name="'+t.name+'"]',t.form)||a.ins("input","",{type:"hidden",name:t.name,value:t.value},t.form),t.form.elements[this.opt.aConfirm]||a.ins("input","",{type:"hidden",name:this.opt.aConfirm,value:1},t.form),t.form.submit()):this.closeDialog()}else if(t&&t.href){var r,s="#"===(t.getAttribute("href")||"").substr(0,1),l="_blank"==t.target;if((s||l)&&this.closeDialog(),s)r=t.hash;else{var c={};c[this.opt.aConfirm]=1,!0!==e&&(c[n]=e),r=v.build(t,c)}"_blank"==t.target?window.open(r,t.target):location.href=r}}else;}}]),a}(d),m=function(e){r(a,e);var i=u(a);function a(){var e;return t(this,a),(e=i.call(this,"gallery")).opt={idPrefix:"pic-",num:!0,cGal:"gal",qGal:".gal>a[id]",qGallery:".gallery",qLinks:'a.pic:not([href^="#"])'},e}return n(a,[{key:"init",value:function(){var t=this;this.app.h("click",this.opt.qGal,(function(e){return t.next(e)})),this.app.listen("hashchange",(function(e){return t.onHash(e)})),this.app.listen("keydown",(function(e){return t.onKey(e)})),this.app.h("click",this.opt.qGallery+" "+this.opt.qLinks,(function(e){return t.prepareByClick(e)})),this.app.e(this.opt.qGallery,(function(e){return t.prepare(e)}))}},{key:"prepareByClick",value:function(t){this.prepare(t.target.closest(this.opt.qGallery))}},{key:"prepare",value:function(t,e){if(!t.dataset.ready){t.dataset.ready=1,e=e?o(o({},this.opt),e):this.opt;var n=this.app,i=n.ins("div","",{className:e.cGal}),a=n.qq(e.qLinks,t),r=a.length;t.vGal&&t.vGal.parentNode.removeChild(t.vGal);for(var s=0,l=0;l<r;l++)if("#"!=(a[l].getAttribute("href")||"").substr(0,1)){var c=n.seq();l||(s=c);var u="#"+e.idPrefix+(l==r-1?s:c+1),h="#"+e.idPrefix+(0==l?s+r-1:c-1),p=n.ins("a","",{className:"gallery-pic swipe drag",id:e.idPrefix+c,href:u,"data-swipe-up":a[l].href||"","data-swipe-right":h,"data-swipe-down":this.app.opt.hClose,"data-swipe-left":u},i);p.vLink=a[l].getAttribute("href")||"",p.vImg=p.vLink;var f=e.num;"num"in t.dataset&&(f=!!t.dataset.num);var d=a[l].title||a[l].dataset.tip||"";p.dataset.caption=f?l+1+"/"+r+(d?" - "+d:""):"",a[l].href="#"+p.id}n.x(i),document.body.appendChild(i),t.vGal=i}}},{key:"next",value:function(t){if(!t.defaultPrevented){var e=t.recv,n=e&&t.clientX>0&&t.clientX<e.clientWidth/3;this.browse(e,n),t.preventDefault()}}},{key:"browse",value:function(t,e){var n=this.app.q(e?'a[href="#'+t.id+'"]':t.hash,t.parentNode);n.id&&(location.hash="#"+n.id)}},{key:"onHash",value:function(){var t=this.app.q(location.hash);t&&(this.loadImg(t),this.loadImg(this.app.q(t.hash)))}},{key:"loadImg",value:function(t){t&&t.vImg&&(t.style.backgroundImage='url("'+t.vImg+'")',t.vImg="")}},{key:"visit",value:function(t){var e=t.vLink;e||(e=(e=window.getComputedStyle(t).backgroundImage).substring(4,e.length-1).replace(/^"|"$/g,"")),e&&(location.href=e)}},{key:"onKey",value:function(t){if(location.hash){var e=this.app.q(location.hash);if(e&&e.hash){var n=t.keyCode;37==n||38==n?this.browse(e,!0):39==n||40==n?this.browse(e):8==n&&this.visit(e)}}}}]),a}(d),b=new f;b.plug(g),b.plug(y),b.plug(m),b.b([document],"DOMContentLoaded",(function(t){return b.init()})),window&&(window.d1=b)}();