Skip to content

Commit e8b2154

Browse files
Made requested changes
1 parent 2e0dfeb commit e8b2154

File tree

9 files changed

+47
-59
lines changed

9 files changed

+47
-59
lines changed

src/canvas-extensions/commands-canvas-extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import AdvancedCanvasPlugin from "src/main"
33
import * as CanvasHelper from "src/utils/canvas-helper"
44

55
type Direction = 'up' | 'down' | 'left' | 'right'
6-
const DRIECTIONS = ['up', 'down', 'left', 'right'] as Direction[]
6+
const DIRECTIONS = ['up', 'down', 'left', 'right'] as Direction[]
77
const DIRECTION_KEYS = {
88
up: 'ArrowUp',
99
down: 'ArrowDown',
@@ -39,7 +39,7 @@ export default class CommandsCanvasExtension {
3939
)
4040
})
4141

42-
for (const direction of DRIECTIONS) {
42+
for (const direction of DIRECTIONS) {
4343
this.plugin.addCommand({
4444
id: `clone-node-${direction}`,
4545
name: `Clone node ${direction}`,

src/canvas-extensions/presentation-canvas-extension.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import delay from 'src/utils/delay-helper'
21
import { Notice } from 'obsidian'
32
import { Canvas, CanvasEdge, CanvasNode, Position, Size } from 'src/@types/Canvas'
43
import AdvancedCanvasPlugin from 'src/main'
@@ -150,13 +149,13 @@ export default class PresentationCanvasExtension {
150149
if (useCustomZoomFunction) CanvasHelper.zoomToBBox(canvas, currentNodeBBoxEnlarged)
151150
else canvas.zoomToBbox(currentNodeBBoxEnlarged)
152151

153-
await delay(animationDurationMs / 2)
152+
await sleep(animationDurationMs / 2)
154153

155154
const nextNodeBBoxEnlarged = CanvasHelper.scaleBBox(toNode.getBBox(), animationIntensity)
156155
if (useCustomZoomFunction) CanvasHelper.zoomToBBox(canvas, nextNodeBBoxEnlarged)
157156
else canvas.zoomToBbox(nextNodeBBoxEnlarged)
158157

159-
await delay(animationDurationMs / 2)
158+
await sleep(animationDurationMs / 2)
160159
}
161160

162161
let nodeBBox = toNode.getBBox()
@@ -203,7 +202,7 @@ export default class PresentationCanvasExtension {
203202
this.isPresentationMode = true
204203

205204
// Wait for fullscreen to be enabled
206-
await delay(500)
205+
await sleep(500)
207206

208207
// Zoom to first node
209208
this.visitedNodes.push(startNode)

src/canvas-extensions/shapes-canvas-extension.ts

Lines changed: 11 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { addIcon } from "obsidian"
21
import { Canvas, CanvasNode } from "src/@types/Canvas"
32
import AdvancedCanvasPlugin from "src/main"
43
import * as CanvasHelper from "src/utils/canvas-helper"
@@ -7,86 +6,54 @@ import { CanvasEvent } from "src/events/events"
76
interface Shape {
87
id: string|null
98
menuName: string
10-
icon: () => string
9+
icon: string
1110
}
1211

1312
const SHAPES: Shape[] = [
1413
{
1514
id: null,
1615
menuName: 'Default',
17-
icon: () => 'circle-off'
16+
icon: 'circle-off'
1817
},
1918
{
2019
id: 'oval',
2120
menuName: 'Oval',
22-
icon: () => {
23-
addIcon('oval', `
24-
<rect rx="31.25" height="62.5" width="93.75" y="18.75" x="3.125" stroke-width="8.333" stroke="currentColor" fill="transparent"/>
25-
`)
26-
return 'oval'
27-
}
21+
icon: 'oval'
2822
},
2923
{
3024
id: 'centered-rectangle',
3125
menuName: 'Rectangle',
32-
icon: () => 'rectangle-horizontal'
26+
icon: 'rectangle-horizontal'
3327
},
3428
{
3529
id: 'diamond',
3630
menuName: 'Diamond',
37-
icon: () => 'diamond'
31+
icon: 'diamond'
3832
},
3933
{
4034
id: 'parallelogram',
4135
menuName: 'Parallelogram',
42-
icon: () => {
43-
addIcon('parallelogram', `
44-
<rect transform="skewX(-20)" rx="5" height="50" width="70" y="25" x="35" stroke-width="8.333" stroke="currentColor" fill="transparent"/>
45-
`)
46-
return 'parallelogram'
47-
}
36+
icon: 'parallelogram'
4837
},
4938
{
5039
id: 'circle',
5140
menuName: 'Circle',
52-
icon: () => 'circle'
41+
icon: 'circle'
5342
},
5443
{
5544
id: 'predefined-process',
5645
menuName: 'Predefined process',
57-
icon: () => {
58-
addIcon('predefined-process', `
59-
<g stroke-width="2" stroke="currentColor" fill="none" transform="matrix(4.166667,0,0,4.166667,0,0)">
60-
<path d="M 4.999687 3 L 19.000312 3 C 20.104688 3 21 3.895312 21 4.999687 L 21 19.000312 C 21 20.104688 20.104688 21 19.000312 21 L 4.999687 21 C 3.895312 21 3 20.104688 3 19.000312 L 3 4.999687 C 3 3.895312 3.895312 3 4.999687 3 Z M 4.999687 3 "/>
61-
<path d="M 7 3 L 7 21 "/>
62-
<path d="M 17 3 L 17 21 "/>
63-
</g>
64-
`)
65-
return 'predefined-process'
66-
}
46+
icon: 'predefined-process'
6747
},
6848
{
6949
id: 'document',
7050
menuName: 'Document',
71-
icon: () => {
72-
addIcon('document', `
73-
<path transform="translate(0, 5)" stroke="currentColor" fill="none" stroke-width="8.333" d="M83.75 25C85.82 25 87.5 26.68 87.5 28.75L87.5 64.375Q68.75 54.25 50 64.375 31.25 74.5 12.5 64.375L12.5 30.625 12.5 28.75C12.5 26.68 14.18 25 16.25 25Z"/>
74-
`)
75-
return 'document'
76-
}
51+
icon: 'document'
7752
},
7853
{
7954
id: 'database',
8055
menuName: 'Database',
81-
icon: () => {
82-
addIcon('database-shape', `
83-
<g transform="translate(20, 20)" stroke-width="8.333" stroke="currentColor" fill="none">
84-
<path d="M 1 51 L 1 11 C 1 5.48 14.43 1 31 1 C 47.57 1 61 5.48 61 11 L 61 51 C 61 56.52 47.57 61 31 61 C 14.43 61 1 56.52 1 51 Z"/>
85-
<path d="M 1 11 C 1 16.52 14.43 21 31 21 C 47.57 21 61 16.52 61 11"/>
86-
</g>
87-
`)
88-
return 'database-shape'
89-
}
56+
icon: 'database-shape'
9057
}
9158
]
9259

@@ -126,7 +93,7 @@ export default class ShapesCanvasExtension {
12693
const shapeButton = CanvasHelper.createPopupMenuOption(
12794
'',
12895
shape.menuName,
129-
shape.icon(),
96+
shape.icon,
13097
() => this.setShapeForSelection(canvas, shape)
13198
)
13299

src/main.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { Canvas } from './@types/Canvas'
1010
import ReadonlyCanvasExtension from './canvas-extensions/readonly-canvas-extension'
1111
import EncapsulateCanvasExtension from './canvas-extensions/encapsulate-canvas-extension'
1212
import CommandsCanvasExtension from './canvas-extensions/commands-canvas-extension'
13+
import IconsHelper from './utils/icons-helper'
1314

1415
const CANVAS_EXTENSIONS: any[] = [
1516
NodeDataTaggerCanvasExtension,
@@ -28,6 +29,8 @@ export default class AdvancedCanvasPlugin extends Plugin {
2829
canvasExtensions: any[]
2930

3031
async onload() {
32+
IconsHelper.addIcons()
33+
3134
this.settingsManager = new AdvancedCanvasSettingsManager(this)
3235
await this.settingsManager.loadSettings()
3336
this.settingsManager.addSettingsTab()

src/settings.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ export class AdvancedCanvasPluginSettingTab extends PluginSettingTab {
9696
let { containerEl } = this
9797
containerEl.empty()
9898

99-
containerEl.createEl('h1', { cls: 'main-header', text: 'Advanced Canvas' })
100-
10199
this.createFeatureHeading(
102100
containerEl,
103101
"Shapes",

src/styles.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
@use "styles/settings";
21
@use "styles/menu";
32
@use "styles/shapes";
43
@use "styles/presentation";

src/styles/settings.scss

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/utils/delay-helper.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/utils/icons-helper.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { addIcon } from "obsidian"
2+
3+
const CUSTOM_ICONS = {
4+
'oval': `<rect rx="31.25" height="62.5" width="93.75" y="18.75" x="3.125" stroke-width="8.333" stroke="currentColor" fill="transparent"/>`,
5+
'parallelogram': `<rect transform="skewX(-20)" rx="5" height="50" width="70" y="25" x="35" stroke-width="8.333" stroke="currentColor" fill="transparent"/>`,
6+
'predefined-process': `
7+
<g stroke-width="2" stroke="currentColor" fill="none" transform="matrix(4.166667,0,0,4.166667,0,0)">
8+
<path d="M 4.999687 3 L 19.000312 3 C 20.104688 3 21 3.895312 21 4.999687 L 21 19.000312 C 21 20.104688 20.104688 21 19.000312 21 L 4.999687 21 C 3.895312 21 3 20.104688 3 19.000312 L 3 4.999687 C 3 3.895312 3.895312 3 4.999687 3 Z M 4.999687 3 "/>
9+
<path d="M 7 3 L 7 21 "/>
10+
<path d="M 17 3 L 17 21 "/>
11+
</g>
12+
`,
13+
'document': `<path transform="translate(0, 5)" stroke="currentColor" fill="none" stroke-width="8.333" d="M83.75 25C85.82 25 87.5 26.68 87.5 28.75L87.5 64.375Q68.75 54.25 50 64.375 31.25 74.5 12.5 64.375L12.5 30.625 12.5 28.75C12.5 26.68 14.18 25 16.25 25Z"/>`,
14+
'database-shape': `
15+
<g transform="translate(20, 20)" stroke-width="8.333" stroke="currentColor" fill="none">
16+
<path d="M 1 51 L 1 11 C 1 5.48 14.43 1 31 1 C 47.57 1 61 5.48 61 11 L 61 51 C 61 56.52 47.57 61 31 61 C 14.43 61 1 56.52 1 51 Z"/>
17+
<path d="M 1 11 C 1 16.52 14.43 21 31 21 C 47.57 21 61 16.52 61 11"/>
18+
</g>
19+
`
20+
}
21+
22+
export default class IconsHelper {
23+
static addIcons() {
24+
for (const [id, svg] of Object.entries(CUSTOM_ICONS)) {
25+
addIcon(id, svg)
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)