@ozdao/martyrs 0.2.532 → 0.2.534
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.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/{main-BXBcWOh4.js → main-DWmJBTB8.js} +638 -573
- package/dist/{main-BSPYt8hH.cjs → main-DuXf9nQ1.cjs} +7 -7
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Marquee/Marquee.vue.cjs +9 -5
- package/dist/martyrs/src/components/Marquee/Marquee.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Marquee/Marquee.vue.js +9 -5
- package/dist/martyrs/src/components/Marquee/Marquee.vue.js.map +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.cjs → Spoiler.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js.map → Spoiler.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js → Spoiler.vue.js} +2 -2
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.cjs → THC.vue.cjs} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.js → THC.vue.js} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +15 -14
- package/dist/style.css +8 -4
- package/dist/{web-DC2yfn5d.js → web-BYEJ8fyd.js} +1 -1
- package/dist/{web-D0WwXpQU.cjs → web-MS1kPdbl.cjs} +1 -1
- package/package.json +1 -1
- package/src/components/Gradient/Gradient.vue +86 -0
- package/src/components/Marquee/Marquee.vue +19 -9
- package/src/components/index.js +2 -0
- package/src/main.js +4 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const index = require("../../../../_virtual/
|
|
4
|
+
const index = require("../../../../_virtual/index2.cjs");
|
|
5
5
|
const createTags = require("./create-tags.cjs");
|
|
6
6
|
const tagInput = require("./tag-input.vue2.cjs");
|
|
7
7
|
const vueTagsInput_props = require("./vue-tags-input.props.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, shallowRef, computed, watch, onMounted, onBeforeUnmount, createElementBlock, openBlock, normalizeStyle, normalizeClass, createElementVNode, renderSlot, createCommentVNode, Fragment, renderList, createBlock, toDisplayString, withDirectives, withModifiers, vShow, withKeys, unref, nextTick } from "vue";
|
|
2
|
-
import equal from "../../../../_virtual/
|
|
2
|
+
import equal from "../../../../_virtual/index2.js";
|
|
3
3
|
import { createTag, createClasses, createTags, clone } from "./create-tags.js";
|
|
4
4
|
import TagInput from "./tag-input.vue2.js";
|
|
5
5
|
import props from "./vue-tags-input.props.js";
|
|
@@ -32,6 +32,7 @@ const _sfc_main = {
|
|
|
32
32
|
const loopInterval = vue.ref(null);
|
|
33
33
|
const resizeObserver = vue.ref(null);
|
|
34
34
|
const checkInterval = vue.ref(null);
|
|
35
|
+
const resizeTimeout = vue.ref(null);
|
|
35
36
|
const widthMin = vue.ref("100%");
|
|
36
37
|
const widthContainer = vue.ref(0);
|
|
37
38
|
const widthContent = vue.ref(0);
|
|
@@ -42,9 +43,6 @@ const _sfc_main = {
|
|
|
42
43
|
const verticalAnimationPause = vue.ref(false);
|
|
43
44
|
const marqueeContent = vue.ref(null);
|
|
44
45
|
const marqueeOverlayContainer = vue.ref(null);
|
|
45
|
-
const ForcesUpdate = async () => {
|
|
46
|
-
await checkForClone();
|
|
47
|
-
};
|
|
48
46
|
const checkForClone = async () => {
|
|
49
47
|
if (props.vertical) {
|
|
50
48
|
verticalAnimationPause.value = true;
|
|
@@ -90,7 +88,10 @@ const _sfc_main = {
|
|
|
90
88
|
resizeObserver.value.disconnect();
|
|
91
89
|
}
|
|
92
90
|
resizeObserver.value = new ResizeObserver(() => {
|
|
93
|
-
|
|
91
|
+
clearTimeout(resizeTimeout.value);
|
|
92
|
+
resizeTimeout.value = setTimeout(() => {
|
|
93
|
+
calculateClones();
|
|
94
|
+
}, 150);
|
|
94
95
|
});
|
|
95
96
|
resizeObserver.value.observe(marqueeOverlayContainer.value);
|
|
96
97
|
} else {
|
|
@@ -144,7 +145,6 @@ const _sfc_main = {
|
|
|
144
145
|
}
|
|
145
146
|
if (props.clone) {
|
|
146
147
|
await checkForClone();
|
|
147
|
-
ForcesUpdate();
|
|
148
148
|
ready.value = true;
|
|
149
149
|
} else {
|
|
150
150
|
ready.value = true;
|
|
@@ -171,6 +171,10 @@ const _sfc_main = {
|
|
|
171
171
|
clearInterval(checkInterval.value);
|
|
172
172
|
checkInterval.value = null;
|
|
173
173
|
}
|
|
174
|
+
if (resizeTimeout.value) {
|
|
175
|
+
clearTimeout(resizeTimeout.value);
|
|
176
|
+
resizeTimeout.value = null;
|
|
177
|
+
}
|
|
174
178
|
});
|
|
175
179
|
vue.watch(
|
|
176
180
|
() => props.pause,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marquee.vue.cjs","sources":["../../../../../src/components/Marquee/Marquee.vue"],"sourcesContent":["<template>\n <div\n v-if=\"ready\"\n class=\"vue3-marquee\"\n :class=\"{ vertical: vertical, horizontal: !vertical }\"\n :style=\"getCurrentStyle\"\n @mouseenter=\"hoverStarted\"\n @mouseleave=\"hoverEnded\"\n @mousedown=\"mouseDown\"\n @mouseup=\"mouseUp\"\n >\n <div\n class=\"transparent-overlay\"\n ref=\"marqueeOverlayContainer\"\n :aria-hidden=\"true\"\n :class=\"{ vertical: vertical, horizontal: !vertical, overlay: gradient }\"\n />\n\n <div \n class=\"marquee\"\n ref=\"marqueeContent\">\n <slot></slot>\n </div>\n\n <div \n class=\"marquee\" \n :aria-hidden=\"true\"\n >\n <slot></slot>\n </div>\n\n <div\n v-for=\"num in cloneAmount\"\n :key=\"num\"\n :aria-hidden=\"true\"\n class=\"marquee cloned\"\n >\n <slot></slot>\n </div\n >\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed, watch, nextTick } from 'vue'\n\nconst props = defineProps({\n vertical: { type: Boolean, default: false },\n direction: { type: String, default: 'normal' },\n duration: { type: Number, default: 20 },\n delay: { type: Number, default: 0 },\n loop: { type: Number, default: 0 },\n clone: { type: Boolean, default: false },\n gradient: { type: Boolean, default: false },\n gradientColor: { type: [Array,String], default: () => [255, 255, 255] },\n gradientLength: { type: String },\n pauseOnHover: { type: Boolean, default: false },\n pauseOnClick: { type: Boolean, default: false },\n pause: { type: Boolean, default: false }\n})\n\nconst emits = defineEmits(['onComplete', 'onLoopComplete', 'onPause', 'onResume'])\n\nconst ready = ref(false)\n\nconst cloneAmount = ref(0)\nconst loopCounter = ref(0)\nconst loopInterval = ref(null)\nconst resizeObserver = ref(null)\nconst checkInterval = ref(null)\n\nconst widthMin = ref('100%')\nconst widthContainer = ref(0)\nconst widthContent = ref(0)\nconst heightMin = ref('100%')\nconst heightContainer = ref(0)\nconst heightContent = ref(0)\n\nconst gradientLength = ref('200px')\n\nconst verticalAnimationPause = ref(false)\nconst marqueeContent = ref(null)\nconst marqueeOverlayContainer = ref(null)\n\nconst ForcesUpdate = async () => {\n await checkForClone()\n}\n\nconst checkForClone = async () => {\n if (props.vertical) {\n verticalAnimationPause.value = true\n }\n\n await nextTick()\n \n const calculateClones = () => {\n widthMin.value = '0%'\n heightMin.value = '0%'\n\n if (marqueeContent.value !== null && marqueeOverlayContainer.value !== null) {\n if (marqueeContent.value && marqueeOverlayContainer.value) {\n if (\n props.vertical &&\n 'clientHeight' in marqueeContent.value &&\n 'clientHeight' in marqueeOverlayContainer.value\n ) {\n heightContent.value = marqueeContent.value.clientHeight\n heightContainer.value = marqueeOverlayContainer.value.clientHeight\n\n const localCloneAmount = Math.ceil(heightContainer.value / heightContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n verticalAnimationPause.value = false\n\n return cloneAmount.value\n } else if (\n !props.vertical &&\n 'clientWidth' in marqueeContent.value &&\n 'clientWidth' in marqueeOverlayContainer.value\n ) {\n widthContent.value = marqueeContent.value.clientWidth\n widthContainer.value = marqueeOverlayContainer.value.clientWidth\n\n const localCloneAmount = Math.ceil(widthContainer.value / widthContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n return cloneAmount.value\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n }\n \n // Run once immediately\n calculateClones()\n \n // Setup ResizeObserver for efficient resize detection\n if (typeof ResizeObserver !== 'undefined' && marqueeOverlayContainer.value) {\n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n }\n \n resizeObserver.value = new ResizeObserver(() => {\n calculateClones()\n })\n \n resizeObserver.value.observe(marqueeOverlayContainer.value)\n } else {\n // Fallback for browsers without ResizeObserver\n // Only check once after a delay for initial setup\n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n }\n \n checkInterval.value = setTimeout(() => {\n calculateClones()\n checkInterval.value = null\n }, 500)\n }\n}\n\nconst hoverStarted = () => { if (props.pauseOnHover) emits('onPause') }\nconst hoverEnded = () => { if (props.pauseOnHover) emits('onResume') }\nconst mouseDown = () => { if (props.pauseOnClick) emits('onPause') }\nconst mouseUp = () => { if (props.pauseOnClick) emits('onResume') }\n\nconst getCurrentStyle = computed(() => {\n return {\n '--loops': `${props.loop === 0 ? 'infinite' : props.loop}`,\n '--duration': `${props.duration}s`,\n '--delay': `${props.delay}s`,\n '--direction': `${props.direction}`,\n '--pauseOnHover': `${props.pauseOnHover ? 'paused' : 'running'}`,\n '--pauseOnClick': `${props.pauseOnClick ? 'paused' : 'running'}`,\n '--pauseAnimation': `${(props.vertical && verticalAnimationPause.value) || props.pause ? 'paused' : 'running'}`,\n '--gradient-color': `rgba(${props.gradientColor}, 1), rgba(${props.gradientColor}, 0)`,\n '--gradient-length': `${gradientLength.value}`,\n '--min-width': `${widthMin.value}`,\n '--min-height': `${heightMin.value}`,\n '--orientation': props.vertical ? 'scrollY' : 'scrollX'\n }\n})\n\nconst setupMarquee = async () => {\n if (props.vertical) {\n heightMin.value = '100%'\n widthMin.value = 'auto'\n } else {\n heightMin.value = 'auto'\n widthMin.value = '100%'\n }\n\n if (props.gradient && props.gradientLength) {\n gradientLength.value = props.gradientLength\n }\n\n if (props.clone) {\n await checkForClone()\n ForcesUpdate()\n ready.value = true\n } else {\n ready.value = true\n }\n}\n\nonMounted(async () => {\n setupMarquee()\n\n loopInterval.value = setInterval(() => {\n loopCounter.value++\n\n if (props.loop !== 0 && loopCounter.value === props.loop) {\n emits('onComplete')\n clearInterval(loopInterval.value)\n }\n\n emits('onLoopComplete')\n }, props.duration * 1000)\n})\n\nonBeforeUnmount(() => {\n clearInterval(loopInterval.value)\n \n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n resizeObserver.value = null\n }\n \n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n checkInterval.value = null\n }\n})\n\n// Removed inefficient watchers - ResizeObserver handles this now\n\nwatch(\n () => props.pause,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n emits('onResume')\n } else {\n emits('onPause')\n }\n }\n }\n)\n</script>\n\n<style lang=\"scss\">\n.vue3-marquee {\n display: flex !important;\n position: relative;\n\n .marquee {\n flex: 0 0 auto;\n min-width: var(--min-width);\n min-height: var(--min-height);\n z-index: 1;\n\n animation: var(--orientation) var(--duration) linear var(--delay) var(--loops);\n animation-play-state: var(--pauseAnimation);\n animation-direction: var(--direction);\n }\n\n .overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n\n &:before {\n left: 0;\n top: 0;\n }\n\n &:before, &:after {\n content: '';\n position: absolute;\n z-index: 2;\n }\n }\n\n .transparent-overlay {\n position: absolute;\n width: 100.5%;\n height: 100.5%;\n }\n\n\n &.horizontal {\n overflow-x: hidden !important;\n overflow-y: hidden !important;\n flex-direction: row !important;\n width: 100%;\n height: max-content;\n\n .marquee {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n .overlay::before,.overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n height: 100%;\n width: var(--gradient-length);\n }\n\n .overlay::after {\n transform: rotateZ(180deg);\n right: 0;\n top: 0;\n }\n }\n\n &.vertical {\n overflow-y: hidden !important;\n overflow-x: hidden !important;\n flex-direction: column !important;\n height: 100%;\n width: max-content;\n\n .marquee {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .overlay::before, .overlay::after {\n background: linear-gradient(to bottom, var(--gradient-color));\n height: var(--gradient-length);\n width: 100%;\n }\n\n .overlay::after {\n transform: rotateZ(-180deg);\n left: 0;\n bottom: 0;\n }\n }\n\n &:hover {\n div {\n animation-play-state: var(--pauseOnHover);\n }\n }\n\n &:active {\n div {\n animation-play-state: var(--pauseOnClick);\n } \n }\n}\n\n@keyframes scrollX {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n@keyframes scrollY {\n 0% {\n transform: translateY(0%);\n }\n 100% {\n transform: translateY(-100%);\n }\n}\n</style>"],"names":["ref","nextTick","computed","onMounted","onBeforeUnmount","watch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Marquee.vue.cjs","sources":["../../../../../src/components/Marquee/Marquee.vue"],"sourcesContent":["<template>\n <div\n v-if=\"ready\"\n class=\"vue3-marquee\"\n :class=\"{ vertical: vertical, horizontal: !vertical }\"\n :style=\"getCurrentStyle\"\n @mouseenter=\"hoverStarted\"\n @mouseleave=\"hoverEnded\"\n @mousedown=\"mouseDown\"\n @mouseup=\"mouseUp\"\n >\n <div\n class=\"transparent-overlay\"\n ref=\"marqueeOverlayContainer\"\n :aria-hidden=\"true\"\n :class=\"{ vertical: vertical, horizontal: !vertical, overlay: gradient }\"\n />\n\n <div \n class=\"marquee\"\n ref=\"marqueeContent\">\n <slot></slot>\n </div>\n\n <div \n class=\"marquee\" \n :aria-hidden=\"true\"\n >\n <slot></slot>\n </div>\n\n <div\n v-for=\"num in cloneAmount\"\n :key=\"num\"\n :aria-hidden=\"true\"\n class=\"marquee cloned\"\n >\n <slot></slot>\n </div\n >\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed, watch, nextTick } from 'vue'\n\nconst props = defineProps({\n vertical: { type: Boolean, default: false },\n direction: { type: String, default: 'normal' },\n duration: { type: Number, default: 20 },\n delay: { type: Number, default: 0 },\n loop: { type: Number, default: 0 },\n clone: { type: Boolean, default: false },\n gradient: { type: Boolean, default: false },\n gradientColor: { type: [Array,String], default: () => [255, 255, 255] },\n gradientLength: { type: String },\n pauseOnHover: { type: Boolean, default: false },\n pauseOnClick: { type: Boolean, default: false },\n pause: { type: Boolean, default: false }\n})\n\nconst emits = defineEmits(['onComplete', 'onLoopComplete', 'onPause', 'onResume'])\n\nconst ready = ref(false)\n\nconst cloneAmount = ref(0)\nconst loopCounter = ref(0)\nconst loopInterval = ref(null)\nconst resizeObserver = ref(null)\nconst checkInterval = ref(null)\nconst resizeTimeout = ref(null)\n\nconst widthMin = ref('100%')\nconst widthContainer = ref(0)\nconst widthContent = ref(0)\nconst heightMin = ref('100%')\nconst heightContainer = ref(0)\nconst heightContent = ref(0)\n\nconst gradientLength = ref('200px')\n\nconst verticalAnimationPause = ref(false)\nconst marqueeContent = ref(null)\nconst marqueeOverlayContainer = ref(null)\n\n// Removed ForcesUpdate - no longer needed\n\nconst checkForClone = async () => {\n if (props.vertical) {\n verticalAnimationPause.value = true\n }\n\n await nextTick()\n \n const calculateClones = () => {\n widthMin.value = '0%'\n heightMin.value = '0%'\n\n if (marqueeContent.value !== null && marqueeOverlayContainer.value !== null) {\n if (marqueeContent.value && marqueeOverlayContainer.value) {\n if (\n props.vertical &&\n 'clientHeight' in marqueeContent.value &&\n 'clientHeight' in marqueeOverlayContainer.value\n ) {\n heightContent.value = marqueeContent.value.clientHeight\n heightContainer.value = marqueeOverlayContainer.value.clientHeight\n\n const localCloneAmount = Math.ceil(heightContainer.value / heightContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n verticalAnimationPause.value = false\n\n return cloneAmount.value\n } else if (\n !props.vertical &&\n 'clientWidth' in marqueeContent.value &&\n 'clientWidth' in marqueeOverlayContainer.value\n ) {\n widthContent.value = marqueeContent.value.clientWidth\n widthContainer.value = marqueeOverlayContainer.value.clientWidth\n\n const localCloneAmount = Math.ceil(widthContainer.value / widthContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n return cloneAmount.value\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n }\n \n // Run once immediately\n calculateClones()\n \n // Setup ResizeObserver for efficient resize detection\n if (typeof ResizeObserver !== 'undefined' && marqueeOverlayContainer.value) {\n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n }\n \n resizeObserver.value = new ResizeObserver(() => {\n clearTimeout(resizeTimeout.value)\n resizeTimeout.value = setTimeout(() => {\n calculateClones()\n }, 150)\n })\n \n resizeObserver.value.observe(marqueeOverlayContainer.value)\n } else {\n // Fallback for browsers without ResizeObserver\n // Only check once after a delay for initial setup\n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n }\n \n checkInterval.value = setTimeout(() => {\n calculateClones()\n checkInterval.value = null\n }, 500)\n }\n}\n\nconst hoverStarted = () => { if (props.pauseOnHover) emits('onPause') }\nconst hoverEnded = () => { if (props.pauseOnHover) emits('onResume') }\nconst mouseDown = () => { if (props.pauseOnClick) emits('onPause') }\nconst mouseUp = () => { if (props.pauseOnClick) emits('onResume') }\n\nconst getCurrentStyle = computed(() => {\n return {\n '--loops': `${props.loop === 0 ? 'infinite' : props.loop}`,\n '--duration': `${props.duration}s`,\n '--delay': `${props.delay}s`,\n '--direction': `${props.direction}`,\n '--pauseOnHover': `${props.pauseOnHover ? 'paused' : 'running'}`,\n '--pauseOnClick': `${props.pauseOnClick ? 'paused' : 'running'}`,\n '--pauseAnimation': `${(props.vertical && verticalAnimationPause.value) || props.pause ? 'paused' : 'running'}`,\n '--gradient-color': `rgba(${props.gradientColor}, 1), rgba(${props.gradientColor}, 0)`,\n '--gradient-length': `${gradientLength.value}`,\n '--min-width': `${widthMin.value}`,\n '--min-height': `${heightMin.value}`,\n '--orientation': props.vertical ? 'scrollY' : 'scrollX'\n }\n})\n\nconst setupMarquee = async () => {\n if (props.vertical) {\n heightMin.value = '100%'\n widthMin.value = 'auto'\n } else {\n heightMin.value = 'auto'\n widthMin.value = '100%'\n }\n\n if (props.gradient && props.gradientLength) {\n gradientLength.value = props.gradientLength\n }\n\n if (props.clone) {\n await checkForClone()\n ready.value = true\n } else {\n ready.value = true\n }\n}\n\nonMounted(async () => {\n setupMarquee()\n\n loopInterval.value = setInterval(() => {\n loopCounter.value++\n\n if (props.loop !== 0 && loopCounter.value === props.loop) {\n emits('onComplete')\n clearInterval(loopInterval.value)\n }\n\n emits('onLoopComplete')\n }, props.duration * 1000)\n})\n\nonBeforeUnmount(() => {\n clearInterval(loopInterval.value)\n \n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n resizeObserver.value = null\n }\n \n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n checkInterval.value = null\n }\n \n if (resizeTimeout.value) {\n clearTimeout(resizeTimeout.value)\n resizeTimeout.value = null\n }\n})\n\n// Removed inefficient watchers - ResizeObserver handles this now\n\nwatch(\n () => props.pause,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n emits('onResume')\n } else {\n emits('onPause')\n }\n }\n }\n)\n</script>\n\n<style lang=\"scss\">\n.vue3-marquee {\n display: flex !important;\n position: relative;\n\n .marquee {\n flex: 0 0 auto;\n min-width: var(--min-width);\n min-height: var(--min-height);\n z-index: 1;\n will-change: transform;\n transform: translateZ(0);\n backface-visibility: hidden;\n\n animation: var(--orientation) var(--duration) linear var(--delay) var(--loops);\n animation-play-state: var(--pauseAnimation);\n animation-direction: var(--direction);\n contain: layout style paint;\n }\n\n .overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n\n &:before {\n left: 0;\n top: 0;\n }\n\n &:before, &:after {\n content: '';\n position: absolute;\n z-index: 2;\n }\n }\n\n .transparent-overlay {\n position: absolute;\n width: 100.5%;\n height: 100.5%;\n }\n\n\n &.horizontal {\n overflow-x: hidden !important;\n overflow-y: hidden !important;\n flex-direction: row !important;\n width: 100%;\n height: max-content;\n\n .marquee {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n .overlay::before,.overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n height: 100%;\n width: var(--gradient-length);\n }\n\n .overlay::after {\n transform: rotateZ(180deg);\n right: 0;\n top: 0;\n }\n }\n\n &.vertical {\n overflow-y: hidden !important;\n overflow-x: hidden !important;\n flex-direction: column !important;\n height: 100%;\n width: max-content;\n\n .marquee {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .overlay::before, .overlay::after {\n background: linear-gradient(to bottom, var(--gradient-color));\n height: var(--gradient-length);\n width: 100%;\n }\n\n .overlay::after {\n transform: rotateZ(-180deg);\n left: 0;\n bottom: 0;\n }\n }\n\n &:hover {\n div {\n animation-play-state: var(--pauseOnHover);\n }\n }\n\n &:active {\n div {\n animation-play-state: var(--pauseOnClick);\n } \n }\n}\n\n@keyframes scrollX {\n 0% {\n transform: translate3d(0, 0, 0);\n }\n 100% {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n@keyframes scrollY {\n 0% {\n transform: translate3d(0, 0, 0);\n }\n 100% {\n transform: translate3d(0, -100%, 0);\n }\n}\n</style>"],"names":["ref","nextTick","computed","onMounted","onBeforeUnmount","watch"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const _sfc_main = {
|
|
|
30
30
|
const loopInterval = ref(null);
|
|
31
31
|
const resizeObserver = ref(null);
|
|
32
32
|
const checkInterval = ref(null);
|
|
33
|
+
const resizeTimeout = ref(null);
|
|
33
34
|
const widthMin = ref("100%");
|
|
34
35
|
const widthContainer = ref(0);
|
|
35
36
|
const widthContent = ref(0);
|
|
@@ -40,9 +41,6 @@ const _sfc_main = {
|
|
|
40
41
|
const verticalAnimationPause = ref(false);
|
|
41
42
|
const marqueeContent = ref(null);
|
|
42
43
|
const marqueeOverlayContainer = ref(null);
|
|
43
|
-
const ForcesUpdate = async () => {
|
|
44
|
-
await checkForClone();
|
|
45
|
-
};
|
|
46
44
|
const checkForClone = async () => {
|
|
47
45
|
if (props.vertical) {
|
|
48
46
|
verticalAnimationPause.value = true;
|
|
@@ -88,7 +86,10 @@ const _sfc_main = {
|
|
|
88
86
|
resizeObserver.value.disconnect();
|
|
89
87
|
}
|
|
90
88
|
resizeObserver.value = new ResizeObserver(() => {
|
|
91
|
-
|
|
89
|
+
clearTimeout(resizeTimeout.value);
|
|
90
|
+
resizeTimeout.value = setTimeout(() => {
|
|
91
|
+
calculateClones();
|
|
92
|
+
}, 150);
|
|
92
93
|
});
|
|
93
94
|
resizeObserver.value.observe(marqueeOverlayContainer.value);
|
|
94
95
|
} else {
|
|
@@ -142,7 +143,6 @@ const _sfc_main = {
|
|
|
142
143
|
}
|
|
143
144
|
if (props.clone) {
|
|
144
145
|
await checkForClone();
|
|
145
|
-
ForcesUpdate();
|
|
146
146
|
ready.value = true;
|
|
147
147
|
} else {
|
|
148
148
|
ready.value = true;
|
|
@@ -169,6 +169,10 @@ const _sfc_main = {
|
|
|
169
169
|
clearInterval(checkInterval.value);
|
|
170
170
|
checkInterval.value = null;
|
|
171
171
|
}
|
|
172
|
+
if (resizeTimeout.value) {
|
|
173
|
+
clearTimeout(resizeTimeout.value);
|
|
174
|
+
resizeTimeout.value = null;
|
|
175
|
+
}
|
|
172
176
|
});
|
|
173
177
|
watch(
|
|
174
178
|
() => props.pause,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marquee.vue.js","sources":["../../../../../src/components/Marquee/Marquee.vue"],"sourcesContent":["<template>\n <div\n v-if=\"ready\"\n class=\"vue3-marquee\"\n :class=\"{ vertical: vertical, horizontal: !vertical }\"\n :style=\"getCurrentStyle\"\n @mouseenter=\"hoverStarted\"\n @mouseleave=\"hoverEnded\"\n @mousedown=\"mouseDown\"\n @mouseup=\"mouseUp\"\n >\n <div\n class=\"transparent-overlay\"\n ref=\"marqueeOverlayContainer\"\n :aria-hidden=\"true\"\n :class=\"{ vertical: vertical, horizontal: !vertical, overlay: gradient }\"\n />\n\n <div \n class=\"marquee\"\n ref=\"marqueeContent\">\n <slot></slot>\n </div>\n\n <div \n class=\"marquee\" \n :aria-hidden=\"true\"\n >\n <slot></slot>\n </div>\n\n <div\n v-for=\"num in cloneAmount\"\n :key=\"num\"\n :aria-hidden=\"true\"\n class=\"marquee cloned\"\n >\n <slot></slot>\n </div\n >\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed, watch, nextTick } from 'vue'\n\nconst props = defineProps({\n vertical: { type: Boolean, default: false },\n direction: { type: String, default: 'normal' },\n duration: { type: Number, default: 20 },\n delay: { type: Number, default: 0 },\n loop: { type: Number, default: 0 },\n clone: { type: Boolean, default: false },\n gradient: { type: Boolean, default: false },\n gradientColor: { type: [Array,String], default: () => [255, 255, 255] },\n gradientLength: { type: String },\n pauseOnHover: { type: Boolean, default: false },\n pauseOnClick: { type: Boolean, default: false },\n pause: { type: Boolean, default: false }\n})\n\nconst emits = defineEmits(['onComplete', 'onLoopComplete', 'onPause', 'onResume'])\n\nconst ready = ref(false)\n\nconst cloneAmount = ref(0)\nconst loopCounter = ref(0)\nconst loopInterval = ref(null)\nconst resizeObserver = ref(null)\nconst checkInterval = ref(null)\n\nconst widthMin = ref('100%')\nconst widthContainer = ref(0)\nconst widthContent = ref(0)\nconst heightMin = ref('100%')\nconst heightContainer = ref(0)\nconst heightContent = ref(0)\n\nconst gradientLength = ref('200px')\n\nconst verticalAnimationPause = ref(false)\nconst marqueeContent = ref(null)\nconst marqueeOverlayContainer = ref(null)\n\nconst ForcesUpdate = async () => {\n await checkForClone()\n}\n\nconst checkForClone = async () => {\n if (props.vertical) {\n verticalAnimationPause.value = true\n }\n\n await nextTick()\n \n const calculateClones = () => {\n widthMin.value = '0%'\n heightMin.value = '0%'\n\n if (marqueeContent.value !== null && marqueeOverlayContainer.value !== null) {\n if (marqueeContent.value && marqueeOverlayContainer.value) {\n if (\n props.vertical &&\n 'clientHeight' in marqueeContent.value &&\n 'clientHeight' in marqueeOverlayContainer.value\n ) {\n heightContent.value = marqueeContent.value.clientHeight\n heightContainer.value = marqueeOverlayContainer.value.clientHeight\n\n const localCloneAmount = Math.ceil(heightContainer.value / heightContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n verticalAnimationPause.value = false\n\n return cloneAmount.value\n } else if (\n !props.vertical &&\n 'clientWidth' in marqueeContent.value &&\n 'clientWidth' in marqueeOverlayContainer.value\n ) {\n widthContent.value = marqueeContent.value.clientWidth\n widthContainer.value = marqueeOverlayContainer.value.clientWidth\n\n const localCloneAmount = Math.ceil(widthContainer.value / widthContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n return cloneAmount.value\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n }\n \n // Run once immediately\n calculateClones()\n \n // Setup ResizeObserver for efficient resize detection\n if (typeof ResizeObserver !== 'undefined' && marqueeOverlayContainer.value) {\n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n }\n \n resizeObserver.value = new ResizeObserver(() => {\n calculateClones()\n })\n \n resizeObserver.value.observe(marqueeOverlayContainer.value)\n } else {\n // Fallback for browsers without ResizeObserver\n // Only check once after a delay for initial setup\n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n }\n \n checkInterval.value = setTimeout(() => {\n calculateClones()\n checkInterval.value = null\n }, 500)\n }\n}\n\nconst hoverStarted = () => { if (props.pauseOnHover) emits('onPause') }\nconst hoverEnded = () => { if (props.pauseOnHover) emits('onResume') }\nconst mouseDown = () => { if (props.pauseOnClick) emits('onPause') }\nconst mouseUp = () => { if (props.pauseOnClick) emits('onResume') }\n\nconst getCurrentStyle = computed(() => {\n return {\n '--loops': `${props.loop === 0 ? 'infinite' : props.loop}`,\n '--duration': `${props.duration}s`,\n '--delay': `${props.delay}s`,\n '--direction': `${props.direction}`,\n '--pauseOnHover': `${props.pauseOnHover ? 'paused' : 'running'}`,\n '--pauseOnClick': `${props.pauseOnClick ? 'paused' : 'running'}`,\n '--pauseAnimation': `${(props.vertical && verticalAnimationPause.value) || props.pause ? 'paused' : 'running'}`,\n '--gradient-color': `rgba(${props.gradientColor}, 1), rgba(${props.gradientColor}, 0)`,\n '--gradient-length': `${gradientLength.value}`,\n '--min-width': `${widthMin.value}`,\n '--min-height': `${heightMin.value}`,\n '--orientation': props.vertical ? 'scrollY' : 'scrollX'\n }\n})\n\nconst setupMarquee = async () => {\n if (props.vertical) {\n heightMin.value = '100%'\n widthMin.value = 'auto'\n } else {\n heightMin.value = 'auto'\n widthMin.value = '100%'\n }\n\n if (props.gradient && props.gradientLength) {\n gradientLength.value = props.gradientLength\n }\n\n if (props.clone) {\n await checkForClone()\n ForcesUpdate()\n ready.value = true\n } else {\n ready.value = true\n }\n}\n\nonMounted(async () => {\n setupMarquee()\n\n loopInterval.value = setInterval(() => {\n loopCounter.value++\n\n if (props.loop !== 0 && loopCounter.value === props.loop) {\n emits('onComplete')\n clearInterval(loopInterval.value)\n }\n\n emits('onLoopComplete')\n }, props.duration * 1000)\n})\n\nonBeforeUnmount(() => {\n clearInterval(loopInterval.value)\n \n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n resizeObserver.value = null\n }\n \n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n checkInterval.value = null\n }\n})\n\n// Removed inefficient watchers - ResizeObserver handles this now\n\nwatch(\n () => props.pause,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n emits('onResume')\n } else {\n emits('onPause')\n }\n }\n }\n)\n</script>\n\n<style lang=\"scss\">\n.vue3-marquee {\n display: flex !important;\n position: relative;\n\n .marquee {\n flex: 0 0 auto;\n min-width: var(--min-width);\n min-height: var(--min-height);\n z-index: 1;\n\n animation: var(--orientation) var(--duration) linear var(--delay) var(--loops);\n animation-play-state: var(--pauseAnimation);\n animation-direction: var(--direction);\n }\n\n .overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n\n &:before {\n left: 0;\n top: 0;\n }\n\n &:before, &:after {\n content: '';\n position: absolute;\n z-index: 2;\n }\n }\n\n .transparent-overlay {\n position: absolute;\n width: 100.5%;\n height: 100.5%;\n }\n\n\n &.horizontal {\n overflow-x: hidden !important;\n overflow-y: hidden !important;\n flex-direction: row !important;\n width: 100%;\n height: max-content;\n\n .marquee {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n .overlay::before,.overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n height: 100%;\n width: var(--gradient-length);\n }\n\n .overlay::after {\n transform: rotateZ(180deg);\n right: 0;\n top: 0;\n }\n }\n\n &.vertical {\n overflow-y: hidden !important;\n overflow-x: hidden !important;\n flex-direction: column !important;\n height: 100%;\n width: max-content;\n\n .marquee {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .overlay::before, .overlay::after {\n background: linear-gradient(to bottom, var(--gradient-color));\n height: var(--gradient-length);\n width: 100%;\n }\n\n .overlay::after {\n transform: rotateZ(-180deg);\n left: 0;\n bottom: 0;\n }\n }\n\n &:hover {\n div {\n animation-play-state: var(--pauseOnHover);\n }\n }\n\n &:active {\n div {\n animation-play-state: var(--pauseOnClick);\n } \n }\n}\n\n@keyframes scrollX {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n@keyframes scrollY {\n 0% {\n transform: translateY(0%);\n }\n 100% {\n transform: translateY(-100%);\n }\n}\n</style>"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Marquee.vue.js","sources":["../../../../../src/components/Marquee/Marquee.vue"],"sourcesContent":["<template>\n <div\n v-if=\"ready\"\n class=\"vue3-marquee\"\n :class=\"{ vertical: vertical, horizontal: !vertical }\"\n :style=\"getCurrentStyle\"\n @mouseenter=\"hoverStarted\"\n @mouseleave=\"hoverEnded\"\n @mousedown=\"mouseDown\"\n @mouseup=\"mouseUp\"\n >\n <div\n class=\"transparent-overlay\"\n ref=\"marqueeOverlayContainer\"\n :aria-hidden=\"true\"\n :class=\"{ vertical: vertical, horizontal: !vertical, overlay: gradient }\"\n />\n\n <div \n class=\"marquee\"\n ref=\"marqueeContent\">\n <slot></slot>\n </div>\n\n <div \n class=\"marquee\" \n :aria-hidden=\"true\"\n >\n <slot></slot>\n </div>\n\n <div\n v-for=\"num in cloneAmount\"\n :key=\"num\"\n :aria-hidden=\"true\"\n class=\"marquee cloned\"\n >\n <slot></slot>\n </div\n >\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed, watch, nextTick } from 'vue'\n\nconst props = defineProps({\n vertical: { type: Boolean, default: false },\n direction: { type: String, default: 'normal' },\n duration: { type: Number, default: 20 },\n delay: { type: Number, default: 0 },\n loop: { type: Number, default: 0 },\n clone: { type: Boolean, default: false },\n gradient: { type: Boolean, default: false },\n gradientColor: { type: [Array,String], default: () => [255, 255, 255] },\n gradientLength: { type: String },\n pauseOnHover: { type: Boolean, default: false },\n pauseOnClick: { type: Boolean, default: false },\n pause: { type: Boolean, default: false }\n})\n\nconst emits = defineEmits(['onComplete', 'onLoopComplete', 'onPause', 'onResume'])\n\nconst ready = ref(false)\n\nconst cloneAmount = ref(0)\nconst loopCounter = ref(0)\nconst loopInterval = ref(null)\nconst resizeObserver = ref(null)\nconst checkInterval = ref(null)\nconst resizeTimeout = ref(null)\n\nconst widthMin = ref('100%')\nconst widthContainer = ref(0)\nconst widthContent = ref(0)\nconst heightMin = ref('100%')\nconst heightContainer = ref(0)\nconst heightContent = ref(0)\n\nconst gradientLength = ref('200px')\n\nconst verticalAnimationPause = ref(false)\nconst marqueeContent = ref(null)\nconst marqueeOverlayContainer = ref(null)\n\n// Removed ForcesUpdate - no longer needed\n\nconst checkForClone = async () => {\n if (props.vertical) {\n verticalAnimationPause.value = true\n }\n\n await nextTick()\n \n const calculateClones = () => {\n widthMin.value = '0%'\n heightMin.value = '0%'\n\n if (marqueeContent.value !== null && marqueeOverlayContainer.value !== null) {\n if (marqueeContent.value && marqueeOverlayContainer.value) {\n if (\n props.vertical &&\n 'clientHeight' in marqueeContent.value &&\n 'clientHeight' in marqueeOverlayContainer.value\n ) {\n heightContent.value = marqueeContent.value.clientHeight\n heightContainer.value = marqueeOverlayContainer.value.clientHeight\n\n const localCloneAmount = Math.ceil(heightContainer.value / heightContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n verticalAnimationPause.value = false\n\n return cloneAmount.value\n } else if (\n !props.vertical &&\n 'clientWidth' in marqueeContent.value &&\n 'clientWidth' in marqueeOverlayContainer.value\n ) {\n widthContent.value = marqueeContent.value.clientWidth\n widthContainer.value = marqueeOverlayContainer.value.clientWidth\n\n const localCloneAmount = Math.ceil(widthContainer.value / widthContent.value)\n\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0\n\n return cloneAmount.value\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n } else {\n widthMin.value = '100%'\n heightMin.value = '100%'\n return 0\n }\n }\n \n // Run once immediately\n calculateClones()\n \n // Setup ResizeObserver for efficient resize detection\n if (typeof ResizeObserver !== 'undefined' && marqueeOverlayContainer.value) {\n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n }\n \n resizeObserver.value = new ResizeObserver(() => {\n clearTimeout(resizeTimeout.value)\n resizeTimeout.value = setTimeout(() => {\n calculateClones()\n }, 150)\n })\n \n resizeObserver.value.observe(marqueeOverlayContainer.value)\n } else {\n // Fallback for browsers without ResizeObserver\n // Only check once after a delay for initial setup\n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n }\n \n checkInterval.value = setTimeout(() => {\n calculateClones()\n checkInterval.value = null\n }, 500)\n }\n}\n\nconst hoverStarted = () => { if (props.pauseOnHover) emits('onPause') }\nconst hoverEnded = () => { if (props.pauseOnHover) emits('onResume') }\nconst mouseDown = () => { if (props.pauseOnClick) emits('onPause') }\nconst mouseUp = () => { if (props.pauseOnClick) emits('onResume') }\n\nconst getCurrentStyle = computed(() => {\n return {\n '--loops': `${props.loop === 0 ? 'infinite' : props.loop}`,\n '--duration': `${props.duration}s`,\n '--delay': `${props.delay}s`,\n '--direction': `${props.direction}`,\n '--pauseOnHover': `${props.pauseOnHover ? 'paused' : 'running'}`,\n '--pauseOnClick': `${props.pauseOnClick ? 'paused' : 'running'}`,\n '--pauseAnimation': `${(props.vertical && verticalAnimationPause.value) || props.pause ? 'paused' : 'running'}`,\n '--gradient-color': `rgba(${props.gradientColor}, 1), rgba(${props.gradientColor}, 0)`,\n '--gradient-length': `${gradientLength.value}`,\n '--min-width': `${widthMin.value}`,\n '--min-height': `${heightMin.value}`,\n '--orientation': props.vertical ? 'scrollY' : 'scrollX'\n }\n})\n\nconst setupMarquee = async () => {\n if (props.vertical) {\n heightMin.value = '100%'\n widthMin.value = 'auto'\n } else {\n heightMin.value = 'auto'\n widthMin.value = '100%'\n }\n\n if (props.gradient && props.gradientLength) {\n gradientLength.value = props.gradientLength\n }\n\n if (props.clone) {\n await checkForClone()\n ready.value = true\n } else {\n ready.value = true\n }\n}\n\nonMounted(async () => {\n setupMarquee()\n\n loopInterval.value = setInterval(() => {\n loopCounter.value++\n\n if (props.loop !== 0 && loopCounter.value === props.loop) {\n emits('onComplete')\n clearInterval(loopInterval.value)\n }\n\n emits('onLoopComplete')\n }, props.duration * 1000)\n})\n\nonBeforeUnmount(() => {\n clearInterval(loopInterval.value)\n \n if (resizeObserver.value) {\n resizeObserver.value.disconnect()\n resizeObserver.value = null\n }\n \n if (checkInterval.value) {\n clearInterval(checkInterval.value)\n checkInterval.value = null\n }\n \n if (resizeTimeout.value) {\n clearTimeout(resizeTimeout.value)\n resizeTimeout.value = null\n }\n})\n\n// Removed inefficient watchers - ResizeObserver handles this now\n\nwatch(\n () => props.pause,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n emits('onResume')\n } else {\n emits('onPause')\n }\n }\n }\n)\n</script>\n\n<style lang=\"scss\">\n.vue3-marquee {\n display: flex !important;\n position: relative;\n\n .marquee {\n flex: 0 0 auto;\n min-width: var(--min-width);\n min-height: var(--min-height);\n z-index: 1;\n will-change: transform;\n transform: translateZ(0);\n backface-visibility: hidden;\n\n animation: var(--orientation) var(--duration) linear var(--delay) var(--loops);\n animation-play-state: var(--pauseAnimation);\n animation-direction: var(--direction);\n contain: layout style paint;\n }\n\n .overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n\n &:before {\n left: 0;\n top: 0;\n }\n\n &:before, &:after {\n content: '';\n position: absolute;\n z-index: 2;\n }\n }\n\n .transparent-overlay {\n position: absolute;\n width: 100.5%;\n height: 100.5%;\n }\n\n\n &.horizontal {\n overflow-x: hidden !important;\n overflow-y: hidden !important;\n flex-direction: row !important;\n width: 100%;\n height: max-content;\n\n .marquee {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n .overlay::before,.overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n height: 100%;\n width: var(--gradient-length);\n }\n\n .overlay::after {\n transform: rotateZ(180deg);\n right: 0;\n top: 0;\n }\n }\n\n &.vertical {\n overflow-y: hidden !important;\n overflow-x: hidden !important;\n flex-direction: column !important;\n height: 100%;\n width: max-content;\n\n .marquee {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .overlay::before, .overlay::after {\n background: linear-gradient(to bottom, var(--gradient-color));\n height: var(--gradient-length);\n width: 100%;\n }\n\n .overlay::after {\n transform: rotateZ(-180deg);\n left: 0;\n bottom: 0;\n }\n }\n\n &:hover {\n div {\n animation-play-state: var(--pauseOnHover);\n }\n }\n\n &:active {\n div {\n animation-play-state: var(--pauseOnClick);\n } \n }\n}\n\n@keyframes scrollX {\n 0% {\n transform: translate3d(0, 0, 0);\n }\n 100% {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n@keyframes scrollY {\n 0% {\n transform: translate3d(0, 0, 0);\n }\n 100% {\n transform: translate3d(0, -100%, 0);\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8CA,UAAM,QAAQ;AAed,UAAM,QAAQ;AAEd,UAAM,QAAQ,IAAI,KAAK;AAEvB,UAAM,cAAc,IAAI,CAAC;AACzB,UAAM,cAAc,IAAI,CAAC;AACzB,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,gBAAgB,IAAI,IAAI;AAC9B,UAAM,gBAAgB,IAAI,IAAI;AAE9B,UAAM,WAAW,IAAI,MAAM;AAC3B,UAAM,iBAAiB,IAAI,CAAC;AAC5B,UAAM,eAAe,IAAI,CAAC;AAC1B,UAAM,YAAY,IAAI,MAAM;AAC5B,UAAM,kBAAkB,IAAI,CAAC;AAC7B,UAAM,gBAAgB,IAAI,CAAC;AAE3B,UAAM,iBAAiB,IAAI,OAAO;AAElC,UAAM,yBAAyB,IAAI,KAAK;AACxC,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,0BAA0B,IAAI,IAAI;AAIxC,UAAM,gBAAgB,YAAY;AAChC,UAAI,MAAM,UAAU;AAClB,+BAAuB,QAAQ;AAAA,MACjC;AAEA,YAAM,SAAQ;AAEd,YAAM,kBAAkB,MAAM;AAC5B,iBAAS,QAAQ;AACjB,kBAAU,QAAQ;AAElB,YAAI,eAAe,UAAU,QAAQ,wBAAwB,UAAU,MAAM;AAC3E,cAAI,eAAe,SAAS,wBAAwB,OAAO;AACzD,gBACE,MAAM,YACN,kBAAkB,eAAe,SACjC,kBAAkB,wBAAwB,OAC1C;AACA,4BAAc,QAAQ,eAAe,MAAM;AAC3C,8BAAgB,QAAQ,wBAAwB,MAAM;AAEtD,oBAAM,mBAAmB,KAAK,KAAK,gBAAgB,QAAQ,cAAc,KAAK;AAE9E,0BAAY,QAAQ,SAAS,gBAAgB,IAAI,mBAAmB;AAEpE,qCAAuB,QAAQ;AAE/B,qBAAO,YAAY;AAAA,YACrB,WACE,CAAC,MAAM,YACP,iBAAiB,eAAe,SAChC,iBAAiB,wBAAwB,OACzC;AACA,2BAAa,QAAQ,eAAe,MAAM;AAC1C,6BAAe,QAAQ,wBAAwB,MAAM;AAErD,oBAAM,mBAAmB,KAAK,KAAK,eAAe,QAAQ,aAAa,KAAK;AAE5E,0BAAY,QAAQ,SAAS,gBAAgB,IAAI,mBAAmB;AAEpE,qBAAO,YAAY;AAAA,YACrB,OAAO;AACL,uBAAS,QAAQ;AACjB,wBAAU,QAAQ;AAClB,qBAAO;AAAA,YACT;AAAA,UACF,OAAO;AACL,qBAAS,QAAQ;AACjB,sBAAU,QAAQ;AAClB,mBAAO;AAAA,UACT;AAAA,QACF,OAAO;AACL,mBAAS,QAAQ;AACjB,oBAAU,QAAQ;AAClB,iBAAO;AAAA,QACT;AAAA,MACF;AAGA,sBAAe;AAGf,UAAI,OAAO,mBAAmB,eAAe,wBAAwB,OAAO;AAC1E,YAAI,eAAe,OAAO;AACxB,yBAAe,MAAM,WAAU;AAAA,QACjC;AAEA,uBAAe,QAAQ,IAAI,eAAe,MAAM;AAC9C,uBAAa,cAAc,KAAK;AAChC,wBAAc,QAAQ,WAAW,MAAM;AACrC,4BAAe;AAAA,UACjB,GAAG,GAAG;AAAA,QACR,CAAC;AAED,uBAAe,MAAM,QAAQ,wBAAwB,KAAK;AAAA,MAC5D,OAAO;AAGL,YAAI,cAAc,OAAO;AACvB,wBAAc,cAAc,KAAK;AAAA,QACnC;AAEA,sBAAc,QAAQ,WAAW,MAAM;AACrC,0BAAe;AACf,wBAAc,QAAQ;AAAA,QACxB,GAAG,GAAG;AAAA,MACR;AAAA,IACF;AAEA,UAAM,eAAe,MAAM;AAAE,UAAI,MAAM,aAAc,OAAM,SAAS;AAAA,IAAE;AACtE,UAAM,aAAa,MAAM;AAAE,UAAI,MAAM,aAAc,OAAM,UAAU;AAAA,IAAE;AACrE,UAAM,YAAY,MAAM;AAAE,UAAI,MAAM,aAAc,OAAM,SAAS;AAAA,IAAE;AACnE,UAAM,UAAU,MAAM;AAAE,UAAI,MAAM,aAAc,OAAM,UAAU;AAAA,IAAE;AAElE,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO;AAAA,QACL,WAAW,GAAG,MAAM,SAAS,IAAI,aAAa,MAAM,IAAI;AAAA,QACxD,cAAc,GAAG,MAAM,QAAQ;AAAA,QAC/B,WAAW,GAAG,MAAM,KAAK;AAAA,QACzB,eAAe,GAAG,MAAM,SAAS;AAAA,QACjC,kBAAkB,GAAG,MAAM,eAAe,WAAW,SAAS;AAAA,QAC9D,kBAAkB,GAAG,MAAM,eAAe,WAAW,SAAS;AAAA,QAC9D,oBAAoB,GAAI,MAAM,YAAY,uBAAuB,SAAU,MAAM,QAAQ,WAAW,SAAS;AAAA,QAC7G,oBAAoB,QAAQ,MAAM,aAAa,cAAc,MAAM,aAAa;AAAA,QAChF,qBAAqB,GAAG,eAAe,KAAK;AAAA,QAC5C,eAAe,GAAG,SAAS,KAAK;AAAA,QAChC,gBAAgB,GAAG,UAAU,KAAK;AAAA,QAClC,iBAAiB,MAAM,WAAW,YAAY;AAAA,MAClD;AAAA,IACA,CAAC;AAED,UAAM,eAAe,YAAY;AAC/B,UAAI,MAAM,UAAU;AAClB,kBAAU,QAAQ;AAClB,iBAAS,QAAQ;AAAA,MACnB,OAAO;AACL,kBAAU,QAAQ;AAClB,iBAAS,QAAQ;AAAA,MACnB;AAEA,UAAI,MAAM,YAAY,MAAM,gBAAgB;AAC1C,uBAAe,QAAQ,MAAM;AAAA,MAC/B;AAEA,UAAI,MAAM,OAAO;AACf,cAAM,cAAa;AACnB,cAAM,QAAQ;AAAA,MAChB,OAAO;AACL,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAEA,cAAU,YAAY;AACpB,mBAAY;AAEZ,mBAAa,QAAQ,YAAY,MAAM;AACrC,oBAAY;AAEZ,YAAI,MAAM,SAAS,KAAK,YAAY,UAAU,MAAM,MAAM;AACxD,gBAAM,YAAY;AAClB,wBAAc,aAAa,KAAK;AAAA,QAClC;AAEA,cAAM,gBAAgB;AAAA,MACxB,GAAG,MAAM,WAAW,GAAI;AAAA,IAC1B,CAAC;AAED,oBAAgB,MAAM;AACpB,oBAAc,aAAa,KAAK;AAEhC,UAAI,eAAe,OAAO;AACxB,uBAAe,MAAM,WAAU;AAC/B,uBAAe,QAAQ;AAAA,MACzB;AAEA,UAAI,cAAc,OAAO;AACvB,sBAAc,cAAc,KAAK;AACjC,sBAAc,QAAQ;AAAA,MACxB;AAEA,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAChC,sBAAc,QAAQ;AAAA,MACxB;AAAA,IACF,CAAC;AAID;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC,QAAQ,WAAW;AAClB,YAAI,WAAW,QAAQ;AACrB,cAAI,QAAQ;AACV,kBAAM,UAAU;AAAA,UAClB,OAAO;AACL,kBAAM,SAAS;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
;/* empty css
|
|
4
|
+
;/* empty css */
|
|
5
5
|
const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
__name: "Menu",
|
|
@@ -14,4 +14,4 @@ const _sfc_main = {
|
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
exports.default = _sfc_main;
|
|
17
|
-
//# sourceMappingURL=Menu.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -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.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const clickOutside = require("../FieldPhone/click-outside.cjs");
|
|
5
|
-
;/* empty css
|
|
5
|
+
;/* empty css */
|
|
6
6
|
const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
7
7
|
const _hoisted_1 = {
|
|
8
8
|
key: 0,
|
|
@@ -131,4 +131,4 @@ const _sfc_main = {
|
|
|
131
131
|
};
|
|
132
132
|
const Select = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-849e5dfe"]]);
|
|
133
133
|
exports.default = Select;
|
|
134
|
-
//# sourceMappingURL=Select.
|
|
134
|
+
//# sourceMappingURL=Select.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.
|
|
1
|
+
{"version":3,"file":"Select.vue.cjs","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":["clickOutside","ref","computed","watch","nextTick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,QAAI,gBAAgBA,aAAAA;AACpB,UAAM,OAAO;AAKb,UAAM,QAAQ;AASd,UAAM,WAAWC,IAAAA,IAAI,KAAK;AAC1B,UAAM,eAAeA,IAAAA,IAAI,IAAI;AAC7B,UAAM,kBAAkBA,IAAAA;AAAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AACA,UAAM,gBAAgBC,IAAAA,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AACDC,QAAAA,MAAM,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,cAAMC,IAAAA,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,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, watch, createElementBlock, openBlock, Fragment, withDirectives, createVNode, normalizeClass, withModifiers, createCommentVNode, createElementVNode, toDisplayString, Transition, withCtx, renderList, vShow, unref, nextTick } from "vue";
|
|
2
2
|
import clickOutside from "../FieldPhone/click-outside.js";
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
5
|
const _hoisted_1 = {
|
|
6
6
|
key: 0,
|
|
@@ -131,4 +131,4 @@ const Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-849
|
|
|
131
131
|
export {
|
|
132
132
|
Select as default
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=Select.
|
|
134
|
+
//# sourceMappingURL=Select.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.vue.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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
;/* empty css
|
|
4
|
+
;/* empty css */
|
|
5
5
|
const _sfc_main = {
|
|
6
6
|
__name: "Spoiler",
|
|
7
7
|
props: {
|
|
@@ -70,4 +70,4 @@ const _sfc_main = {
|
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
72
|
exports.default = _sfc_main;
|
|
73
|
-
//# sourceMappingURL=Spoiler.
|
|
73
|
+
//# sourceMappingURL=Spoiler.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spoiler.
|
|
1
|
+
{"version":3,"file":"Spoiler.vue.cjs","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":["ref","onMounted"],"mappings":";;;;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAcA,IAAAA,IAAI,KAAK;AAC7B,UAAM,iBAAiBA,IAAAA,IAAI,IAAI;AAE/BC,QAAAA,UAAU,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, renderSlot, Transition, withCtx, withDirectives, vShow } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _sfc_main = {
|
|
4
4
|
__name: "Spoiler",
|
|
5
5
|
props: {
|
|
@@ -70,4 +70,4 @@ const _sfc_main = {
|
|
|
70
70
|
export {
|
|
71
71
|
_sfc_main as default
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=Spoiler.
|
|
73
|
+
//# sourceMappingURL=Spoiler.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,7 +5,7 @@ const vue = require("vue");
|
|
|
5
5
|
;/* empty css */
|
|
6
6
|
;/* empty css */
|
|
7
7
|
const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue2.cjs");
|
|
8
|
-
const Menu = require("../../../../../components/Menu/Menu.
|
|
8
|
+
const Menu = require("../../../../../components/Menu/Menu.vue.cjs");
|
|
9
9
|
const MenuItem = require("../../../../../components/Menu/MenuItem.vue.cjs");
|
|
10
10
|
const ButtonToggleMembership = require("../../../../organizations/components/elements/ButtonToggleMembership.vue.cjs");
|
|
11
11
|
const FormReport = require("../../../../reports/components/sections/FormReport.vue.cjs");
|
|
@@ -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.vue2.js";
|
|
6
|
-
import _sfc_main$6 from "../../../../../components/Menu/Menu.
|
|
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";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
|
-
const Select = require("../../../../components/Select/Select.
|
|
5
|
+
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
6
6
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
7
7
|
const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
|
|
8
8
|
const IconFeatured = require("../../../icons/entities/IconFeatured.vue.cjs");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, unref, createBlock, normalizeClass, createTextVNode, withCtx, Transition, resolveDynamicComponent, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import Select from "../../../../components/Select/Select.
|
|
3
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
4
4
|
import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
import _sfc_main$6 from "../../../organizations/components/blocks/CardOrganization.vue.js";
|
|
6
6
|
import _sfc_main$1 from "../../../icons/entities/IconFeatured.vue.js";
|
|
@@ -5,7 +5,7 @@ require("isomorphic-dompurify");
|
|
|
5
5
|
;/* empty css */
|
|
6
6
|
const Constructor = require("../../../constructor/components/sections/Constructor.vue.cjs");
|
|
7
7
|
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
8
|
-
require("../../../../../../_virtual/
|
|
8
|
+
require("../../../../../../_virtual/index2.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
10
|
;/* empty css */
|
|
11
11
|
const BlockTags = require("../../../../components/FieldTags/BlockTags.vue.cjs");
|
|
@@ -3,7 +3,7 @@ import "isomorphic-dompurify";
|
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _sfc_main$1 from "../../../constructor/components/sections/Constructor.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
|
|
6
|
-
import "../../../../../../_virtual/
|
|
6
|
+
import "../../../../../../_virtual/index2.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
import _sfc_main$3 from "../../../../components/FieldTags/BlockTags.vue.js";
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
;/* empty css */
|
|
6
6
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
7
|
-
;/* empty css
|
|
7
|
+
;/* empty css */
|
|
8
8
|
const Chips = require("../../../../components/Chips/Chips.vue2.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
10
|
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
@@ -2,7 +2,7 @@ import { ref, createElementBlock, openBlock, createVNode, unref, isRef, withCtx,
|
|
|
2
2
|
import { useRoute } from "vue-router";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _sfc_main$8 from "../../../../components/Button/Button.vue.js";
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
import _sfc_main$4 from "../../../../components/Chips/Chips.vue2.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const index = require("../../../../../../_virtual/
|
|
3
|
+
const index = require("../../../../../../_virtual/index.cjs");
|
|
4
4
|
class I18nManager {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.moduleLocales = /* @__PURE__ */ new Map();
|
|
@@ -8,7 +8,7 @@ const shopcart = require("../../../../orders/store/shopcart.cjs");
|
|
|
8
8
|
const auth = require("../../../../auth/views/store/auth.cjs");
|
|
9
9
|
const NotificationBadge = require("../../../../notifications/components/elements/NotificationBadge.vue.cjs");
|
|
10
10
|
const Button = require("../../../../../components/Button/Button.vue.cjs");
|
|
11
|
-
const Select = require("../../../../../components/Select/Select.
|
|
11
|
+
const Select = require("../../../../../components/Select/Select.vue.cjs");
|
|
12
12
|
const IconShopcart = require("../../../../icons/entities/IconShopcart.vue.cjs");
|
|
13
13
|
const IconProfile = require("../../../../icons/entities/IconProfile.vue.cjs");
|
|
14
14
|
const IconSearch = require("../../../../icons/navigation/IconSearch.vue.cjs");
|
|
@@ -6,7 +6,7 @@ import { actions, getters } from "../../../../orders/store/shopcart.js";
|
|
|
6
6
|
import { state as state$1 } from "../../../../auth/views/store/auth.js";
|
|
7
7
|
import NotificationBadge from "../../../../notifications/components/elements/NotificationBadge.vue.js";
|
|
8
8
|
import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
|
|
9
|
-
import Select from "../../../../../components/Select/Select.
|
|
9
|
+
import Select from "../../../../../components/Select/Select.vue.js";
|
|
10
10
|
import _sfc_main$3 from "../../../../icons/entities/IconShopcart.vue.js";
|
|
11
11
|
import _sfc_main$4 from "../../../../icons/entities/IconProfile.vue.js";
|
|
12
12
|
import _sfc_main$2 from "../../../../icons/navigation/IconSearch.vue.js";
|
|
@@ -6,7 +6,7 @@ const IconChevronBottom = require("../../../../icons/navigation/IconChevronBotto
|
|
|
6
6
|
const globals = require("../../store/globals.cjs");
|
|
7
7
|
const auth = require("../../../../auth/views/store/auth.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
;/* empty css
|
|
9
|
+
;/* empty css */
|
|
10
10
|
;/* empty css */
|
|
11
11
|
const _pluginVue_exportHelper = require("../../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
12
12
|
const _hoisted_1 = ["onClick"];
|
|
@@ -4,7 +4,7 @@ import IconChevronBottom from "../../../../icons/navigation/IconChevronBottom.vu
|
|
|
4
4
|
import { state } from "../../store/globals.js";
|
|
5
5
|
import { state as state$1 } from "../../../../auth/views/store/auth.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
10
10
|
const _hoisted_1 = ["onClick"];
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
6
|
-
const Select = require("../../../../components/Select/Select.
|
|
6
|
+
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
7
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
8
8
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
9
9
|
const spots = require("../../../spots/store/spots.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, toDisplayString, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import { useRoute } from "vue-router";
|
|
3
3
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
-
import Select from "../../../../components/Select/Select.
|
|
4
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
6
6
|
import { state } from "../../../auth/views/store/auth.js";
|
|
7
7
|
import { actions } from "../../../spots/store/spots.js";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
6
|
-
const Select = require("../../../../components/Select/Select.
|
|
6
|
+
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
7
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
8
8
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
9
9
|
const spots = require("../../../spots/store/spots.cjs");
|