티스토리 수익 글 보기
performance.mark(“js-parse-end:19930-c75bca0d8b996295.js”);
“use strict”;(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([[“19930”],{3713(e,t,i){var r=i(31635),n=i(58113),s=i(85498),h=i(94571),a=i(28746);class o extends HTMLElement{isCurrentVisible=!1;hiddenCurrentElement;currentSelectionIndex=null;resizeAnimationRequest;connectedCallback(){window.addEventListener(“resize”,this.windowResized),this.refType=”branch”===this.getRequiredAttr(“type”)?n._.Branch:n._.Tag;let e=this.getAttribute(“current-committish”);this.currentCommittish=e?atob(e):null,this.input=this.hasAttribute(“initial-filter”)&&this.currentCommittish||””,this.defaultBranch=atob(this.getRequiredAttr(“default-branch”)),this.nameWithOwner=atob(this.getRequiredAttr(“name-with-owner”)),this.canCreate=this.hasAttribute(“can-create”),this.prefetchOnMouseover=this.hasAttribute(“prefetch-on-mouseover”);let t=this.getRequiredAttr(“query-endpoint”),i=this.getRequiredAttr(“cache-key”);this.index=new n.d(this.refType,this,t,i,this.nameWithOwner),this.updateViewportSize(),this.setupFetchListeners()}disconnectedCallback(){this.resizeAnimationRequest&&cancelAnimationFrame(this.resizeAnimationRequest),window.removeEventListener(“resize”,this.windowResized)}updateViewportSize(){this.isMobileViewport=window.innerWidth<544,this.windowHeight=window.innerHeight}handleWindowResize=()=>{if(!this.virtualizedList)return;let e=this.isMobileViewport,t=this.windowHeight;this.updateViewportSize();let i=e!==this.isMobileViewport,r=t!==this.windowHeight;if(i){this.virtualizedList.destroy(),this.setupVirtualizedList();return}this.isMobileViewport&&r&&(this.listContainer.style.maxHeight=`${this.listHeight}px`,this.virtualizedList.resize(this.listHeight))};windowResized=()=>{this.resizeAnimationRequest&&cancelAnimationFrame(this.resizeAnimationRequest),this.resizeAnimationRequest=requestAnimationFrame(this.handleWindowResize)};inputEntered(e){this.input=e.detail,this.render()}tabSelected(){this.index.fetchData()}renderTemplate(e,t){return new s.TemplateInstance(e,t,s.xr)}renderRow(e){let t=this.index.currentSearchResult[e];if(!t&&e>=this.listLength)return document.createElement(“span”);if(this.index.fetchFailed)return this.renderTemplate(this.fetchFailedTemplate,{index:e,refName:this.input});if(!t){let t=this.input===this.currentCommittish;return this.isCurrentVisible||=t,this.renderTemplate(this.noMatchTemplate,{index:e,isCurrent:t,refName:this.input})}let i=this.input.length>0,r=t===this.currentCommittish;this.isCurrentVisible||=r;let n=this.renderTemplate(this.itemTemplate,{refName:t,index:e,isFilteringClass:i?”is-filtering”:””,urlEncodedRefName:this.urlEncodeRef(t),isCurrent:r,isNotDefault:t!==this.defaultBranch});if(i){let e=n.querySelector(“span”);e.textContent=””;let i=t.split(this.input),r=i.length-1;for(let t=0;t{t||(this.index.fetchData(),t=!0)};if(!e||e.open)return void i();e.addEventListener(“toggle”,i,{once:!0}),this.prefetchOnMouseover&&e.addEventListener(“mouseover”,i,{once:!0}),this.addEventListener(“keydown”,this.keydown),this.addEventListener(“change”,this.updateCurrent);let r=e.querySelector(“input[data-ref-filter]”);r&&(r.addEventListener(“input”,()=>{this.input=r.value,this.render()}),r.addEventListener(“keydown”,t=>{if(“ArrowDown”!==t.key&&(“Tab”!==t.key||t.shiftKey)){if(“Enter”===t.key){let i=this.index.currentSearchResult.indexOf(this.input);if(-1===i)if(!this.showCreateRow)return;else i=this.listLength-1;e.querySelector(`[data-index=”${i}”]`).click(),t.preventDefault()}}else t.preventDefault(),t.stopPropagation(),this.focusFirstListMember()}))}focusFirstListMember(){this.virtualizedList&&(this.currentSelectionIndex=0,this.focusItemAtIndex(this.currentSelectionIndex))}updateCurrent(e){e.target instanceof HTMLInputElement&&e.target.checked&&e.target.value&&(this.currentCommittish=e.target.value)}keydown(e){if(null!==this.currentSelectionIndex){if(“Enter”===e.key){let t=document.activeElement;if(!t)return;t.click(),e.preventDefault();return}if(“Tab”!==e.key&&”Escape”!==e.key)switch(e.preventDefault(),e.stopPropagation(),e.key){case”ArrowUp”:this.currentSelectionIndex–,this.currentSelectionIndex<0&&(this.currentSelectionIndex=this.listLength-1),this.focusItemAtIndex(this.currentSelectionIndex);break;case"Home":this.currentSelectionIndex=0,this.focusItemAtIndex(this.currentSelectionIndex);break;case"End":this.currentSelectionIndex=this.listLength-1,this.focusItemAtIndex(this.currentSelectionIndex);break;case"ArrowDown":this.currentSelectionIndex++,this.currentSelectionIndex>this.listLength-1&&(this.currentSelectionIndex=0),this.focusItemAtIndex(this.currentSelectionIndex)}}}focusItemAtIndex(e){this.virtualizedList.scrollToIndex(e,”center”),setTimeout(()=>{let t=this.listContainer.querySelector(`[data-index=”${e}”]`);t&&t.focus()},20)}setupVirtualizedList(){this.listContainer.textContent=””,this.listContainer.style.maxHeight=`${this.listHeight}px`,this.virtualizedList=new a.A(this.listContainer,{height:this.listHeight,rowCount:this.listLength,renderRow:this.renderRow.bind(this),rowHeight:e=>{let t=this.isMobileViewport?54:33;return this.showCreateRow&&e===this.listLength-1?51:t},onRowsRendered:()=>{this.hiddenCurrentElement&&(this.listContainer.removeChild(this.hiddenCurrentElement),delete this.hiddenCurrentElement),this.isCurrentVisible?this.isCurrentVisible=!1:this.hiddenCurrentItemTemplate&&(this.hiddenCurrentElement=document.createElement(“div”),this.hiddenCurrentElement?.appendChild(this.renderTemplate(this.hiddenCurrentItemTemplate,{refName:this.currentCommittish})),this.listContainer.appendChild(this.hiddenCurrentElement))},initialIndex:0,overscanCount:6}),this.virtualizedList.resize.bind(this.virtualizedList)}}(0,r.Cg)([h.aC],o.prototype,”listContainer”,void 0),(0,r.Cg)([h.aC],o.prototype,”itemTemplate”,void 0),(0,r.Cg)([h.aC],o.prototype,”noMatchTemplate”,void 0),(0,r.Cg)([h.aC],o.prototype,”fetchFailedTemplate”,void 0),(0,r.Cg)([h.aC],o.prototype,”hiddenCurrentItemTemplate”,void 0),(0,r.Cg)([(0,h.p_)(“ref-selector”)],o)},58113(e,t,i){i.d(t,{_:()=>o,d:()=>l});var r=i(35205),n=i(51189);let{getItem:s,setItem:h,removeItem:a}=(0,r.A)(“localStorage”,{throwQuotaErrorsOnSet:!0}),o={Branch:”branch”,Tag:”tag”};class l{refType;selector;knownItems=[];currentSearchResult=[];exactMatchFound=!1;searchTerm=””;refEndpoint;cacheKey;nameWithOwner;isLoading=!0;fetchInProgress=!1;fetchFailed=!1;static LocalStoragePrefix=”ref-selector”;constructor(e,t,i,r,n){this.refType=e,this.selector=t,this.refEndpoint=i,this.cacheKey=r,this.nameWithOwner=n}render(){this.selector.render()}async fetchData(){try{if(!this.isLoading||this.fetchInProgress)return;if(!this.bootstrapFromLocalStorage()){this.fetchInProgress=!0,this.fetchFailed=!1;let e=await fetch(`${this.refEndpoint}?type=${this.refType}`,{headers:{Accept:”application/json”}});await this.processResponse(e)}this.isLoading=!1,this.fetchInProgress=!1,this.render()}catch{this.fetchInProgress=!1,this.fetchFailed=!0}}async processResponse(e){if(this.emitStats(e),!e.ok){this.fetchFailed=!0;return}let t=e.clone(),i=await e.json();this.knownItems=i.refs,this.cacheKey=i.cacheKey,this.flushToLocalStorage(await t.text())}emitStats(e){if(!e.ok)return void(0,n.iv)({incrementKey:”REF_SELECTOR_BOOT_FAILED”},!0);switch(e.status){case 200:(0,n.iv)({incrementKey:”REF_SELECTOR_BOOTED_FROM_UNCACHED_HTTP”});break;case 304:(0,n.iv)({incrementKey:”REF_SELECTOR_BOOTED_FROM_HTTP_CACHE”});break;default:(0,n.iv)({incrementKey:”REF_SELECTOR_UNEXPECTED_RESPONSE”})}}search(e){let t;if(this.searchTerm=e,””===e){this.currentSearchResult=this.knownItems;return}let i=[],r=[];for(let n of(this.exactMatchFound=!1,this.knownItems))if(!((t=n.indexOf(e))<0)){if(0===t){e===n?(r.unshift(n),this.exactMatchFound=!0):r.push(n);continue}i.push(n)}this.currentSearchResult=[...r,...i]}bootstrapFromLocalStorage(){let e=s(this.localStorageKey);if(!e)return!1;let t=JSON.parse(e);return t.cacheKey===this.cacheKey&&"refs"in t?(this.knownItems=t.refs,this.isLoading=!1,(0,n.iv)({incrementKey:"REF_SELECTOR_BOOTED_FROM_LOCALSTORAGE"}),!0):(a(this.localStorageKey),!1)}async flushToLocalStorage(e){try{h(this.localStorageKey,e)}catch(t){if(t.message.toLowerCase().includes("quota")){this.clearSiblingLocalStorage(),(0,n.iv)({incrementKey:"REF_SELECTOR_LOCALSTORAGE_OVERFLOWED"});try{h(this.localStorageKey,e)}catch(e){e.message.toLowerCase().includes("quota")&&(0,n.iv)({incrementKey:"REF_SELECTOR_LOCALSTORAGE_GAVE_UP"})}}else throw t}}clearSiblingLocalStorage(){for(let e of Object.keys(localStorage))e.startsWith(l.LocalStoragePrefix)&&a(e)}clearLocalStorage(){a(this.localStorageKey)}get localStorageKey(){return`${l.LocalStoragePrefix}:${this.nameWithOwner}:${this.refType}`}}},35205(e,t,i){i.d(t,{A:()=>h,D:()=>a});var r=i(26316),n=i(51189);class s{getItem(){return null}setItem(){}removeItem(){}clear(){}key(){return null}get length(){return 0}}function h(e,t={throwQuotaErrorsOnSet:!1},i=r.cg,a=e=>e,o=e=>e){let l;try{if(!i)throw Error();l=i[e]||new s}catch{l=new s}let{throwQuotaErrorsOnSet:c}=t;function u(e){t.sendCacheStats&&(0,n.iv)({incrementKey:e})}function d(e){try{if(l.removeItem(e),t.ttl){let t=`${e}:expiry`;l.removeItem(t)}}catch{}}return{getItem:function(e,t=Date.now()){try{let i=l.getItem(e);if(!i)return null;let r=`${e}:expiry`,n=Number(l.getItem(r));if(n&&t>n)return d(e),d(r),u(“SAFE_STORAGE_VALUE_EXPIRED”),null;return u(“SAFE_STORAGE_VALUE_WITHIN_TTL”),a(i)}catch{return null}},setItem:function(e,i,r=Date.now()){try{if(l.setItem(e,o(i)),t.ttl){let i=`${e}:expiry`,n=r+t.ttl;l.setItem(i,n.toString())}}catch(e){if(c&&e instanceof Error&&e.message.toLowerCase().includes(“quota”))throw e}},removeItem:d,clear:()=>l.clear(),getKeys:function(){return Object.keys(l)},get length(){return l.length}}}function a(e){return h(e,{throwQuotaErrorsOnSet:!1},r.cg,JSON.parse,JSON.stringify)}}}]);
//# sourceMappingURL=19930-c75bca0d8b996295-a49e9a848f23ed97.js.map