import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/viewer/view-modes/Menu.vue");import { FormRange as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js"; import { default as __nuxt_component_1 } from "/_nuxt/components/viewer/layout/Panel.vue"; import { default as __nuxt_component_2 } from "/_nuxt/components/viewer/button-group/Button.vue"; import { default as __nuxt_component_3 } from "/_nuxt/components/viewer/button-group/ButtonGroup.vue"; import { default as __nuxt_component_4 } from "/_nuxt/components/global/icon/viewer/Settings.vue"; /* Injection by vite-plugin-vue-inspector Start */ import { createElementVNode as __createElementVNode,createVNode as __createVNode,createElementBlock as __createElementBlock,createBlock as __createBlock } 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 _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) } function _createVNode(...args) { return _interopVNode(__createVNode(...args)) } function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) } function _createBlock(...args) { return _interopVNode(__createBlock(...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 { ViewMode } from "/_nuxt/@fs/D:/speckle-server/packages/viewer/dist/index.js"; import { useViewModeUtilities } from "/_nuxt/lib/viewer/composables/ui.ts"; import { ViewModeShortcuts } from "/_nuxt/lib/viewer/helpers/shortcuts/shortcuts.ts"; import { FormSwitch } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js"; import { defaultEdgeColorValue } from "/_nuxt/lib/viewer/composables/setup/viewMode.ts"; import { ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "ViewerViewModesMenu", setup(__props, { expose: __expose }) { __expose(); const { setViewMode, toggleEdgesEnabled, setEdgesWeight, setEdgesColor, viewMode: { edgesColor, edgesWeight, edgesEnabled, mode: currentViewMode } } = useViewModeUtilities(); const showSettings = ref(false); const isActiveMode = (mode) => mode === currentViewMode.value; const viewModeShortcuts = Object.values(ViewModeShortcuts); const edgesColorOptions = computed( () => [ defaultEdgeColorValue, // black or white 3900150, // blue-500 9133302, // violet-500 6660877, // lime-600 16347926, // orange-500 16007006 //rose-500 ] ); const handleViewModeChange = (mode) => { setViewMode(mode); }; const __returned__ = { setViewMode, toggleEdgesEnabled, setEdgesWeight, setEdgesColor, edgesColor, edgesWeight, edgesEnabled, currentViewMode, showSettings, isActiveMode, viewModeShortcuts, edgesColorOptions, handleViewModeChange, get ViewMode() { return ViewMode; }, get FormSwitch() { return FormSwitch; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { resolveDirective as _resolveDirective, openBlock as _openBlock, withDirectives as _withDirectives, resolveComponent as _resolveComponent, renderList as _renderList, Fragment as _Fragment, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, withCtx as _withCtx, toDisplayString as _toDisplayString } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = { "data-v-inspector": "components/viewer/view-modes/Menu.vue:3:3" }; const _hoisted_2 = { class: "p-3 py-2.5 flex items-center justify-between", "data-v-inspector": "components/viewer/view-modes/Menu.vue:5:7" }; const _hoisted_3 = { "data-v-inspector": "components/viewer/view-modes/Menu.vue:9:9" }; const _hoisted_4 = { key: 0, class: "p-3 pb-2.5 pt-1", "data-v-inspector": "components/viewer/view-modes/Menu.vue:26:7" }; const _hoisted_5 = { "data-v-inspector": "components/viewer/view-modes/Menu.vue:27:9" }; const _hoisted_6 = { class: "flex items-center justify-between my-1", "data-v-inspector": "components/viewer/view-modes/Menu.vue:37:11" }; const _hoisted_7 = { class: "flex items-center gap-1 bg-highlight-1 rounded-lg p-1", "data-v-inspector": "components/viewer/view-modes/Menu.vue:39:13" }; const _hoisted_8 = ["onClick"]; const _hoisted_9 = { class: "text-body-2xs text-foreground px-2 py-1", "data-v-inspector": "components/viewer/view-modes/Menu.vue:73:11" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_FormRange = __nuxt_component_0; const _component_ViewerLayoutPanel = __nuxt_component_1; const _component_ViewerButtonGroupButton = __nuxt_component_2; const _component_ViewerButtonGroup = __nuxt_component_3; const _component_IconViewerSettings = __nuxt_component_4; const _directive_tippy = _resolveDirective("tippy"); return _openBlock(), _createElementBlock("div", _hoisted_1, [ $setup.showSettings ? (_openBlock(), _createBlock(_component_ViewerLayoutPanel, { key: 0, "data-v-inspector": "components/viewer/view-modes/Menu.vue:4:5" }, { default: _withCtx(() => [ _createElementVNode("div", _hoisted_2, [ _cache[1] || (_cache[1] = _createElementVNode( "span", { class: "text-body-2xs font-medium text-foreground leading-none", "data-v-inspector": "components/viewer/view-modes/Menu.vue:6:9" }, " Edges ", -1 /* CACHED */ )), _withDirectives((_openBlock(), _createElementBlock("div", _hoisted_3, [ _createVNode($setup["FormSwitch"], { "model-value": $setup.edgesEnabled, "show-label": false, name: "toggle-edges", class: "text-body-2xs", disabled: $setup.currentViewMode === $setup.ViewMode.PEN, "onUpdate:modelValue": $setup.toggleEdgesEnabled, "data-v-inspector": "components/viewer/view-modes/Menu.vue:16:11" }, null, 8, ["model-value", "disabled", "onUpdate:modelValue"]) ])), [ [ _directive_tippy, $setup.currentViewMode === $setup.ViewMode.PEN ? "Edges are always enabled in Pen mode" : void 0 ] ]) ]), $setup.edgesEnabled ? (_openBlock(), _createElementBlock("div", _hoisted_4, [ _createElementVNode("div", _hoisted_5, [ _createVNode(_component_FormRange, { "model-value": $setup.edgesWeight, name: "edge-stroke", label: "Weight", min: 0.5, max: 3, step: 0.1, "onUpdate:modelValue": $setup.setEdgesWeight, "data-v-inspector": "components/viewer/view-modes/Menu.vue:28:11" }, null, 8, ["model-value", "onUpdate:modelValue"]), _createElementVNode("div", _hoisted_6, [ _cache[2] || (_cache[2] = _createElementVNode( "div", { class: "text-body-2xs", "data-v-inspector": "components/viewer/view-modes/Menu.vue:38:13" }, "Color", -1 /* CACHED */ )), _createElementVNode("div", _hoisted_7, [ (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.edgesColorOptions, (color, index) => { return _openBlock(), _createElementBlock("button", { key: color, class: _normalizeClass([ "flex items-center justify-center size-6", $setup.edgesColor === color && "bg-foundation border border-outline-2 rounded-lg" ]), onClick: ($event) => $setup.setEdgesColor(color), "data-v-inspector": "components/viewer/view-modes/Menu.vue:40:15" }, [ _createElementVNode( "span", { class: "size-4 rounded-full cursor-pointer", style: _normalizeStyle({ background: index === 0 ? "linear-gradient(to top left, #1a1a1a 50%, #ffffff 50%)" : `#${color.toString(16).padStart(6, "0")}` }), "data-v-inspector": "components/viewer/view-modes/Menu.vue:50:17" }, null, 4 /* STYLE */ ) ], 10, _hoisted_8); }), 128 /* KEYED_FRAGMENT */ )) ]) ]) ]) ])) : _createCommentVNode("v-if", true) ]), _: 1 /* STABLE */ })) : _createCommentVNode("v-if", true), _createVNode(_component_ViewerLayoutPanel, { class: "mt-1 p-2 flex justify-between items-center", "data-v-inspector": "components/viewer/view-modes/Menu.vue:65:5" }, { default: _withCtx(() => [ _createVNode(_component_ViewerButtonGroup, { "data-v-inspector": "components/viewer/view-modes/Menu.vue:66:7" }, { default: _withCtx(() => [ (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.viewModeShortcuts, (shortcut) => { return _openBlock(), _createBlock(_component_ViewerButtonGroupButton, { key: shortcut.name, "is-active": $setup.isActiveMode(shortcut.viewMode), onClick: ($event) => $setup.handleViewModeChange(shortcut.viewMode), "data-v-inspector": "components/viewer/view-modes/Menu.vue:67:9" }, { default: _withCtx(() => [ _createElementVNode( "span", _hoisted_9, _toDisplayString(shortcut.name), 1 /* TEXT */ ) ]), _: 2 /* DYNAMIC */ }, 1032, ["is-active", "onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ]), _: 1 /* STABLE */ }), _createElementVNode( "button", { class: _normalizeClass(["size-6 flex items-center justify-center rounded-md", [ $setup.showSettings && "text-primary-focus bg-info-lighter dark:text-foreground-on-primary", !$setup.showSettings && "text-foreground hover:bg-foundation-2" ]]), onClick: _cache[0] || (_cache[0] = ($event) => $setup.showSettings = !$setup.showSettings), "data-v-inspector": "components/viewer/view-modes/Menu.vue:78:7" }, [ _createVNode(_component_IconViewerSettings, { class: "size-4", "data-v-inspector": "components/viewer/view-modes/Menu.vue:87:9" }) ], 2 /* CLASS */ ) ]), _: 1 /* STABLE */ }) ]); } _sfc_main.__hmrId = "b7a4a8f6"; 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/view-modes/Menu.vue"]]); //# sourceMappingURL=data:application/json;base64,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QSwwQkFQQSxPQUFNO0FBQUEsMEJBQ0wsT0FBSztBQUFBLHdDQUE0RCxVQUFLLG1FQUEwSCxNQUFNLFNBQVEsSUFBSyxTQUFRO0FBQUE7MEJBS3pOLG9CQUFpQjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFRbEMsYUF3Qm9CO0FBQUEsTUF4QkQsT0FBTTtBQUFBLE1BQTZDLG9CQUFpQjtBQUFBO3dCQUNyRixNQVdvQjtBQUFBLFFBWHBCLGFBV29CLGdDQVhELG9CQUFpQiw2Q0FBNEM7QUFBQSw0QkFFNUUsTUFBcUM7QUFBQSwrQkFEdkM7QUFBQSxjQVMwQjtBQUFBO0FBQUEsMEJBUkwsMEJBQWlCLENBQTdCLGFBQVE7cUNBRGpCLGFBUzBCO0FBQUEsa0JBUHZCLEtBQUssU0FBUztBQUFBLGtCQUNkLGFBQVcsb0JBQWEsU0FBUyxRQUFRO0FBQUEsa0JBQ3pDLFNBQUssWUFBRSw0QkFBcUIsU0FBUyxRQUFRO0FBQUEsa0JBQUcsb0JBQWlCO0FBQUE7b0NBRWxFLE1BRU87QUFBQSxvQkFGUDtBQUFBLHNCQUVPO0FBQUEsc0JBRlA7QUFBQSxzQkFFTyxpQkFERixTQUFTLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O1FBSXRCO0FBQUEsVUFVUztBQUFBO0FBQUEsWUFUUCxPQUFLLGlCQUFDLHNEQUFvRDtBQUFBLGNBQ3JDO2VBQStHLHVCQUFZO0FBQUE7WUFLL0ksU0FBSyxzQ0FBRSxzQkFBWSxDQUFJO0FBQUEsWUFBYyxvQkFBaUI7QUFBQTs7WUFFdkQsYUFBbUc7QUFBQSxjQUEvRSxPQUFNO0FBQUEsY0FBUyxvQkFBaUI7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiTWVudS52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBlc2xpbnQtZGlzYWJsZSB2dWVqcy1hY2Nlc3NpYmlsaXR5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6MzozXCI+XHJcbiAgICA8Vmlld2VyTGF5b3V0UGFuZWwgdi1pZj1cInNob3dTZXR0aW5nc1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjQ6NVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC0zIHB5LTIuNSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo1OjdcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYm9keS0yeHMgZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIGxlYWRpbmctbm9uZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjY6OVwiPlxyXG4gICAgICAgICAgRWRnZXNcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgdi10aXBweT1cIlxyXG4gICAgICAgICAgICBjdXJyZW50Vmlld01vZGUgPT09IFZpZXdNb2RlLlBFTlxyXG4gICAgICAgICAgICAgID8gJ0VkZ2VzIGFyZSBhbHdheXMgZW5hYmxlZCBpbiBQZW4gbW9kZSdcclxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6OTo5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Rm9ybVN3aXRjaFxyXG4gICAgICAgICAgICA6bW9kZWwtdmFsdWU9XCJlZGdlc0VuYWJsZWRcIlxyXG4gICAgICAgICAgICA6c2hvdy1sYWJlbD1cImZhbHNlXCJcclxuICAgICAgICAgICAgbmFtZT1cInRvZ2dsZS1lZGdlc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LTJ4c1wiXHJcbiAgICAgICAgICAgIDpkaXNhYmxlZD1cImN1cnJlbnRWaWV3TW9kZSA9PT0gVmlld01vZGUuUEVOXCJcclxuICAgICAgICAgICAgQHVwZGF0ZTptb2RlbC12YWx1ZT1cInRvZ2dsZUVkZ2VzRW5hYmxlZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjE2OjExXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHYtaWY9XCJlZGdlc0VuYWJsZWRcIiBjbGFzcz1cInAtMyBwYi0yLjUgcHQtMVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjI2OjdcIj5cclxuICAgICAgICA8ZGl2IGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjI3OjlcIj5cclxuICAgICAgICAgIDxGb3JtUmFuZ2VcclxuICAgICAgICAgICAgOm1vZGVsLXZhbHVlPVwiZWRnZXNXZWlnaHRcIlxyXG4gICAgICAgICAgICBuYW1lPVwiZWRnZS1zdHJva2VcIlxyXG4gICAgICAgICAgICBsYWJlbD1cIldlaWdodFwiXHJcbiAgICAgICAgICAgIDptaW49XCIwLjVcIlxyXG4gICAgICAgICAgICA6bWF4PVwiM1wiXHJcbiAgICAgICAgICAgIDpzdGVwPVwiMC4xXCJcclxuICAgICAgICAgICAgQHVwZGF0ZTptb2RlbC12YWx1ZT1cInNldEVkZ2VzV2VpZ2h0XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6Mjg6MTFcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbXktMVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjM3OjExXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJvZHktMnhzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6Mzg6MTNcIj5Db2xvcjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgYmctaGlnaGxpZ2h0LTEgcm91bmRlZC1sZyBwLTFcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTozOToxM1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHYtZm9yPVwiKGNvbG9yLCBpbmRleCkgaW4gZWRnZXNDb2xvck9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgOmtleT1cImNvbG9yXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc2l6ZS02XCJcclxuICAgICAgICAgICAgICAgIDpjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICBlZGdlc0NvbG9yID09PSBjb2xvciAmJlxyXG4gICAgICAgICAgICAgICAgICAnYmctZm91bmRhdGlvbiBib3JkZXIgYm9yZGVyLW91dGxpbmUtMiByb3VuZGVkLWxnJ1xyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIEBjbGljaz1cInNldEVkZ2VzQ29sb3IoY29sb3IpXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6NDA6MTVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2l6ZS00IHJvdW5kZWQtZnVsbCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIDpzdHlsZT1cIntcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCAjMWExYTFhIDUwJSwgI2ZmZmZmZiA1MCUpJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGAjJHtjb2xvci50b1N0cmluZygxNikucGFkU3RhcnQoNiwgJzAnKX1gXHJcbiAgICAgICAgICAgICAgICAgIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo1MDoxN1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvVmlld2VyTGF5b3V0UGFuZWw+XHJcbiAgICA8Vmlld2VyTGF5b3V0UGFuZWwgY2xhc3M9XCJtdC0xIHAtMiBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo2NTo1XCI+XHJcbiAgICAgIDxWaWV3ZXJCdXR0b25Hcm91cCBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo2Njo3XCI+XHJcbiAgICAgICAgPFZpZXdlckJ1dHRvbkdyb3VwQnV0dG9uXHJcbiAgICAgICAgICB2LWZvcj1cInNob3J0Y3V0IGluIHZpZXdNb2RlU2hvcnRjdXRzXCJcclxuICAgICAgICAgIDprZXk9XCJzaG9ydGN1dC5uYW1lXCJcclxuICAgICAgICAgIDppcy1hY3RpdmU9XCJpc0FjdGl2ZU1vZGUoc2hvcnRjdXQudmlld01vZGUpXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZVZpZXdNb2RlQ2hhbmdlKHNob3J0Y3V0LnZpZXdNb2RlKVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlOjY3OjlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ib2R5LTJ4cyB0ZXh0LWZvcmVncm91bmQgcHgtMiBweS0xXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3ZpZXctbW9kZXMvTWVudS52dWU6NzM6MTFcIj5cclxuICAgICAgICAgICAge3sgc2hvcnRjdXQubmFtZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvVmlld2VyQnV0dG9uR3JvdXBCdXR0b24+XHJcbiAgICAgIDwvVmlld2VyQnV0dG9uR3JvdXA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInNpemUtNiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kXCJcclxuICAgICAgICA6Y2xhc3M9XCJbXHJcbiAgICAgICAgICBzaG93U2V0dGluZ3MgJiZcclxuICAgICAgICAgICAgJ3RleHQtcHJpbWFyeS1mb2N1cyBiZy1pbmZvLWxpZ2h0ZXIgZGFyazp0ZXh0LWZvcmVncm91bmQtb24tcHJpbWFyeScsXHJcbiAgICAgICAgICAhc2hvd1NldHRpbmdzICYmICd0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctZm91bmRhdGlvbi0yJ1xyXG4gICAgICAgIF1cIlxyXG4gICAgICAgIEBjbGljaz1cInNob3dTZXR0aW5ncyA9ICFzaG93U2V0dGluZ3NcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo3ODo3XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxJY29uVmlld2VyU2V0dGluZ3MgY2xhc3M9XCJzaXplLTRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvdmlldy1tb2Rlcy9NZW51LnZ1ZTo4Nzo5XCIgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L1ZpZXdlckxheW91dFBhbmVsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tICdAc3BlY2tsZS92aWV3ZXInXHJcbmltcG9ydCB7IHVzZVZpZXdNb2RlVXRpbGl0aWVzIH0gZnJvbSAnfn4vbGliL3ZpZXdlci9jb21wb3NhYmxlcy91aSdcclxuaW1wb3J0IHsgVmlld01vZGVTaG9ydGN1dHMgfSBmcm9tICd+L2xpYi92aWV3ZXIvaGVscGVycy9zaG9ydGN1dHMvc2hvcnRjdXRzJ1xyXG5pbXBvcnQgeyBGb3JtU3dpdGNoIH0gZnJvbSAnQHNwZWNrbGUvdWktY29tcG9uZW50cydcclxuaW1wb3J0IHsgZGVmYXVsdEVkZ2VDb2xvclZhbHVlIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NldHVwL3ZpZXdNb2RlJ1xyXG5cclxuY29uc3Qge1xyXG4gIHNldFZpZXdNb2RlLFxyXG4gIHRvZ2dsZUVkZ2VzRW5hYmxlZCxcclxuICBzZXRFZGdlc1dlaWdodCxcclxuICBzZXRFZGdlc0NvbG9yLFxyXG4gIHZpZXdNb2RlOiB7IGVkZ2VzQ29sb3IsIGVkZ2VzV2VpZ2h0LCBlZGdlc0VuYWJsZWQsIG1vZGU6IGN1cnJlbnRWaWV3TW9kZSB9XHJcbn0gPSB1c2VWaWV3TW9kZVV0aWxpdGllcygpXHJcblxyXG5jb25zdCBzaG93U2V0dGluZ3MgPSByZWYoZmFsc2UpXHJcblxyXG5jb25zdCBpc0FjdGl2ZU1vZGUgPSAobW9kZTogVmlld01vZGUpID0+IG1vZGUgPT09IGN1cnJlbnRWaWV3TW9kZS52YWx1ZVxyXG5cclxuY29uc3Qgdmlld01vZGVTaG9ydGN1dHMgPSBPYmplY3QudmFsdWVzKFZpZXdNb2RlU2hvcnRjdXRzKVxyXG5cclxuY29uc3QgZWRnZXNDb2xvck9wdGlvbnMgPSBjb21wdXRlZChcclxuICAoKSA9PlxyXG4gICAgW1xyXG4gICAgICBkZWZhdWx0RWRnZUNvbG9yVmFsdWUsIC8vIGJsYWNrIG9yIHdoaXRlXHJcbiAgICAgIDB4M2I4MmY2LCAvLyBibHVlLTUwMFxyXG4gICAgICAweDhiNWNmNiwgLy8gdmlvbGV0LTUwMFxyXG4gICAgICAweDY1YTMwZCwgLy8gbGltZS02MDBcclxuICAgICAgMHhmOTczMTYsIC8vIG9yYW5nZS01MDBcclxuICAgICAgMHhmNDNmNWUgLy9yb3NlLTUwMFxyXG4gICAgXSBhcyBjb25zdFxyXG4pXHJcblxyXG5jb25zdCBoYW5kbGVWaWV3TW9kZUNoYW5nZSA9IChtb2RlOiBWaWV3TW9kZSkgPT4ge1xyXG4gIHNldFZpZXdNb2RlKG1vZGUpXHJcbn1cclxuPC9zY3JpcHQ+XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9jb21wb25lbnRzL3ZpZXdlci92aWV3LW1vZGVzL01lbnUudnVlIn0=