@nuxt/devtools 4.0.0-alpha.16 → 4.0.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_nuxt/CodeDiff-C5IA82Lq.js.map.json +1 -0
- package/dist/_nuxt/CodeSnippets-iUZQ267m.js.map.json +1 -0
- package/dist/_nuxt/ComposableItem-K51Uhl0G.js.map.json +1 -0
- package/dist/_nuxt/DataSchemaButton-DdHHdnES.js.map.json +1 -0
- package/dist/_nuxt/DataSchemaDrawer-2qqeTeF6.js.map.json +1 -0
- package/dist/_nuxt/DurationDisplay-Dzweg1by.js.map.json +1 -0
- package/dist/_nuxt/FilepathItem-D6jrZnIo.js.map.json +1 -0
- package/dist/_nuxt/HelpFab-xcWoP6o_.js.map.json +1 -0
- package/dist/_nuxt/LaunchPage-DVRrHA9i.js.map.json +1 -0
- package/dist/_nuxt/NBadge-BNJzHbtD.js.map.json +1 -0
- package/dist/_nuxt/NCard-mHVN2GYZ.js.map.json +1 -0
- package/dist/_nuxt/NCheckbox-Cq1GuyrF.js.map.json +1 -0
- package/dist/_nuxt/NCodeBlock-C2Ewa6VO.js.map.json +1 -0
- package/dist/_nuxt/NDrawer-C_ZAB3z9.js.map.json +1 -0
- package/dist/_nuxt/NDropdown-CzJi2B9y.js.map.json +1 -0
- package/dist/_nuxt/NIcon-B-t2-q1r.js.map.json +1 -0
- package/dist/_nuxt/NIconTitle-C75MU0px.js.map.json +1 -0
- package/dist/_nuxt/NLink-DIWpT2C-.js.map.json +1 -0
- package/dist/_nuxt/NMarkdown-DFwJ-ppZ.js.map.json +1 -0
- package/dist/_nuxt/NNavbar-BShfBHAc.js.map.json +1 -0
- package/dist/_nuxt/NPanelGrids-CEorXUWJ.js.map.json +1 -0
- package/dist/_nuxt/NSectionBlock-Cm4pPEIM.js.map.json +1 -0
- package/dist/_nuxt/NSelect-9Nk3v_sQ.js.map.json +1 -0
- package/dist/_nuxt/NSelectTabs-D8amX2yN.js.map.json +1 -0
- package/dist/_nuxt/NSplitPane-CWyIovAp.js.map.json +1 -0
- package/dist/_nuxt/NTip-BVi1j0Ir.js.map.json +1 -0
- package/dist/_nuxt/ServerRouteInputs-lclUilqu.js.map.json +1 -0
- package/dist/_nuxt/StacktraceList-BUhKgrAv.js.map.json +1 -0
- package/dist/_nuxt/StateEditor-D_NCPzZq.js.map.json +1 -0
- package/dist/_nuxt/__blank-BgoalQAL.js.map.json +1 -0
- package/dist/_nuxt/analyze-build-DSk_N3wx.js.map.json +1 -0
- package/dist/_nuxt/assets-6seYEHqs.js.map.json +1 -0
- package/dist/_nuxt/client-r5qP-99Q.js.map.json +1 -0
- package/dist/_nuxt/color-BL_mIEWV.js.map.json +1 -0
- package/dist/_nuxt/components-CTVOL1-D.js.map.json +1 -0
- package/dist/_nuxt/constants-D9kP6ji9.js.map.json +1 -0
- package/dist/_nuxt/custom-_name_-DRWuAoZa.js.map.json +1 -0
- package/dist/_nuxt/debug-CpWOyAbK.js.map.json +1 -0
- package/dist/_nuxt/default-Bzh4dZQ5.js.map.json +1 -0
- package/dist/_nuxt/entry-uV9FV_26.js.map.json +1 -0
- package/dist/_nuxt/error-404-BN7jSsJU.js.map.json +1 -0
- package/dist/_nuxt/error-500-CX60RT79.js.map.json +1 -0
- package/dist/_nuxt/error-YOq9ydYM.js.map.json +1 -0
- package/dist/_nuxt/full-CvSnaO29.js.map.json +1 -0
- package/dist/_nuxt/head-Q3WHkZN-.js.map.json +1 -0
- package/dist/_nuxt/hooks-Dfejz2-5.js.map.json +1 -0
- package/dist/_nuxt/imports-CCepJr4G.js.map.json +1 -0
- package/dist/_nuxt/modules-CDEu6e8J.js.map.json +1 -0
- package/dist/_nuxt/none-Df66KJph.js.map.json +1 -0
- package/dist/_nuxt/nuxt-B-ZgUV2U.js.map.json +1 -0
- package/dist/_nuxt/nuxt-link-X36zPJaC.js.map.json +1 -0
- package/dist/_nuxt/open-graph-RnltEfE1.js.map.json +1 -0
- package/dist/_nuxt/overview-0981_RjH.js.map.json +1 -0
- package/dist/_nuxt/pages-BJY0ZMcV.js.map.json +1 -0
- package/dist/_nuxt/pages-Dv_rq-A5.js.map.json +1 -0
- package/dist/_nuxt/pages-c-R2EyNA.js.map.json +1 -0
- package/dist/_nuxt/payload-EEc-a5Rs.js.map.json +1 -0
- package/dist/_nuxt/plugins-DBU4EaVz.js.map.json +1 -0
- package/dist/_nuxt/ready-B0tgRAWs.js.map.json +1 -0
- package/dist/_nuxt/runtime-configs-eyjqyWy0.js.map.json +1 -0
- package/dist/_nuxt/server-routes-CmFWvg0q.js.map.json +1 -0
- package/dist/_nuxt/server-tasks-y13wW_sS.js.map.json +1 -0
- package/dist/_nuxt/settings-CQHWdQH5.js.map.json +1 -0
- package/dist/_nuxt/state-components-BtOK14JS.js.map.json +1 -0
- package/dist/_nuxt/state-modules-B1t4RCwZ.js.map.json +1 -0
- package/dist/_nuxt/state-tabs-DgyOko_b.js.map.json +1 -0
- package/dist/_nuxt/storage-CL3RFmxG.js.map.json +1 -0
- package/dist/_nuxt/timeline-CrhB_ydt.js.map.json +1 -0
- package/dist/_nuxt/utils-DdQYVRed.js.map.json +1 -0
- package/dist/_nuxt/virtual-files-WqYqMpE0.js.map.json +1 -0
- package/dist/_nuxt/virtual_nuxt_node_modules_.cache_nuxt_.nuxt_fetch.server-pxhz0pzP.js.map.json +1 -0
- package/dist/chunks/module-main.mjs +59 -40
- package/dist/dirs.d.cts +1 -0
- package/dist/index.mjs.map.json +1 -0
- package/dist/module.d.cts +2 -0
- package/dist/module.json +1 -1
- package/dist/runtime/shared/hooks.d.ts +10 -2
- package/dist/server.mjs.map.json +1 -0
- package/dist/types.d.cts +2 -0
- package/dist/webcomponents/index.d.cts +1 -0
- package/package.json +22 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NIconTitle-C75MU0px.js","mappings":";;;AAKA,IAAA,yDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,MAAM,CAAC;EACP,MAAM,CAAC;CACT;CACA,MAAM,SAAc;EAItB,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,OAAO,eAAgB,WAAY;IACvC,MAAM;IACN,gBAAgB;GAClB,GAAG,MAAM,CAAC,EAAE,EAAE;GACd,IAAI,QAAQ,MACV,MAAM,eAAe,eAAgB,QAAQ,IAAI,EAAE,SAAS;QAE5D,MAAM,SAAS;GAEjB,cAAe,KAAK,QAAQ,WAAW,CAAC,SAAS;IAC/C,MAAM,QAAQ,eAAgB,QAAQ,IAAI,EAAE,OAAO;GACrD,GAAG,OAAO,OAAO;GACjB,MAAM,QAAQ;EAChB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NIconTitle.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NIconTitle.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderClass as _ssrRenderClass, ssrRenderSlot as _ssrRenderSlot, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate } from \"vue/server-renderer\"\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NIconTitle',\n __ssrInlineRender: true,\n props: {\n icon: {},\n text: {}\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n flex: \"~ gap-3\",\n \"items-center\": \"\"\n }, _attrs))}>`)\n if (__props.icon) {\n _push(`<div class=\"${_ssrRenderClass(__props.icon)}\"></div>`)\n } else {\n _push(`<!---->`)\n }\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, () => {\n _push(`<div>${_ssrInterpolate(__props.text)}</div>`)\n }, _push, _parent)\n _push(`</div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\ndefineProps<{\n icon?: string\n text?: string\n}>()\n</script>\n\n<template>\n <div flex=\"~ gap-3\" items-center>\n <div v-if=\"icon\" :class=\"icon\" />\n <slot>\n <div>{{ text }}</div>\n </slot>\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NLink-DIWpT2C-.js","mappings":";;;;AAOA,IAAA,oDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,IAAI,CAAC;EACL,MAAM,CAAC;EACP,QAAQ,CAAC;EACT,WAAW,EAAE,MAAM,QAAQ;CAC7B;CACA,MAAM,SAAc;EAEtB,MAAM,QAAQ;EAEd,MAAM,OAAO,eAAe,MAAM,QAAQ,MAAM,EAAE;EAElD,QAAQ,MAAU,OAAW,SAAa,WAAgB;GAGxD,MAAM,mBAAoB,UAAqB,WAAY,KAAK,QAAQ;IACpE,MAAM,KAAK;IACX,QAAQ,QAAQ;IAChB,KAAK,QAAQ,WAAW,WAAW,wBAAwB,KAAA;GAC7D,IAAI,CAAC,GAAG,EACR,OAAO,EAAE,sDAAsD,KAAK,SAAS,QAAQ,UAAU,EACjG,GAAG,MAAM,GAAG;IACV,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;KACjD,IAAI,OAAO;MACT,cAAe,KAAK,QAAQ,WAAW,CAAC,GAAG,MAAM,OAAO,SAAS,QAAQ;MACzE,IAAI,KAAK,SAAS,QAAQ,WAAW,UACnC,MAAM,2DAA2D,SAAS,QAAQ;WAElF,MAAM,SAAS;KAEnB,OACE,OAAO,CACL,WAAY,KAAK,QAAQ,SAAS,GACjC,KAAK,SAAS,QAAQ,WAAW,YAC7B,UAAW,GAAG,YAAa,OAAO;MACjC,KAAK;MACL,2BAA2B;MAC3B,kBAAkB;MAClB,WAAW;MACX,MAAM;KACR,CAAC,KACD,mBAAoB,IAAI,IAAI,CAClC;IAEJ,CAAC;IACD,GAAG;GACL,GAAG,OAAO,CAAC;EACb;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NLink.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NLink.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, withCtx as _withCtx, renderSlot as _renderSlot, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent } from \"vue/server-renderer\"\n\nimport { computed } from 'vue'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NLink',\n __ssrInlineRender: true,\n props: {\n to: {},\n href: {},\n target: {},\n underline: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props\n\nconst link = computed(() => props.href || props.to)\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NuxtLink = _resolveComponent(\"NuxtLink\")!\n\n _push(_ssrRenderComponent(_component_NuxtLink, _mergeProps(link.value ? {\n href: link.value,\n target: __props.target,\n rel: __props.target === '_blank' ? 'noopener noreferrer' : undefined,\n } : {}, {\n class: { 'n-link n-transition hover:n-link-hover n-link-base': link.value || __props.underline }\n }, _attrs), {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent, _scopeId)\n if (link.value && __props.target === '_blank') {\n _push(`<div i-carbon:arrow-up-right translate-y--1 text-xs op50${_scopeId}></div>`)\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _renderSlot(_ctx.$slots, \"default\"),\n (link.value && __props.target === '_blank')\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n \"i-carbon:arrow-up-right\": \"\",\n \"translate-y--1\": \"\",\n \"text-xs\": \"\",\n op50: \"\"\n }))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 3\n }, _parent))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n to?: string\n href?: string\n target?: string\n underline?: boolean\n}>()\n\nconst link = computed(() => props.href || props.to)\n</script>\n\n<template>\n <NuxtLink\n v-bind=\"link ? {\n href: link,\n target,\n rel: target === '_blank' ? 'noopener noreferrer' : undefined,\n } : {}\"\n :class=\"{ 'n-link n-transition hover:n-link-hover n-link-base': link || underline }\"\n >\n <slot />\n <div\n v-if=\"link && target === '_blank'\"\n i-carbon:arrow-up-right translate-y--1 text-xs op50\n />\n </NuxtLink>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NMarkdown-DFwJ-ppZ.js","mappings":";;;;AAOA,IAAA,wDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,UAAU,CAAC;EACX,KAAK,CAAC;CACR;CACA,MAAM,SAAc;EAMtB,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,IAAI,QAAQ,YAAY,MAAO,cAAc,CAAC,EAAE,UAAU,gBACxD,eAAgB,OAAO,YAAa,wBAAyB,QAAQ,OAAO,MAAM,GAAG,WAAY,EAAE,OAAO,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO;QAEjJ,eAAgB,OAAO,YAAa,wBAAyB,QAAQ,OAAO,MAAM,GAAG,WAAY,EAAE,OAAO,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO;EAErJ;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NMarkdown.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NMarkdown.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveDynamicComponent as _resolveDynamicComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\"\nimport { ssrRenderVNode as _ssrRenderVNode } from \"vue/server-renderer\"\n\nimport { devToolsClient } from '../runtime/client'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NMarkdown',\n __ssrInlineRender: true,\n props: {\n markdown: {},\n tag: {}\n },\n setup(__props: any) {\n\n// This components requires to run in DevTools to render correctly\n\n\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n if (__props.markdown && _unref(devToolsClient)?.devtools?.renderMarkdown) {\n _ssrRenderVNode(_push, _createVNode(_resolveDynamicComponent(__props.tag || 'span'), _mergeProps({ class: \"n-markdown\" }, _attrs), null), _parent)\n } else {\n _ssrRenderVNode(_push, _createVNode(_resolveDynamicComponent(__props.tag || 'span'), _mergeProps({ class: \"n-markdown\" }, _attrs), null), _parent)\n }\n}\n}\n\n})","<script setup lang=\"ts\">\n// This components requires to run in DevTools to render correctly\n\nimport { devToolsClient } from '../runtime/client'\n\ndefineProps<{\n markdown: string\n tag?: string\n}>()\n</script>\n\n<template>\n <template v-if=\"markdown && devToolsClient?.devtools?.renderMarkdown\">\n <component :is=\"tag || 'span'\" class=\"n-markdown\" v-html=\"devToolsClient.devtools.renderMarkdown(markdown)\" />\n </template>\n <template v-else>\n <component :is=\"tag || 'span'\" class=\"n-markdown\" v-text=\"markdown\" />\n </template>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NNavbar-BShfBHAc.js","mappings":";;;;AAKA,IAAA,sDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,QAAQ,CAAC;EACT,WAAW,EAAE,MAAM,QAAQ;CAC7B;CACA,OAAO,CAAC,eAAe;CACvB,MAAM,SAAc,EAAE,MAAM,UAAU;EAIxC,MAAM,OAAO;EAEb,SAAS,OAAO,OAAY;GAC1B,KAAK,iBAAiB,MAAM,OAAO,KAAK;EAC1C;EAEA,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,wBAAwB;GAE9B,MAAM,OAAO,eAAgB,WAAY;IACvC,MAAM;IACN,QAAQ;IACR,kBAAkB;IAClB,UAAU;IACV,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,UAAU,CAAC;GACpC,GAAG,MAAM,CAAC,EAAE,uCAAuC;GACnD,cAAe,KAAK,QAAQ,UAAU,CAAC,SAAS;IAC9C,IAAI,QAAQ,WAAW,KAAA,GACrB,MAAM,mBAAoB,uBAAuB;KAC/C,aAAa;KACb,MAAM;KACN,GAAG;KACH,aAAa;KACb,OAAO,EAAE,aAAa,CAAC,QAAQ,UAAU;KACzC,OAAO,QAAQ;KACf,SAAS;IACX,GAAG,MAAM,OAAO,CAAC;SAEjB,MAAM,SAAS;GAEnB,GAAG,OAAO,OAAO;GACjB,cAAe,KAAK,QAAQ,WAAW,CAAC,GAAG,MAAM,OAAO,OAAO;GAC/D,MAAM,QAAQ;GACd,cAAe,KAAK,QAAQ,WAAW,CAAC,GAAG,MAAM,OAAO,OAAO;GAC/D,MAAM,QAAQ;EAChB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NNavbar.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NNavbar.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttrs as _ssrRenderAttrs } from \"vue/server-renderer\"\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NNavbar',\n __ssrInlineRender: true,\n props: {\n search: {},\n noPadding: { type: Boolean }\n },\n emits: [\"update:search\"],\n setup(__props: any, { emit: __emit }) {\n\n\n\nconst emit = __emit\n\nfunction update(event: any) {\n emit('update:search', event.target.value)\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n flex: \"~ col gap2 wrap\",\n border: \"b base\",\n \"n-navbar-glass\": \"\",\n \"flex-1\": \"\",\n class: [{ p4: !__props.noPadding }]\n }, _attrs))}><div flex=\"~ gap4 wrap\" items-center>`)\n _ssrRenderSlot(_ctx.$slots, \"search\", {}, () => {\n if (__props.search !== undefined) {\n _push(_ssrRenderComponent(_component_NTextInput, {\n placeholder: \"Search...\",\n icon: \"carbon-search\",\n n: \"primary\",\n \"flex-auto\": \"\",\n class: { 'px-3 py-2': !__props.noPadding },\n value: __props.search,\n onInput: update\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n }, _push, _parent)\n _ssrRenderSlot(_ctx.$slots, \"actions\", {}, null, _push, _parent)\n _push(`</div>`)\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent)\n _push(`</div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\ndefineProps<{\n search?: string\n noPadding?: boolean\n}>()\n\nconst emit = defineEmits<{\n (event: 'update:search', value: string): void\n}>()\n\nfunction update(event: any) {\n emit('update:search', event.target.value)\n}\n</script>\n\n<template>\n <div flex=\"~ col gap2 wrap\" border=\"b base\" n-navbar-glass flex-1 :class=\"[{ p4: !noPadding }]\">\n <div flex=\"~ gap4 wrap\" items-center>\n <slot name=\"search\">\n <NTextInput\n v-if=\"search !== undefined\"\n placeholder=\"Search...\"\n icon=\"carbon-search\"\n n=\"primary\" flex-auto\n :class=\"{ 'px-3 py-2': !noPadding }\"\n :value=\"search\"\n @input=\"update\"\n />\n </slot>\n <slot name=\"actions\" />\n </div>\n <slot />\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NPanelGrids-CEorXUWJ.js","mappings":"","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NPanelGrids.vue"],"sourcesContent":["<template>\n <div class=\"n-panel-grids-center\">\n <slot />\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NSectionBlock-Cm4pPEIM.js","mappings":"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","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NSectionBlock.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NSectionBlock.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrRenderClass as _ssrRenderClass, ssrIncludeBooleanAttr as _ssrIncludeBooleanAttr, ssrInterpolate as _ssrInterpolate } from \"vue/server-renderer\"\n\nimport { useVModel } from '@vueuse/core'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NSectionBlock',\n __ssrInlineRender: true,\n props: {\n icon: {},\n text: {},\n description: {},\n containerClass: { default: '' },\n headerClass: {},\n collapse: { type: Boolean, default: true },\n open: { type: Boolean, default: true },\n padding: { type: [Boolean, String], default: true }\n },\n setup(__props: any) {\n\nconst props = __props\n\nconst open = useVModel(props, 'open', undefined, { passive: true })\nfunction onToggle(e: any) {\n open.value = e.target.open\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NIconTitle = _resolveComponent(\"NIconTitle\")!\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n\n _push(`<!--[--><details${\n (_ssrIncludeBooleanAttr(_unref(open))) ? \" open\" : \"\"\n } data-v-95ac5573><summary class=\"${\n _ssrRenderClass([__props.collapse ? '' : 'pointer-events-none', \"cursor-pointer select-none p4 hover:bg-active\"])\n }\" data-v-95ac5573>`)\n _push(_ssrRenderComponent(_component_NIconTitle, {\n icon: __props.icon,\n text: __props.text,\n \"text-xl\": \"\",\n transition: \"\",\n class: [_unref(open) ? 'op100' : 'op60', __props.headerClass]\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div data-v-95ac5573${\n _scopeId\n }><div text-base data-v-95ac5573${\n _scopeId\n }>`)\n _ssrRenderSlot(_ctx.$slots, \"text\", {}, () => {\n _push(`${_ssrInterpolate(__props.text)}`)\n }, _push, _parent, _scopeId)\n _push(`</div>`)\n if (__props.description || _ctx.$slots.description) {\n _push(`<div text-sm op50 data-v-95ac5573${_scopeId}>`)\n _ssrRenderSlot(_ctx.$slots, \"description\", {}, () => {\n _push(`${_ssrInterpolate(__props.description)}`)\n }, _push, _parent, _scopeId)\n _push(`</div>`)\n } else {\n _push(`<!---->`)\n }\n _push(`</div><div class=\"flex-auto\" data-v-95ac5573${_scopeId}></div>`)\n _ssrRenderSlot(_ctx.$slots, \"actions\", {}, null, _push, _parent, _scopeId)\n if (__props.collapse) {\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: \"carbon-chevron-down\",\n class: \"chevron\",\n \"cursor-pointer\": \"\",\n \"place-self-start\": \"\",\n \"text-base\": \"\",\n op75: \"\",\n transition: \"\",\n \"duration-500\": \"\"\n }, null, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _createVNode(\"div\", null, [\n _createVNode(\"div\", { \"text-base\": \"\" }, [\n _renderSlot(_ctx.$slots, \"text\", {}, () => [\n _createTextVNode(_toDisplayString(__props.text), 1)\n ], true)\n ]),\n (__props.description || _ctx.$slots.description)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n \"text-sm\": \"\",\n op50: \"\"\n }, [\n _renderSlot(_ctx.$slots, \"description\", {}, () => [\n _createTextVNode(_toDisplayString(__props.description), 1)\n ], true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", { class: \"flex-auto\" }),\n _renderSlot(_ctx.$slots, \"actions\", {}, undefined, true),\n (__props.collapse)\n ? (_openBlock(), _createBlock(_component_NIcon, {\n key: 0,\n icon: \"carbon-chevron-down\",\n class: \"chevron\",\n \"cursor-pointer\": \"\",\n \"place-self-start\": \"\",\n \"text-base\": \"\",\n op75: \"\",\n transition: \"\",\n \"duration-500\": \"\"\n }))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 3\n }, _parent))\n _push(`</summary><div class=\"${_ssrRenderClass([typeof __props.padding === 'string' ? __props.padding : __props.padding ? 'px4' : '', \"flex flex-col flex-gap2 pb6 pt2\"])}\" data-v-95ac5573>`)\n _ssrRenderSlot(_ctx.$slots, \"details\", {}, null, _push, _parent)\n _push(`<div class=\"${_ssrRenderClass([__props.containerClass, \"mt1\"])}\" data-v-95ac5573>`)\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent)\n _push(`</div>`)\n _ssrRenderSlot(_ctx.$slots, \"footer\", {}, null, _push, _parent)\n _push(`</div></details><div class=\"x-divider\" data-v-95ac5573></div><!--]-->`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(\n defineProps<{\n icon?: string\n text?: string\n description?: string\n containerClass?: string\n headerClass?: string\n collapse?: boolean\n open?: boolean\n padding?: boolean | string\n }>(),\n {\n containerClass: '',\n open: true,\n padding: true,\n collapse: true,\n },\n)\n\nconst open = useVModel(props, 'open', undefined, { passive: true })\nfunction onToggle(e: any) {\n open.value = e.target.open\n}\n</script>\n\n<template>\n <!-- TODO: Seems something wrong with the DOM type -->\n <!-- @vue-ignore -->\n <details :open=\"open\" @toggle=\"(onToggle as any)\">\n <summary\n class=\"cursor-pointer select-none p4 hover:bg-active\"\n :class=\"collapse ? '' : 'pointer-events-none'\"\n >\n <NIconTitle :icon=\"icon\" :text=\"text\" text-xl transition :class=\"[open ? 'op100' : 'op60', headerClass]\">\n <div>\n <div text-base>\n <slot name=\"text\">\n {{ text }}\n </slot>\n </div>\n <div v-if=\"description || $slots.description\" text-sm op50>\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n </div>\n <div class=\"flex-auto\" />\n <slot name=\"actions\" />\n <NIcon\n v-if=\"collapse\"\n icon=\"carbon-chevron-down\"\n class=\"chevron\"\n cursor-pointer place-self-start text-base op75 transition duration-500\n />\n </NIconTitle>\n </summary>\n <div\n v-lazy-show=\"open\"\n class=\"flex flex-col flex-gap2 pb6 pt2\"\n :class=\"typeof padding === 'string' ? padding : padding ? 'px4' : ''\"\n >\n <slot name=\"details\" />\n <div :class=\"containerClass\" class=\"mt1\">\n <slot />\n </div>\n <slot name=\"footer\" />\n </div>\n </details>\n <div class=\"x-divider\" />\n</template>\n\n<style scoped>\ndetails {\n --at-apply: border-none;\n}\n\nsummary {\n --at-apply: border-none;\n list-style: none;\n}\n\ndetails[open] summary {\n --at-apply: border-none;\n}\n\ndetails summary::-webkit-details-marker {\n display: none;\n}\n\ndetails[open] .chevron {\n transform: rotate(180deg);\n opacity: 0.75;\n}\n</style>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NSelect-9Nk3v_sQ.js","mappings":";;;;AAOA,IAAA,sDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,YAAY,EAAE,SAAS,KAAA,EAAU;EACjC,aAAa,EAAE,SAAS,GAAG;EAC3B,MAAM,EAAE,SAAS,GAAG;EACpB,UAAU;GAAE,MAAM;GAAS,SAAS;EAAM;CAC5C;CACA,MAAM,SAAc,EAAE,MAAM,UAAU;EAIxC,MAAM,QAAQ,UAAU,SAAO,cAAc,QAAM,EAAE,SAAS,KAAK,CAAC;EAEpE,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,mBAAmB;GAEzB,MAAM,OAAO,eAAgB,WAAY,EACvC,OAAO,CAAC,4HAA4H,QAAQ,WAAW,mBAAmB,eAAe,EAC3L,GAAG,MAAM,CAAC,EAAE,EAAE;GACd,cAAe,KAAK,QAAQ,QAAQ,CAAC,SAAS;IAC5C,IAAI,QAAQ,MACV,MAAM,mBAAoB,kBAAkB;KAC1C,MAAM,QAAQ;KACd,OAAO;IACT,GAAG,MAAM,OAAO,CAAC;SAEjB,MAAM,SAAS;GAEnB,GAAG,OAAO,OAAO;GACjB,MAAM,UACH,sBAAuB,QAAQ,QAAQ,IAAK,cAAc,GAC5D,UACC,eAAgB,CAAC,QAAQ,WAAW,oBAAoB,IAAI,0CAA0C,CAAC,EACxG,GAAG;GACJ,IAAI,QAAQ,aACV,MAAM,mCACH,sBAAwB,MAAM,QAAQ,MAAO,KAAK,CAAC,IAChD,gBAAiB,MAAO,KAAK,GAAG,EAAE,IAClC,cAAe,MAAO,KAAK,GAAG,EAAE,CAAC,IAAK,cAAc,GACzD,GACC,eAAgB,QAAQ,WAAW,EACpC,UAAU;QAEX,MAAM,SAAS;GAEjB,cAAe,KAAK,QAAQ,WAAW,CAAC,GAAG,MAAM,OAAO,OAAO;GAC/D,MAAM,iBAAiB;EACzB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NSelect.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NSelect.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrIncludeBooleanAttr as _ssrIncludeBooleanAttr, ssrLooseContain as _ssrLooseContain, ssrLooseEqual as _ssrLooseEqual, ssrRenderClass as _ssrRenderClass, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate } from \"vue/server-renderer\"\n\nimport { useVModel } from '@vueuse/core'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NSelect',\n __ssrInlineRender: true,\n props: {\n modelValue: { default: undefined },\n placeholder: { default: '' },\n icon: { default: '' },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props\nconst emit = __emit\nconst input = useVModel(props, 'modelValue', emit, { passive: true })\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n class: [\"n-select flex flex items-center border rounded n-bg-base px-2 py-1 focus-within:border-context focus-within:n-focus-base\", __props.disabled ? 'border-gray:10' : 'n-border-base']\n }, _attrs))}>`)\n _ssrRenderSlot(_ctx.$slots, \"icon\", {}, () => {\n if (__props.icon) {\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: __props.icon,\n class: \"mr-0.4em text-1.1em op50\"\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n }, _push, _parent)\n _push(`<select${\n (_ssrIncludeBooleanAttr(__props.disabled)) ? \" disabled\" : \"\"\n } class=\"${\n _ssrRenderClass([__props.disabled ? 'appearance-none' : '', \"w-full flex-auto n-bg-base !outline-none\"])\n }\">`)\n if (__props.placeholder) {\n _push(`<option value=\"\" disabled hidden${\n (_ssrIncludeBooleanAttr((Array.isArray(_unref(input)))\n ? _ssrLooseContain(_unref(input), \"\")\n : _ssrLooseEqual(_unref(input), \"\"))) ? \" selected\" : \"\"\n }>${\n _ssrInterpolate(__props.placeholder)\n }</option>`)\n } else {\n _push(`<!---->`)\n }\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent)\n _push(`</select></div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: any\n placeholder?: string\n icon?: string\n disabled?: boolean\n }>(),\n {\n modelValue: undefined,\n placeholder: '',\n disabled: false,\n icon: '',\n },\n)\nconst emit = defineEmits<{ (...args: any): void }>()\nconst input = useVModel(props, 'modelValue', emit, { passive: true })\n</script>\n\n<template>\n <div\n class=\"n-select flex flex items-center border rounded n-bg-base px-2 py-1 focus-within:border-context focus-within:n-focus-base\"\n :class=\"disabled ? 'border-gray:10' : 'n-border-base'\"\n >\n <slot name=\"icon\">\n <NIcon v-if=\"icon\" :icon=\"icon\" class=\"mr-0.4em text-1.1em op50\" />\n </slot>\n <select v-model=\"input\" :disabled=\"disabled\" class=\"w-full flex-auto n-bg-base !outline-none\" :class=\"disabled ? 'appearance-none' : ''\">\n <option v-if=\"placeholder\" value=\"\" disabled hidden>\n {{ placeholder }}\n </option>\n <slot />\n </select>\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NSelectTabs-D8amX2yN.js","mappings":";;;;AAOA,IAAA,0DAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,YAAY,EAAE,SAAS,KAAA,EAAU;EACjC,UAAU;GAAE,MAAM;GAAS,SAAS;EAAM;EAC1C,SAAS,CAAC;CACZ;CACA,MAAM,SAAc,EAAE,MAAM,UAAU;EAIxC,MAAM,QAAQ,UAAU,SAAO,cAAc,QAAM,EAAE,SAAS,KAAK,CAAC;EAEpE,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,YAAY,eAAgB,WAAY,EAAE,OAAO,+FAA+F,GAAG,MAAM,CAAC,EAAE,UAAU;GAC5K,cAAe,QAAQ,UAAU,GAAG,QAAQ;IAC1C,MAAM,SACH,sBAAuB,QAAQ,QAAQ,IAAK,cAAc,GAC5D,UACC,eAAgB,CAAC,CACf,MAAM,mCAAmC,IACzC,EAAE,UAAU,MAAO,KAAK,IAAI,gBAAgB,EAC9C,GAAG,4DAA4D,CAAC,EACjE,GACC,cAAe,SAAS,EAAE,KAAK,EAChC,eACC,eAAgB,CACZ,EAAE,UAAU,MAAO,KAAK,IAAI,KAAK,MACnC,CAAC,EACJ,IACC,eAAgB,EAAE,KAAK,EACxB,cACE,sBAAuB,cAAe,MAAO,KAAK,GAAG,EAAE,KAAK,CAAC,IAAK,aAAa,GACjF,eACE,sBAAuB,QAAQ,QAAQ,IAAK,cAAc,KAE3D,cAAe,SAAS,EAAE,KAAK,IAE/B,cAAe,SAAS,EAAE,KAAK,EAChC,0CAA0C;GAC7C,CAAC;GACD,MAAM,qBAAqB;EAC7B;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NSelectTabs.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NSelectTabs.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderClass as _ssrRenderClass, ssrLooseEqual as _ssrLooseEqual, ssrIncludeBooleanAttr as _ssrIncludeBooleanAttr, ssrRenderAttr as _ssrRenderAttr, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport { useVModel } from '@vueuse/core'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NSelectTabs',\n __ssrInlineRender: true,\n props: {\n modelValue: { default: undefined },\n disabled: { type: Boolean, default: false },\n options: {}\n },\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props\nconst emit = __emit\nconst input = useVModel(props, 'modelValue', emit, { passive: true })\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n _push(`<fieldset${_ssrRenderAttrs(_mergeProps({ class: \"n-select-tabs flex flex-inline flex-wrap items-center border n-border-base rounded n-bg-base\" }, _attrs))}><!--[-->`)\n _ssrRenderList(__props.options, (i, idx) => {\n _push(`<label${\n (_ssrIncludeBooleanAttr(__props.disabled)) ? \" disabled\" : \"\"\n } class=\"${\n _ssrRenderClass([[\n idx ? 'border-l n-border-base ml--1px' : '',\n i.value === _unref(input) ? 'n-bg-active' : '',\n ], \"relative n-border-base px-0.5em py-0.1em hover:n-bg-active\"])\n }\"${\n _ssrRenderAttr(\"title\", i.label)\n }><div class=\"${\n _ssrRenderClass([\n i.value === _unref(input) ? '' : 'op35',\n ])\n }\">${\n _ssrInterpolate(i.label)\n }</div><input${\n (_ssrIncludeBooleanAttr(_ssrLooseEqual(_unref(input), i.value))) ? \" checked\" : \"\"\n } type=\"radio\"${\n (_ssrIncludeBooleanAttr(__props.disabled)) ? \" disabled\" : \"\"\n }${\n _ssrRenderAttr(\"value\", i.value)\n }${\n _ssrRenderAttr(\"title\", i.label)\n } class=\"absolute inset-0 op-0.1\"></label>`)\n })\n _push(`<!--]--></fieldset>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: any\n disabled?: boolean\n options: { value: any, label: string }[]\n }>(),\n {\n modelValue: undefined,\n disabled: false,\n },\n)\nconst emit = defineEmits<{ (...args: any): void }>()\nconst input = useVModel(props, 'modelValue', emit, { passive: true })\n</script>\n\n<template>\n <fieldset\n class=\"n-select-tabs flex flex-inline flex-wrap items-center border n-border-base rounded n-bg-base\"\n >\n <label\n v-for=\"i, idx of options\"\n :key=\"i.label\"\n :disabled=\"disabled\"\n class=\"relative n-border-base px-0.5em py-0.1em hover:n-bg-active\"\n :class=\"[\n idx ? 'border-l n-border-base ml--1px' : '',\n i.value === input ? 'n-bg-active' : '',\n ]\"\n :title=\"i.label\"\n >\n <div\n :class=\"[\n i.value === input ? '' : 'op35',\n ]\"\n >{{ i.label }}</div>\n <input\n v-model=\"input\"\n type=\"radio\"\n :disabled=\"disabled\"\n :value=\"i.value\"\n :title=\"i.label\"\n class=\"absolute inset-0 op-0.1\"\n >\n </label>\n </fieldset>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NSplitPane-CWyIovAp.js","mappings":";;;;;AAUA,IAAM,UAAU;AAGhB,IAAA,yDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,YAAY,CAAC;EACb,UAAU,EAAE,SAAS,6BAA6B;EAClD,UAAU,CAAC;EACX,SAAS,CAAC;EACV,YAAY,EAAE,MAAM,QAAQ;CAC9B;CACA,MAAM,SAAc;EAEtB,MAAM,QAAQ;EAEd,MAAM,QAAQ,gBAAwC,MAAM,UAAU,CAAC,GAAU,EAAE,wBAAwB,MAAM,CAAC;EAElH,MAAM,MAAM,MAAM;EAClB,MAAM,OAAO,MACT,SAAS;GACP,WAAW,MAAM,MAAM,QAAQ,MAAM,YAAY;GACjD,MAAM,MAAM;IAAE,MAAM,MAAM,OAAO;GAAE;EACrC,CAAC,IACD,IAAI,MAAM,YAAY,OAAO;EAEjC,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,mBAAoB,MAAO,UAAU,GAAG,WAAY;IACxD,YAAY,QAAQ;IACpB,UAAU;IACV,aAAa;IACb,WAAW,WAAiB,KAAK,QAAQ,OAAO,EAAE,CAAC;GACrD,GAAG,MAAM,GAAG;IACV,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;KACjD,IAAI,OAAO;MACT,MAAM,mBAAoB,MAAO,IAAI,GAAG;OACtC,UAAU;OACV,OAAO;OACP,MAAM,MAAO,IAAI;OACjB,YAAY,KAAK,OAAO,QAAS,QAAQ,WAAW,KAAM;MAC5D,GAAG;OACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;QACjD,IAAI,OACF,cAAe,KAAK,QAAQ,QAAQ,CAAC,GAAG,MAAM,OAAO,SAAS,QAAQ;aAEtE,OAAO,CACL,WAAY,KAAK,QAAQ,MAAM,CACjC;OAEJ,CAAC;OACD,GAAG;MACL,GAAG,SAAS,QAAQ,CAAC;MACrB,IAAI,KAAK,OAAO,OACd,MAAM,mBAAoB,MAAO,IAAI,GAAG;OACtC,UAAU;OACV,UAAU;OACV,OAAO;OACP,YAAY,QAAQ,WAAW;MACjC,GAAG;OACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;QACjD,IAAI,OACF,cAAe,KAAK,QAAQ,SAAS,CAAC,GAAG,MAAM,OAAO,SAAS,QAAQ;aAEvE,OAAO,CACL,WAAY,KAAK,QAAQ,OAAO,CAClC;OAEJ,CAAC;OACD,GAAG;MACL,GAAG,SAAS,QAAQ,CAAC;WAErB,MAAM,SAAS;KAEnB,OACE,OAAO,CACL,YAAa,MAAO,IAAI,GAAG;MACzB,UAAU;MACV,OAAO;MACP,MAAM,MAAO,IAAI;MACjB,YAAY,KAAK,OAAO,QAAS,QAAQ,WAAW,KAAM;KAC5D,GAAG;MACD,SAAS,cAAe,CACtB,WAAY,KAAK,QAAQ,MAAM,CACjC,CAAC;MACD,GAAG;KACL,GAAG,GAAG,CAAC,QAAQ,UAAU,CAAC,GACzB,KAAK,OAAO,SACR,UAAW,GAAG,YAAa,MAAO,IAAI,GAAG;MACxC,KAAK;MACL,UAAU;MACV,UAAU;MACV,OAAO;MACP,YAAY,QAAQ,WAAW;KACjC,GAAG;MACD,SAAS,cAAe,CACtB,WAAY,KAAK,QAAQ,OAAO,CAClC,CAAC;MACD,GAAG;KACL,GAAG,GAAG,CAAC,UAAU,CAAC,KAClB,mBAAoB,IAAI,IAAI,CAClC;IAEJ,CAAC;IACD,GAAG;GACL,GAAG,OAAO,CAAC;EACb;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NSplitPane.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NSplitPane.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withCtx as _withCtx, renderSlot as _renderSlot, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent } from \"vue/server-renderer\"\n\nimport { useLocalStorage } from '@vueuse/core'\nimport { Pane, Splitpanes } from 'splitpanes'\nimport { computed, ref } from 'vue'\n\nimport 'splitpanes/dist/splitpanes.css'\n\nconst DEFAULT = 30\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NSplitPane',\n __ssrInlineRender: true,\n props: {\n storageKey: {},\n stateKey: { default: 'nuxt-devtools-panels-state' },\n leftSize: {},\n minSize: {},\n horizontal: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props\n\nconst state = useLocalStorage<Record<string, number>>(props.stateKey, {} as any, { listenToStorageChanges: false })\n\nconst key = props.storageKey\nconst size = key\n ? computed({\n get: () => state.value[key] || props.leftSize || DEFAULT,\n set: (v) => { state.value[key] = v },\n })\n : ref(props.leftSize || DEFAULT)\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n _push(_ssrRenderComponent(_unref(Splitpanes), _mergeProps({\n horizontal: __props.horizontal,\n \"h-full\": \"\",\n \"of-hidden\": \"\",\n onResize: ($event: any) => (size.value = $event[0].size)\n }, _attrs), {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_unref(Pane), {\n \"h-full\": \"\",\n class: \"of-auto!\",\n size: _unref(size),\n \"min-size\": _ctx.$slots.right ? (__props.minSize || 10) : 100\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _ssrRenderSlot(_ctx.$slots, \"left\", {}, null, _push, _parent, _scopeId)\n } else {\n return [\n _renderSlot(_ctx.$slots, \"left\")\n ]\n }\n }),\n _: 3\n }, _parent, _scopeId))\n if (_ctx.$slots.right) {\n _push(_ssrRenderComponent(_unref(Pane), {\n relative: \"\",\n \"h-full\": \"\",\n class: \"of-auto!\",\n \"min-size\": __props.minSize || 10\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _ssrRenderSlot(_ctx.$slots, \"right\", {}, null, _push, _parent, _scopeId)\n } else {\n return [\n _renderSlot(_ctx.$slots, \"right\")\n ]\n }\n }),\n _: 3\n }, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _createVNode(_unref(Pane), {\n \"h-full\": \"\",\n class: \"of-auto!\",\n size: _unref(size),\n \"min-size\": _ctx.$slots.right ? (__props.minSize || 10) : 100\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"left\")\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\"]),\n (_ctx.$slots.right)\n ? (_openBlock(), _createBlock(_unref(Pane), {\n key: 0,\n relative: \"\",\n \"h-full\": \"\",\n class: \"of-auto!\",\n \"min-size\": __props.minSize || 10\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"right\")\n ]),\n _: 3\n }, 8, [\"min-size\"]))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 3\n }, _parent))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useLocalStorage } from '@vueuse/core'\nimport { Pane, Splitpanes } from 'splitpanes'\nimport { computed, ref } from 'vue'\n\nimport 'splitpanes/dist/splitpanes.css'\n\nconst props = withDefaults(defineProps<{\n /**\n * The key to use for storing the pane sizes in localStorage.\n */\n storageKey?: string\n stateKey?: string\n leftSize?: number\n minSize?: number\n horizontal?: boolean\n}>(), {\n stateKey: 'nuxt-devtools-panels-state',\n})\n\nconst state = useLocalStorage<Record<string, number>>(props.stateKey, {} as any, { listenToStorageChanges: false })\n\nconst DEFAULT = 30\n\nconst key = props.storageKey\nconst size = key\n ? computed({\n get: () => state.value[key] || props.leftSize || DEFAULT,\n set: (v) => { state.value[key] = v },\n })\n : ref(props.leftSize || DEFAULT)\n</script>\n\n<template>\n <Splitpanes :horizontal=\"horizontal\" h-full of-hidden @resize=\"size = $event[0].size\">\n <Pane h-full class=\"of-auto!\" :size=\"size\" :min-size=\"$slots.right ? (minSize || 10) : 100\">\n <slot name=\"left\" />\n </Pane>\n <Pane v-if=\"$slots.right\" relative h-full class=\"of-auto!\" :min-size=\"minSize || 10\">\n <slot name=\"right\" />\n </Pane>\n </Splitpanes>\n</template>\n\n<style>\n.splitpanes__splitter {\n position: relative;\n}\n.splitpanes__splitter:before {\n position: absolute;\n left: 0;\n top: 0;\n transition: 0.2s ease;\n content: '';\n transition: opacity 0.4s;\n z-index: 1;\n}\n.splitpanes__splitter:hover:before {\n background: #8881;\n opacity: 1;\n}\n.splitpanes--vertical > .splitpanes__splitter {\n min-width: 0 !important;\n width: 0 !important;\n --at-apply: border-r border-base;\n}\n.splitpanes--horizontal > .splitpanes__splitter {\n min-height: 0 !important;\n height: 0 !important;\n --at-apply: border-t border-base;\n}\n.splitpanes--vertical > .splitpanes__splitter:before {\n left: -5px;\n right: -4px;\n height: 100%;\n}\n.splitpanes--horizontal > .splitpanes__splitter:before {\n top: -5px;\n bottom: -4px;\n width: 100%;\n}\n</style>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"NTip-BVi1j0Ir.js","mappings":";;;;AAKA,IAAA,mDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO,EACL,MAAM,CAAC,EACT;CACA,MAAM,SAAc;EAItB,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,mBAAmB;GAEzB,MAAM,OAAO,eAAgB,WAAY,EAAE,OAAO,mBAAmB,GAAG,MAAM,CAAC,EAAE,EAAE;GACnF,cAAe,KAAK,QAAQ,QAAQ,CAAC,SAAS;IAC5C,IAAI,QAAQ,MACV,MAAM,mBAAoB,kBAAkB;KAC1C,MAAM,QAAQ;KACd,OAAO;IACT,GAAG,MAAM,OAAO,CAAC;SAEjB,MAAM,SAAS;GAEnB,GAAG,OAAO,OAAO;GACjB,MAAM,OAAO;GACb,cAAe,KAAK,QAAQ,WAAW,CAAC,GAAG,MAAM,OAAO,OAAO;GAC/D,MAAM,cAAc;EACtB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../../../devtools-ui-kit/src/components/NTip.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../../../devtools-ui-kit/src/components/NTip.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttrs as _ssrRenderAttrs } from \"vue/server-renderer\"\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NTip',\n __ssrInlineRender: true,\n props: {\n icon: {}\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({ class: \"n-tip n-tip-base\" }, _attrs))}>`)\n _ssrRenderSlot(_ctx.$slots, \"icon\", {}, () => {\n if (__props.icon) {\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: __props.icon,\n class: \"n-tip-icon\"\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n }, _push, _parent)\n _push(`<div>`)\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent)\n _push(`</div></div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\ndefineProps<{\n icon?: string\n}>()\n</script>\n\n<template>\n <div class=\"n-tip n-tip-base\">\n <slot name=\"icon\">\n <NIcon v-if=\"icon\" :icon=\"icon\" class=\"n-tip-icon\" />\n </slot>\n <div>\n <slot />\n </div>\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ServerRouteInputs-lclUilqu.js","mappings":"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","names":[],"sources":["../../../../../../../../components/ServerRouteInputs.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/ServerRouteInputs.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttr as _ssrRenderAttr, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport { useVModel } from '@vueuse/core'\nimport { computed, watch } from 'vue'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ServerRouteInputs',\n __ssrInlineRender: true,\n props: {\n modelValue: {},\n keys: { default: () => [] },\n default: { default: () => ({}) },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props\nconst emit = __emit\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/\nconst TIME_RE = /^\\d{2}:\\d{2}$/\nconst DATETIME_LOCAL_RE = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$/\n\nconst params = useVModel(props, 'modelValue', emit, { passive: true })\n\nconst filteredKeys = computed(() => {\n return [...props.keys, 'active', 'key', 'value', 'type']\n})\n\nconst keysObject = computed(() => {\n const obj: any = {}\n for (const key of filteredKeys.value)\n obj[key] = props.default[key] || ''\n return obj\n})\n\nconst inputTypes = ['string', 'number', 'boolean', 'file', 'date', 'time', 'datetime-local']\n\nfunction onFileInputChange(index: number | string, event: Event) {\n const target = event.target as HTMLInputElement\n if (target.files && target.files[0]) {\n const file = target.files[0]\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => {\n params.value[index].value = reader.result\n }\n }\n}\n\nwatch(() => params, (items) => {\n items.value.forEach((item: any) => {\n if (item.type === 'number' && typeof item.value !== 'number') {\n const parsed = Number.parseFloat(item.value)\n item.value = Number.isNaN(parsed) ? 0 : parsed\n }\n else if (item.type === 'boolean' && typeof item.value !== 'boolean') {\n item.value = true\n }\n else if (item.type === 'file' && typeof item.value !== 'object') {\n item.value = ''\n }\n else if (item.type === 'date' && typeof item.value === 'string' && !DATE_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(0, 10)\n }\n else if (item.type === 'time' && typeof item.value === 'string' && !TIME_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(11, 16)\n }\n else if (item.type === 'datetime-local' && typeof item.value === 'string' && !DATETIME_LOCAL_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(0, 16)\n }\n else if (item.type === 'string') {\n item.value = item.value.toString()\n }\n })\n}, { deep: true, immediate: true, flush: 'sync' })\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NCheckbox = _resolveComponent(\"NCheckbox\")!\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n const _component_NSelect = _resolveComponent(\"NSelect\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n p4: \"\",\n flex: \"~ col gap-4\"\n }, _attrs))}><!--[-->`)\n _ssrRenderList(_unref(params), (item, index) => {\n _push(`<div flex=\"~ gap-2\" justify-around>`)\n _ssrRenderSlot(_ctx.$slots, \"input\", { item: item }, null, _push, _parent)\n _push(`<!--[-->`)\n _ssrRenderList(filteredKeys.value, (key) => {\n _push(`<!--[-->`)\n if (item.type !== null && key === 'active') {\n _push(_ssrRenderComponent(_component_NCheckbox, {\n modelValue: item[key],\n \"onUpdate:modelValue\": ($event: any) => ((item[key]) = $event),\n n: \"sm primary\",\n disabled: __props.disabled\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n if (item.type !== null && key === 'key') {\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: item[key],\n \"onUpdate:modelValue\": ($event: any) => ((item[key]) = $event),\n placeholder: key,\n \"flex-1\": \"\",\n \"font-mono\": \"\",\n n: \"sm primary\",\n disabled: __props.disabled,\n class: __props.disabled ? 'op50' : ''\n }, null, _parent))\n } else if (key === 'value') {\n _push(`<!--[-->`)\n if (item.type === 'file') {\n _push(_ssrRenderComponent(_component_NTextInput, {\n type: \"file\",\n disabled: __props.disabled,\n class: __props.disabled ? 'op75' : '',\n onChange: ($event: any) => (onFileInputChange(index, $event))\n }, null, _parent))\n } else if (item.type === 'boolean') {\n _push(`<div ml2 flex>`)\n _push(_ssrRenderComponent(_component_NCheckbox, {\n modelValue: item.value,\n \"onUpdate:modelValue\": ($event: any) => ((item.value) = $event),\n placeholder: \"Value\",\n n: \"green lg\",\n disabled: __props.disabled\n }, null, _parent))\n _push(`</div>`)\n } else {\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: item.value,\n \"onUpdate:modelValue\": ($event: any) => ((item.value) = $event),\n type: item.type,\n placeholder: \"Value\",\n \"flex-1\": \"\",\n \"font-mono\": \"\",\n n: \"sm primary\",\n disabled: __props.disabled,\n class: __props.disabled ? 'op75' : ''\n }, null, _parent))\n }\n _push(`<!--]-->`)\n } else if (key === 'type') {\n _push(_ssrRenderComponent(_component_NSelect, {\n modelValue: item.type,\n \"onUpdate:modelValue\": ($event: any) => ((item.type) = $event),\n n: \"sm green\",\n class: __props.disabled ? 'op75' : '',\n disabled: __props.disabled\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<!--[-->`)\n _ssrRenderList(inputTypes, (typeItem) => {\n _push(`<option${\n _ssrRenderAttr(\"value\", typeItem)\n }${\n _scopeId\n }>${\n _ssrInterpolate(typeItem)\n }</option>`)\n })\n _push(`<!--]-->`)\n } else {\n return [\n (_openBlock(), _createBlock(_Fragment, null, _renderList(inputTypes, (typeItem) => {\n return _createVNode(\"option\", {\n key: typeItem,\n value: typeItem\n }, _toDisplayString(typeItem), 9, [\"value\"])\n }), 64))\n ]\n }\n }),\n _: 2\n }, _parent))\n } else {\n _push(`<!---->`)\n }\n _push(`<!--]-->`)\n })\n _push(`<!--]-->`)\n _ssrRenderSlot(_ctx.$slots, \"input-actions\", {}, () => {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"red\",\n disabled: __props.disabled,\n class: __props.disabled ? 'op0!' : '',\n onClick: ($event: any) => (_unref(params).splice(index, 1))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NIcon, { icon: \"carbon:trash-can\" }, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NIcon, { icon: \"carbon:trash-can\" })\n ]\n }\n }),\n _: 2\n }, _parent))\n }, _push, _parent)\n _push(`</div>`)\n })\n _push(`<!--]-->`)\n if (!__props.disabled) {\n _push(`<div flex gap-4>`)\n _ssrRenderSlot(_ctx.$slots, \"actions\", { params: _unref(params) }, () => {\n _push(_ssrRenderComponent(_component_NButton, {\n icon: \"carbon-add\",\n n: \"sm primary\",\n my1: \"\",\n \"px-3\": \"\",\n onClick: ($event: any) => (_unref(params).push({ ...keysObject.value }))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Add `)\n } else {\n return [\n _createTextVNode(\" Add \")\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(`<div flex-auto></div>`)\n if (_unref(params).length) {\n _push(_ssrRenderComponent(_component_NButton, {\n icon: \"carbon-trash-can\",\n n: \"sm red\",\n my1: \"\",\n \"px-3\": \"\",\n onClick: ($event: any) => (_unref(params).splice(0, _unref(params).length))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Remove All `)\n } else {\n return [\n _createTextVNode(\" Remove All \")\n ]\n }\n }),\n _: 1\n }, _parent))\n } else {\n _push(`<!---->`)\n }\n }, _push, _parent)\n _push(`</div>`)\n } else {\n _push(`<!---->`)\n }\n _ssrRenderSlot(_ctx.$slots, \"default\", {}, null, _push, _parent)\n _push(`</div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, watch } from 'vue'\n\nconst props = withDefaults(defineProps<{\n modelValue: any\n keys?: string[]\n default?: any\n disabled?: boolean\n}>(), {\n keys: () => [],\n disabled: false,\n default: () => ({}),\n})\nconst emit = defineEmits<{ (...args: any): void }>()\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/\nconst TIME_RE = /^\\d{2}:\\d{2}$/\nconst DATETIME_LOCAL_RE = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$/\n\nconst params = useVModel(props, 'modelValue', emit, { passive: true })\n\nconst filteredKeys = computed(() => {\n return [...props.keys, 'active', 'key', 'value', 'type']\n})\n\nconst keysObject = computed(() => {\n const obj: any = {}\n for (const key of filteredKeys.value)\n obj[key] = props.default[key] || ''\n return obj\n})\n\nconst inputTypes = ['string', 'number', 'boolean', 'file', 'date', 'time', 'datetime-local']\n\nfunction onFileInputChange(index: number | string, event: Event) {\n const target = event.target as HTMLInputElement\n if (target.files && target.files[0]) {\n const file = target.files[0]\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => {\n params.value[index].value = reader.result\n }\n }\n}\n\nwatch(() => params, (items) => {\n items.value.forEach((item: any) => {\n if (item.type === 'number' && typeof item.value !== 'number') {\n const parsed = Number.parseFloat(item.value)\n item.value = Number.isNaN(parsed) ? 0 : parsed\n }\n else if (item.type === 'boolean' && typeof item.value !== 'boolean') {\n item.value = true\n }\n else if (item.type === 'file' && typeof item.value !== 'object') {\n item.value = ''\n }\n else if (item.type === 'date' && typeof item.value === 'string' && !DATE_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(0, 10)\n }\n else if (item.type === 'time' && typeof item.value === 'string' && !TIME_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(11, 16)\n }\n else if (item.type === 'datetime-local' && typeof item.value === 'string' && !DATETIME_LOCAL_RE.test(item.value)) {\n item.value = new Date().toISOString().slice(0, 16)\n }\n else if (item.type === 'string') {\n item.value = item.value.toString()\n }\n })\n}, { deep: true, immediate: true, flush: 'sync' })\n</script>\n\n<template>\n <div p4 flex=\"~ col gap-4\">\n <div v-for=\"(item, index) in params\" :key=\"index\" flex=\"~ gap-2\" justify-around>\n <slot name=\"input\" :item=\"item\" />\n\n <template v-for=\"key of filteredKeys\" :key=\"key\">\n <NCheckbox\n v-if=\"item.type !== null && key === 'active'\"\n v-model=\"item[key]\"\n n=\"sm primary\"\n :disabled=\"disabled\"\n />\n <NTextInput\n v-if=\"item.type !== null && key === 'key'\"\n v-model=\"item[key]\"\n :placeholder=\"key\" flex-1 font-mono n=\"sm primary\"\n :disabled=\"disabled\"\n :class=\"disabled ? 'op50' : ''\"\n />\n <template v-else-if=\"key === 'value'\">\n <NTextInput\n v-if=\"item.type === 'file'\" type=\"file\"\n :disabled=\"disabled\"\n :class=\"disabled ? 'op75' : ''\"\n @change=\"onFileInputChange(index, $event)\"\n />\n <div v-else-if=\"item.type === 'boolean'\" ml2 flex>\n <NCheckbox v-model=\"item.value\" placeholder=\"Value\" n=\"green lg\" :disabled=\"disabled\" />\n </div>\n <NTextInput\n v-else\n v-model=\"item.value\"\n :type=\"item.type\" placeholder=\"Value\"\n flex-1 font-mono n=\"sm primary\"\n :disabled=\"disabled\"\n :class=\"disabled ? 'op75' : ''\"\n />\n </template>\n <NSelect\n v-else-if=\"key === 'type'\"\n v-model=\"item.type\" n=\"sm green\"\n :class=\"disabled ? 'op75' : ''\"\n :disabled=\"disabled\"\n >\n <option v-for=\"typeItem of inputTypes\" :key=\"typeItem\" :value=\"typeItem\">\n {{ typeItem }}\n </option>\n </NSelect>\n </template>\n\n <slot name=\"input-actions\">\n <NButton n=\"red\" :disabled=\"disabled\" :class=\"disabled ? 'op0!' : ''\" @click=\"params.splice(index, 1)\">\n <NIcon icon=\"carbon:trash-can\" />\n </NButton>\n </slot>\n </div>\n <div v-if=\"!disabled\" flex gap-4>\n <slot name=\"actions\" :params=\"params\">\n <NButton\n icon=\"carbon-add\" n=\"sm primary\"\n my1 px-3 @click=\"params.push({ ...keysObject })\"\n >\n Add\n </NButton>\n <div flex-auto />\n <NButton\n v-if=\"params.length\"\n icon=\"carbon-trash-can\" n=\"sm red\"\n my1 px-3 @click=\"params.splice(0, params.length)\"\n >\n Remove All\n </NButton>\n </slot>\n </div>\n <slot />\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"StacktraceList-BUhKgrAv.js","mappings":";;;;;AAQA,IAAA,6DAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO,EACL,YAAY,CAAC,EACf;CACA,MAAM,SAAc;EAItB,MAAM,mBAAmB;EAEzB,MAAM,SAAS,gBAAgB;EAE/B,SAAS,cAAc,KAAa;GAClC,IAAI;IACF,IAAI,WAAW,IAAI,IAAI,GAAG,CAAC,CAAC;IAC5B,IAAI,SAAS,WAAW,SAAS,GAC/B,WAAW,SAAS,MAAM,CAAC;IAC7B,IAAI,SAAS,WAAW,oBAAoB,GAC1C,OAAO,UAAU,SAAS,MAAM,SAAS,CAAC,CAAC,KAAK,QAAQ,kBAAkB,EAAE;IAC9E,IAAI,SAAS,SAAS,OAAO,GAC3B,OAAO,IAAI,SAAS,MAAM,OAAO,CAAC,CAAC;IACrC,QAAQ,OAAO,OAAO,WAAW,MAAM;GACzC,QACM;IACJ,OAAO;GACT;EACF;EAEA,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,0BAA0B;GAEhC,MAAM,OAAO,eAAgB,WAAY;IACvC,KAAK;IACL,MAAM;IACN,aAAa;GACf,GAAG,MAAM,CAAC,EAAE,UAAU;GACtB,cAAe,QAAQ,aAAa,MAAM,QAAQ;IAChD,MAAM,2BAA2B,eAAgB,KAAK,gBAAgB,aAAa,EAAE,sBAAsB;IAC3G,IAAI,KAAK,UACP,MAAM,mBAAoB,yBAAyB;KACjD,UAAU,GAAG,cAAc,KAAK,QAAQ,EAAE,GAAG,KAAK,WAAW,GAAG,KAAK;KACrE,SAAS;IACX,GAAG,MAAM,OAAO,CAAC;SAEjB,MAAM,SAAS;IAEjB,MAAM,gBAAgB;GACxB,CAAC;GACD,MAAM,gBAAgB;EACxB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../components/StacktraceList.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/StacktraceList.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport type { StackFrame } from 'error-stack-parser-es'\nimport { useServerConfig } from '~/composables/state'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'StacktraceList',\n __ssrInlineRender: true,\n props: {\n stacktrace: {}\n },\n setup(__props: any) {\n\n\n\nconst MJS_EXTENSION_RE = /\\.m?js$/\n\nconst config = useServerConfig()\n\nfunction urlToFilepath(url: string) {\n try {\n let pathname = new URL(url).pathname\n if (pathname.startsWith('/_nuxt/'))\n pathname = pathname.slice(6)\n if (pathname.startsWith('/@id/virtual:nuxt:'))\n return `#build/${pathname.split('/.nuxt/')[1]}`.replace(MJS_EXTENSION_RE, '')\n if (pathname.includes('/@fs/'))\n return `/${pathname.split('/@fs/')[1]}`\n return (config.value?.rootDir || '') + pathname\n }\n catch {\n return url\n }\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_FilepathItem = _resolveComponent(\"FilepathItem\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n mt2: \"\",\n grid: \"~ cols-[max-content_1fr] gap-x-4\",\n \"font-mono\": \"\"\n }, _attrs))}><!--[-->`)\n _ssrRenderList(__props.stacktrace, (item, idx) => {\n _push(`<!--[--><div text-right>${_ssrInterpolate(item.functionName || `(anonymous)`)}</div><div ws-nowrap>`)\n if (item.fileName) {\n _push(_ssrRenderComponent(_component_FilepathItem, {\n filepath: `${urlToFilepath(item.fileName)}:${item.lineNumber}:${item.columnNumber}`,\n subpath: \"\"\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n _push(`</div><!--]-->`)\n })\n _push(`<!--]--></div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport type { StackFrame } from 'error-stack-parser-es'\nimport { useServerConfig } from '~/composables/state'\n\ndefineProps<{\n stacktrace: StackFrame[]\n}>()\n\nconst MJS_EXTENSION_RE = /\\.m?js$/\n\nconst config = useServerConfig()\n\nfunction urlToFilepath(url: string) {\n try {\n let pathname = new URL(url).pathname\n if (pathname.startsWith('/_nuxt/'))\n pathname = pathname.slice(6)\n if (pathname.startsWith('/@id/virtual:nuxt:'))\n return `#build/${pathname.split('/.nuxt/')[1]}`.replace(MJS_EXTENSION_RE, '')\n if (pathname.includes('/@fs/'))\n return `/${pathname.split('/@fs/')[1]}`\n return (config.value?.rootDir || '') + pathname\n }\n catch {\n return url\n }\n}\n</script>\n\n<template>\n <div mt2 grid=\"~ cols-[max-content_1fr] gap-x-4\" font-mono>\n <template v-for=\"item, idx of stacktrace\" :key=\"idx\">\n <div text-right>\n {{ item.functionName || `(anonymous)` }}\n </div>\n <div ws-nowrap>\n <FilepathItem\n v-if=\"item.fileName\"\n :filepath=\"`${urlToFilepath(item.fileName)}:${item.lineNumber}:${item.columnNumber}`\"\n subpath\n />\n </div>\n </template>\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"StateEditor-D_NCPzZq.js","mappings":"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","names":[],"sources":["../../../../../../../../components/StateEditor.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/StateEditor.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderClass as _ssrRenderClass, ssrRenderSlot as _ssrRenderSlot, ssrGetDirectiveProps as _ssrGetDirectiveProps, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate } from \"vue/server-renderer\"\n\nimport { useVModel, watchDebounced } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { structuredClone } from 'structured-clone-es'\nimport { computed, onMounted, shallowRef } from 'vue'\nimport { getColorMode } from '~/composables/client'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'StateEditor',\n __ssrInlineRender: true,\n props: {\n name: {},\n open: { type: Boolean },\n revision: {},\n state: {},\n readonly: { type: Boolean }\n },\n emits: [\"update:open\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props\n\nconst emit = __emit\n\nconst isOpen = useVModel(props, 'open', emit, { passive: true })\nconst colorMode = getColorMode()\nconst proxy = shallowRef()\nconst error = shallowRef()\n\n// A named editor is collapsible; only the visible ones need a fresh snapshot.\nconst isVisible = computed(() => !props.name || !!isOpen.value)\n\nfunction isPrimitive(value: any): boolean {\n return ['number', 'bigint', 'string', 'boolean'].includes(typeof value)\n}\n\n// Produce a plain, non-reactive snapshot of the state for the JSON editor.\n//\n// This must NEVER mutate `props.state`: it is the live reactive Nuxt payload /\n// app config / `useState` data. The previous implementation deep-synced the\n// state back into itself under a `{ deep: true }` watcher, so any array or\n// nested object endlessly re-triggered the watcher and froze the whole page\n// (nuxt/devtools#972). Re-cloning into a detached `proxy` avoids that entirely.\n//\n// `structured-clone-es` is used instead of `JSON.parse(JSON.stringify())`: it\n// detaches from Vue reactivity, tolerates circular references (rather than\n// throwing), and preserves richer types (Map/Set/Date/…). `lossy: true` drops\n// functions/symbols instead of throwing on them.\nfunction clone() {\n error.value = undefined\n if (!isVisible.value)\n return\n try {\n proxy.value = isPrimitive(props.state)\n ? props.state\n : structuredClone(props.state ?? {}, { lossy: true })\n }\n catch (e) {\n console.error(e)\n error.value = e\n }\n}\n\nonMounted(clone)\n\n// `revision` is bumped by DevTools whenever host reactivity updates, so it is a\n// sufficient change signal — we don't need (and must not use) a deep watcher on\n// the potentially huge state object. Debounced to avoid thrashing on rapid\n// updates.\nwatchDebounced(\n () => [props.revision, props.state, isVisible.value],\n clone,\n { debounce: 100, maxWait: 500 },\n)\n\nfunction refresh() {\n clone()\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_DataSchemaButton = _resolveComponent(\"DataSchemaButton\")!\n const _directive_tooltip = _resolveDirective(\"tooltip\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n class: \"state-editor-details\",\n open: !__props.name ? true : _unref(isOpen)\n }, _attrs))}><div flex=\"~ gap2\" select-none items-center px4>`)\n if (__props.name) {\n _push(`<button flex=\"~\" cursor-pointer items-center class=\"${\n _ssrRenderClass(_unref(isOpen) ? '' : 'op50')\n }\"><div i-carbon-chevron-right transition class=\"${\n _ssrRenderClass(_unref(isOpen) ? 'rotate-90 op0' : '')\n }\"></div><code px3 py1 font-mono class=\"${\n _ssrRenderClass(_unref(isOpen) ? 'bg-[#8881] rounded-t' : 'rounded hover:bg-active')\n }\">${\n _ssrInterpolate(__props.name)\n }</code></button>`)\n } else {\n _push(`<!---->`)\n }\n _ssrRenderSlot(_ctx.$slots, \"actions\", { isOpen: _unref(isOpen), name: __props.name, state: __props.state }, null, _push, _parent)\n if (_unref(isOpen)) {\n _push(`<!--[-->`)\n _push(_ssrRenderComponent(_component_NButton, _mergeProps({\n title: \"Refresh View\",\n icon: \"carbon-renew\",\n border: false,\n onClick: refresh\n }, _ssrGetDirectiveProps(_ctx, _directive_tooltip, 'Refresh View', void 0, { bottom: true })), null, _parent))\n if (proxy.value && !error.value) {\n _push(_ssrRenderComponent(_component_DataSchemaButton, {\n getter: () => ({ name: __props.name, input: JSON.stringify(proxy.value) })\n }, null, _parent))\n } else {\n _push(`<!---->`)\n }\n _push(`<!--]-->`)\n } else {\n _push(`<!---->`)\n }\n _push(`</div>`)\n if (_unref(isOpen) || !__props.name) {\n _push(`<!--[-->`)\n if (error.value) {\n _push(`<div class=\"bg-red:10 px5 py3 text-red\"> Error: ${_ssrInterpolate(error.value)}</div>`)\n } else {\n _push(_ssrRenderComponent(_unref(JsonEditorVue), _mergeProps({\n modelValue: proxy.value,\n \"onUpdate:modelValue\": ($event: any) => ((proxy).value = $event)\n }, _ctx.$attrs, {\n class: [\"json-editor-vue\", [\n _unref(colorMode) === 'dark' ? 'jse-theme-dark' : '',\n __props.name ? '' : '',\n ]],\n \"main-menu-bar\": false,\n \"navigation-bar\": false,\n \"status-bar\": false,\n \"read-only\": props.readonly,\n indentation: 2,\n \"tab-size\": 2\n }), null, _parent))\n }\n _push(`<!--]-->`)\n } else {\n _push(`<!---->`)\n }\n _push(`</div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useVModel, watchDebounced } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { structuredClone } from 'structured-clone-es'\nimport { computed, onMounted, shallowRef } from 'vue'\nimport { getColorMode } from '~/composables/client'\n\nconst props = defineProps<{\n name?: string\n open?: boolean\n revision?: number\n state?: any\n readonly?: boolean\n}>()\n\nconst emit = defineEmits<{\n (e: 'update:open', value: boolean): void\n}>()\n\nconst isOpen = useVModel(props, 'open', emit, { passive: true })\nconst colorMode = getColorMode()\nconst proxy = shallowRef()\nconst error = shallowRef()\n\n// A named editor is collapsible; only the visible ones need a fresh snapshot.\nconst isVisible = computed(() => !props.name || !!isOpen.value)\n\nfunction isPrimitive(value: any): boolean {\n return ['number', 'bigint', 'string', 'boolean'].includes(typeof value)\n}\n\n// Produce a plain, non-reactive snapshot of the state for the JSON editor.\n//\n// This must NEVER mutate `props.state`: it is the live reactive Nuxt payload /\n// app config / `useState` data. The previous implementation deep-synced the\n// state back into itself under a `{ deep: true }` watcher, so any array or\n// nested object endlessly re-triggered the watcher and froze the whole page\n// (nuxt/devtools#972). Re-cloning into a detached `proxy` avoids that entirely.\n//\n// `structured-clone-es` is used instead of `JSON.parse(JSON.stringify())`: it\n// detaches from Vue reactivity, tolerates circular references (rather than\n// throwing), and preserves richer types (Map/Set/Date/…). `lossy: true` drops\n// functions/symbols instead of throwing on them.\nfunction clone() {\n error.value = undefined\n if (!isVisible.value)\n return\n try {\n proxy.value = isPrimitive(props.state)\n ? props.state\n : structuredClone(props.state ?? {}, { lossy: true })\n }\n catch (e) {\n console.error(e)\n error.value = e\n }\n}\n\nonMounted(clone)\n\n// `revision` is bumped by DevTools whenever host reactivity updates, so it is a\n// sufficient change signal — we don't need (and must not use) a deep watcher on\n// the potentially huge state object. Debounced to avoid thrashing on rapid\n// updates.\nwatchDebounced(\n () => [props.revision, props.state, isVisible.value],\n clone,\n { debounce: 100, maxWait: 500 },\n)\n\nfunction refresh() {\n clone()\n}\n</script>\n\n<template>\n <div class=\"state-editor-details\" :open=\"!name ? true : isOpen\">\n <div\n flex=\"~ gap2\" select-none items-center px4\n >\n <button\n v-if=\"name\" flex=\"~\"\n cursor-pointer items-center\n :class=\"isOpen ? '' : 'op50'\"\n @click=\"isOpen = !isOpen\"\n >\n <div i-carbon-chevron-right transition :class=\"isOpen ? 'rotate-90 op0' : ''\" />\n <code\n px3 py1 font-mono\n :class=\"isOpen ? 'bg-[#8881] rounded-t' : 'rounded hover:bg-active'\"\n >{{ name }}</code>\n </button>\n <slot name=\"actions\" v-bind=\"{ isOpen, name, state }\" />\n <template v-if=\"isOpen\">\n <NButton v-tooltip.bottom=\"'Refresh View'\" title=\"Refresh View\" icon=\"carbon-renew\" :border=\"false\" @click=\"refresh\" />\n <DataSchemaButton\n v-if=\"proxy && !error\"\n :getter=\"() => ({ name, input: JSON.stringify(proxy) })\"\n />\n </template>\n </div>\n <template v-if=\"isOpen || !name\">\n <div v-if=\"error\" class=\"bg-red:10 px5 py3 text-red\">\n Error: {{ error }}\n </div>\n <JsonEditorVue\n v-else\n v-model=\"proxy\"\n v-bind=\"$attrs\"\n class=\"json-editor-vue\"\n :class=\"[\n colorMode === 'dark' ? 'jse-theme-dark' : '',\n name ? '' : '',\n ]\"\n :main-menu-bar=\"false\"\n :navigation-bar=\"false\"\n :status-bar=\"false\"\n :read-only=\"props.readonly\"\n :indentation=\"2\"\n :tab-size=\"2\"\n />\n </template>\n </div>\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"__blank-BgoalQAL.js","mappings":";;;;AAOA,IAAA,sDAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,MAAM,SAAS;EAEjB,eAAe,EACb,QAAQ,OACV,CAAC;EAED,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,OAAO,eAAgB,WAAY;IACvC,YAAY;IACZ,YAAY;IACZ,YAAY;GACd,GAAG,MAAM,CAAC,EAAE,QAAQ;EACtB;CACA;AAEA,CAAC","names":[],"sources":["../../../../../../../../pages/__blank.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../pages/__blank.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderAttrs as _ssrRenderAttrs } from \"vue/server-renderer\"\n\nimport { definePageMeta } from '#imports'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: '__blank',\n __ssrInlineRender: true,\n setup(__props) {\n\ndefinePageMeta({\n layout: 'none',\n})\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n \"h-screen\": \"\",\n \"w-screen\": \"\",\n \"bg-black\": \"\"\n }, _attrs))}></div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { definePageMeta } from '#imports'\n\ndefinePageMeta({\n layout: 'none',\n})\n</script>\n\n<template>\n <div h-screen w-screen bg-black />\n</template>\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"analyze-build-DSk_N3wx.js","mappings":"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","names":[],"sources":["../../../../../../../../components/BuildAnalyzeDetails.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/BuildAnalyzeDetails.vue","../../../../../../../../components/docs/analyze-build.md","../../../../../../../../pages/modules/analyze-build.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../pages/modules/analyze-build.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode, mergeProps as _mergeProps } from \"vue\"\nimport { ssrRenderClass as _ssrRenderClass, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttr as _ssrRenderAttr, ssrRenderAttrs as _ssrRenderAttrs, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport type { AnalyzeBuildMeta } from '../../src/types'\nimport { formatTimeAgo } from '@vueuse/core'\nimport { computed, ref } from 'vue'\nimport { useRuntimeConfig } from '#imports'\nimport { rpc } from '~/composables/rpc'\n\nconst CLIENT_BASE = '/__nuxt_devtools__/client'\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BuildAnalyzeDetails',\n __ssrInlineRender: true,\n props: {\n current: {},\n prev: {}\n },\n setup(__props: any) {\n\nconst props = __props\n\nconst runtimeConfig = useRuntimeConfig()\nconst ROUTE_ANALYZE = `${runtimeConfig.app.baseURL.replace(CLIENT_BASE, '/')}/__nuxt_devtools__/analyze/`.replace(/\\/+/g, '/')\n\nconst tabs = computed(() => {\n const items = [\n { name: 'Overview', id: 'overview' },\n ]\n if (props.current.features.bundleClient)\n items.push({ name: 'Client Bundle', id: 'bundle-client' })\n if (props.current.features.bundleNitro)\n items.push({ name: 'Nitro Bundle', id: 'bundle-nitro' })\n if (props.current.features.viteInspect)\n items.push({ name: 'Vite Inspect', id: 'vite-inspect' })\n\n return items\n})\n\nconst selectedTab = ref(tabs.value[0])\n\nfunction getDuration(build: AnalyzeBuildMeta) {\n return `${((build.endTime - build.startTime) / 1000).toFixed(1)}s`\n}\n\nfunction formatFileSize(bytes: number) {\n if (bytes < 1024)\n return `${bytes}B`\n if (bytes < 1024 * 1024)\n return `${(bytes / 1024).toFixed(1)}KB`\n if (bytes < 1024 * 1024 * 1024)\n return `${(bytes / 1024 / 1024).toFixed(1)}MB`\n return `${(bytes / 1024 / 1024 / 1024).toFixed(1)}GB`\n}\n\nasync function clear(name: string) {\n return rpc.clearAnalyzeBuilds([name])\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_FilepathItem = _resolveComponent(\"FilepathItem\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n\n _push(`<div${_ssrRenderAttrs(_mergeProps({\n \"h-full\": \"\",\n grid: \"~ rows-[max-content_1fr]\"\n }, _attrs))}><div flex=\"~ wrap\" w-full><!--[-->`)\n _ssrRenderList(tabs.value, (tab, idx) => {\n _push(`<button px4 py2 border=\"r base\" hover=\"bg-active\" class=\"${\n _ssrRenderClass(tab.id === selectedTab.value?.id ? '' : 'border-b')\n }\"><div class=\"${\n _ssrRenderClass(tab.id === selectedTab.value?.id ? '' : 'op30' )\n }\">${\n _ssrInterpolate(tab.name)\n }</div></button>`)\n })\n _push(`<!--]--><div border=\"b base\" flex-auto></div></div>`)\n if (selectedTab.value?.id === 'overview') {\n _push(`<div flex=\"~ col gap-4 items-center justify-center\" p4><div flex-auto></div><div grid=\"~ cols-[30px_1fr] gap-x-2 gap-y-3 items-center justify-center\" w-100><div i-carbon-commit text-xl></div><div><div text-sm op50> Name </div><div>${\n _ssrInterpolate(__props.current.name)\n }</div></div><div i-carbon-time text-xl></div><div><div text-sm op50> Build duration </div><div>${\n _ssrInterpolate(getDuration(__props.current))\n }</div></div>`)\n if (__props.current.size?.clientBundle) {\n _push(`<!--[--><div i-carbon-cics-program text-xl></div><div><div text-sm op50> Client bundle size </div><div>${_ssrInterpolate(formatFileSize(__props.current.size.clientBundle))}</div></div><!--]-->`)\n } else {\n _push(`<!---->`)\n }\n if (__props.current.size?.nitroBundle) {\n _push(`<!--[--><div i-carbon-bare-metal-server text-xl></div><div><div text-sm op50> Nitro bundle size </div><div>${_ssrInterpolate(formatFileSize(__props.current.size.nitroBundle))}</div></div><!--]-->`)\n } else {\n _push(`<!---->`)\n }\n _push(`<div i-carbon-edge-node text-xl></div><div><div text-sm op50> Built </div><div>${_ssrInterpolate(_unref(formatTimeAgo)(new Date(__props.current.endTime)))}</div></div><div i-carbon:folder-parent text-xl></div><div><div text-sm op50> Report Path </div>`)\n _push(_ssrRenderComponent(_component_FilepathItem, {\n filepath: __props.current.analyzeDir\n }, null, _parent))\n _push(`</div></div><div flex-auto></div>`)\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"rose\",\n icon: \"carbon-delete\",\n onClick: ($event: any) => (clear(__props.current.name))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Delete this report `)\n } else {\n return [\n _createTextVNode(\" Delete this report \")\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(`</div>`)\n } else {\n _push(`<!---->`)\n }\n _push(`<iframe${\n _ssrRenderAttr(\"src\", `${_unref(ROUTE_ANALYZE)}${__props.current.slug}/client.html`)\n } h-full w-full></iframe><iframe${\n _ssrRenderAttr(\"src\", `${_unref(ROUTE_ANALYZE)}${__props.current.slug}/nitro.html`)\n } h-full w-full></iframe><iframe${\n _ssrRenderAttr(\"src\", `${_unref(ROUTE_ANALYZE)}${__props.current.slug}/.vite-inspect/`)\n } h-full w-full></iframe></div>`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport type { AnalyzeBuildMeta } from '../../src/types'\nimport { formatTimeAgo } from '@vueuse/core'\nimport { computed, ref } from 'vue'\nimport { useRuntimeConfig } from '#imports'\nimport { rpc } from '~/composables/rpc'\n\nconst props = defineProps<{\n current: AnalyzeBuildMeta\n prev?: AnalyzeBuildMeta\n}>()\n\nconst runtimeConfig = useRuntimeConfig()\nconst CLIENT_BASE = '/__nuxt_devtools__/client'\nconst ROUTE_ANALYZE = `${runtimeConfig.app.baseURL.replace(CLIENT_BASE, '/')}/__nuxt_devtools__/analyze/`.replace(/\\/+/g, '/')\n\nconst tabs = computed(() => {\n const items = [\n { name: 'Overview', id: 'overview' },\n ]\n if (props.current.features.bundleClient)\n items.push({ name: 'Client Bundle', id: 'bundle-client' })\n if (props.current.features.bundleNitro)\n items.push({ name: 'Nitro Bundle', id: 'bundle-nitro' })\n if (props.current.features.viteInspect)\n items.push({ name: 'Vite Inspect', id: 'vite-inspect' })\n\n return items\n})\n\nconst selectedTab = ref(tabs.value[0])\n\nfunction getDuration(build: AnalyzeBuildMeta) {\n return `${((build.endTime - build.startTime) / 1000).toFixed(1)}s`\n}\n\nfunction formatFileSize(bytes: number) {\n if (bytes < 1024)\n return `${bytes}B`\n if (bytes < 1024 * 1024)\n return `${(bytes / 1024).toFixed(1)}KB`\n if (bytes < 1024 * 1024 * 1024)\n return `${(bytes / 1024 / 1024).toFixed(1)}MB`\n return `${(bytes / 1024 / 1024 / 1024).toFixed(1)}GB`\n}\n\nasync function clear(name: string) {\n return rpc.clearAnalyzeBuilds([name])\n}\n</script>\n\n<template>\n <div h-full grid=\"~ rows-[max-content_1fr]\">\n <div flex=\"~ wrap\" w-full>\n <template v-for=\"tab, idx of tabs\" :key=\"idx\">\n <button\n px4 py2 border=\"r base\"\n hover=\"bg-active\"\n :class=\"tab.id === selectedTab?.id ? '' : 'border-b'\"\n @click=\"selectedTab = tab\"\n >\n <div :class=\"tab.id === selectedTab?.id ? '' : 'op30' \">\n {{ tab.name }}\n </div>\n </button>\n </template>\n <div border=\"b base\" flex-auto />\n </div>\n <div\n v-if=\"selectedTab?.id === 'overview'\"\n flex=\"~ col gap-4 items-center justify-center\" p4\n >\n <div flex-auto />\n <div grid=\"~ cols-[30px_1fr] gap-x-2 gap-y-3 items-center justify-center\" w-100>\n <div i-carbon-commit text-xl />\n <div>\n <div text-sm op50>\n Name\n </div>\n <div>{{ current.name }}</div>\n </div>\n <div i-carbon-time text-xl />\n <div>\n <div text-sm op50>\n Build duration\n </div>\n <div>{{ getDuration(current) }}</div>\n </div>\n <template v-if=\"current.size?.clientBundle\">\n <div i-carbon-cics-program text-xl />\n <div>\n <div text-sm op50>\n Client bundle size\n </div>\n <div>{{ formatFileSize(current.size.clientBundle) }}</div>\n </div>\n </template>\n <template v-if=\"current.size?.nitroBundle\">\n <div i-carbon-bare-metal-server text-xl />\n <div>\n <div text-sm op50>\n Nitro bundle size\n </div>\n <div>{{ formatFileSize(current.size.nitroBundle) }}</div>\n </div>\n </template>\n <div i-carbon-edge-node text-xl />\n <div>\n <div text-sm op50>\n Built\n </div>\n <div>{{ formatTimeAgo(new Date(current.endTime)) }}</div>\n </div>\n <div i-carbon:folder-parent text-xl />\n <div>\n <div text-sm op50>\n Report Path\n </div>\n <FilepathItem :filepath=\"current.analyzeDir\" />\n </div>\n </div>\n <div flex-auto />\n <NButton n=\"rose\" icon=\"carbon-delete\" @click=\"clear(current.name)\">\n Delete this report\n </NButton>\n </div>\n <iframe\n v-lazy-show=\"selectedTab?.id === 'bundle-client'\"\n :src=\"`${ROUTE_ANALYZE}${current.slug}/client.html`\"\n h-full w-full\n />\n <iframe\n v-lazy-show=\"selectedTab?.id === 'bundle-nitro'\"\n :src=\"`${ROUTE_ANALYZE}${current.slug}/nitro.html`\"\n h-full w-full\n />\n <iframe\n v-lazy-show=\"selectedTab?.id === 'vite-inspect'\"\n :src=\"`${ROUTE_ANALYZE}${current.slug}/.vite-inspect/`\"\n h-full w-full\n />\n </div>\n</template>\n","# Build Analyze\n\nDevTools provides a build analyze tool to help you understand the size of your app in production. Whenever you start a new build, it runs the command `nuxt build --analyze` and present the output data directly in DevTools for easy browsing and comparing.\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, withCtx as _withCtx, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createVNode as _createVNode, createCommentVNode as _createCommentVNode } from \"vue\"\nimport { ssrRenderClass as _ssrRenderClass, ssrRenderComponent as _ssrRenderComponent, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport type { AnalyzeBuildMeta } from '~/../src/types'\nimport { createTemplatePromise, formatTimeAgo } from '@vueuse/core'\nimport { computed, ref } from 'vue'\nimport { definePageMeta } from '#imports'\nimport { satisfyNuxtVersion } from '~/composables/npm'\nimport { rpc } from '~/composables/rpc'\nimport { useAnalyzeBuildInfo } from '~/composables/state'\nimport { registerCommands } from '~/composables/state-commands'\nimport { telemetry } from '~/composables/telemetry'\nimport { useSessionState } from '~/composables/utils'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'analyze-build',\n __ssrInlineRender: true,\n setup(__props) {\n\ndefinePageMeta({\n icon: 'carbon-edge-node',\n title: 'Build Analyze',\n layout: 'full',\n category: 'analyze',\n show() {\n return satisfyNuxtVersion('^3.5.0')\n },\n})\n\nconst PromiseConfirm = createTemplatePromise<boolean>()\n\nconst info = useAnalyzeBuildInfo()\nconst slug = useSessionState<string>('analyze-build:slug', '')\n\nconst selected = computed(() => info.value?.builds.find(b => b.slug === slug.value) ?? info.value?.builds[0])\n\nconst shouldRevealTerminal = ref(false)\n\nconst buildNameInput = ref('')\nconst buildNameConflicted = computed(() => info.value?.builds.some(b => b.name === buildNameInput.value.trim()))\nasync function start() {\n buildNameInput.value = await rpc.generateAnalyzeBuildName()\n\n if (!await PromiseConfirm.start())\n return\n\n telemetry('analyze-build:start')\n\n // `startAnalyzeBuild` refreshes `getAnalyzeBuildInfo` as soon as the session\n // registers, so `info.isBuilding` / `info.activeSessionId` drive the UI. It\n // also returns the id so we can reveal the dock immediately.\n const sessionId = await rpc.startAnalyzeBuild(buildNameInput.value)\n if (shouldRevealTerminal.value)\n rpc.revealTerminal(sessionId)\n}\n\nfunction getDuration(build: AnalyzeBuildMeta) {\n return `${((build.endTime - build.startTime) / 1000).toFixed(1)}s`\n}\n\nfunction revealTerminal() {\n if (info.value?.activeSessionId)\n rpc.revealTerminal(info.value.activeSessionId)\n}\n\nregisterCommands(() => [\n {\n id: 'action:analyze-build: start',\n title: 'Start a new analyze build',\n icon: 'i-carbon-edge-node',\n action: start,\n },\n])\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NSplitPane = _resolveComponent(\"NSplitPane\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_BuildAnalyzeDetails = _resolveComponent(\"BuildAnalyzeDetails\")!\n const _component_NPanelGrids = _resolveComponent(\"NPanelGrids\")!\n const _component_NDialog = _resolveComponent(\"NDialog\")!\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n const _component_NTip = _resolveComponent(\"NTip\")!\n const _component_NCodeBlock = _resolveComponent(\"NCodeBlock\")!\n const _component_NCheckbox = _resolveComponent(\"NCheckbox\")!\n const _component_HelpFab = _resolveComponent(\"HelpFab\")!\n const _component_DocsAnalyzeBuild = _resolveComponent(\"DocsAnalyzeBuild\")!\n\n _push(`<!--[-->`)\n _push(_ssrRenderComponent(_component_NSplitPane, { \"left-size\": 30 }, {\n left: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div flex=\"~ col\"${_scopeId}><!--[-->`)\n _ssrRenderList(_unref(info)?.builds, (build) => {\n _push(`<!--[--><button flex=\"~ col gap1\" p3 hover:bg-active class=\"${\n _ssrRenderClass(build.slug === selected.value?.slug ? 'text-primary bg-active' : '')\n }\"${\n _scopeId\n }><code${\n _scopeId\n }>${\n _ssrInterpolate(build.name)\n }</code><div flex=\"~ gap-1 items-center wrap\" w-full text-sm op60${\n _scopeId\n }><div i-carbon-time${\n _scopeId\n }></div><span${\n _scopeId\n }>${\n _ssrInterpolate(getDuration(build))\n }</span><div flex-auto${\n _scopeId\n }></div><span${\n _scopeId\n }>${\n _ssrInterpolate(_unref(formatTimeAgo)(new Date(build.endTime)))\n }</span></div></button><div x-divider${\n _scopeId\n }></div><!--]-->`)\n })\n _push(`<!--]--><div flex=\"~ items-center justify-center wrap\" p4${_scopeId}>`)\n if (!_unref(info)?.isBuilding) {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"primary\",\n icon: \"carbon-edge-node\",\n onClick: ($event: any) => (start())\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Start a new build `)\n } else {\n return [\n _createTextVNode(\" Start a new build \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"primary\",\n icon: \"carbon-circle-dash animate-spin\",\n title: \"Open the output in the Terminals dock\",\n onClick: ($event: any) => (revealTerminal())\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Building... `)\n } else {\n return [\n _createTextVNode(\" Building... \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n }\n _push(`</div></div>`)\n } else {\n return [\n _createVNode(\"div\", { flex: \"~ col\" }, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(info)?.builds, (build) => {\n return (_openBlock(), _createBlock(_Fragment, {\n key: build.slug\n }, [\n _createVNode(\"button\", {\n flex: \"~ col gap1\",\n p3: \"\",\n \"hover:bg-active\": \"\",\n class: build.slug === selected.value?.slug ? 'text-primary bg-active' : '',\n onClick: ($event: any) => (slug.value = build.slug)\n }, [\n _createVNode(\"code\", null, _toDisplayString(build.name), 1),\n _createVNode(\"div\", {\n flex: \"~ gap-1 items-center wrap\",\n \"w-full\": \"\",\n \"text-sm\": \"\",\n op60: \"\"\n }, [\n _createVNode(\"div\", { \"i-carbon-time\": \"\" }),\n _createVNode(\"span\", null, _toDisplayString(getDuration(build)), 1),\n _createVNode(\"div\", { \"flex-auto\": \"\" }),\n _createVNode(\"span\", null, _toDisplayString(_unref(formatTimeAgo)(new Date(build.endTime))), 1)\n ])\n ], 10, [\"onClick\"]),\n _createVNode(\"div\", { \"x-divider\": \"\" })\n ], 64))\n }), 128)),\n _createVNode(\"div\", {\n flex: \"~ items-center justify-center wrap\",\n p4: \"\"\n }, [\n (!_unref(info)?.isBuilding)\n ? (_openBlock(), _createBlock(_component_NButton, {\n key: 0,\n n: \"primary\",\n icon: \"carbon-edge-node\",\n onClick: ($event: any) => (start())\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Start a new build \")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : (_openBlock(), _createBlock(_component_NButton, {\n key: 1,\n n: \"primary\",\n icon: \"carbon-circle-dash animate-spin\",\n title: \"Open the output in the Terminals dock\",\n onClick: ($event: any) => (revealTerminal())\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Building... \")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n ])\n ])\n ]\n }\n }),\n right: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (selected.value) {\n _push(_ssrRenderComponent(_component_BuildAnalyzeDetails, { current: selected.value }, null, _parent, _scopeId))\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, null, null, _parent, _scopeId))\n }\n } else {\n return [\n (selected.value)\n ? (_openBlock(), _createBlock(_component_BuildAnalyzeDetails, {\n key: 0,\n current: selected.value\n }, null, 8, [\"current\"]))\n : (_openBlock(), _createBlock(_component_NPanelGrids, { key: 1 }))\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(_ssrRenderComponent(_unref(PromiseConfirm), null, {\n default: _withCtx(({ resolve }, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NDialog, {\n \"model-value\": true,\n onClose: ($event: any) => (resolve(false))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div flex=\"~ col gap-1\" w-250 p4${\n _scopeId\n }><h3 class=\"text-lg font-medium leading-6\" mb2${\n _scopeId\n }> Start analyze build? </h3><p op50${\n _scopeId\n }> Enter the name of the build: </p>`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: buildNameInput.value,\n \"onUpdate:modelValue\": ($event: any) => ((buildNameInput).value = $event),\n placeholder: \"Build name\"\n }, null, _parent, _scopeId))\n if (buildNameConflicted.value) {\n _push(_ssrRenderComponent(_component_NTip, { \"n-orange\": \"\" }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` A build with the same name already exists, continue would overrides the previous build result. `)\n } else {\n return [\n _createTextVNode(\" A build with the same name already exists, continue would overrides the previous build result. \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n _push(`<div my3 x-divider${\n _scopeId\n }></div><p op50${\n _scopeId\n }> The following command will be executed in your terminal: </p>`)\n _push(_ssrRenderComponent(_component_NCodeBlock, {\n code: `npx nuxi analyze --no-serve --name=${buildNameInput.value}`,\n lang: \"bash\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n mt2: \"\",\n n: \"primary\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Open the Terminals dock `)\n } else {\n return [\n _createTextVNode(\" Open the Terminals dock \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(`<div flex=\"~ gap-3\" mt2 justify-end${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Cancel `)\n } else {\n return [\n _createTextVNode(\" Cancel \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Start `)\n } else {\n return [\n _createTextVNode(\" Start \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(`</div></div>`)\n } else {\n return [\n _createVNode(\"div\", {\n flex: \"~ col gap-1\",\n \"w-250\": \"\",\n p4: \"\"\n }, [\n _createVNode(\"h3\", {\n class: \"text-lg font-medium leading-6\",\n mb2: \"\"\n }, \" Start analyze build? \"),\n _createVNode(\"p\", { op50: \"\" }, \" Enter the name of the build: \"),\n _createVNode(_component_NTextInput, {\n modelValue: buildNameInput.value,\n \"onUpdate:modelValue\": ($event: any) => ((buildNameInput).value = $event),\n placeholder: \"Build name\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n (buildNameConflicted.value)\n ? (_openBlock(), _createBlock(_component_NTip, {\n key: 0,\n \"n-orange\": \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" A build with the same name already exists, continue would overrides the previous build result. \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(\"div\", {\n my3: \"\",\n \"x-divider\": \"\"\n }),\n _createVNode(\"p\", { op50: \"\" }, \" The following command will be executed in your terminal: \"),\n _createVNode(_component_NCodeBlock, {\n code: `npx nuxi analyze --no-serve --name=${buildNameInput.value}`,\n lang: \"bash\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, 8, [\"code\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n mt2: \"\",\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Open the Terminals dock \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(\"div\", {\n flex: \"~ gap-3\",\n mt2: \"\",\n \"justify-end\": \"\"\n }, [\n _createVNode(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Cancel \")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Start \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NDialog, {\n \"model-value\": true,\n onClose: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createVNode(\"div\", {\n flex: \"~ col gap-1\",\n \"w-250\": \"\",\n p4: \"\"\n }, [\n _createVNode(\"h3\", {\n class: \"text-lg font-medium leading-6\",\n mb2: \"\"\n }, \" Start analyze build? \"),\n _createVNode(\"p\", { op50: \"\" }, \" Enter the name of the build: \"),\n _createVNode(_component_NTextInput, {\n modelValue: buildNameInput.value,\n \"onUpdate:modelValue\": ($event: any) => ((buildNameInput).value = $event),\n placeholder: \"Build name\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n (buildNameConflicted.value)\n ? (_openBlock(), _createBlock(_component_NTip, {\n key: 0,\n \"n-orange\": \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" A build with the same name already exists, continue would overrides the previous build result. \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(\"div\", {\n my3: \"\",\n \"x-divider\": \"\"\n }),\n _createVNode(\"p\", { op50: \"\" }, \" The following command will be executed in your terminal: \"),\n _createVNode(_component_NCodeBlock, {\n code: `npx nuxi analyze --no-serve --name=${buildNameInput.value}`,\n lang: \"bash\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, 8, [\"code\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n mt2: \"\",\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Open the Terminals dock \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(\"div\", {\n flex: \"~ gap-3\",\n mt2: \"\",\n \"justify-end\": \"\"\n }, [\n _createVNode(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Cancel \")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Start \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"onClose\"])\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(_ssrRenderComponent(_component_HelpFab, null, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_DocsAnalyzeBuild, null, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_DocsAnalyzeBuild)\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(`<!--]-->`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport type { AnalyzeBuildMeta } from '~/../src/types'\nimport { createTemplatePromise, formatTimeAgo } from '@vueuse/core'\nimport { computed, ref } from 'vue'\nimport { definePageMeta } from '#imports'\nimport { satisfyNuxtVersion } from '~/composables/npm'\nimport { rpc } from '~/composables/rpc'\nimport { useAnalyzeBuildInfo } from '~/composables/state'\nimport { registerCommands } from '~/composables/state-commands'\nimport { telemetry } from '~/composables/telemetry'\nimport { useSessionState } from '~/composables/utils'\n\ndefinePageMeta({\n icon: 'carbon-edge-node',\n title: 'Build Analyze',\n layout: 'full',\n category: 'analyze',\n show() {\n return satisfyNuxtVersion('^3.5.0')\n },\n})\n\nconst PromiseConfirm = createTemplatePromise<boolean>()\n\nconst info = useAnalyzeBuildInfo()\nconst slug = useSessionState<string>('analyze-build:slug', '')\n\nconst selected = computed(() => info.value?.builds.find(b => b.slug === slug.value) ?? info.value?.builds[0])\n\nconst shouldRevealTerminal = ref(false)\n\nconst buildNameInput = ref('')\nconst buildNameConflicted = computed(() => info.value?.builds.some(b => b.name === buildNameInput.value.trim()))\nasync function start() {\n buildNameInput.value = await rpc.generateAnalyzeBuildName()\n\n if (!await PromiseConfirm.start())\n return\n\n telemetry('analyze-build:start')\n\n // `startAnalyzeBuild` refreshes `getAnalyzeBuildInfo` as soon as the session\n // registers, so `info.isBuilding` / `info.activeSessionId` drive the UI. It\n // also returns the id so we can reveal the dock immediately.\n const sessionId = await rpc.startAnalyzeBuild(buildNameInput.value)\n if (shouldRevealTerminal.value)\n rpc.revealTerminal(sessionId)\n}\n\nfunction getDuration(build: AnalyzeBuildMeta) {\n return `${((build.endTime - build.startTime) / 1000).toFixed(1)}s`\n}\n\nfunction revealTerminal() {\n if (info.value?.activeSessionId)\n rpc.revealTerminal(info.value.activeSessionId)\n}\n\nregisterCommands(() => [\n {\n id: 'action:analyze-build: start',\n title: 'Start a new analyze build',\n icon: 'i-carbon-edge-node',\n action: start,\n },\n])\n</script>\n\n<template>\n <NSplitPane :left-size=\"30\">\n <template #left>\n <div flex=\"~ col\">\n <template v-for=\"build of info?.builds\" :key=\"build.slug\">\n <button\n flex=\"~ col gap1\" p3 hover:bg-active\n :class=\"build.slug === selected?.slug ? 'text-primary bg-active' : ''\"\n @click=\"slug = build.slug\"\n >\n <code>{{ build.name }}</code>\n <div flex=\"~ gap-1 items-center wrap\" w-full text-sm op60>\n <div i-carbon-time />\n <span>{{ getDuration(build) }}</span>\n <div flex-auto />\n <span>{{ formatTimeAgo(new Date(build.endTime)) }}</span>\n </div>\n </button>\n <div x-divider />\n </template>\n <div flex=\"~ items-center justify-center wrap\" p4>\n <NButton v-if=\"!info?.isBuilding\" n=\"primary\" icon=\"carbon-edge-node\" @click=\"start()\">\n Start a new build\n </NButton>\n <NButton v-else n=\"primary\" icon=\"carbon-circle-dash animate-spin\" title=\"Open the output in the Terminals dock\" @click=\"revealTerminal()\">\n Building...\n </NButton>\n </div>\n </div>\n </template>\n <template #right>\n <BuildAnalyzeDetails v-if=\"selected\" :current=\"selected\" />\n <NPanelGrids v-else />\n </template>\n </NSplitPane>\n\n <PromiseConfirm v-slot=\"{ resolve }\">\n <NDialog :model-value=\"true\" @close=\"resolve(false)\">\n <div flex=\"~ col gap-1\" w-250 p4>\n <h3 class=\"text-lg font-medium leading-6\" mb2>\n Start analyze build?\n </h3>\n <p op50>\n Enter the name of the build:\n </p>\n <NTextInput\n v-model=\"buildNameInput\"\n placeholder=\"Build name\"\n />\n <NTip v-if=\"buildNameConflicted\" n-orange>\n A build with the same name already exists, continue would overrides the previous build result.\n </NTip>\n <div my3 x-divider />\n <p op50>\n The following command will be executed in your terminal:\n </p>\n <NCodeBlock\n :code=\"`npx nuxi analyze --no-serve --name=${buildNameInput}`\"\n lang=\"bash\" px4 py2 border=\"~ base rounded\"\n :lines=\"false\"\n />\n <NCheckbox v-model=\"shouldRevealTerminal\" mt2 n=\"primary\">\n Open the Terminals dock\n </NCheckbox>\n\n <div flex=\"~ gap-3\" mt2 justify-end>\n <NButton @click=\"resolve(false)\">\n Cancel\n </NButton>\n <NButton n=\"solid primary\" @click=\"resolve(true)\">\n Start\n </NButton>\n </div>\n </div>\n </NDialog>\n </PromiseConfirm>\n\n <HelpFab>\n <DocsAnalyzeBuild />\n </HelpFab>\n</template>\n"],"version":3}
|