221 lines
21 KiB
Plaintext
221 lines
21 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/viewer/saved-views/panel/view/EditDialog.vue");import { FormTextInput as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { FormTextArea as __nuxt_component_1 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { default as __nuxt_component_2 } from "/_nuxt/components/form/select/SavedViewGroup.vue";
|
|
import { FormRadioGroup as __nuxt_component_3 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { LayoutDialog as __nuxt_component_4 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
/* Injection by vite-plugin-vue-inspector Start */
|
|
import { createVNode as __createVNode,createElementBlock as __createElementBlock,createElementVNode as __createElementVNode,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 _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
|
|
function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
|
|
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
|
|
function _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
|
|
/* Injection by vite-plugin-vue-inspector End */
|
|
import { useModel as _useModel, mergeModels as _mergeModels, defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
import { useForm } from "/_nuxt/node_modules/.cache/vite/client/deps/vee-validate.js?v=e4f18c29";
|
|
import { graphql } from "/_nuxt/lib/common/generated/gql/index.ts";
|
|
import { isRequired, isStringOfLength } from "/_nuxt/lib/common/helpers/validation.ts";
|
|
import { useUpdateSavedView } from "/_nuxt/lib/viewer/composables/savedViews/management.ts";
|
|
import { useInjectedViewerState } from "/_nuxt/lib/viewer/composables/setup.ts";
|
|
import { isUndefined } from "/_nuxt/node_modules/.cache/vite/client/deps/lodash-es.js?v=e4f18c29";
|
|
import { useSavedViewValidationHelpers } from "/_nuxt/lib/viewer/composables/savedViews/validation.ts";
|
|
|
|
import { computed, watch, markRaw } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
__name: "ViewerSavedViewsPanelViewEditDialog",
|
|
props: /* @__PURE__ */ _mergeModels({
|
|
view: { type: null, required: true }
|
|
}, {
|
|
"open": { type: Boolean, ...{
|
|
required: true
|
|
} },
|
|
"openModifiers": {}
|
|
}),
|
|
emits: ["update:open"],
|
|
setup(__props, { expose: __expose }) {
|
|
__expose();
|
|
graphql(`
|
|
fragment ViewerSavedViewsPanelViewEditDialog_SavedView on SavedView {
|
|
id
|
|
name
|
|
description
|
|
visibility
|
|
group {
|
|
...FormSelectSavedViewGroup_SavedViewGroup
|
|
}
|
|
...UseUpdateSavedView_SavedView
|
|
...UseSavedViewValidationHelpers_SavedView
|
|
}
|
|
`);
|
|
const props = __props;
|
|
const open = _useModel(__props, "open");
|
|
const { handleSubmit, setValues } = useForm();
|
|
const {
|
|
projectId,
|
|
resources: {
|
|
request: { resourceIdString }
|
|
}
|
|
} = useInjectedViewerState();
|
|
const updateView = useUpdateSavedView();
|
|
const { validateVisibility, visibilityOptions, canToggleVisibility } = useSavedViewValidationHelpers({
|
|
view: computed(() => props.view)
|
|
});
|
|
const buttons = computed(() => [
|
|
{
|
|
id: "cancel",
|
|
text: "Cancel",
|
|
props: {
|
|
color: "outline"
|
|
},
|
|
onClick: () => {
|
|
open.value = false;
|
|
}
|
|
},
|
|
{
|
|
id: "save",
|
|
text: "Save",
|
|
submit: true
|
|
}
|
|
]);
|
|
const onSubmit = handleSubmit(async (values) => {
|
|
if (!props.view) return;
|
|
const name = values.name.trim() && values.name.trim() !== props.view.name ? values.name.trim() : void 0;
|
|
const description = values.description?.trim() !== (props.view.description || void 0) ? values.description?.trim() || "" : void 0;
|
|
const visibility = values.visibility !== props.view.visibility ? values.visibility : void 0;
|
|
const groupId = values.group.id !== props.view.group.id ? values.group.id : void 0;
|
|
const coreInput = {
|
|
...isUndefined(name) ? {} : { name },
|
|
...isUndefined(description) ? {} : { description },
|
|
...isUndefined(visibility) ? {} : { visibility },
|
|
...isUndefined(groupId) ? {} : { groupId }
|
|
};
|
|
if (!Object.keys(coreInput).length) {
|
|
open.value = false;
|
|
return;
|
|
}
|
|
const res = await updateView({
|
|
view: props.view,
|
|
input: {
|
|
...coreInput,
|
|
id: props.view.id,
|
|
projectId: props.view.projectId
|
|
}
|
|
});
|
|
if (res?.id) {
|
|
open.value = false;
|
|
}
|
|
});
|
|
watch(open, (newVal, oldVal) => {
|
|
if (!props.view) return;
|
|
if (newVal && !oldVal) {
|
|
setValues({
|
|
name: props.view.name,
|
|
description: props.view.description,
|
|
visibility: props.view.visibility,
|
|
group: markRaw({ ...props.view.group })
|
|
// vue-validate doesnt like this read-only proxified object
|
|
});
|
|
}
|
|
});
|
|
const __returned__ = { props, open, handleSubmit, setValues, projectId, resourceIdString, updateView, validateVisibility, visibilityOptions, canToggleVisibility, buttons, onSubmit, get isRequired() {
|
|
return isRequired;
|
|
}, get isStringOfLength() {
|
|
return isStringOfLength;
|
|
} };
|
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
return __returned__;
|
|
}
|
|
});
|
|
import { resolveComponent as _resolveComponent, resolveDirective as _resolveDirective, openBlock as _openBlock, withDirectives as _withDirectives, withCtx as _withCtx, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _hoisted_1 = {
|
|
class: "flex flex-col gap-4",
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:9:5"
|
|
};
|
|
const _hoisted_2 = { "data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:33:7" };
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
const _component_FormTextInput = __nuxt_component_0;
|
|
const _component_FormTextArea = __nuxt_component_1;
|
|
const _component_FormSelectSavedViewGroup = __nuxt_component_2;
|
|
const _component_FormRadioGroup = __nuxt_component_3;
|
|
const _component_LayoutDialog = __nuxt_component_4;
|
|
const _directive_tippy = _resolveDirective("tippy");
|
|
return _openBlock(), _createBlock(_component_LayoutDialog, {
|
|
open: $setup.open,
|
|
"onUpdate:open": _cache[0] || (_cache[0] = ($event) => $setup.open = $event),
|
|
title: "Edit view",
|
|
"max-width": "sm",
|
|
buttons: $setup.buttons,
|
|
"on-submit": $setup.onSubmit,
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:2:3"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createElementVNode("div", _hoisted_1, [
|
|
_createVNode(_component_FormTextInput, {
|
|
name: "name",
|
|
label: "Name",
|
|
"show-label": "",
|
|
color: "foundation",
|
|
"auto-focus": "",
|
|
rules: [$setup.isRequired, $setup.isStringOfLength({ maxLength: 255 })],
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:10:7"
|
|
}, null, 8, ["rules"]),
|
|
_createVNode(_component_FormTextArea, {
|
|
name: "description",
|
|
label: "Description",
|
|
"show-label": "",
|
|
color: "foundation",
|
|
placeholder: "Add a description...",
|
|
rules: [$setup.isStringOfLength({ maxLength: 1e3 })],
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:18:7"
|
|
}, null, 8, ["rules"]),
|
|
_createVNode(_component_FormSelectSavedViewGroup, {
|
|
name: "group",
|
|
"show-label": "",
|
|
"project-id": $setup.projectId,
|
|
"resource-id-string": $setup.resourceIdString,
|
|
rules: [$setup.isRequired],
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:26:7"
|
|
}, null, 8, ["project-id", "resource-id-string", "rules"]),
|
|
_withDirectives((_openBlock(), _createElementBlock("div", _hoisted_2, [
|
|
_createVNode(_component_FormRadioGroup, {
|
|
options: $setup.visibilityOptions,
|
|
disabled: !$setup.canToggleVisibility.authorized,
|
|
size: "sm",
|
|
name: "visibility",
|
|
rules: [$setup.isRequired, $setup.validateVisibility],
|
|
"data-v-inspector": "components/viewer/saved-views/panel/view/EditDialog.vue:34:9"
|
|
}, null, 8, ["options", "disabled", "rules"])
|
|
])), [
|
|
[_directive_tippy, $setup.canToggleVisibility.message]
|
|
])
|
|
])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}, 8, ["open", "buttons", "on-submit"]);
|
|
}
|
|
_sfc_main.__hmrId = "79d14619";
|
|
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/saved-views/panel/view/EditDialog.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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QWtCO0FBQUEsWUFBRyxvQkFBaUI7QUFBQTs7NkJBTmpELDJCQUFvQixPQUFPO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIkVkaXREaWFsb2cudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8TGF5b3V0RGlhbG9nXHJcbiAgICB2LW1vZGVsOm9wZW49XCJvcGVuXCJcclxuICAgIHRpdGxlPVwiRWRpdCB2aWV3XCJcclxuICAgIG1heC13aWR0aD1cInNtXCJcclxuICAgIDpidXR0b25zPVwiYnV0dG9uc1wiXHJcbiAgICA6b24tc3VibWl0PVwib25TdWJtaXRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvc2F2ZWQtdmlld3MvcGFuZWwvdmlldy9FZGl0RGlhbG9nLnZ1ZToyOjNcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6OTo1XCI+XHJcbiAgICAgIDxGb3JtVGV4dElucHV0XHJcbiAgICAgICAgbmFtZT1cIm5hbWVcIlxyXG4gICAgICAgIGxhYmVsPVwiTmFtZVwiXHJcbiAgICAgICAgc2hvdy1sYWJlbFxyXG4gICAgICAgIGNvbG9yPVwiZm91bmRhdGlvblwiXHJcbiAgICAgICAgYXV0by1mb2N1c1xyXG4gICAgICAgIDpydWxlcz1cIltpc1JlcXVpcmVkLCBpc1N0cmluZ09mTGVuZ3RoKHsgbWF4TGVuZ3RoOiAyNTUgfSldXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6MTA6N1wiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxGb3JtVGV4dEFyZWFcclxuICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHNob3ctbGFiZWxcclxuICAgICAgICBjb2xvcj1cImZvdW5kYXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgZGVzY3JpcHRpb24uLi5cIlxyXG4gICAgICAgIDpydWxlcz1cIltpc1N0cmluZ09mTGVuZ3RoKHsgbWF4TGVuZ3RoOiAxMDAwIH0pXVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlOjE4OjdcIlxyXG4gICAgICAvPlxyXG4gICAgICA8Rm9ybVNlbGVjdFNhdmVkVmlld0dyb3VwXHJcbiAgICAgICAgbmFtZT1cImdyb3VwXCJcclxuICAgICAgICBzaG93LWxhYmVsXHJcbiAgICAgICAgOnByb2plY3QtaWQ9XCJwcm9qZWN0SWRcIlxyXG4gICAgICAgIDpyZXNvdXJjZS1pZC1zdHJpbmc9XCJyZXNvdXJjZUlkU3RyaW5nXCJcclxuICAgICAgICA6cnVsZXM9XCJbaXNSZXF1aXJlZF1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvc2F2ZWQtdmlld3MvcGFuZWwvdmlldy9FZGl0RGlhbG9nLnZ1ZToyNjo3XCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiB2LXRpcHB5PVwiY2FuVG9nZ2xlVmlzaWJpbGl0eS5tZXNzYWdlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6MzM6N1wiPlxyXG4gICAgICAgIDxGb3JtUmFkaW9Hcm91cFxyXG4gICAgICAgICAgOm9wdGlvbnM9XCJ2aXNpYmlsaXR5T3B0aW9uc1wiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCIhY2FuVG9nZ2xlVmlzaWJpbGl0eS5hdXRob3JpemVkXCJcclxuICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICBuYW1lPVwidmlzaWJpbGl0eVwiXHJcbiAgICAgICAgICA6cnVsZXM9XCJbaXNSZXF1aXJlZCwgdmFsaWRhdGVWaXNpYmlsaXR5XVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlOjM0OjlcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9MYXlvdXREaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB0eXBlIHsgTGF5b3V0RGlhbG9nQnV0dG9uIH0gZnJvbSAnQHNwZWNrbGUvdWktY29tcG9uZW50cydcclxuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJ3ZlZS12YWxpZGF0ZSdcclxuaW1wb3J0IHsgZ3JhcGhxbCB9IGZyb20gJ34vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsJ1xyXG5pbXBvcnQgeyBpc1JlcXVpcmVkLCBpc1N0cmluZ09mTGVuZ3RoIH0gZnJvbSAnfi9saWIvY29tbW9uL2hlbHBlcnMvdmFsaWRhdGlvbidcclxuaW1wb3J0IHsgdXNlVXBkYXRlU2F2ZWRWaWV3IH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NhdmVkVmlld3MvbWFuYWdlbWVudCdcclxuaW1wb3J0IHsgdXNlSW5qZWN0ZWRWaWV3ZXJTdGF0ZSB9IGZyb20gJ34vbGliL3ZpZXdlci9jb21wb3NhYmxlcy9zZXR1cCdcclxuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnXHJcbmltcG9ydCB7IHVzZVNhdmVkVmlld1ZhbGlkYXRpb25IZWxwZXJzIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NhdmVkVmlld3MvdmFsaWRhdGlvbidcclxuaW1wb3J0IHR5cGUge1xyXG4gIEZvcm1TZWxlY3RTYXZlZFZpZXdHcm91cF9TYXZlZFZpZXdHcm91cEZyYWdtZW50LFxyXG4gIFNhdmVkVmlld1Zpc2liaWxpdHksXHJcbiAgVmlld2VyU2F2ZWRWaWV3c1BhbmVsVmlld0VkaXREaWFsb2dfU2F2ZWRWaWV3RnJhZ21lbnRcclxufSBmcm9tICd+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgVmlld2VyU2F2ZWRWaWV3c1BhbmVsVmlld0VkaXREaWFsb2dfU2F2ZWRWaWV3IG9uIFNhdmVkVmlldyB7XHJcbiAgICBpZFxyXG4gICAgbmFtZVxyXG4gICAgZGVzY3JpcHRpb25cclxuICAgIHZpc2liaWxpdHlcclxuICAgIGdyb3VwIHtcclxuICAgICAgLi4uRm9ybVNlbGVjdFNhdmVkVmlld0dyb3VwX1NhdmVkVmlld0dyb3VwXHJcbiAgICB9XHJcbiAgICAuLi5Vc2VVcGRhdGVTYXZlZFZpZXdfU2F2ZWRWaWV3XHJcbiAgICAuLi5Vc2VTYXZlZFZpZXdWYWxpZGF0aW9uSGVscGVyc19TYXZlZFZpZXdcclxuICB9XHJcbmApXHJcblxyXG50eXBlIEZvcm1UeXBlID0ge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsXHJcbiAgdmlzaWJpbGl0eTogU2F2ZWRWaWV3VmlzaWJpbGl0eVxyXG4gIGdyb3VwOiBGb3JtU2VsZWN0U2F2ZWRWaWV3R3JvdXBfU2F2ZWRWaWV3R3JvdXBGcmFnbWVudFxyXG59XHJcblxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPHtcclxuICB2aWV3OiBWaWV3ZXJTYXZlZFZpZXdzUGFuZWxWaWV3RWRpdERpYWxvZ19TYXZlZFZpZXdGcmFnbWVudCB8IHVuZGVmaW5lZFxyXG59PigpXHJcblxyXG5jb25zdCBvcGVuID0gZGVmaW5lTW9kZWw8Ym9vbGVhbj4oJ29wZW4nLCB7XHJcbiAgcmVxdWlyZWQ6IHRydWVcclxufSlcclxuY29uc3QgeyBoYW5kbGVTdWJtaXQsIHNldFZhbHVlcyB9ID0gdXNlRm9ybTxGb3JtVHlwZT4oKVxyXG5jb25zdCB7XHJcbiAgcHJvamVjdElkLFxyXG4gIHJlc291cmNlczoge1xyXG4gICAgcmVxdWVzdDogeyByZXNvdXJjZUlkU3RyaW5nIH1cclxuICB9XHJcbn0gPSB1c2VJbmplY3RlZFZpZXdlclN0YXRlKClcclxuY29uc3QgdXBkYXRlVmlldyA9IHVzZVVwZGF0ZVNhdmVkVmlldygpXHJcbmNvbnN0IHsgdmFsaWRhdGVWaXNpYmlsaXR5LCB2aXNpYmlsaXR5T3B0aW9ucywgY2FuVG9nZ2xlVmlzaWJpbGl0eSB9ID1cclxuICB1c2VTYXZlZFZpZXdWYWxpZGF0aW9uSGVscGVycyh7XHJcbiAgICB2aWV3OiBjb21wdXRlZCgoKSA9PiBwcm9wcy52aWV3KVxyXG4gIH0pXHJcblxyXG5jb25zdCBidXR0b25zID0gY29tcHV0ZWQoKCk6IExheW91dERpYWxvZ0J1dHRvbltdID0+IFtcclxuICB7XHJcbiAgICBpZDogJ2NhbmNlbCcsXHJcbiAgICB0ZXh0OiAnQ2FuY2VsJyxcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGNvbG9yOiAnb3V0bGluZSdcclxuICAgIH0sXHJcbiAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgIG9wZW4udmFsdWUgPSBmYWxzZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6ICdzYXZlJyxcclxuICAgIHRleHQ6ICdTYXZlJyxcclxuICAgIHN1Ym1pdDogdHJ1ZVxyXG4gIH1cclxuXSlcclxuXHJcbmNvbnN0IG9uU3VibWl0ID0gaGFuZGxlU3VibWl0KGFzeW5jICh2YWx1ZXMpID0+IHtcclxuICBpZiAoIXByb3BzLnZpZXcpIHJldHVyblxyXG5cclxuICBjb25zdCBuYW1lID1cclxuICAgIHZhbHVlcy5uYW1lLnRyaW0oKSAmJiB2YWx1ZXMubmFtZS50cmltKCkgIT09IHByb3BzLnZpZXcubmFtZVxyXG4gICAgICA/IHZhbHVlcy5uYW1lLnRyaW0oKVxyXG4gICAgICA6IHVuZGVmaW5lZFxyXG4gIGNvbnN0IGRlc2NyaXB0aW9uID1cclxuICAgIHZhbHVlcy5kZXNjcmlwdGlvbj8udHJpbSgpICE9PSAocHJvcHMudmlldy5kZXNjcmlwdGlvbiB8fCB1bmRlZmluZWQpXHJcbiAgICAgID8gdmFsdWVzLmRlc2NyaXB0aW9uPy50cmltKCkgfHwgJydcclxuICAgICAgOiB1bmRlZmluZWRcclxuICBjb25zdCB2aXNpYmlsaXR5ID1cclxuICAgIHZhbHVlcy52aXNpYmlsaXR5ICE9PSBwcm9wcy52aWV3LnZpc2liaWxpdHkgPyB2YWx1ZXMudmlzaWJpbGl0eSA6IHVuZGVmaW5lZFxyXG4gIGNvbnN0IGdyb3VwSWQgPSB2YWx1ZXMuZ3JvdXAuaWQgIT09IHByb3BzLnZpZXcuZ3JvdXAuaWQgPyB2YWx1ZXMuZ3JvdXAuaWQgOiB1bmRlZmluZWRcclxuXHJcbiAgY29uc3QgY29yZUlucHV0ID0ge1xyXG4gICAgLi4uKGlzVW5kZWZpbmVkKG5hbWUpID8ge30gOiB7IG5hbWUgfSksXHJcbiAgICAuLi4oaXNVbmRlZmluZWQoZGVzY3JpcHRpb24pID8ge30gOiB7IGRlc2NyaXB0aW9uIH0pLFxyXG4gICAgLi4uKGlzVW5kZWZpbmVkKHZpc2liaWxpdHkpID8ge30gOiB7IHZpc2liaWxpdHkgfSksXHJcbiAgICAuLi4oaXNVbmRlZmluZWQoZ3JvdXBJZCkgPyB7fSA6IHsgZ3JvdXBJZCB9KVxyXG4gIH1cclxuICBpZiAoIU9iamVjdC5rZXlzKGNvcmVJbnB1dCkubGVuZ3RoKSB7XHJcbiAgICBvcGVuLnZhbHVlID0gZmFsc2VcclxuICAgIHJldHVyblxyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzID0gYXdhaXQgdXBkYXRlVmlldyh7XHJcbiAgICB2aWV3OiBwcm9wcy52aWV3LFxyXG4gICAgaW5wdXQ6IHtcclxuICAgICAgLi4uY29yZUlucHV0LFxyXG4gICAgICBpZDogcHJvcHMudmlldy5pZCxcclxuICAgICAgcHJvamVjdElkOiBwcm9wcy52aWV3LnByb2plY3RJZFxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4gIGlmIChyZXM/LmlkKSB7XHJcbiAgICBvcGVuLnZhbHVlID0gZmFsc2VcclxuICB9XHJcbn0pXHJcblxyXG53YXRjaChvcGVuLCAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAoIXByb3BzLnZpZXcpIHJldHVyblxyXG5cclxuICBpZiAobmV3VmFsICYmICFvbGRWYWwpIHtcclxuICAgIC8vIFJlc2V0IGZvcm0gc3RhdGUgd2hlbiBkaWFsb2cgb3BlbnNcclxuICAgIHNldFZhbHVlcyh7XHJcbiAgICAgIG5hbWU6IHByb3BzLnZpZXcubmFtZSxcclxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLnZpZXcuZGVzY3JpcHRpb24sXHJcbiAgICAgIHZpc2liaWxpdHk6IHByb3BzLnZpZXcudmlzaWJpbGl0eSxcclxuICAgICAgZ3JvdXA6IG1hcmtSYXcoeyAuLi5wcm9wcy52aWV3Lmdyb3VwIH0pIC8vIHZ1ZS12YWxpZGF0ZSBkb2VzbnQgbGlrZSB0aGlzIHJlYWQtb25seSBwcm94aWZpZWQgb2JqZWN0XHJcbiAgICB9KVxyXG4gIH1cclxufSlcclxuPC9zY3JpcHQ+XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9jb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlIn0= |