import{C as e,Ct as t,Mt as n,Qt as r,S as i,T as a,W as o,Y as s,_ as c,dt as l,en as u,g as d,h as f,m as p,p as m,s as h,tn as g}from"./vendor/json-editor-vue-9tyg6b65.js";import{E as _}from"./utils-ivfwadyv.js";import{r as v}from"./client-kfvz1zfh.js";import{t as y}from"./_plugin-vue_export-helper-d9irwgla.js";import{t as b}from"./pages-dm1j9w83.js";import{t as x}from"./help-fab-myoje00l.js";import{t as S}from"./nsection-block-lfx32fn0.js";import{t as C}from"./color-abaog8vc.js";import{t as w}from"./duration-display-c5md5mx9.js";var T={"w-full":``},E={border:`b base`},D={"select-none":``,"ws-nowrap":``,p1:``,"text-right":``,"font-bold":``},O={colspan:`2`,p1:``,pl5:``,"text-left":``,"font-bold":``},k={"ws-nowrap":``,p1:``,"text-center":``,"font-bold":``},A={"ws-nowrap":``,p1:``,"text-center":``,"font-bold":``},j={"ws-nowrap":``,p1:``,"text-right":``,"font-bold":``},M={"w-0":``,"ws-nowrap":``,"text-center":``,"text-sm":``,op25:``},N={"text-sm":``},P={"ws-nowrap":``},F={"text-sm":``},I={"w-0":``,"text-center":``,"text-sm":``},L={"w-0":``,"text-center":``,"text-sm":``},R={"w-0":``,"text-right":``,"text-sm":``},z=Object.assign(a({__name:`HooksTable`,props:{hooks:{}},setup(a){let l=a,d=t(`duration`),f=t(`asc`),_={duration:(e,t)=>(t.duration??1/0)-(e.duration??1/0),name:(e,t)=>e.name.localeCompare(t.name),listener:(e,t)=>t.listeners-e.listeners,start:(e,t)=>t.start-e.start,executions:(e,t)=>t.executions.length-e.executions.length},v=m(()=>l.hooks.map(e=>e.start).sort((e,t)=>e-t)),y=m(()=>{let e=_[d.value],t=l.hooks.toSorted(e);return f.value===`desc`&&t.reverse(),t});function b(e){let t=e.split(`:`);return t.length===1?``:`${t[0]}:`}function x(e){let t=e.split(`:`);return t.length===1?e:t.slice(1).join(`:`)}function S(e){d.value===e?f.value=f.value===`asc`?`desc`:`asc`:d.value=e}return(t,a)=>{let l=w;return o(),c(`table`,T,[p(`thead`,E,[p(`tr`,null,[p(`th`,D,[p(`button`,{onClick:a[0]||=e=>S(`start`)},[a[5]||=i(` Order `,-1),p(`div`,{"ml--1":``,"text-xs":``,class:r([d.value===`start`?`op50`:`op0`,f.value===`asc`?`carbon-arrow-down`:`carbon-arrow-up`])},null,2)])]),p(`th`,O,[p(`button`,{onClick:a[1]||=e=>S(`name`)},[a[6]||=i(` Hook name `,-1),p(`div`,{"ml--1":``,"text-xs":``,class:r([d.value===`name`?`op50`:`op0`,f.value===`asc`?`carbon-arrow-down`:`carbon-arrow-up`])},null,2)])]),p(`th`,k,[p(`button`,{onClick:a[2]||=e=>S(`listener`)},[a[7]||=i(` Listeners `,-1),p(`div`,{"ml--1":``,"text-xs":``,class:r([d.value===`listener`?`op50`:`op0`,f.value===`asc`?`carbon-arrow-down`:`carbon-arrow-up`])},null,2)])]),p(`th`,A,[p(`button`,{onClick:a[3]||=e=>S(`executions`)},[a[8]||=i(` Executions `,-1),p(`div`,{"ml--1":``,"text-xs":``,class:r([d.value===`executions`?`op50`:`op0`,f.value===`asc`?`carbon-arrow-down`:`carbon-arrow-up`])},null,2)])]),p(`th`,j,[p(`button`,{onClick:a[4]||=e=>S(`duration`)},[a[9]||=i(` Duration `,-1),p(`div`,{"ml--1":``,"text-xs":``,class:r([d.value===`duration`?`op50`:`op0`,f.value===`asc`?`carbon-arrow-down`:`carbon-arrow-up`])},null,2)])])])]),p(`tbody`,null,[(o(!0),c(h,null,s(y.value,r=>(o(),c(`tr`,{key:r.name,border:`b dashed transparent hover:base`},[p(`td`,M,g(v.value.indexOf(r.start)),1),p(`td`,{"w-0":``,"ws-nowrap":``,"text-right":``,style:u({color:(`getHslColorFromStringHash`in t?t.getHslColorFromStringHash:n(C))(b(r.name))})},[p(`code`,N,g(b(r.name)),1)],4),p(`td`,P,[p(`code`,F,g(x(r.name)),1)]),p(`td`,I,g(r.listeners),1),p(`td`,L,g(r.executions.length+1),1),p(`td`,R,[e(l,{duration:r.duration},null,8,[`duration`])])]))),128))])])}}}),{__name:`HooksTable`}),B={},V={class:`markdown-body`};function H(e,t){return o(),c(`div`,V,[...t[0]||=[p(`template`,null,[p(`div`,{class:`markdown-body`},[p(`h1`,null,`Hooks`),p(`p`,null,[i(`Hooks are an advanced API which can be used for module development or other advanced use cases. The hooking API can be used to expand almost every aspect of Nuxt. Under the hood it is powered by `),p(`a`,{href:`https://github.com/unjs/hookable`,target:`_blank`,rel:`noopener`},`unjs/hookable`),i(`.`)]),p(`p`,null,[p(`a`,{href:`https://nuxt.com/docs/guide/going-further/hooks`,target:`_blank`,rel:`noopener`},`Learn more about hooks`),i(`.`)])])],-1)]])}var U=y(B,[[`render`,H]]),W=a({__name:`hooks`,setup(t){b({icon:`carbon-ibm-cloud-direct-link-2-connect`,title:`Hooks`,category:`advanced`});let r=_(),i=v(),a=m(()=>i.value?.metrics.clientHooks());return(t,i)=>{let s=z,u=S,m=U,g=x;return o(),c(h,null,[p(`div`,null,[a.value?.length?(o(),f(u,{key:0,icon:`carbon-ibm-cloud-direct-link-1-dedicated-hosting`,text:`Client Hooks`,description:`Total hooks: ${a.value.length}`,padding:`pl4 pr6`},{default:l(()=>[e(s,{hooks:a.value},null,8,[`hooks`])]),_:1},8,[`description`])):d(``,!0),n(r)?.length?(o(),f(u,{key:1,icon:`carbon-ibm-cloud-direct-link-2-dedicated`,text:`Server Hooks`,description:`Total hooks: ${n(r)?.length}`,padding:`pl4 pr6`},{default:l(()=>[e(s,{hooks:n(r)},null,8,[`hooks`])]),_:1},8,[`description`])):d(``,!0)]),e(g,null,{default:l(()=>[e(m)]),_:1})],64)}}});export{W as default};