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

192 lines
17 KiB
Plaintext

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==