mirror of
https://github.com/sotam0316/drawNET.git
synced 2026-04-24 19:48:36 +09:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
import { DEFAULTS } from './constants.js';
|
|
|
|
// Shared state across modules
|
|
export const state = {
|
|
assetMap: {},
|
|
assetsData: [],
|
|
graph: null,
|
|
// Grid & Interaction State
|
|
gridSpacing: DEFAULTS.GRID_SPACING,
|
|
gridStyle: 'none', // 'none', 'solid', or 'dashed'
|
|
isSnapEnabled: false,
|
|
canvasSize: { width: '100%', height: '100%' },
|
|
// Attribute Copy/Paste Clipboard
|
|
clipboardNodeData: null,
|
|
clipboardNodeAttrs: null,
|
|
clipboardEdgeData: null,
|
|
// Layer Management
|
|
layers: [
|
|
{ id: 'l1', name: 'Main Layer', visible: true, locked: false, color: '#3b82f6', type: 'standard' }
|
|
],
|
|
activeLayerId: 'l1',
|
|
inactiveLayerOpacity: 0.3,
|
|
// Interaction State
|
|
isRightDragging: false,
|
|
isCtrlPressed: false, // Global tracking for Ctrl+Drag copy
|
|
// Selection Order Tracking
|
|
selectionOrder: [],
|
|
// Asset Management
|
|
selectedPackIds: JSON.parse(localStorage.getItem('selectedPackIds') || '[]'),
|
|
language: localStorage.getItem('drawNET_lang') || (navigator.language.startsWith('ko') ? 'ko' : 'en'),
|
|
// Global Application Config (from config.json)
|
|
appConfig: {},
|
|
// License State
|
|
license: {
|
|
level: 'Trial',
|
|
valid: false,
|
|
data: {}
|
|
},
|
|
// Project Metadata
|
|
projectName: "" // Will be set to t('untitled_project') on init
|
|
};
|
|
|
|
// Expose to window for browser debugging
|
|
if (typeof window !== 'undefined') {
|
|
window.state = state;
|
|
}
|
|
|
|
// For browser console debugging
|
|
window.state = state;
|