=a)return t[2*n];if(r[n+1]>a)return Math.floor(a/r[n])+" "+t[2*n+1]}}(e.creationDate)} ago`,getLocalDate:e=>e.ociImage?"unavailable on OCI index/Buildkit export cache":e.creationDate&&e.creationDate.toLocaleString()||"unknown"},template:(e,t,r,a)=>e('
',[{redundantAttribute:"expr119",selector:"[expr119]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.getDate(e.props.image)},{type:t.ATTRIBUTE,name:"title",evaluate:e=>["Creation date ",e.getLocalDate(e.props.image)].join("")}]}]),name:"image-date"},Ma={css:null,exports:{onMounted(e,t){this.load(e,t)},onUpdated(e,t){this.load(e,t)},load(e,t){"number"!=typeof e.image.size&&(e.image.on("size",(e=>{this.update({size:e})})),e.image.trigger("get-size"))},getImageSize:e=>Yr(e.size)},template:(e,t,r,a)=>e('
',[{redundantAttribute:"expr117",selector:"[expr117]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.getImageSize(e.props.image)}]}]),name:"image-size"},_a={css:null,exports:{onMounted(e){e.image.on("sha256",(e=>{this.update({sha256:e&&e.substring(0,19)})})),e.image.trigger("get-sha256")}},template:(e,t,r,a)=>e('
',[{redundantAttribute:"expr116",selector:"[expr116]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.props.image.tag},{type:t.ATTRIBUTE,name:"title",evaluate:e=>e.state.sha256}]}]),name:"image-tag"},Pa={css:null,exports:{onMounted(e,t){this.load(e,t)},onUpdated(e,t){this.load(e,t)},load(e,t){e.image.contentDigest||(t.chars=-1,e.image.one("content-digest",(t=>{this.contentDigest=t,e.image.on("content-digest-chars",this.onResize),e.image.trigger("get-content-digest-chars")})),e.image.trigger("get-content-digest"))},onResize(e){e!==this.state.chars&&this.update({chars:e})},getTitle:(e,t)=>t>=70?"":e.contentDigest||"",getContentDigest:(e,t)=>t>=70?e.contentDigest||"":t<=0?"":e.contentDigest&&e.contentDigest.slice(0,t)+"..."},template:(e,t,r,a)=>e('
',[{redundantAttribute:"expr118",selector:"[expr118]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.getContentDigest(e.props.image,e.state.chars)},{type:t.ATTRIBUTE,name:"title",evaluate:e=>e.getTitle(e.props.image,e.state.chars)}]}]),name:"image-content-digest"},Va={css:null,exports:{onMounted(e,t){this.load(e,t)},onUpdated(e,t){this.load(e,t)},getDockerCmd:e=>"tag"===e.target?`docker pull ${e.pullUrl}/${e.image.name}:${e.image.tag}`:`docker pull ${e.pullUrl}/${e.image.name}@${e.image.contentDigest}`,load(e,t){"tag"===e.target||e.image.contentDigest||(e.image.one("content-digest",(e=>{this.update()})),e.image.trigger("get-content-digest"))},copy(){const e=this.$("input");e.value?(e.style.display="block",e.select(),document.execCommand("copy"),e.style.display="none",this.props.onNotify("`"+e.value+"` has been copied to clipboard.")):this.props.onNotify(ra)}},template:(e,t,r,a)=>e('
',[{redundantAttribute:"expr121",selector:"[expr121]",expressions:[{type:t.VALUE,evaluate:e=>e.getDockerCmd(e.props)}]},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'content_copy ',bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.copy}],redundantAttribute:"expr122",selector:"[expr122]"}]),name:"copy-to-clipboard"},Ga={css:null,exports:{onMounted(e){e.image.one("oci-image",(()=>{this.update()}))},buttonTittle(){return this.props.image.ociImage?"History is unavailable on OCI index/Buildkit export cache":"This will show the history of given tag"},routeToHistory(){if(!this.props.image.ociImage)return da.history(this.props.image.name,this.props.image.tag)}},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'history ',bindings:[]}],attributes:[{type:t.ATTRIBUTE,name:"title",evaluate:e=>e.buttonTittle()},{type:t.ATTRIBUTE,name:"href",evaluate:e=>e.routeToHistory()},{type:t.ATTRIBUTE,name:"disabled",evaluate:e=>e.props.image.ociImage}],redundantAttribute:"expr120",selector:"[expr120]"}]),name:"tag-history-button"},$a={css:null,exports:{onBeforeMount(e,t){t.checked=e.checked,e.image.one("content-digest",(e=>{this.update({contentDigest:e})}))},onMounted(e,t){e.image.trigger("get-content-digest")},onBeforeUpdate(e,t){t.checked=e.checked},deleteImage(){this.props.handleCheckboxChange(Xa,this.props.image)},handleCheckboxChange(e){const t=e.target.checked?Ha:za;this.props.handleCheckboxChange(t,this.props.image,e.shiftKey)}},template:(e,t,r,a)=>e(' ',[{type:r.IF,evaluate:e=>!e.props.multiDelete,redundantAttribute:"expr123",selector:"[expr123]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'delete ',bindings:[]}],attributes:[{type:t.ATTRIBUTE,name:"disabled",evaluate:e=>!e.state.contentDigest},{type:t.EVENT,name:"onClick",evaluate:e=>e.deleteImage}]}])},{type:r.IF,evaluate:e=>e.props.multiDelete,redundantAttribute:"expr124",selector:"[expr124]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-checkbox",slots:[],attributes:[{type:t.ATTRIBUTE,name:"disabled",evaluate:e=>!e.state.contentDigest},{type:t.EVENT,name:"onChange",evaluate:e=>e.handleCheckboxChange},{type:t.ATTRIBUTE,name:"checked",evaluate:e=>e.state.checked}]}])}]),name:"remove-image"},Fa={css:'confirm-delete-image,[is="confirm-delete-image"]{ color: #000; list-style-type: disc; margin-block-start: 0.7em; } confirm-delete-image material-popup .content .material-popup-content,[is="confirm-delete-image"] material-popup .content .material-popup-content{ overflow-y: auto; max-height: 250px; }',exports:{displayImagesToDelete(e,t){const r=new Set;return e.forEach((e=>{e.contentDigest&&r.add(e.contentDigest)})),t.filter((e=>r.has(e.contentDigest)))},deleteImages(){this.props.toDelete.forEach((e=>this.getContentDigestThenDelete(e,this.props)))},getContentDigestThenDelete({name:e,tag:t},r){const{registryUrl:a,onNotify:n,onAuthentication:o}=r,i=new ma({onAuthentication:o}),s=this;i.addEventListener("loadend",(function(){200===this.status||202===this.status?i.getContentDigest((function(a){a?s.deleteImage({name:e,tag:t,contentDigest:a},r):n(ERROR_CAN_NOT_READ_CONTENT_DIGEST)})):404===this.status?n(`Manifest for ${e}:${t} not found`,!0):n(this.responseText)})),i.open("GET",`${a}/v2/${e}/manifests/${t}`),i.setRequestHeader("Accept","application/vnd.docker.distribution.manifest.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.index.v1+json"),i.send()},deleteImage({name:e,tag:t,contentDigest:r},a){const{registryUrl:n,ignoreError:o,onNotify:i,onAuthentication:s,onClick:l}=a,u=new ma({onAuthentication:s});u.addEventListener("loadend",(function(){200===this.status||202===this.status?(da.taglist(e),i(`Deleting ${e}:${t} image. Run \`registry garbage-collect config.yml\` on your registry`)):404===this.status?o||i({message:"Digest not found for this image in your registry.",isError:!0}):i(this.responseText),l()})),u.open("DELETE",`${n}/v2/${e}/manifests/${r}`),u.setRequestHeader("Accept","application/vnd.docker.distribution.manifest.v2+json, application/vnd.oci.image.manifest.v1+json"),u.addEventListener("error",(function(){const e=this.withCredentials?" When you use credentials on a different hostname, the registry server may fail preflight requests. Check FAQ and issue #104.":"";i({message:"An error occurred when deleting image. Check if your server accept DELETE methods Access-Control-Allow-Methods: ['DELETE']."+e,isError:!0})})),u.send()}},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-popup",slots:[{id:"default",html:'',bindings:[{type:r.EACH,getKey:null,condition:null,template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>[e.image.name,":",e.image.tag].join("")}]}]),redundantAttribute:"expr126",selector:"[expr126]",itemName:"image",indexName:null,evaluate:e=>e.displayImagesToDelete(e.props.toDelete,e.props.tags)},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Delete\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.deleteImages}],redundantAttribute:"expr127",selector:"[expr127]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Cancel\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClick}],redundantAttribute:"expr128",selector:"[expr128]"}]}],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.props.opened},{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClick}],redundantAttribute:"expr125",selector:"[expr125]"}]),name:"confirm-delete-image"};const Ha="CHECK",za="UNCHECK",Xa="DELETE";var qa={css:null,exports:{components:{ImageDate:ja,ImageSize:Ma,ImageTag:_a,ImageContentDigest:Pa,CopyToClipboard:Va,RemoveImage:$a,TagHistoryButton:Ga,ConfirmDeleteImage:Fa},onBeforeMount(e){this.state={toDelete:new Set,multiDelete:!1,page:e.page}},onBeforeUpdate(e,t){t.page!==e.page&&t.toDelete.clear(),t.page=e.page},deleteImages(){this.update({confirmDeleteImage:!0})},onConfirmDeleteImageClick(){this.state.singleDeleteAction&&this.state.toDelete.clear(),this.update({singleDeleteAction:!1,confirmDeleteImage:!1})},onRemoveImageHeaderChange(e){if(!0===e.altKey){Qr(this.props.tags,this.props.page).filter((e=>ya(this.props.filterResults,e.tag))).forEach((e=>this.state.toDelete.add(e))),this.update({multiDelete:!0,toDelete:this.state.toDelete,slectedImage:void 0})}else this.update({multiDelete:e.target.checked,slectedImage:void 0})},onRemoveImageChange(e,t,r){let a,n=!1,o=!1;switch(e){case Ha:this.state.toDelete.add(t),r&&(a=this.supportShiftKey(t,!0));break;case za:this.state.toDelete.delete(t),r&&(a=this.supportShiftKey(t,!1));break;case Xa:this.state.toDelete.clear(),this.state.toDelete.add(t),n=!0,o=!0}this.update({toDelete:this.state.toDelete,confirmDeleteImage:n,singleDeleteAction:o,slectedImage:a})},supportShiftKey(e,t){if(!this.state.slectedImage)return e;{let r=!1;Qr(this.props.tags,this.props.page).filter((t=>t==this.state.slectedImage||t==e?(r=!r,!0):r)).forEach((e=>{t?this.state.toDelete.add(e):this.state.toDelete.delete(e)}))}},onReverseOrder(){this.state.orderType=null,this.state.desc=!1,this.props.onReverseOrder()},onPageReorder(e){this.update({orderType:e,desc:this.state.orderType&&this.state.orderType!==e||!this.state.desc})},getPage(e,t){const r=Qr(e,t);return"date"===this.state.orderType?r.sort(((e,t)=>this.state.desc?(e.creationDate?.getTime()||0)-(t.creationDate?.getTime()||0):(t.creationDate?.getTime()||0)-(e.creationDate?.getTime()||0))):"size"===this.state.orderType&&r.sort(((e,t)=>this.state.desc?e.size-t.size:t.size-e.size)),r},matchSearch:ya},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"confirm-delete-image",slots:[],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state.confirmDeleteImage},{type:t.EVENT,name:"on-click",evaluate:e=>e.onConfirmDeleteImageClick},{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.props.registryUrl},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.props.onAuthentication},{type:t.ATTRIBUTE,name:"tags",evaluate:e=>e.props.tags},{type:t.ATTRIBUTE,name:"to-delete",evaluate:e=>e.state.toDelete}],redundantAttribute:"expr96",selector:"[expr96]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-card",slots:[{id:"default",html:'\n Creation date\n \n Size\n History
',bindings:[{redundantAttribute:"expr98",selector:"[expr98]",expressions:[{type:t.ATTRIBUTE,name:"class",evaluate:e=>["creation-date ",e.state.desc&&"date"===e.state.orderType?"material-card-th-sorted-descending":"material-card-th-sorted-ascending"].join("")},{type:t.EVENT,name:"onclick",evaluate:e=>()=>e.onPageReorder("date")}]},{redundantAttribute:"expr99",selector:"[expr99]",expressions:[{type:t.ATTRIBUTE,name:"class",evaluate:e=>["image-size ",e.state.desc&&"size"===e.state.orderType?"material-card-th-sorted-descending":"material-card-th-sorted-ascending"].join("")},{type:t.EVENT,name:"onclick",evaluate:e=>()=>e.onPageReorder("size")}]},{type:r.IF,evaluate:e=>e.props.showContentDigest,redundantAttribute:"expr100",selector:"[expr100]",template:e("Content Digest",[])},{redundantAttribute:"expr101",selector:"[expr101]",expressions:[{type:t.ATTRIBUTE,name:"class",evaluate:e=>e.props.asc?"material-card-th-sorted-ascending":"material-card-th-sorted-descending"},{type:t.EVENT,name:"onclick",evaluate:e=>e.onReverseOrder}]},{type:r.IF,evaluate:e=>e.props.isImageRemoveActivated,redundantAttribute:"expr102",selector:"[expr102]",template:e(' ',[{expressions:[{type:t.ATTRIBUTE,name:"class",evaluate:e=>["remove-tag ",e.state.toDelete.size>0&&!e.state.singleDeleteAction?"delete":""].join("")}]},{type:r.IF,evaluate:e=>0===e.state.toDelete.size||e.state.singleDeleteAction,redundantAttribute:"expr103",selector:"[expr103]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-checkbox",slots:[],attributes:[{type:t.ATTRIBUTE,name:"checked",evaluate:e=>e.state.multiDelete},{type:t.EVENT,name:"onChange",evaluate:e=>e.onRemoveImageHeaderChange}]}])},{type:r.IF,evaluate:e=>e.state.toDelete.size>0&&!e.state.singleDeleteAction,redundantAttribute:"expr104",selector:"[expr104]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'delete ',bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.deleteImages}]}])}])},{type:r.EACH,getKey:null,condition:e=>e.matchSearch(e.props.filterResults,e.image.tag),template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"image-date",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image}],redundantAttribute:"expr106",selector:"[expr106]"},{type:r.TAG,getComponent:a,evaluate:e=>"image-size",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image}],redundantAttribute:"expr107",selector:"[expr107]"},{type:r.IF,evaluate:e=>e.props.showContentDigest,redundantAttribute:"expr108",selector:"[expr108]",template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"image-content-digest",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image}],redundantAttribute:"expr109",selector:"[expr109]"},{type:r.TAG,getComponent:a,evaluate:e=>"copy-to-clipboard",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image},{type:t.ATTRIBUTE,name:"pull-url",evaluate:e=>e.props.pullUrl},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify}],redundantAttribute:"expr110",selector:"[expr110]"}])},{type:r.TAG,getComponent:a,evaluate:e=>"image-tag",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image}],redundantAttribute:"expr111",selector:"[expr111]"},{type:r.TAG,getComponent:a,evaluate:e=>"copy-to-clipboard",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image},{type:t.ATTRIBUTE,name:"pull-url",evaluate:e=>e.props.pullUrl},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify}],redundantAttribute:"expr112",selector:"[expr112]"},{type:r.TAG,getComponent:a,evaluate:e=>"tag-history-button",slots:[],attributes:[{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image}],redundantAttribute:"expr113",selector:"[expr113]"},{type:r.IF,evaluate:e=>e.props.isImageRemoveActivated,redundantAttribute:"expr114",selector:"[expr114]",template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"remove-image",slots:[],attributes:[{type:t.ATTRIBUTE,name:"multi-delete",evaluate:e=>e.state.multiDelete},{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.image},{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.props.registryUrl},{type:t.ATTRIBUTE,name:"handleCheckboxChange",evaluate:e=>e.onRemoveImageChange},{type:t.ATTRIBUTE,name:"checked",evaluate:e=>e.state.toDelete.has(e.image)},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.props.onAuthentication}],redundantAttribute:"expr115",selector:"[expr115]"}])}]),redundantAttribute:"expr105",selector:"[expr105]",itemName:"image",indexName:null,evaluate:e=>e.getPage(e.props.tags,e.props.page)}]}],attributes:[],redundantAttribute:"expr97",selector:"[expr97]"}]),name:"tag-table"},Wa={css:null,exports:{components:{Pagination:La,TagTable:qa},onBeforeMount(e){this.state={registryName:e.registryName,tags:[],loadend:!1,asc:!0,page:da.getPageQueryParam()||1}},onMounted(e,t){this.display(e,t),window.addEventListener("resize",this.onResize),window.requestAnimationFrame(this.onResize)},display(e,t){t.tags=[];const r=this,a=new ma({onAuthentication:e.onAuthentication});a.addEventListener("load",(function(){if(200===this.status){const a=(JSON.parse(this.responseText).tags||[]).map((t=>new Da(e.image,t,{list:!0,registryUrl:e.registryUrl,onNotify:e.onNotify,onAuthentication:e.onAuthentication,useControlCacheHeader:e.useControlCacheHeader}))).sort(Sa);window.requestAnimationFrame(r.onResize),r.update({page:Math.min(t.page,Jr(a)),tags:a})}else 404===this.status?r.props.onNotify("Server not found",!0):r.props.onNotify(this.responseText,!0)})),a.addEventListener("error",(function(){r.props.onNotify(this.getErrorMessage(),!0),t.tags=[]})),a.addEventListener("loadend",(function(){r.update({loadend:!0})})),a.open("GET",e.registryUrl+"/v2/"+e.image+"/tags/list"),a.send(),t.asc=!0},onPageUpdate(e){const t=Zr(this.state.page,Jr(this.state.tags))[e].page;this.update({page:t}),da.updatePageQueryParam(t)},onResize(){const e=window.innerWidth;let t=0;const r=this.state.tags.reduce((function(e,t){return t.tag.length>e?t.tag.length:e}),0);t=e>=1440?71:e<1024?0:15+(e-1024)/416*56,r>20&&(t-=r-20),t=Math.floor(t),this.state.tags.map((function(e){e.trigger("content-digest-chars",t)}))},onReverseOrder(){this.state.asc?(this.state.tags.reverse(),this.state.asc=!1):(this.state.tags.sort(Sa),this.state.asc=!0),this.update()},getPageLabels:Zr,getNumPages:Jr,router:da},template:(e,t,r,a)=>e('
',[{type:r.TAG,getComponent:a,evaluate:e=>"material-card",slots:[{id:"default",html:'',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'arrow_back ',bindings:[]}],attributes:[{type:t.ATTRIBUTE,name:"href",evaluate:e=>e.router.home()}],redundantAttribute:"expr40",selector:"[expr40]"},{redundantAttribute:"expr41",selector:"[expr41]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>["Tags of ",e.props.image].join("")}]},{redundantAttribute:"expr42",selector:"[expr42]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>["Sourced from ",e.state.registryName+"/"+e.props.image].join("")}]},{redundantAttribute:"expr43",selector:"[expr43]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>[e.state.tags.length," tags"].join("")}]}]}],attributes:[],redundantAttribute:"expr39",selector:"[expr39]"},{type:r.IF,evaluate:e=>!e.state.loadend,redundantAttribute:"expr44",selector:"[expr44]",template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-spinner",slots:[],attributes:[],redundantAttribute:"expr45",selector:"[expr45]"}])},{type:r.TAG,getComponent:a,evaluate:e=>"pagination",slots:[],attributes:[{type:t.ATTRIBUTE,name:"pages",evaluate:e=>e.getPageLabels(e.state.page,e.getNumPages(e.state.tags))},{type:t.EVENT,name:"onPageUpdate",evaluate:e=>e.onPageUpdate}],redundantAttribute:"expr46",selector:"[expr46]"},{type:r.IF,evaluate:e=>e.state.loadend,redundantAttribute:"expr47",selector:"[expr47]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"tag-table",slots:[],attributes:[{type:t.ATTRIBUTE,name:"tags",evaluate:e=>e.state.tags},{type:t.ATTRIBUTE,name:"asc",evaluate:e=>e.state.asc},{type:t.ATTRIBUTE,name:"page",evaluate:e=>e.state.page},{type:t.ATTRIBUTE,name:"show-content-digest",evaluate:e=>e.props.showContentDigest},{type:t.ATTRIBUTE,name:"is-image-remove-activated",evaluate:e=>e.props.isImageRemoveActivated},{type:t.EVENT,name:"onReverseOrder",evaluate:e=>e.onReverseOrder},{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.props.registryUrl},{type:t.ATTRIBUTE,name:"pull-url",evaluate:e=>e.props.pullUrl},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.ATTRIBUTE,name:"filter-results",evaluate:e=>e.props.filterResults},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.props.onAuthentication}]}])},{type:r.TAG,getComponent:a,evaluate:e=>"pagination",slots:[],attributes:[{type:t.ATTRIBUTE,name:"pages",evaluate:e=>e.getPageLabels(e.state.page,e.getNumPages(e.state.tags))},{type:t.EVENT,name:"onPageUpdate",evaluate:e=>e.onPageUpdate}],redundantAttribute:"expr48",selector:"[expr48]"}]),name:"tag-list"},Ka={css:'dockerfile material-popup .popup material-button,[is="dockerfile"] material-popup .popup material-button{ margin-right: 1em; } dockerfile material-popup .popup > .content,[is="dockerfile"] material-popup .popup > .content{ max-width: 75em; width: 80%; } dockerfile .material-popup-content,[is="dockerfile"] .material-popup-content{ background-color: var(--hover-background); } @media screen and (max-width: 800px) { dockerfile material-popup .popup > .content,[is="dockerfile"] material-popup .popup > .content{ width: 100%; } } dockerfile .instruction,[is="dockerfile"] .instruction{ font-family: \'Roboto Mono\', monospace !important; margin: 0.75em 0; } dockerfile .instruction .keyword,[is="dockerfile"] .instruction .keyword{ color: var(--accent-text); }',exports:null,template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-popup",slots:[{id:"default",html:'',bindings:[{type:r.EACH,getKey:null,condition:null,template:e(' ',[{type:r.EACH,getKey:null,condition:null,template:e('
',[{redundantAttribute:"expr88",selector:"[expr88]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.element.value}]},{redundantAttribute:"expr89",selector:"[expr89]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>" "+e.element.content}]}]),redundantAttribute:"expr87",selector:"[expr87]",itemName:"element",indexName:null,evaluate:e=>e.props.elements[e.props.elements.length-1-e.idx].filter((e=>"created_by"===e.key))}]),redundantAttribute:"expr86",selector:"[expr86]",itemName:"_",indexName:"idx",evaluate:e=>e.props.elements},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Close\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr90",selector:"[expr90]"}]}],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.props.opened},{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr85",selector:"[expr85]"}]),name:"dockerfile"};var Ya={css:'tag-history-element.Labels .value,[is="tag-history-element"].Labels .value, :host.Env .value { margin-bottom: 0.5em; } tag-history-element i,[is="tag-history-element"] i{ font-size: 20px; padding: 0px; } tag-history-element.docker_version .headline .material-icons,[is="tag-history-element"].docker_version .headline .material-icons, :host.docker_version .headline #docker_verion { height: 24px; } tag-history-element,[is="tag-history-element"]{ display: block; padding: 20px; min-width: 100px; min-height: 3em; width: 420px; float: left; } tag-history-element .content,[is="tag-history-element"] .content{ overflow-x: auto; } tag-history-element.id .content,[is="tag-history-element"].id .content{ overflow-x: initial; } tag-history-element .headline,[is="tag-history-element"] .headline{ height: 24px; display: flex; flex-direction: row; align-items: center; font-weight: bold; } tag-history-element .headline *,[is="tag-history-element"] .headline *{ margin-right: 6px; } tag-history-element.id div.value,[is="tag-history-element"].id div.value{ font-size: 12px; }',exports:{onBeforeStart(e,t){t.key=e.entry.key,t.icon=function(e){switch(e){case"architecture":return"memory";case"created":return"event";case"docker_version":return"";case"os":return"developer_board";case"Cmd":return"launch";case"Entrypoint":return"input";case"Env":return"notes";case"Labels":return"label";case"User":return"face";case"Volumes":return"storage";case"WorkingDir":return"home";case"author":return"account_circle";case"id":case"digest":return"settings_ethernet";case"created_by":return"build";case"size":return"get_app";case"ExposedPorts":return"router";case"comment":return"chat";default:return e.startsWith("custom-label-")?"label":""}}(e.entry.key),t.name=this.cleanName(e.entry.key),e.entry.value instanceof Array?t.values=e.entry.value:t.value=e.entry.value},onBeforeMount(e,t){this.onBeforeStart(e,t)},onBeforeUpdate(e,t){this.onBeforeStart(e,t)},onMounted(e,t){const r=this.$("#docker_verion");r&&(r.innerHTML=(new DOMParser).parseFromString('\n \n \n \n \n',"image/svg+xml").firstElementChild.outerHTML)},cleanName:e=>"id"===e?e:"os"===e?"OS":(e.startsWith("custom-label-")&&(e=e.replace("custom-label-","")),e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]/g," ").split(" ").map((e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`)).join(" "))},template:(e,t,r,a)=>e('
',[{expressions:[{type:t.ATTRIBUTE,name:"class",evaluate:e=>e.state.key}]},{type:r.IF,evaluate:e=>"docker_version"!==e.state.key,redundantAttribute:"expr91",selector:"[expr91]",template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.state.icon}]}])},{type:r.IF,evaluate:e=>"docker_version"===e.state.key,redundantAttribute:"expr92",selector:"[expr92]",template:e(null,[])},{redundantAttribute:"expr93",selector:"[expr93]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.state.name}]},{type:r.IF,evaluate:e=>e.state.value,redundantAttribute:"expr94",selector:"[expr94]",template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.state.value}]}])},{type:r.EACH,getKey:null,condition:e=>e.state.values,template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.value}]}]),redundantAttribute:"expr95",selector:"[expr95]",itemName:"value",indexName:null,evaluate:e=>e.state.values}]),name:"tag-history-element"};const Qa=function(e){switch(e){case"created":return 1;case"created_by":return 2;case"size":return 3;case"os":return 4;case"architecture":return 5;case"id":return 6;case"linux":return 7;case"docker_version":return 8;default:return 10}},Ja=function(e,t){return Qa(e.key)-Qa(t.key)},Za=e=>{if(e.startsWith("COPY"))return{value:"COPY",content:e.replace(/^COPY /,"")};let t=e.match(/\/bin\/sh *-c *#\(nop\) *([A-Z]+) (.*)/);return{value:t&&t[1]||"RUN",content:t&&t[2]||e.replace(/^\/bin\/sh *-c *(#\(nop\))?/,"")}},en=function(e,t){switch(e){case"created":return{key:e,value:new Date(t).toLocaleString()};case"created_by":return t.match(/\/bin\/sh *-c *#\(nop\) *([A-Z]+) (.*)/),{key:e,...Za(t)};case"size":return{key:e,value:Yr(t)};case"Entrypoint":case"Cmd":return{key:e,value:(t||[]).join(" ")};case"Labels":return{key:e,value:Object.keys(t||{}).map((function(e){return t[e]?e+"="+t[e]:""}))};case"Volumes":case"ExposedPorts":return{key:e,value:Object.keys(t)}}return{key:e,value:t||""}};var tn,rn={css:'tag-history h2,[is="tag-history"] h2{ flex-grow: 1; display: flex; flex-direction: row; align-items: center; }',exports:{components:{TagHistoryElement:Ya,Dockerfile:Ka},onBeforeMount(e,t){t.elements=[],t.image=new Da(e.image,e.tag,{list:!0,registryUrl:e.registryUrl,onNotify:e.onNotify,onAuthentication:e.onAuthentication,useControlCacheHeader:e.useControlCacheHeader}),t.image.fillInfo()},onMounted(e,t){t.image.on("blobs",this.processBlobs),t.image.on("list",this.multiArchList)},onTabChanged(e,t){const r=this.state,{registryUrl:a,onNotify:n,useControlCacheHeader:o}=this.props;if(r.elements=[],r.image.variants[t]=r.image.variants[t]||new Da(this.props.image,e.digest,{list:!1,registryUrl:a,onNotify:n,useControlCacheHeader:o}),r.image.variants[t].blobs)return this.processBlobs(r.image.variants[t].blobs);r.image.variants[t].fillInfo(),r.image.variants[t].on("blobs",this.processBlobs)},processBlobs(e){this.state;const{historyCustomLabels:t}=this.props;function r(e){const t=[];for(var r in e)if(e.hasOwnProperty(r)&&"empty_layer"!=r){const a=e[r],n=en(r,a);t.push(n)}return t.sort(Ja)}const a=new Array(e.history.length+1);a[0]=r(function(e,{historyCustomLabels:t}){const r=["architecture","User","created","docker_version","os","Cmd","Entrypoint","Env","Labels","User","Volumes","WorkingDir","author","id","ExposedPorts"].reduce((function(t,r){const a=e[r]||e.config[r];return a&&"architecture"===r&&e.variant?t[r]=a+e.variant:a&&(t[r]=a),t}),{});return!r.author&&r.Labels&&r.Labels.maintainer&&(r.author=e.config.Labels.maintainer,delete r.Labels.maintainer),r.Labels&&t.filter((e=>r.Labels[e])).forEach((e=>{r[`custom-label-${e}`]=r.Labels[e],delete r.Labels[e]})),r}(e,{historyCustomLabels:t})),e.history.forEach((function(t,n){a[e.history.length-n]=r(t)})),this.update({elements:a,loadend:!0})},multiArchList(e){const t=(e=e.manifests||e).map((function(e){return{title:e.platform.os+"/"+e.platform.architecture+(e.platform.variant?e.platform.variant:""),digest:e.digest}}));this.update({archs:t})},toTaglist(){return da.taglist(this.props.image)},showDockerfile(){console.log(this),this.update({showDockerfile:!0})},onDockerfileClose(){this.update({showDockerfile:!1})}},template:(e,t,r,a)=>e('
',[{type:r.TAG,getComponent:a,evaluate:e=>"material-card",slots:[{id:"default",html:'
history ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'arrow_back ',bindings:[]}],attributes:[{type:t.ATTRIBUTE,name:"href",evaluate:e=>e.toTaglist()}],redundantAttribute:"expr50",selector:"[expr50]"},{redundantAttribute:"expr51",selector:"[expr51]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>["History of ",e.props.image,":",e.props.tag].join("")}]},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Dockerfile\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.showDockerfile}],redundantAttribute:"expr52",selector:"[expr52]"}]}],attributes:[],redundantAttribute:"expr49",selector:"[expr49]"},{type:r.IF,evaluate:e=>!e.state.loadend,redundantAttribute:"expr53",selector:"[expr53]",template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-spinner",slots:[],attributes:[],redundantAttribute:"expr54",selector:"[expr54]"}])},{type:r.TAG,getComponent:a,evaluate:e=>"dockerfile",slots:[],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state.showDockerfile},{type:t.EVENT,name:"on-close",evaluate:e=>e.onDockerfileClose},{type:t.ATTRIBUTE,name:"elements",evaluate:e=>e.state.elements}],redundantAttribute:"expr55",selector:"[expr55]"},{type:r.IF,evaluate:e=>e.state.archs&&e.state.loadend,redundantAttribute:"expr56",selector:"[expr56]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-tabs",slots:[],attributes:[{type:t.ATTRIBUTE,name:"useLine",evaluate:e=>!0},{type:t.ATTRIBUTE,name:"tabs",evaluate:e=>e.state.archs},{type:t.EVENT,name:"onTabChanged",evaluate:e=>e.onTabChanged}]}])},{type:r.EACH,getKey:null,condition:null,template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"material-card",slots:[{id:"default",html:' ',bindings:[{type:r.EACH,getKey:null,condition:e=>e.entry.value&&e.entry.value.length>0,template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"tag-history-element",slots:[],attributes:[{type:t.ATTRIBUTE,name:"entry",evaluate:e=>e.entry}]}]),redundantAttribute:"expr58",selector:"[expr58]",itemName:"entry",indexName:null,evaluate:e=>e.element}]}],attributes:[]}]),redundantAttribute:"expr57",selector:"[expr57]",itemName:"element",indexName:null,evaluate:e=>e.state.elements}]),name:"tag-history"},an={css:null,exports:{onKeyUp(e){13===e.keyCode&&this.add()},add(){const e=this.$("input");if(!e||!e.value||0===e.value.length)return this.props.onNotify("The input field is empty. Please enter an url.",!0);if(!e.value.startsWith("http"))return this.props.onNotify("The input field should start with http:// or https://.",!0);const t=oa(e.value);da.home(),this.props.onServerChange(t),this.props.onClose(),setTimeout((()=>da.updateUrlQueryParam(t)),100)},registryUrlValidator:e=>/^https?:\/\//.test(e)&&!/\/v2\/?$/.test(e)},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-popup",slots:[{id:"default",html:'',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"material-input",slots:[],attributes:[{type:t.EVENT,name:"onkeyup",evaluate:e=>e.onKeyUp},{type:t.ATTRIBUTE,name:"valid",evaluate:e=>e.registryUrlValidator}],redundantAttribute:"expr70",selector:"[expr70]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Add\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.add}],redundantAttribute:"expr71",selector:"[expr71]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Cancel\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr72",selector:"[expr72]"}]}],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.props.opened},{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr69",selector:"[expr69]"}]),name:"add-registry-url"},nn={css:'change-registry-url select,[is="change-registry-url"] select{ position: relative; outline: 0; box-shadow: none; padding: 0; width: 100%; background: 0 0; border: none; font-weight: 400; font-size: 1em; line-height: 24px; height: 24px; border-bottom: 1px solid var(--accent-text); appearance: none; -moz-appearance: none; -webkit-appearance: none; margin: 1.5em 0; color: var(--primary-text); } change-registry-url select option,[is="change-registry-url"] select option{ background-color: var(--background); }',exports:{change(e){const t=this.$("select");if(!t||!t.value||0===t.value.length)return this.props.onNotify("The select field is empty. Please add an url.",!0);if(!t.value.startsWith("http"))return this.props.onNotify("The select field should start with http:// or https://.",!0);const r=oa(t.value);da.home(),this.props.onServerChange(r),this.props.onClose(),setTimeout((()=>da.updateUrlQueryParam(r)),100)},getRegistryServers:aa},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-popup",slots:[{id:"default",html:'',bindings:[{type:r.EACH,getKey:null,condition:null,template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.url},{type:t.ATTRIBUTE,name:"value",evaluate:e=>e.url}]}]),redundantAttribute:"expr74",selector:"[expr74]",itemName:"url",indexName:null,evaluate:e=>e.getRegistryServers()},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Change\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.change}],redundantAttribute:"expr75",selector:"[expr75]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Cancel\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr76",selector:"[expr76]"}]}],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.props.opened},{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr73",selector:"[expr73]"}]),name:"change-registry-url"},on={css:'remove-registry-url material-popup .popup material-button,[is="remove-registry-url"] material-popup .popup material-button{ margin-right: 1em; }',exports:{remove(e){return t=>{var r;r=e,na(aa().filter((function(e){return e!==r}))),setTimeout((()=>this.update()),100)}},getRegistryServers:aa},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-popup",slots:[{id:"default",html:'',bindings:[{type:r.EACH,getKey:null,condition:null,template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'delete ',bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.remove(e.url)},{type:t.ATTRIBUTE,name:"url",evaluate:e=>e.url}],redundantAttribute:"expr79",selector:"[expr79]"},{redundantAttribute:"expr80",selector:"[expr80]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.url}]}]),redundantAttribute:"expr78",selector:"[expr78]",itemName:"url",indexName:null,evaluate:e=>e.getRegistryServers()},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:"\n Close\n ",bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr81",selector:"[expr81]"}]}],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.props.opened},{type:t.EVENT,name:"onClick",evaluate:e=>e.props.onClose}],redundantAttribute:"expr77",selector:"[expr77]"}]),name:"remove-registry-url"},sn={css:'dialogs-menu > .material-dropdown-wrapper,[is="dialogs-menu"] > .material-dropdown-wrapper{ color: var(--primary-text); list-style-type: disc; margin-block-start: 0.7em; } dialogs-menu material-dropdown .material-dropdown-container,[is="dialogs-menu"] material-dropdown .material-dropdown-container,dialogs-menu material-dropdown .material-dropdown-container .material-dropdown-item,[is="dialogs-menu"] material-dropdown .material-dropdown-container .material-dropdown-item{ background-color: var(--background); color: var(--primary-text); } dialogs-menu material-dropdown .material-dropdown-container .material-dropdown-item:hover,[is="dialogs-menu"] material-dropdown .material-dropdown-container .material-dropdown-item:hover{ background-color: rgba(0, 0, 0, 0.12); } dialogs-menu .material-dropdown-wrapper material-dropdown .material-dropdown-container,[is="dialogs-menu"] .material-dropdown-wrapper material-dropdown .material-dropdown-container{ right: 0; top: 2em; } dialogs-menu .overlay,[is="dialogs-menu"] .overlay{ position: fixed; height: 100%; width: 100%; top: 0; right: 0; z-index: 10; } dialogs-menu material-button button,[is="dialogs-menu"] material-button button{ float: right; z-index: 2; } dialogs-menu material-button .content i.material-icons,[is="dialogs-menu"] material-button .content i.material-icons{ font-size: 24px; } dialogs-menu material-popup *,[is="dialogs-menu"] material-popup *{ line-height: 1em; } dialogs-menu material-popup material-button .content,[is="dialogs-menu"] material-popup material-button .content{ line-height: 36px; }',exports:{components:{AddRegistryUrl:an,ChangeRegistryUrl:nn,RemoveRegistryUrl:on},dropdownItems:[{title:"Add URL",name:"add-registry-url",ro:!1},{title:"Change URL",name:"change-registry-url",ro:!0},{title:"Remove URL",name:"remove-registry-url",ro:!1}],onDropdownSelect(e){this.update({[e.target.item]:!0,isDropdownOpened:!1})},onClose(e){return()=>{this.update({[e]:!1,isDropdownOpened:!1})}},onClick(){this.update({isDropdownOpened:!this.state.isDropdownOpened})}},template:(e,t,r,a)=>e('
',[{type:r.IF,evaluate:e=>!e.props.readOnlyRegistries,redundantAttribute:"expr33",selector:"[expr33]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"add-registry-url",slots:[],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state["add-registry-url"]},{type:t.EVENT,name:"on-close",evaluate:e=>e.onClose("add-registry-url")},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.EVENT,name:"on-server-change",evaluate:e=>e.props.onServerChange}]}])},{type:r.TAG,getComponent:a,evaluate:e=>"change-registry-url",slots:[],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state["change-registry-url"]},{type:t.EVENT,name:"on-close",evaluate:e=>e.onClose("change-registry-url")},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.EVENT,name:"on-server-change",evaluate:e=>e.props.onServerChange}],redundantAttribute:"expr34",selector:"[expr34]"},{type:r.IF,evaluate:e=>!e.props.readOnlyRegistries,redundantAttribute:"expr35",selector:"[expr35]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"remove-registry-url",slots:[],attributes:[{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state["remove-registry-url"]},{type:t.EVENT,name:"on-close",evaluate:e=>e.onClose("remove-registry-url")},{type:t.EVENT,name:"on-notify",evaluate:e=>e.props.onNotify},{type:t.EVENT,name:"on-server-change",evaluate:e=>e.props.onServerChange}]}])},{type:r.TAG,getComponent:a,evaluate:e=>"material-button",slots:[{id:"default",html:'more_vert ',bindings:[]}],attributes:[{type:t.EVENT,name:"onClick",evaluate:e=>e.onClick}],redundantAttribute:"expr36",selector:"[expr36]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-dropdown",slots:[],attributes:[{type:t.ATTRIBUTE,name:"items",evaluate:e=>e.dropdownItems.filter((t=>t.ro||!e.props.readOnlyRegistries))},{type:t.EVENT,name:"on-click",evaluate:e=>e.onDropdownSelect},{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state.isDropdownOpened}],redundantAttribute:"expr37",selector:"[expr37]"},{type:r.IF,evaluate:e=>e.state.isDropdownOpened,redundantAttribute:"expr38",selector:"[expr38]",template:e(null,[{expressions:[{type:t.EVENT,name:"onclick",evaluate:e=>e.onClick}]}])}]),name:"dialogs-menu"},ln={css:'error-page,[is="error-page"]{ display: flex; flex-direction: row; margin-top: 20px; } error-page .content,[is="error-page"] .content{ margin: auto; text-align: center; } error-page .content a,[is="error-page"] .content a{ color: var(--accent-text); } error-page .content a:visited,[is="error-page"] .content a:visited{ color: var(--accent-text); } error-page .content p span,[is="error-page"] .content p span{ color: var(--accent-text); font-weight: 700; } error-page .content h2,[is="error-page"] .content h2{ font-weight: 700; }',exports:{getStatusCode(){const{props:e}=this;if("CATALOG_NOT_FOUND"===e.code)return"404"},URL:window.URL},template:(e,t,r,a)=>e('
',[{type:r.IF,evaluate:e=>e.getStatusCode(),redundantAttribute:"expr17",selector:"[expr17]",template:e(" ",[{expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.getStatusCode()}]}])},{redundantAttribute:"expr18",selector:"[expr18]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.props.code}]},{type:r.IF,evaluate:e=>"CATALOG_NOT_FOUND"===e.props.code,redundantAttribute:"expr19",selector:"[expr19]",template:e('We received a 404 status code from your registry.
The contact point was
\n This may be caused by a misconfiguration of Docker Registry UI. Check the\n FAQ and\n Available options
',[{redundantAttribute:"expr20",selector:"[expr20]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>e.props.url},{type:t.ATTRIBUTE,name:"href",evaluate:e=>e.props.url}]}])},{type:r.IF,evaluate:e=>"MIXED_CONTENT"===e.props.code,redundantAttribute:"expr21",selector:"[expr21]",template:e('Mixed Content : The page at ` `\n was loaded over HTTPS, but requested an insecure server endpoint ` `.\n
This request may has been blocked; the content must be served over HTTPS.
\n You may unset the option `REGISTRY_URL ` and set the registry server container URL in\n `NGINX_PROXY_PASS_URL `. It\'s usually the name of your container, and it should be on the shame\n network as the UI.\n
You can check the issue #277 .
',[{redundantAttribute:"expr22",selector:"[expr22]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>window.location.origin},{type:t.ATTRIBUTE,name:"href",evaluate:e=>window.location.origin}]},{redundantAttribute:"expr23",selector:"[expr23]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>new e.URL(e.props.url).origin},{type:t.ATTRIBUTE,name:"href",evaluate:e=>new e.URL(e.props.url).origin}]}])},{type:r.IF,evaluate:e=>"INCORRECT_URL"===e.props.code,redundantAttribute:"expr24",selector:"[expr24]",template:e('
',[{redundantAttribute:"expr25",selector:"[expr25]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>["`",e.props.url,"` does not seems to be a correct URL, should starts with http:// or https://."].join("")}]}])}]),name:"error-page"},un={"primary-text":"#25313b","neutral-text":"#777",background:"#fff","hover-background":"#eee","accent-text":"#6680a1","header-text":"#fff","header-background":"#25313b","footer-text":"#fff","footer-neutral-text":"#999","footer-background":"#555"},pn={"primary-text":"#8A9EBA","neutral-text":"#36527A",background:"#22272e","hover-background":"#30404D","accent-text":"#5684FF","header-text":"#fff","header-background":"#333A45","footer-text":"#fff","footer-neutral-text":"#999","footer-background":"#555"},cn="registryUiTheme",dn=function(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^theme-/,"")},mn=function(e,t){var r=function(e){var t=e.theme;if("auto"===t||""===t)switch(localStorage.getItem(cn)){case"dark":return!0;case"light":return!1;default:if("function"==typeof window.matchMedia){var r=window.matchMedia("(prefers-color-scheme: dark)");return r&&r.matches}}return"dark"===t}(e);tn=S({},r?pn:un),Object.entries(e).filter((function(e){var t=q(e,2),r=t[0];return t[1]&&/^theme[A-Z]/.test(r)})).map((function(e){var t=q(e,2),r=t[0],a=t[1];return[dn(r),a]})).forEach((function(e){var t=q(e,2),r=t[0],a=t[1];return tn[r]=a})),Object.entries(tn).forEach((function(e){var r=q(e,2),a=r[0],n=r[1];return t.setProperty("--".concat(a),n)}));var a=r?"dark":"light";return localStorage.setItem(cn,a),a},hn={css:'docker-registry-ui material-navbar,[is="docker-registry-ui"] material-navbar{ height: 64px; color: var(--header-text); background-color: var(--header-background); } docker-registry-ui material-navbar .menu,[is="docker-registry-ui"] material-navbar .menu{ display: flex; } docker-registry-ui material-navbar .nav-wrapper .menu,[is="docker-registry-ui"] material-navbar .nav-wrapper .menu{ flex-shrink: 1; } docker-registry-ui material-footer,[is="docker-registry-ui"] material-footer{ color: var(--footer-neutral-text); background-color: var(--footer-background); } docker-registry-ui material-footer .material-footer-logo,[is="docker-registry-ui"] material-footer .material-footer-logo{ color: var(--footer-text); } docker-registry-ui material-switch i,[is="docker-registry-ui"] material-switch i{ user-select: none; }',exports:{components:{Catalog:Na,TagList:Wa,TagHistory:rn,DialogsMenu:sn,SearchBar:Ia,Router:Wr,Route:gr,ErrorPage:ln},onUpdated(e,t){t.snackbarIsError=!1,t.snackbarMessage=void 0},onBeforeMount(e){(e.defaultRegistries&&e.defaultRegistries.length>0&&0===aa().length||sa(e.readOnlyRegistries))&&na(e.defaultRegistries),window.onselectstart=e=>{if(e.target&&e.target.className)return!["checkbox","checkmark","remove-tag"].find((t=>e.target.className.indexOf(t)>=0))};const t=e.registryUrl||("true"===e.singleRegistry?void 0:da.getUrlQueryParam()||aa(0))||window.location.origin+window.location.pathname.replace(/\/+$/,"");this.state.registryUrl=t.replace(/\/$/,"").replace(/index(\.html?)?$/,""),this.state.name=e.name||ea(e.registryUrl),this.state.catalogElementsLimit=e.catalogElementsLimit||1e5,this.state.pullUrl=this.pullUrl(this.state.registryUrl,e.pullUrl),this.state.useControlCacheHeader=e.useControlCacheHeader;const r=mn(e,this.root.parentNode.style);this.state.themeSwitch="dark"===r},onServerChange(e){this.update({registryUrl:e,name:ea(e),pullUrl:this.pullUrl(e),snackbarMessage:"Registry server changed to `"+e+"`."})},onAuthentication(e,t){if(e&&e.realm&&e.service&&e.scope){const{realm:r,service:a,scope:n}=e,o=new XMLHttpRequest;o.addEventListener("loadend",(()=>{try{const e=JSON.parse(o.responseText);t(e)}catch(e){this.notifySnackbar(`Failed to log in: ${e.message}`,!0)}})),o.open("GET",`${r}?service=${a}&scope=${n}`),o.send()}else t()},onAuthenticationClose(){this.update({authenticationDialogOpened:!1})},pullUrl:(e,t)=>ea(t||e&&e.length>0&&e||window.location.host),notifySnackbar(e,t){"string"==typeof e?this.update({snackbarMessage:e,snackbarIsError:t||!1}):e&&e.code?(this.update({pageError:e}),setTimeout((()=>delete this.state.pageError),1e3)):e&&e.message&&this.update({snackbarMessage:e.message,snackbarIsError:e.isError})},onSearch(e){this.update({filter:e})},onThemeChange(e){const t=e.target.checked?"dark":"light";mn({...this.props,theme:t},this.root.parentNode.style),this.update({themeSwitch:e.target.checked})},baseRoute:"([^#]*?)/(\\?[^#]*?)?(#!)?(/?)",router:da,version:"2.4.0",truthy:sa,stringToArray:function(e){return e&&"string"==typeof e?e.split(","):[]}},template:(e,t,r,a)=>e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-navbar",slots:[{id:"default",html:'Docker Registry UI ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"search-bar",slots:[],attributes:[{type:t.EVENT,name:"on-search",evaluate:e=>e.onSearch}],redundantAttribute:"expr1",selector:"[expr1]"},{type:r.IF,evaluate:e=>"true"!==e.props.singleRegistry,redundantAttribute:"expr2",selector:"[expr2]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"dialogs-menu",slots:[],attributes:[{type:t.EVENT,name:"on-notify",evaluate:e=>e.notifySnackbar},{type:t.EVENT,name:"on-server-change",evaluate:e=>e.onServerChange},{type:t.ATTRIBUTE,name:"default-registries",evaluate:e=>e.props.defaultRegistries},{type:t.ATTRIBUTE,name:"read-only-registries",evaluate:e=>e.truthy(e.props.readOnlyRegistries)}]}])}]}],attributes:[],redundantAttribute:"expr0",selector:"[expr0]"},{type:r.TAG,getComponent:a,evaluate:e=>"router",slots:[{id:"default",html:' ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"route",slots:[{id:"default",html:' ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"catalog",slots:[],attributes:[{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.state.registryUrl},{type:t.ATTRIBUTE,name:"registry-name",evaluate:e=>e.state.name},{type:t.ATTRIBUTE,name:"catalog-elements-limit",evaluate:e=>e.state.catalogElementsLimit},{type:t.EVENT,name:"on-notify",evaluate:e=>e.notifySnackbar},{type:t.ATTRIBUTE,name:"filter-results",evaluate:e=>e.state.filter},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.onAuthentication},{type:t.ATTRIBUTE,name:"show-catalog-nb-tags",evaluate:e=>e.truthy(e.props.showCatalogNbTags)}],redundantAttribute:"expr5",selector:"[expr5]"}]}],attributes:[{type:t.ATTRIBUTE,name:"path",evaluate:e=>e.baseRoute}],redundantAttribute:"expr4",selector:"[expr4]"},{type:r.TAG,getComponent:a,evaluate:e=>"route",slots:[{id:"default",html:' ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"tag-list",slots:[],attributes:[{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.state.registryUrl},{type:t.ATTRIBUTE,name:"registry-name",evaluate:e=>e.state.name},{type:t.ATTRIBUTE,name:"pull-url",evaluate:e=>e.state.pullUrl},{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.router.getTagListImage()},{type:t.ATTRIBUTE,name:"show-content-digest",evaluate:e=>e.truthy(e.props.showContentDigest)},{type:t.ATTRIBUTE,name:"is-image-remove-activated",evaluate:e=>e.truthy(e.props.isImageRemoveActivated)},{type:t.EVENT,name:"on-notify",evaluate:e=>e.notifySnackbar},{type:t.ATTRIBUTE,name:"filter-results",evaluate:e=>e.state.filter},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.onAuthentication},{type:t.ATTRIBUTE,name:"use-control-cache-header",evaluate:e=>e.truthy(e.props.useControlCacheHeader)}],redundantAttribute:"expr7",selector:"[expr7]"}]}],attributes:[{type:t.ATTRIBUTE,name:"path",evaluate:e=>[e.baseRoute,"taglist/(.*)"].join("")}],redundantAttribute:"expr6",selector:"[expr6]"},{type:r.TAG,getComponent:a,evaluate:e=>"route",slots:[{id:"default",html:' ',bindings:[{type:r.TAG,getComponent:a,evaluate:e=>"tag-history",slots:[],attributes:[{type:t.ATTRIBUTE,name:"registry-url",evaluate:e=>e.state.registryUrl},{type:t.ATTRIBUTE,name:"registry-name",evaluate:e=>e.state.name},{type:t.ATTRIBUTE,name:"pull-url",evaluate:e=>e.state.pullUrl},{type:t.ATTRIBUTE,name:"image",evaluate:e=>e.router.getTagHistoryImage()},{type:t.ATTRIBUTE,name:"tag",evaluate:e=>e.router.getTagHistoryTag()},{type:t.ATTRIBUTE,name:"is-image-remove-activated",evaluate:e=>e.truthy(e.props.isImageRemoveActivated)},{type:t.EVENT,name:"on-notify",evaluate:e=>e.notifySnackbar},{type:t.EVENT,name:"on-authentication",evaluate:e=>e.onAuthentication},{type:t.ATTRIBUTE,name:"history-custom-labels",evaluate:e=>e.stringToArray(e.props.historyCustomLabels)},{type:t.ATTRIBUTE,name:"use-control-cache-header",evaluate:e=>e.truthy(e.props.useControlCacheHeader)}],redundantAttribute:"expr9",selector:"[expr9]"}]}],attributes:[{type:t.ATTRIBUTE,name:"path",evaluate:e=>[e.baseRoute,"taghistory/(.*)"].join("")}],redundantAttribute:"expr8",selector:"[expr8]"}]}],attributes:[],redundantAttribute:"expr3",selector:"[expr3]"},{type:r.TAG,getComponent:a,evaluate:e=>"registry-authentication",slots:[],attributes:[{type:t.ATTRIBUTE,name:"realm",evaluate:e=>e.state.realm},{type:t.ATTRIBUTE,name:"scope",evaluate:e=>e.state.scope},{type:t.ATTRIBUTE,name:"service",evaluate:e=>e.state.service},{type:t.EVENT,name:"on-close",evaluate:e=>e.onAuthenticationClose},{type:t.EVENT,name:"on-authenticated",evaluate:e=>e.state.onAuthenticated},{type:t.ATTRIBUTE,name:"opened",evaluate:e=>e.state.authenticationDialogOpened}],redundantAttribute:"expr10",selector:"[expr10]"},{type:r.IF,evaluate:e=>e.state.pageError,redundantAttribute:"expr11",selector:"[expr11]",template:e(null,[{type:r.TAG,getComponent:a,evaluate:e=>"error-page",slots:[],attributes:[{type:t.ATTRIBUTE,name:"code",evaluate:e=>e.state.pageError.code},{type:t.ATTRIBUTE,name:"status",evaluate:e=>e.state.pageError.status},{type:t.ATTRIBUTE,name:"message",evaluate:e=>e.state.pageError.message},{type:t.ATTRIBUTE,name:"url",evaluate:e=>e.state.pageError.url}]}])},{type:r.TAG,getComponent:a,evaluate:e=>"material-snackbar",slots:[],attributes:[{type:t.ATTRIBUTE,name:"message",evaluate:e=>e.state.snackbarMessage},{type:t.ATTRIBUTE,name:"is-error",evaluate:e=>e.state.snackbarIsError}],redundantAttribute:"expr12",selector:"[expr12]"},{type:r.TAG,getComponent:a,evaluate:e=>"material-footer",slots:[{id:"default",html:'',bindings:[{redundantAttribute:"expr14",selector:"[expr14]",expressions:[{type:t.TEXT,childNodeIndex:0,evaluate:e=>["Docker Registry UI ",e.version].join("")}]},{type:r.IF,evaluate:e=>"auto"===e.props.theme||""===e.props.theme,redundantAttribute:"expr15",selector:"[expr15]",template:e(' ',[{type:r.TAG,getComponent:a,evaluate:e=>"material-switch",slots:[{id:"thumb-icon",html:'wb_sunny ',bindings:[]},{id:"thumb-selected-icon",html:'\n brightness_2\n ',bindings:[]}],attributes:[{type:t.EVENT,name:"on-change",evaluate:e=>e.onThemeChange},{type:t.ATTRIBUTE,name:"checked",evaluate:e=>e.state.themeSwitch}],redundantAttribute:"expr16",selector:"[expr16]"}])}]}],attributes:[],redundantAttribute:"expr13",selector:"[expr13]"}]),name:"docker-registry-ui"};Tt("material-card",{css:null,exports:null,template:(e,t,r,a)=>e(' ',[{type:r.SLOT,attributes:[],name:"default",redundantAttribute:"expr129",selector:"[expr129]"}]),name:"material-card"}),Tt("material-footer",{css:null,exports:{},template:(e,t,r,a)=>e('
',[{type:r.SLOT,attributes:[],name:"default",redundantAttribute:"expr130",selector:"[expr130]"}]),name:"material-footer"}),Tt("material-navbar",{css:null,exports:null,template:(e,t,r,a)=>e('
',[{expressions:[{type:t.ATTRIBUTE,name:"role",evaluate:e=>"toolbar"}]},{type:r.SLOT,attributes:[],name:"default",redundantAttribute:"expr148",selector:"[expr148]"}]),name:"material-navbar"}),Tt("material-spinner",{css:null,exports:null,template:(e,t,r,a)=>e(' ',[{redundantAttribute:"expr157",selector:"[expr157]",expressions:[{type:t.ATTRIBUTE,name:"stroke-width",evaluate:e=>e.props.strokeWidth||3}]}]),name:"material-spinner"}),Tt("material-button",Nt),Tt("material-waves",wt),Tt("material-checkbox",Ut),Tt("material-snackbar",jt),Tt("material-tabs",_t),Tt("material-dropdown",Bt),Tt("material-popup",Lt),Tt("material-input",Dt),Tt("material-switch",Mt);for(var gn,vn=(gn=hn,function(e,t,r){var a=void 0===r?{}:r,n=a.slots,o=a.attributes,i=a.parentScope;return function(){for(var e=arguments.length,t=new Array(e),r=0;r