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