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,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOENBLFNBQVMsZUFBZTtBQUN4QixTQUFTLGVBQWU7QUFDeEIsU0FBUyxZQUFZLHdCQUF3QjtBQUM3QyxTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLHFDQUFxQzs7Ozs7Ozs7Ozs7Ozs7OztBQU85QyxZQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLENBWVA7QUFTRCxVQUFNLFFBQVE7QUFJZCxVQUFNLE9BQU8sVUFBb0IsU0FBQyxNQUVqQztBQUNELFVBQU0sRUFBRSxjQUFjLFVBQVUsSUFBSSxRQUFrQjtBQUN0RCxVQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsU0FBUyxFQUFFLGlCQUFpQjtBQUFBLE1BQzlCO0FBQUEsSUFDRixJQUFJLHVCQUF1QjtBQUMzQixVQUFNLGFBQWEsbUJBQW1CO0FBQ3RDLFVBQU0sRUFBRSxvQkFBb0IsbUJBQW1CLG9CQUFvQixJQUNqRSw4QkFBOEI7QUFBQSxNQUM1QixNQUFNLFNBQVMsTUFBTSxNQUFNLElBQUk7QUFBQSxJQUNqQyxDQUFDO0FBRUgsVUFBTSxVQUFVLFNBQVMsTUFBNEI7QUFBQSxNQUNuRDtBQUFBLFFBQ0UsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBLFVBQ0wsT0FBTztBQUFBLFFBQ1Q7QUFBQSxRQUNBLFNBQVMsTUFBTTtBQUNiLGVBQUssUUFBUTtBQUFBLFFBQ2Y7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLFFBQ0UsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sUUFBUTtBQUFBLE1BQ1Y7QUFBQSxJQUNGLENBQUM7QUFFRCxVQUFNLFdBQVcsYUFBYSxPQUFPLFdBQVc7QUFDOUMsVUFBSSxDQUFDLE1BQU0sS0FBTTtBQUVqQixZQUFNLE9BQ0osT0FBTyxLQUFLLEtBQUssS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0sS0FBSyxPQUNwRCxPQUFPLEtBQUssS0FBSyxJQUNqQjtBQUNOLFlBQU0sY0FDSixPQUFPLGFBQWEsS0FBSyxPQUFPLE1BQU0sS0FBSyxlQUFlLFVBQ3RELE9BQU8sYUFBYSxLQUFLLEtBQUssS0FDOUI7QUFDTixZQUFNLGFBQ0osT0FBTyxlQUFlLE1BQU0sS0FBSyxhQUFhLE9BQU8sYUFBYTtBQUNwRSxZQUFNLFVBQVUsT0FBTyxNQUFNLE9BQU8sTUFBTSxLQUFLLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSztBQUU1RSxZQUFNLFlBQVk7QUFBQSxRQUNoQixHQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUs7QUFBQSxRQUNwQyxHQUFJLFlBQVksV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVk7QUFBQSxRQUNsRCxHQUFJLFlBQVksVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVc7QUFBQSxRQUNoRCxHQUFJLFlBQVksT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVE7QUFBQSxNQUM1QztBQUNBLFVBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLFFBQVE7QUFDbEMsYUFBSyxRQUFRO0FBQ2I7QUFBQSxNQUNGO0FBRUEsWUFBTSxNQUFNLE1BQU0sV0FBVztBQUFBLFFBQzNCLE1BQU0sTUFBTTtBQUFBLFFBQ1osT0FBTztBQUFBLFVBQ0wsR0FBRztBQUFBLFVBQ0gsSUFBSSxNQUFNLEtBQUs7QUFBQSxVQUNmLFdBQVcsTUFBTSxLQUFLO0FBQUEsUUFDeEI7QUFBQSxNQUNGLENBQUM7QUFFRCxVQUFJLEtBQUssSUFBSTtBQUNYLGFBQUssUUFBUTtBQUFBLE1BQ2Y7QUFBQSxJQUNGLENBQUM7QUFFRCxVQUFNLE1BQU0sQ0FBQyxRQUFRLFdBQVc7QUFDOUIsVUFBSSxDQUFDLE1BQU0sS0FBTTtBQUVqQixVQUFJLFVBQVUsQ0FBQyxRQUFRO0FBRXJCLGtCQUFVO0FBQUEsVUFDUixNQUFNLE1BQU0sS0FBSztBQUFBLFVBQ2pCLGFBQWEsTUFBTSxLQUFLO0FBQUEsVUFDeEIsWUFBWSxNQUFNLEtBQUs7QUFBQSxVQUN2QixPQUFPLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUM7QUFBQTtBQUFBLFFBQ3hDLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRixDQUFDOzs7Ozs7Ozs7Ozs7RUFsS1EsT0FBTTtBQUFBLEVBQXNCLG9CQUFpQjs7cUJBd0JMLG9CQUFpQiwrREFBOEQ7Ozs7Ozs7O3VCQS9COUgsYUF5Q2U7QUFBQSxJQXhDTCxNQUFNO0FBQUEseUVBQUk7QUFBQSxJQUNsQixPQUFNO0FBQUEsSUFDTixhQUFVO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxhQUFXO0FBQUEsSUFBVSxvQkFBaUI7QUFBQTtzQkFFdkMsTUFpQ007QUFBQSxNQWpDTixvQkFpQ00sT0FqQ04sWUFpQ007QUFBQSxRQWhDSixhQU9FO0FBQUEsVUFOQSxNQUFLO0FBQUEsVUFDTCxPQUFNO0FBQUEsVUFDTjtBQUFBLFVBQ0EsT0FBTTtBQUFBLFVBQ047QUFBQSxVQUNDLE9BQUssQ0FBRyxtQkFBWSx3QkFBZ0I7QUFBQSxVQUF1QixvQkFBaUI7QUFBQTtRQUUvRSxhQU9FO0FBQUEsVUFOQSxNQUFLO0FBQUEsVUFDTCxPQUFNO0FBQUEsVUFDTjtBQUFBLFVBQ0EsT0FBTTtBQUFBLFVBQ04sYUFBWTtBQUFBLFVBQ1gsT0FBSyxDQUFHLHdCQUFnQjtBQUFBLFVBQXdCLG9CQUFpQjtBQUFBO1FBRXBFLGFBTUU7QUFBQSxVQUxBLE1BQUs7QUFBQSxVQUNMO0FBQUEsVUFDQyxjQUFZO0FBQUEsVUFDWixzQkFBb0I7QUFBQSxVQUNwQixPQUFLLENBQUcsaUJBQVU7QUFBQSxVQUFHLG9CQUFpQjtBQUFBO3VDQUV6QyxvQkFRTSxPQVJOLFlBUU07QUFBQSxVQVBKLGFBTUU7QUFBQSxZQUxDLFNBQVM7QUFBQSxZQUNULFVBQVEsQ0FBRywyQkFBb0I7QUFBQSxZQUNoQyxNQUFLO0FBQUEsWUFDTCxNQUFLO0FBQUEsWUFDSixPQUFLLENBQUcsbUJBQVkseUJBQWtCO0FBQUEsWUFBRyxvQkFBaUI7QUFBQTs7NkJBTmpELDJCQUFvQixPQUFPO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIkVkaXREaWFsb2cudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8TGF5b3V0RGlhbG9nXHJcbiAgICB2LW1vZGVsOm9wZW49XCJvcGVuXCJcclxuICAgIHRpdGxlPVwiRWRpdCB2aWV3XCJcclxuICAgIG1heC13aWR0aD1cInNtXCJcclxuICAgIDpidXR0b25zPVwiYnV0dG9uc1wiXHJcbiAgICA6b24tc3VibWl0PVwib25TdWJtaXRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvc2F2ZWQtdmlld3MvcGFuZWwvdmlldy9FZGl0RGlhbG9nLnZ1ZToyOjNcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6OTo1XCI+XHJcbiAgICAgIDxGb3JtVGV4dElucHV0XHJcbiAgICAgICAgbmFtZT1cIm5hbWVcIlxyXG4gICAgICAgIGxhYmVsPVwiTmFtZVwiXHJcbiAgICAgICAgc2hvdy1sYWJlbFxyXG4gICAgICAgIGNvbG9yPVwiZm91bmRhdGlvblwiXHJcbiAgICAgICAgYXV0by1mb2N1c1xyXG4gICAgICAgIDpydWxlcz1cIltpc1JlcXVpcmVkLCBpc1N0cmluZ09mTGVuZ3RoKHsgbWF4TGVuZ3RoOiAyNTUgfSldXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6MTA6N1wiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxGb3JtVGV4dEFyZWFcclxuICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHNob3ctbGFiZWxcclxuICAgICAgICBjb2xvcj1cImZvdW5kYXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgZGVzY3JpcHRpb24uLi5cIlxyXG4gICAgICAgIDpydWxlcz1cIltpc1N0cmluZ09mTGVuZ3RoKHsgbWF4TGVuZ3RoOiAxMDAwIH0pXVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlOjE4OjdcIlxyXG4gICAgICAvPlxyXG4gICAgICA8Rm9ybVNlbGVjdFNhdmVkVmlld0dyb3VwXHJcbiAgICAgICAgbmFtZT1cImdyb3VwXCJcclxuICAgICAgICBzaG93LWxhYmVsXHJcbiAgICAgICAgOnByb2plY3QtaWQ9XCJwcm9qZWN0SWRcIlxyXG4gICAgICAgIDpyZXNvdXJjZS1pZC1zdHJpbmc9XCJyZXNvdXJjZUlkU3RyaW5nXCJcclxuICAgICAgICA6cnVsZXM9XCJbaXNSZXF1aXJlZF1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvc2F2ZWQtdmlld3MvcGFuZWwvdmlldy9FZGl0RGlhbG9nLnZ1ZToyNjo3XCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiB2LXRpcHB5PVwiY2FuVG9nZ2xlVmlzaWJpbGl0eS5tZXNzYWdlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL3NhdmVkLXZpZXdzL3BhbmVsL3ZpZXcvRWRpdERpYWxvZy52dWU6MzM6N1wiPlxyXG4gICAgICAgIDxGb3JtUmFkaW9Hcm91cFxyXG4gICAgICAgICAgOm9wdGlvbnM9XCJ2aXNpYmlsaXR5T3B0aW9uc1wiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCIhY2FuVG9nZ2xlVmlzaWJpbGl0eS5hdXRob3JpemVkXCJcclxuICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICBuYW1lPVwidmlzaWJpbGl0eVwiXHJcbiAgICAgICAgICA6cnVsZXM9XCJbaXNSZXF1aXJlZCwgdmFsaWRhdGVWaXNpYmlsaXR5XVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlOjM0OjlcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9MYXlvdXREaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB0eXBlIHsgTGF5b3V0RGlhbG9nQnV0dG9uIH0gZnJvbSAnQHNwZWNrbGUvdWktY29tcG9uZW50cydcclxuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJ3ZlZS12YWxpZGF0ZSdcclxuaW1wb3J0IHsgZ3JhcGhxbCB9IGZyb20gJ34vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsJ1xyXG5pbXBvcnQgeyBpc1JlcXVpcmVkLCBpc1N0cmluZ09mTGVuZ3RoIH0gZnJvbSAnfi9saWIvY29tbW9uL2hlbHBlcnMvdmFsaWRhdGlvbidcclxuaW1wb3J0IHsgdXNlVXBkYXRlU2F2ZWRWaWV3IH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NhdmVkVmlld3MvbWFuYWdlbWVudCdcclxuaW1wb3J0IHsgdXNlSW5qZWN0ZWRWaWV3ZXJTdGF0ZSB9IGZyb20gJ34vbGliL3ZpZXdlci9jb21wb3NhYmxlcy9zZXR1cCdcclxuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnXHJcbmltcG9ydCB7IHVzZVNhdmVkVmlld1ZhbGlkYXRpb25IZWxwZXJzIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL3NhdmVkVmlld3MvdmFsaWRhdGlvbidcclxuaW1wb3J0IHR5cGUge1xyXG4gIEZvcm1TZWxlY3RTYXZlZFZpZXdHcm91cF9TYXZlZFZpZXdHcm91cEZyYWdtZW50LFxyXG4gIFNhdmVkVmlld1Zpc2liaWxpdHksXHJcbiAgVmlld2VyU2F2ZWRWaWV3c1BhbmVsVmlld0VkaXREaWFsb2dfU2F2ZWRWaWV3RnJhZ21lbnRcclxufSBmcm9tICd+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgVmlld2VyU2F2ZWRWaWV3c1BhbmVsVmlld0VkaXREaWFsb2dfU2F2ZWRWaWV3IG9uIFNhdmVkVmlldyB7XHJcbiAgICBpZFxyXG4gICAgbmFtZVxyXG4gICAgZGVzY3JpcHRpb25cclxuICAgIHZpc2liaWxpdHlcclxuICAgIGdyb3VwIHtcclxuICAgICAgLi4uRm9ybVNlbGVjdFNhdmVkVmlld0dyb3VwX1NhdmVkVmlld0dyb3VwXHJcbiAgICB9XHJcbiAgICAuLi5Vc2VVcGRhdGVTYXZlZFZpZXdfU2F2ZWRWaWV3XHJcbiAgICAuLi5Vc2VTYXZlZFZpZXdWYWxpZGF0aW9uSGVscGVyc19TYXZlZFZpZXdcclxuICB9XHJcbmApXHJcblxyXG50eXBlIEZvcm1UeXBlID0ge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsXHJcbiAgdmlzaWJpbGl0eTogU2F2ZWRWaWV3VmlzaWJpbGl0eVxyXG4gIGdyb3VwOiBGb3JtU2VsZWN0U2F2ZWRWaWV3R3JvdXBfU2F2ZWRWaWV3R3JvdXBGcmFnbWVudFxyXG59XHJcblxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPHtcclxuICB2aWV3OiBWaWV3ZXJTYXZlZFZpZXdzUGFuZWxWaWV3RWRpdERpYWxvZ19TYXZlZFZpZXdGcmFnbWVudCB8IHVuZGVmaW5lZFxyXG59PigpXHJcblxyXG5jb25zdCBvcGVuID0gZGVmaW5lTW9kZWw8Ym9vbGVhbj4oJ29wZW4nLCB7XHJcbiAgcmVxdWlyZWQ6IHRydWVcclxufSlcclxuY29uc3QgeyBoYW5kbGVTdWJtaXQsIHNldFZhbHVlcyB9ID0gdXNlRm9ybTxGb3JtVHlwZT4oKVxyXG5jb25zdCB7XHJcbiAgcHJvamVjdElkLFxyXG4gIHJlc291cmNlczoge1xyXG4gICAgcmVxdWVzdDogeyByZXNvdXJjZUlkU3RyaW5nIH1cclxuICB9XHJcbn0gPSB1c2VJbmplY3RlZFZpZXdlclN0YXRlKClcclxuY29uc3QgdXBkYXRlVmlldyA9IHVzZVVwZGF0ZVNhdmVkVmlldygpXHJcbmNvbnN0IHsgdmFsaWRhdGVWaXNpYmlsaXR5LCB2aXNpYmlsaXR5T3B0aW9ucywgY2FuVG9nZ2xlVmlzaWJpbGl0eSB9ID1cclxuICB1c2VTYXZlZFZpZXdWYWxpZGF0aW9uSGVscGVycyh7XHJcbiAgICB2aWV3OiBjb21wdXRlZCgoKSA9PiBwcm9wcy52aWV3KVxyXG4gIH0pXHJcblxyXG5jb25zdCBidXR0b25zID0gY29tcHV0ZWQoKCk6IExheW91dERpYWxvZ0J1dHRvbltdID0+IFtcclxuICB7XHJcbiAgICBpZDogJ2NhbmNlbCcsXHJcbiAgICB0ZXh0OiAnQ2FuY2VsJyxcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGNvbG9yOiAnb3V0bGluZSdcclxuICAgIH0sXHJcbiAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgIG9wZW4udmFsdWUgPSBmYWxzZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6ICdzYXZlJyxcclxuICAgIHRleHQ6ICdTYXZlJyxcclxuICAgIHN1Ym1pdDogdHJ1ZVxyXG4gIH1cclxuXSlcclxuXHJcbmNvbnN0IG9uU3VibWl0ID0gaGFuZGxlU3VibWl0KGFzeW5jICh2YWx1ZXMpID0+IHtcclxuICBpZiAoIXByb3BzLnZpZXcpIHJldHVyblxyXG5cclxuICBjb25zdCBuYW1lID1cclxuICAgIHZhbHVlcy5uYW1lLnRyaW0oKSAmJiB2YWx1ZXMubmFtZS50cmltKCkgIT09IHByb3BzLnZpZXcubmFtZVxyXG4gICAgICA/IHZhbHVlcy5uYW1lLnRyaW0oKVxyXG4gICAgICA6IHVuZGVmaW5lZFxyXG4gIGNvbnN0IGRlc2NyaXB0aW9uID1cclxuICAgIHZhbHVlcy5kZXNjcmlwdGlvbj8udHJpbSgpICE9PSAocHJvcHMudmlldy5kZXNjcmlwdGlvbiB8fCB1bmRlZmluZWQpXHJcbiAgICAgID8gdmFsdWVzLmRlc2NyaXB0aW9uPy50cmltKCkgfHwgJydcclxuICAgICAgOiB1bmRlZmluZWRcclxuICBjb25zdCB2aXNpYmlsaXR5ID1cclxuICAgIHZhbHVlcy52aXNpYmlsaXR5ICE9PSBwcm9wcy52aWV3LnZpc2liaWxpdHkgPyB2YWx1ZXMudmlzaWJpbGl0eSA6IHVuZGVmaW5lZFxyXG4gIGNvbnN0IGdyb3VwSWQgPSB2YWx1ZXMuZ3JvdXAuaWQgIT09IHByb3BzLnZpZXcuZ3JvdXAuaWQgPyB2YWx1ZXMuZ3JvdXAuaWQgOiB1bmRlZmluZWRcclxuXHJcbiAgY29uc3QgY29yZUlucHV0ID0ge1xyXG4gICAgLi4uKGlzVW5kZWZpbmVkKG5hbWUpID8ge30gOiB7IG5hbWUgfSksXHJcbiAgICAuLi4oaXNVbmRlZmluZWQoZGVzY3JpcHRpb24pID8ge30gOiB7IGRlc2NyaXB0aW9uIH0pLFxyXG4gICAgLi4uKGlzVW5kZWZpbmVkKHZpc2liaWxpdHkpID8ge30gOiB7IHZpc2liaWxpdHkgfSksXHJcbiAgICAuLi4oaXNVbmRlZmluZWQoZ3JvdXBJZCkgPyB7fSA6IHsgZ3JvdXBJZCB9KVxyXG4gIH1cclxuICBpZiAoIU9iamVjdC5rZXlzKGNvcmVJbnB1dCkubGVuZ3RoKSB7XHJcbiAgICBvcGVuLnZhbHVlID0gZmFsc2VcclxuICAgIHJldHVyblxyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzID0gYXdhaXQgdXBkYXRlVmlldyh7XHJcbiAgICB2aWV3OiBwcm9wcy52aWV3LFxyXG4gICAgaW5wdXQ6IHtcclxuICAgICAgLi4uY29yZUlucHV0LFxyXG4gICAgICBpZDogcHJvcHMudmlldy5pZCxcclxuICAgICAgcHJvamVjdElkOiBwcm9wcy52aWV3LnByb2plY3RJZFxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4gIGlmIChyZXM/LmlkKSB7XHJcbiAgICBvcGVuLnZhbHVlID0gZmFsc2VcclxuICB9XHJcbn0pXHJcblxyXG53YXRjaChvcGVuLCAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAoIXByb3BzLnZpZXcpIHJldHVyblxyXG5cclxuICBpZiAobmV3VmFsICYmICFvbGRWYWwpIHtcclxuICAgIC8vIFJlc2V0IGZvcm0gc3RhdGUgd2hlbiBkaWFsb2cgb3BlbnNcclxuICAgIHNldFZhbHVlcyh7XHJcbiAgICAgIG5hbWU6IHByb3BzLnZpZXcubmFtZSxcclxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLnZpZXcuZGVzY3JpcHRpb24sXHJcbiAgICAgIHZpc2liaWxpdHk6IHByb3BzLnZpZXcudmlzaWJpbGl0eSxcclxuICAgICAgZ3JvdXA6IG1hcmtSYXcoeyAuLi5wcm9wcy52aWV3Lmdyb3VwIH0pIC8vIHZ1ZS12YWxpZGF0ZSBkb2VzbnQgbGlrZSB0aGlzIHJlYWQtb25seSBwcm94aWZpZWQgb2JqZWN0XHJcbiAgICB9KVxyXG4gIH1cclxufSlcclxuPC9zY3JpcHQ+XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9jb21wb25lbnRzL3ZpZXdlci9zYXZlZC12aWV3cy9wYW5lbC92aWV3L0VkaXREaWFsb2cudnVlIn0=