fix: corrige erros de sintaxe ES6 - tudo para IIFE

- 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
This commit is contained in:
2026-04-03 21:42:51 +00:00
parent 0d8797c80c
commit 6af3492815
4 changed files with 172 additions and 167 deletions

View File

@@ -557,6 +557,7 @@
<!-- Utils (global) --> <!-- Utils (global) -->
<script src="/js/utils/logger.js"></script> <script src="/js/utils/logger.js"></script>
<script src="/js/core/state.js"></script>
<!-- Main app (legacy - mantido para compatibilidade) --> <!-- Main app (legacy - mantido para compatibilidade) -->
<script src="/app.js"></script> <script src="/app.js"></script>
@@ -612,11 +613,9 @@
<script src="/js/core/backup-manager.js"></script> <script src="/js/core/backup-manager.js"></script>
<script src="/js/ui/toast-manager.js"></script> <script src="/js/ui/toast-manager.js"></script>
<!-- Sistema de Teste de Persistência --> <!-- Test Suite -->
<script src="/js/tests/test-persistencia.js"></script> <script src="/js/tests/test-backup-log.js"></script>
<script src="/js/tests/test-persistencia-simples.js"></script> <script src="/js/tests/test-suite.js"></script>
<script src="/js/tests/verificador-persistencia.js"></script>
<script src="/js/tests/teste-manual-disponibilidade.js"></script>
<!-- Menu Mobile (Hamburger no topbar, sidebar dropdown) --> <!-- Menu Mobile (Hamburger no topbar, sidebar dropdown) -->
<script type="module" src="/js/ui/mobile-menu.js"></script> <script type="module" src="/js/ui/mobile-menu.js"></script>

View File

@@ -6,17 +6,7 @@
// Logger disponível globalmente (carregado antes em logger.js) // Logger disponível globalmente (carregado antes em logger.js)
// Usar window.Logger.info('mensagem') para logs controlados // Usar window.Logger.info('mensagem') para logs controlados
// Import state from modules (userPreferences only - appState is still global for legacy) // State e config disponíveis globalmente via script state.js (carregado antes)
import { userPreferences, loadPreferences, savePreferences, adminConfig } from './js/core/state.js';
// Make available globally for legacy code
window.userPreferences = userPreferences;
window.loadPreferences = loadPreferences;
window.savePreferences = savePreferences;
window.adminConfig = adminConfig;
// In-memory data storage (legacy - still global for compatibility)
const appState = {
// ======================================== // ========================================
// CSV MAPPING AND LOADING FUNCTIONS v6.6 // CSV MAPPING AND LOADING FUNCTIONS v6.6

View File

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

View File

@@ -2,15 +2,15 @@
* Logger com níveis de debug * Logger com níveis de debug
* Substitui console.log dispersos pelo código * Substitui console.log dispersos pelo código
*/ */
const Logger = (function() { var Logger = (function() {
const LEVELS = { var LEVELS = {
debug: 0, debug: 0,
info: 1, info: 1,
warn: 2, warn: 2,
error: 3 error: 3
}; };
let currentLevel = LEVELS.info; var currentLevel = LEVELS.info;
function setLevel(level) { function setLevel(level) {
if (LEVELS[level] !== undefined) { if (LEVELS[level] !== undefined) {
@@ -22,26 +22,26 @@ const Logger = (function() {
return LEVELS[level] >= currentLevel; return LEVELS[level] >= currentLevel;
} }
function formatMessage(level, ...args) { function formatMessage(level) {
const timestamp = new Date().toISOString().slice(11, 19); var timestamp = new Date().toISOString().slice(11, 19);
return `[${timestamp}] [${level.toUpperCase()}]`; return '[' + timestamp + '] [' + level.toUpperCase() + ']';
} }
return { return {
debug: function(...args) { debug: function() {
if (shouldLog('debug')) console.debug(formatMessage('debug', ...args), ...args); if (shouldLog('debug')) console.debug(formatMessage('debug'), arguments);
}, },
info: function(...args) { info: function() {
if (shouldLog('info')) console.info(formatMessage('info', ...args), ...args); if (shouldLog('info')) console.info(formatMessage('info'), arguments);
}, },
warn: function(...args) { warn: function() {
if (shouldLog('warn')) console.warn(formatMessage('warn', ...args), ...args); if (shouldLog('warn')) console.warn(formatMessage('warn'), arguments);
}, },
error: function(...args) { error: function() {
if (shouldLog('error')) console.error(formatMessage('error', ...args), ...args); if (shouldLog('error')) console.error(formatMessage('error'), arguments);
}, },
setLevel: setLevel, setLevel: setLevel,
@@ -56,5 +56,4 @@ const Logger = (function() {
}; };
})(); })();
window.Logger = Logger; window.Logger = Logger;
export default Logger;