-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
141 lines (121 loc) · 5.4 KB
/
index.html
File metadata and controls
141 lines (121 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Automotive Cybersecurity Ecosystem</title>
<meta name="description" content="Interactive visualization of automotive cybersecurity standards, regulations, and organizations">
<!-- Styles -->
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/graph.css">
<link rel="stylesheet" href="css/components.css">
<link rel="stylesheet" href="css/responsive.css">
</head>
<body>
<!-- Loading State -->
<div id="loading" class="loading-overlay">
<div class="loading-spinner"></div>
<p>Loading automotive cybersecurity ecosystem...</p>
</div>
<!-- Error State -->
<div id="error" class="error-overlay" style="display: none;">
<div class="error-content">
<h2>Error Loading Data</h2>
<p id="error-message"></p>
<button onclick="location.reload()">Retry</button>
</div>
</div>
<!-- Main Container -->
<div id="app" class="app-container" style="display: none;">
<!-- Header -->
<header class="app-header">
<!-- Controls -->
<div class="controls-container">
<button id="btn-play-pause" class="btn btn-control" title="Pause/Resume simulation">
<span class="icon">⏸</span> Pause
</button>
<button id="btn-reset" class="btn btn-control" title="Reset view">
<span class="icon">↻</span> Reset View
</button>
<button id="btn-share" class="btn btn-control" title="Share URL">
<span class="icon">🔗</span> Share
</button>
<div class="color-scheme-selector">
<label for="color-scheme">Color by:</label>
<select id="color-scheme">
<option value="type">Type</option>
<option value="author">Author</option>
<option value="status">Status</option>
</select>
</div>
</div>
</header>
<!-- Main Content Area -->
<div class="main-content">
<!-- Sidebar -->
<aside class="sidebar">
<!-- Search -->
<div class="search-section">
<h3>Search</h3>
<input type="text" id="search-input" placeholder="Search standards, regulations..." />
<div id="search-results" class="search-results"></div>
</div>
<!-- Filters -->
<div class="filter-section">
<h3>Filter by Type</h3>
<div id="filter-type" class="filter-group"></div>
<h3>Filter by Domain</h3>
<div id="filter-domain" class="filter-group"></div>
<h3>Filter by Author</h3>
<div id="filter-author" class="filter-group"></div>
<h3>Filter by Status</h3>
<div id="filter-status" class="filter-group"></div>
<h3>Filter by Country</h3>
<div id="filter-country" class="filter-group"></div>
<button id="btn-clear-filters" class="btn btn-secondary">Clear All Filters</button>
</div>
<!-- Legend -->
<div class="legend-section">
<h3>Legend <button id="btn-toggle-legend" class="btn-icon">▼</button></h3>
<div id="legend-content" class="legend-content"></div>
</div>
</aside>
<!-- Graph Container -->
<main class="graph-section">
<div id="graph-container"></div>
<button id="btn-add-entry" class="fab-add" title="Add new entry">+</button>
</main>
<!-- Detail Panel -->
<aside id="detail-panel" class="detail-panel">
<button id="btn-close-detail" class="btn-close">×</button>
<div id="detail-content"></div>
</aside>
<!-- Add Entry Panel -->
<aside id="add-entry-panel" class="detail-panel">
<button class="btn-close">×</button>
<div class="add-entry-content"></div>
</aside>
</div>
</div>
<!-- D3.js Library -->
<script src="https://d3js.org/d3.v7.min.js"></script>
<!-- Application Scripts -->
<script src="js/config.js"></script>
<script src="js/utils/helpers.js"></script>
<script src="js/data/dataLoader.js"></script>
<script src="js/data/dataProcessor.js"></script>
<script src="js/data/graphBuilder.js"></script>
<script src="js/visualization/nodeRenderer.js"></script>
<script src="js/visualization/linkRenderer.js"></script>
<script src="js/visualization/interactions.js"></script>
<script src="js/visualization/forceGraph.js"></script>
<script src="js/ui/searchFilter.js"></script>
<script src="js/ui/detailPanel.js"></script>
<script src="js/ui/legend.js"></script>
<script src="js/ui/controls.js"></script>
<script src="js/ui/addEntryPanel.js"></script>
<script src="js/export/imageExport.js"></script>
<script src="js/export/urlState.js"></script>
<script src="js/app.js"></script>
</body>
</html>