279 lines
20 KiB
Plaintext
279 lines
20 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/form/select/Users.vue");import { UserAvatar as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { FormSelectBase as __nuxt_component_1 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
/* 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 { graphql } from "/_nuxt/lib/common/generated/gql/index.ts";
|
|
import { useFormSelectChildInternals } from "/_nuxt/lib/form/composables/select.ts";
|
|
|
|
import { ref, useId, toRefs } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
__name: "FormSelectUsers",
|
|
props: {
|
|
/**
|
|
* Whether to allow selecting multiple users
|
|
*/
|
|
multiple: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
users: {
|
|
type: Array,
|
|
required: true
|
|
},
|
|
modelValue: {
|
|
type: [Object, Array],
|
|
default: void 0
|
|
},
|
|
/**
|
|
* Whether to allow filtering users through a search box
|
|
*/
|
|
search: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
/**
|
|
* Search placeholder text
|
|
*/
|
|
searchPlaceholder: {
|
|
type: String,
|
|
default: "Search people"
|
|
},
|
|
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
|
|
},
|
|
name: {
|
|
type: String,
|
|
default: void 0
|
|
}
|
|
},
|
|
emits: ["update:modelValue"],
|
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
__expose();
|
|
graphql(`
|
|
fragment FormUsersSelectItem on LimitedUser {
|
|
id
|
|
name
|
|
avatar
|
|
}
|
|
`);
|
|
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 searchFilterPredicate = (i, search) => i.name.toLocaleLowerCase().includes(search.toLocaleLowerCase());
|
|
const __returned__ = { emit, props, elementToWatchForChanges, itemContainer, labelId, buttonId, selectedValue, hiddenSelectedItemCount, isArrayValue, isMultiItemArrayValue, searchFilterPredicate };
|
|
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/Users.vue:26:9"
|
|
};
|
|
const _hoisted_2 = {
|
|
ref: "itemContainer",
|
|
class: "flex flex-wrap overflow-hidden space-x-0.5 h-6",
|
|
"data-v-inspector": "components/form/select/Users.vue:27:11"
|
|
};
|
|
const _hoisted_3 = {
|
|
key: 0,
|
|
class: "text-foreground-2 normal",
|
|
"data-v-inspector": "components/form/select/Users.vue:39:11"
|
|
};
|
|
const _hoisted_4 = {
|
|
key: 1,
|
|
class: "flex items-center overflow-hidden",
|
|
"data-v-inspector": "components/form/select/Users.vue:45:9"
|
|
};
|
|
const _hoisted_5 = {
|
|
class: "truncate label label--light min-w-0",
|
|
"data-v-inspector": "components/form/select/Users.vue:52:11"
|
|
};
|
|
const _hoisted_6 = {
|
|
class: "flex items-center",
|
|
"data-v-inspector": "components/form/select/Users.vue:59:7"
|
|
};
|
|
const _hoisted_7 = {
|
|
class: "truncate text-body-2xs",
|
|
"data-v-inspector": "components/form/select/Users.vue:61:9"
|
|
};
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
const _component_UserAvatar = __nuxt_component_0;
|
|
const _component_FormSelectBase = __nuxt_component_1;
|
|
return _openBlock(), _createBlock(_component_FormSelectBase, {
|
|
modelValue: $setup.selectedValue,
|
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectedValue = $event),
|
|
multiple: $props.multiple,
|
|
items: $props.users,
|
|
search: $props.search,
|
|
"filter-predicate": $setup.searchFilterPredicate,
|
|
"search-placeholder": $props.searchPlaceholder,
|
|
label: $props.label,
|
|
"show-label": $props.showLabel,
|
|
name: $props.name || "users",
|
|
"label-id": $setup.labelId,
|
|
"button-id": $setup.buttonId,
|
|
by: "id",
|
|
"data-v-inspector": "components/form/select/Users.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 users" : "Select a user"),
|
|
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, (user) => {
|
|
return _openBlock(), _createBlock(_component_UserAvatar, {
|
|
key: user.id,
|
|
user,
|
|
"no-border": "",
|
|
size: "xs",
|
|
"data-v-inspector": "components/form/select/Users.vue:31:13"
|
|
}, null, 8, ["user"]);
|
|
}),
|
|
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, [
|
|
_createVNode(_component_UserAvatar, {
|
|
user: $setup.isArrayValue(value) ? value[0] : value,
|
|
"no-border": "",
|
|
class: "mr-2",
|
|
size: "xs",
|
|
"data-v-inspector": "components/form/select/Users.vue:46:11"
|
|
}, null, 8, ["user"]),
|
|
_createElementVNode(
|
|
"span",
|
|
_hoisted_5,
|
|
_toDisplayString(($setup.isArrayValue(value) ? value[0] : value).name),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
]))
|
|
]),
|
|
option: _withCtx(({ item }) => [
|
|
_createElementVNode("div", _hoisted_6, [
|
|
_createVNode(_component_UserAvatar, {
|
|
user: item,
|
|
"no-border": "",
|
|
class: "mr-2",
|
|
size: "sm",
|
|
"data-v-inspector": "components/form/select/Users.vue:60:9"
|
|
}, null, 8, ["user"]),
|
|
_createElementVNode(
|
|
"span",
|
|
_hoisted_7,
|
|
_toDisplayString(item.name),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}, 8, ["modelValue", "multiple", "items", "search", "search-placeholder", "label", "show-label", "name", "label-id", "button-id"]);
|
|
}
|
|
_sfc_main.__hmrId = "06f6c376";
|
|
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/Users.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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QTtBQUFBO0FBQUE7QUFBQTs7SUFLN0MsUUFBTSxTQUNmLENBR00sRUFKYSxLQUFJO0FBQUEsTUFDdkIsb0JBR00sT0FITixZQUdNO0FBQUEsUUFGSixhQUFxSDtBQUFBLFVBQXhHLE1BQU07QUFBQSxVQUFNO0FBQUEsVUFBVSxPQUFNO0FBQUEsVUFBTyxNQUFLO0FBQUEsVUFBSyxvQkFBaUI7QUFBQTtRQUMzRTtBQUFBLFVBQW9IO0FBQUEsVUFBcEg7QUFBQSxVQUFvSCxpQkFBbkIsS0FBSyxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIlVzZXJzLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPEZvcm1TZWxlY3RCYXNlXHJcbiAgICB2LW1vZGVsPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICA6bXVsdGlwbGU9XCJtdWx0aXBsZVwiXHJcbiAgICA6aXRlbXM9XCJ1c2Vyc1wiXHJcbiAgICA6c2VhcmNoPVwic2VhcmNoXCJcclxuICAgIDpmaWx0ZXItcHJlZGljYXRlPVwic2VhcmNoRmlsdGVyUHJlZGljYXRlXCJcclxuICAgIDpzZWFyY2gtcGxhY2Vob2xkZXI9XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICA6bGFiZWw9XCJsYWJlbFwiXHJcbiAgICA6c2hvdy1sYWJlbD1cInNob3dMYWJlbFwiXHJcbiAgICA6bmFtZT1cIm5hbWUgfHwgJ3VzZXJzJ1wiXHJcbiAgICA6bGFiZWwtaWQ9XCJsYWJlbElkXCJcclxuICAgIDpidXR0b24taWQ9XCJidXR0b25JZFwiXHJcbiAgICBieT1cImlkXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjI6M1wiXHJcbiAgPlxyXG4gICAgPHRlbXBsYXRlICNub3RoaW5nLXNlbGVjdGVkPlxyXG4gICAgICA8dGVtcGxhdGUgdi1pZj1cInNlbGVjdG9yUGxhY2Vob2xkZXJcIj5cclxuICAgICAgICB7eyBzZWxlY3RvclBsYWNlaG9sZGVyIH19XHJcbiAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAge3sgbXVsdGlwbGUgPyAnU2VsZWN0IHVzZXJzJyA6ICdTZWxlY3QgYSB1c2VyJyB9fVxyXG4gICAgICA8L3RlbXBsYXRlPlxyXG4gICAgPC90ZW1wbGF0ZT5cclxuICAgIDx0ZW1wbGF0ZSAjc29tZXRoaW5nLXNlbGVjdGVkPVwieyB2YWx1ZSB9XCI+XHJcbiAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaXNNdWx0aUl0ZW1BcnJheVZhbHVlKHZhbHVlKVwiPlxyXG4gICAgICAgIDxkaXYgcmVmPVwiZWxlbWVudFRvV2F0Y2hGb3JDaGFuZ2VzXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTAuNVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1VzZXJzLnZ1ZToyNjo5XCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIHJlZj1cIml0ZW1Db250YWluZXJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIG92ZXJmbG93LWhpZGRlbiBzcGFjZS14LTAuNSBoLTZcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Vc2Vycy52dWU6Mjc6MTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8VXNlckF2YXRhclxyXG4gICAgICAgICAgICAgIHYtZm9yPVwidXNlciBpbiB2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cInVzZXIuaWRcIlxyXG4gICAgICAgICAgICAgIDp1c2VyPVwidXNlclwiXHJcbiAgICAgICAgICAgICAgbm8tYm9yZGVyXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInhzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjMxOjEzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiB2LWlmPVwiaGlkZGVuU2VsZWN0ZWRJdGVtQ291bnQgPiAwXCIgY2xhc3M9XCJ0ZXh0LWZvcmVncm91bmQtMiBub3JtYWxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Vc2Vycy52dWU6Mzk6MTFcIj5cclxuICAgICAgICAgICAgK3t7IGhpZGRlblNlbGVjdGVkSXRlbUNvdW50IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjQ1OjlcIj5cclxuICAgICAgICAgIDxVc2VyQXZhdGFyXHJcbiAgICAgICAgICAgIDp1c2VyPVwiaXNBcnJheVZhbHVlKHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWVcIlxyXG4gICAgICAgICAgICBuby1ib3JkZXJcclxuICAgICAgICAgICAgY2xhc3M9XCJtci0yXCJcclxuICAgICAgICAgICAgc2l6ZT1cInhzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjQ2OjExXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIGxhYmVsIGxhYmVsLS1saWdodCBtaW4tdy0wXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjUyOjExXCI+XHJcbiAgICAgICAgICAgIHt7IChpc0FycmF5VmFsdWUodmFsdWUpID8gdmFsdWVbMF0gOiB2YWx1ZSkubmFtZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RlbXBsYXRlPlxyXG4gICAgPC90ZW1wbGF0ZT5cclxuICAgIDx0ZW1wbGF0ZSAjb3B0aW9uPVwieyBpdGVtIH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjU5OjdcIj5cclxuICAgICAgICA8VXNlckF2YXRhciA6dXNlcj1cIml0ZW1cIiBuby1ib3JkZXIgY2xhc3M9XCJtci0yXCIgc2l6ZT1cInNtXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlOjYwOjlcIiAvPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1ib2R5LTJ4c1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1VzZXJzLnZ1ZTo2MTo5XCI+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvdGVtcGxhdGU+XHJcbiAgPC9Gb3JtU2VsZWN0QmFzZT5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHR5cGUgeyBQcm9wVHlwZSB9IGZyb20gJ3Z1ZSdcclxuaW1wb3J0IHR5cGUgeyBOdWxsYWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAc3BlY2tsZS9zaGFyZWQnXHJcbmltcG9ydCB7IGdyYXBocWwgfSBmcm9tICd+fi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwnXHJcbmltcG9ydCB0eXBlIHsgRm9ybVVzZXJzU2VsZWN0SXRlbUZyYWdtZW50IH0gZnJvbSAnfn4vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsL2dyYXBocWwnXHJcbmltcG9ydCB7IHVzZUZvcm1TZWxlY3RDaGlsZEludGVybmFscyB9IGZyb20gJ35+L2xpYi9mb3JtL2NvbXBvc2FibGVzL3NlbGVjdCdcclxuXHJcbnR5cGUgVmFsdWVUeXBlID0gRm9ybVVzZXJzU2VsZWN0SXRlbUZyYWdtZW50IHwgRm9ybVVzZXJzU2VsZWN0SXRlbUZyYWdtZW50W10gfCB1bmRlZmluZWRcclxuXHJcbmdyYXBocWwoYFxyXG4gIGZyYWdtZW50IEZvcm1Vc2Vyc1NlbGVjdEl0ZW0gb24gTGltaXRlZFVzZXIge1xyXG4gICAgaWRcclxuICAgIG5hbWVcclxuICAgIGF2YXRhclxyXG4gIH1cclxuYClcclxuXHJcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XHJcbiAgKGU6ICd1cGRhdGU6bW9kZWxWYWx1ZScsIHY6IFZhbHVlVHlwZSk6IHZvaWRcclxufT4oKVxyXG5cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBhbGxvdyBzZWxlY3RpbmcgbXVsdGlwbGUgdXNlcnNcclxuICAgKi9cclxuICBtdWx0aXBsZToge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgfSxcclxuICB1c2Vyczoge1xyXG4gICAgdHlwZTogQXJyYXkgYXMgUHJvcFR5cGU8Rm9ybVVzZXJzU2VsZWN0SXRlbUZyYWdtZW50W10+LFxyXG4gICAgcmVxdWlyZWQ6IHRydWVcclxuICB9LFxyXG4gIG1vZGVsVmFsdWU6IHtcclxuICAgIHR5cGU6IFtPYmplY3QsIEFycmF5XSBhcyBQcm9wVHlwZTxWYWx1ZVR5cGU+LFxyXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgfSxcclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRvIGFsbG93IGZpbHRlcmluZyB1c2VycyB0aHJvdWdoIGEgc2VhcmNoIGJveFxyXG4gICAqL1xyXG4gIHNlYXJjaDoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgfSxcclxuICAvKipcclxuICAgKiBTZWFyY2ggcGxhY2Vob2xkZXIgdGV4dFxyXG4gICAqL1xyXG4gIHNlYXJjaFBsYWNlaG9sZGVyOiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnU2VhcmNoIHBlb3BsZSdcclxuICB9LFxyXG4gIHNlbGVjdG9yUGxhY2Vob2xkZXI6IHtcclxuICAgIHR5cGU6IFN0cmluZyBhcyBQcm9wVHlwZTxPcHRpb25hbDxzdHJpbmc+PixcclxuICAgIGRlZmF1bHQ6ICcnXHJcbiAgfSxcclxuICAvKipcclxuICAgKiBMYWJlbCBpcyByZXF1aXJlZCBhdCB0aGUgdmVyeSBsZWFzdCBmb3Igc2NyZWVuLXJlYWRlcnNcclxuICAgKi9cclxuICBsYWJlbDoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgcmVxdWlyZWQ6IHRydWVcclxuICB9LFxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgbGFiZWwgdmlzdWFsbHlcclxuICAgKi9cclxuICBzaG93TGFiZWw6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiBmYWxzZVxyXG4gIH0sXHJcbiAgbmFtZToge1xyXG4gICAgdHlwZTogU3RyaW5nIGFzIFByb3BUeXBlPE9wdGlvbmFsPHN0cmluZz4+LFxyXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgfVxyXG59KVxyXG5cclxuY29uc3QgZWxlbWVudFRvV2F0Y2hGb3JDaGFuZ2VzID0gcmVmKG51bGwgYXMgTnVsbGFibGU8SFRNTEVsZW1lbnQ+KVxyXG5jb25zdCBpdGVtQ29udGFpbmVyID0gcmVmKG51bGwgYXMgTnVsbGFibGU8SFRNTEVsZW1lbnQ+KVxyXG5jb25zdCBsYWJlbElkID0gdXNlSWQoKVxyXG5jb25zdCBidXR0b25JZCA9IHVzZUlkKClcclxuXHJcbmNvbnN0IHsgc2VsZWN0ZWRWYWx1ZSwgaGlkZGVuU2VsZWN0ZWRJdGVtQ291bnQsIGlzQXJyYXlWYWx1ZSwgaXNNdWx0aUl0ZW1BcnJheVZhbHVlIH0gPVxyXG4gIHVzZUZvcm1TZWxlY3RDaGlsZEludGVybmFsczxGb3JtVXNlcnNTZWxlY3RJdGVtRnJhZ21lbnQ+KHtcclxuICAgIHByb3BzOiB0b1JlZnMocHJvcHMpLFxyXG4gICAgZW1pdCxcclxuICAgIGR5bmFtaWNWaXNpYmlsaXR5OiB7IGVsZW1lbnRUb1dhdGNoRm9yQ2hhbmdlcywgaXRlbUNvbnRhaW5lciB9XHJcbiAgfSlcclxuXHJcbmNvbnN0IHNlYXJjaEZpbHRlclByZWRpY2F0ZSA9IChpOiBGb3JtVXNlcnNTZWxlY3RJdGVtRnJhZ21lbnQsIHNlYXJjaDogc3RyaW5nKSA9PlxyXG4gIGkubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvZm9ybS9zZWxlY3QvVXNlcnMudnVlIn0= |