import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/workspace/discoverableWorkspaces/Modal.vue");import { default as __nuxt_component_0 } from "/_nuxt/components/workspace/discoverableWorkspaces/Card.vue"; import { FormButton 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 { createElementVNode as __createElementVNode,createElementBlock as __createElementBlock,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 _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) } function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) } function _createBlock(...args) { return _interopVNode(__createBlock(...args)) } /* Injection by vite-plugin-vue-inspector End */ import { useModel as _useModel, defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; import { useDiscoverableWorkspaces } from "/_nuxt/lib/workspaces/composables/discoverableWorkspaces.ts"; import { WorkspaceJoinRequestStatus } from "/_nuxt/lib/common/generated/gql/graphql.ts"; import { ref, computed, watch } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "WorkspaceDiscoverableWorkspacesModal", props: { "open": { type: Boolean, ...{ required: true } }, "openModifiers": {} }, emits: ["update:open"], setup(__props, { expose: __expose }) { __expose(); const { discoverableWorkspacesAndJoinRequests, hasDiscoverableWorkspacesOrJoinRequests, discoverableWorkspacesAndJoinRequestsCount } = useDiscoverableWorkspaces(); const open = _useModel(__props, "open"); const showAllWorkspaces = ref(false); const actionedWorkspaces = ref([]); const remainingWorkspaces = computed(() => { const actionedIds = new Set(actionedWorkspaces.value.map((w) => w.id)); return (discoverableWorkspacesAndJoinRequests.value || []).filter( (workspace) => !actionedIds.has(workspace.id) ); }); const localWorkspaces = computed(() => [ ...actionedWorkspaces.value, ...remainingWorkspaces.value ]); const workspacesToShow = computed(() => { return showAllWorkspaces.value ? localWorkspaces.value : localWorkspaces.value.slice(0, 3); }); const dialogButtons = computed(() => { return [ { text: "Close", onClick: () => { open.value = false; } } ]; }); const moveToTop = (workspaceId, newStatus) => { const workspace = remainingWorkspaces.value.find((w) => w.id === workspaceId); if (workspace) { actionedWorkspaces.value.unshift({ ...workspace, requestStatus: newStatus }); } }; const onWorkspaceDismissed = (workspaceId) => { actionedWorkspaces.value = actionedWorkspaces.value.filter( (w) => w.id !== workspaceId ); }; watch(open, () => { showAllWorkspaces.value = false; if (!open.value) { actionedWorkspaces.value = []; } }); const __returned__ = { discoverableWorkspacesAndJoinRequests, hasDiscoverableWorkspacesOrJoinRequests, discoverableWorkspacesAndJoinRequestsCount, open, showAllWorkspaces, actionedWorkspaces, remainingWorkspaces, localWorkspaces, workspacesToShow, dialogButtons, moveToTop, onWorkspaceDismissed, get WorkspaceJoinRequestStatus() { return WorkspaceJoinRequestStatus; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createCommentVNode as _createCommentVNode } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = { class: "text-body-xs text-foreground-2 pb-3", "data-v-inspector": "components/workspace/discoverableWorkspaces/Modal.vue:4:5" }; const _hoisted_2 = { class: "flex flex-col gap-y-3", "data-v-inspector": "components/workspace/discoverableWorkspaces/Modal.vue:11:5" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_WorkspaceDiscoverableWorkspacesCard = __nuxt_component_0; const _component_FormButton = __nuxt_component_1; const _component_LayoutDialog = __nuxt_component_2; return _openBlock(), _createBlock(_component_LayoutDialog, { open: $setup.open, "onUpdate:open": _cache[2] || (_cache[2] = ($event) => $setup.open = $event), "max-width": "md", buttons: $setup.dialogButtons, "data-v-inspector": "components/workspace/discoverableWorkspaces/Modal.vue:2:3" }, { header: _withCtx(() => [..._cache[3] || (_cache[3] = [ _createTextVNode( "Join existing workspaces", -1 /* CACHED */ ) ])]), default: _withCtx(() => [ _createElementVNode( "p", _hoisted_1, _toDisplayString($setup.hasDiscoverableWorkspacesOrJoinRequests ? "Workspaces that match your email domain" : "You have no discoverable workspaces"), 1 /* TEXT */ ), _createElementVNode("div", _hoisted_2, [ (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.workspacesToShow, (workspace) => { return _openBlock(), _createBlock(_component_WorkspaceDiscoverableWorkspacesCard, { key: workspace.id, workspace, "request-status": workspace.requestStatus, "show-dismiss-button": "", location: "workspace_switcher", onAutoJoined: ($event) => $setup.moveToTop(workspace.id, $setup.WorkspaceJoinRequestStatus.Approved), onRequest: ($event) => $setup.moveToTop(workspace.id, $setup.WorkspaceJoinRequestStatus.Pending), onDismissed: $setup.onWorkspaceDismissed, onGoToWorkspace: _cache[0] || (_cache[0] = ($event) => $setup.open = false), "data-v-inspector": "components/workspace/discoverableWorkspaces/Modal.vue:12:7" }, null, 8, ["workspace", "request-status", "onAutoJoined", "onRequest"]); }), 128 /* KEYED_FRAGMENT */ )), !$setup.showAllWorkspaces && $setup.discoverableWorkspacesAndJoinRequestsCount > 3 ? (_openBlock(), _createBlock(_component_FormButton, { key: 0, color: "subtle", size: "lg", "full-width": "", onClick: _cache[1] || (_cache[1] = ($event) => $setup.showAllWorkspaces = true), "data-v-inspector": "components/workspace/discoverableWorkspaces/Modal.vue:24:7" }, { default: _withCtx(() => [ _createTextVNode( " Show all (" + _toDisplayString($setup.discoverableWorkspacesAndJoinRequestsCount) + ") ", 1 /* TEXT */ ) ]), _: 1 /* STABLE */ })) : _createCommentVNode("v-if", true) ]) ]), _: 1 /* STABLE */ }, 8, ["open", "buttons"]); } _sfc_main.__hmrId = "6d690bc2"; 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/workspace/discoverableWorkspaces/Modal.vue"]]); //# sourceMappingURL=data:application/json;base64,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Y0FBSTtBQUFBLGNBQVUsb0JBQWlCO0FBQUE7Ozs7O1NBRzFDLDRCQUFxQixvREFBMEMsbUJBRHhFLGFBUWE7QUFBQTtVQU5YLE9BQU07QUFBQSxVQUNOLE1BQUs7QUFBQSxVQUNMO0FBQUEsVUFDQyxTQUFLLHNDQUFFLDJCQUFpQjtBQUFBLFVBQVMsb0JBQWlCO0FBQUE7NEJBQ3BELE1BQ1c7QUFBQTtjQURYLGdCQUNXLGlCQUFHLGlEQUEwQyxJQUFHO0FBQUEsY0FDNUQ7QUFBQTtBQUFBO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIk1vZGFsLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPExheW91dERpYWxvZyB2LW1vZGVsOm9wZW49XCJvcGVuXCIgbWF4LXdpZHRoPVwibWRcIiA6YnV0dG9ucz1cImRpYWxvZ0J1dHRvbnNcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9Nb2RhbC52dWU6MjozXCI+XHJcbiAgICA8dGVtcGxhdGUgI2hlYWRlcj5Kb2luIGV4aXN0aW5nIHdvcmtzcGFjZXM8L3RlbXBsYXRlPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LWJvZHkteHMgdGV4dC1mb3JlZ3JvdW5kLTIgcGItM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL01vZGFsLnZ1ZTo0OjVcIj5cclxuICAgICAge3tcclxuICAgICAgICBoYXNEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzT3JKb2luUmVxdWVzdHNcclxuICAgICAgICAgID8gJ1dvcmtzcGFjZXMgdGhhdCBtYXRjaCB5b3VyIGVtYWlsIGRvbWFpbidcclxuICAgICAgICAgIDogJ1lvdSBoYXZlIG5vIGRpc2NvdmVyYWJsZSB3b3Jrc3BhY2VzJ1xyXG4gICAgICB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLXktM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL01vZGFsLnZ1ZToxMTo1XCI+XHJcbiAgICAgIDxXb3Jrc3BhY2VEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzQ2FyZFxyXG4gICAgICAgIHYtZm9yPVwid29ya3NwYWNlIGluIHdvcmtzcGFjZXNUb1Nob3dcIlxyXG4gICAgICAgIDprZXk9XCJ3b3Jrc3BhY2UuaWRcIlxyXG4gICAgICAgIDp3b3Jrc3BhY2U9XCJ3b3Jrc3BhY2VcIlxyXG4gICAgICAgIDpyZXF1ZXN0LXN0YXR1cz1cIndvcmtzcGFjZS5yZXF1ZXN0U3RhdHVzXCJcclxuICAgICAgICBzaG93LWRpc21pc3MtYnV0dG9uXHJcbiAgICAgICAgbG9jYXRpb249XCJ3b3Jrc3BhY2Vfc3dpdGNoZXJcIlxyXG4gICAgICAgIEBhdXRvLWpvaW5lZD1cIm1vdmVUb1RvcCh3b3Jrc3BhY2UuaWQsIFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzLkFwcHJvdmVkKVwiXHJcbiAgICAgICAgQHJlcXVlc3Q9XCJtb3ZlVG9Ub3Aod29ya3NwYWNlLmlkLCBXb3Jrc3BhY2VKb2luUmVxdWVzdFN0YXR1cy5QZW5kaW5nKVwiXHJcbiAgICAgICAgQGRpc21pc3NlZD1cIm9uV29ya3NwYWNlRGlzbWlzc2VkXCJcclxuICAgICAgICBAZ28tdG8td29ya3NwYWNlPVwib3BlbiA9IGZhbHNlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvTW9kYWwudnVlOjEyOjdcIlxyXG4gICAgICAvPlxyXG4gICAgICA8Rm9ybUJ1dHRvblxyXG4gICAgICAgIHYtaWY9XCIhc2hvd0FsbFdvcmtzcGFjZXMgJiYgZGlzY292ZXJhYmxlV29ya3NwYWNlc0FuZEpvaW5SZXF1ZXN0c0NvdW50ID4gM1wiXHJcbiAgICAgICAgY29sb3I9XCJzdWJ0bGVcIlxyXG4gICAgICAgIHNpemU9XCJsZ1wiXHJcbiAgICAgICAgZnVsbC13aWR0aFxyXG4gICAgICAgIEBjbGljaz1cInNob3dBbGxXb3Jrc3BhY2VzID0gdHJ1ZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL01vZGFsLnZ1ZToyNDo3XCJcclxuICAgICAgPlxyXG4gICAgICAgIFNob3cgYWxsICh7eyBkaXNjb3ZlcmFibGVXb3Jrc3BhY2VzQW5kSm9pblJlcXVlc3RzQ291bnQgfX0pXHJcbiAgICAgIDwvRm9ybUJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvTGF5b3V0RGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG48c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxyXG5pbXBvcnQgdHlwZSB7IExheW91dERpYWxvZ0J1dHRvbiB9IGZyb20gJ0BzcGVja2xlL3VpLWNvbXBvbmVudHMnXHJcbmltcG9ydCB7IHVzZURpc2NvdmVyYWJsZVdvcmtzcGFjZXMgfSBmcm9tICd+L2xpYi93b3Jrc3BhY2VzL2NvbXBvc2FibGVzL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMnXHJcbmltcG9ydCB7IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzIH0gZnJvbSAnfi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwvZ3JhcGhxbCdcclxuXHJcbmNvbnN0IHtcclxuICBkaXNjb3ZlcmFibGVXb3Jrc3BhY2VzQW5kSm9pblJlcXVlc3RzLFxyXG4gIGhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNPckpvaW5SZXF1ZXN0cyxcclxuICBkaXNjb3ZlcmFibGVXb3Jrc3BhY2VzQW5kSm9pblJlcXVlc3RzQ291bnRcclxufSA9IHVzZURpc2NvdmVyYWJsZVdvcmtzcGFjZXMoKVxyXG5cclxuY29uc3Qgb3BlbiA9IGRlZmluZU1vZGVsPGJvb2xlYW4+KCdvcGVuJywgeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG5jb25zdCBzaG93QWxsV29ya3NwYWNlcyA9IHJlZihmYWxzZSlcclxuXHJcbi8vIFdvcmtzcGFjZXMgdGhhdCBoYXZlIGJlZW4gaW50ZXJhY3RlZCB3aXRoIChtb3ZlZCB0byB0b3ApXHJcbmNvbnN0IGFjdGlvbmVkV29ya3NwYWNlcyA9IHJlZjx0eXBlb2YgZGlzY292ZXJhYmxlV29ya3NwYWNlc0FuZEpvaW5SZXF1ZXN0cy52YWx1ZT4oW10pXHJcblxyXG4vLyBSZW1haW5pbmcgd29ya3NwYWNlcyAoZXhjbHVkZXMgb25lcyBtb3ZlZCB0byB0b3Agb3IgZGlzbWlzc2VkKVxyXG5jb25zdCByZW1haW5pbmdXb3Jrc3BhY2VzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIGNvbnN0IGFjdGlvbmVkSWRzID0gbmV3IFNldChhY3Rpb25lZFdvcmtzcGFjZXMudmFsdWUubWFwKCh3KSA9PiB3LmlkKSlcclxuICByZXR1cm4gKGRpc2NvdmVyYWJsZVdvcmtzcGFjZXNBbmRKb2luUmVxdWVzdHMudmFsdWUgfHwgW10pLmZpbHRlcihcclxuICAgICh3b3Jrc3BhY2UpID0+ICFhY3Rpb25lZElkcy5oYXMod29ya3NwYWNlLmlkKVxyXG4gIClcclxufSlcclxuXHJcbi8vIENvbWJpbmVkIGxpc3Q6IHRvcCB3b3Jrc3BhY2VzIGZpcnN0LCB0aGVuIHJlbWFpbmluZ1xyXG5jb25zdCBsb2NhbFdvcmtzcGFjZXMgPSBjb21wdXRlZCgoKSA9PiBbXHJcbiAgLi4uYWN0aW9uZWRXb3Jrc3BhY2VzLnZhbHVlLFxyXG4gIC4uLnJlbWFpbmluZ1dvcmtzcGFjZXMudmFsdWVcclxuXSlcclxuXHJcbmNvbnN0IHdvcmtzcGFjZXNUb1Nob3cgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgcmV0dXJuIHNob3dBbGxXb3Jrc3BhY2VzLnZhbHVlXHJcbiAgICA/IGxvY2FsV29ya3NwYWNlcy52YWx1ZVxyXG4gICAgOiBsb2NhbFdvcmtzcGFjZXMudmFsdWUuc2xpY2UoMCwgMylcclxufSlcclxuXHJcbmNvbnN0IGRpYWxvZ0J1dHRvbnMgPSBjb21wdXRlZCgoKTogTGF5b3V0RGlhbG9nQnV0dG9uW10gPT4ge1xyXG4gIHJldHVybiBbXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6ICdDbG9zZScsXHJcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICBvcGVuLnZhbHVlID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuXHJcbmNvbnN0IG1vdmVUb1RvcCA9ICh3b3Jrc3BhY2VJZDogc3RyaW5nLCBuZXdTdGF0dXM6IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzKSA9PiB7XHJcbiAgY29uc3Qgd29ya3NwYWNlID0gcmVtYWluaW5nV29ya3NwYWNlcy52YWx1ZS5maW5kKCh3KSA9PiB3LmlkID09PSB3b3Jrc3BhY2VJZClcclxuICBpZiAod29ya3NwYWNlKSB7XHJcbiAgICBhY3Rpb25lZFdvcmtzcGFjZXMudmFsdWUudW5zaGlmdCh7XHJcbiAgICAgIC4uLndvcmtzcGFjZSxcclxuICAgICAgcmVxdWVzdFN0YXR1czogbmV3U3RhdHVzXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG5cclxuY29uc3Qgb25Xb3Jrc3BhY2VEaXNtaXNzZWQgPSAod29ya3NwYWNlSWQ6IHN0cmluZykgPT4ge1xyXG4gIGFjdGlvbmVkV29ya3NwYWNlcy52YWx1ZSA9IGFjdGlvbmVkV29ya3NwYWNlcy52YWx1ZS5maWx0ZXIoXHJcbiAgICAodykgPT4gdy5pZCAhPT0gd29ya3NwYWNlSWRcclxuICApXHJcbn1cclxuXHJcbndhdGNoKG9wZW4sICgpID0+IHtcclxuICBzaG93QWxsV29ya3NwYWNlcy52YWx1ZSA9IGZhbHNlXHJcbiAgaWYgKCFvcGVuLnZhbHVlKSB7XHJcbiAgICBhY3Rpb25lZFdvcmtzcGFjZXMudmFsdWUgPSBbXVxyXG4gIH1cclxufSlcclxuPC9zY3JpcHQ+XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9jb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL01vZGFsLnZ1ZSJ9