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

187 lines
17 KiB
Plaintext

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