@ozdao/martyrs 0.2.577 → 0.2.578

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/builder.js +33 -33
  2. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
  3. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  4. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  5. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  6. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.js → SelectMulti.vue2.js} +2 -2
  7. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
  8. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  9. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  10. package/dist/martyrs/src/components/Upload/{Upload.vue.js → Upload.vue2.js} +2 -2
  11. package/dist/martyrs/src/components/Upload/Upload.vue2.js.map +1 -0
  12. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  13. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  14. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  15. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  16. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  17. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  18. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  19. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  20. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js +1 -1
  21. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js +1 -1
  22. package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.js +1 -1
  23. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  24. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  25. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  26. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  27. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  28. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  29. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  30. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  31. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  32. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  33. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  34. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  35. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  36. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  37. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  38. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  39. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  40. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  41. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  42. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  43. package/dist/martyrs.css +1 -1
  44. package/package.json +17 -17
  45. package/src/components/BottomSheet/BottomSheet.vue +1 -1
  46. package/src/jit/rules.js +42 -41
  47. package/src/modules/governance/reactcode/package-lock.json +4229 -0
  48. package/src/styles/layout.scss +0 -3
  49. package/src/styles/reset.scss +5 -2
  50. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  51. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
  52. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
  53. package/dist/martyrs/src/components/Upload/Upload.vue.js.map +0 -1
package/dist/builder.js CHANGED
@@ -919,6 +919,7 @@ class MartyrsJIT {
919
919
  }
920
920
  }
921
921
  const sizeVars = ["extra", "big", "semi", "medium", "regular", "small", "thin", "micro", "nano"];
