272 lines
24 KiB
Plaintext
272 lines
24 KiB
Plaintext
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== |