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

295 lines
21 KiB
Plaintext

import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/form/select/Projects.vue");import { FormSelectBase as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
/* Injection by vite-plugin-vue-inspector Start */
import { createElementBlock as __createElementBlock,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 _createElementBlock(...args) { return _interopVNode(__createElementBlock(...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 { Roles } from "/_nuxt/@fs/D:/speckle-server/packages/shared/dist/esm/index.js";
import { graphql } from "/_nuxt/lib/common/generated/gql/index.ts";
import { useFormSelectChildInternals } from "/_nuxt/lib/form/composables/select.ts";
import { useApolloClient } from "/_nuxt/node_modules/@vue/apollo-composable/dist/index.mjs?v=e4f18c29";
import { searchProjectsQuery } from "/_nuxt/lib/form/graphql/queries.ts";
import { useActiveUser } from "/_nuxt/lib/auth/composables/activeUser.ts";
import { ref, useId, toRefs, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "FormSelectProjects",
props: {
/**
* Whether to allow selecting multiple items
*/
multiple: {
type: Boolean,
default: false
},
modelValue: {
type: [Object, Array],
default: void 0
},
/**
* Search placeholder text
*/
searchPlaceholder: {
type: String,
default: "Search projects"
},
selectorPlaceholder: {
type: String,
default: ""
},
/**
* Label is required at the very least for screen-readers
*/
label: {
type: String,
required: true
},
/**
* Whether to show the label visually
*/
showLabel: {
type: Boolean,
default: false
},
/**
* Whether to show the optional text
*/
showOptional: {
type: Boolean,
default: false
},
name: {
type: String,
default: void 0
},
/**
* Whether to only return owned projects from server
*/
ownedOnly: {
type: Boolean,
default: false
},
/**
* Whether to only return projects within a specific workspace
*/
workspaceId: {
type: String
},
tooltipText: {
type: String
}
},
emits: ["update:modelValue"],
setup(__props, { expose: __expose, emit: __emit }) {
__expose();
graphql(`
fragment FormSelectProjects_Project on Project {
id
name
}
`);
const emit = __emit;
const props = __props;
const elementToWatchForChanges = ref(null);
const itemContainer = ref(null);
const labelId = useId();
const buttonId = useId();
const { selectedValue, hiddenSelectedItemCount, isArrayValue, isMultiItemArrayValue } = useFormSelectChildInternals({
props: toRefs(props),
emit,
dynamicVisibility: { elementToWatchForChanges, itemContainer }
});
const apollo = useApolloClient().client;
const { isLoggedIn } = useActiveUser();
const invokeSearch = async (search) => {
if (!isLoggedIn.value) return [];
const results = await apollo.query({
query: searchProjectsQuery,
variables: computed(() => ({
search: search.trim().length ? search : null,
onlyWithRoles: props.ownedOnly ? [Roles.Stream.Owner] : null,
...props.workspaceId && { workspaceId: props.workspaceId }
})).value
});
return results.data.activeUser?.projects.items || [];
};
const __returned__ = { emit, props, elementToWatchForChanges, itemContainer, labelId, buttonId, selectedValue, hiddenSelectedItemCount, isArrayValue, isMultiItemArrayValue, apollo, isLoggedIn, invokeSearch };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, resolveComponent as _resolveComponent, withCtx as _withCtx, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _hoisted_1 = {
key: 0,
ref: "elementToWatchForChanges",
class: "flex items-center space-x-0.5",
"data-v-inspector": "components/form/select/Projects.vue:27:9"
};
const _hoisted_2 = {
ref: "itemContainer",
class: "flex flex-wrap overflow-hidden space-x-0.5 h-6",
"data-v-inspector": "components/form/select/Projects.vue:28:11"
};
const _hoisted_3 = {
key: 0,
class: "text-foreground-2 normal",
"data-v-inspector": "components/form/select/Projects.vue:36:11"
};
const _hoisted_4 = {
key: 1,
class: "flex items-center",
"data-v-inspector": "components/form/select/Projects.vue:42:9"
};
const _hoisted_5 = {
class: "truncate text-foreground",
"data-v-inspector": "components/form/select/Projects.vue:43:11"
};
const _hoisted_6 = {
class: "flex items-center",
"data-v-inspector": "components/form/select/Projects.vue:50:7"
};
const _hoisted_7 = {
class: "truncate",
"data-v-inspector": "components/form/select/Projects.vue:51:9"
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormSelectBase = __nuxt_component_0;
return _openBlock(), _createBlock(_component_FormSelectBase, {
modelValue: $setup.selectedValue,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectedValue = $event),
multiple: $props.multiple,
search: true,
"search-placeholder": $props.searchPlaceholder,
"get-search-results": $setup.invokeSearch,
"show-optional": $props.showOptional,
label: $props.label,
"show-label": $props.showLabel,
name: $props.name || "projects",
"label-id": $setup.labelId,
"button-id": $setup.buttonId,
"tooltip-text": $props.tooltipText,
by: "id",
"data-v-inspector": "components/form/select/Projects.vue:2:3"
}, {
"nothing-selected": _withCtx(() => [
$props.selectorPlaceholder ? (_openBlock(), _createElementBlock(
_Fragment,
{ key: 0 },
[
_createTextVNode(
_toDisplayString($props.selectorPlaceholder),
1
/* TEXT */
)
],
64
/* STABLE_FRAGMENT */
)) : (_openBlock(), _createElementBlock(
_Fragment,
{ key: 1 },
[
_createTextVNode(
_toDisplayString($props.multiple ? "Select projects" : "Select a project"),
1
/* TEXT */
)
],
64
/* STABLE_FRAGMENT */
))
]),
"something-selected": _withCtx(({ value }) => [
$setup.isMultiItemArrayValue(value) ? (_openBlock(), _createElementBlock(
"div",
_hoisted_1,
[
_createElementVNode(
"div",
_hoisted_2,
[
(_openBlock(true), _createElementBlock(
_Fragment,
null,
_renderList(value, (item, i) => {
return _openBlock(), _createElementBlock(
"div",
{
key: item.id,
class: "text-foreground",
"data-v-inspector": "components/form/select/Projects.vue:32:13"
},
_toDisplayString(item.name + (i < value.length - 1 ? ", " : "")),
1
/* TEXT */
);
}),
128
/* KEYED_FRAGMENT */
))
],
512
/* NEED_PATCH */
),
$setup.hiddenSelectedItemCount > 0 ? (_openBlock(), _createElementBlock(
"div",
_hoisted_3,
" +" + _toDisplayString($setup.hiddenSelectedItemCount),
1
/* TEXT */
)) : _createCommentVNode("v-if", true)
],
512
/* NEED_PATCH */
)) : (_openBlock(), _createElementBlock("div", _hoisted_4, [
_createElementVNode(
"span",
_hoisted_5,
_toDisplayString(($setup.isArrayValue(value) ? value[0] : value).name),
1
/* TEXT */
)
]))
]),
option: _withCtx(({ item }) => [
_createElementVNode("div", _hoisted_6, [
_createElementVNode(
"span",
_hoisted_7,
_toDisplayString(item.name),
1
/* TEXT */
)
])
]),
_: 1
/* STABLE */
}, 8, ["modelValue", "multiple", "search-placeholder", "show-optional", "label", "show-label", "name", "label-id", "button-id", "tooltip-text"]);
}
_sfc_main.__hmrId = "13d643c8";
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/form/select/Projects.vue"]]);
//# sourceMappingURL=data:application/json;base64,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T0FBSyxDQUFqQixNQUFNLE1BQUM7dUNBQXBCO0FBQUEsb0JBRU07QUFBQTtBQUFBLHNCQUYyQixLQUFLLEtBQUs7QUFBQSxzQkFBSSxPQUFNO0FBQUEsc0JBQWtCLG9CQUFpQjtBQUFBO3FDQUNuRixLQUFLLFFBQVEsSUFBSSxNQUFNLFNBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7VUFHekIsaUNBQXVCLG1CQUFsQztBQUFBLFlBRU07QUFBQSxZQUZOO0FBQUEsWUFBc0ksT0FDbkksaUJBQUcsOEJBQXVCO0FBQUE7QUFBQTtBQUFBOzs7OzBCQUsvQixvQkFJTSxPQUpOLFlBSU07QUFBQSxRQUhKO0FBQUEsVUFFTztBQUFBLFVBRlA7QUFBQSxVQUVPLGtCQURELG9CQUFhLEtBQUssSUFBSSxNQUFLLEtBQU0sT0FBTyxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0lBSzdDLFFBQU0sU0FDZixDQUVNLEVBSGEsS0FBSTtBQUFBLE1BQ3ZCLG9CQUVNLE9BRk4sWUFFTTtBQUFBLFFBREo7QUFBQSxVQUF5RztBQUFBLFVBQXpHO0FBQUEsVUFBeUcsaUJBQW5CLEtBQUssSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJQcm9qZWN0cy52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gIDxGb3JtU2VsZWN0QmFzZVxyXG4gICAgdi1tb2RlbD1cInNlbGVjdGVkVmFsdWVcIlxyXG4gICAgOm11bHRpcGxlPVwibXVsdGlwbGVcIlxyXG4gICAgOnNlYXJjaD1cInRydWVcIlxyXG4gICAgOnNlYXJjaC1wbGFjZWhvbGRlcj1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgIDpnZXQtc2VhcmNoLXJlc3VsdHM9XCJpbnZva2VTZWFyY2hcIlxyXG4gICAgOnNob3ctb3B0aW9uYWw9XCJzaG93T3B0aW9uYWxcIlxyXG4gICAgOmxhYmVsPVwibGFiZWxcIlxyXG4gICAgOnNob3ctbGFiZWw9XCJzaG93TGFiZWxcIlxyXG4gICAgOm5hbWU9XCJuYW1lIHx8ICdwcm9qZWN0cydcIlxyXG4gICAgOmxhYmVsLWlkPVwibGFiZWxJZFwiXHJcbiAgICA6YnV0dG9uLWlkPVwiYnV0dG9uSWRcIlxyXG4gICAgOnRvb2x0aXAtdGV4dD1cInRvb2x0aXBUZXh0XCJcclxuICAgIGJ5PVwiaWRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6MjozXCJcclxuICA+XHJcbiAgICA8dGVtcGxhdGUgI25vdGhpbmctc2VsZWN0ZWQ+XHJcbiAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwic2VsZWN0b3JQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgIHt7IHNlbGVjdG9yUGxhY2Vob2xkZXIgfX1cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICB7eyBtdWx0aXBsZSA/ICdTZWxlY3QgcHJvamVjdHMnIDogJ1NlbGVjdCBhIHByb2plY3QnIH19XHJcbiAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gICAgPHRlbXBsYXRlICNzb21ldGhpbmctc2VsZWN0ZWQ9XCJ7IHZhbHVlIH1cIj5cclxuICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpc011bHRpSXRlbUFycmF5VmFsdWUodmFsdWUpXCI+XHJcbiAgICAgICAgPGRpdiByZWY9XCJlbGVtZW50VG9XYXRjaEZvckNoYW5nZXNcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMC41XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdHMudnVlOjI3OjlcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgcmVmPVwiaXRlbUNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgb3ZlcmZsb3ctaGlkZGVuIHNwYWNlLXgtMC41IGgtNlwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1Byb2plY3RzLnZ1ZToyODoxMVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgdi1mb3I9XCIoaXRlbSwgaSkgaW4gdmFsdWVcIiA6a2V5PVwiaXRlbS5pZFwiIGNsYXNzPVwidGV4dC1mb3JlZ3JvdW5kXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdHMudnVlOjMyOjEzXCI+XHJcbiAgICAgICAgICAgICAge3sgaXRlbS5uYW1lICsgKGkgPCB2YWx1ZS5sZW5ndGggLSAxID8gJywgJyA6ICcnKSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiB2LWlmPVwiaGlkZGVuU2VsZWN0ZWRJdGVtQ291bnQgPiAwXCIgY2xhc3M9XCJ0ZXh0LWZvcmVncm91bmQtMiBub3JtYWxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6MzY6MTFcIj5cclxuICAgICAgICAgICAgK3t7IGhpZGRlblNlbGVjdGVkSXRlbUNvdW50IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6NDI6OVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LWZvcmVncm91bmRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6NDM6MTFcIj5cclxuICAgICAgICAgICAge3sgKGlzQXJyYXlWYWx1ZSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlKS5uYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gICAgPHRlbXBsYXRlICNvcHRpb249XCJ7IGl0ZW0gfVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6NTA6N1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWU6NTE6OVwiPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gIDwvRm9ybVNlbGVjdEJhc2U+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB0eXBlIHsgUHJvcFR5cGUgfSBmcm9tICd2dWUnXHJcbmltcG9ydCB7IFJvbGVzIH0gZnJvbSAnQHNwZWNrbGUvc2hhcmVkJ1xyXG5pbXBvcnQgdHlwZSB7IE51bGxhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0BzcGVja2xlL3NoYXJlZCdcclxuaW1wb3J0IHsgZ3JhcGhxbCB9IGZyb20gJ35+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbCdcclxuaW1wb3J0IHR5cGUgeyBGb3JtU2VsZWN0UHJvamVjdHNfUHJvamVjdEZyYWdtZW50IH0gZnJvbSAnfn4vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsL2dyYXBocWwnXHJcbmltcG9ydCB7IHVzZUZvcm1TZWxlY3RDaGlsZEludGVybmFscyB9IGZyb20gJ35+L2xpYi9mb3JtL2NvbXBvc2FibGVzL3NlbGVjdCdcclxuaW1wb3J0IHsgdXNlQXBvbGxvQ2xpZW50IH0gZnJvbSAnQHZ1ZS9hcG9sbG8tY29tcG9zYWJsZSdcclxuaW1wb3J0IHsgc2VhcmNoUHJvamVjdHNRdWVyeSB9IGZyb20gJ35+L2xpYi9mb3JtL2dyYXBocWwvcXVlcmllcydcclxuaW1wb3J0IHsgdXNlQWN0aXZlVXNlciB9IGZyb20gJ35+L2xpYi9hdXRoL2NvbXBvc2FibGVzL2FjdGl2ZVVzZXInXHJcblxyXG50eXBlIFZhbHVlVHlwZSA9XHJcbiAgfCBGb3JtU2VsZWN0UHJvamVjdHNfUHJvamVjdEZyYWdtZW50XHJcbiAgfCBGb3JtU2VsZWN0UHJvamVjdHNfUHJvamVjdEZyYWdtZW50W11cclxuICB8IHVuZGVmaW5lZFxyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgRm9ybVNlbGVjdFByb2plY3RzX1Byb2plY3Qgb24gUHJvamVjdCB7XHJcbiAgICBpZFxyXG4gICAgbmFtZVxyXG4gIH1cclxuYClcclxuXHJcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XHJcbiAgKGU6ICd1cGRhdGU6bW9kZWxWYWx1ZScsIHY6IFZhbHVlVHlwZSk6IHZvaWRcclxufT4oKVxyXG5cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBhbGxvdyBzZWxlY3RpbmcgbXVsdGlwbGUgaXRlbXNcclxuICAgKi9cclxuICBtdWx0aXBsZToge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgfSxcclxuICBtb2RlbFZhbHVlOiB7XHJcbiAgICB0eXBlOiBbT2JqZWN0LCBBcnJheV0gYXMgUHJvcFR5cGU8VmFsdWVUeXBlPixcclxuICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gIH0sXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHBsYWNlaG9sZGVyIHRleHRcclxuICAgKi9cclxuICBzZWFyY2hQbGFjZWhvbGRlcjoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgZGVmYXVsdDogJ1NlYXJjaCBwcm9qZWN0cydcclxuICB9LFxyXG4gIHNlbGVjdG9yUGxhY2Vob2xkZXI6IHtcclxuICAgIHR5cGU6IFN0cmluZyBhcyBQcm9wVHlwZTxPcHRpb25hbDxzdHJpbmc+PixcclxuICAgIGRlZmF1bHQ6ICcnXHJcbiAgfSxcclxuICAvKipcclxuICAgKiBMYWJlbCBpcyByZXF1aXJlZCBhdCB0aGUgdmVyeSBsZWFzdCBmb3Igc2NyZWVuLXJlYWRlcnNcclxuICAgKi9cclxuICBsYWJlbDoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgcmVxdWlyZWQ6IHRydWVcclxuICB9LFxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgbGFiZWwgdmlzdWFsbHlcclxuICAgKi9cclxuICBzaG93TGFiZWw6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiBmYWxzZVxyXG4gIH0sXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBvcHRpb25hbCB0ZXh0XHJcbiAgICovXHJcbiAgc2hvd09wdGlvbmFsOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogZmFsc2VcclxuICB9LFxyXG4gIG5hbWU6IHtcclxuICAgIHR5cGU6IFN0cmluZyBhcyBQcm9wVHlwZTxPcHRpb25hbDxzdHJpbmc+PixcclxuICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gIH0sXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBvbmx5IHJldHVybiBvd25lZCBwcm9qZWN0cyBmcm9tIHNlcnZlclxyXG4gICAqL1xyXG4gIG93bmVkT25seToge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgfSxcclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRvIG9ubHkgcmV0dXJuIHByb2plY3RzIHdpdGhpbiBhIHNwZWNpZmljIHdvcmtzcGFjZVxyXG4gICAqL1xyXG4gIHdvcmtzcGFjZUlkOiB7XHJcbiAgICB0eXBlOiBTdHJpbmcgYXMgUHJvcFR5cGU8T3B0aW9uYWw8c3RyaW5nPj5cclxuICB9LFxyXG4gIHRvb2x0aXBUZXh0OiB7XHJcbiAgICB0eXBlOiBTdHJpbmcgYXMgUHJvcFR5cGU8T3B0aW9uYWw8c3RyaW5nPj5cclxuICB9XHJcbn0pXHJcblxyXG5jb25zdCBlbGVtZW50VG9XYXRjaEZvckNoYW5nZXMgPSByZWYobnVsbCBhcyBOdWxsYWJsZTxIVE1MRWxlbWVudD4pXHJcbmNvbnN0IGl0ZW1Db250YWluZXIgPSByZWYobnVsbCBhcyBOdWxsYWJsZTxIVE1MRWxlbWVudD4pXHJcbmNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpXHJcbmNvbnN0IGJ1dHRvbklkID0gdXNlSWQoKVxyXG5cclxuY29uc3QgeyBzZWxlY3RlZFZhbHVlLCBoaWRkZW5TZWxlY3RlZEl0ZW1Db3VudCwgaXNBcnJheVZhbHVlLCBpc011bHRpSXRlbUFycmF5VmFsdWUgfSA9XHJcbiAgdXNlRm9ybVNlbGVjdENoaWxkSW50ZXJuYWxzPEZvcm1TZWxlY3RQcm9qZWN0c19Qcm9qZWN0RnJhZ21lbnQ+KHtcclxuICAgIHByb3BzOiB0b1JlZnMocHJvcHMpLFxyXG4gICAgZW1pdCxcclxuICAgIGR5bmFtaWNWaXNpYmlsaXR5OiB7IGVsZW1lbnRUb1dhdGNoRm9yQ2hhbmdlcywgaXRlbUNvbnRhaW5lciB9XHJcbiAgfSlcclxuXHJcbmNvbnN0IGFwb2xsbyA9IHVzZUFwb2xsb0NsaWVudCgpLmNsaWVudFxyXG5jb25zdCB7IGlzTG9nZ2VkSW4gfSA9IHVzZUFjdGl2ZVVzZXIoKVxyXG5cclxuY29uc3QgaW52b2tlU2VhcmNoID0gYXN5bmMgKHNlYXJjaDogc3RyaW5nKSA9PiB7XHJcbiAgaWYgKCFpc0xvZ2dlZEluLnZhbHVlKSByZXR1cm4gW11cclxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgYXBvbGxvLnF1ZXJ5KHtcclxuICAgIHF1ZXJ5OiBzZWFyY2hQcm9qZWN0c1F1ZXJ5LFxyXG4gICAgdmFyaWFibGVzOiBjb21wdXRlZCgoKSA9PiAoe1xyXG4gICAgICBzZWFyY2g6IHNlYXJjaC50cmltKCkubGVuZ3RoID8gc2VhcmNoIDogbnVsbCxcclxuICAgICAgb25seVdpdGhSb2xlczogcHJvcHMub3duZWRPbmx5ID8gW1JvbGVzLlN0cmVhbS5Pd25lcl0gOiBudWxsLFxyXG4gICAgICAuLi4ocHJvcHMud29ya3NwYWNlSWQgJiYgeyB3b3Jrc3BhY2VJZDogcHJvcHMud29ya3NwYWNlSWQgfSlcclxuICAgIH0pKS52YWx1ZVxyXG4gIH0pXHJcbiAgcmV0dXJuIHJlc3VsdHMuZGF0YS5hY3RpdmVVc2VyPy5wcm9qZWN0cy5pdGVtcyB8fCBbXVxyXG59XHJcbjwvc2NyaXB0PlxyXG4iXSwiZmlsZSI6IkQ6L3NwZWNrbGUtc2VydmVyL3BhY2thZ2VzL2Zyb250ZW5kLTIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0cy52dWUifQ==