{"version":3,"file":"index-C0MQWFIz.js","sources":["../../../app/frontend/vue/src/components-tw/shared/s-modal/s-modal-container.vue","../../../app/frontend/vue/src/components-tw/shared/s-modal/s-modal-wrapper.vue","../../../app/frontend/vue/src/components-tw/shared/s-modal/s-modal-body.vue","../../../app/frontend/vue/src/components-tw/shared/s-modal/index.vue","../../../app/frontend/vue/src/components-tw/shared/s-modal/s-modal-footer.vue"],"sourcesContent":["<template>\n <!-- Modal-container -->\n <div\n :class=\"[\n footerSlotPresent? '_pb-0' : '_pb-4 md:_pb-5',\n headerSlotPresent? '_pt-0' : '_pt-4 md:_pt-5',\n containerClass\n ]\"\n body-scroll-lock-ignore\n class=\"\n _bg-white-100 _px-4 md:_px-6 _rounded-2xl _rounded-b-none md:_rounded-b-2xl _z-[1000]\n md:_max-w-[600px] _w-full _relative _max-h-[calc(100vh_-_80px)] _overflow-y-auto\n \"\n style=\"box-shadow: 0px 16px 32px 4px rgba(26, 40, 51, 0.08);\"\n role=\"dialog\"\n aria-label=\"Модальное окно\"\n tabindex=\"0\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n footerSlotPresent: {\n type: Boolean,\n required: true,\n },\n headerSlotPresent: {\n type: Boolean,\n required: true,\n },\n containerClass: {\n type: String,\n default: '',\n },\n },\n};\n</script>\n","<template>\n <Teleport to=\"body\">\n <div\n :class=\"{'_hidden': invisible}\"\n style=\"font-size: initial\"\n >\n <div\n :class=\"{'!_pointer-events-none': !isOpen}\"\n class=\"\n _fixed _left-0 _top-0 _flex md:_items-center _items-end\n _w-screen _h-full _z-[9999] _justify-center\n \"\n >\n <slot />\n <!-- Modal-backdrop -->\n <transition :name=\"backdropAnimation\">\n <div\n v-if=\"isOpen\"\n class=\"_bg-black-900 _opacity-50 _fixed _left-0 _top-0 _w-full _h-full _z-[999]\"\n tabindex=\"-1\"\n @click=\"close\"\n />\n </transition>\n </div>\n </div>\n </Teleport>\n</template>\n\n<script>\nimport { Teleport } from 'vue';\n\nexport default {\n components: { Teleport },\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n invisible: {\n type: Boolean,\n default: false,\n },\n backdropAnimation: {\n type: [String, Boolean],\n default: 'backdrop',\n },\n },\n emits: ['onModalCloseByBackdrop'],\n methods: {\n close() {\n this.$emit('onModalCloseByBackdrop');\n },\n },\n};\n</script>\n\n<style scoped>\n .backdrop-enter-active,\n .backdrop-leave-active {\n transition: opacity 0.5s ease;\n }\n\n .backdrop-enter-from,\n .backdrop-leave-to {\n opacity: 0;\n }\n</style>\n","<template>\n <div\n class=\"_pb-2\"\n role=\"region\"\n >\n <slot name=\"body\" />\n </div>\n</template>\n\n<script></script>\n","<template>\n <s-modal-wrapper\n ref=\"modal\"\n :is-open=\"isOpen\"\n v-bind=\"$props\"\n @on-modal-close-by-backdrop=\"close\"\n >\n <transition :name=\"modalAnimation\">\n <s-modal-container\n v-if=\"isOpen\"\n :container-class=\"containerClass\"\n :footer-slot-present=\"footerSlotPresent\"\n :header-slot-present=\"headerSlotPresent\"\n >\n <s-modal-header\n :header-class=\"headerClass\"\n @on-close=\"closeViaButton\"\n >\n <template #header>\n <slot name=\"header\" />\n </template>\n </s-modal-header>\n\n <s-modal-body :class=\"bodyClass\">\n <template #body>\n <slot name=\"body\" />\n </template>\n </s-modal-body>\n\n <!--s-modal-footer-->\n <s-modal-footer\n v-if=\"footerSlotPresent\"\n :footer-class=\"footerClass\"\n >\n <template #footer>\n <slot name=\"footer\" />\n </template>\n </s-modal-footer>\n </s-modal-container>\n </transition>\n </s-modal-wrapper>\n</template>\n\n<script>\nimport { nextTick } from 'vue';\n// import { toggleBodyScroll } from \"@front/utils/fns\"\nimport { mapState, mapActions } from 'vuex';\n\nimport SModalContainer from './s-modal-container';\nimport SModalWrapper from './s-modal-wrapper';\nimport SModalHeader from './s-modal-header';\nimport SModalBody from './s-modal-body';\nimport SModalFooter from './s-modal-footer';\n\nexport default {\n name: 'STwModal',\n components: {\n SModalWrapper,\n SModalHeader,\n SModalBody,\n SModalFooter,\n SModalContainer,\n },\n props: {\n minHeight: {\n type: String,\n default: '',\n },\n titleLeft: {\n type: Boolean,\n default: false,\n },\n containerClass: {\n type: String,\n default: '',\n },\n footerClass: {\n type: String,\n default: '',\n },\n headerClass: {\n type: String,\n default: '',\n },\n bodyClass: {\n type: String,\n default: '',\n },\n showedViaProp: {\n type: Boolean,\n default: false,\n },\n modalName: {\n type: String,\n default: 'anonym-modal',\n },\n backdropAnimation: {\n type: [String, Boolean],\n default: 'backdropAnimation',\n },\n modalAnimation: {\n type: [String, Boolean],\n default: 'fade',\n },\n },\n emits: ['onModalCloseButton', 'update:showedViaProp', 'onShow', 'onClose'],\n data() {\n return {\n isOpen: false,\n };\n },\n computed: {\n ...mapState('modals', [\n 'modalsShowed',\n ]),\n footerSlotPresent() {\n return !!this.$slots.footer;\n },\n headerSlotPresent() {\n return !!this.$slots.header;\n },\n },\n watch: {\n showedViaProp(v) {\n if (v) {\n this.show();\n } else {\n this.close();\n }\n\n this.$emit('update:showedViaProp', v);\n },\n },\n created() {\n const onEscape = (e) => {\n if (this.isOpen && e.keyCode === 27) {\n this.close();\n }\n };\n\n document.addEventListener('keydown', onEscape);\n },\n\n mounted() {\n if (this.showedViaProp) this.show();\n },\n\n // unmounted() {\n // toggleBodyScroll(this.$refs.modal, false)\n // },\n\n methods: {\n ...mapActions('modals', [\n 'A_ON_MODAL_SHOWED',\n 'A_ON_MODAL_CLOSE',\n ]),\n show() {\n this.A_ON_MODAL_SHOWED(this.modalName);\n\n this.isOpen = true;\n nextTick(() => {\n document.body.style.overflow = 'hidden';\n this.$emit('onShow');\n });\n },\n\n close() {\n this.A_ON_MODAL_CLOSE(this);\n nextTick(() => {\n document.body.style.overflow = '';\n this.$emit('onClose');\n });\n\n setTimeout(() => {\n this.isOpen = false;\n }, 0);\n },\n\n closeViaButton() {\n this.$emit('onModalCloseButton');\n this.close();\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n\n .fade-enter-active,\n .fade-leave-active {\n transition: opacity 0.2s ease;\n }\n\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n }\n\n .bottom-slide-enter-active,\n .bottom-slide-leave-active {\n transition: transform 0.3s ease;\n }\n\n .bottom-slide-enter-from,\n .bottom-slide-leave-to {\n transform: translateY(100%);\n }\n</style>\n","<template>\n <div\n :class=\"footerClass\"\n class=\"_sticky _bottom-0 _pb-6 _pt-4 md:_pt-5 md:_pb-5 _bg-white-100 _m-0\"\n tabindex=\"-1\"\n >\n <slot name=\"footer\" />\n </div>\n</template>\n\n<script>\nexport default {\n name: 'SModalFooter',\n props: {\n footerClass: {\n type: String,\n default: '',\n },\n },\n};\n</script>\n"],"names":["props","footerSlotPresent","type","Boolean","required","headerSlotPresent","containerClass","String","default","_createElementBlock","class","_normalizeClass","$props","style","role","tabindex","_renderSlot","_ctx","$slots","_sfc_main","components","Teleport","isOpen","invisible","backdropAnimation","emits","methods","close","this","$emit","_hoisted_1","name","SModalWrapper","_createBlock","_Teleport","to","_createElementVNode","_createVNode","_Transition","_withCtx","key","onClick","$options","args","_createCommentVNode","_","SModalBody","_cache","_openBlock","SModalFooter","footerClass","SModalContainer","minHeight","titleLeft","headerClass","bodyClass","showedViaProp","modalName","modalAnimation","data","computed","mapState","footer","header","watch","v","show","created","document","addEventListener","e","keyCode","mounted","mapActions","A_ON_MODAL_SHOWED","nextTick","body","overflow","A_ON_MODAL_CLOSE","setTimeout","closeViaButton","_component_s_modal_wrapper","_mergeProps","ref","$data","onOnModalCloseByBackdrop","_component_s_modal_container","_component_s_modal_header","onOnClose","_component_s_modal_body","_component_s_modal_footer"],"mappings":"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"}