@ozdao/martyrs 0.2.588 → 0.2.589

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 (107) hide show
  1. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
  2. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  3. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  4. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  5. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  6. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  7. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +1 -0
  8. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  9. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  10. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  11. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  12. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  13. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  14. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  15. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  16. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  17. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  18. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +8 -0
  19. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  20. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  21. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  22. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  23. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +1 -1
  24. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  25. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +1 -1
  26. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  27. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  28. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  29. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  30. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  31. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  32. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  33. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  34. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  35. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  36. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  37. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  38. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  39. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  40. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  41. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  42. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  43. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  44. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  45. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  46. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  47. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  48. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  49. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  50. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  51. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  52. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  53. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  54. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  55. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  56. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  57. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  58. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  59. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +1 -1
  60. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  61. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  62. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  63. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  64. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  65. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  66. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  67. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  68. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  69. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
  70. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  71. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  72. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  73. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  74. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
  75. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  76. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  77. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  78. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  79. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  80. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  81. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  82. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  83. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  84. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  85. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  86. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  87. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  88. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  89. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  90. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  91. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  92. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  93. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  94. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  95. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  96. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  97. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  98. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  99. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  100. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  101. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  102. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  103. package/package.json +2 -1
  104. package/src/modules/core/views/classes/i18n.manager.js +9 -0
  105. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  106. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  107. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
@@ -6,6 +6,12 @@ class I18nManager {
6
6
  this.overrides = new Map();
7
7
  this.extensions = new Map();
8
8
  this.i18nInstance = null;
9
+ this.supportedLocales = null;
10
+ }
11
+
12
+ setSupportedLocales(locales) {
13
+ this.supportedLocales = Array.isArray(locales) ? locales : Object.keys(locales);
14
+ return this;
9
15
  }
10
16
 
11
17
  setI18nInstance(i18n) {
@@ -78,6 +84,9 @@ class I18nManager {
78
84
  const messages = {};
79
85
 
80
86
  for (const locale of allLocales) {
87
+ if (this.supportedLocales && !this.supportedLocales.includes(locale)) {
88
+ continue;
89
+ }
81
90
  messages[locale] = this.getMessages(locale);
82
91
  }
83
92
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n console.error('=== BUTTON ERROR ===', err)\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <span class=\"button-content\" :class=\"{ 'hidden': loading || error || finished }\">\n <slot></slot>\n </span>\n\n <span class=\"button-loader\" :class=\"{ 'active': loading && showLoader }\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </span>\n\n <span class=\"button-success\" :class=\"{ 'active': finished && showSucces }\">\n <template v-if=\"text.success\">{{ text.success }}</template>\n <IconCheckmark v-else class=\"i-regular\" />\n </span>\n\n <span class=\"button-error\" :class=\"{ 'active': error }\">\n <template v-if=\"text.error\">{{ text.error }}</template>\n <IconCross v-else class=\"i-regular\" />\n </span>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter font-second flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n position: relative;\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transform: translateY(0);\n opacity: 1;\n transition:\n opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\n &.hidden {\n opacity: 0;\n transform: translateY(4px);\n }\n}\n\n.button-loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.25s cubic-bezier(0.0, 0, 0.2, 1) 0.05s,\n transform 0.25s cubic-bezier(0.0, 0, 0.2, 1) 0.05s;\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-bounce 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\n &:nth-child(1) { animation-delay: 0s; }\n &:nth-child(2) { animation-delay: 0.12s; }\n &:nth-child(3) { animation-delay: 0.24s; }\n }\n}\n\n@keyframes dot-bounce {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-5px);\n }\n}\n\n.button-success {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.2s cubic-bezier(0.0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.button-error {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.2s cubic-bezier(0.0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,gBAAQ,MAAM,wBAAwB,GAAG;AACzC,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select.vue2.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n ref=\"fieldWrapper\"\n tabindex=\"0\"\n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 pd-small radius-small bg-white mn-t-thin w-100\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"radius-thin hover:bg-light pd-thin text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<script setup>\nimport { ref, computed, watch, nextTick } from 'vue'\nimport clickOutside from '../FieldPhone/click-outside.js';\nlet vClickOutside = clickOutside\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\nconst showMenu = ref(false)\nconst fieldWrapper = ref(null)\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\nconst toggleMenu = async () => {\n showMenu.value = !showMenu.value\n \n if (showMenu.value) {\n await nextTick()\n fieldWrapper.value?.focus()\n emit('focus')\n } else {\n emit('blur')\n }\n}\nfunction clickedOutside () {\n showMenu.value = false\n}\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n ul li {\n line-height: 2;\n }\n .field-wrapper:focus {\n outline: none;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,QAAI,gBAAgB;AACpB,UAAM,OAAO;AAKb,UAAM,QAAQ;AASd,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AACA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AACD,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AACD,UAAM,aAAa,YAAY;AAC7B,eAAS,QAAQ,CAAC,SAAS;AAE3B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAQ;AACd,qBAAa,OAAO,MAAK;AACzB,aAAK,OAAO;AAAA,MACd,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AACA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AACV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC7D,OAAO;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC7C;AAAA,IACF;AACA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Spoiler.vue.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}