import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue");import { useHead } from "/_nuxt/node_modules/nuxt/dist/app/composables/head.js?v=e4f18c29"; /* Injection by vite-plugin-vue-inspector Start */ import { createElementBlock as __createElementBlock } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29" function _interopVNode(vnode) { if (vnode && vnode.props && 'data-v-inspector' in vnode.props) { const data = vnode.props['data-v-inspector'] delete vnode.props['data-v-inspector'] Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false }) } return vnode } function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) } /* Injection by vite-plugin-vue-inspector End */ import { defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; import { computed, onMounted, ref, useAttrs } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; import { useImage } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/composables.js?v=e4f18c29"; import { parseSize } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/utils/index.js?v=e4f18c29"; import { prerenderStaticImages } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/utils/prerender.js?v=e4f18c29"; import { markFeatureUsage } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/utils/performance.js?v=e4f18c29"; import { imgProps, useBaseImage } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/components/_base.js?v=e4f18c29"; import { useNuxtApp } from "/_nuxt/node_modules/nuxt/dist/app/index.js?v=e4f18c29"; export { imgProps } from "/_nuxt/node_modules/@nuxt/image/dist/runtime/components/_base.js?v=e4f18c29"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "NuxtImg", props: imgProps, emits: ["load", "error"], setup(__props, { expose: __expose, emit: __emit }) { __expose(); const props = __props; const attrs = useAttrs(); const emit = __emit; const isServer = false; const $img = useImage(); const _base = useBaseImage(props); const placeholderLoaded = ref(false); const imgEl = ref(); const sizes = computed(() => $img.getSizes(props.src, { ..._base.options.value, sizes: props.sizes, densities: props.densities, modifiers: { ..._base.modifiers.value, width: parseSize(props.width), height: parseSize(props.height) } })); const imgAttrs = computed(() => { const attrs2 = { ..._base.attrs.value, "data-nuxt-img": "" }; if (!props.placeholder || placeholderLoaded.value) { attrs2.sizes = sizes.value.sizes; attrs2.srcset = sizes.value.srcset; } return attrs2; }); const placeholder = computed(() => { let placeholder2 = props.placeholder; if (placeholder2 === "") { placeholder2 = true; } if (!placeholder2 || placeholderLoaded.value) { return false; } if (typeof placeholder2 === "string") { return placeholder2; } const size = Array.isArray(placeholder2) ? placeholder2 : typeof placeholder2 === "number" ? [placeholder2, placeholder2] : [10, 10]; return $img(props.src, { ..._base.modifiers.value, width: size[0], height: size[1], quality: size[2] || 50, blur: size[3] || 3 }, _base.options.value); }); const mainSrc = computed( () => props.sizes ? sizes.value.src : $img(props.src, _base.modifiers.value, _base.options.value) ); const src = computed(() => placeholder.value ? placeholder.value : mainSrc.value); if (false && props.preload) { const isResponsive = Object.values(sizes.value).every((v) => v); useHead({ link: [{ rel: "preload", as: "image", nonce: props.nonce, ...!isResponsive ? { href: src.value } : { href: sizes.value.src, imagesizes: sizes.value.sizes, imagesrcset: sizes.value.srcset }, ...typeof props.preload !== "boolean" && props.preload.fetchPriority ? { fetchpriority: props.preload.fetchPriority } : {} }] }); } if (false && false) { prerenderStaticImages(src.value, sizes.value.srcset); } const nuxtApp = useNuxtApp(); const initialLoad = nuxtApp.isHydrating; onMounted(() => { if (placeholder.value) { const img = new Image(); if (mainSrc.value) { img.src = mainSrc.value; } if (props.sizes) { img.sizes = sizes.value.sizes || ""; img.srcset = sizes.value.srcset; } img.onload = (event) => { placeholderLoaded.value = true; emit("load", event); }; markFeatureUsage("nuxt-image"); return; } if (!imgEl.value) { return; } if (imgEl.value.complete && initialLoad) { if (imgEl.value.getAttribute("data-error")) { emit("error", new Event("error")); } else { emit("load", new Event("load")); } } imgEl.value.onload = (event) => { emit("load", event); }; imgEl.value.onerror = (event) => { emit("error", event); }; }); const __returned__ = { props, attrs, emit, isServer, $img, _base, placeholderLoaded, imgEl, sizes, imgAttrs, placeholder, mainSrc, src, nuxtApp, initialLoad }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { mergeProps as _mergeProps, openBlock as _openBlock, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = ["src"]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return _openBlock(), _createElementBlock("img", _mergeProps({ ref: "imgEl", class: $setup.props.placeholder && !$setup.placeholderLoaded ? $setup.props.placeholderClass : void 0 }, { ...$setup.isServer ? { onerror: "this.setAttribute('data-error', 1)" } : {}, ...$setup.imgAttrs, ...$setup.attrs }, { src: $setup.src, "data-v-inspector": "node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue:2:3" }), null, 16, _hoisted_1); } _sfc_main.__hmrId = "7b1665f8"; typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main); import.meta.hot.on("file-changed", ({ file }) => { __VUE_HMR_RUNTIME__.CHANGED_FILE = file; }); import.meta.hot.accept((mod) => { if (!mod) return; const { default: updated, _rerender_only } = mod; if (_rerender_only) { __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render); } else { __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated); } }); import _export_sfc from "/_nuxt/@id/__x00__plugin-vue:export-helper"; export default /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue"]]), { __name: "NuxtImg" }); //# sourceMappingURL=data:application/json;base64,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Qy9CLGFBQUssU0FBUyxLQUFLO0FBQUEsTUFDckI7QUFBQSxJQUNGLENBQUM7Ozs7Ozs7Ozt1QkFsTEMsb0JBU0MsT0FURCxZQVNDO0FBQUEsSUFSQyxLQUFJO0FBQUEsSUFDSCxPQUFPLGFBQU0sZUFBVyxDQUFLLDJCQUFvQixhQUFNLG1CQUFtQjtBQUFBO09BQ3hELGtCQUFRO0FBQUEsT0FBc0U7QUFBQSxPQUFtQjtBQUFBO0lBS25ILEtBQUs7QUFBQSxJQUFLLG9CQUFpQjtBQUFBIiwibmFtZXMiOlsiYXR0cnMiLCJwbGFjZWhvbGRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJOdXh0SW1nLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG4gIDxpbWdcbiAgICByZWY9XCJpbWdFbFwiXG4gICAgOmNsYXNzPVwicHJvcHMucGxhY2Vob2xkZXIgJiYgIXBsYWNlaG9sZGVyTG9hZGVkID8gcHJvcHMucGxhY2Vob2xkZXJDbGFzcyA6IHVuZGVmaW5lZFwiXG4gICAgdi1iaW5kPVwie1xuICAgICAgLi4uaXNTZXJ2ZXIgPyB7IG9uZXJyb3I6ICd0aGlzLnNldEF0dHJpYnV0ZShcXCdkYXRhLWVycm9yXFwnLCAxKScgfSA6IHt9LFxuICAgICAgLi4uaW1nQXR0cnMsXG4gICAgICAuLi5hdHRycyxcbiAgICB9XCJcbiAgICA6c3JjPVwic3JjXCIgZGF0YS12LWluc3BlY3Rvcj1cIm5vZGVfbW9kdWxlcy9AbnV4dC9pbWFnZS9kaXN0L3J1bnRpbWUvY29tcG9uZW50cy9OdXh0SW1nLnZ1ZToyOjNcIlxuICA+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0IHsgY29tcHV0ZWQsIG9uTW91bnRlZCwgcmVmLCB1c2VBdHRycyB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IHVzZUhlYWQgfSBmcm9tICdAdW5oZWFkL3Z1ZSdcbmltcG9ydCB7IHVzZUltYWdlIH0gZnJvbSAnLi4vY29tcG9zYWJsZXMnXG5pbXBvcnQgeyBwYXJzZVNpemUgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IHByZXJlbmRlclN0YXRpY0ltYWdlcyB9IGZyb20gJy4uL3V0aWxzL3ByZXJlbmRlcidcbmltcG9ydCB7IG1hcmtGZWF0dXJlVXNhZ2UgfSBmcm9tICcuLi91dGlscy9wZXJmb3JtYW5jZSdcbmltcG9ydCB7IGltZ1Byb3BzLCB1c2VCYXNlSW1hZ2UgfSBmcm9tICcuL19iYXNlJ1xuaW1wb3J0IHsgdXNlTnV4dEFwcCB9IGZyb20gJyNhcHAnXG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoaW1nUHJvcHMpXG5cbmNvbnN0IGF0dHJzID0gdXNlQXR0cnMoKVxuXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHM8e1xuICAoZXZlbnQ6ICdsb2FkJywgcGF5bG9hZDogRXZlbnQpOiB1bmtub3duXG4gIChldmVudDogJ2Vycm9yJywgcGF5bG9hZDogc3RyaW5nIHwgRXZlbnQpOiB1bmtub3duXG59PigpXG5cbmNvbnN0IGlzU2VydmVyID0gaW1wb3J0Lm1ldGEuc2VydmVyXG5cbmNvbnN0ICRpbWcgPSB1c2VJbWFnZSgpXG5cbmNvbnN0IF9iYXNlID0gdXNlQmFzZUltYWdlKHByb3BzKVxuXG5jb25zdCBwbGFjZWhvbGRlckxvYWRlZCA9IHJlZihmYWxzZSlcbmNvbnN0IGltZ0VsID0gcmVmPEhUTUxJbWFnZUVsZW1lbnQ+KClcblxudHlwZSBBdHRyc1QgPSB0eXBlb2YgX2Jhc2UuYXR0cnMudmFsdWUgJiB7XG4gICdzaXplcyc/OiBzdHJpbmdcbiAgJ3NyY3NldCc/OiBzdHJpbmdcbiAgJ2RhdGEtbnV4dC1pbWcnPzogc3RyaW5nXG59XG5cbmNvbnN0IHNpemVzID0gY29tcHV0ZWQoKCkgPT4gJGltZy5nZXRTaXplcyhwcm9wcy5zcmMhLCB7XG4gIC4uLl9iYXNlLm9wdGlvbnMudmFsdWUsXG4gIHNpemVzOiBwcm9wcy5zaXplcyxcbiAgZGVuc2l0aWVzOiBwcm9wcy5kZW5zaXRpZXMsXG4gIG1vZGlmaWVyczoge1xuICAgIC4uLl9iYXNlLm1vZGlmaWVycy52YWx1ZSxcbiAgICB3aWR0aDogcGFyc2VTaXplKHByb3BzLndpZHRoKSxcbiAgICBoZWlnaHQ6IHBhcnNlU2l6ZShwcm9wcy5oZWlnaHQpLFxuICB9LFxufSkpXG5cbmNvbnN0IGltZ0F0dHJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICBjb25zdCBhdHRyczogQXR0cnNUID0geyAuLi5fYmFzZS5hdHRycy52YWx1ZSwgJ2RhdGEtbnV4dC1pbWcnOiAnJyB9XG5cbiAgaWYgKCFwcm9wcy5wbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlckxvYWRlZC52YWx1ZSkge1xuICAgIGF0dHJzLnNpemVzID0gc2l6ZXMudmFsdWUuc2l6ZXNcbiAgICBhdHRycy5zcmNzZXQgPSBzaXplcy52YWx1ZS5zcmNzZXRcbiAgfVxuXG4gIHJldHVybiBhdHRyc1xufSlcblxuY29uc3QgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gIGxldCBwbGFjZWhvbGRlciA9IHByb3BzLnBsYWNlaG9sZGVyXG5cbiAgaWYgKHBsYWNlaG9sZGVyID09PSAnJykge1xuICAgIHBsYWNlaG9sZGVyID0gdHJ1ZVxuICB9XG5cbiAgaWYgKCFwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlckxvYWRlZC52YWx1ZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBwbGFjZWhvbGRlciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGxhY2Vob2xkZXJcbiAgfVxuXG4gIGNvbnN0IHNpemUgPSAoQXJyYXkuaXNBcnJheShwbGFjZWhvbGRlcilcbiAgICA/IHBsYWNlaG9sZGVyXG4gICAgOiAodHlwZW9mIHBsYWNlaG9sZGVyID09PSAnbnVtYmVyJyA/IFtwbGFjZWhvbGRlciwgcGxhY2Vob2xkZXJdIDogWzEwLCAxMF0pKSBhcyBbdzogbnVtYmVyLCBoOiBudW1iZXIsIHE6IG51bWJlciwgYjogbnVtYmVyXVxuXG4gIHJldHVybiAkaW1nKHByb3BzLnNyYyEsIHtcbiAgICAuLi5fYmFzZS5tb2RpZmllcnMudmFsdWUsXG4gICAgd2lkdGg6IHNpemVbMF0sXG4gICAgaGVpZ2h0OiBzaXplWzFdLFxuICAgIHF1YWxpdHk6IHNpemVbMl0gfHwgNTAsXG4gICAgYmx1cjogc2l6ZVszXSB8fCAzLFxuICB9LCBfYmFzZS5vcHRpb25zLnZhbHVlKVxufSlcblxuY29uc3QgbWFpblNyYyA9IGNvbXB1dGVkKCgpID0+XG4gIHByb3BzLnNpemVzXG4gICAgPyBzaXplcy52YWx1ZS5zcmNcbiAgICA6ICRpbWcocHJvcHMuc3JjISwgX2Jhc2UubW9kaWZpZXJzLnZhbHVlLCBfYmFzZS5vcHRpb25zLnZhbHVlKSxcbilcblxuY29uc3Qgc3JjID0gY29tcHV0ZWQoKCkgPT4gcGxhY2Vob2xkZXIudmFsdWUgPyBwbGFjZWhvbGRlci52YWx1ZSA6IG1haW5TcmMudmFsdWUpXG5cbmlmIChpbXBvcnQubWV0YS5zZXJ2ZXIgJiYgcHJvcHMucHJlbG9hZCkge1xuICBjb25zdCBpc1Jlc3BvbnNpdmUgPSBPYmplY3QudmFsdWVzKHNpemVzLnZhbHVlKS5ldmVyeSh2ID0+IHYpXG5cbiAgdXNlSGVhZCh7XG4gICAgbGluazogW3tcbiAgICAgIHJlbDogJ3ByZWxvYWQnLFxuICAgICAgYXM6ICdpbWFnZScsXG4gICAgICBub25jZTogcHJvcHMubm9uY2UsXG4gICAgICAuLi4oIWlzUmVzcG9uc2l2ZVxuICAgICAgICA/IHsgaHJlZjogc3JjLnZhbHVlIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBocmVmOiBzaXplcy52YWx1ZS5zcmMsXG4gICAgICAgICAgICBpbWFnZXNpemVzOiBzaXplcy52YWx1ZS5zaXplcyxcbiAgICAgICAgICAgIGltYWdlc3Jjc2V0OiBzaXplcy52YWx1ZS5zcmNzZXQsXG4gICAgICAgICAgfSksXG4gICAgICAuLi4odHlwZW9mIHByb3BzLnByZWxvYWQgIT09ICdib29sZWFuJyAmJiBwcm9wcy5wcmVsb2FkLmZldGNoUHJpb3JpdHlcbiAgICAgICAgPyB7IGZldGNocHJpb3JpdHk6IHByb3BzLnByZWxvYWQuZmV0Y2hQcmlvcml0eSB9XG4gICAgICAgIDoge30pLFxuICAgIH1dLFxuICB9KVxufVxuXG4vLyBQcmVyZW5kZXIgc3RhdGljIGltYWdlc1xuaWYgKGltcG9ydC5tZXRhLnNlcnZlciAmJiBpbXBvcnQubWV0YS5wcmVyZW5kZXIpIHtcbiAgcHJlcmVuZGVyU3RhdGljSW1hZ2VzKHNyYy52YWx1ZSwgc2l6ZXMudmFsdWUuc3Jjc2V0KVxufVxuXG5jb25zdCBudXh0QXBwID0gdXNlTnV4dEFwcCgpXG5cbmNvbnN0IGluaXRpYWxMb2FkID0gbnV4dEFwcC5pc0h5ZHJhdGluZ1xuXG5vbk1vdW50ZWQoKCkgPT4ge1xuICBpZiAocGxhY2Vob2xkZXIudmFsdWUpIHtcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxuXG4gICAgaWYgKG1haW5TcmMudmFsdWUpIHtcbiAgICAgIGltZy5zcmMgPSBtYWluU3JjLnZhbHVlXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNpemVzKSB7XG4gICAgICBpbWcuc2l6ZXMgPSBzaXplcy52YWx1ZS5zaXplcyB8fCAnJ1xuICAgICAgaW1nLnNyY3NldCA9IHNpemVzLnZhbHVlLnNyY3NldFxuICAgIH1cblxuICAgIGltZy5vbmxvYWQgPSAoZXZlbnQpID0+IHtcbiAgICAgIHBsYWNlaG9sZGVyTG9hZGVkLnZhbHVlID0gdHJ1ZVxuICAgICAgZW1pdCgnbG9hZCcsIGV2ZW50KVxuICAgIH1cblxuICAgIG1hcmtGZWF0dXJlVXNhZ2UoJ251eHQtaW1hZ2UnKVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWltZ0VsLnZhbHVlKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaW1nRWwudmFsdWUuY29tcGxldGUgJiYgaW5pdGlhbExvYWQpIHtcbiAgICBpZiAoaW1nRWwudmFsdWUuZ2V0QXR0cmlidXRlKCdkYXRhLWVycm9yJykpIHtcbiAgICAgIGVtaXQoJ2Vycm9yJywgbmV3IEV2ZW50KCdlcnJvcicpKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGVtaXQoJ2xvYWQnLCBuZXcgRXZlbnQoJ2xvYWQnKSlcbiAgICB9XG4gIH1cblxuICBpbWdFbC52YWx1ZS5vbmxvYWQgPSAoZXZlbnQpID0+IHtcbiAgICBlbWl0KCdsb2FkJywgZXZlbnQpXG4gIH1cblxuICBpbWdFbC52YWx1ZS5vbmVycm9yID0gKGV2ZW50KSA9PiB7XG4gICAgZW1pdCgnZXJyb3InLCBldmVudClcbiAgfVxufSlcbjwvc2NyaXB0PlxuXG48c2NyaXB0IGxhbmc9XCJ0c1wiPlxuZXhwb3J0IHsgaW1nUHJvcHMgfSBmcm9tICcuL19iYXNlJ1xuPC9zY3JpcHQ+XG4iXSwiZmlsZSI6IkQ6L3NwZWNrbGUtc2VydmVyL3BhY2thZ2VzL2Zyb250ZW5kLTIvbm9kZV9tb2R1bGVzL0BudXh0L2ltYWdlL2Rpc3QvcnVudGltZS9jb21wb25lbnRzL051eHRJbWcudnVlIiwieF9nb29nbGVfaWdub3JlTGlzdCI6WzBdfQ==