/g,"").replace(/(?.+?<\/b>/g))&&g.push.apply(g,m),f=0,b=g.length;f]*>(.+?)<\/\1>/.exec(c))&&(c=v[2]),!(c=c.replace(/,/g,"").trim())||p.includes(c)||c.includes(". ")||(c=c[0].toUpperCase()+c.substring(1),null==w&&(w=[]),w.includes(c)||w.push(c))}if("standard"!==l.type&&!a||!r)throw null;x=/
(.+?)<\/p>/su.exec(r)[0].replace(/\n+/g," ").replace(/^
(.+?)<\/b><\/p>$/u,"
$1
")}catch(e){e,x=""}if(y={summary:x,titles:w},!t)return y;t(e,y)},fetchTextEnCopyLines:function(){var e,t,i,n,s=(e,t)=>{var i;(i=(null!=t?t:{}).titles)&&(i=i.map((e=>e.replace(/’/g,"'")))),e.textEnCopy=i||!1,e.isDuplicateTextEn&&(e.textEnCopy||(e.textEnCopy=['""'])),m.redraw()};for(e=0,i=(t=this.lines).length;e=0&&1!==n.childsCount&&void 0===n.textEn&&void 0===n.textEnCopy&&(n.textEnCopy="...",this.fetchWiki(n,s))},scroll:function(){var e,n,s;n=(e=Math.round(scrollEl.scrollTop))-e%t,linesEl.style.transform="translateY("+n+"px)",localStorage.taxonTop=e,(s=Math.floor(e/t))===this.start&&this.lines.length===this.len||(this.start=s,this.lines=i.slice(s,s+this.len),a&&(this.finding||this.fetchTextEnCopyLines()),m.redraw()),this.mouseleaveName()},onscroll:function(e){e.redraw=!1,this.scroll()},onwheel:function(e){e.redraw=!1,e.altKey&&(e.preventDefault(),scrollEl.scrollTop+=5*e.deltaY)},onkeydown:function(e){var t;if(!e.repeat&&1!==(t=e.location)&&2!==t&&(document.activeElement===document.body,this.isKeyDown=!0,this.code=e.code,"KeyF"===this.code))e.ctrlKey&&e.preventDefault()},onkeyup:async function(e){var n,s,o,l,r,p,u,d;if(this.isKeyDown){switch(n=document.activeElement===document.body,s=e.ctrlKey,e.shiftKey,o=e.altKey,this.code){case"KeyF":n&&this.find();break;case"KeyX":this.finding&&o&&this.toggleFindExact();break;case"KeyC":this.finding&&o&&this.toggleFindCase();break;case"KeyI":n&&(l=e.shiftKey?2:1,h=h&&h===l?0:l,localStorage.taxonInfoLv=h,m.redraw());break;case"KeyA":n&&(s||a&&(r=prompt("Nhập hành động khi bấm chuột phải:\ng) google\nc) google (common name)\nb) bugguide\nl) biolib\nh) fishbase\ne) ebird\ns) seriouslyfish\nn) inaturalist\nk) flickr (mặc định)\nr) repfocus",this.rightClickAction))&&(this.rightClickAction=r,localStorage.taxonRightClickAction=r));break;case"KeyT":n&&(s||a&&(p=+prompt("Rank tối đa được hiển thị:\n1) vực 2) giới 3) phân giới 4) thứ giới\n5) liên ngành 6) ngành 7) phân ngành 8) thứ ngành\n9) tiểu ngành 10) liên lớp 11) lớp 12) phân lớp\n13) thứ lớp 14) tiểu lớp 15) đoàn 16) liên đội\n17) đội 18) tổng bộ 19) liên bộ 20) bộ\n21) phân bộ 22) thứ bộ 23) tiểu bộ 24) đoạn\n25) phân đoạn 26) liên họ 27) họ 28) phân họ\n29) liên tông 30) tông 31) phân tông 32) chi\n33) phân chi 34) mục 35) phân mục 36) loạt\n37) phân loạt 38) liên loài 39) loài 40) phân loài\n41) thứ 42) dạng"))&&(c=p,this.lines=[],u=scrollEl.scrollTop,await g(),heightEl.style.height=i.length*t+"px",this.scroll(),m.redraw.sync(),u>(d=i.length*t-scrollEl.offsetHeight)&&(u=d),scrollEl.scrollTop=u));break;case"KeyV":n&&(s||(this.togglePopupLang(),this.hoveredLine&&this.mouseenterName(this.hoveredLine)));break;case"KeyE":if(a)try{await navigator.clipboard.writeText("")}catch(e){alert(e.message)}break;case"Digit1":n&&(s||a&&window.open("diff"));break;case"Escape":this.finding&&this.closeFind()}this.code=void 0,this.isKeyDown=!1,m.redraw()}},onmousedown:function(e){this.isKeyDown=!1},onblur:function(e){this.code=void 0,this.isKeyDown=!1},onresize:function(){this.len=Math.ceil(innerHeight/t)+1,this.scroll(),m.redraw()},lineView:function(e,t,i,o){var a;return m(".line",{key:e.index,class:this.class({lineFind:this.finding&&e===this.findLines[this.findIndex]})},n[e.chrs].map(((e,t)=>m(".indent",{class:s[t][0]},e))),m(".node",{style:{width:o?18*(o.lv-e.lv)+"px":void 0,background:" "===e.name?"#0000":void 0,overflow:o?"hidden":void 0,zIndex:i}},m(".nodeName",{class:this.getRankName(e.lv),onmouseenter:this.mouseenterName.bind(void 0,e,t),onmouseleave:this.mouseleaveName,onmousedown:this.mousedownName.bind(void 0,e),oncontextmenu:this.contextmenuName.bind(void 0,e)}," "===e.name?"--":e.name),e.textEn||e.textVi||e.textEnCopy&&"..."!==e.textEnCopy?m(".nodeDash","—"):void 0,e.textEn?m(".nodeTextEn",e.textEn):void 0,e.textEnCopy?Array.isArray(e.textEnCopy)?m(".nodeTextEn",e.textEnCopy.map((t=>m(".nodeTextEnCopy",{class:e.isDuplicateTextEn?"nodeTextEnCopyIsDuplicateTextEn":void 0,onclick:this.onclickTextEnCopy.bind(void 0,e,t)},t)))):m(".nodeTextEn",e.textEnCopy):void 0,e.textVi?m(".nodeTextVi",e.textVi):void 0,e.isShowChildsCount?m(".nodeTextVi","("+e.childsCount+")"):void 0,null!=(a=e.imgs)?a.map(((e,t)=>{if(e&&t<2)return m("img.nodeImg",{src:e[0],onmousedown:this.mousedownImg.bind(void 0,e)})})):void 0))},view:function(){var e;return m(".main",m(".scroll#scrollEl",{onwheel:this.onwheel,onscroll:this.onscroll},m(".lines#linesEl",this.lines.map((e=>this.lineView(e,!1,void 0,void 0)))),m(".height#heightEl")),this.lines[1]&&!c?m(".bcrums",this.getParents(this.lines[1]).map(((e,t,n)=>{var s;return s=n[t-1],m(".bcrum",{key:e.index},this.lineView(e,!0,o.length-t,s),this.lineView(i[e.index+1],!0,void 0,s))}))):void 0,h?m(".infos",function(){var t,i,n=[];for(t in i=p)e=i[t],h>=e.lv&&n.push(m.fragment(m(".info",e.label),m(".info",r.format(e.count)),m(".info",e.modfCount?m(".modfCount",{class:e.modfCount>0?"modfCountIncr":"modfCountDecr"},"("+(e.modfCount>0?"+":"")+r.format(e.modfCount)+")"):void 0)));return n}(),m(".info","Ngôn ngữ popup"),m(".info",this.popupLang)):m(".lang",{class:"vi"===this.popupLang?"langIsVi":void 0,title:"Ngôn ngữ trong phần mô tả",onclick:()=>{this.togglePopupLang()}},this.popupLang),this.finding?m(".find",m("input.findInput#findInputEl",{placeholder:"Tìm kiếm",autocomplete:"off",value:this.findVal,oninput:e=>{this.find(e.target.value)},onkeydown:e=>{"Enter"===e.key&&this.findGo(e.shiftKey?-1:1)}}),m(".findCount",(this.findLines.length&&this.findIndex+1||0)+"/"+this.findLines.length),m(".findButton",{class:this.findExact?"findButtonOn":void 0,title:"Tìm chính xác",onclick:this.toggleFindExact},'""'),m(".findButton",{class:this.findCase?"findButtonOn":void 0,title:"Phân biệt hoa-thường",onclick:this.toggleFindCase},"Aa"),m(".findButton.findClose",{title:"Đóng",onclick:this.closeFind},"⨉")):void 0,m(".popup#popupEl"))}},m.mount(document.body,w)}()