Compare commits

...

2 Commits

Author SHA1 Message Date
Arseny Sazhin (via WeWeb)
9f3e928964 v97 - fetch 2025-07-24 04:52:17 +03:00
Arseny Sazhin (via WeWeb)
d877c28882 v96 - deploy 2025-07-24 04:49:30 +03:00
35 changed files with 68 additions and 57 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":95,"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":97,"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=95","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=95","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=95","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=95","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=95","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=95","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=95","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=95","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=95","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=95","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=97","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=97","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=97","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=97","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=97","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=97","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=97","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=97","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=97","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=97","type":"image/png","sizes":"512x512"}],"start_url":"/","display":"fullscreen","scope":"/","background_color":"#FFFFFF","theme_color":"#FFFFFF"}

View File

@ -1,4 +1,4 @@
const version = 95; const version = 97;
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`);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -59,6 +59,7 @@
@input="handleManualInput" @input="handleManualInput"
@blur="onBlur" @blur="onBlur"
@focus="isReallyFocused = true" @focus="isReallyFocused = true"
@click="handleColorInputClick"
@keyup.enter="onEnter" @keyup.enter="onEnter"
/> />
</template> </template>
@ -83,7 +84,6 @@ export default {
'update:sidepanel-content', 'update:sidepanel-content',
], ],
setup(props, { emit }) { setup(props, { emit }) {
const isEditing = computed(() => { const isEditing = computed(() => {
return false; return false;
}); });
@ -109,7 +109,7 @@ export default {
onBlur, onBlur,
setValue, setValue,
} = useInput(props, emit); } = useInput(props, emit);
// Get delay value for currency debouncing // Get delay value for currency debouncing
const delay = computed(() => wwLib.wwUtils.getLengthUnit(props.content.debounceDelay)[0]); const delay = computed(() => wwLib.wwUtils.getLengthUnit(props.content.debounceDelay)[0]);
@ -132,7 +132,7 @@ export default {
// Track if we're currently typing to avoid re-formatting during input // Track if we're currently typing to avoid re-formatting during input
let isTyping = false; let isTyping = false;
// Debounce timeout for currency input // Debounce timeout for currency input
let currencyDebounceTimeout = null; let currencyDebounceTimeout = null;
@ -142,10 +142,11 @@ export default {
([contentType, propsValue, variableValue], [oldContentType, oldPropsValue, oldVariableValue]) => { ([contentType, propsValue, variableValue], [oldContentType, oldPropsValue, oldVariableValue]) => {
// Use props.content.value if it exists (binding case), otherwise use variableValue // Use props.content.value if it exists (binding case), otherwise use variableValue
const value = propsValue !== undefined && propsValue !== null ? propsValue : variableValue; const value = propsValue !== undefined && propsValue !== null ? propsValue : variableValue;
// Check if props.content.value (init value) has changed // Check if props.content.value (init value) has changed
const isInitValueChange = propsValue !== oldPropsValue && propsValue !== undefined && propsValue !== null; const isInitValueChange =
propsValue !== oldPropsValue && propsValue !== undefined && propsValue !== null;
if (contentType === 'currency' && (!isTyping || isInitValueChange)) { if (contentType === 'currency' && (!isTyping || isInitValueChange)) {
if (value !== undefined && value !== null && value !== '') { if (value !== undefined && value !== null && value !== '') {
// Format when not typing OR when init value changes (override typing) // Format when not typing OR when init value changes (override typing)
@ -232,14 +233,14 @@ export default {
const parts = rawValue.split(decimalSep); const parts = rawValue.split(decimalSep);
const integerPart = parts[0]; const integerPart = parts[0];
let decimalPart = parts[1] || ''; let decimalPart = parts[1] || '';
// Always pad with zeros to reach required decimal places, even if no decimal separator was typed // Always pad with zeros to reach required decimal places, even if no decimal separator was typed
if (decimalPart.length < decimalPlaces) { if (decimalPart.length < decimalPlaces) {
decimalPart = decimalPart.padEnd(decimalPlaces, '0'); decimalPart = decimalPart.padEnd(decimalPlaces, '0');
} }
const finalValue = integerPart + decimalSep + decimalPart; const finalValue = integerPart + decimalSep + decimalPart;
// Update display value with padded zeros // Update display value with padded zeros
if (currencyDisplayValue.value !== finalValue) { if (currencyDisplayValue.value !== finalValue) {
currencyDisplayValue.value = finalValue; currencyDisplayValue.value = finalValue;
@ -368,7 +369,7 @@ export default {
// Extract numeric value from the limited clean value // Extract numeric value from the limited clean value
// If the clean value is empty, keep it as empty string instead of defaulting to 0 // If the clean value is empty, keep it as empty string instead of defaulting to 0
const actualValue = limitedCleanValue === '' ? '' : (parseFloat(limitedCleanValue) || 0); const actualValue = limitedCleanValue === '' ? '' : parseFloat(limitedCleanValue) || 0;
// Add thousands separators to integer part // Add thousands separators to integer part
if (integerPart && thousandsSep) { if (integerPart && thousandsSep) {
@ -509,6 +510,15 @@ export default {
emit('trigger-event', { name: 'onEnterKey', event: { value: variableValue.value } }); emit('trigger-event', { name: 'onEnterKey', event: { value: variableValue.value } });
} }
function handleColorInputClick(event) {
// Prevent color picker from opening when input is readonly (either from isReadonly or isEditing)
if (props.content.type === 'color' && (isReadonly.value || isEditing.value)) {
event.preventDefault();
event.stopPropagation();
return false;
}
}
watch( watch(
() => props.content.value, () => props.content.value,
v => { v => {
@ -597,6 +607,7 @@ export default {
textareaBindings, textareaBindings,
inputClasses, inputClasses,
onEnter, onEnter,
handleColorInputClick,
// Currency-related // Currency-related
handleCurrencyInput, handleCurrencyInput,
handleCurrencyKeydown, handleCurrencyKeydown,

View File

@ -32,9 +32,9 @@ import wwobject6dcad2080a6743a2bd1d3b13ff5819cf from '@/components/elements/elem
import wwobject57831abf83ad49adba973bd30b035710 from '@/components/elements/element-57831abf-83ad-49ad-ba97-3bd30b035710/ww-config.js'; import wwobject57831abf83ad49adba973bd30b035710 from '@/components/elements/element-57831abf-83ad-49ad-ba97-3bd30b035710/ww-config.js';
import wwobject59dca300db7842e4a7a60cbf22d3cc82 from '@/components/elements/element-59dca300-db78-42e4-a7a6-0cbf22d3cc82/ww-config.js'; import wwobject59dca300db7842e4a7a60cbf22d3cc82 from '@/components/elements/element-59dca300-db78-42e4-a7a6-0cbf22d3cc82/ww-config.js';
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 wwobjectdeb10a015eef4aa190171b51c2ad6fd0 from '@/components/elements/element-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0/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 wwobjectdeb10a015eef4aa190171b51c2ad6fd0 from '@/components/elements/element-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0/ww-config.js';
/* wwFront:end */ /* wwFront:end */
export const useComponentBasesStore = defineStore('componentBases', () => { export const useComponentBasesStore = defineStore('componentBases', () => {
@ -71,9 +71,9 @@ export const useComponentBasesStore = defineStore('componentBases', () => {
'wwobject-57831abf-83ad-49ad-ba97-3bd30b035710': getInheritedConfiguration({ ...wwobject57831abf83ad49adba973bd30b035710, name: 'wwobject-57831abf-83ad-49ad-ba97-3bd30b035710' }), 'wwobject-57831abf-83ad-49ad-ba97-3bd30b035710': getInheritedConfiguration({ ...wwobject57831abf83ad49adba973bd30b035710, name: 'wwobject-57831abf-83ad-49ad-ba97-3bd30b035710' }),
'wwobject-59dca300-db78-42e4-a7a6-0cbf22d3cc82': getInheritedConfiguration({ ...wwobject59dca300db7842e4a7a60cbf22d3cc82, name: 'wwobject-59dca300-db78-42e4-a7a6-0cbf22d3cc82' }), 'wwobject-59dca300-db78-42e4-a7a6-0cbf22d3cc82': getInheritedConfiguration({ ...wwobject59dca300db7842e4a7a60cbf22d3cc82, name: 'wwobject-59dca300-db78-42e4-a7a6-0cbf22d3cc82' }),
'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-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0': getInheritedConfiguration({ ...wwobjectdeb10a015eef4aa190171b51c2ad6fd0, name: 'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0' }),
'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-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0': getInheritedConfiguration({ ...wwobjectdeb10a015eef4aa190171b51c2ad6fd0, name: 'wwobject-deb10a01-5eef-4aa1-9017-1b51c2ad6fd0' })};
/* wwFront:end */ /* wwFront:end */
return { return {

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=95" /> <link rel="manifest" href="manifest.json?_wwcv=97" />
<meta name="theme-color" content="" /> <meta name="theme-color" content="" />
<link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=97">
<link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=95"> <link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=97">
<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=95" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="/fonts/Phosphor/font.css?_wwcv=97" 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