226 lines
20 KiB
Plaintext
226 lines
20 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/viewer/dataviewer/Row.vue");import { default as __nuxt_component_0 } from "/_nuxt/components/viewer/dataviewer/Object.vue";
|
|
/* Injection by vite-plugin-vue-inspector Start */
|
|
import { createBlock as __createBlock,createElementVNode as __createElementVNode,createElementBlock as __createElementBlock,createVNode as __createVNode } 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 _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
|
|
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
|
|
function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
|
|
function _createVNode(...args) { return _interopVNode(__createVNode(...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 { ChevronRightIcon, ArrowUpRightIcon, FunnelIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_20_solid.js?v=e4f18c29";
|
|
import { modelRoute } from "/_nuxt/lib/common/helpers/route.ts";
|
|
import { useInjectedViewerState } from "/_nuxt/lib/viewer/composables/setup.ts";
|
|
import { useFilterUtilities } from "/_nuxt/lib/viewer/composables/filtering/filtering.ts";
|
|
import { useCameraUtilities } from "/_nuxt/lib/viewer/composables/ui.ts";
|
|
|
|
import { ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
__name: "ViewerDataviewerRow",
|
|
props: {
|
|
prop: { type: Object, required: true }
|
|
},
|
|
setup(__props, { expose: __expose }) {
|
|
__expose();
|
|
const props = __props;
|
|
const {
|
|
projectId,
|
|
ui: { filters }
|
|
} = useInjectedViewerState();
|
|
const { isolateObjects, resetFilters } = useFilterUtilities();
|
|
const { zoom } = useCameraUtilities();
|
|
const expanded = ref(false);
|
|
const expandable = computed(() => {
|
|
return props.prop.type === "array" || props.prop.type === "object";
|
|
});
|
|
const arrayLen = computed(() => {
|
|
if (props.prop.type !== "array") return;
|
|
const arr = props.prop.value;
|
|
return arr.length;
|
|
});
|
|
const castProp = computed(() => {
|
|
return props.prop.value;
|
|
});
|
|
const handleExpand = () => {
|
|
if (!expandable.value) return;
|
|
expanded.value = !expanded.value;
|
|
};
|
|
const isDetached = computed(() => {
|
|
return props.prop.value.referencedId;
|
|
});
|
|
const selectionLink = computed(() => {
|
|
const refId = props.prop.value.referencedId;
|
|
if (!refId) return;
|
|
return modelRoute(projectId.value, refId);
|
|
});
|
|
const handleHighlight = () => {
|
|
if (!isDetached.value) return;
|
|
const isIsolated = filters.isolatedObjectsSet.value?.has(isDetached.value);
|
|
if (isIsolated) return resetFilters();
|
|
zoom([isDetached.value]);
|
|
resetFilters();
|
|
isolateObjects([isDetached.value]);
|
|
};
|
|
const __returned__ = { props, projectId, filters, isolateObjects, resetFilters, zoom, expanded, expandable, arrayLen, castProp, handleExpand, isDetached, selectionLink, handleHighlight, get ChevronRightIcon() {
|
|
return ChevronRightIcon;
|
|
}, get ArrowUpRightIcon() {
|
|
return ArrowUpRightIcon;
|
|
}, get FunnelIcon() {
|
|
return FunnelIcon;
|
|
} };
|
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
return __returned__;
|
|
}
|
|
});
|
|
import { createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _hoisted_1 = {
|
|
class: "col-span-1 mr-1 flex items-center font-medium",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:15:7"
|
|
};
|
|
const _hoisted_2 = ["title"];
|
|
const _hoisted_3 = {
|
|
key: 0,
|
|
class: "col-span-2 truncate select-all",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:24:7"
|
|
};
|
|
const _hoisted_4 = {
|
|
key: 1,
|
|
class: "col-span-2 truncate flex items-center justify-between",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:27:7"
|
|
};
|
|
const _hoisted_5 = {
|
|
key: 0,
|
|
class: "text-body-3xs",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:32:9"
|
|
};
|
|
const _hoisted_6 = {
|
|
key: 1,
|
|
class: "mr-1 flex space-x-1",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:33:9"
|
|
};
|
|
const _hoisted_7 = ["href"];
|
|
const _hoisted_8 = {
|
|
key: 0,
|
|
class: "w-full pl-1 pt-2",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:53:5"
|
|
};
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
const _component_ViewerDataviewerObject = __nuxt_component_0;
|
|
return _openBlock(), _createElementBlock(
|
|
"div",
|
|
{
|
|
class: _normalizeClass(["w-full rounded pl-1 py-0.5 text-body-3xs border-l-2", [
|
|
$setup.expandable ? "border-foreground" : "border-transparent",
|
|
$setup.expanded ? "border-neutral-500 border-opacity-30" : ""
|
|
]]),
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:3:3"
|
|
},
|
|
[
|
|
_createCommentVNode(" eslint-disable-next-line vuejs-accessibility/click-events-have-key-events "),
|
|
_createElementVNode(
|
|
"div",
|
|
{
|
|
class: _normalizeClass(`grid grid-cols-3 pr-1 ${$setup.expandable ? "cursor-pointer" : ""}`),
|
|
onClick: $setup.handleExpand,
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:11:5"
|
|
},
|
|
[
|
|
_createElementVNode("div", _hoisted_1, [
|
|
$setup.expandable ? (_openBlock(), _createBlock($setup["ChevronRightIcon"], {
|
|
key: 0,
|
|
class: _normalizeClass(`w-3 ${$setup.expanded ? "rotate-90" : ""} transition shrink-0 `),
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:16:9"
|
|
}, null, 8, ["class"])) : _createCommentVNode("v-if", true),
|
|
_createElementVNode("span", {
|
|
class: "select-all truncate",
|
|
title: `${$props.prop.key} | ${$props.prop.type}`,
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:20:9"
|
|
}, _toDisplayString($props.prop.key), 9, _hoisted_2)
|
|
]),
|
|
!$setup.expandable ? (_openBlock(), _createElementBlock(
|
|
"div",
|
|
_hoisted_3,
|
|
_toDisplayString($props.prop.value),
|
|
1
|
|
/* TEXT */
|
|
)) : _createCommentVNode("v-if", true),
|
|
$setup.expandable ? (_openBlock(), _createElementBlock("div", _hoisted_4, [
|
|
_createTextVNode(
|
|
_toDisplayString($props.prop.type) + " ",
|
|
1
|
|
/* TEXT */
|
|
),
|
|
$props.prop.type === "array" ? (_openBlock(), _createElementBlock(
|
|
"span",
|
|
_hoisted_5,
|
|
"(" + _toDisplayString($setup.arrayLen) + ")",
|
|
1
|
|
/* TEXT */
|
|
)) : _createCommentVNode("v-if", true),
|
|
$setup.isDetached ? (_openBlock(), _createElementBlock("span", _hoisted_6, [
|
|
_createCommentVNode(" eslint-disable-next-line vuejs-accessibility/anchor-has-content "),
|
|
_createElementVNode("a", {
|
|
title: "detached object - click to open in a new tab",
|
|
href: $setup.selectionLink,
|
|
target: "_blank",
|
|
class: "hover:text-primary",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:35:11"
|
|
}, [
|
|
_createVNode($setup["ArrowUpRightIcon"], {
|
|
class: "w-3",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:41:13"
|
|
})
|
|
], 8, _hoisted_7),
|
|
_createElementVNode("button", {
|
|
title: "isolate objects",
|
|
class: "hover:text-primary",
|
|
onClick: _withModifiers($setup.handleHighlight, ["stop"]),
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:43:11"
|
|
}, [
|
|
_createVNode($setup["FunnelIcon"], {
|
|
class: "w-2",
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:48:13"
|
|
})
|
|
])
|
|
])) : _createCommentVNode("v-if", true)
|
|
])) : _createCommentVNode("v-if", true)
|
|
],
|
|
2
|
|
/* CLASS */
|
|
),
|
|
$setup.expandable && $setup.expanded ? (_openBlock(), _createElementBlock("div", _hoisted_8, [
|
|
_createVNode(_component_ViewerDataviewerObject, {
|
|
object: $setup.castProp,
|
|
"data-v-inspector": "components/viewer/dataviewer/Row.vue:54:7"
|
|
}, null, 8, ["object"])
|
|
])) : _createCommentVNode("v-if", true)
|
|
],
|
|
2
|
|
/* CLASS */
|
|
);
|
|
}
|
|
_sfc_main.__hmrId = "18925a74";
|
|
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/dataviewer/Row.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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d0JNLE9BeEJOLFlBd0JNO0FBQUE7K0JBcEJELFlBQUssSUFBSSxJQUFHO0FBQUEsY0FDZjtBQUFBO0FBQUE7QUFBQSxZQUFZLFlBQUssU0FBSSx5QkFBckI7QUFBQSxjQUE2STtBQUFBLGNBQTdJO0FBQUEsY0FBc0gsTUFBQyxpQkFBRyxlQUFRLElBQUc7QUFBQSxjQUFDO0FBQUE7QUFBQTtZQUMxSCxtQ0FBWixvQkFpQk8sUUFqQlAsWUFpQk87QUFBQSxjQWhCTDtBQUFBLGNBQ0Esb0JBT0k7QUFBQSxnQkFORixPQUFNO0FBQUEsZ0JBQ0wsTUFBTTtBQUFBLGdCQUNQLFFBQU87QUFBQSxnQkFDUCxPQUFNO0FBQUEsZ0JBQXFCLG9CQUFpQjtBQUFBO2dCQUU1QyxhQUE4RjtBQUFBLGtCQUE1RSxPQUFNO0FBQUEsa0JBQU0sb0JBQWlCO0FBQUE7O2NBRWpELG9CQU1TO0FBQUEsZ0JBTFAsT0FBTTtBQUFBLGdCQUNOLE9BQU07QUFBQSxnQkFDTCxTQUFLLGVBQU8sd0JBQWU7QUFBQSxnQkFBRSxvQkFBaUI7QUFBQTtnQkFFL0MsYUFBd0Y7QUFBQSxrQkFBNUUsT0FBTTtBQUFBLGtCQUFNLG9CQUFpQjtBQUFBOzs7Ozs7OztNQUt0QyxxQkFBYyxpQ0FBekIsb0JBRU0sT0FGTixZQUVNO0FBQUEsUUFESixhQUEwRztBQUFBLFVBQWpGLFFBQVE7QUFBQSxVQUFVLG9CQUFpQjtBQUFBIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJSb3cudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjwhLS0gZXNsaW50LWRpc2FibGUgdnVlanMtYWNjZXNzaWJpbGl0eS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInctZnVsbCByb3VuZGVkIHBsLTEgcHktMC41IHRleHQtYm9keS0zeHMgYm9yZGVyLWwtMlwiXHJcbiAgICA6Y2xhc3M9XCJbXHJcbiAgICAgIGV4cGFuZGFibGUgPyAnYm9yZGVyLWZvcmVncm91bmQnIDogJ2JvcmRlci10cmFuc3BhcmVudCcsXHJcbiAgICAgIGV4cGFuZGVkID8gJ2JvcmRlci1uZXV0cmFsLTUwMCBib3JkZXItb3BhY2l0eS0zMCcgOiAnJ1xyXG4gICAgXVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6MzozXCJcclxuICA+XHJcbiAgICA8IS0tIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB2dWVqcy1hY2Nlc3NpYmlsaXR5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIDpjbGFzcz1cImBncmlkIGdyaWQtY29scy0zIHByLTEgJHtleHBhbmRhYmxlID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnfWBcIlxyXG4gICAgICBAY2xpY2s9XCJoYW5kbGVFeHBhbmRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZGF0YXZpZXdlci9Sb3cudnVlOjExOjVcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMSBtci0xIGZsZXggaXRlbXMtY2VudGVyIGZvbnQtbWVkaXVtXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2RhdGF2aWV3ZXIvUm93LnZ1ZToxNTo3XCI+XHJcbiAgICAgICAgPENoZXZyb25SaWdodEljb25cclxuICAgICAgICAgIHYtaWY9XCJleHBhbmRhYmxlXCJcclxuICAgICAgICAgIDpjbGFzcz1cImB3LTMgJHtleHBhbmRlZCA/ICdyb3RhdGUtOTAnIDogJyd9IHRyYW5zaXRpb24gc2hyaW5rLTAgYFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6MTY6OVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdC1hbGwgdHJ1bmNhdGVcIiA6dGl0bGU9XCJgJHtwcm9wLmtleX0gfCAke3Byb3AudHlwZX1gXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2RhdGF2aWV3ZXIvUm93LnZ1ZToyMDo5XCI+XHJcbiAgICAgICAgICB7eyBwcm9wLmtleSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgdi1pZj1cIiFleHBhbmRhYmxlXCIgY2xhc3M9XCJjb2wtc3Bhbi0yIHRydW5jYXRlIHNlbGVjdC1hbGxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZGF0YXZpZXdlci9Sb3cudnVlOjI0OjdcIj5cclxuICAgICAgICB7eyBwcm9wLnZhbHVlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgdi1pZj1cImV4cGFuZGFibGVcIlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXNwYW4tMiB0cnVuY2F0ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZGF0YXZpZXdlci9Sb3cudnVlOjI3OjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcHJvcC50eXBlIH19XHJcbiAgICAgICAgPHNwYW4gdi1pZj1cInByb3AudHlwZSA9PT0gJ2FycmF5J1wiIGNsYXNzPVwidGV4dC1ib2R5LTN4c1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6MzI6OVwiPih7eyBhcnJheUxlbiB9fSk8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1pZj1cImlzRGV0YWNoZWRcIiBjbGFzcz1cIm1yLTEgZmxleCBzcGFjZS14LTFcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZGF0YXZpZXdlci9Sb3cudnVlOjMzOjlcIj5cclxuICAgICAgICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZ1ZWpzLWFjY2Vzc2liaWxpdHkvYW5jaG9yLWhhcy1jb250ZW50IC0tPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgdGl0bGU9XCJkZXRhY2hlZCBvYmplY3QgLSBjbGljayB0byBvcGVuIGluIGEgbmV3IHRhYlwiXHJcbiAgICAgICAgICAgIDpocmVmPVwic2VsZWN0aW9uTGlua1wiXHJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaG92ZXI6dGV4dC1wcmltYXJ5XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2RhdGF2aWV3ZXIvUm93LnZ1ZTozNToxMVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxBcnJvd1VwUmlnaHRJY29uIGNsYXNzPVwidy0zXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2RhdGF2aWV3ZXIvUm93LnZ1ZTo0MToxM1wiIC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHRpdGxlPVwiaXNvbGF0ZSBvYmplY3RzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJob3Zlcjp0ZXh0LXByaW1hcnlcIlxyXG4gICAgICAgICAgICBAY2xpY2suc3RvcD1cImhhbmRsZUhpZ2hsaWdodFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6NDM6MTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8RnVubmVsSWNvbiBjbGFzcz1cInctMlwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6NDg6MTNcIiAvPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiB2LWlmPVwiZXhwYW5kYWJsZSAmJiBleHBhbmRlZFwiIGNsYXNzPVwidy1mdWxsIHBsLTEgcHQtMlwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9kYXRhdmlld2VyL1Jvdy52dWU6NTM6NVwiPlxyXG4gICAgICA8Vmlld2VyRGF0YXZpZXdlck9iamVjdCA6b2JqZWN0PVwiY2FzdFByb3BcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZGF0YXZpZXdlci9Sb3cudnVlOjU0OjdcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IENoZXZyb25SaWdodEljb24sIEFycm93VXBSaWdodEljb24sIEZ1bm5lbEljb24gfSBmcm9tICdAaGVyb2ljb25zL3Z1ZS8yMC9zb2xpZCdcclxuaW1wb3J0IHsgbW9kZWxSb3V0ZSB9IGZyb20gJ34vbGliL2NvbW1vbi9oZWxwZXJzL3JvdXRlJ1xyXG5pbXBvcnQgeyB1c2VJbmplY3RlZFZpZXdlclN0YXRlIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NldHVwJ1xyXG5pbXBvcnQgeyB1c2VGaWx0ZXJVdGlsaXRpZXMgfSBmcm9tICd+L2xpYi92aWV3ZXIvY29tcG9zYWJsZXMvZmlsdGVyaW5nL2ZpbHRlcmluZydcclxuaW1wb3J0IHsgdXNlQ2FtZXJhVXRpbGl0aWVzIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3VpJ1xyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPHtcclxuICBwcm9wOiB7XHJcbiAgICBrZXk6IHN0cmluZ1xyXG4gICAgdmFsdWU6IHVua25vd25cclxuICAgIHR5cGU6IHN0cmluZ1xyXG4gIH1cclxufT4oKVxyXG5cclxuY29uc3Qge1xyXG4gIHByb2plY3RJZCxcclxuICB1aTogeyBmaWx0ZXJzIH1cclxufSA9IHVzZUluamVjdGVkVmlld2VyU3RhdGUoKVxyXG5cclxuY29uc3QgeyBpc29sYXRlT2JqZWN0cywgcmVzZXRGaWx0ZXJzIH0gPSB1c2VGaWx0ZXJVdGlsaXRpZXMoKVxyXG5jb25zdCB7IHpvb20gfSA9IHVzZUNhbWVyYVV0aWxpdGllcygpXHJcblxyXG5jb25zdCBleHBhbmRlZCA9IHJlZihmYWxzZSlcclxuXHJcbmNvbnN0IGV4cGFuZGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgcmV0dXJuIHByb3BzLnByb3AudHlwZSA9PT0gJ2FycmF5JyB8fCBwcm9wcy5wcm9wLnR5cGUgPT09ICdvYmplY3QnXHJcbn0pXHJcblxyXG5jb25zdCBhcnJheUxlbiA9IGNvbXB1dGVkKCgpID0+IHtcclxuICBpZiAocHJvcHMucHJvcC50eXBlICE9PSAnYXJyYXknKSByZXR1cm5cclxuICBjb25zdCBhcnIgPSBwcm9wcy5wcm9wLnZhbHVlIGFzIHVua25vd25bXVxyXG4gIHJldHVybiBhcnIubGVuZ3RoXHJcbn0pXHJcblxyXG5jb25zdCBjYXN0UHJvcCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICByZXR1cm4gcHJvcHMucHJvcC52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxyXG59KVxyXG5cclxuY29uc3QgaGFuZGxlRXhwYW5kID0gKCkgPT4ge1xyXG4gIGlmICghZXhwYW5kYWJsZS52YWx1ZSkgcmV0dXJuXHJcbiAgZXhwYW5kZWQudmFsdWUgPSAhZXhwYW5kZWQudmFsdWVcclxufVxyXG5cclxuY29uc3QgaXNEZXRhY2hlZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICByZXR1cm4gKHByb3BzLnByb3AudmFsdWUgYXMgeyByZWZlcmVuY2VkSWQ6IHN0cmluZyB9KS5yZWZlcmVuY2VkSWRcclxufSlcclxuXHJcbmNvbnN0IHNlbGVjdGlvbkxpbmsgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgY29uc3QgcmVmSWQgPSAocHJvcHMucHJvcC52YWx1ZSBhcyB7IHJlZmVyZW5jZWRJZDogc3RyaW5nIH0pLnJlZmVyZW5jZWRJZFxyXG4gIGlmICghcmVmSWQpIHJldHVyblxyXG4gIHJldHVybiBtb2RlbFJvdXRlKHByb2plY3RJZC52YWx1ZSwgcmVmSWQpXHJcbn0pXHJcblxyXG5jb25zdCBoYW5kbGVIaWdobGlnaHQgPSAoKSA9PiB7XHJcbiAgaWYgKCFpc0RldGFjaGVkLnZhbHVlKSByZXR1cm5cclxuICBjb25zdCBpc0lzb2xhdGVkID0gZmlsdGVycy5pc29sYXRlZE9iamVjdHNTZXQudmFsdWU/Lmhhcyhpc0RldGFjaGVkLnZhbHVlKVxyXG4gIGlmIChpc0lzb2xhdGVkKSByZXR1cm4gcmVzZXRGaWx0ZXJzKClcclxuICB6b29tKFtpc0RldGFjaGVkLnZhbHVlXSlcclxuICByZXNldEZpbHRlcnMoKVxyXG4gIGlzb2xhdGVPYmplY3RzKFtpc0RldGFjaGVkLnZhbHVlXSlcclxufVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvdmlld2VyL2RhdGF2aWV3ZXIvUm93LnZ1ZSJ9 |