- Converte logger.js para IIFE (remove export) - Converte state.js para IIFE (remove export) - Remove imports de app.js - Corrige referências aos scripts de teste removidos - Adiciona scripts de teste corretos
152 lines
3.8 KiB
JavaScript
152 lines
3.8 KiB
JavaScript
/**
|
|
* Application State Management
|
|
* Central state for the entire application
|
|
*/
|
|
|
|
// Main application state
|
|
var appState = {
|
|
history: [],
|
|
favorites: [],
|
|
budgetItems: [],
|
|
currentSection: 'cev',
|
|
currentTheme: 'dark',
|
|
expertMode: false,
|
|
currentSidebarTab: 0
|
|
};
|
|
|
|
// User preferences (persisted to localStorage)
|
|
var userPreferences = {
|
|
theme: 'dark',
|
|
colorScheme: 'default',
|
|
fontSize: 'medium',
|
|
fontFamily: 'default'
|
|
};
|
|
|
|
// Load preferences from localStorage
|
|
function loadPreferences() {
|
|
try {
|
|
var saved = localStorage.getItem('acoCalcPreferences');
|
|
if (saved) {
|
|
var parsed = JSON.parse(saved);
|
|
for (var key in parsed) {
|
|
if (parsed.hasOwnProperty(key)) {
|
|
userPreferences[key] = parsed[key];
|
|
}
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.warn('Nao foi possivel carregar preferencias:', e);
|
|
}
|
|
}
|
|
|
|
// Save preferences to localStorage
|
|
function savePreferences() {
|
|
try {
|
|
localStorage.setItem('acoCalcPreferences', JSON.stringify(userPreferences));
|
|
} catch (e) {
|
|
console.warn('Nao foi possivel salvar preferencias:', e);
|
|
}
|
|
}
|
|
|
|
// Admin configuration
|
|
var adminConfig = {
|
|
appName: 'SteelBase',
|
|
appSubtitle: 'Plataforma Tecnica com Base de Dados de Materiais Brasileiros',
|
|
footerText: '© 2025 SteelBase v7.5 PROFESSIONAL EDITION - Plataforma Tecnica com Base de Dados de Materiais Brasileiros',
|
|
themeDefault: 'escuro',
|
|
modeDefault: 'simples',
|
|
toolsVisibility: {
|
|
'cev': true,
|
|
'seletor': true,
|
|
'equivalencias': false,
|
|
'comparativo': false,
|
|
'parafusos': true,
|
|
'layout': true,
|
|
'parafuso-vs-solda': false,
|
|
'preaquecimento': true,
|
|
'dureza': true,
|
|
'charpy': true,
|
|
'certificado': false,
|
|
'ultrassom': false,
|
|
'area-pintura': true,
|
|
'consumo-tinta': true,
|
|
'galvanizacao': false,
|
|
'custo-pintura': true,
|
|
'secagem': false,
|
|
'inspecao-pintura': false,
|
|
'orcamento': true,
|
|
'peso-rigging': false,
|
|
'referencia': false
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Update app state
|
|
* @param {string} key - State key
|
|
* @param {any} value - New value
|
|
*/
|
|
function updateState(key, value) {
|
|
appState[key] = value;
|
|
}
|
|
|
|
/**
|
|
* Get state value
|
|
* @param {string} key - State key
|
|
* @returns {any} State value
|
|
*/
|
|
function getState(key) {
|
|
return appState[key];
|
|
}
|
|
|
|
/**
|
|
* Update user preferences
|
|
* @param {string} key - Preference key
|
|
* @param {any} value - New value
|
|
*/
|
|
function updatePreference(key, value) {
|
|
userPreferences[key] = value;
|
|
}
|
|
|
|
/**
|
|
* Get preference value
|
|
* @param {string} key - Preference key
|
|
* @returns {any} Preference value
|
|
*/
|
|
function getPreference(key) {
|
|
return userPreferences[key];
|
|
}
|
|
|
|
/**
|
|
* Check if localStorage is available and has space
|
|
* @returns {object} Storage status
|
|
*/
|
|
function checkStorage() {
|
|
try {
|
|
var testKey = '__storage_test__';
|
|
localStorage.setItem(testKey, testKey);
|
|
localStorage.removeItem(testKey);
|
|
|
|
var totalSize = 0;
|
|
for (var key in localStorage) {
|
|
if (localStorage.hasOwnProperty(key)) {
|
|
totalSize += localStorage[key].length * 2;
|
|
}
|
|
}
|
|
|
|
return { available: true, usedBytes: totalSize };
|
|
} catch (error) {
|
|
return { available: false, error: error.message };
|
|
}
|
|
}
|
|
|
|
// Make available globally
|
|
window.appState = appState;
|
|
window.userPreferences = userPreferences;
|
|
window.loadPreferences = loadPreferences;
|
|
window.savePreferences = savePreferences;
|
|
window.adminConfig = adminConfig;
|
|
window.updateState = updateState;
|
|
window.getState = getState;
|
|
window.updatePreference = updatePreference;
|
|
window.getPreference = getPreference;
|
|
window.checkStorage = checkStorage; |