- Foldable left panel (user profile) and right panel (task details) - Clicking a task in the list or graph node selects it and shows details - Both views (task list + graph) always mounted via absolute inset-0 for correct canvas dimensions; tabs toggle visibility with opacity - Graph node selection animation: other nodes repel outward (charge -600), then selected node smoothly slides to center (500ms cubic ease-out), then charge restores to -120 and graph stabilizes - Graph re-fits on tab switch and panel resize via ResizeObserver - Fix UUID string IDs throughout (backend returns UUIDs, not integers) - Add TaskDetailPanel, UserPanel components - Add CLAUDE.md project documentation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
690 B
HTML
21 lines
690 B
HTML
<!doctype html>
|
|
<html ng-app="app">
|
|
<head>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.3/angular.min.js"></script>
|
|
<script src="../src/sprintf.js"></script>
|
|
<script src="../src/angular-sprintf.js"></script>
|
|
</head>
|
|
<body>
|
|
<pre>{{ "%+010d"|sprintf:-123 }}</pre>
|
|
<pre>{{ "%+010d"|vsprintf:[-123] }}</pre>
|
|
<pre>{{ "%+010d"|fmt:-123 }}</pre>
|
|
<pre>{{ "%+010d"|vfmt:[-123] }}</pre>
|
|
<pre>{{ "I've got %2$d apples and %1$d oranges."|fmt:4:2 }}</pre>
|
|
<pre>{{ "I've got %(apples)d apples and %(oranges)d oranges."|fmt:{apples: 2, oranges: 4} }}</pre>
|
|
|
|
<script>
|
|
angular.module("app", ["sprintf"])
|
|
</script>
|
|
</body>
|
|
</html>
|