208 lines
16 KiB
Plaintext
208 lines
16 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/form/select/ProjectRoles.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, RoleInfo } from "/_nuxt/@fs/D:/speckle-server/packages/shared/dist/esm/index.js";
|
|
import { useFormSelectChildInternals } from "/_nuxt/lib/form/composables/select.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: "FormSelectProjectRoles",
|
|
props: {
|
|
modelValue: { type: null, required: false },
|
|
clearable: { type: Boolean, required: false },
|
|
hiddenItems: { type: Array, required: false },
|
|
disabledItems: { type: Array, required: false },
|
|
disabledItemsTooltip: { type: String, required: false },
|
|
allowUnset: { type: Boolean, required: false },
|
|
disabled: { type: Boolean, required: false }
|
|
},
|
|
emits: ["update:modelValue"],
|
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
__expose();
|
|
const emit = __emit;
|
|
const props = __props;
|
|
const elementToWatchForChanges = ref(null);
|
|
const itemContainer = ref(null);
|
|
const labelId = useId();
|
|
const buttonId = useId();
|
|
const { selectedValue, firstItem, isMultiItemArrayValue, hiddenSelectedItemCount } = useFormSelectChildInternals({
|
|
props: toRefs(props),
|
|
emit,
|
|
dynamicVisibility: { elementToWatchForChanges, itemContainer }
|
|
});
|
|
const roles = computed(
|
|
() => Object.values(Roles.Stream).filter((role) => !props.hiddenItems?.includes(role))
|
|
);
|
|
const disabledItemPredicate = (item) => props.disabledItems && props.disabledItems.length > 0 ? props.disabledItems.includes(item) : false;
|
|
const __returned__ = { emit, props, elementToWatchForChanges, itemContainer, labelId, buttonId, selectedValue, firstItem, isMultiItemArrayValue, hiddenSelectedItemCount, roles, disabledItemPredicate, get RoleInfo() {
|
|
return RoleInfo;
|
|
} };
|
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
return __returned__;
|
|
}
|
|
});
|
|
import { createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, 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/ProjectRoles.vue:22:9"
|
|
};
|
|
const _hoisted_2 = {
|
|
ref: "itemContainer",
|
|
class: "flex flex-wrap overflow-hidden space-x-0.5 h-6",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:23:11"
|
|
};
|
|
const _hoisted_3 = {
|
|
key: 0,
|
|
class: "text-foreground-2 normal",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:31:11"
|
|
};
|
|
const _hoisted_4 = {
|
|
key: 1,
|
|
class: "truncate text-foreground",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:37:9"
|
|
};
|
|
const _hoisted_5 = {
|
|
class: "flex flex-col space-y-0.5",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:43:7"
|
|
};
|
|
const _hoisted_6 = {
|
|
class: "truncate font-medium",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:44:9"
|
|
};
|
|
const _hoisted_7 = {
|
|
class: "text-body-2xs text-foreground-2",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:47: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),
|
|
items: $setup.roles,
|
|
clearable: $props.clearable,
|
|
name: "projectRoles",
|
|
label: "Project roles",
|
|
class: "min-w-[100px]",
|
|
"label-id": $setup.labelId,
|
|
"button-id": $setup.buttonId,
|
|
"disabled-item-tooltip": $props.disabledItemsTooltip,
|
|
"disabled-item-predicate": $setup.disabledItemPredicate,
|
|
"allow-unset": $props.allowUnset,
|
|
disabled: $props.disabled,
|
|
"menu-max-width": 250,
|
|
"menu-open-direction": "left",
|
|
"mount-menu-on-body": "",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:2:3"
|
|
}, {
|
|
"nothing-selected": _withCtx(() => [..._cache[1] || (_cache[1] = [
|
|
_createTextVNode(
|
|
"Select role",
|
|
-1
|
|
/* CACHED */
|
|
)
|
|
])]),
|
|
"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,
|
|
class: "text-foreground",
|
|
"data-v-inspector": "components/form/select/ProjectRoles.vue:27:13"
|
|
},
|
|
_toDisplayString($setup.RoleInfo.Stream[item].title + (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,
|
|
_toDisplayString($setup.RoleInfo.Stream[$setup.firstItem(value)].title),
|
|
1
|
|
/* TEXT */
|
|
))
|
|
]),
|
|
option: _withCtx(({ item }) => [
|
|
_createElementVNode("div", _hoisted_5, [
|
|
_createElementVNode(
|
|
"span",
|
|
_hoisted_6,
|
|
_toDisplayString($setup.RoleInfo.Stream[$setup.firstItem(item)].title),
|
|
1
|
|
/* TEXT */
|
|
),
|
|
_createElementVNode(
|
|
"span",
|
|
_hoisted_7,
|
|
_toDisplayString($setup.RoleInfo.Stream[$setup.firstItem(item)].description),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}, 8, ["modelValue", "items", "clearable", "label-id", "button-id", "disabled-item-tooltip", "allow-unset", "disabled"]);
|
|
}
|
|
_sfc_main.__hmrId = "2a53a1bd";
|
|
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/ProjectRoles.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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QURGLGdCQUFTLE9BQU8saUJBQVUsSUFBSSxHQUFHLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUUzQztBQUFBLFVBRU87QUFBQSxVQUZQO0FBQUEsVUFFTyxpQkFERixnQkFBUyxPQUFPLGlCQUFVLElBQUksR0FBRyxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIlByb2plY3RSb2xlcy52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gIDxGb3JtU2VsZWN0QmFzZVxyXG4gICAgdi1tb2RlbD1cInNlbGVjdGVkVmFsdWVcIlxyXG4gICAgOml0ZW1zPVwicm9sZXNcIlxyXG4gICAgOmNsZWFyYWJsZT1cImNsZWFyYWJsZVwiXHJcbiAgICBuYW1lPVwicHJvamVjdFJvbGVzXCJcclxuICAgIGxhYmVsPVwiUHJvamVjdCByb2xlc1wiXHJcbiAgICBjbGFzcz1cIm1pbi13LVsxMDBweF1cIlxyXG4gICAgOmxhYmVsLWlkPVwibGFiZWxJZFwiXHJcbiAgICA6YnV0dG9uLWlkPVwiYnV0dG9uSWRcIlxyXG4gICAgOmRpc2FibGVkLWl0ZW0tdG9vbHRpcD1cImRpc2FibGVkSXRlbXNUb29sdGlwXCJcclxuICAgIDpkaXNhYmxlZC1pdGVtLXByZWRpY2F0ZT1cImRpc2FibGVkSXRlbVByZWRpY2F0ZVwiXHJcbiAgICA6YWxsb3ctdW5zZXQ9XCJhbGxvd1Vuc2V0XCJcclxuICAgIDpkaXNhYmxlZD1cImRpc2FibGVkXCJcclxuICAgIDptZW51LW1heC13aWR0aD1cIjI1MFwiXHJcbiAgICBtZW51LW9wZW4tZGlyZWN0aW9uPVwibGVmdFwiXHJcbiAgICBtb3VudC1tZW51LW9uLWJvZHkgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdFJvbGVzLnZ1ZToyOjNcIlxyXG4gID5cclxuICAgIDx0ZW1wbGF0ZSAjbm90aGluZy1zZWxlY3RlZD5TZWxlY3Qgcm9sZTwvdGVtcGxhdGU+XHJcbiAgICA8dGVtcGxhdGUgI3NvbWV0aGluZy1zZWxlY3RlZD1cInsgdmFsdWUgfVwiPlxyXG4gICAgICA8dGVtcGxhdGUgdi1pZj1cImlzTXVsdGlJdGVtQXJyYXlWYWx1ZSh2YWx1ZSlcIj5cclxuICAgICAgICA8ZGl2IHJlZj1cImVsZW1lbnRUb1dhdGNoRm9yQ2hhbmdlc1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0wLjVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9mb3JtL3NlbGVjdC9Qcm9qZWN0Um9sZXMudnVlOjIyOjlcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgcmVmPVwiaXRlbUNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgb3ZlcmZsb3ctaGlkZGVuIHNwYWNlLXgtMC41IGgtNlwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1Byb2plY3RSb2xlcy52dWU6MjM6MTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IHYtZm9yPVwiKGl0ZW0sIGkpIGluIHZhbHVlXCIgOmtleT1cIml0ZW1cIiBjbGFzcz1cInRleHQtZm9yZWdyb3VuZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1Byb2plY3RSb2xlcy52dWU6Mjc6MTNcIj5cclxuICAgICAgICAgICAgICB7eyBSb2xlSW5mby5TdHJlYW1baXRlbV0udGl0bGUgKyAoaSA8IHZhbHVlLmxlbmd0aCAtIDEgPyAnLCAnIDogJycpIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IHYtaWY9XCJoaWRkZW5TZWxlY3RlZEl0ZW1Db3VudCA+IDBcIiBjbGFzcz1cInRleHQtZm9yZWdyb3VuZC0yIG5vcm1hbFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1Byb2plY3RSb2xlcy52dWU6MzE6MTFcIj5cclxuICAgICAgICAgICAgK3t7IGhpZGRlblNlbGVjdGVkSXRlbUNvdW50IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1mb3JlZ3JvdW5kXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdFJvbGVzLnZ1ZTozNzo5XCI+XHJcbiAgICAgICAgICB7eyBSb2xlSW5mby5TdHJlYW1bZmlyc3RJdGVtKHZhbHVlKV0udGl0bGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgIDwvdGVtcGxhdGU+XHJcbiAgICA8dGVtcGxhdGUgI29wdGlvbj1cInsgaXRlbSB9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMC41XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdFJvbGVzLnZ1ZTo0Mzo3XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSBmb250LW1lZGl1bVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2Zvcm0vc2VsZWN0L1Byb2plY3RSb2xlcy52dWU6NDQ6OVwiPlxyXG4gICAgICAgICAge3sgUm9sZUluZm8uU3RyZWFtW2ZpcnN0SXRlbShpdGVtKV0udGl0bGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJvZHktMnhzIHRleHQtZm9yZWdyb3VuZC0yXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdFJvbGVzLnZ1ZTo0Nzo5XCI+XHJcbiAgICAgICAgICB7eyBSb2xlSW5mby5TdHJlYW1bZmlyc3RJdGVtKGl0ZW0pXS5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gIDwvRm9ybVNlbGVjdEJhc2U+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IFJvbGVzLCBSb2xlSW5mbyB9IGZyb20gJ0BzcGVja2xlL3NoYXJlZCdcclxuaW1wb3J0IHR5cGUgeyBTdHJlYW1Sb2xlcywgTnVsbGFibGUgfSBmcm9tICdAc3BlY2tsZS9zaGFyZWQnXHJcbmltcG9ydCB7IHVzZUZvcm1TZWxlY3RDaGlsZEludGVybmFscyB9IGZyb20gJ35+L2xpYi9mb3JtL2NvbXBvc2FibGVzL3NlbGVjdCdcclxuXHJcbnR5cGUgVmFsdWVUeXBlID0gU3RyZWFtUm9sZXMgfCBTdHJlYW1Sb2xlc1tdIHwgdW5kZWZpbmVkXHJcblxyXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHM8e1xyXG4gIChlOiAndXBkYXRlOm1vZGVsVmFsdWUnLCB2OiBWYWx1ZVR5cGUpOiB2b2lkXHJcbn0+KClcclxuXHJcbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8e1xyXG4gIG1vZGVsVmFsdWU/OiBWYWx1ZVR5cGVcclxuICBjbGVhcmFibGU/OiBib29sZWFuXHJcbiAgaGlkZGVuSXRlbXM/OiBTdHJlYW1Sb2xlc1tdXHJcbiAgZGlzYWJsZWRJdGVtcz86IFN0cmVhbVJvbGVzW11cclxuICBkaXNhYmxlZEl0ZW1zVG9vbHRpcD86IHN0cmluZ1xyXG4gIGFsbG93VW5zZXQ/OiBib29sZWFuXHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuXHJcbn0+KClcclxuXHJcbmNvbnN0IGVsZW1lbnRUb1dhdGNoRm9yQ2hhbmdlcyA9IHJlZihudWxsIGFzIE51bGxhYmxlPEhUTUxFbGVtZW50PilcclxuY29uc3QgaXRlbUNvbnRhaW5lciA9IHJlZihudWxsIGFzIE51bGxhYmxlPEhUTUxFbGVtZW50PilcclxuY29uc3QgbGFiZWxJZCA9IHVzZUlkKClcclxuY29uc3QgYnV0dG9uSWQgPSB1c2VJZCgpXHJcblxyXG5jb25zdCB7IHNlbGVjdGVkVmFsdWUsIGZpcnN0SXRlbSwgaXNNdWx0aUl0ZW1BcnJheVZhbHVlLCBoaWRkZW5TZWxlY3RlZEl0ZW1Db3VudCB9ID1cclxuICB1c2VGb3JtU2VsZWN0Q2hpbGRJbnRlcm5hbHM8U3RyZWFtUm9sZXM+KHtcclxuICAgIHByb3BzOiB0b1JlZnMocHJvcHMpLFxyXG4gICAgZW1pdCxcclxuICAgIGR5bmFtaWNWaXNpYmlsaXR5OiB7IGVsZW1lbnRUb1dhdGNoRm9yQ2hhbmdlcywgaXRlbUNvbnRhaW5lciB9XHJcbiAgfSlcclxuXHJcbmNvbnN0IHJvbGVzID0gY29tcHV0ZWQoKCkgPT5cclxuICBPYmplY3QudmFsdWVzKFJvbGVzLlN0cmVhbSkuZmlsdGVyKChyb2xlKSA9PiAhcHJvcHMuaGlkZGVuSXRlbXM/LmluY2x1ZGVzKHJvbGUpKVxyXG4pXHJcblxyXG5jb25zdCBkaXNhYmxlZEl0ZW1QcmVkaWNhdGUgPSAoaXRlbTogU3RyZWFtUm9sZXMpID0+XHJcbiAgcHJvcHMuZGlzYWJsZWRJdGVtcyAmJiBwcm9wcy5kaXNhYmxlZEl0ZW1zLmxlbmd0aCA+IDBcclxuICAgID8gcHJvcHMuZGlzYWJsZWRJdGVtcy5pbmNsdWRlcyhpdGVtKVxyXG4gICAgOiBmYWxzZVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvZm9ybS9zZWxlY3QvUHJvamVjdFJvbGVzLnZ1ZSJ9 |