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

272 lines
24 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/workspace/discoverableWorkspaces/Card.vue");import { UserAvatarGroup as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
import { FormButton 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/workspace/Card.vue";
/* Injection by vite-plugin-vue-inspector Start */
import { createElementBlock as __createElementBlock,createBlock as __createBlock,createElementVNode as __createElementVNode,createVNode as __createVNode } 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 _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
function _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
function _createVNode(...args) { return _interopVNode(__createVNode(...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 { useDiscoverableWorkspaces } from "/_nuxt/lib/workspaces/composables/discoverableWorkspaces.ts";
import { useMixpanel } from "/_nuxt/lib/core/composables/mp.ts";
import { CheckIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_20_solid.js?v=e4f18c29";
import { WorkspaceJoinRequestStatus } from "/_nuxt/lib/common/generated/gql/graphql.ts";
import { computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "WorkspaceDiscoverableWorkspacesCard",
props: {
workspace: { type: Object, required: true },
showDismissButton: { type: Boolean, required: false },
location: { type: String, required: false },
requestStatus: { type: [String, null], required: true }
},
emits: ["auto-joined", "request", "dismissed"],
setup(__props, { expose: __expose, emit: __emit }) {
__expose();
const props = __props;
const emit = __emit;
const { requestToJoinWorkspace, dismissDiscoverableWorkspace } = useDiscoverableWorkspaces();
const mixpanel = useMixpanel();
const adminTeam = computed(() => props.workspace.adminTeam?.map((t) => t.user) ?? []);
const adminIds = computed(() => new Set(adminTeam.value.map((admin) => admin.id)));
const allMembers = computed(() => props.workspace.team?.items?.map((u) => u.user) ?? []);
const members = computed(() => {
const totalUniqueUsers = (/* @__PURE__ */ new Set([
...adminTeam.value.map((admin) => admin.id),
...allMembers.value.map((member) => member.id)
])).size;
if (totalUniqueUsers === 1) {
return allMembers.value.filter((user) => !adminIds.value.has(user.id));
} else {
return allMembers.value;
}
});
const isActioned = computed(() => {
return props.requestStatus === WorkspaceJoinRequestStatus.Approved || props.requestStatus === WorkspaceJoinRequestStatus.Pending;
});
const onRequest = () => {
requestToJoinWorkspace(props.workspace, props.location || "discovery_card");
if (props.workspace.discoverabilityAutoJoinEnabled) {
emit("auto-joined");
} else {
emit("request");
}
};
const onDismiss = async () => {
await dismissDiscoverableWorkspace(props.workspace.id);
emit("dismissed", props.workspace.id);
mixpanel.track("Workspace Discovery Banner Dismissed", {
workspaceId: props.workspace.id,
location: "discovery_card",
// eslint-disable-next-line camelcase
workspace_id: props.workspace.id
});
};
const __returned__ = { props, emit, requestToJoinWorkspace, dismissDiscoverableWorkspace, mixpanel, adminTeam, adminIds, allMembers, members, isActioned, onRequest, onDismiss, get CheckIcon() {
return CheckIcon;
}, get WorkspaceJoinRequestStatus() {
return WorkspaceJoinRequestStatus;
} };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { toDisplayString as _toDisplayString, openBlock as _openBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, withCtx as _withCtx, normalizeClass as _normalizeClass } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _hoisted_1 = {
class: "flex flex-col gap-y-1",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:14:7"
};
const _hoisted_2 = {
key: 0,
class: "text-body-2xs line-clamp-3",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:15:9"
};
const _hoisted_3 = {
class: "flex flex-col gap-1",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:18:9"
};
const _hoisted_4 = {
class: "text-body-3xs text-foreground-2",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:25:11"
};
const _hoisted_5 = {
class: "font-medium",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:26:13"
};
const _hoisted_6 = {
key: 0,
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:33:13"
};
const _hoisted_7 = {
key: 2,
class: "flex flex-col gap-2 sm:items-end",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:56:7"
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_UserAvatarGroup = __nuxt_component_0;
const _component_FormButton = __nuxt_component_1;
const _component_WorkspaceCard = __nuxt_component_2;
return _openBlock(), _createBlock(_component_WorkspaceCard, {
logo: $props.workspace.logo ?? "",
name: $props.workspace.name,
class: _normalizeClass($setup.isActioned ? "" : "bg-foundation"),
"banner-text": $props.workspace.discoverabilityAutoJoinEnabled && $props.requestStatus !== $setup.WorkspaceJoinRequestStatus.Approved ? "You can join this workspace automatically. No admin approval needed." : null,
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:2:3"
}, {
text: _withCtx(() => [
_createElementVNode("div", _hoisted_1, [
$props.workspace.description ? (_openBlock(), _createElementBlock(
"div",
_hoisted_2,
_toDisplayString($props.workspace.description),
1
/* TEXT */
)) : _createCommentVNode("v-if", true),
_createElementVNode("div", _hoisted_3, [
$setup.members.length > 0 ? (_openBlock(), _createBlock(_component_UserAvatarGroup, {
key: 0,
users: $setup.members,
"max-count": 5,
size: "base",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:19:11"
}, null, 8, ["users"])) : _createCommentVNode("v-if", true),
_createElementVNode("div", _hoisted_4, [
_createElementVNode(
"span",
_hoisted_5,
_toDisplayString($setup.adminTeam.length === 1 ? "Admin" : "Admins") + ":  ",
1
/* TEXT */
),
(_openBlock(true), _createElementBlock(
_Fragment,
null,
_renderList($setup.adminTeam.slice(0, 3), (admin, index) => {
return _openBlock(), _createElementBlock(
"span",
{
key: admin.id,
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:29:13"
},
_toDisplayString(admin.name) + _toDisplayString(index < 2 && index < $setup.adminTeam.length - 1 ? ", " : ""),
1
/* TEXT */
);
}),
128
/* KEYED_FRAGMENT */
)),
$setup.adminTeam.length > 3 ? (_openBlock(), _createElementBlock(
"span",
_hoisted_6,
"+" + _toDisplayString($setup.adminTeam.length - 3),
1
/* TEXT */
)) : _createCommentVNode("v-if", true)
])
])
])
]),
actions: _withCtx(() => [
$props.requestStatus === $setup.WorkspaceJoinRequestStatus.Pending ? (_openBlock(), _createBlock(_component_FormButton, {
key: 0,
color: "outline",
size: "sm",
disabled: "",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:39:7"
}, {
default: _withCtx(() => [..._cache[0] || (_cache[0] = [
_createTextVNode(
" Join request sent ",
-1
/* CACHED */
)
])]),
_: 1
/* STABLE */
})) : $props.requestStatus === $setup.WorkspaceJoinRequestStatus.Approved ? (_openBlock(), _createBlock(_component_FormButton, {
key: 1,
color: "outline",
size: "sm",
"icon-left": $setup.CheckIcon,
disabled: "",
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:47:7"
}, {
default: _withCtx(() => [..._cache[1] || (_cache[1] = [
_createTextVNode(
" Workspace joined ",
-1
/* CACHED */
)
])]),
_: 1
/* STABLE */
}, 8, ["icon-left"])) : (_openBlock(), _createElementBlock("div", _hoisted_7, [
_createVNode(_component_FormButton, {
color: "outline",
size: "sm",
onClick: $setup.onRequest,
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:57:9"
}, {
default: _withCtx(() => [
_createTextVNode(
_toDisplayString($props.workspace.discoverabilityAutoJoinEnabled ? "Join workspace" : "Request to join"),
1
/* TEXT */
)
]),
_: 1
/* STABLE */
}),
$props.showDismissButton ? (_openBlock(), _createBlock(_component_FormButton, {
key: 0,
color: "subtle",
size: "sm",
onClick: $setup.onDismiss,
"data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:64:9"
}, {
default: _withCtx(() => [..._cache[2] || (_cache[2] = [
_createTextVNode(
" Dismiss ",
-1
/* CACHED */
)
])]),
_: 1
/* STABLE */
})) : _createCommentVNode("v-if", true)
]))
]),
_: 1
/* STABLE */
}, 8, ["logo", "name", "class", "banner-text"]);
}
_sfc_main.__hmrId = "b3b1f722";
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/Card.vue"]]);
//# sourceMappingURL=data:application/json;base64,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VUFBTSxTQUFPO0FBQUEsVUFBVyxvQkFBaUI7QUFBQTs0QkFDeEUsTUFJRTtBQUFBOytCQUhBLGlCQUFVOzs7Ozs7OztRQU1OLDBDQURSLGFBT2E7QUFBQTtVQUxYLE9BQU07QUFBQSxVQUNOLE1BQUs7QUFBQSxVQUNKLFNBQU87QUFBQSxVQUFXLG9CQUFpQjtBQUFBOzRCQUNyQyxNQUVEO0FBQUE7Y0FGQztBQUFBLGNBRUQ7QUFBQTtBQUFBO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIkNhcmQudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8V29ya3NwYWNlQ2FyZFxyXG4gICAgOmxvZ289XCJ3b3Jrc3BhY2UubG9nbyA/PyAnJ1wiXHJcbiAgICA6bmFtZT1cIndvcmtzcGFjZS5uYW1lXCJcclxuICAgIDpjbGFzcz1cImlzQWN0aW9uZWQgPyAnJyA6ICdiZy1mb3VuZGF0aW9uJ1wiXHJcbiAgICA6YmFubmVyLXRleHQ9XCJcclxuICAgICAgd29ya3NwYWNlLmRpc2NvdmVyYWJpbGl0eUF1dG9Kb2luRW5hYmxlZCAmJlxyXG4gICAgICByZXF1ZXN0U3RhdHVzICE9PSBXb3Jrc3BhY2VKb2luUmVxdWVzdFN0YXR1cy5BcHByb3ZlZFxyXG4gICAgICAgID8gJ1lvdSBjYW4gam9pbiB0aGlzIHdvcmtzcGFjZSBhdXRvbWF0aWNhbGx5LiBObyBhZG1pbiBhcHByb3ZhbCBuZWVkZWQuJ1xyXG4gICAgICAgIDogbnVsbFxyXG4gICAgXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MjozXCJcclxuICA+XHJcbiAgICA8dGVtcGxhdGUgI3RleHQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC15LTFcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToxNDo3XCI+XHJcbiAgICAgICAgPGRpdiB2LWlmPVwid29ya3NwYWNlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LWJvZHktMnhzIGxpbmUtY2xhbXAtM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjE1OjlcIj5cclxuICAgICAgICAgIHt7IHdvcmtzcGFjZS5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MTg6OVwiPlxyXG4gICAgICAgICAgPFVzZXJBdmF0YXJHcm91cFxyXG4gICAgICAgICAgICB2LWlmPVwibWVtYmVycy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgOnVzZXJzPVwibWVtYmVyc1wiXHJcbiAgICAgICAgICAgIDptYXgtY291bnQ9XCI1XCJcclxuICAgICAgICAgICAgc2l6ZT1cImJhc2VcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToxOToxMVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYm9keS0zeHMgdGV4dC1mb3JlZ3JvdW5kLTJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToyNToxMVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MjY6MTNcIj5cclxuICAgICAgICAgICAgICB7eyBhZG1pblRlYW0ubGVuZ3RoID09PSAxID8gJ0FkbWluJyA6ICdBZG1pbnMnIH19OiZuYnNwO1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIHYtZm9yPVwiKGFkbWluLCBpbmRleCkgaW4gYWRtaW5UZWFtLnNsaWNlKDAsIDMpXCIgOmtleT1cImFkbWluLmlkXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6Mjk6MTNcIj5cclxuICAgICAgICAgICAgICB7eyBhZG1pbi5uYW1lXHJcbiAgICAgICAgICAgICAgfX17eyBpbmRleCA8IDIgJiYgaW5kZXggPCBhZG1pblRlYW0ubGVuZ3RoIC0gMSA/ICcsICcgOiAnJyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJhZG1pblRlYW0ubGVuZ3RoID4gM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjMzOjEzXCI+K3t7IGFkbWluVGVhbS5sZW5ndGggLSAzIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZW1wbGF0ZT5cclxuICAgIDx0ZW1wbGF0ZSAjYWN0aW9ucz5cclxuICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICB2LWlmPVwicmVxdWVzdFN0YXR1cyA9PT0gV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMuUGVuZGluZ1wiXHJcbiAgICAgICAgY29sb3I9XCJvdXRsaW5lXCJcclxuICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgIGRpc2FibGVkIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjM5OjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgSm9pbiByZXF1ZXN0IHNlbnRcclxuICAgICAgPC9Gb3JtQnV0dG9uPlxyXG4gICAgICA8Rm9ybUJ1dHRvblxyXG4gICAgICAgIHYtZWxzZS1pZj1cInJlcXVlc3RTdGF0dXMgPT09IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzLkFwcHJvdmVkXCJcclxuICAgICAgICBjb2xvcj1cIm91dGxpbmVcIlxyXG4gICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgOmljb24tbGVmdD1cIkNoZWNrSWNvblwiXHJcbiAgICAgICAgZGlzYWJsZWQgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6NDc6N1wiXHJcbiAgICAgID5cclxuICAgICAgICBXb3Jrc3BhY2Ugam9pbmVkXHJcbiAgICAgIDwvRm9ybUJ1dHRvbj5cclxuICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHNtOml0ZW1zLWVuZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjU2OjdcIj5cclxuICAgICAgICA8Rm9ybUJ1dHRvbiBjb2xvcj1cIm91dGxpbmVcIiBzaXplPVwic21cIiBAY2xpY2s9XCJvblJlcXVlc3RcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZTo1Nzo5XCI+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICB3b3Jrc3BhY2UuZGlzY292ZXJhYmlsaXR5QXV0b0pvaW5FbmFibGVkXHJcbiAgICAgICAgICAgICAgPyAnSm9pbiB3b3Jrc3BhY2UnXHJcbiAgICAgICAgICAgICAgOiAnUmVxdWVzdCB0byBqb2luJ1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L0Zvcm1CdXR0b24+XHJcbiAgICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICAgIHYtaWY9XCJzaG93RGlzbWlzc0J1dHRvblwiXHJcbiAgICAgICAgICBjb2xvcj1cInN1YnRsZVwiXHJcbiAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgQGNsaWNrPVwib25EaXNtaXNzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6NjQ6OVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgRGlzbWlzc1xyXG4gICAgICAgIDwvRm9ybUJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gIDwvV29ya3NwYWNlQ2FyZD5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB0eXBlIHsgRGlzY292ZXJhYmxlV29ya3NwYWNlX0xpbWl0ZWRXb3Jrc3BhY2VGcmFnbWVudCB9IGZyb20gJ35+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5pbXBvcnQgeyB1c2VEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzIH0gZnJvbSAnfi9saWIvd29ya3NwYWNlcy9jb21wb3NhYmxlcy9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzJ1xyXG5pbXBvcnQgeyB1c2VNaXhwYW5lbCB9IGZyb20gJ35+L2xpYi9jb3JlL2NvbXBvc2FibGVzL21wJ1xyXG5pbXBvcnQgeyBDaGVja0ljb24gfSBmcm9tICdAaGVyb2ljb25zL3Z1ZS8yMC9zb2xpZCdcclxuaW1wb3J0IHsgV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMgfSBmcm9tICd+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wczx7XHJcbiAgd29ya3NwYWNlOiBEaXNjb3ZlcmFibGVXb3Jrc3BhY2VfTGltaXRlZFdvcmtzcGFjZUZyYWdtZW50XHJcbiAgc2hvd0Rpc21pc3NCdXR0b24/OiBib29sZWFuXHJcbiAgbG9jYXRpb24/OiBzdHJpbmdcclxuICByZXF1ZXN0U3RhdHVzOiBzdHJpbmcgfCBudWxsXHJcbn0+KClcclxuXHJcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XHJcbiAgKGU6ICdhdXRvLWpvaW5lZCcpOiB2b2lkXHJcbiAgKGU6ICdyZXF1ZXN0Jyk6IHZvaWRcclxuICAoZTogJ2Rpc21pc3NlZCcsIHdvcmtzcGFjZUlkOiBzdHJpbmcpOiB2b2lkXHJcbn0+KClcclxuXHJcbmNvbnN0IHsgcmVxdWVzdFRvSm9pbldvcmtzcGFjZSwgZGlzbWlzc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZSB9ID1cclxuICB1c2VEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzKClcclxuY29uc3QgbWl4cGFuZWwgPSB1c2VNaXhwYW5lbCgpXHJcblxyXG5jb25zdCBhZG1pblRlYW0gPSBjb21wdXRlZCgoKSA9PiBwcm9wcy53b3Jrc3BhY2UuYWRtaW5UZWFtPy5tYXAoKHQpID0+IHQudXNlcikgPz8gW10pXHJcbmNvbnN0IGFkbWluSWRzID0gY29tcHV0ZWQoKCkgPT4gbmV3IFNldChhZG1pblRlYW0udmFsdWUubWFwKChhZG1pbikgPT4gYWRtaW4uaWQpKSlcclxuY29uc3QgYWxsTWVtYmVycyA9IGNvbXB1dGVkKCgpID0+IHByb3BzLndvcmtzcGFjZS50ZWFtPy5pdGVtcz8ubWFwKCh1KSA9PiB1LnVzZXIpID8/IFtdKVxyXG5jb25zdCBtZW1iZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIC8vIE9ubHkgZGVkdXBsaWNhdGUgaWYgdGhlcmUncyBleGFjdGx5IG9uZSBwZXJzb24gdG90YWwgKGFkbWluIHdobyBpcyBhbHNvIHRoZSBvbmx5IG1lbWJlcilcclxuICBjb25zdCB0b3RhbFVuaXF1ZVVzZXJzID0gbmV3IFNldChbXHJcbiAgICAuLi5hZG1pblRlYW0udmFsdWUubWFwKChhZG1pbikgPT4gYWRtaW4uaWQpLFxyXG4gICAgLi4uYWxsTWVtYmVycy52YWx1ZS5tYXAoKG1lbWJlcikgPT4gbWVtYmVyLmlkKVxyXG4gIF0pLnNpemVcclxuXHJcbiAgaWYgKHRvdGFsVW5pcXVlVXNlcnMgPT09IDEpIHtcclxuICAgIC8vIFNpbmdsZSB1c2VyIGNhc2U6IGZpbHRlciBvdXQgYWRtaW5zIGZyb20gbWVtYmVycyB0byBhdm9pZCBkdXBsaWNhdGlvblxyXG4gICAgcmV0dXJuIGFsbE1lbWJlcnMudmFsdWUuZmlsdGVyKCh1c2VyKSA9PiAhYWRtaW5JZHMudmFsdWUuaGFzKHVzZXIuaWQpKVxyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBNdWx0aXBsZSB1c2Vyczogc2hvdyBhbGwgbWVtYmVycyBpbmNsdWRpbmcgdGhvc2Ugd2hvIGFyZSBhbHNvIGFkbWluc1xyXG4gICAgcmV0dXJuIGFsbE1lbWJlcnMudmFsdWVcclxuICB9XHJcbn0pXHJcblxyXG5jb25zdCBpc0FjdGlvbmVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBwcm9wcy5yZXF1ZXN0U3RhdHVzID09PSBXb3Jrc3BhY2VKb2luUmVxdWVzdFN0YXR1cy5BcHByb3ZlZCB8fFxyXG4gICAgcHJvcHMucmVxdWVzdFN0YXR1cyA9PT0gV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMuUGVuZGluZ1xyXG4gIClcclxufSlcclxuXHJcbmNvbnN0IG9uUmVxdWVzdCA9ICgpID0+IHtcclxuICByZXF1ZXN0VG9Kb2luV29ya3NwYWNlKHByb3BzLndvcmtzcGFjZSwgcHJvcHMubG9jYXRpb24gfHwgJ2Rpc2NvdmVyeV9jYXJkJylcclxuICBpZiAocHJvcHMud29ya3NwYWNlLmRpc2NvdmVyYWJpbGl0eUF1dG9Kb2luRW5hYmxlZCkge1xyXG4gICAgZW1pdCgnYXV0by1qb2luZWQnKVxyXG4gIH0gZWxzZSB7XHJcbiAgICBlbWl0KCdyZXF1ZXN0JylcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IG9uRGlzbWlzcyA9IGFzeW5jICgpID0+IHtcclxuICBhd2FpdCBkaXNtaXNzRGlzY292ZXJhYmxlV29ya3NwYWNlKHByb3BzLndvcmtzcGFjZS5pZClcclxuICBlbWl0KCdkaXNtaXNzZWQnLCBwcm9wcy53b3Jrc3BhY2UuaWQpXHJcbiAgbWl4cGFuZWwudHJhY2soJ1dvcmtzcGFjZSBEaXNjb3ZlcnkgQmFubmVyIERpc21pc3NlZCcsIHtcclxuICAgIHdvcmtzcGFjZUlkOiBwcm9wcy53b3Jrc3BhY2UuaWQsXHJcbiAgICBsb2NhdGlvbjogJ2Rpc2NvdmVyeV9jYXJkJyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcclxuICAgIHdvcmtzcGFjZV9pZDogcHJvcHMud29ya3NwYWNlLmlkXHJcbiAgfSlcclxufVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWUifQ==