v120 - okay

This commit is contained in:
Arseny Sazhin (via WeWeb) 2025-08-06 15:58:47 +03:00
parent c2b6a6f17c
commit e27b11c26c
40 changed files with 129 additions and 68 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"cacheVersion":119,"page":{"id":"cf9f551f-e733-4934-a682-535575cb7c70","paths":{"en":"promo","default":"promo"},"cmsDataSetPath":null,"workflows":[]},"sections":{"4a2188f6-d98c-4150-9ba7-5918c72f3421":{"uid":"4a2188f6-d98c-4150-9ba7-5918c72f3421","linkId":"416695e7-e54e-4897-9f9a-befeb223f1b0","_state":{"style":{"default":{}}},"content":{"default":{"wwObjects":[],"_ww-layout_alignItems":"flex-start","_ww-layout_flexDirection":"column"}},"sectionBaseId":"99586bd3-2b15-4d6b-a025-6a50d07ca845","sectionTitle":"Section"}},"wwObjects":{},"collections":[],"variables":[],"workflows":[],"formulas":[],"libraryComponents":[]} {"cacheVersion":120,"page":{"id":"cf9f551f-e733-4934-a682-535575cb7c70","paths":{"en":"promo","default":"promo"},"cmsDataSetPath":null,"workflows":[]},"sections":{"4a2188f6-d98c-4150-9ba7-5918c72f3421":{"uid":"4a2188f6-d98c-4150-9ba7-5918c72f3421","linkId":"416695e7-e54e-4897-9f9a-befeb223f1b0","_state":{"style":{"default":{}}},"content":{"default":{"wwObjects":[],"_ww-layout_alignItems":"flex-start","_ww-layout_flexDirection":"column"}},"sectionBaseId":"99586bd3-2b15-4d6b-a025-6a50d07ca845","sectionTitle":"Section"}},"wwObjects":{},"collections":[],"variables":[],"workflows":[],"formulas":[],"libraryComponents":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"name":"Образовательная платформа Meetguru","short_name":"Образовательная платформа Meetguru","icons":[{"src":"images/48-favicon.png?_wwcv=119","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=119","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=119","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=119","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=119","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=119","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=119","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=119","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=119","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=119","type":"image/png","sizes":"512x512"}],"start_url":"/","display":"fullscreen","scope":"/","background_color":"#FFFFFF","theme_color":"#FFFFFF"} {"name":"Образовательная платформа Meetguru","short_name":"Образовательная платформа Meetguru","icons":[{"src":"images/48-favicon.png?_wwcv=120","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=120","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=120","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=120","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=120","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=120","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=120","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=120","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=120","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=120","type":"image/png","sizes":"512x512"}],"start_url":"/","display":"fullscreen","scope":"/","background_color":"#FFFFFF","theme_color":"#FFFFFF"}

View File

@ -1,4 +1,4 @@
const version = 119; const version = 120;
self.addEventListener('install', event => { self.addEventListener('install', event => {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(`Service worker v${version} installed`); console.log(`Service worker v${version} installed`);

View File

@ -44,6 +44,7 @@ export const TEXT_CONFIGURATION = {
responsive: true, responsive: true,
states: true, states: true,
classes: true, classes: true,
isStyle: true,
}, },
'_ww-text_fontSize': { '_ww-text_fontSize': {
label: 'Size', label: 'Size',
@ -63,6 +64,7 @@ export const TEXT_CONFIGURATION = {
bindable: true, bindable: true,
hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'], hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'],
bindingValidation: { markdown: 'font-size', type: 'string', cssSupports: 'font-size' }, bindingValidation: { markdown: 'font-size', type: 'string', cssSupports: 'font-size' },
isStyle: true,
}, },
'_ww-text_fontFamily': { '_ww-text_fontFamily': {
label: 'Font family', label: 'Font family',
@ -74,6 +76,7 @@ export const TEXT_CONFIGURATION = {
bindable: true, bindable: true,
hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'], hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'],
bindingValidation: { markdown: 'font-family', type: 'string', cssSupports: 'font-family' }, bindingValidation: { markdown: 'font-family', type: 'string', cssSupports: 'font-family' },
isStyle: true,
}, },
'_ww-text_fontWeight': { '_ww-text_fontWeight': {
label: 'Font weight', label: 'Font weight',
@ -99,6 +102,7 @@ export const TEXT_CONFIGURATION = {
bindable: true, bindable: true,
hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'], hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'],
bindingValidation: { markdown: 'font-weight', type: 'string', cssSupports: 'font-weight' }, bindingValidation: { markdown: 'font-weight', type: 'string', cssSupports: 'font-weight' },
isStyle: true,
}, },
'_ww-text_fontStyle': { '_ww-text_fontStyle': {
label: 'Font Style', label: 'Font Style',
@ -116,6 +120,7 @@ export const TEXT_CONFIGURATION = {
classes: true, classes: true,
hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'], hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'],
bindingValidation: { markdown: 'font-style', type: 'string', cssSupports: 'font-style' }, bindingValidation: { markdown: 'font-style', type: 'string', cssSupports: 'font-style' },
isStyle: true,
}, },
'_ww-text_lineHeight': { '_ww-text_lineHeight': {
label: 'Line height', label: 'Line height',
@ -138,6 +143,7 @@ export const TEXT_CONFIGURATION = {
bindable: true, bindable: true,
hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'], hidden: (content, _, boundProps) => content['_ww-text_font'] || boundProps['_ww-text_font'],
bindingValidation: { markdown: 'line-height', type: 'string', cssSupports: 'line-height' }, bindingValidation: { markdown: 'line-height', type: 'string', cssSupports: 'line-height' },
isStyle: true,
}, },
'_ww-text_textAlign': { '_ww-text_textAlign': {
label: 'Alignment', label: 'Alignment',
@ -155,6 +161,7 @@ export const TEXT_CONFIGURATION = {
classes: true, classes: true,
bindable: true, bindable: true,
bindingValidation: { markdown: 'text-align', type: 'string', cssSupports: 'text-align' }, bindingValidation: { markdown: 'text-align', type: 'string', cssSupports: 'text-align' },
isStyle: true,
}, },
'_ww-text_color': { '_ww-text_color': {
label: 'Text color', label: 'Text color',
@ -166,6 +173,7 @@ export const TEXT_CONFIGURATION = {
responsive: true, responsive: true,
states: true, states: true,
classes: true, classes: true,
isStyle: true,
}, },
'_ww-text_textDecoration': { '_ww-text_textDecoration': {
label: 'Decoration', label: 'Decoration',
@ -184,6 +192,7 @@ export const TEXT_CONFIGURATION = {
states: true, states: true,
classes: true, classes: true,
bindingValidation: { markdown: 'text-decoration', type: 'string', cssSupports: 'text-decoration' }, bindingValidation: { markdown: 'text-decoration', type: 'string', cssSupports: 'text-decoration' },
isStyle: true,
}, },
'_ww-text_textDecorationStyle': { '_ww-text_textDecorationStyle': {
label: 'Decoration style', label: 'Decoration style',
@ -208,6 +217,7 @@ export const TEXT_CONFIGURATION = {
type: 'string', type: 'string',
cssSupports: 'text-decoration-style', cssSupports: 'text-decoration-style',
}, },
isStyle: true,
}, },
'_ww-text_textDecorationColor': { '_ww-text_textDecorationColor': {
label: 'Decoration color', label: 'Decoration color',
@ -220,6 +230,7 @@ export const TEXT_CONFIGURATION = {
states: true, states: true,
classes: true, classes: true,
hidden: content => content['_ww-text_textDecoration'] === 'none' || !content['_ww-text_textDecoration'], hidden: content => content['_ww-text_textDecoration'] === 'none' || !content['_ww-text_textDecoration'],
isStyle: true,
}, },
'_ww-text_nowrap': { '_ww-text_nowrap': {
label: 'No-wrap', label: 'No-wrap',
@ -230,6 +241,7 @@ export const TEXT_CONFIGURATION = {
states: true, states: true,
classes: true, classes: true,
bindingValidation: { type: 'boolean', markdown: 'no-wrap' }, bindingValidation: { type: 'boolean', markdown: 'no-wrap' },
isStyle: true,
}, },
'_ww-text_ellipsis': { '_ww-text_ellipsis': {
hidden: content => !content['_ww-text_nowrap'], hidden: content => !content['_ww-text_nowrap'],
@ -241,6 +253,7 @@ export const TEXT_CONFIGURATION = {
states: true, states: true,
classes: true, classes: true,
bindingValidation: { type: 'boolean', markdown: 'ellipsis' }, bindingValidation: { type: 'boolean', markdown: 'ellipsis' },
isStyle: true,
}, },
'_ww-text_textTransform': { '_ww-text_textTransform': {
label: 'Character case', label: 'Character case',
@ -259,6 +272,7 @@ export const TEXT_CONFIGURATION = {
bindingValidation: { markdown: 'text-transform', type: 'string', cssSupports: 'text-transform' }, bindingValidation: { markdown: 'text-transform', type: 'string', cssSupports: 'text-transform' },
states: true, states: true,
classes: true, classes: true,
isStyle: true,
}, },
'_ww-text_textShadow': { '_ww-text_textShadow': {
label: 'Text Shadows', label: 'Text Shadows',
@ -270,6 +284,7 @@ export const TEXT_CONFIGURATION = {
states: true, states: true,
classes: true, classes: true,
bindingValidation: { markdown: 'text-shadow', type: 'string', cssSupports: 'text-shadow' }, bindingValidation: { markdown: 'text-shadow', type: 'string', cssSupports: 'text-shadow' },
isStyle: true,
}, },
'_ww-text_letterSpacing': { '_ww-text_letterSpacing': {
label: 'Letter spacing', label: 'Letter spacing',
@ -288,6 +303,7 @@ export const TEXT_CONFIGURATION = {
classes: true, classes: true,
bindable: true, bindable: true,
bindingValidation: { markdown: 'letter-spacing', type: 'string', cssSupports: 'letter-spacing' }, bindingValidation: { markdown: 'letter-spacing', type: 'string', cssSupports: 'letter-spacing' },
isStyle: true,
}, },
'_ww-text_wordSpacing': { '_ww-text_wordSpacing': {
label: 'Word spacing', label: 'Word spacing',
@ -302,6 +318,7 @@ export const TEXT_CONFIGURATION = {
classes: true, classes: true,
bindable: true, bindable: true,
bindingValidation: { markdown: 'word-spacing', type: 'string', cssSupports: 'word-spacing' }, bindingValidation: { markdown: 'word-spacing', type: 'string', cssSupports: 'word-spacing' },
isStyle: true,
}, },
'_ww-text_links': { '_ww-text_links': {
hidden: true, hidden: true,

View File

@ -219,7 +219,7 @@ export default {
const wwTechnicalAttributes = computed(() => { const wwTechnicalAttributes = computed(() => {
let attributes = { let attributes = {
'data-ww-element': true, 'data-ww-element': !props.noInteraction,
'data-ww-uid': props.uid, 'data-ww-uid': props.uid,
'data-ww-component-id': id, 'data-ww-component-id': id,
}; };

View File

@ -1,11 +1,11 @@
<template> <template>
<wwLocalContext :methods="localMethods" element-key="popup"> <wwLocalContext :methods="localMethods" :data="data" element-key="popup">
<wwLibraryComponent :uid="modal.uid" is-popup></wwLibraryComponent> <wwLibraryComponent :uid="modal.uid" is-popup></wwLibraryComponent>
</wwLocalContext> </wwLocalContext>
</template> </template>
<script> <script>
import { provide } from 'vue'; import { provide, computed } from 'vue';
import wwLibraryComponent from './wwLibraryComponent.vue'; import wwLibraryComponent from './wwLibraryComponent.vue';
import { usePopupStore } from '@/pinia/popup.js'; import { usePopupStore } from '@/pinia/popup.js';
@ -17,14 +17,15 @@ export default {
type: Object, type: Object,
required: true, required: true,
}, },
stacked: { type: Boolean, default: false },
}, },
setup(props) { setup(props) {
const modalsStore = usePopupStore(); const popupStore = usePopupStore();
const localMethods = { const localMethods = {
close: { close: {
description: 'Close the popup', description: 'Close the popup',
method(data) { method(data) {
modalsStore.close(props.modal?.uid, data); popupStore.close(props.modal?.uid, data);
}, },
editor: { editor: {
label: 'Close this popup instance', label: 'Close this popup instance',
@ -53,10 +54,21 @@ export default {
}, },
}, },
}; };
const data = computed(() => {
const instances = Object.values(popupStore.instances).filter(
m => m.libraryComponentBaseId === props.modal?.libraryComponentBaseId
);
return {
instancesCount: instances.length,
index: instances.findIndex(m => m.uid === props.modal?.uid),
totalCount: Object.keys(popupStore.instances).length,
};
});
provide('dragZoneId', props.modal?.uid); provide('dragZoneId', props.modal?.uid);
provide('_wwPopupStacked', props.stacked);
return { localMethods }; return { localMethods, data };
}, },
}; };
</script> </script>

File diff suppressed because one or more lines are too long

View File

@ -24,7 +24,10 @@
:section-id="activeLinkPopup.sectionId" :section-id="activeLinkPopup.sectionId"
/> />
</transition> </transition>
<wwFrontPopup v-for="(modal, uid) in modalsStore.instances" :key="uid" :modal="modal" /> <wwElement v-for="(popups, uid) in popupStore.stackedPopupUids" :key="uid" :uid="uid" no-interaction>
<wwFrontPopup v-for="pUid in popups" :key="pUid" :modal="popupStore.instances[pUid]" stacked />
</wwElement>
<wwFrontPopup v-for="uid in popupStore.singlePopupUids" :key="uid" :modal="popupStore.instances[uid]" />
</div> </div>
</template> </template>
@ -49,7 +52,7 @@ export default {
setup() { setup() {
const store = useStore(); const store = useStore();
const page = computed(() => store.getters['websiteData/getPage'] || { id: null, meta: {} }); const page = computed(() => store.getters['websiteData/getPage'] || { id: null, meta: {} });
const modalsStore = usePopupStore(); const popupStore = usePopupStore();
const designInfo = computed(() => store.getters['websiteData/getDesignInfo'] || {}); const designInfo = computed(() => store.getters['websiteData/getDesignInfo'] || {});
@ -70,7 +73,7 @@ export default {
x: 0, x: 0,
y: 0, y: 0,
}, },
modalsStore, popupStore,
/* wwFront:start */ /* wwFront:start */
sections: computed(() => { sections: computed(() => {
const sections = store.getters['websiteData/getSections']; const sections = store.getters['websiteData/getSections'];

View File

@ -1,5 +1,6 @@
<template> <template>
<div <div
v-if="!isStacked"
class="ww-dialog" class="ww-dialog"
:style="!content.overlay && dialogStyle" :style="!content.overlay && dialogStyle"
:class="[ :class="[
@ -29,6 +30,7 @@
]" ]"
></wwLayout> ></wwLayout>
</div> </div>
<wwLayout v-else path="children" role="dialog"></wwLayout>
</template> </template>
<script> <script>
@ -40,7 +42,10 @@ export default {
content: { type: Object, required: true }, content: { type: Object, required: true },
uid: { type: String, required: true }, uid: { type: String, required: true },
}, },
events: [],
setup(props, { emit }) { setup(props, { emit }) {
const isStacked = inject('_wwPopupStacked', false);
const isEditing = computed(() => { const isEditing = computed(() => {
// eslint-disable-next-line no-unreachable // eslint-disable-next-line no-unreachable
return false; return false;
@ -50,13 +55,14 @@ export default {
// TODO: will not work with several instances // TODO: will not work with several instances
watchEffect(() => { watchEffect(() => {
if (props.content.preventScroll && !isEditing.value) { if (props.content.preventScroll && !isEditing.value && !unref(isStacked)) {
wwLib.getFrontDocument().documentElement.classList.add('ww-dialog-open'); wwLib.getFrontDocument().documentElement.classList.add('ww-dialog-open');
} else { } else {
wwLib.getFrontDocument().documentElement.classList.remove('ww-dialog-open'); wwLib.getFrontDocument().documentElement.classList.remove('ww-dialog-open');
} }
}); });
const animationDuration = computed(() => { const animationDuration = computed(() => {
return props.content.animationDuration + 'ms'; return props.content.animationDuration + 'ms';
}); });
@ -92,7 +98,7 @@ export default {
} }
watchEffect(() => { watchEffect(() => {
if (props.content.escClose) { if (props.content.escClose && !isStacked) {
wwLib.getFrontDocument().addEventListener('keydown', onEscapeKeyDown); wwLib.getFrontDocument().addEventListener('keydown', onEscapeKeyDown);
} else { } else {
wwLib.getFrontDocument().removeEventListener('keydown', onEscapeKeyDown); wwLib.getFrontDocument().removeEventListener('keydown', onEscapeKeyDown);
@ -149,6 +155,7 @@ export default {
} }
}, },
isEditing, isEditing,
isStacked,
}; };
}, },
}; };

View File

@ -57,11 +57,9 @@ export default {
], ],
}, },
defaultValue: 'center', defaultValue: 'center',
hidden: content => content.type !== 'modal',
bindable: true, bindable: true,
}, },
customPositionX: { customPositionX: {
hidden: content => content.sideModal !== 'custom' || content.type !== 'modal',
label: { label: {
en: 'Horizontal', en: 'Horizontal',
fr: 'Horizontal', fr: 'Horizontal',
@ -91,12 +89,11 @@ export default {
{ value: 'bottom', label: { en: 'Bottom', fr: 'Bas' } }, { value: 'bottom', label: { en: 'Bottom', fr: 'Bas' } },
], ],
}, },
hidden: content => content.type !== 'sheet', hidden: (content, sidepanelcontent) => content.type !== 'sheet' || sidepanelcontent?.isStacked,
defaultValue: 'top', defaultValue: 'top',
bindable: true, bindable: true,
}, },
align: { align: {
hidden: content => content.type !== 'modal',
label: { label: {
en: 'Align', en: 'Align',
fr: 'Alignement', fr: 'Alignement',
@ -115,7 +112,6 @@ export default {
bindable: true, bindable: true,
}, },
customPositionY: { customPositionY: {
hidden: content => content.align !== 'custom' || content.type !== 'modal',
label: { label: {
en: 'Vertical', en: 'Vertical',
fr: 'Vertical', fr: 'Vertical',
@ -149,7 +145,8 @@ export default {
bindable: true, bindable: true,
}, },
slideInDirection: { slideInDirection: {
hidden: content => content.animation !== 'slide-in' || content.animation === null, hidden: (content, sidepanelcontent) =>
content.animation !== 'slide-in' || content.animation === null || sidepanelcontent?.isStacked,
label: { label: {
en: 'Direction', en: 'Direction',
fr: 'Direction', fr: 'Direction',
@ -180,7 +177,7 @@ export default {
max: 10000, max: 10000,
}, },
bindable: true, bindable: true,
hidden: content => content.animation === null, hidden: (content, sidepanelcontent) => content.animation === null || sidepanelcontent?.isStacked,
}, },
animationEasing: { animationEasing: {
label: { label: {
@ -200,7 +197,7 @@ export default {
}, },
defaultValue: 'linear', defaultValue: 'linear',
bindable: true, bindable: true,
hidden: content => content.animation === null, hidden: (content, sidepanelcontent) => content.animation === null || sidepanelcontent?.isStacked,
}, },
preventScroll: { preventScroll: {
@ -252,7 +249,6 @@ export default {
propertyHelp: { propertyHelp: {
tooltip: 'Whether the dialog should be closed when the user clicks outside the dialog.', tooltip: 'Whether the dialog should be closed when the user clicks outside the dialog.',
}, },
hidden: content => content.overlay,
}, },
overlayClickCloses: { overlayClickCloses: {
type: 'OnOff', type: 'OnOff',
@ -266,7 +262,6 @@ export default {
propertyHelp: { propertyHelp: {
tooltip: 'You can prevent the dialog from closing when the user clicks the overlay.', tooltip: 'You can prevent the dialog from closing when the user clicks the overlay.',
}, },
hidden: content => !content.overlay,
}, },
overlayBackgroundColor: { overlayBackgroundColor: {
label: { label: {
@ -278,7 +273,7 @@ export default {
bindable: true, bindable: true,
responsive: true, responsive: true,
classes: true, classes: true,
hidden: content => !content.overlay, hidden: (content, sidepanelcontent) => !content.overlay || sidepanelcontent?.isStacked,
options: { options: {
nullable: true, nullable: true,
}, },

View File

@ -34,8 +34,8 @@ import wwobject1be951afde7143e6ad1ee9b36de15529 from '@/components/elements/elem
import wwobject9ecb2cfccef74be8b7363e17a3b7e9ff from '@/components/elements/element-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff/ww-config.js'; import wwobject9ecb2cfccef74be8b7363e17a3b7e9ff from '@/components/elements/element-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff/ww-config.js';
import wwobjecta823467cbdc74ceca38c71875c4c214a from '@/components/elements/element-a823467c-bdc7-4cec-a38c-71875c4c214a/ww-config.js'; import wwobjecta823467cbdc74ceca38c71875c4c214a from '@/components/elements/element-a823467c-bdc7-4cec-a38c-71875c4c214a/ww-config.js';
import wwobject9ae1fce82e314bfda4d20450235bdfd5 from '@/components/elements/element-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5/ww-config.js'; import wwobject9ae1fce82e314bfda4d20450235bdfd5 from '@/components/elements/element-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5/ww-config.js';
import wwobjectc6c0c00e49fd4cb9bd785bc09945721e from '@/components/elements/element-c6c0c00e-49fd-4cb9-bd78-5bc09945721e/ww-config.js';
import wwobjectdeb10a015eef4aa190171b51c2ad6fd0 from '@/components/elements/element-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0/ww-config.js'; import wwobjectdeb10a015eef4aa190171b51c2ad6fd0 from '@/components/elements/element-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0/ww-config.js';
import wwobjectc6c0c00e49fd4cb9bd785bc09945721e from '@/components/elements/element-c6c0c00e-49fd-4cb9-bd78-5bc09945721e/ww-config.js';
/* wwFront:end */ /* wwFront:end */
export const useComponentBasesStore = defineStore('componentBases', () => { export const useComponentBasesStore = defineStore('componentBases', () => {
@ -74,8 +74,8 @@ export const useComponentBasesStore = defineStore('componentBases', () => {
'wwobject-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff': getInheritedConfiguration({ ...wwobject9ecb2cfccef74be8b7363e17a3b7e9ff, name: 'wwobject-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff' }), 'wwobject-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff': getInheritedConfiguration({ ...wwobject9ecb2cfccef74be8b7363e17a3b7e9ff, name: 'wwobject-9ecb2cfc-cef7-4be8-b736-3e17a3b7e9ff' }),
'wwobject-a823467c-bdc7-4cec-a38c-71875c4c214a': getInheritedConfiguration({ ...wwobjecta823467cbdc74ceca38c71875c4c214a, name: 'wwobject-a823467c-bdc7-4cec-a38c-71875c4c214a' }), 'wwobject-a823467c-bdc7-4cec-a38c-71875c4c214a': getInheritedConfiguration({ ...wwobjecta823467cbdc74ceca38c71875c4c214a, name: 'wwobject-a823467c-bdc7-4cec-a38c-71875c4c214a' }),
'wwobject-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5': getInheritedConfiguration({ ...wwobject9ae1fce82e314bfda4d20450235bdfd5, name: 'wwobject-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5' }), 'wwobject-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5': getInheritedConfiguration({ ...wwobject9ae1fce82e314bfda4d20450235bdfd5, name: 'wwobject-9ae1fce8-2e31-4bfd-a4d2-0450235bdfd5' }),
'wwobject-c6c0c00e-49fd-4cb9-bd78-5bc09945721e': getInheritedConfiguration({ ...wwobjectc6c0c00e49fd4cb9bd785bc09945721e, name: 'wwobject-c6c0c00e-49fd-4cb9-bd78-5bc09945721e' }), 'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0': getInheritedConfiguration({ ...wwobjectdeb10a015eef4aa190171b51c2ad6fd0, name: 'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0' }),
'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0': getInheritedConfiguration({ ...wwobjectdeb10a015eef4aa190171b51c2ad6fd0, name: 'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0' })}; 'wwobject-c6c0c00e-49fd-4cb9-bd78-5bc09945721e': getInheritedConfiguration({ ...wwobjectc6c0c00e49fd4cb9bd785bc09945721e, name: 'wwobject-c6c0c00e-49fd-4cb9-bd78-5bc09945721e' })};
/* wwFront:end */ /* wwFront:end */
return { return {

View File

@ -58,5 +58,32 @@ export const usePopupStore = defineStore('popups', () => {
close, close,
closeAll, closeAll,
instances, instances,
stackedPopupUids: computed(() => {
const stacks = {};
Object.values(instances.value).forEach(popup => {
const isStacked =
wwLib.$store.getters['libraries/getComponents'][popup.libraryComponentBaseId]?.configuration?.popup
?.isStacked &&
wwLib.$store.getters['libraries/getComponents'][popup.libraryComponentBaseId]?.configuration?.popup
?.containerUid;
if (!isStacked) return;
const containerUid =
wwLib.$store.getters['libraries/getComponents'][popup.libraryComponentBaseId]?.configuration?.popup
?.containerUid;
if (!stacks[containerUid]) {
stacks[containerUid] = [];
}
stacks[containerUid].push(popup.uid);
});
return stacks;
}),
singlePopupUids: computed(() => {
return Object.keys(instances.value).filter(uid => {
const popup = instances.value[uid];
return !wwLib.$store.getters['libraries/getComponents'][popup.libraryComponentBaseId]?.configuration
?.popup?.isStacked;
});
}),
}; };
}); });

View File

@ -12,20 +12,20 @@
<link rel="icon" type="image/x-icon" href="favicon.ico?_wwcv={{cacheVersion}}" /> <link rel="icon" type="image/x-icon" href="favicon.ico?_wwcv={{cacheVersion}}" />
<link rel="manifest" href="manifest.json?_wwcv=119" /> <link rel="manifest" href="manifest.json?_wwcv=120" />
<meta name="theme-color" content="" /> <meta name="theme-color" content="" />
<link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=120">
<link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=119"> <link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=120">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link href="/fonts/Phosphor/font.css?_wwcv=119" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="/fonts/Phosphor/font.css?_wwcv=120" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<style>:root{ --ww-default-font-family: 'Raleway', sans-serif }</style> <style>:root{ --ww-default-font-family: 'Raleway', sans-serif }</style>
<style> <style>

File diff suppressed because one or more lines are too long