262 lines
22 KiB
Plaintext
262 lines
22 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/viewer/filters/filter/Header.vue");/* Injection by vite-plugin-vue-inspector Start */
|
|
import { createBlock as __createBlock,createElementVNode as __createElementVNode,createVNode as __createVNode,createElementBlock as __createElementBlock } 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 _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
|
|
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
|
|
function _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
|
|
function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
|
|
/* Injection by vite-plugin-vue-inspector End */
|
|
import { useModel as _useModel, mergeModels as _mergeModels, defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
import {
|
|
PaintBucket,
|
|
Hash,
|
|
CaseUpper,
|
|
ChevronsUpDown,
|
|
Ellipsis,
|
|
ChevronsDownUp,
|
|
ToggleLeft
|
|
} from "/_nuxt/node_modules/.cache/vite/client/deps/lucide-vue-next.js?v=e4f18c29";
|
|
import {
|
|
FormButton,
|
|
LayoutMenu,
|
|
HorizontalDirection
|
|
} from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { useFilterUtilities } from "/_nuxt/lib/viewer/composables/filtering/filtering.ts";
|
|
import { useFilterColoringHelpers } from "/_nuxt/lib/viewer/composables/filtering/coloringHelpers.ts";
|
|
import { FilterType } from "/_nuxt/lib/viewer/helpers/filters/types.ts";
|
|
|
|
import { ref, useId, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
__name: "ViewerFiltersFilterHeader",
|
|
props: /* @__PURE__ */ _mergeModels({
|
|
filter: { type: Object, required: true }
|
|
}, {
|
|
"collapsed": { type: Boolean, ...{ required: true } },
|
|
"collapsedModifiers": {}
|
|
}),
|
|
emits: /* @__PURE__ */ _mergeModels(["swapProperty"], ["update:collapsed"]),
|
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
__expose();
|
|
const props = __props;
|
|
const collapsed = _useModel(__props, "collapsed");
|
|
const showActionsMenu = ref(false);
|
|
const menuId = useId();
|
|
const { removeActiveFilter, toggleFilterApplied, getPropertyName, filters } = useFilterUtilities();
|
|
const { toggleColorFilter } = useFilterColoringHelpers();
|
|
const emit = __emit;
|
|
const isColoringActive = computed(() => {
|
|
return filters.activeColorFilterId.value === props.filter.id;
|
|
});
|
|
const removeFilter = () => {
|
|
removeActiveFilter(props.filter.id);
|
|
};
|
|
const toggleVisibility = () => {
|
|
toggleFilterApplied(props.filter.id);
|
|
};
|
|
const toggleColors = () => {
|
|
toggleColorFilter(props.filter.id);
|
|
};
|
|
const handlePropertySwap = () => {
|
|
emit("swapProperty", props.filter.id);
|
|
};
|
|
const toggleCollapsed = () => {
|
|
if (collapsed.value) {
|
|
collapsed.value = false;
|
|
}
|
|
};
|
|
const actionsItems = computed(() => [
|
|
[
|
|
{
|
|
title: props.filter.isApplied ? "Disable filter" : "Enable filter",
|
|
id: "toggle-visibility"
|
|
}
|
|
],
|
|
[
|
|
{
|
|
title: "Remove filter",
|
|
id: "remove-filter"
|
|
}
|
|
]
|
|
]);
|
|
const onActionChosen = (params) => {
|
|
const { item } = params;
|
|
switch (item.id) {
|
|
case "toggle-visibility":
|
|
toggleVisibility();
|
|
break;
|
|
case "remove-filter":
|
|
removeFilter();
|
|
break;
|
|
}
|
|
};
|
|
const __returned__ = { props, collapsed, showActionsMenu, menuId, removeActiveFilter, toggleFilterApplied, getPropertyName, filters, toggleColorFilter, emit, isColoringActive, removeFilter, toggleVisibility, toggleColors, handlePropertySwap, toggleCollapsed, actionsItems, onActionChosen, get PaintBucket() {
|
|
return PaintBucket;
|
|
}, get Hash() {
|
|
return Hash;
|
|
}, get CaseUpper() {
|
|
return CaseUpper;
|
|
}, get ChevronsUpDown() {
|
|
return ChevronsUpDown;
|
|
}, get Ellipsis() {
|
|
return Ellipsis;
|
|
}, get ChevronsDownUp() {
|
|
return ChevronsDownUp;
|
|
}, get ToggleLeft() {
|
|
return ToggleLeft;
|
|
}, get FormButton() {
|
|
return FormButton;
|
|
}, get LayoutMenu() {
|
|
return LayoutMenu;
|
|
}, get HorizontalDirection() {
|
|
return HorizontalDirection;
|
|
}, get FilterType() {
|
|
return FilterType;
|
|
} };
|
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
return __returned__;
|
|
}
|
|
});
|
|
import { openBlock as _openBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, resolveDirective as _resolveDirective, withCtx as _withCtx, withDirectives as _withDirectives, normalizeClass as _normalizeClass, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _hoisted_1 = {
|
|
class: "truncate",
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:33:9"
|
|
};
|
|
const _hoisted_2 = {
|
|
class: "flex items-start gap-0.5 shrink-0",
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:36:5"
|
|
};
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
const _directive_tippy = _resolveDirective("tippy");
|
|
return _openBlock(), _createElementBlock(
|
|
"div",
|
|
{
|
|
class: _normalizeClass(["flex items-center justify-between", { "cursor-pointer": $setup.collapsed }]),
|
|
onClick: $setup.toggleCollapsed,
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:4:3"
|
|
},
|
|
[
|
|
_createElementVNode(
|
|
"div",
|
|
{
|
|
class: _normalizeClass(["flex items-center pl-0 min-w-0 flex-1", { "opacity-50": !$props.filter.isApplied }]),
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:9:5"
|
|
},
|
|
[
|
|
_withDirectives((_openBlock(), _createBlock($setup["FormButton"], {
|
|
color: "subtle",
|
|
class: "m-0 gap-3 min-w-0",
|
|
size: "sm",
|
|
onClick: _withModifiers($setup.handlePropertySwap, ["stop"]),
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:13:7"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
$props.filter.type === $setup.FilterType.Numeric ? (_openBlock(), _createBlock($setup["Hash"], {
|
|
key: 0,
|
|
class: "h-3 w-3 stroke-emerald-700 dark:stroke-emerald-500 shrink-0",
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:20:9"
|
|
})) : $props.filter.type === $setup.FilterType.Boolean ? (_openBlock(), _createBlock($setup["ToggleLeft"], {
|
|
key: 1,
|
|
class: "h-3 w-3 stroke-amber-500 dark:stroke-amber-400 shrink-0",
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:24:9"
|
|
})) : (_openBlock(), _createBlock($setup["CaseUpper"], {
|
|
key: 2,
|
|
class: "h-3 w-3 stroke-violet-600 dark:stroke-violet-500 shrink-0",
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:28:9"
|
|
})),
|
|
_createElementVNode(
|
|
"span",
|
|
_hoisted_1,
|
|
_toDisplayString($setup.getPropertyName($props.filter.filter?.key)),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})), [
|
|
[_directive_tippy, "Change filter property"]
|
|
])
|
|
],
|
|
2
|
|
/* CLASS */
|
|
),
|
|
_createElementVNode("div", _hoisted_2, [
|
|
_createVNode($setup["LayoutMenu"], {
|
|
open: $setup.showActionsMenu,
|
|
"onUpdate:open": _cache[1] || (_cache[1] = ($event) => $setup.showActionsMenu = $event),
|
|
items: $setup.actionsItems,
|
|
"menu-id": $setup.menuId,
|
|
class: "h-6 w-6",
|
|
"menu-position": $setup.HorizontalDirection.Left,
|
|
onClick: _cache[2] || (_cache[2] = _withModifiers(() => {
|
|
}, ["stop", "prevent"])),
|
|
onChosen: $setup.onActionChosen,
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:37:7"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createVNode($setup["FormButton"], {
|
|
color: "subtle",
|
|
"hide-text": "",
|
|
size: "sm",
|
|
"icon-right": $setup.Ellipsis,
|
|
class: _normalizeClass(["!text-foreground", $setup.showActionsMenu ? "!bg-highlight-2" : ""]),
|
|
onClick: _cache[0] || (_cache[0] = ($event) => $setup.showActionsMenu = !$setup.showActionsMenu),
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:46:9"
|
|
}, null, 8, ["icon-right", "class"])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}, 8, ["open", "items", "menu-id", "menu-position"]),
|
|
_withDirectives(_createVNode($setup["FormButton"], {
|
|
color: "subtle",
|
|
size: "sm",
|
|
"hide-text": "",
|
|
"icon-right": $setup.collapsed ? $setup.ChevronsUpDown : $setup.ChevronsDownUp,
|
|
"is-expanded": !$setup.collapsed,
|
|
onClick: _cache[3] || (_cache[3] = _withModifiers(($event) => $setup.collapsed = !$setup.collapsed, ["stop"])),
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:56:7"
|
|
}, null, 8, ["icon-right", "is-expanded"]), [
|
|
[_directive_tippy, $setup.collapsed ? "Show details" : "Hide details"]
|
|
]),
|
|
$setup.props.filter.type !== $setup.FilterType.Boolean ? _withDirectives((_openBlock(), _createBlock($setup["FormButton"], {
|
|
key: 0,
|
|
color: $setup.isColoringActive ? "primary" : "subtle",
|
|
size: "sm",
|
|
"hide-text": "",
|
|
"icon-right": $setup.PaintBucket,
|
|
onClick: _withModifiers($setup.toggleColors, ["stop"]),
|
|
"data-v-inspector": "components/viewer/filters/filter/Header.vue:65:7"
|
|
}, null, 8, ["color", "icon-right"])), [
|
|
[_directive_tippy, "Toggle coloring for this property"]
|
|
]) : _createCommentVNode("v-if", true)
|
|
])
|
|
],
|
|
2
|
|
/* CLASS */
|
|
);
|
|
}
|
|
_sfc_main.__hmrId = "5f923263";
|
|
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/viewer/filters/filter/Header.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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IjpbXSwic291cmNlcyI6WyJIZWFkZXIudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjwhLS0gZXNsaW50LWRpc2FibGUgdnVlanMtYWNjZXNzaWJpbGl0eS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgLS0+XHJcbjwhLS0gZXNsaW50LWRpc2FibGUgdnVlanMtYWNjZXNzaWJpbGl0eS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIlxyXG4gICAgOmNsYXNzPVwieyAnY3Vyc29yLXBvaW50ZXInOiBjb2xsYXBzZWQgfVwiXHJcbiAgICBAY2xpY2s9XCJ0b2dnbGVDb2xsYXBzZWRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZmlsdGVycy9maWx0ZXIvSGVhZGVyLnZ1ZTo0OjNcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBwbC0wIG1pbi13LTAgZmxleC0xXCJcclxuICAgICAgOmNsYXNzPVwieyAnb3BhY2l0eS01MCc6ICFmaWx0ZXIuaXNBcHBsaWVkIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZmlsdGVycy9maWx0ZXIvSGVhZGVyLnZ1ZTo5OjVcIlxyXG4gICAgPlxyXG4gICAgICA8Rm9ybUJ1dHRvblxyXG4gICAgICAgIHYtdGlwcHk9XCInQ2hhbmdlIGZpbHRlciBwcm9wZXJ0eSdcIlxyXG4gICAgICAgIGNvbG9yPVwic3VidGxlXCJcclxuICAgICAgICBjbGFzcz1cIm0tMCBnYXAtMyBtaW4tdy0wXCJcclxuICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgIEBjbGljay5zdG9wPVwiaGFuZGxlUHJvcGVydHlTd2FwXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2ZpbHRlcnMvZmlsdGVyL0hlYWRlci52dWU6MTM6N1wiXHJcbiAgICAgID5cclxuICAgICAgICA8SGFzaFxyXG4gICAgICAgICAgdi1pZj1cImZpbHRlci50eXBlID09PSBGaWx0ZXJUeXBlLk51bWVyaWNcIlxyXG4gICAgICAgICAgY2xhc3M9XCJoLTMgdy0zIHN0cm9rZS1lbWVyYWxkLTcwMCBkYXJrOnN0cm9rZS1lbWVyYWxkLTUwMCBzaHJpbmstMFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9maWx0ZXJzL2ZpbHRlci9IZWFkZXIudnVlOjIwOjlcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPFRvZ2dsZUxlZnRcclxuICAgICAgICAgIHYtZWxzZS1pZj1cImZpbHRlci50eXBlID09PSBGaWx0ZXJUeXBlLkJvb2xlYW5cIlxyXG4gICAgICAgICAgY2xhc3M9XCJoLTMgdy0zIHN0cm9rZS1hbWJlci01MDAgZGFyazpzdHJva2UtYW1iZXItNDAwIHNocmluay0wXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2ZpbHRlcnMvZmlsdGVyL0hlYWRlci52dWU6MjQ6OVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8Q2FzZVVwcGVyXHJcbiAgICAgICAgICB2LWVsc2VcclxuICAgICAgICAgIGNsYXNzPVwiaC0zIHctMyBzdHJva2UtdmlvbGV0LTYwMCBkYXJrOnN0cm9rZS12aW9sZXQtNTAwIHNocmluay0wXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2ZpbHRlcnMvZmlsdGVyL0hlYWRlci52dWU6Mjg6OVwiXHJcbiAgICAgICAgLz5cclxuXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9maWx0ZXJzL2ZpbHRlci9IZWFkZXIudnVlOjMzOjlcIj57eyBnZXRQcm9wZXJ0eU5hbWUoZmlsdGVyLmZpbHRlcj8ua2V5KSB9fTwvc3Bhbj5cclxuICAgICAgPC9Gb3JtQnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBnYXAtMC41IHNocmluay0wXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvdmlld2VyL2ZpbHRlcnMvZmlsdGVyL0hlYWRlci52dWU6MzY6NVwiPlxyXG4gICAgICA8TGF5b3V0TWVudVxyXG4gICAgICAgIHYtbW9kZWw6b3Blbj1cInNob3dBY3Rpb25zTWVudVwiXHJcbiAgICAgICAgOml0ZW1zPVwiYWN0aW9uc0l0ZW1zXCJcclxuICAgICAgICA6bWVudS1pZD1cIm1lbnVJZFwiXHJcbiAgICAgICAgY2xhc3M9XCJoLTYgdy02XCJcclxuICAgICAgICA6bWVudS1wb3NpdGlvbj1cIkhvcml6b250YWxEaXJlY3Rpb24uTGVmdFwiXHJcbiAgICAgICAgQGNsaWNrLnN0b3AucHJldmVudFxyXG4gICAgICAgIEBjaG9zZW49XCJvbkFjdGlvbkNob3NlblwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9maWx0ZXJzL2ZpbHRlci9IZWFkZXIudnVlOjM3OjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICAgIGNvbG9yPVwic3VidGxlXCJcclxuICAgICAgICAgIGhpZGUtdGV4dFxyXG4gICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgIDppY29uLXJpZ2h0PVwiRWxsaXBzaXNcIlxyXG4gICAgICAgICAgY2xhc3M9XCIhdGV4dC1mb3JlZ3JvdW5kXCJcclxuICAgICAgICAgIDpjbGFzcz1cInNob3dBY3Rpb25zTWVudSA/ICchYmctaGlnaGxpZ2h0LTInIDogJydcIlxyXG4gICAgICAgICAgQGNsaWNrPVwic2hvd0FjdGlvbnNNZW51ID0gIXNob3dBY3Rpb25zTWVudVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3ZpZXdlci9maWx0ZXJzL2ZpbHRlci9IZWFkZXIudnVlOjQ2OjlcIlxyXG4gICAgICAgID48L0Zvcm1CdXR0b24+XHJcbiAgICAgIDwvTGF5b3V0TWVudT5cclxuICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICB2LXRpcHB5PVwiY29sbGFwc2VkID8gJ1Nob3cgZGV0YWlscycgOiAnSGlkZSBkZXRhaWxzJ1wiXHJcbiAgICAgICAgY29sb3I9XCJzdWJ0bGVcIlxyXG4gICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgaGlkZS10ZXh0XHJcbiAgICAgICAgOmljb24tcmlnaHQ9XCJjb2xsYXBzZWQgPyBDaGV2cm9uc1VwRG93biA6IENoZXZyb25zRG93blVwXCJcclxuICAgICAgICA6aXMtZXhwYW5kZWQ9XCIhY29sbGFwc2VkXCJcclxuICAgICAgICBAY2xpY2suc3RvcD1cImNvbGxhcHNlZCA9ICFjb2xsYXBzZWRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZmlsdGVycy9maWx0ZXIvSGVhZGVyLnZ1ZTo1Njo3XCJcclxuICAgICAgLz5cclxuICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICB2LWlmPVwicHJvcHMuZmlsdGVyLnR5cGUgIT09IEZpbHRlclR5cGUuQm9vbGVhblwiXHJcbiAgICAgICAgdi10aXBweT1cIidUb2dnbGUgY29sb3JpbmcgZm9yIHRoaXMgcHJvcGVydHknXCJcclxuICAgICAgICA6Y29sb3I9XCJpc0NvbG9yaW5nQWN0aXZlID8gJ3ByaW1hcnknIDogJ3N1YnRsZSdcIlxyXG4gICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgaGlkZS10ZXh0XHJcbiAgICAgICAgOmljb24tcmlnaHQ9XCJQYWludEJ1Y2tldFwiXHJcbiAgICAgICAgQGNsaWNrLnN0b3A9XCJ0b2dnbGVDb2xvcnNcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy92aWV3ZXIvZmlsdGVycy9maWx0ZXIvSGVhZGVyLnZ1ZTo2NTo3XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHtcclxuICBQYWludEJ1Y2tldCxcclxuICBIYXNoLFxyXG4gIENhc2VVcHBlcixcclxuICBDaGV2cm9uc1VwRG93bixcclxuICBFbGxpcHNpcyxcclxuICBDaGV2cm9uc0Rvd25VcCxcclxuICBUb2dnbGVMZWZ0XHJcbn0gZnJvbSAnbHVjaWRlLXZ1ZS1uZXh0J1xyXG5pbXBvcnQge1xyXG4gIEZvcm1CdXR0b24sXHJcbiAgTGF5b3V0TWVudSxcclxuICBIb3Jpem9udGFsRGlyZWN0aW9uLFxyXG4gIHR5cGUgTGF5b3V0TWVudUl0ZW1cclxufSBmcm9tICdAc3BlY2tsZS91aS1jb21wb25lbnRzJ1xyXG5pbXBvcnQgeyB1c2VGaWx0ZXJVdGlsaXRpZXMgfSBmcm9tICd+L2xpYi92aWV3ZXIvY29tcG9zYWJsZXMvZmlsdGVyaW5nL2ZpbHRlcmluZydcclxuaW1wb3J0IHsgdXNlRmlsdGVyQ29sb3JpbmdIZWxwZXJzIH0gZnJvbSAnfi9saWIvdmlld2VyL2NvbXBvc2FibGVzL2ZpbHRlcmluZy9jb2xvcmluZ0hlbHBlcnMnXHJcbmltcG9ydCB0eXBlIHsgRmlsdGVyRGF0YSB9IGZyb20gJ34vbGliL3ZpZXdlci9oZWxwZXJzL2ZpbHRlcnMvdHlwZXMnXHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICd+L2xpYi92aWV3ZXIvaGVscGVycy9maWx0ZXJzL3R5cGVzJ1xyXG5cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wczx7XHJcbiAgZmlsdGVyOiBGaWx0ZXJEYXRhXHJcbn0+KClcclxuXHJcbmNvbnN0IGNvbGxhcHNlZCA9IGRlZmluZU1vZGVsPGJvb2xlYW4+KCdjb2xsYXBzZWQnLCB7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbmNvbnN0IHNob3dBY3Rpb25zTWVudSA9IHJlZihmYWxzZSlcclxuY29uc3QgbWVudUlkID0gdXNlSWQoKVxyXG5cclxuY29uc3QgeyByZW1vdmVBY3RpdmVGaWx0ZXIsIHRvZ2dsZUZpbHRlckFwcGxpZWQsIGdldFByb3BlcnR5TmFtZSwgZmlsdGVycyB9ID1cclxuICB1c2VGaWx0ZXJVdGlsaXRpZXMoKVxyXG5cclxuY29uc3QgeyB0b2dnbGVDb2xvckZpbHRlciB9ID0gdXNlRmlsdGVyQ29sb3JpbmdIZWxwZXJzKClcclxuXHJcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XHJcbiAgc3dhcFByb3BlcnR5OiBbZmlsdGVySWQ6IHN0cmluZ11cclxufT4oKVxyXG5cclxuY29uc3QgaXNDb2xvcmluZ0FjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICByZXR1cm4gZmlsdGVycy5hY3RpdmVDb2xvckZpbHRlcklkLnZhbHVlID09PSBwcm9wcy5maWx0ZXIuaWRcclxufSlcclxuXHJcbmNvbnN0IHJlbW92ZUZpbHRlciA9ICgpID0+IHtcclxuICByZW1vdmVBY3RpdmVGaWx0ZXIocHJvcHMuZmlsdGVyLmlkKVxyXG59XHJcblxyXG5jb25zdCB0b2dnbGVWaXNpYmlsaXR5ID0gKCkgPT4ge1xyXG4gIHRvZ2dsZUZpbHRlckFwcGxpZWQocHJvcHMuZmlsdGVyLmlkKVxyXG59XHJcblxyXG5jb25zdCB0b2dnbGVDb2xvcnMgPSAoKSA9PiB7XHJcbiAgdG9nZ2xlQ29sb3JGaWx0ZXIocHJvcHMuZmlsdGVyLmlkKVxyXG59XHJcblxyXG5jb25zdCBoYW5kbGVQcm9wZXJ0eVN3YXAgPSAoKSA9PiB7XHJcbiAgZW1pdCgnc3dhcFByb3BlcnR5JywgcHJvcHMuZmlsdGVyLmlkKVxyXG59XHJcblxyXG5jb25zdCB0b2dnbGVDb2xsYXBzZWQgPSAoKSA9PiB7XHJcbiAgaWYgKGNvbGxhcHNlZC52YWx1ZSkge1xyXG4gICAgY29sbGFwc2VkLnZhbHVlID0gZmFsc2VcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGFjdGlvbnNJdGVtcyA9IGNvbXB1dGVkPExheW91dE1lbnVJdGVtW11bXT4oKCkgPT4gW1xyXG4gIFtcclxuICAgIHtcclxuICAgICAgdGl0bGU6IHByb3BzLmZpbHRlci5pc0FwcGxpZWQgPyAnRGlzYWJsZSBmaWx0ZXInIDogJ0VuYWJsZSBmaWx0ZXInLFxyXG4gICAgICBpZDogJ3RvZ2dsZS12aXNpYmlsaXR5J1xyXG4gICAgfVxyXG4gIF0sXHJcbiAgW1xyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ1JlbW92ZSBmaWx0ZXInLFxyXG4gICAgICBpZDogJ3JlbW92ZS1maWx0ZXInXHJcbiAgICB9XHJcbiAgXVxyXG5dKVxyXG5cclxuY29uc3Qgb25BY3Rpb25DaG9zZW4gPSAocGFyYW1zOiB7IGl0ZW06IExheW91dE1lbnVJdGVtIH0pID0+IHtcclxuICBjb25zdCB7IGl0ZW0gfSA9IHBhcmFtc1xyXG5cclxuICBzd2l0Y2ggKGl0ZW0uaWQpIHtcclxuICAgIGNhc2UgJ3RvZ2dsZS12aXNpYmlsaXR5JzpcclxuICAgICAgdG9nZ2xlVmlzaWJpbGl0eSgpXHJcbiAgICAgIGJyZWFrXHJcbiAgICBjYXNlICdyZW1vdmUtZmlsdGVyJzpcclxuICAgICAgcmVtb3ZlRmlsdGVyKClcclxuICAgICAgYnJlYWtcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9jb21wb25lbnRzL3ZpZXdlci9maWx0ZXJzL2ZpbHRlci9IZWFkZXIudnVlIn0= |