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

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