922
+ const colorVariants = ["extra", "big", "semi", "medium", "regular", "small", "thin", "micro", "nano"];
922
923
  const colorNames = [
923
924
  "main",
924
925
  "second",
@@ -945,39 +946,6 @@ const colorNames = [
945
946
  "reddit",
946
947
  "transparent"
947
948
  ];
948
- const colorVariants = ["extra", "big", "semi", "medium", "regular", "small", "thin", "micro", "nano"];
949
- function resolveColor(name) {
950
- for (const color of colorNames) {
951
- if (name === color) {
952
- return `rgb(var(--${color}))`;
953
- }
954
- for (const variant of colorVariants) {
955
- if (name === `${color}-${variant}`) {
956
- return `var(--${color}-${variant})`;
957
- }
958
- }
959
- }
960
- return null;
961
- }
962
- function resolveValue(value, jit) {
963
- if (!value) return null;
964
- if (value.startsWith("[") && value.endsWith("]")) {
965
- const inner = value.slice(1, -1);
966
- return jit ? jit.parseArbitraryValue(inner) : inner.replace(/_/g, " ");
967
- }
968
- if (sizeVars.includes(value)) return `var(--${value})`;
969
- if (/^\d+r$/.test(value)) return value.replace("r", "rem");
970
- if (/^\d+(vh|vw|dvh|dvw|svh|svw|lvh|lvw|deg)$/.test(value)) return value;
971
- if (/^\d+$/.test(value)) return `${value}%`;
972
- if (value === "auto") return "auto";
973
- if (value === "zero") return "0";
974
- if (value === "full") return "100%";
975
- if (value === "screen") return "100vh";
976
- if (value === "min") return "min-content";
977
- if (value === "max") return "max-content";
978
- if (value === "fit") return "fit-content";
979
- return null;
980
- }
981
949
  const dir = { t: "top", r: "right", b: "bottom", l: "left" };
982
950
  const easings = {
983
951
  "linear": "linear",
@@ -1015,6 +983,38 @@ const easings = {
1015
983
  "spring": "cubic-bezier(0.23,1,0.32,1.01)",
1016
984
  "bounce": "cubic-bezier(0.71,-0.46,0.88,0.6)"
1017
985
  };
986
+ function resolveColor(name) {
987
+ for (const color of colorNames) {
988
+ if (name === color) {
989
+ return `rgb(var(--${color}))`;
990
+ }
991
+ for (const variant of colorVariants) {
992
+ if (name === `${color}-${variant}`) {
993
+ return `var(--${color}-${variant})`;
994
+ }
995
+ }
996
+ }
997
+ return null;
998
+ }
999
+ function resolveValue(value, jit) {
1000
+ if (!value) return null;
1001
+ if (value.startsWith("[") && value.endsWith("]")) {
1002
+ const inner = value.slice(1, -1);
1003
+ return jit ? jit.parseArbitraryValue(inner) : inner.replace(/_/g, " ");
1004
+ }
1005
+ if (sizeVars.includes(value)) return `var(--${value})`;
1006
+ if (/^\d+r$/.test(value)) return value.replace("r", "rem");
1007
+ if (/^\d+(vh|vw|dvh|dvw|svh|svw|lvh|lvw|deg)$/.test(value)) return value;
1008
+ if (/^\d+$/.test(value)) return `${value}%`;
1009
+ if (value === "auto") return "auto";
1010
+ if (value === "zero") return "0";
1011
+ if (value === "full") return "100%";
1012
+ if (value === "screen") return "100vh";
1013
+ if (value === "min") return "min-content";
1014
+ if (value === "max") return "max-content";
1015
+ if (value === "fit") return "fit-content";
1016
+ return null;
1017
+ }
1018
1018
  function handleNegative(val, jit) {
1019
1019
  const isNeg = val.endsWith("-negative");
1020
1020
  const clean = isNeg ? val.slice(0, -9) : val;
@@ -65,7 +65,7 @@ const _sfc_main = {
65
65
  key: 0,
66
66
  ref_key: "wrapper",
67
67
  ref: wrapper,
68
- class: normalizeClass(["w-100 bs-black rows-1 h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999", {
68
+ class: normalizeClass(["w-100 bs-black flex flex-column h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999", {
69
69
  "pd-t-extra": _ctx.MOBILE_APP === "ios"
70
70
  }])
71
71
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.vue.js","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section\n v-if=\"show\"\n ref=\"wrapper\"\n class=\"w-100 bs-black rows-1 h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n }\"\n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black pd-small br-b-1px br-light pos-relative bg-white flex-center flex z-index-2\"\n >\n <div class=\"radius-extra pd-nano w-3r h-1r bg-light\"></div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nwatch(() => props.show, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AAad,UAAM,QAAQ;AAId,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,IAAI,CAAC;AACpB,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,MAAM,MAAM,MAAM,CAAC,WAAW;AAClC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MACzC,OAAO;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC5C;AAAA,IACF,CAAC;AAED,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACrC;AAAA,IACF;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC5B,OAAO;AAEL,cAAM,QAAQ;AAAA,MAEhB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BottomSheet.vue.js","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section\n v-if=\"show\"\n ref=\"wrapper\"\n class=\"w-100 bs-black flex flex-column h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n }\"\n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black pd-small br-b-1px br-light pos-relative bg-white flex-center flex z-index-2\"\n >\n <div class=\"radius-extra pd-nano w-3r h-1r bg-light\"></div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nwatch(() => props.show, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AAad,UAAM,QAAQ;AAId,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,IAAI,CAAC;AACpB,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,MAAM,MAAM,MAAM,CAAC,WAAW;AAClC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MACzC,OAAO;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC5C;AAAA,IACF,CAAC;AAED,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACrC;AAAA,IACF;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC5B,OAAO;AAEL,cAAM,QAAQ;AAAA,MAEhB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, renderSlot } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
4
4
  const _sfc_main = {
5
5
  __name: "Menu",
@@ -14,4 +14,4 @@ const _sfc_main = {
14
14
  export {
15
15
  _sfc_main as default
16
16
  };
17
- //# sourceMappingURL=Menu.vue2.js.map
17
+ //# sourceMappingURL=Menu.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, watch, onMounted, createElementBlock, openBlock, withKeys, normalizeClass, withModifiers, renderSlot, createElementVNode, createVNode, createCommentVNode, withDirectives, Fragment, renderList, toDisplayString, vShow, Transition, withCtx, normalizeStyle, createTextVNode, nextTick } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _hoisted_1 = ["tabindex", "onKeydown", "onKeypress", "aria-owns"];
4
4
  const _hoisted_2 = { class: "multiselect__tags-wrap" };
5
5
  const _hoisted_3 = { class: "multiselect__tag" };
@@ -622,4 +622,4 @@ const _sfc_main = {
622
622
  export {
623
623
  _sfc_main as default
624
624
  };
625
- //# sourceMappingURL=SelectMulti.vue.js.map
625
+ //# sourceMappingURL=SelectMulti.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectMulti.vue2.js","sources":["../../../../../src/components/SelectMulti/SelectMulti.vue"],"sourcesContent":["<template>\n <div\n ref=\"multiselect\"\n :tabindex=\"searchable ? -1 : tabindex\"\n :class=\"{\n 'multiselect--active': isOpen,\n 'multiselect--disabled': disabled,\n 'multiselect--above': isAbove,\n 'multiselect--has-options-group': hasOptionGroup\n }\"\n @focus=\"activate\"\n @blur=\"searchable ? false : deactivate\"\n @keydown.self.down.prevent=\"pointerForward\"\n @keydown.self.up.prevent=\"pointerBackward\"\n @keypress.enter.tab.stop.self=\"addPointerElement\"\n @keyup.esc=\"deactivate\"\n class=\"multiselect flex flex-v-center\"\n role=\"combobox\"\n :aria-owns=\"`listbox-${id}`\">\n \n <slot name=\"caret\" :toggle>\n <div @mousedown.prevent.stop=\"toggle\" class=\"multiselect__select\"></div>\n </slot>\n \n <slot name=\"clear\" :search />\n \n <div ref=\"tags\" class=\"multiselect__tags\">\n <slot\n name=\"selection\"\n :search\n :remove=\"removeElement\"\n :values=\"visibleValues\"\n :is-open=\"isOpen\">\n <div class=\"multiselect__tags-wrap\" v-show=\"visibleValues.length > 0\">\n <template v-for=\"(option, index) of visibleValues\" :key=\"index\">\n <slot name=\"tag\" :option :search :remove=\"removeElement\">\n <span class=\"multiselect__tag\">\n <span v-text=\"getOptionLabel(option)\" />\n <i \n tabindex=\"1\" \n @keypress.enter.prevent=\"removeElement(option)\"\n @mousedown.prevent=\"removeElement(option)\" \n class=\"multiselect__tag-icon\" />\n </span>\n </slot>\n </template>\n </div>\n <template v-if=\"internalValue?.length > limit\">\n <slot name=\"limit\">\n <strong class=\"multiselect__strong\" v-text=\"limitText(internalValue.length - limit)\" />\n </slot>\n </template>\n </slot>\n <transition name=\"multiselect__loading\">\n <slot name=\"loading\">\n <div v-show=\"loading\" class=\"multiselect__spinner\" />\n </slot>\n </transition>\n <input\n ref=\"searchInput\"\n v-if=\"searchable\"\n :name\n :id\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n :placeholder\n :style=\"inputStyle\"\n :value=\"search\"\n :disabled\n :tabindex\n @input=\"updateSearch($event.target.value)\"\n @focus.prevent=\"activate\"\n @blur.prevent=\"deactivate\"\n @keyup.esc=\"deactivate\"\n @keydown.down.prevent=\"pointerForward\"\n @keydown.up.prevent=\"pointerBackward\"\n @keypress.enter.prevent.stop.self=\"addPointerElement\"\n @keydown.delete.stop=\"removeLastElement\"\n class=\"multiselect__input\"\n :aria-controls=\"`listbox-${id}`\" />\n <span\n v-if=\"isSingleLabelVisible\"\n class=\"multiselect__single\"\n @mousedown.prevent=\"toggle\">\n <slot name=\"singleLabel\" :option=\"singleValue\">\n {{ currentOptionLabel }}\n </slot>\n </span>\n <span\n v-if=\"isPlaceholderVisible\"\n class=\"multiselect__placeholder\"\n @mousedown.prevent=\"toggle\">\n <slot name=\"placeholder\">\n {{ placeholder }}\n </slot>\n </span>\n </div>\n \n <transition name=\"multiselect\">\n <div\n class=\"multiselect__content-wrapper\"\n v-show=\"isOpen\"\n @focus=\"activate\"\n tabindex=\"-1\"\n @mousedown.prevent\n :style=\"{ maxHeight: `${optimizedHeight}px` }\"\n ref=\"list\">\n <ul class=\"multiselect__content\" :style=\"contentStyle\" role=\"listbox\" :id=\"`listbox-${id}`\">\n <slot name=\"beforeList\" />\n <li v-if=\"multiple && max === internalValue.length\">\n <span class=\"multiselect__option\">\n <slot name=\"maxElements\">\n Maximum of {{ max }} options selected. First remove a selected option to select another.\n </slot>\n </span>\n </li>\n <template v-if=\"!max || internalValue.length < max\">\n <li \n class=\"multiselect__element\"\n v-for=\"(option, index) of filteredOptions\"\n :key=\"index\"\n :id=\"`${id}-${index}`\"\n :role=\"!(option?.$isLabel || option?.$isDisabled) ? 'option' : null\">\n <span\n v-if=\"!(option?.$isLabel || option?.$isDisabled)\"\n :class=\"optionHighlight(index, option)\"\n @click.stop=\"select(option)\"\n @mouseenter.self=\"pointerSet(index)\"\n :data-select=\"option?.isTag ? tagPlaceholder : selectLabelText\"\n :data-selected=\"selectedLabelText\"\n :data-deselect=\"deselectLabelText\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option :search :index>\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n <span\n v-if=\"option?.$isLabel || option?.$isDisabled\"\n :data-select=\"groupSelect && selectGroupLabelText\"\n :data-deselect=\"groupSelect && deselectGroupLabelText\"\n :class=\"groupHighlight(index, option)\"\n @mouseenter.self=\"groupSelect && pointerSet(index)\"\n @mousedown.prevent=\"selectGroup(option)\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option :search :index>\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n </li>\n </template>\n <li v-show=\"showNoResults && filteredOptions.length === 0 && search && !loading\">\n <span class=\"multiselect__option\">\n <slot name=\"noResult\" :search>\n No elements found. Consider changing the search query.\n </slot>\n </span>\n </li>\n <li v-show=\"showNoOptions && (options.length === 0 || (hasOptionGroup && filteredOptions.length === 0)) && !search && !loading\">\n <span class=\"multiselect__option\">\n <slot name=\"noOptions\">List is empty.</slot>\n </span>\n </li>\n <slot name=\"afterList\" />\n </ul>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted, nextTick } from 'vue'\n\n// Props\nconst props = defineProps({\n modelValue: { type: null, default: () => [] },\n options: { type: Array, required: true },\n multiple: { type: Boolean, default: false },\n trackBy: String,\n label: String,\n searchable: { type: Boolean, default: true },\n clearOnSelect: { type: Boolean, default: true },\n hideSelected: { type: Boolean, default: false },\n placeholder: { type: String, default: 'Select option' },\n allowEmpty: { type: Boolean, default: true },\n resetAfter: { type: Boolean, default: false },\n closeOnSelect: { type: Boolean, default: true },\n customLabel: {\n type: Function,\n default: (option, label) => {\n if (!option && option !== 0) return ''\n return label ? option[label] : option\n }\n },\n taggable: { type: Boolean, default: false },\n tagPlaceholder: { type: String, default: 'Press enter to create a tag' },\n tagPosition: { type: String, default: 'top' },\n max: { type: [Number, Boolean], default: false },\n id: { default: null },\n optionsLimit: { type: Number, default: 1000 },\n groupValues: String,\n groupLabel: String,\n groupSelect: { type: Boolean, default: false },\n blockKeys: { type: Array, default: () => [] },\n preserveSearch: { type: Boolean, default: false },\n preselectFirst: { type: Boolean, default: false },\n preventAutofocus: { type: Boolean, default: false },\n internalSearch: { type: Boolean, default: true },\n name: { type: String, default: '' },\n selectLabel: { type: String, default: 'Press enter to select' },\n selectGroupLabel: { type: String, default: 'Press enter to select group' },\n selectedLabel: { type: String, default: 'Selected' },\n deselectLabel: { type: String, default: 'Press enter to remove' },\n deselectGroupLabel: { type: String, default: 'Press enter to deselect group' },\n showLabels: { type: Boolean, default: true },\n limit: { type: Number, default: 99999 },\n maxHeight: { type: Number, default: 300 },\n limitText: { type: Function, default: count => `and ${count} more` },\n loading: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n openDirection: { type: String, default: '' },\n showNoOptions: { type: Boolean, default: true },\n showNoResults: { type: Boolean, default: true },\n tabindex: { type: Number, default: 0 },\n showPointer: { type: Boolean, default: true },\n optionHeight: { type: Number, default: 40 }\n})\n\n// Emits\nconst emit = defineEmits(['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'])\n\n// Refs\nconst multiselect = ref(null)\nconst searchInput = ref(null)\nconst list = ref(null)\nconst tags = ref(null)\n\n// State\nconst search = ref('')\nconst isOpen = ref(false)\nconst preferredOpenDirection = ref('below')\nconst optimizedHeight = ref(props.maxHeight)\nconst pointer = ref(0)\nconst pointerDirty = ref(false)\n\n// Helper functions\nconst isEmpty = opt => {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nconst includes = (str, query) => {\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n return str.toString().toLowerCase().indexOf(query.trim()) !== -1\n}\n\nconst filterOptions = (options, search, label, customLabel) => {\n return search \n ? options.filter(option => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length)\n : options\n}\n\nconst flattenOptions = (values, label) => options =>\n options.reduce((prev, curr) => {\n if (curr[values]?.length) {\n prev.push({ $groupLabel: curr[label], $isLabel: true })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n\nconst stripGroups = options => options.filter(option => !option.$isLabel)\n\nconst filterGroups = (search, label, values, groupLabel, customLabel) => groups =>\n groups.map(group => {\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n return groupOptions.length ? { [groupLabel]: group[groupLabel], [values]: groupOptions } : []\n })\n\nconst flow = (...fns) => x => fns.reduce((v, f) => f(v), x)\n\n// Computed\nconst internalValue = computed(() => {\n const val = props.modelValue\n return val || val === 0 ? (Array.isArray(val) ? val : [val]) : []\n})\n\nconst filteredOptions = computed(() => {\n const searchVal = search.value || ''\n const normalizedSearch = searchVal.toLowerCase().trim()\n let options = props.options.concat()\n\n if (props.internalSearch) {\n options = props.groupValues \n ? filterAndFlat(options, normalizedSearch, props.label)\n : filterOptions(options, normalizedSearch, props.label, props.customLabel)\n } else {\n options = props.groupValues \n ? flattenOptions(props.groupValues, props.groupLabel)(options) \n : options\n }\n\n options = props.hideSelected ? options.filter(o => !isSelected(o)) : options\n\n if (props.taggable && normalizedSearch.length && !isExistingOption(normalizedSearch)) {\n if (props.tagPosition === 'bottom') {\n options.push({ isTag: true, label: searchVal })\n } else {\n options.unshift({ isTag: true, label: searchVal })\n }\n }\n\n return options.slice(0, props.optionsLimit)\n})\n\nconst valueKeys = computed(() => \n props.trackBy ? internalValue.value.map(el => el[props.trackBy]) : internalValue.value\n)\n\nconst optionKeys = computed(() => {\n const options = props.groupValues ? flatAndStrip(props.options) : props.options\n return options.map(el => props.customLabel(el, props.label).toString().toLowerCase())\n})\n\nconst currentOptionLabel = computed(() =>\n props.multiple \n ? (props.searchable ? '' : props.placeholder)\n : internalValue.value.length \n ? getOptionLabel(internalValue.value[0])\n : props.searchable ? '' : props.placeholder\n)\n\nconst hasOptionGroup = computed(() => props.groupValues && props.groupLabel && props.groupSelect)\n\nconst isSingleLabelVisible = computed(() =>\n (singleValue.value || singleValue.value === 0) &&\n (!isOpen.value || !props.searchable) &&\n !visibleValues.value.length\n)\n\nconst isPlaceholderVisible = computed(() =>\n !internalValue.value.length && (!props.searchable || !isOpen.value)\n)\n\nconst visibleValues = computed(() =>\n props.multiple ? internalValue.value.slice(0, props.limit) : []\n)\n\nconst singleValue = computed(() => internalValue.value[0])\n\nconst deselectLabelText = computed(() => props.showLabels ? props.deselectLabel : '')\nconst deselectGroupLabelText = computed(() => props.showLabels ? props.deselectGroupLabel : '')\nconst selectLabelText = computed(() => props.showLabels ? props.selectLabel : '')\nconst selectGroupLabelText = computed(() => props.showLabels ? props.selectGroupLabel : '')\nconst selectedLabelText = computed(() => props.showLabels ? props.selectedLabel : '')\n\nconst inputStyle = computed(() => {\n if (props.searchable || (props.multiple && props.modelValue?.length)) {\n return isOpen.value\n ? { width: '100%' }\n : { width: '0', position: 'absolute', padding: '0' }\n }\n return ''\n})\n\nconst contentStyle = computed(() => \n props.options.length ? { display: 'inline-block' } : { display: 'block' }\n)\n\nconst isAbove = computed(() => {\n if (['above', 'top'].includes(props.openDirection)) return true\n if (['below', 'bottom'].includes(props.openDirection)) return false\n return preferredOpenDirection.value === 'above'\n})\n\nconst pointerPosition = computed(() => pointer.value * props.optionHeight)\nconst visibleElements = computed(() => optimizedHeight.value / props.optionHeight)\n\n// Methods\nconst filterAndFlat = (options, search, label) =>\n flow(\n filterGroups(search, label, props.groupValues, props.groupLabel, props.customLabel),\n flattenOptions(props.groupValues, props.groupLabel)\n )(options)\n\nconst flatAndStrip = options =>\n flow(\n flattenOptions(props.groupValues, props.groupLabel),\n stripGroups\n )(options)\n\nconst updateSearch = query => {\n search.value = query\n}\n\nconst isExistingOption = query => \n props.options ? optionKeys.value.indexOf(query) > -1 : false\n\nconst isSelected = option => {\n const opt = props.trackBy ? option[props.trackBy] : option\n return valueKeys.value.indexOf(opt) > -1\n}\n\nconst isOptionDisabled = option => !!option?.$isDisabled\n\nconst getOptionLabel = option => {\n if (isEmpty(option)) return ''\n if (option.isTag) return option.label\n if (option.$isLabel) return option.$groupLabel\n const label = props.customLabel(option, props.label)\n return isEmpty(label) ? '' : label\n}\n\nconst select = (option, key) => {\n if (option.$isLabel && props.groupSelect) {\n selectGroup(option)\n return\n }\n if (props.blockKeys.indexOf(key) !== -1 || props.disabled || option.$isDisabled || option.$isLabel) return\n if (props.max && props.multiple && internalValue.value.length === props.max) return\n if (key === 'Tab' && !pointerDirty.value) return\n \n if (option.isTag) {\n emit('tag', option.label, props.id)\n search.value = ''\n if (props.closeOnSelect && !props.multiple) deactivate()\n } else {\n if (isSelected(option)) {\n if (key !== 'Tab') removeElement(option)\n return\n }\n\n emit('update:modelValue', props.multiple ? internalValue.value.concat([option]) : option)\n emit('select', option, props.id)\n\n if (props.clearOnSelect) search.value = ''\n }\n \n if (props.closeOnSelect) deactivate()\n}\n\nconst selectGroup = selectedGroup => {\n const group = props.options.find(option => \n option[props.groupLabel] === selectedGroup.$groupLabel\n )\n if (!group) return\n\n if (wholeGroupSelected(group)) {\n emit('remove', group[props.groupValues], props.id)\n const newValue = internalValue.value.filter(option => \n group[props.groupValues].indexOf(option) === -1\n )\n emit('update:modelValue', newValue)\n } else {\n let optionsToAdd = group[props.groupValues].filter(option => \n !(isOptionDisabled(option) || isSelected(option))\n )\n if (props.max) optionsToAdd.splice(props.max - internalValue.value.length)\n \n emit('select', optionsToAdd, props.id)\n emit('update:modelValue', internalValue.value.concat(optionsToAdd))\n }\n\n if (props.closeOnSelect) deactivate()\n}\n\nconst wholeGroupSelected = group =>\n group[props.groupValues].every(option => isSelected(option) || isOptionDisabled(option))\n\nconst wholeGroupDisabled = group =>\n group[props.groupValues].every(isOptionDisabled)\n\nconst removeElement = (option, shouldClose = true) => {\n if (props.disabled || option?.$isDisabled) return\n if (!props.allowEmpty && internalValue.value.length <= 1) {\n deactivate()\n return\n }\n\n const index = typeof option === 'object' \n ? valueKeys.value.indexOf(option[props.trackBy])\n : valueKeys.value.indexOf(option)\n\n const newValue = props.multiple\n ? internalValue.value.slice(0, index).concat(internalValue.value.slice(index + 1))\n : null\n\n emit('update:modelValue', newValue)\n emit('remove', option, props.id)\n\n if (props.closeOnSelect && shouldClose) deactivate()\n}\n\nconst removeLastElement = () => {\n if (props.blockKeys.indexOf('Delete') !== -1) return\n if (search.value.length === 0 && Array.isArray(internalValue.value) && internalValue.value.length) {\n removeElement(internalValue.value[internalValue.value.length - 1], false)\n }\n}\n\nconst activate = () => {\n if (isOpen.value || props.disabled) return\n\n adjustPosition()\n if (props.groupValues && pointer.value === 0 && filteredOptions.value.length) {\n pointer.value = 1\n }\n\n isOpen.value = true\n if (props.searchable) {\n if (!props.preserveSearch) search.value = ''\n if (!props.preventAutofocus) nextTick(() => searchInput.value?.focus())\n } else if (!props.preventAutofocus) {\n multiselect.value?.focus()\n }\n emit('open', props.id)\n}\n\nconst deactivate = () => {\n if (!isOpen.value) return\n\n isOpen.value = false\n if (props.searchable) {\n searchInput.value?.blur()\n } else {\n multiselect.value?.blur()\n }\n if (!props.preserveSearch) search.value = ''\n emit('close', getValue(), props.id)\n}\n\nconst toggle = () => {\n isOpen.value ? deactivate() : activate()\n}\n\nconst adjustPosition = () => {\n if (typeof window === 'undefined') return\n\n const spaceAbove = multiselect.value.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - multiselect.value.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > props.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || ['below', 'bottom'].includes(props.openDirection)) {\n preferredOpenDirection.value = 'below'\n optimizedHeight.value = Math.min(spaceBelow - 40, props.maxHeight)\n } else {\n preferredOpenDirection.value = 'above'\n optimizedHeight.value = Math.min(spaceAbove - 40, props.maxHeight)\n }\n}\n\nconst getValue = () => \n props.multiple ? internalValue.value : internalValue.value.length === 0 ? null : internalValue.value[0]\n\n// Pointer methods\nconst optionHighlight = (index, option) => ({\n 'multiselect__option--highlight': index === pointer.value && props.showPointer,\n 'multiselect__option--selected': isSelected(option)\n})\n\nconst groupHighlight = (index, selectedGroup) => {\n if (!props.groupSelect) {\n return ['multiselect__option--disabled', { 'multiselect__option--group': selectedGroup.$isLabel }]\n }\n const group = props.options.find(option => \n option[props.groupLabel] === selectedGroup.$groupLabel\n )\n return group && !wholeGroupDisabled(group)\n ? ['multiselect__option--group', \n { 'multiselect__option--highlight': index === pointer.value && props.showPointer },\n { 'multiselect__option--group-selected': wholeGroupSelected(group) }]\n : 'multiselect__option--disabled'\n}\n\nconst addPointerElement = ({ key } = 'Enter') => {\n if (filteredOptions.value.length > 0) {\n select(filteredOptions.value[pointer.value], key)\n }\n pointerReset()\n}\n\nconst pointerForward = () => {\n if (pointer.value < filteredOptions.value.length - 1) {\n pointer.value++\n if (list.value.scrollTop <= pointerPosition.value - (visibleElements.value - 1) * props.optionHeight) {\n list.value.scrollTop = pointerPosition.value - (visibleElements.value - 1) * props.optionHeight\n }\n if (filteredOptions.value[pointer.value]?.$isLabel && !props.groupSelect) pointerForward()\n }\n pointerDirty.value = true\n}\n\nconst pointerBackward = () => {\n if (pointer.value > 0) {\n pointer.value--\n if (list.value.scrollTop >= pointerPosition.value) {\n list.value.scrollTop = pointerPosition.value\n }\n if (filteredOptions.value[pointer.value]?.$isLabel && !props.groupSelect) pointerBackward()\n } else {\n if (filteredOptions.value[pointer.value]?.$isLabel && !props.groupSelect) pointerForward()\n }\n pointerDirty.value = true\n}\n\nconst pointerReset = () => {\n if (!props.closeOnSelect) return\n pointer.value = 0\n if (list.value) list.value.scrollTop = 0\n}\n\nconst pointerAdjust = () => {\n if (pointer.value >= filteredOptions.value.length - 1) {\n pointer.value = filteredOptions.value.length ? filteredOptions.value.length - 1 : 0\n }\n if (filteredOptions.value.length > 0 && filteredOptions.value[pointer.value]?.$isLabel && !props.groupSelect) {\n pointerForward()\n }\n}\n\nconst pointerSet = index => {\n pointer.value = index\n pointerDirty.value = true\n}\n\n// Watchers\nwatch(() => internalValue.value, () => {\n if (props.resetAfter && internalValue.value.length) {\n search.value = ''\n emit('update:modelValue', props.multiple ? [] : null)\n }\n}, { deep: true })\n\nwatch(search, () => emit('search-change', search.value))\n\nwatch(filteredOptions, () => pointerAdjust())\n\nwatch(isOpen, () => pointerDirty.value = false)\n\nwatch(pointer, () => {\n searchInput.value?.setAttribute('aria-activedescendant', `${props.id}-${pointer.value}`)\n})\n\n// Lifecycle\nonMounted(() => {\n if (!props.multiple && props.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (props.preselectFirst && !internalValue.value.length && props.options.length) {\n select(filteredOptions.value[0])\n }\n})\n</script>\n\n<style>\nfieldset[disabled] .multiselect {\n pointer-events: none;\n}\n\n.multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 40px;\n height: 38px;\n background: #fff;\n display: block;\n}\n\n.multiselect__spinner::before,\n.multiselect__spinner::after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n box-shadow: 0 0 0 1px transparent;\n}\n\n.multiselect__spinner::before {\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation-iteration-count: infinite;\n}\n\n.multiselect__spinner::after {\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation-iteration-count: infinite;\n}\n\n.multiselect__loading-enter-active,\n.multiselect__loading-leave-active {\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n}\n\n.multiselect__loading-enter,\n.multiselect__loading-leave-active {\n opacity: 0;\n}\n\n.multiselect,\n.multiselect__input,\n.multiselect__single {\n font-family: inherit;\n touch-action: manipulation;\n}\n\n.multiselect {\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n}\n\n.multiselect * {\n box-sizing: border-box;\n}\n\n.multiselect:focus {\n outline: none;\n}\n\n.multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n}\n\n.multiselect--active {\n z-index: 50;\n}\n\n.multiselect--active:not(.multiselect--above) .multiselect__current,\n.multiselect--active:not(.multiselect--above) .multiselect__input,\n.multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.multiselect--active .multiselect__select {\n transform: rotateZ(180deg);\n}\n\n.multiselect--above.multiselect--active .multiselect__current,\n.multiselect--above.multiselect--active .multiselect__input,\n.multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.multiselect__input,\n.multiselect__single,\n.multiselect__placeholder {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n width: calc(100%);\n height: inherit;\n box-sizing: border-box;\n vertical-align: top;\n display: flex;\n align-items: center;\n}\n\n.multiselect__input::placeholder {\n color: #35495e;\n}\n\n.multiselect__tag ~ .multiselect__input,\n.multiselect__tag ~ .multiselect__single {\n width: auto;\n}\n\n.multiselect__input:hover,\n.multiselect__single:hover {\n border-color: #cfcfcf;\n}\n\n.multiselect__input:focus,\n.multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n}\n\n.multiselect__tags-wrap {\n display: inline;\n}\n\n.multiselect__tags {\n display: block;\n height: inherit;\n}\n\n.multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n}\n\n.multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n transition: all 0.2s ease;\n border-radius: 5px;\n}\n\n.multiselect__tag-icon::after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n}\n\n.multiselect__tag-icon:focus::after,\n.multiselect__tag-icon:hover::after {\n color: white;\n}\n\n.multiselect__current {\n line-height: 16px;\n min-height: 40px;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n}\n\n.multiselect__select {\n line-height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: center;\n position: absolute;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: calc(50% - 19px);\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n\n.multiselect__select::before {\n position: relative;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999 transparent transparent transparent;\n content: \"\";\n}\n\n.multiselect--active .multiselect__placeholder {\n display: none;\n}\n\n.multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n height: min-content;\n overflow: auto;\n left: 0;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n}\n\n.multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n}\n\n.multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n}\n\n.multiselect__content::-webkit-scrollbar {\n display: none;\n}\n\n.multiselect__element {\n display: block;\n}\n\n.multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.multiselect__option::after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.multiselect__option--highlight {\n background: rgba(var(--main), 0.1);\n outline: none;\n}\n\n.multiselect__option--highlight::after {\n content: attr(data-select);\n}\n\n.multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n}\n\n.multiselect__option--selected::after {\n content: attr(data-selected);\n color: silver;\n background: inherit;\n}\n\n.multiselect__option--selected.multiselect__option--highlight {\n background: rgba(var(--red), 0.1);\n}\n\n.multiselect__option--selected.multiselect__option--highlight::after {\n content: attr(data-deselect);\n}\n\n.multiselect--disabled .multiselect__current,\n.multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n}\n\n.multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n}\n\n.multiselect__option--group {\n background: #ededed;\n color: #35495e;\n}\n\n.multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n}\n\n.multiselect__option--group.multiselect__option--highlight::after {\n background: #35495e;\n}\n\n.multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n}\n\n.multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n\n.multiselect__option--group-selected.multiselect__option--highlight::after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n\n.multiselect-enter-active,\n.multiselect-leave-active {\n transition: all 0.15s ease;\n}\n\n.multiselect-enter,\n.multiselect-leave-active {\n opacity: 0;\n}\n\n.multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n}\n\n*[dir=\"rtl\"] .multiselect {\n text-align: right;\n}\n\n*[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n}\n\n*[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0 40px;\n}\n\n*[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n}\n\n*[dir=\"rtl\"] .multiselect__option::after {\n right: auto;\n left: 0;\n}\n\n*[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n}\n\n*[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n}\n\n@keyframes spinning {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(2turn);\n }\n}\n</style>"],"names":["search"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, Fragment, renderList, normalizeStyle, normalizeClass, unref, toDisplayString } from "vue";
2
2
  import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  const _hoisted_1 = { class: "flex-nowrap flex-v-center flex pos-relative" };
5
5
  const _hoisted_2 = ["onClick"];
6
6
  const _sfc_main = {
@@ -71,4 +71,4 @@ const _sfc_main = {
71
71
  export {
72
72
  _sfc_main as default
73
73
  };
74
- //# sourceMappingURL=Tab.vue2.js.map
74
+ //# sourceMappingURL=Tab.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.vue.js","sources":["../../../../../src/components/Tab/Tab.vue"],"sourcesContent":["<template>\n <div class=\"flex-nowrap flex-v-center flex pos-relative\">\n <button \n v-for=\"(tab, index) in tabs\" \n :key=\"index\" \n @click=\"handleTabClick(index, tab)\" \n class=\"z-index-1 t-center cursor-pointer\"\n :style=\"isSelected(index, tab) ? 'background: rgb(var(--main)) !important' : ''\"\n :class=\"[\n isSelected(index, tab) ? 'bg-main' : '',\n replaceClasses('pd-small pd-r-medium pd-l-medium w-max pd-small radius-small', classTab)\n ]\"\n >\n {{tab.name || tab.label}}\n </button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { replaceClasses } = useGlobalMixins();\nconst emit = defineEmits(['update:selected', 'tab-click']);\n\nconst props = defineProps({\n tabs: Array,\n classTab: String,\n selected: [String, Number],\n modelValue: [String, Number],\n callback: Function\n})\n\nconst selectedTab = ref(0)\n\n// Handle both v-model and selected prop for backward compatibility\nconst updateSelectedIndex = () => {\n if (props.modelValue !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.modelValue)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n } else if (props.selected !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.selected)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n }\n}\n\n// Initial setup\nupdateSelectedIndex()\n\n// Watch for changes in selected or modelValue props\nwatch(() => props.selected, updateSelectedIndex)\nwatch(() => props.modelValue, updateSelectedIndex)\n\n// Check if tab is selected\nconst isSelected = (index, tab) => {\n if (props.modelValue !== undefined) {\n return tab.value === props.modelValue\n } else if (props.selected !== undefined) {\n return tab.value === props.selected\n }\n return index === selectedTab.value\n}\n\n// Handle tab click\nfunction handleTabClick(index, tab) {\n selectedTab.value = index\n \n // Emit both events for flexibility\n emit('update:selected', tab.value)\n emit('tab-click', { index, tab })\n \n // For v-model support\n if (props.modelValue !== undefined) {\n emit('update:modelValue', tab.value)\n }\n \n // Call callback if provided\n if (props.callback) props.callback(tab)\n}\n</script>\n\n<style lang=\"scss\">\n.tab-selector {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 0;\n transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAC1C,UAAM,OAAO;AAEb,UAAM,QAAQ;AAQd,UAAM,cAAc,IAAI,CAAC;AAGzB,UAAM,sBAAsB,MAAM;AAChC,UAAI,MAAM,eAAe,QAAW;AAClC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,UAAU;AAChF,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF,WAAW,MAAM,aAAa,QAAW;AACvC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,QAAQ;AAC9E,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAGA,wBAAmB;AAGnB,UAAM,MAAM,MAAM,UAAU,mBAAmB;AAC/C,UAAM,MAAM,MAAM,YAAY,mBAAmB;AAGjD,UAAM,aAAa,CAAC,OAAO,QAAQ;AACjC,UAAI,MAAM,eAAe,QAAW;AAClC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B,WAAW,MAAM,aAAa,QAAW;AACvC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B;AACA,aAAO,UAAU,YAAY;AAAA,IAC/B;AAGA,aAAS,eAAe,OAAO,KAAK;AAClC,kBAAY,QAAQ;AAGpB,WAAK,mBAAmB,IAAI,KAAK;AACjC,WAAK,aAAa,EAAE,OAAO,IAAG,CAAE;AAGhC,UAAI,MAAM,eAAe,QAAW;AAClC,aAAK,qBAAqB,IAAI,KAAK;AAAA,MACrC;AAGA,UAAI,MAAM,SAAU,OAAM,SAAS,GAAG;AAAA,IACxC;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ref, watch, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, normalizeClass, createCommentVNode, toDisplayString, Transition, withCtx } from "vue";
2
2
  import axios from "axios";
3
3
  import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
6
6
  const _hoisted_1 = {
7
7
  key: 0,
@@ -119,4 +119,4 @@ const Upload = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-efd
119
119
  export {
120
120
  Upload as default
121
121
  };
122
- //# sourceMappingURL=Upload.vue.js.map
122
+ //# sourceMappingURL=Upload.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Upload.vue2.js","sources":["../../../../../src/components/Upload/Upload.vue"],"sourcesContent":["<template>\n <div :class=\"[$attrs.class, { 'bg-fourth-nano': validation }]\" class=\"flex-center flex-nowrap flex\">\n <!-- Label -->\n <div v-if=\"label\" class=\"t-transp mn-r-small\">\n <span>{{label}}</span>\n </div>\n\n <div v-if=\"fileURL\" class=\"flex-nowrap flex w-100 flex-v-center\">\n <a :href=\"fileURL\" class=\"w-100\" target=\"_blank\">{{ fileURL }}</a>\n\n <IconCross \n @click=\"removeFile\" \n class=\"cursor-pointer t-center flex-center flex radius-extra i-medium bg-red pd-micro\"\n />\n\n </div>\n\n <div v-else class=\"w-100\">\n <!-- Input / File -->\n <input \n @change=\"onFileChange\"\n type=\"file\"\n class=\"w-100\"\n :placeholder=\"placeholder\"\n :multiple=\"multiple\"\n id=\"photo\"\n name=\"photo\"\n >\n </div>\n </div>\n\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\nimport { ref, computed, watch} from 'vue'\nimport axios from 'axios';\n\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst emit = defineEmits(['update:field', 'focus', 'blur', 'file-change']);\n\nconst props = defineProps({\n field: String,\n label: null,\n type: {\n type: String,\n default: 'file'\n },\n placeholder: 'Upload a file',\n validation: false,\n uploadPath: {\n type: String,\n default: '/files'\n },\n multiple: {\n type: Boolean,\n default: false\n }\n});\n\nconst fileURL = ref(props.field);\nconst fileInput = ref(null);\n\nwatch(() => props.field, (newValue) => {\n fileURL.value = newValue;\n});\n\n// Handles file change event\n\nasync function onFileChange(e) {\n\n let file = e.target.files[0];\n let formData = new FormData();\n\n formData.append(\"file\", file);\n\n try {\n const $axios = axios.create({baseURL: process.env.API_URL, withCredentials: true}) \n\n let response = await $axios.post(`/api/upload/${props.type}?folderName=${encodeURIComponent(props.uploadPath)}`, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n });\n\n fileURL.value = response.data[0].filepath;\n emit('file-change', fileURL.value);\n } catch (error) {\n console.error(error);\n }\n}\n\nconst removeFile = () => {\n fileURL.value = null;\n emit('update:field', null); // Обновляем значение, связанное с v-model:field\n emit('file-change', null); // Посылаем событие об изменении файла\n};\n</script>\n\n<style lang=\"scss\" scoped>\n input, span {\n line-height: 1;\n color: inherit;\n }\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,OAAO;AAEb,UAAM,QAAQ;AAmBd,UAAM,UAAU,IAAI,MAAM,KAAK;AACb,QAAI,IAAI;AAE1B,UAAM,MAAM,MAAM,OAAO,CAAC,aAAa;AACrC,cAAQ,QAAQ;AAAA,IAClB,CAAC;AAID,mBAAe,aAAa,GAAG;AAE7B,UAAI,OAAO,EAAE,OAAO,MAAM,CAAC;AAC3B,UAAI,WAAW,IAAI,SAAQ;AAE3B,eAAS,OAAO,QAAQ,IAAI;AAE5B,UAAI;AACF,cAAM,SAAS,MAAM,OAAO,EAAC,SAAS,QAAQ,IAAI,SAAS,iBAAiB,KAAI,CAAC;AAEjF,YAAI,WAAW,MAAM,OAAO,KAAK,eAAe,MAAM,IAAI,eAAe,mBAAmB,MAAM,UAAU,CAAC,IAAI,UAAU;AAAA,UACzH,SAAS;AAAA,YACP,gBAAgB;AAAA,UACxB;AAAA,QACA,CAAK;AAED,gBAAQ,QAAQ,SAAS,KAAK,CAAC,EAAE;AACjC,aAAK,eAAe,QAAQ,KAAK;AAAA,MACnC,SAAS,OAAO;AACd,gBAAQ,MAAM,KAAK;AAAA,MACrB;AAAA,IACF;AAEA,UAAM,aAAa,MAAM;AACvB,cAAQ,QAAQ;AAChB,WAAK,gBAAgB,IAAI;AACzB,WAAK,eAAe,IAAI;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
@@ -3,7 +3,7 @@ import { ref, inject, onMounted, resolveComponent, createElementBlock, createCom
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
6
- import _sfc_main$6 from "../../../../../components/Menu/Menu.vue2.js";
6
+ import _sfc_main$6 from "../../../../../components/Menu/Menu.vue.js";
7
7
  import _sfc_main$b from "../../../../../components/Menu/MenuItem.vue.js";
8
8
  import _sfc_main$3 from "../../../../organizations/components/elements/ButtonToggleMembership.vue.js";
9
9
  import _sfc_main$2 from "../../../../reports/components/sections/FormReport.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, withCtx, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
5
5
  import _sfc_main$3 from "../../../../community/components/blocks/CardBlogpost.vue.js";
6
6
  import { state } from "../../store/auth.js";
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, Transition, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
5
  import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, createTextVNode, toDisplayString, unref, withCtx, Transition, withDirectives, vShow } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
5
  import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, Transition, withCtx, withDirectives, vShow, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
5
  import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, Fragment, renderList, unref, createBlock, createCommentVNode, resolveDynamicComponent, toDisplayString } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import _sfc_main$3 from "../../../icons/entities/IconProducts.vue.js";
4
4
  import _sfc_main$8 from "../../../icons/entities/IconPayments.vue.js";
5
5
  import _sfc_main$7 from "../../../icons/entities/IconEvents.vue.js";
@@ -1,5 +1,5 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createTextVNode, createVNode } from "vue";
2
- import Upload from "../../../../components/Upload/Upload.vue.js";
2
+ import Upload from "../../../../components/Upload/Upload.vue2.js";
3
3
  const _hoisted_1 = { class: "mn-b-thin w-100 radius-medium" };
4
4
  const _hoisted_2 = {
5
5
  key: 0,
@@ -1,5 +1,5 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createTextVNode, createVNode } from "vue";
2
- import Upload from "../../../../components/Upload/Upload.vue.js";
2
+ import Upload from "../../../../components/Upload/Upload.vue2.js";
3
3
  const _hoisted_1 = { class: "mn-b-thin w-100 pd-medium bg-black t-white radius-medium" };
4
4
  const _hoisted_2 = {
5
5
  key: 0,
@@ -1,6 +1,6 @@
1
1
  import { ref, createElementBlock, openBlock, createCommentVNode, createElementVNode, createTextVNode } from "vue";
2
2
  import "axios";
3
- /* empty css */
3
+ /* empty css */
4
4
  const _hoisted_1 = { class: "mn-b-thin w-100 o-hidden bg-black radius-medium" };
5
5
  const _hoisted_2 = {
6
6
  key: 0,
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
4
4
  const _hoisted_2 = { class: "h2 mn-r-auto" };
5
5
  const _hoisted_3 = ["onClick"];
@@ -8,9 +8,9 @@ import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
8
8
  import Field from "../../../../components/Field/Field.vue.js";
9
9
  import _sfc_main$6 from "../../../../components/FieldTags/BlockTags.vue.js";
10
10
  import _sfc_main$9 from "../../../../components/Checkbox/Checkbox.vue.js";
11
- /* empty css */
11
+ /* empty css */
12
12
  import "axios";
13
- /* empty css */
13
+ /* empty css */
14
14
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
15
15
  /* empty css */
16
16
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createCommentVNode, unref, createBlock, createVNode, isRef, withCtx, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$1 from "../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
5
5
  /* empty css */
6
6
  import _sfc_main$3 from "../blocks/CardEvent.vue.js";
@@ -4,7 +4,7 @@ import { useRoute } from "vue-router";
4
4
  import _sfc_main$8 from "../../../../components/Button/Button.vue2.js";
5
5
  /* empty css */
6
6
  import _sfc_main$4 from "../../../../components/Chips/Chips.vue.js";
7
- /* empty css */
7
+ /* empty css */
8
8
  import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
9
9
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
10
10
  import PhotoViewer from "../../../../components/PhotoViewer/PhotoViewer.vue.js";
@@ -6,7 +6,7 @@ import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
6
6
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
7
7
  import Select from "../../../../components/Select/Select.vue.js";
8
8
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
9
- import Upload from "../../../../components/Upload/Upload.vue.js";
9
+ import Upload from "../../../../components/Upload/Upload.vue2.js";
10
10
  import _sfc_main$2 from "../../../icons/navigation/IconCross.vue.js";
11
11
  import BlockMultiselect from "../../../core/views/components/blocks/BlockMultiselect.vue.js";
12
12
  import { actions } from "../../store/tracks.js";
@@ -1,6 +1,6 @@
1
1
  import { inject, ref, createElementBlock, openBlock, createVNode, createElementVNode, unref, createBlock, createCommentVNode } from "vue";
2
2
  import { useRoute } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$1 from "../../../../components/Tab/Tab.vue.js";
4
4
  import NotificationsList from "../sections/NotificationsList.vue.js";
5
5
  import NotificationPreferences from "../sections/NotificationPreferences.vue.js";
6
6
  const _hoisted_1 = { class: "notifications-page pd-small" };
@@ -2,7 +2,7 @@ import { getCurrentInstance, computed, ref, onMounted, createElementBlock, openB
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  /* empty css */
4
4
  import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
5
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
5
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
6
6
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
7
7
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
8
8
  import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, unref, withCtx, createElementVNode, toDisplayString, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
6
6
  import { state, actions, getters } from "../../store/orders.js";
7
7
  import { state as state$1 } from "../../../auth/views/store/auth.js";
@@ -5,7 +5,7 @@ import "vue-i18n";
5
5
  /* empty css */
6
6
  import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue.js";
7
7
  import _sfc_main$7 from "../../../../components/Chips/Chips.vue.js";
8
- /* empty css */
8
+ /* empty css */
9
9
  import "../../../../components/Menu/MenuItem.vue.js";
10
10
  import _sfc_main$6 from "../../../icons/entities/IconFollowing.vue.js";
11
11
  import _sfc_main$5 from "../../../icons/navigation/IconEdit.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createVNode, withCtx, createBlock, createCommentVNode, unref, createElementVNode } from "vue";
2
- import _sfc_main$1 from "../../../../components/Menu/Menu.vue2.js";
2
+ import _sfc_main$1 from "../../../../components/Menu/Menu.vue.js";
3
3
  import _sfc_main$2 from "../../../../components/Menu/MenuItem.vue.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$4 from "../../../icons/entities/IconProducts.vue.js";
6
6
  import _sfc_main$8 from "../../../icons/entities/IconEvents.vue.js";
7
7
  import _sfc_main$3 from "../../../icons/entities/IconGroups.vue.js";
@@ -3,10 +3,10 @@ import { useRoute, useRouter } from "vue-router";
3
3
  import "vue-i18n";
4
4
  /* empty css */
5
5
  import _sfc_main$2 from "../../../../components/FieldTags/BlockTags.vue.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
8
  /* empty css */
9
- import _sfc_main$1 from "../../../../components/SelectMulti/SelectMulti.vue.js";
9
+ import _sfc_main$1 from "../../../../components/SelectMulti/SelectMulti.vue2.js";
10
10
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
11
11
  import _sfc_main$3 from "../../../../components/Button/Button.vue2.js";
12
12
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, createCommentVNode, createVNode, createElementVNode, Transition, withCtx, unref, Fragment, renderList, isMemoSame, createBlock } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$1 from "../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
5
5
  import { state } from "../../../auth/views/store/auth.js";
6
6
  import { actions } from "../../store/organizations.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, withAsyncContext, watch, createElementBlock, openBlock, createElementVNode, createBlock, Fragment, renderList, normalizeClass } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import "../../../../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  /* empty css */
@@ -8,7 +8,7 @@ import { state as state$2, actions as actions$1 } from "../../../orders/store/sh
8
8
  /* empty css */
9
9
  /* empty css */
10
10
  /* empty css */
11
- /* empty css */
11
+ /* empty css */
12
12
  /* empty css */
13
13
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
14
14
  import _sfc_main$4 from "../../../icons/navigation/IconInfo.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBlock, createBlock, createElementVNode, withCtx, createVNode, toDisplayString, createTextVNode, isRef, withModifiers, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
4
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
5
5
  import Field from "../../../../components/Field/Field.vue.js";
6
6
  import Select from "../../../../components/Select/Select.vue.js";
7
7
  import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
@@ -12,7 +12,7 @@ import _sfc_main$a from "../../../icons/navigation/IconDelete.vue.js";
12
12
  import _sfc_main$7 from "../sections/EditVariants.vue.js";
13
13
  import _sfc_main$6 from "../sections/EditAttributes.vue.js";
14
14
  import _sfc_main$8 from "../sections/EditDiscounts.vue.js";
15
- /* empty css */
15
+ /* empty css */
16
16
  import _sfc_main$9 from "../sections/EditRecommended.vue.js";
17
17
  import { useStore, setError } from "../../../core/views/store/core.store.js";
18
18
  import { state as state$2 } from "../../../auth/views/store/auth.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, onMounted, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createElementVNode, createVNode, unref, toDisplayString, Fragment, renderList, createTextVNode, createBlock, withCtx, normalizeClass, renderSlot } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
6
6
  import _sfc_main$2 from "../../../../components/Spoiler/Spoiler.vue2.js";
7
7
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";