UNPKG

@mlikiowa/nanaeo

Version:
3 lines (2 loc) 6.63 kB
"use strict";function _regenerator(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function o(r,n,a,o){var u=n&&n.prototype instanceof c?n:c,s=Object.create(u.prototype);return _regeneratorDefine2(s,"_invoke",function(r,n,a){var o,c,u,s=0,l=a||[],f=!1,d={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return o=t,c=0,u=e,d.n=r,i}};function h(r,n){for(c=r,u=n,t=0;!f&&s&&!a&&t<l.length;t++){var a,o=l[t],h=d.p,m=o[2];r>3?(a=m===n)&&(u=o[(c=o[4])?5:(c=3,3)],o[4]=o[5]=e):o[0]<=h&&((a=r<2&&h<o[1])?(c=0,d.v=n,d.n=o[1]):h<m&&(a=r<3||o[0]>n||n>m)&&(o[4]=r,o[5]=n,d.n=m,c=0))}if(a||r>1)return i;throw f=!0,n}return function(a,l,m){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&h(l,m),c=l,u=m;(t=c<2?e:u)||!f;){o||(c?c<3?(c>1&&(d.n=-1),h(c,u)):d.n=u:d.v=u);try{if(s=2,o){if(c||(a="next"),t=o[a]){if(!(t=t.call(o,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=o["return"])&&t.call(o),c<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),c=1);o=e}else if((t=(f=d.n<0)?u:r.call(n,d))!==i)break}catch(t){o=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(r,a,o),!0),s}var i={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(_regeneratorDefine2(t={},n,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,_regeneratorDefine2(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,_regeneratorDefine2(f,"constructor",s),_regeneratorDefine2(s,"constructor",u),u.displayName="GeneratorFunction",_regeneratorDefine2(s,a,"GeneratorFunction"),_regeneratorDefine2(f),_regeneratorDefine2(f,a,"Generator"),_regeneratorDefine2(f,n,function(){return this}),_regeneratorDefine2(f,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:o,m:d}})()}function _regeneratorDefine2(e,t,r,n){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}_regeneratorDefine2=function(e,t,r,n){function o(t,r){_regeneratorDefine2(e,t,function(e){return this._invoke(t,r,e)})}t?a?a(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},_regeneratorDefine2(e,t,r,n)}function asyncGeneratorStep(e,t,r,n,a,o,i){try{var c=e[o](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,a)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function i(e){asyncGeneratorStep(o,n,a,i,c,"next",e)}function c(e){asyncGeneratorStep(o,n,a,i,c,"throw",e)}i(void 0)})}}var SearchService=function(){var e={queryText:null,data:null,template:'<div id="u-search">\n <div class="modal">\n <header class="modal-header" class="clearfix">\n <form id="u-search-modal-form" class="u-search-form" name="uSearchModalForm">\n <input type="text" id="u-search-modal-input" class="u-search-input" />\n <button type="submit" id="u-search-modal-btn-submit" class="u-search-btn-submit">\n <span class="fa-solid fa-search"></span>\n </button>\n </form>\n <a id="u-search-btn-close" class="btn-close"> <span class="fa-solid fa-times"></span> </a>\n </header>\n <main class="modal-body">\n <ul class="modal-results"></ul>\n </main>\n </div>\n <div id="modal-overlay" class="modal-overlay"></div>\n</div>\n',init:function(){var t=document.createElement("div");t.innerHTML+=e.template,document.body.append(t),document.querySelectorAll(".u-search-form").forEach(function(t){t.addEventListener("submit",e.onSubmit,!1)}),document.querySelector("#u-search-modal-input").addEventListener("input",e.onSubmit),document.querySelector("#u-search-btn-close").addEventListener("click",e.close,!1),document.querySelector("#modal-overlay").addEventListener("click",e.close,!1)},onSubmit:function(t){t.preventDefault();var r=t.target.querySelector(".u-search-input");e.queryText=r?r.value:t.target.value,e.queryText&&e.search()}};return e.search=_asyncToGenerator(_regenerator().m(function t(){var r;return _regenerator().w(function(t){for(;;)switch(t.n){case 0:if(document.querySelectorAll(".u-search-input").forEach(function(t){t.value=e.queryText}),document.querySelector("#u-search").style.display="block",e.data){t.n=2;break}return t.n=1,e.fetchData();case 1:e.data=t.v;case 2:r="",r+=e.buildResultList(e.data.pages),r+=e.buildResultList(e.data.posts),document.querySelector("#u-search .modal-results").innerHTML=r,window.pjax&&pjax.refresh(document.querySelector("#u-search")),document.addEventListener("keydown",function n(t){"Escape"===t.code&&(e.close(),document.removeEventListener("keydown",n))});case 3:return t.a(2)}},t)})),e.close=function(){document.querySelector("#u-search").style.display="none"},e.fetchData=function(){return fetch(SearchServiceDataPath).then(function(e){return e.text()}).then(function(e){return JSON.parse(e)})},e.buildResultList=function(t){var r="";return t.forEach(function(t){t.text&&(t.text=t.text.replace(/12345\d*/g,"")),!t.title&&t.text&&(t.title=t.text.trim().slice(0,15)),e.contentSearch(t)&&(r+=e.buildResult(t.permalink,t.title,t.digest))}),r},e.contentSearch=function(t){var r=t.title.trim().toLowerCase(),n=t.text.trim().toLowerCase(),a=e.queryText.trim().toLowerCase().split(/[-\s]+/),o=!1,i=-1,c=-1,u=-1;return r&&n&&a.forEach(function(e,s){if(i=r.indexOf(e),c=n.indexOf(e),i<0&&c<0?o=!1:(o=!0,c<0&&(c=0),0===s&&(u=c)),o){n=t.text.trim();var l=0,f=0;if(u>=0){f=0===(l=Math.max(u-40,0))?Math.min(200,n.length):Math.min(u+120,n.length);var d=n.substring(l,f);a.forEach(function(e){var t=new RegExp(e,"gi");d=d.replace(t,"<b mark>"+e+"</b>")}),t.digest=d+"......"}else f=Math.min(200,n.length),t.digest=n.trim().substring(0,f)}}),o},e.buildResult=function(t,r,n){var a="";return a+="<li>",a+="<a class='result' href='"+e.getUrlRelativePath(t)+"?keyword="+e.queryText+"'>",a+="<span class='title'>"+r+"</span>",""!==n&&(a+="<span class='digest'>"+n+"</span>"),a+="</a>",a+="</li>"},e.getUrlRelativePath=function(e){var t=e.split("//"),r=t[1].indexOf("/"),n=t[1].substring(r);return-1!=n.indexOf("?")&&(n=n.split("?")[0]),n},{init:function(){e.init()},setQueryText:function(t){e.queryText=t},search:function(){e.search()}}}();Object.freeze(SearchService),SearchService.init(),document.addEventListener("pjax:success",SearchService.init),document.addEventListener("pjax:send",function(){document.querySelector("#u-search").style.display="none"}); //# sourceMappingURL=../../maps/js/search/hexo.js.map