Files
speckle-server/scratch/edge-debug-selection/Default/Cache/Cache_Data/f_000137
T

190 lines
16 KiB
Plaintext

import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/viewer/controls/Right.vue");import { default as __nuxt_component_0 } from "/_nuxt/components/viewer/controls/ButtonToggle.vue";
import { default as __nuxt_component_1 } from "/_nuxt/components/viewer/controls/ButtonGroup.vue";
import { default as __nuxt_component_2 } from "/_nuxt/components/viewer/camera/Menu.vue";
/* Injection by vite-plugin-vue-inspector Start */
import { createVNode as __createVNode,createElementVNode as __createElementVNode,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 _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
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 { useCameraUtilities, useViewerShortcuts } from "/_nuxt/lib/viewer/composables/ui.ts";
import { useMixpanel } from "/_nuxt/lib/core/composables/mp.ts";
import { onClickOutside, useBreakpoints } from "/_nuxt/node_modules/@vueuse/core/index.mjs?v=e4f18c29";
import { TailwindBreakpoints } from "/_nuxt/lib/common/helpers/tailwind.ts";
import { useEmbed } from "/_nuxt/lib/viewer/composables/setup/embed.ts";
import { Fullscreen, Video } from "/_nuxt/node_modules/.cache/vite/client/deps/lucide-vue-next.js?v=e4f18c29";
import { useSmartTooltipDelay } from "/_nuxt/composables/tooltips.ts";
import { ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "ViewerControlsRight",
props: {
sidebarOpen: { type: Boolean, required: false, default: false },
sidebarWidth: { type: Number, required: false, default: 280 }
},
setup(__props, { expose: __expose }) {
__expose();
const props = __props;
const { zoomExtentsOrSelection } = useCameraUtilities();
const { registerShortcuts, getShortcutDisplayText, shortcuts } = useViewerShortcuts();
const mixpanel = useMixpanel();
const { getTooltipProps } = useSmartTooltipDelay();
const { isEnabled: isEmbedEnabled } = useEmbed();
const breakpoints = useBreakpoints(TailwindBreakpoints);
const isSmOrLarger = breakpoints.greaterOrEqual("sm");
const isLgOrLarger = breakpoints.greaterOrEqual("lg");
const activePanel = ref("none");
const menuContainer = ref(null);
const buttonContainer = ref(null);
const dynamicStyles = computed(() => {
if (props.sidebarOpen) {
const offset = isSmOrLarger.value && !isLgOrLarger.value ? 1 : 0.75;
return {
right: `${props.sidebarWidth / 16 + offset}rem`
};
} else {
return {
right: "0.75rem"
};
}
});
const toggleActivePanel = (panel) => {
activePanel.value = activePanel.value === panel ? "none" : panel;
};
const trackAndzoomExtentsOrSelection = () => {
zoomExtentsOrSelection();
mixpanel.track("Viewer Action", { type: "action", name: "zoom", source: "button" });
};
registerShortcuts({
ZoomExtentsOrSelection: () => trackAndzoomExtentsOrSelection()
});
onClickOutside(
menuContainer,
() => {
activePanel.value = "none";
},
{
ignore: [buttonContainer]
}
);
const __returned__ = { props, zoomExtentsOrSelection, registerShortcuts, getShortcutDisplayText, shortcuts, mixpanel, getTooltipProps, isEmbedEnabled, breakpoints, isSmOrLarger, isLgOrLarger, activePanel, menuContainer, buttonContainer, dynamicStyles, toggleActivePanel, trackAndzoomExtentsOrSelection, get Fullscreen() {
return Fullscreen;
}, get Video() {
return Video;
} };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, withDirectives as _withDirectives, withCtx as _withCtx, vShow as _vShow, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_ViewerControlsButtonToggle = __nuxt_component_0;
const _component_ViewerControlsButtonGroup = __nuxt_component_1;
const _component_ViewerCameraMenu = __nuxt_component_2;
const _directive_tippy = _resolveDirective("tippy");
return _openBlock(), _createElementBlock(
"aside",
{
ref: "buttonContainer",
class: _normalizeClass([
"absolute z-20",
$setup.isEmbedEnabled ? "top-[0.5rem]" : "top-[3.75rem] sm:top-[3.5rem] lg:top-[3.75rem]"
]),
style: _normalizeStyle($setup.dynamicStyles),
"data-v-inspector": "components/viewer/controls/Right.vue:2:3"
},
[
_createVNode(
_component_ViewerControlsButtonGroup,
{
ref: "buttonContainer",
direction: "vertical",
"data-v-inspector": "components/viewer/controls/Right.vue:10:5"
},
{
default: _withCtx(() => [
_withDirectives(_createVNode(_component_ViewerControlsButtonToggle, {
icon: $setup.Fullscreen,
onClick: _cache[0] || (_cache[0] = ($event) => $setup.trackAndzoomExtentsOrSelection()),
"data-v-inspector": "components/viewer/controls/Right.vue:11:7"
}, null, 8, ["icon"]), [
[
_directive_tippy,
$setup.getTooltipProps(
$setup.getShortcutDisplayText($setup.shortcuts.ZoomExtentsOrSelection, {
format: "separate"
}),
{
placement: "left"
}
)
]
]),
_withDirectives(_createVNode(_component_ViewerControlsButtonToggle, {
icon: $setup.Video,
active: $setup.activePanel === "cameraControls",
onClick: _cache[1] || (_cache[1] = ($event) => $setup.toggleActivePanel("cameraControls")),
"data-v-inspector": "components/viewer/controls/Right.vue:25:7"
}, null, 8, ["icon", "active"]), [
[_directive_tippy, $setup.getTooltipProps("Camera controls", { placement: "left" })]
])
]),
_: 1
/* STABLE */
},
512
/* NEED_PATCH */
),
_createElementVNode(
"div",
{
ref: "menuContainer",
class: _normalizeClass(["absolute right-[2.875rem]", $setup.isEmbedEnabled ? "top-0" : "top-[2.5rem]"]),
"data-v-inspector": "components/viewer/controls/Right.vue:33:5"
},
[
_withDirectives(_createVNode(
_component_ViewerCameraMenu,
{ "data-v-inspector": "components/viewer/controls/Right.vue:38:7" },
null,
512
/* NEED_PATCH */
), [
[_vShow, $setup.activePanel === "cameraControls"]
])
],
2
/* CLASS */
)
],
6
/* CLASS, STYLE */
);
}
_sfc_main.__hmrId = "11b3783b";
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__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/components/viewer/controls/Right.vue"]]);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkNBLFNBQVMsb0JBQW9CLDBCQUEwQjtBQUN2RCxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLGdCQUFnQixzQkFBc0I7QUFDL0MsU0FBUywyQkFBMkI7QUFFcEMsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxZQUFZLGFBQWE7Ozs7Ozs7Ozs7OztBQVNsQyxVQUFNLFFBQVE7QUFLZCxVQUFNLEVBQUUsdUJBQXVCLElBQUksbUJBQW1CO0FBQ3RELFVBQU0sRUFBRSxtQkFBbUIsd0JBQXdCLFVBQVUsSUFBSSxtQkFBbUI7QUFDcEYsVUFBTSxXQUFXLFlBQVk7QUFDN0IsVUFBTSxFQUFFLGdCQUFnQixJQUFJLHFCQUFxQjtBQUNqRCxVQUFNLEVBQUUsV0FBVyxlQUFlLElBQUksU0FBUztBQUUvQyxVQUFNLGNBQWMsZUFBZSxtQkFBbUI7QUFDdEQsVUFBTSxlQUFlLFlBQVksZUFBZSxJQUFJO0FBQ3BELFVBQU0sZUFBZSxZQUFZLGVBQWUsSUFBSTtBQUVwRCxVQUFNLGNBQWMsSUFBaUIsTUFBTTtBQUMzQyxVQUFNLGdCQUFnQixJQUEyQixJQUFJO0FBQ3JELFVBQU0sa0JBQWtCLElBQTJCLElBQUk7QUFFdkQsVUFBTSxnQkFBZ0IsU0FBUyxNQUFNO0FBQ25DLFVBQUksTUFBTSxhQUFhO0FBQ3JCLGNBQU0sU0FBUyxhQUFhLFNBQVMsQ0FBQyxhQUFhLFFBQVEsSUFBSTtBQUMvRCxlQUFPO0FBQUEsVUFDTCxPQUFPLEdBQUcsTUFBTSxlQUFlLEtBQUssTUFBTTtBQUFBLFFBQzVDO0FBQUEsTUFDRixPQUFPO0FBQ0wsZUFBTztBQUFBLFVBQ0wsT0FBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBQUEsSUFDRixDQUFDO0FBRUQsVUFBTSxvQkFBb0IsQ0FBQyxVQUF1QjtBQUNoRCxrQkFBWSxRQUFRLFlBQVksVUFBVSxRQUFRLFNBQVM7QUFBQSxJQUM3RDtBQUVBLFVBQU0saUNBQWlDLE1BQU07QUFDM0MsNkJBQXVCO0FBQ3ZCLGVBQVMsTUFBTSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsTUFBTSxRQUFRLFFBQVEsU0FBUyxDQUFDO0FBQUEsSUFDcEY7QUFFQSxzQkFBa0I7QUFBQSxNQUNoQix3QkFBd0IsTUFBTSwrQkFBK0I7QUFBQSxJQUMvRCxDQUFDO0FBRUQ7QUFBQSxNQUNFO0FBQUEsTUFDQSxNQUFNO0FBQ0osb0JBQVksUUFBUTtBQUFBLE1BQ3RCO0FBQUEsTUFDQTtBQUFBLFFBQ0UsUUFBUSxDQUFDLGVBQWU7QUFBQSxNQUMxQjtBQUFBLElBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBOUdFO0FBQUEsSUFzQ1E7QUFBQTtBQUFBLE1BckNOLEtBQUk7QUFBQSxNQUNKLE9BQUs7QUFBQSxRQUFDO0FBQUEsUUFDVSx3QkFBYztBQUFBO01BRzdCLE9BQUssZ0JBQUUsb0JBQWE7QUFBQSxNQUFFLG9CQUFpQjtBQUFBOztNQUV4QztBQUFBLFFBcUI0QjtBQUFBO0FBQUEsVUFyQkQsS0FBSTtBQUFBLFVBQWtCLFdBQVU7QUFBQSxVQUFXLG9CQUFpQjtBQUFBOzs0QkFDckYsTUFhRTtBQUFBLDRCQWJGLGFBYUU7QUFBQSxjQUZDLE1BQU07QUFBQSxjQUNOLFNBQUssc0NBQUUsc0NBQThCO0FBQUEsY0FBSSxvQkFBaUI7QUFBQTs7O2dCQVh0QztBQUFBLGtCQUE4Qiw4QkFBdUIsaUJBQVUsd0JBQXNCO0FBQUE7Ozs7Ozs7OzRCQWE1RyxhQUtFO0FBQUEsY0FIQyxNQUFNO0FBQUEsY0FDTixRQUFRLHVCQUFXO0FBQUEsY0FDbkIsU0FBSyxzQ0FBRSx5QkFBaUI7QUFBQSxjQUFvQixvQkFBaUI7QUFBQTtpQ0FIckQsdUJBQWU7QUFBQTs7Ozs7Ozs7TUFPNUI7QUFBQSxRQU1NO0FBQUE7QUFBQSxVQUxKLEtBQUk7QUFBQSxVQUNKLE9BQUssaUJBQUMsNkJBQ0Usd0JBQWM7QUFBQSxVQUE2QixvQkFBaUI7QUFBQTs7MEJBRXBFO0FBQUEsWUFBMkg7QUFBQSxjQUEvRCxvQkFBaUIsNENBQTJDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFBOUYsdUJBQVc7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiUmlnaHQudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8YXNpZGVcclxuICAgIHJlZj1cImJ1dHRvbkNvbnRhaW5lclwiXHJcbiAgICBjbGFzcz1cImFic29sdXRlIHotMjBcIlxyXG4gICAgOmNsYXNzPVwiXHJcbiAgICAgIGlzRW1iZWRFbmFibGVkID8gJ3RvcC1bMC41cmVtXScgOiAndG9wLVszLjc1cmVtXSBzbTp0b3AtWzMuNXJlbV0gbGc6dG9wLVszLjc1cmVtXSdcclxuICAgIFwiXHJcbiAgICA6c3R5bGU9XCJkeW5hbWljU3R5bGVzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2NvbnRyb2xzL1JpZ2h0LnZ1ZToyOjNcIlxyXG4gID5cclxuICAgIDxWaWV3ZXJDb250cm9sc0J1dHRvbkdyb3VwIHJlZj1cImJ1dHRvbkNvbnRhaW5lclwiIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2NvbnRyb2xzL1JpZ2h0LnZ1ZToxMDo1XCI+XHJcbiAgICAgIDxWaWV3ZXJDb250cm9sc0J1dHRvblRvZ2dsZVxyXG4gICAgICAgIHYtdGlwcHk9XCJcclxuICAgICAgICAgIGdldFRvb2x0aXBQcm9wcyhcclxuICAgICAgICAgICAgZ2V0U2hvcnRjdXREaXNwbGF5VGV4dChzaG9ydGN1dHMuWm9vbUV4dGVudHNPclNlbGVjdGlvbiwge1xyXG4gICAgICAgICAgICAgIGZvcm1hdDogJ3NlcGFyYXRlJ1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHBsYWNlbWVudDogJ2xlZnQnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIClcclxuICAgICAgICBcIlxyXG4gICAgICAgIDppY29uPVwiRnVsbHNjcmVlblwiXHJcbiAgICAgICAgQGNsaWNrPVwidHJhY2tBbmR6b29tRXh0ZW50c09yU2VsZWN0aW9uKClcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvY29udHJvbHMvUmlnaHQudnVlOjExOjdcIlxyXG4gICAgICAvPlxyXG4gICAgICA8Vmlld2VyQ29udHJvbHNCdXR0b25Ub2dnbGVcclxuICAgICAgICB2LXRpcHB5PVwiZ2V0VG9vbHRpcFByb3BzKCdDYW1lcmEgY29udHJvbHMnLCB7IHBsYWNlbWVudDogJ2xlZnQnIH0pXCJcclxuICAgICAgICA6aWNvbj1cIlZpZGVvXCJcclxuICAgICAgICA6YWN0aXZlPVwiYWN0aXZlUGFuZWwgPT09ICdjYW1lcmFDb250cm9scydcIlxyXG4gICAgICAgIEBjbGljaz1cInRvZ2dsZUFjdGl2ZVBhbmVsKCdjYW1lcmFDb250cm9scycpXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2NvbnRyb2xzL1JpZ2h0LnZ1ZToyNTo3XCJcclxuICAgICAgLz5cclxuICAgIDwvVmlld2VyQ29udHJvbHNCdXR0b25Hcm91cD5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj1cIm1lbnVDb250YWluZXJcIlxyXG4gICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LVsyLjg3NXJlbV1cIlxyXG4gICAgICA6Y2xhc3M9XCJpc0VtYmVkRW5hYmxlZCA/ICd0b3AtMCcgOiAndG9wLVsyLjVyZW1dJ1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9jb250cm9scy9SaWdodC52dWU6MzM6NVwiXHJcbiAgICA+XHJcbiAgICAgIDxWaWV3ZXJDYW1lcmFNZW51IHYtc2hvdz1cImFjdGl2ZVBhbmVsID09PSAnY2FtZXJhQ29udHJvbHMnXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2NvbnRyb2xzL1JpZ2h0LnZ1ZTozODo3XCIgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvYXNpZGU+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxyXG5pbXBvcnQgeyB1c2VDYW1lcmFVdGlsaXRpZXMsIHVzZVZpZXdlclNob3J0Y3V0cyB9IGZyb20gJ35+L2xpYi92aWV3ZXIvY29tcG9zYWJsZXMvdWknXHJcbmltcG9ydCB7IHVzZU1peHBhbmVsIH0gZnJvbSAnfn4vbGliL2NvcmUvY29tcG9zYWJsZXMvbXAnXHJcbmltcG9ydCB7IG9uQ2xpY2tPdXRzaWRlLCB1c2VCcmVha3BvaW50cyB9IGZyb20gJ0B2dWV1c2UvY29yZSdcclxuaW1wb3J0IHsgVGFpbHdpbmRCcmVha3BvaW50cyB9IGZyb20gJ35+L2xpYi9jb21tb24vaGVscGVycy90YWlsd2luZCdcclxuaW1wb3J0IHR5cGUgeyBOdWxsYWJsZSB9IGZyb20gJ0BzcGVja2xlL3NoYXJlZCdcclxuaW1wb3J0IHsgdXNlRW1iZWQgfSBmcm9tICd+L2xpYi92aWV3ZXIvY29tcG9zYWJsZXMvc2V0dXAvZW1iZWQnXHJcbmltcG9ydCB7IEZ1bGxzY3JlZW4sIFZpZGVvIH0gZnJvbSAnbHVjaWRlLXZ1ZS1uZXh0J1xyXG5cclxudHlwZSBBY3RpdmVQYW5lbCA9ICdub25lJyB8ICdjYW1lcmFDb250cm9scydcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgc2lkZWJhck9wZW4/OiBib29sZWFuXHJcbiAgc2lkZWJhcldpZHRoPzogbnVtYmVyXHJcbn1cclxuXHJcbmNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XHJcbiAgc2lkZWJhck9wZW46IGZhbHNlLFxyXG4gIHNpZGViYXJXaWR0aDogMjgwXHJcbn0pXHJcblxyXG5jb25zdCB7IHpvb21FeHRlbnRzT3JTZWxlY3Rpb24gfSA9IHVzZUNhbWVyYVV0aWxpdGllcygpXHJcbmNvbnN0IHsgcmVnaXN0ZXJTaG9ydGN1dHMsIGdldFNob3J0Y3V0RGlzcGxheVRleHQsIHNob3J0Y3V0cyB9ID0gdXNlVmlld2VyU2hvcnRjdXRzKClcclxuY29uc3QgbWl4cGFuZWwgPSB1c2VNaXhwYW5lbCgpXHJcbmNvbnN0IHsgZ2V0VG9vbHRpcFByb3BzIH0gPSB1c2VTbWFydFRvb2x0aXBEZWxheSgpXHJcbmNvbnN0IHsgaXNFbmFibGVkOiBpc0VtYmVkRW5hYmxlZCB9ID0gdXNlRW1iZWQoKVxyXG5cclxuY29uc3QgYnJlYWtwb2ludHMgPSB1c2VCcmVha3BvaW50cyhUYWlsd2luZEJyZWFrcG9pbnRzKVxyXG5jb25zdCBpc1NtT3JMYXJnZXIgPSBicmVha3BvaW50cy5ncmVhdGVyT3JFcXVhbCgnc20nKVxyXG5jb25zdCBpc0xnT3JMYXJnZXIgPSBicmVha3BvaW50cy5ncmVhdGVyT3JFcXVhbCgnbGcnKVxyXG5cclxuY29uc3QgYWN0aXZlUGFuZWwgPSByZWY8QWN0aXZlUGFuZWw+KCdub25lJylcclxuY29uc3QgbWVudUNvbnRhaW5lciA9IHJlZjxOdWxsYWJsZTxIVE1MRWxlbWVudD4+KG51bGwpXHJcbmNvbnN0IGJ1dHRvbkNvbnRhaW5lciA9IHJlZjxOdWxsYWJsZTxIVE1MRWxlbWVudD4+KG51bGwpXHJcblxyXG5jb25zdCBkeW5hbWljU3R5bGVzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIGlmIChwcm9wcy5zaWRlYmFyT3Blbikge1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gaXNTbU9yTGFyZ2VyLnZhbHVlICYmICFpc0xnT3JMYXJnZXIudmFsdWUgPyAxIDogMC43NVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmlnaHQ6IGAke3Byb3BzLnNpZGViYXJXaWR0aCAvIDE2ICsgb2Zmc2V0fXJlbWBcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmlnaHQ6ICcwLjc1cmVtJ1xyXG4gICAgfVxyXG4gIH1cclxufSlcclxuXHJcbmNvbnN0IHRvZ2dsZUFjdGl2ZVBhbmVsID0gKHBhbmVsOiBBY3RpdmVQYW5lbCkgPT4ge1xyXG4gIGFjdGl2ZVBhbmVsLnZhbHVlID0gYWN0aXZlUGFuZWwudmFsdWUgPT09IHBhbmVsID8gJ25vbmUnIDogcGFuZWxcclxufVxyXG5cclxuY29uc3QgdHJhY2tBbmR6b29tRXh0ZW50c09yU2VsZWN0aW9uID0gKCkgPT4ge1xyXG4gIHpvb21FeHRlbnRzT3JTZWxlY3Rpb24oKVxyXG4gIG1peHBhbmVsLnRyYWNrKCdWaWV3ZXIgQWN0aW9uJywgeyB0eXBlOiAnYWN0aW9uJywgbmFtZTogJ3pvb20nLCBzb3VyY2U6ICdidXR0b24nIH0pXHJcbn1cclxuXHJcbnJlZ2lzdGVyU2hvcnRjdXRzKHtcclxuICBab29tRXh0ZW50c09yU2VsZWN0aW9uOiAoKSA9PiB0cmFja0FuZHpvb21FeHRlbnRzT3JTZWxlY3Rpb24oKVxyXG59KVxyXG5cclxub25DbGlja091dHNpZGUoXHJcbiAgbWVudUNvbnRhaW5lcixcclxuICAoKSA9PiB7XHJcbiAgICBhY3RpdmVQYW5lbC52YWx1ZSA9ICdub25lJ1xyXG4gIH0sXHJcbiAge1xyXG4gICAgaWdub3JlOiBbYnV0dG9uQ29udGFpbmVyXVxyXG4gIH1cclxuKVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvdmlld2VyL2NvbnRyb2xzL1JpZ2h0LnZ1ZSJ9