import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/project/page/models/NewDialog.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 { LayoutDialog as __nuxt_component_2 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js"; /* Injection by vite-plugin-vue-inspector Start */ import { createVNode as __createVNode,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 _createElementVNode(...args) { return _interopVNode(__createElementVNode(...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 { CubeIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29"; import { useMutationLoading } from "/_nuxt/node_modules/@vue/apollo-composable/dist/index.mjs?v=e4f18c29"; import { useForm } from "/_nuxt/node_modules/.cache/vite/client/deps/vee-validate.js?v=e4f18c29"; import { useMixpanel } from "/_nuxt/lib/core/composables/mp.ts"; import { useCreateNewModel, useModelNameValidationRules } from "/_nuxt/lib/projects/composables/modelManagement.ts"; import { sanitizeModelName } from "/_nuxt/lib/projects/helpers/models.ts"; import { ref, computed, watch } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "ProjectPageModelsNewDialog", props: { open: { type: Boolean, required: true }, projectId: { type: String, required: true }, parentModelName: { type: String, required: false }, modelName: { type: String, required: false } }, emits: ["update:open", "submit"], setup(__props, { expose: __expose, emit: __emit }) { __expose(); const emit = __emit; const props = __props; const { handleSubmit } = useForm(); const anyMutationsLoading = useMutationLoading(); const rules = useModelNameValidationRules(); const createModel = useCreateNewModel(); const mp = useMixpanel(); const newModelName = ref(""); const newDescription = ref(""); const openState = computed({ get: () => props.open, set: (newVal) => emit("update:open", newVal) }); const onSubmit = handleSubmit(async ({ name, description }) => { const res = await createModel({ name: sanitizeModelName(name), description, projectId: props.projectId }); if (!res?.id) return; emit("submit", { model: res }); mp.track("Branch Action", { type: "action", name: "create", mode: "dialog" }); openState.value = false; }); watch( () => props.open, (isOpen, oldIsOpen) => { if (isOpen && isOpen !== oldIsOpen) { if (props.modelName) { newModelName.value = props.modelName; } else if (props.parentModelName) { newModelName.value = `${props.parentModelName}/`; } else { newModelName.value = ""; } newDescription.value = ""; } } ); const dialogButtons = computed(() => [ { text: "Cancel", props: { color: "outline" }, onClick: () => { openState.value = false; } }, { text: "Create", props: {}, onClick: () => { onSubmit(); }, disabled: anyMutationsLoading.value } ]); const __returned__ = { emit, props, handleSubmit, anyMutationsLoading, rules, createModel, mp, newModelName, newDescription, openState, onSubmit, dialogButtons, get CubeIcon() { return CubeIcon; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = { class: "flex flex-col space-y-6 mb-4", "data-v-inspector": "components/project/page/models/NewDialog.vue:10:7" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_FormTextInput = __nuxt_component_0; const _component_FormTextArea = __nuxt_component_1; const _component_LayoutDialog = __nuxt_component_2; return _openBlock(), _createBlock(_component_LayoutDialog, { open: $setup.openState, "onUpdate:open": _cache[3] || (_cache[3] = ($event) => $setup.openState = $event), "max-width": "sm", "hide-closer": "", buttons: $setup.dialogButtons, "data-v-inspector": "components/project/page/models/NewDialog.vue:2:3" }, { header: _withCtx(() => [..._cache[4] || (_cache[4] = [ _createTextVNode( "Create new model", -1 /* CACHED */ ) ])]), default: _withCtx(() => [ _createElementVNode( "form", { onSubmit: _cache[2] || (_cache[2] = (...args) => $setup.onSubmit && $setup.onSubmit(...args)), "data-v-inspector": "components/project/page/models/NewDialog.vue:9:5" }, [ _createElementVNode("div", _hoisted_1, [ _createVNode(_component_FormTextInput, { modelValue: $setup.newModelName, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.newModelName = $event), color: "foundation", name: "name", label: "Model name", "show-label": "", placeholder: "model/name/here", "custom-icon": $setup.CubeIcon, rules: $setup.rules, disabled: $setup.anyMutationsLoading, help: "Use forward slashes in the model name to nest it below other models.", autocomplete: "off", "data-v-inspector": "components/project/page/models/NewDialog.vue:11:9" }, null, 8, ["modelValue", "custom-icon", "rules", "disabled"]), _createVNode(_component_FormTextArea, { modelValue: $setup.newDescription, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.newDescription = $event), color: "foundation", name: "description", "show-label": "", "show-optional": "", label: "Model description", placeholder: "Description", size: "lg", disabled: $setup.anyMutationsLoading, "data-v-inspector": "components/project/page/models/NewDialog.vue:24:9" }, null, 8, ["modelValue", "disabled"]) ]) ], 32 /* NEED_HYDRATION */ ) ]), _: 1 /* STABLE */ }, 8, ["open", "buttons"]); } _sfc_main.__hmrId = "57253e6d"; 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/project/page/models/NewDialog.vue"]]); //# sourceMappingURL=data:application/json;base64,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UCxVQUFVO0FBQUEsY0FDWCxNQUFLO0FBQUEsY0FDTCxjQUFhO0FBQUEsY0FBTSxvQkFBaUI7QUFBQTtZQUV0QyxhQVVFO0FBQUEsMEJBVFM7QUFBQSxtR0FBYztBQUFBLGNBQ3ZCLE9BQU07QUFBQSxjQUNOLE1BQUs7QUFBQSxjQUNMO0FBQUEsY0FDQTtBQUFBLGNBQ0EsT0FBTTtBQUFBLGNBQ04sYUFBWTtBQUFBLGNBQ1osTUFBSztBQUFBLGNBQ0osVUFBVTtBQUFBLGNBQXFCLG9CQUFpQjtBQUFBIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJOZXdEaWFsb2cudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8TGF5b3V0RGlhbG9nXHJcbiAgICB2LW1vZGVsOm9wZW49XCJvcGVuU3RhdGVcIlxyXG4gICAgbWF4LXdpZHRoPVwic21cIlxyXG4gICAgaGlkZS1jbG9zZXJcclxuICAgIDpidXR0b25zPVwiZGlhbG9nQnV0dG9uc1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3Byb2plY3QvcGFnZS9tb2RlbHMvTmV3RGlhbG9nLnZ1ZToyOjNcIlxyXG4gID5cclxuICAgIDx0ZW1wbGF0ZSAjaGVhZGVyPkNyZWF0ZSBuZXcgbW9kZWw8L3RlbXBsYXRlPlxyXG4gICAgPGZvcm0gQHN1Ym1pdD1cIm9uU3VibWl0XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvcHJvamVjdC9wYWdlL21vZGVscy9OZXdEaWFsb2cudnVlOjk6NVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTYgbWItNFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3Byb2plY3QvcGFnZS9tb2RlbHMvTmV3RGlhbG9nLnZ1ZToxMDo3XCI+XHJcbiAgICAgICAgPEZvcm1UZXh0SW5wdXRcclxuICAgICAgICAgIHYtbW9kZWw9XCJuZXdNb2RlbE5hbWVcIlxyXG4gICAgICAgICAgY29sb3I9XCJmb3VuZGF0aW9uXCJcclxuICAgICAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgICAgIGxhYmVsPVwiTW9kZWwgbmFtZVwiXHJcbiAgICAgICAgICBzaG93LWxhYmVsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1vZGVsL25hbWUvaGVyZVwiXHJcbiAgICAgICAgICA6Y3VzdG9tLWljb249XCJDdWJlSWNvblwiXHJcbiAgICAgICAgICA6cnVsZXM9XCJydWxlc1wiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJhbnlNdXRhdGlvbnNMb2FkaW5nXCJcclxuICAgICAgICAgIGhlbHA9XCJVc2UgZm9yd2FyZCBzbGFzaGVzIGluIHRoZSBtb2RlbCBuYW1lIHRvIG5lc3QgaXQgYmVsb3cgb3RoZXIgbW9kZWxzLlwiXHJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9wcm9qZWN0L3BhZ2UvbW9kZWxzL05ld0RpYWxvZy52dWU6MTE6OVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8Rm9ybVRleHRBcmVhXHJcbiAgICAgICAgICB2LW1vZGVsPVwibmV3RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgY29sb3I9XCJmb3VuZGF0aW9uXCJcclxuICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICBzaG93LWxhYmVsXHJcbiAgICAgICAgICBzaG93LW9wdGlvbmFsXHJcbiAgICAgICAgICBsYWJlbD1cIk1vZGVsIGRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgc2l6ZT1cImxnXCJcclxuICAgICAgICAgIDpkaXNhYmxlZD1cImFueU11dGF0aW9uc0xvYWRpbmdcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9wcm9qZWN0L3BhZ2UvbW9kZWxzL05ld0RpYWxvZy52dWU6MjQ6OVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9MYXlvdXREaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IEN1YmVJY29uIH0gZnJvbSAnQGhlcm9pY29ucy92dWUvMjQvb3V0bGluZSdcclxuaW1wb3J0IHR5cGUgeyBMYXlvdXREaWFsb2dCdXR0b24gfSBmcm9tICdAc3BlY2tsZS91aS1jb21wb25lbnRzJ1xyXG5pbXBvcnQgeyB1c2VNdXRhdGlvbkxvYWRpbmcgfSBmcm9tICdAdnVlL2Fwb2xsby1jb21wb3NhYmxlJ1xyXG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAndmVlLXZhbGlkYXRlJ1xyXG5pbXBvcnQgdHlwZSB7IFByb2plY3RQYWdlTGF0ZXN0SXRlbXNNb2RlbEl0ZW1GcmFnbWVudCB9IGZyb20gJ34vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsL2dyYXBocWwnXHJcbmltcG9ydCB7IHVzZU1peHBhbmVsIH0gZnJvbSAnfn4vbGliL2NvcmUvY29tcG9zYWJsZXMvbXAnXHJcbmltcG9ydCB7XHJcbiAgdXNlQ3JlYXRlTmV3TW9kZWwsXHJcbiAgdXNlTW9kZWxOYW1lVmFsaWRhdGlvblJ1bGVzXHJcbn0gZnJvbSAnfn4vbGliL3Byb2plY3RzL2NvbXBvc2FibGVzL21vZGVsTWFuYWdlbWVudCdcclxuaW1wb3J0IHsgc2FuaXRpemVNb2RlbE5hbWUgfSBmcm9tICd+fi9saWIvcHJvamVjdHMvaGVscGVycy9tb2RlbHMnXHJcblxyXG50eXBlIEZvcm1WYWx1ZXMgPSB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG59XHJcblxyXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHM8e1xyXG4gIChlOiAndXBkYXRlOm9wZW4nLCB2YWw6IGJvb2xlYW4pOiB2b2lkXHJcbiAgKGU6ICdzdWJtaXQnLCB2YWw6IHsgbW9kZWw6IFByb2plY3RQYWdlTGF0ZXN0SXRlbXNNb2RlbEl0ZW1GcmFnbWVudCB9KTogdm9pZFxyXG59PigpXHJcblxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPHtcclxuICBvcGVuOiBib29sZWFuXHJcbiAgcHJvamVjdElkOiBzdHJpbmdcclxuICAvKipcclxuICAgKiBJZiBjcmVhdGluZyBhIG5lc3RlZCBtb2RlbCwgc3BlY2lmeSB0aGUgcHJlZml4IG9mIHRoZSBwYXJlbnQgbW9kZWwgaGVyZSBhcyBpdCB3aWxsIGJlIHByZWZpeGVkXHJcbiAgICogdG8gd2hhdGV2ZXIgdGhlIHVzZXIgZW50ZXJzLlxyXG4gICAqIEUuZy4gaWYgY3JlYXRpbmcgYSBtb2RlbCB1bmRlciBcImEvYlwiLCB0aGVuIHB1dCBcImEvYlwiIGhlcmVcclxuICAgKi9cclxuICBwYXJlbnRNb2RlbE5hbWU/OiBzdHJpbmdcclxuICAvKipcclxuICAgKiBQcmVmaWxsIHRoZSBtb2RlbCBuYW1lIGlucHV0LiBUYWtlcyBwcmVjZWRlbmNlIG92ZXIgYHBhcmVudE1vZGVsTmFtZWAuXHJcbiAgICovXHJcbiAgbW9kZWxOYW1lPzogc3RyaW5nXHJcbn0+KClcclxuXHJcbmNvbnN0IHsgaGFuZGxlU3VibWl0IH0gPSB1c2VGb3JtPEZvcm1WYWx1ZXM+KClcclxuY29uc3QgYW55TXV0YXRpb25zTG9hZGluZyA9IHVzZU11dGF0aW9uTG9hZGluZygpXHJcbmNvbnN0IHJ1bGVzID0gdXNlTW9kZWxOYW1lVmFsaWRhdGlvblJ1bGVzKClcclxuY29uc3QgY3JlYXRlTW9kZWwgPSB1c2VDcmVhdGVOZXdNb2RlbCgpXHJcbmNvbnN0IG1wID0gdXNlTWl4cGFuZWwoKVxyXG5cclxuY29uc3QgbmV3TW9kZWxOYW1lID0gcmVmKCcnKVxyXG5jb25zdCBuZXdEZXNjcmlwdGlvbiA9IHJlZignJylcclxuXHJcbmNvbnN0IG9wZW5TdGF0ZSA9IGNvbXB1dGVkKHtcclxuICBnZXQ6ICgpID0+IHByb3BzLm9wZW4sXHJcbiAgc2V0OiAobmV3VmFsKSA9PiBlbWl0KCd1cGRhdGU6b3BlbicsIG5ld1ZhbClcclxufSlcclxuXHJcbmNvbnN0IG9uU3VibWl0ID0gaGFuZGxlU3VibWl0KGFzeW5jICh7IG5hbWUsIGRlc2NyaXB0aW9uIH0pID0+IHtcclxuICBjb25zdCByZXMgPSBhd2FpdCBjcmVhdGVNb2RlbCh7XHJcbiAgICBuYW1lOiBzYW5pdGl6ZU1vZGVsTmFtZShuYW1lKSxcclxuICAgIGRlc2NyaXB0aW9uLFxyXG4gICAgcHJvamVjdElkOiBwcm9wcy5wcm9qZWN0SWRcclxuICB9KVxyXG5cclxuICBpZiAoIXJlcz8uaWQpIHJldHVyblxyXG4gIGVtaXQoJ3N1Ym1pdCcsIHsgbW9kZWw6IHJlcyB9KVxyXG5cclxuICBtcC50cmFjaygnQnJhbmNoIEFjdGlvbicsIHsgdHlwZTogJ2FjdGlvbicsIG5hbWU6ICdjcmVhdGUnLCBtb2RlOiAnZGlhbG9nJyB9KVxyXG4gIG9wZW5TdGF0ZS52YWx1ZSA9IGZhbHNlXHJcbn0pXHJcblxyXG53YXRjaChcclxuICAoKSA9PiBwcm9wcy5vcGVuLFxyXG4gIChpc09wZW4sIG9sZElzT3BlbikgPT4ge1xyXG4gICAgaWYgKGlzT3BlbiAmJiBpc09wZW4gIT09IG9sZElzT3Blbikge1xyXG4gICAgICBpZiAocHJvcHMubW9kZWxOYW1lKSB7XHJcbiAgICAgICAgbmV3TW9kZWxOYW1lLnZhbHVlID0gcHJvcHMubW9kZWxOYW1lXHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMucGFyZW50TW9kZWxOYW1lKSB7XHJcbiAgICAgICAgbmV3TW9kZWxOYW1lLnZhbHVlID0gYCR7cHJvcHMucGFyZW50TW9kZWxOYW1lfS9gXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3TW9kZWxOYW1lLnZhbHVlID0gJydcclxuICAgICAgfVxyXG4gICAgICBuZXdEZXNjcmlwdGlvbi52YWx1ZSA9ICcnXHJcbiAgICB9XHJcbiAgfVxyXG4pXHJcblxyXG5jb25zdCBkaWFsb2dCdXR0b25zID0gY29tcHV0ZWQoKCk6IExheW91dERpYWxvZ0J1dHRvbltdID0+IFtcclxuICB7XHJcbiAgICB0ZXh0OiAnQ2FuY2VsJyxcclxuICAgIHByb3BzOiB7IGNvbG9yOiAnb3V0bGluZScgfSxcclxuICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgb3BlblN0YXRlLnZhbHVlID0gZmFsc2VcclxuICAgIH1cclxuICB9LFxyXG4gIHtcclxuICAgIHRleHQ6ICdDcmVhdGUnLFxyXG4gICAgcHJvcHM6IHt9LFxyXG4gICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICBvblN1Ym1pdCgpXHJcbiAgICB9LFxyXG4gICAgZGlzYWJsZWQ6IGFueU11dGF0aW9uc0xvYWRpbmcudmFsdWVcclxuICB9XHJcbl0pXHJcbjwvc2NyaXB0PlxyXG4iXSwiZmlsZSI6IkQ6L3NwZWNrbGUtc2VydmVyL3BhY2thZ2VzL2Zyb250ZW5kLTIvY29tcG9uZW50cy9wcm9qZWN0L3BhZ2UvbW9kZWxzL05ld0RpYWxvZy52dWUifQ==