@lukekaalim/act-insight 1.1.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/InsightApp.module.css +36 -0
- package/InsightApp2.ts +82 -0
- package/TreeViewer.module.css +3 -8
- package/TreeViewer.ts +16 -12
- package/Virtual.ts +29 -11
- package/assets/icons/ancestor_column.png +0 -0
- package/assets/icons/ancestor_column.svg +26 -0
- package/assets/icons/ancestor_skip_row_column.png +0 -0
- package/assets/icons/ancestor_skip_row_column.svg +52 -0
- package/assets/icons/breakpoint.png +0 -0
- package/assets/icons/breakpoint.svg +33 -0
- package/assets/icons/breakpoint_arrow.png +0 -0
- package/assets/icons/breakpoint_arrow.svg +22 -0
- package/assets/icons/breakpoint_arrow_paused.png +0 -0
- package/assets/icons/breakpoint_arrow_paused.svg +38 -0
- package/assets/icons/breakpoint_panel.png +0 -0
- package/assets/icons/breakpoint_panel.svg +121 -0
- package/assets/icons/breakpoint_unset.png +0 -0
- package/assets/icons/breakpoint_unset.svg +26 -0
- package/assets/icons/bug.png +0 -0
- package/assets/icons/bug.svg +65 -0
- package/assets/icons/children.png +0 -0
- package/assets/icons/children.svg +38 -0
- package/assets/icons/collapse.png +0 -0
- package/assets/icons/collapse.svg +38 -0
- package/assets/icons/commit.png +0 -0
- package/assets/icons/commit.svg +30 -0
- package/assets/icons/commit_tree.png +0 -0
- package/assets/icons/commit_tree.svg +44 -0
- package/assets/icons/effect.png +0 -0
- package/assets/icons/effect.svg +28 -0
- package/assets/icons/expand.png +0 -0
- package/assets/icons/expand.svg +47 -0
- package/assets/icons/eye.png +0 -0
- package/assets/icons/eye.svg +36 -0
- package/assets/icons/eye_closed.png +0 -0
- package/assets/icons/eye_closed.svg +32 -0
- package/assets/icons/filter.png +0 -0
- package/assets/icons/filter.svg +22 -0
- package/assets/icons/graph.png +0 -0
- package/assets/icons/graph.svg +129 -0
- package/assets/icons/history_list.png +0 -0
- package/assets/icons/history_list.svg +60 -0
- package/assets/icons/hook.png +0 -0
- package/assets/icons/hook.svg +22 -0
- package/assets/icons/index.ts +76 -0
- package/assets/icons/inspector_panel.png +0 -0
- package/assets/icons/inspector_panel.svg +135 -0
- package/assets/icons/magnifying_glass.png +0 -0
- package/assets/icons/magnifying_glass.svg +39 -0
- package/assets/icons/pause.png +0 -0
- package/assets/icons/pause.svg +34 -0
- package/assets/icons/play.png +0 -0
- package/assets/icons/play.svg +23 -0
- package/assets/icons/reload.png +0 -0
- package/assets/icons/reload.svg +39 -0
- package/assets/icons/selection.png +0 -0
- package/assets/icons/selection.svg +22 -0
- package/assets/icons/side_effects.png +0 -0
- package/assets/icons/side_effects.svg +48 -0
- package/assets/icons/skip.png +0 -0
- package/assets/icons/skip.svg +22 -0
- package/assets/icons/source.svg +1366 -0
- package/assets/icons/step.png +0 -0
- package/assets/icons/step.svg +51 -0
- package/assets/icons/step_over_children.png +0 -0
- package/assets/icons/step_over_children.svg +57 -0
- package/assets/icons/thread.png +0 -0
- package/assets/icons/thread.svg +32 -0
- package/assets/icons/tree_column.png +0 -0
- package/assets/icons/tree_column.svg +26 -0
- package/assets/icons/tree_end.png +0 -0
- package/assets/icons/tree_end.svg +35 -0
- package/assets/icons/tree_junction.png +0 -0
- package/assets/icons/tree_junction.svg +35 -0
- package/assets/icons/vertical_grab_handle.png +0 -0
- package/assets/icons/vertical_grab_handle.svg +36 -0
- package/components/BreakpointPanel.ts +110 -0
- package/components/BreakpointToggle.ts +14 -0
- package/components/Button.ts +53 -0
- package/components/Checkbox.ts +17 -0
- package/components/CommitInspector.ts +161 -0
- package/components/CommitTree.ts +295 -0
- package/components/ControlBar.ts +60 -0
- package/components/EffectTable.ts +125 -0
- package/components/FiltersPanel.ts +45 -0
- package/components/HistoryList.ts +0 -0
- package/components/InspectorPanel.ts +54 -0
- package/components/PlaybackBar.ts +42 -0
- package/components/ThreadInspector.ts +26 -0
- package/components/index.module.css +414 -0
- package/lib/controller.ts +222 -0
- package/lib/list.ts +82 -0
- package/lib/selection.ts +32 -0
- package/package.json +4 -4
- package/public/icons/icons.svg +520 -0
- package/public/icons/icons__breakpoint.png +0 -0
- package/public/icons/icons__breakpoint.svg +30 -0
- package/public/icons/icons__breakpoint_panel.png +0 -0
- package/public/icons/icons__breakpoint_panel.svg +121 -0
- package/public/icons/icons__children.png +0 -0
- package/public/icons/icons__children.svg +38 -0
- package/public/icons/icons__eye.png +0 -0
- package/public/icons/icons__eye.svg +36 -0
- package/public/icons/icons__inspector_panel.png +0 -0
- package/public/icons/icons__inspector_panel.svg +131 -0
- package/public/icons/icons__magnifying_glass.png +0 -0
- package/public/icons/icons__magnifying_glass.svg +39 -0
- package/public/icons/icons__pause.png +0 -0
- package/public/icons/icons__pause.svg +34 -0
- package/public/icons/icons__play.png +0 -0
- package/public/icons/icons__play.svg +23 -0
- package/public/icons/icons__skip.png +0 -0
- package/public/icons/icons__skip.svg +22 -0
- package/public/icons/icons__step.png +0 -0
- package/public/icons/icons__step.svg +51 -0
- package/utils.ts +71 -7
- package/InsightApp.ts +0 -404
- package/MenuBar.module.css +0 -18
- package/MenuBar.ts +0 -39
- package/ScheduleControls.ts +0 -61
- package/lookup.ts +0 -185
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @lukekaalim/act-insight
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [114c53f]
|
|
8
|
+
- @lukekaalim/act-web@5.1.1
|
|
9
|
+
|
|
10
|
+
## 2.0.0
|
|
11
|
+
|
|
12
|
+
### Major Changes
|
|
13
|
+
|
|
14
|
+
- Improve debugger support
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- @lukekaalim/act-recon@4.0.0
|
|
20
|
+
- @lukekaalim/act-debug@2.0.0
|
|
21
|
+
- @lukekaalim/act@4.2.0
|
|
22
|
+
- @lukekaalim/act-web@5.1.0
|
|
23
|
+
|
|
3
24
|
## 1.1.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
package/InsightApp.module.css
CHANGED
|
@@ -16,4 +16,40 @@
|
|
|
16
16
|
|
|
17
17
|
position: absolute;
|
|
18
18
|
*/
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.insightRoot {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
|
|
25
|
+
top: 0;
|
|
26
|
+
left: 0;
|
|
27
|
+
right: 0;
|
|
28
|
+
bottom: 0;
|
|
29
|
+
|
|
30
|
+
position: absolute;
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
|
|
33
|
+
font-family: 'Fira Code';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.insightContent {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: row;
|
|
39
|
+
flex: 1;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
|
|
42
|
+
min-width: 0px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.activeWindow {
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
flex: 1;
|
|
49
|
+
box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.199);
|
|
50
|
+
min-width: 0px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
h4 {
|
|
54
|
+
margin: 0 4px;
|
|
19
55
|
}
|
package/InsightApp2.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Component, h, Node, OpaqueID, useEffect, useMemo, useRef, useState } from "@lukekaalim/act";
|
|
2
|
+
import { CommitReport, DebugClient } from "@lukekaalim/act-debug";
|
|
3
|
+
|
|
4
|
+
import classes from './InsightApp.module.css';
|
|
5
|
+
|
|
6
|
+
import { CommitTree } from "./components/CommitTree";
|
|
7
|
+
import { EffectTable } from "./components/EffectTable";
|
|
8
|
+
import { ControlBar } from "./components/ControlBar";
|
|
9
|
+
import { BreakpointPanel } from "./components/BreakpointPanel";
|
|
10
|
+
import { InspectorPanel } from "./components/InspectorPanel";
|
|
11
|
+
import { PlaybackBar } from "./components/PlaybackBar";
|
|
12
|
+
import { SelectionContext, SelectionTarget, useSelectionManager } from "./lib/selection";
|
|
13
|
+
import { CommitListEntry, createCommitList } from "./lib/list";
|
|
14
|
+
import { useInsightManager } from "./lib/controller";
|
|
15
|
+
import { CommitPreview } from "./TreeViewer";
|
|
16
|
+
import { CommitID } from "@lukekaalim/act-recon";
|
|
17
|
+
import { EffectButton } from "./components/Button";
|
|
18
|
+
|
|
19
|
+
export type InsightApp2Props = {
|
|
20
|
+
client: DebugClient;
|
|
21
|
+
onReady(): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const InsightApp2: Component<InsightApp2Props> = ({ client, onReady }) => {
|
|
25
|
+
const [state, controller] = useInsightManager(client);
|
|
26
|
+
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
onReady();
|
|
29
|
+
}, [])
|
|
30
|
+
|
|
31
|
+
const providers = (child: Node) => {
|
|
32
|
+
return h(SelectionContext.Provider, { value: state.selection },
|
|
33
|
+
child
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const breakLocation = state.breakPosition && h('div', {}, [
|
|
38
|
+
state.breakPosition.commit && h('div', {}, h(CommitPreview, { commit: state.client.cache.getCommitOrThrow(state.breakPosition.commit ) })),
|
|
39
|
+
state.breakPosition.effect && h('div', {}, h(EffectButton, { onClick() {}, effectId: state.breakPosition.effect })),
|
|
40
|
+
state.breakPosition.named && h('div', {}, `@${state.breakPosition.named}`),
|
|
41
|
+
])
|
|
42
|
+
|
|
43
|
+
return providers(h('div', { className: classes.insightRoot }, [
|
|
44
|
+
h(ControlBar, {
|
|
45
|
+
showBreakpointPanel: state.panels.breakpoints,
|
|
46
|
+
showInspectorPanel: state.panels.inspector,
|
|
47
|
+
activeWindow: state.activeWindow,
|
|
48
|
+
|
|
49
|
+
onChangeWindow: controller.changeWindow,
|
|
50
|
+
onShowInspectorPanelChange: controller.setShowInspectorPanel,
|
|
51
|
+
onShowBreakpointPanelChange: controller.setShowBreakpointPanel,
|
|
52
|
+
}),
|
|
53
|
+
h('div', { className: classes.insightContent }, [
|
|
54
|
+
state.panels.breakpoints && h(BreakpointPanel, {
|
|
55
|
+
controller,
|
|
56
|
+
onBreakpointsChange: (breakpoints) => client.setBreakpoints(breakpoints),
|
|
57
|
+
breakpoints: state.breakpoints,
|
|
58
|
+
paused: state.paused,
|
|
59
|
+
cache: client.cache,
|
|
60
|
+
state,
|
|
61
|
+
|
|
62
|
+
onResumePressed: () => client.resume(),
|
|
63
|
+
onStepPressed: () => client.step(),
|
|
64
|
+
}),
|
|
65
|
+
h('div', { className: classes.activeWindow }, [
|
|
66
|
+
state.activeWindow === 'commits' && h(CommitTree, { commits: state.commits, client, thread: state.thread, state, controller,
|
|
67
|
+
scrollTarget: state.commitScrollTarget,
|
|
68
|
+
onScrollTargetComplete: controller.onConsumeCommitScrollTarget }),
|
|
69
|
+
state.activeWindow === 'effects' && h(EffectTable, { state, controller }),
|
|
70
|
+
]),
|
|
71
|
+
state.panels.inspector && h(InspectorPanel, { client, breakpoints: state.breakpoints, state, controller }),
|
|
72
|
+
]),
|
|
73
|
+
state.paused && h(PlaybackBar, {
|
|
74
|
+
onResumeClick: () => client.resume(),
|
|
75
|
+
onStepClick: () => client.step(),
|
|
76
|
+
onReloadClick: () => console.warn('UNIMPLEMETED'),
|
|
77
|
+
onToggleBreakpointsEnabled: () => console.warn("UNIMPLEMNTED"),
|
|
78
|
+
breakpointsEnabled: true,
|
|
79
|
+
currentBreakLocation: breakLocation
|
|
80
|
+
}),
|
|
81
|
+
]))
|
|
82
|
+
};
|
package/TreeViewer.module.css
CHANGED
|
@@ -13,24 +13,19 @@
|
|
|
13
13
|
padding: 4px;
|
|
14
14
|
border-radius: 8px;
|
|
15
15
|
|
|
16
|
-
margin: 2px;
|
|
17
|
-
|
|
18
16
|
border: 2px solid rgba(255, 255, 255, 0);
|
|
19
17
|
white-space: nowrap;
|
|
20
|
-
|
|
21
|
-
.elementName:hover {
|
|
22
|
-
font-weight: bold;
|
|
18
|
+
|
|
23
19
|
cursor: pointer;
|
|
24
|
-
|
|
20
|
+
font-weight: inherit;
|
|
25
21
|
}
|
|
26
22
|
|
|
27
23
|
.commit {
|
|
28
|
-
display: flex;
|
|
24
|
+
display: inline-flex;
|
|
29
25
|
flex-direction: column;
|
|
30
26
|
overflow: visible;
|
|
31
27
|
white-space: pre;
|
|
32
28
|
width: max-content;
|
|
33
|
-
flex: 1;
|
|
34
29
|
}
|
|
35
30
|
|
|
36
31
|
.elementBar.selected .elementName {
|
package/TreeViewer.ts
CHANGED
|
@@ -7,6 +7,7 @@ import classes from './TreeViewer.module.css';
|
|
|
7
7
|
import { CommitReport, TreeReport } from "@lukekaalim/act-debug";
|
|
8
8
|
import { CommitID } from "@lukekaalim/act-recon";
|
|
9
9
|
import { CommitAttributeTag } from './AttributeTag';
|
|
10
|
+
import { getTextForElementType } from "./utils";
|
|
10
11
|
|
|
11
12
|
export type TreeViewerProps = {
|
|
12
13
|
//commits: Map<CommitID, CommitReport>,
|
|
@@ -34,6 +35,8 @@ export type CommitPreviewProps = {
|
|
|
34
35
|
attributes?: [string, string][],
|
|
35
36
|
|
|
36
37
|
color?: string,
|
|
38
|
+
border?: string,
|
|
39
|
+
className?: string,
|
|
37
40
|
|
|
38
41
|
depth?: number,
|
|
39
42
|
|
|
@@ -43,28 +46,25 @@ export type CommitPreviewProps = {
|
|
|
43
46
|
|
|
44
47
|
export const CommitPreview: Component<CommitPreviewProps> = ({
|
|
45
48
|
commit, depth = 0,
|
|
46
|
-
attributes = [],
|
|
49
|
+
attributes = [['Id', commit.id.toString()]],
|
|
47
50
|
renderCommit,
|
|
48
51
|
color,
|
|
52
|
+
border = 'none',
|
|
49
53
|
onClick,
|
|
54
|
+
className,
|
|
50
55
|
}) => {
|
|
51
56
|
const background = `hsl(${(depth * 22.3) % 360}deg, 50%, 80%)`;
|
|
52
|
-
const
|
|
57
|
+
const text = getTextForElementType(commit.element);
|
|
58
|
+
const elementBackground = color || `hsl(${stringHash(text) % 360}deg, 60%, 80%)`;
|
|
53
59
|
const lineColor = `hsl(${stringHash(commit.id.toString()) % 360}, 100%, 20%)`
|
|
54
60
|
|
|
55
61
|
|
|
56
|
-
return hs('div', {
|
|
57
|
-
commit.children.length > 0 &&
|
|
58
|
-
h('div', { style: {
|
|
59
|
-
position: 'absolute',
|
|
60
|
-
top: '5px',
|
|
61
|
-
height: 'calc(100% - 18px)', width: '1px', background: lineColor, transform: `translate(20px, 0px)`
|
|
62
|
-
} }),
|
|
62
|
+
return hs('div', { classList: [classes.commit, className], style: { position: 'relative' }, id: `commit:${commit.id}` }, [
|
|
63
63
|
|
|
64
64
|
hs('div', { className: [classes.elementBar].join(' '), style: { 'position': 'relative' } }, [
|
|
65
|
-
hs('button', { onClick, className: classes.elementName, style: { background: elementBackground } },
|
|
66
|
-
|
|
67
|
-
h(CommitAttributeTag, { name: 'Id', value: commit.id.toString() }),
|
|
65
|
+
hs('button', { onClick, className: classes.elementName, style: { background: elementBackground, border } },
|
|
66
|
+
text),
|
|
67
|
+
//h(CommitAttributeTag, { name: 'Id', value: commit.id.toString() }),
|
|
68
68
|
attributes.map(([name, value]) => h(CommitAttributeTag, { name, value }))
|
|
69
69
|
//h(CommitAttributeTag, { name: 'Version', value: commit.version.toString() }),
|
|
70
70
|
]),
|
|
@@ -80,4 +80,8 @@ export const CommitPreview: Component<CommitPreviewProps> = ({
|
|
|
80
80
|
])
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
+
const renderElementName = () => {
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
|
|
83
87
|
// h(CommitPreview, { commit: child, tree, depth: depth + 1, selectedCommits, onSelectCommit })))
|
package/Virtual.ts
CHANGED
|
@@ -10,14 +10,12 @@ export type VirtualTreeProps = {
|
|
|
10
10
|
chunkSize: number,
|
|
11
11
|
chunkCount: number,
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
renderChunk(index: number): Node,
|
|
13
|
+
renderChunk(index: number, width: number): Node,
|
|
16
14
|
|
|
17
15
|
viewportRef?: ReadonlyRef<HTMLElement | null>,
|
|
18
16
|
}
|
|
19
17
|
|
|
20
|
-
export const Virtual1D: Component<VirtualTreeProps> = ({ chunkSize, chunkCount, renderChunk, viewportRef: propViewportRef
|
|
18
|
+
export const Virtual1D: Component<VirtualTreeProps> = ({ chunkSize, chunkCount, renderChunk, viewportRef: propViewportRef }) => {
|
|
21
19
|
const [start, setStart] = useState(0);
|
|
22
20
|
const [end, setEnd] = useState(0);
|
|
23
21
|
|
|
@@ -35,30 +33,50 @@ export const Virtual1D: Component<VirtualTreeProps> = ({ chunkSize, chunkCount,
|
|
|
35
33
|
const setViewport = () => {
|
|
36
34
|
const rect = viewport.getBoundingClientRect();
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
const start = Math.floor((viewport.scrollTop) / chunkSize);
|
|
37
|
+
const end = Math.ceil((viewport.scrollTop + rect.height) / chunkSize)
|
|
38
|
+
|
|
39
|
+
setStart(start)
|
|
40
|
+
setEnd(end)
|
|
40
41
|
};
|
|
41
42
|
setViewport();
|
|
42
43
|
|
|
43
44
|
viewport.addEventListener('scroll', setViewport)
|
|
45
|
+
const resize = new ResizeObserver(setViewport);
|
|
46
|
+
resize.observe(viewport);
|
|
44
47
|
return () => {
|
|
45
48
|
viewport.removeEventListener('scroll', setViewport)
|
|
49
|
+
resize.disconnect();
|
|
46
50
|
}
|
|
47
|
-
}, [propViewportRef])
|
|
51
|
+
}, [propViewportRef, chunkSize])
|
|
48
52
|
|
|
49
53
|
const renderedIndices = Array
|
|
50
54
|
.from({ length: end - start })
|
|
51
55
|
.map((_, i) => start + i)
|
|
52
56
|
.filter(x => x >= 0 && x < chunkCount);
|
|
57
|
+
|
|
58
|
+
const [width, setWidth] = useState(0);
|
|
59
|
+
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
const list = listRef.current;
|
|
62
|
+
const viewport = viewportRef.current;
|
|
63
|
+
if (!list || !viewport)
|
|
64
|
+
return;
|
|
65
|
+
const rect = viewport.getBoundingClientRect();
|
|
66
|
+
|
|
67
|
+
const maxWidth = [...list.children].reduce((acc, curr) => Math.max(curr.getBoundingClientRect().width, acc), rect.width)
|
|
68
|
+
|
|
69
|
+
setWidth(prevMaxWidth => Math.max(maxWidth, prevMaxWidth));
|
|
70
|
+
}, [start, end])
|
|
53
71
|
|
|
54
72
|
|
|
55
73
|
return [
|
|
56
74
|
//h('pre', {}, renderedIndices.join(', ')),
|
|
57
|
-
h('div', { ref: viewportRef, style: { overflow: 'auto',
|
|
58
|
-
h('div', { ref: listRef, style: { height: (chunkSize * chunkCount) + 'px', position: 'relative' } },
|
|
75
|
+
h('div', { ref: viewportRef, style: { 'overflow': 'auto', flex: 1 } },
|
|
76
|
+
h('div', { ref: listRef, style: { height: (chunkSize * chunkCount) + 'px', position: 'relative', width: `${width}px` } },
|
|
59
77
|
renderedIndices.map(index =>
|
|
60
|
-
h('div', { style: { position: 'absolute', top: (index * chunkSize) + 'px', height: chunkSize
|
|
61
|
-
renderChunk(index)))
|
|
78
|
+
h('div', { key: index, style: { position: 'absolute', top: (index * chunkSize) + 'px', height: chunkSize }},
|
|
79
|
+
renderChunk(index, width)))
|
|
62
80
|
))
|
|
63
81
|
];
|
|
64
82
|
};
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="12.48817mm"
|
|
6
|
+
height="3.8353176mm"
|
|
7
|
+
viewBox="0 0 12.48817 3.8353177"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-47.030357,-38.101349)">
|
|
17
|
+
<rect
|
|
18
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.303001;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
19
|
+
id="rect34"
|
|
20
|
+
width="1.1926903"
|
|
21
|
+
height="4.396584"
|
|
22
|
+
x="53.017189"
|
|
23
|
+
y="37.867489"
|
|
24
|
+
ry="0.20103791" />
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="12.490001mm"
|
|
6
|
+
height="3.8399999mm"
|
|
7
|
+
viewBox="0 0 12.490001 3.84"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-60.87492,-38.077965)">
|
|
17
|
+
<rect
|
|
18
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.303001;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
19
|
+
id="rect34-6"
|
|
20
|
+
width="1.1926903"
|
|
21
|
+
height="4.396584"
|
|
22
|
+
x="66.861916"
|
|
23
|
+
y="37.843967"
|
|
24
|
+
ry="0.20103791" />
|
|
25
|
+
<rect
|
|
26
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.295564;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
27
|
+
id="rect35"
|
|
28
|
+
width="7.7882543"
|
|
29
|
+
height="1.2862346"
|
|
30
|
+
x="63.341316"
|
|
31
|
+
y="39.387585"
|
|
32
|
+
ry="0.20103791" />
|
|
33
|
+
<circle
|
|
34
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#5d7388;stroke-width:0.603;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
35
|
+
id="path39"
|
|
36
|
+
cx="64.382828"
|
|
37
|
+
cy="39.961376"
|
|
38
|
+
r="0.98221552" />
|
|
39
|
+
<circle
|
|
40
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#5d7388;stroke-width:0.603;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
41
|
+
id="path39-2"
|
|
42
|
+
cx="67.392464"
|
|
43
|
+
cy="39.961376"
|
|
44
|
+
r="0.98221552" />
|
|
45
|
+
<circle
|
|
46
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#5d7388;stroke-width:0.603;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
47
|
+
id="path39-2-5"
|
|
48
|
+
cx="70.369026"
|
|
49
|
+
cy="39.961376"
|
|
50
|
+
r="0.98221552" />
|
|
51
|
+
</g>
|
|
52
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="11.941043mm"
|
|
6
|
+
height="11.941043mm"
|
|
7
|
+
viewBox="0 0 11.941043 11.941043"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-5.4966703,-2.2270989)">
|
|
17
|
+
<g
|
|
18
|
+
id="g20">
|
|
19
|
+
<circle
|
|
20
|
+
style="fill:#d76a51;fill-opacity:1;stroke-width:0.20519"
|
|
21
|
+
id="path1"
|
|
22
|
+
cx="11.467192"
|
|
23
|
+
cy="8.1976204"
|
|
24
|
+
r="4.6302686" />
|
|
25
|
+
<circle
|
|
26
|
+
style="fill:#c83d1d;fill-opacity:1;stroke-width:0.162849"
|
|
27
|
+
id="path1-3"
|
|
28
|
+
cx="11.467192"
|
|
29
|
+
cy="8.1976204"
|
|
30
|
+
r="3.6748166" />
|
|
31
|
+
</g>
|
|
32
|
+
</g>
|
|
33
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="12.01108mm"
|
|
6
|
+
height="5.519321mm"
|
|
7
|
+
viewBox="0 0 12.01108 5.5193212"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-55.203632,-5.0938974)">
|
|
17
|
+
<path
|
|
18
|
+
id="rect15"
|
|
19
|
+
style="fill:#d76a51;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
20
|
+
d="m 55.961807,5.8284295 v 4.0752034 l 7.009391,-0.00155 3.516065,-2.0293335 -3.512447,-2.0360517 z" />
|
|
21
|
+
</g>
|
|
22
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="12.010001mm"
|
|
6
|
+
height="5.5199995mm"
|
|
7
|
+
viewBox="0 0 12.010001 5.5199997"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-55.153038,-11.508349)">
|
|
17
|
+
<path
|
|
18
|
+
id="rect15-7"
|
|
19
|
+
style="fill:#9babba;fill-opacity:1;stroke:none;stroke-width:0.139224;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
20
|
+
d="m 56.78394,12.51294 v 3.438583 l 5.914398,-0.0013 2.966792,-1.712314 -2.963739,-1.717984 z" />
|
|
21
|
+
<rect
|
|
22
|
+
style="fill:#5d7388;fill-opacity:1;stroke-width:0.22508"
|
|
23
|
+
id="rect5-3"
|
|
24
|
+
width="1.5069969"
|
|
25
|
+
height="4.8598962"
|
|
26
|
+
x="59.121918"
|
|
27
|
+
y="11.787687"
|
|
28
|
+
ry="0.085511364" />
|
|
29
|
+
<rect
|
|
30
|
+
style="fill:#5d7388;fill-opacity:1;stroke-width:0.22508"
|
|
31
|
+
id="rect5-5-9"
|
|
32
|
+
width="1.5069969"
|
|
33
|
+
height="4.8598962"
|
|
34
|
+
x="61.681629"
|
|
35
|
+
y="11.787687"
|
|
36
|
+
ry="0.085511364" />
|
|
37
|
+
</g>
|
|
38
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="11.940001mm"
|
|
6
|
+
height="11.94mm"
|
|
7
|
+
viewBox="0 0 11.940002 11.94"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(17.248171,-2.0375583)">
|
|
17
|
+
<g
|
|
18
|
+
id="g12">
|
|
19
|
+
<rect
|
|
20
|
+
style="fill:#c7d1d9;fill-opacity:1;stroke:#5d7388;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
21
|
+
id="rect11"
|
|
22
|
+
width="7.3140426"
|
|
23
|
+
height="9.9508686"
|
|
24
|
+
x="-16.158314"
|
|
25
|
+
y="2.9852602"
|
|
26
|
+
ry="0" />
|
|
27
|
+
<rect
|
|
28
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
29
|
+
id="rect12"
|
|
30
|
+
width="3.3841388"
|
|
31
|
+
height="0.63661981"
|
|
32
|
+
x="-15.746336"
|
|
33
|
+
y="3.7683892"
|
|
34
|
+
ry="0.23643248" />
|
|
35
|
+
<rect
|
|
36
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
37
|
+
id="rect12-1"
|
|
38
|
+
width="3.3841388"
|
|
39
|
+
height="0.63661981"
|
|
40
|
+
x="-15.059457"
|
|
41
|
+
y="4.6060472"
|
|
42
|
+
ry="0.23643248" />
|
|
43
|
+
<rect
|
|
44
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
45
|
+
id="rect12-6"
|
|
46
|
+
width="1.1057094"
|
|
47
|
+
height="0.63662004"
|
|
48
|
+
x="-15.746336"
|
|
49
|
+
y="5.4437051"
|
|
50
|
+
ry="0.23643248" />
|
|
51
|
+
<rect
|
|
52
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
53
|
+
id="rect12-1-5"
|
|
54
|
+
width="1.1392158"
|
|
55
|
+
height="0.63662004"
|
|
56
|
+
x="-15.746336"
|
|
57
|
+
y="6.281363"
|
|
58
|
+
ry="0.23643248" />
|
|
59
|
+
<rect
|
|
60
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
61
|
+
id="rect12-4"
|
|
62
|
+
width="1.3402537"
|
|
63
|
+
height="0.63662004"
|
|
64
|
+
x="-15.176728"
|
|
65
|
+
y="7.1860337"
|
|
66
|
+
ry="0.23643248" />
|
|
67
|
+
<rect
|
|
68
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
69
|
+
id="rect12-1-52"
|
|
70
|
+
width="3.0658281"
|
|
71
|
+
height="0.63661957"
|
|
72
|
+
x="-15.428026"
|
|
73
|
+
y="8.0236921"
|
|
74
|
+
ry="0.23643248" />
|
|
75
|
+
<rect
|
|
76
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
77
|
+
id="rect12-6-5"
|
|
78
|
+
width="3.4176464"
|
|
79
|
+
height="0.63661957"
|
|
80
|
+
x="-15.39452"
|
|
81
|
+
y="8.8613501"
|
|
82
|
+
ry="0.23643248" />
|
|
83
|
+
<rect
|
|
84
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
85
|
+
id="rect12-1-5-4"
|
|
86
|
+
width="3.3841388"
|
|
87
|
+
height="0.63661981"
|
|
88
|
+
x="-15.746336"
|
|
89
|
+
y="9.699008"
|
|
90
|
+
ry="0.23643248" />
|
|
91
|
+
<rect
|
|
92
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
93
|
+
id="rect12-1-5-0"
|
|
94
|
+
width="2.9150507"
|
|
95
|
+
height="0.63661957"
|
|
96
|
+
x="-15.210235"
|
|
97
|
+
y="10.620432"
|
|
98
|
+
ry="0.23643248" />
|
|
99
|
+
<rect
|
|
100
|
+
style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
101
|
+
id="rect12-4-7"
|
|
102
|
+
width="3.3841388"
|
|
103
|
+
height="0.63661981"
|
|
104
|
+
x="-15.260494"
|
|
105
|
+
y="11.525103"
|
|
106
|
+
ry="0.23643248" />
|
|
107
|
+
</g>
|
|
108
|
+
<circle
|
|
109
|
+
style="fill:#d76a51;fill-opacity:1;stroke-width:0.144294"
|
|
110
|
+
id="path1-4"
|
|
111
|
+
cx="-10.329949"
|
|
112
|
+
cy="7.6289997"
|
|
113
|
+
r="3.2561009" />
|
|
114
|
+
<circle
|
|
115
|
+
style="fill:#c83d1d;fill-opacity:1;stroke-width:0.114519"
|
|
116
|
+
id="path1-3-9"
|
|
117
|
+
cx="-10.329949"
|
|
118
|
+
cy="7.6289997"
|
|
119
|
+
r="2.5842073" />
|
|
120
|
+
</g>
|
|
121
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="11.940001mm"
|
|
6
|
+
height="11.94mm"
|
|
7
|
+
viewBox="0 0 11.940002 11.94"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1"
|
|
16
|
+
transform="translate(-19.901739,11.277651)">
|
|
17
|
+
<g
|
|
18
|
+
id="g19"
|
|
19
|
+
transform="translate(0.42282735,0.21148449)">
|
|
20
|
+
<path
|
|
21
|
+
id="path1-0"
|
|
22
|
+
style="fill:#ba4c4c;fill-opacity:1;stroke-width:0.20519"
|
|
23
|
+
d="m 25.449343,-10.149018 c -2.55718,3.3e-5 -4.630175,2.073029 -4.630208,4.6302086 3.3e-5,2.5571795 2.073028,4.63017485 4.630208,4.63020832 2.55718,-3.292e-5 4.630176,-2.07302842 4.630209,-4.63020832 -3.3e-5,-2.55718 -2.073029,-4.6301756 -4.630209,-4.6302086 z m -2.3e-5,1.2973424 c 1.840668,5.25e-5 3.332813,1.4921966 3.332866,3.3328662 -5.3e-5,1.8406696 -1.492198,3.3328137 -3.332866,3.3328662 -1.840853,2.055e-4 -3.333282,-1.4920142 -3.333335,-3.3328662 5.3e-5,-1.840852 1.492482,-3.3330717 3.333335,-3.3328662 z" />
|
|
24
|
+
</g>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
Binary file
|