Skip to content

Commit 0076242

Browse files
committed
add colab service
1 parent c39d179 commit 0076242

5 files changed

Lines changed: 375 additions & 17 deletions

File tree

index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"min_@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index-min.js",
2929
"min_@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index-min.js",
3030
"min_@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index-min.js",
31+
"min_@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index-min.js",
3132
"min_dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent-min.js",
3233

3334
"monaco-editor": "./node_modules/monaco-editor/esm/vs/editor/editor.main.js",
@@ -39,6 +40,7 @@
3940
"@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index.js",
4041
"@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index.js",
4142
"@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index.js",
43+
"@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index.js",
4244
"dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent.js",
4345

4446
"@mlc-ai/web-llm": "./node_modules/@mlc-ai/web-llm/lib/index.js",
@@ -225,6 +227,7 @@
225227
src="./node_modules/@node-projects/web-component-designer/assets/icons/redo.svg"></button>
226228
<button style="margin-left: 10px;" data-command="screenshot"><img
227229
src="./node_modules/@node-projects/web-component-designer/assets/icons/screenshot.svg"></button>
230+
<button style="margin-left: 10px; color: inherit; font-family: monospace; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;" data-command="collaboration" title="collaboration">collab</button>
228231
<button style="margin-left: 10px;" data-command="github"><img
229232
src="./node_modules/@node-projects/web-component-designer/assets/icons/github.svg"></button>
230233
</nav>

package-lock.json

Lines changed: 15 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"tsc": "tsc",
88
"start": "web-dev-server --open",
99
"build": "tsc",
10-
"linkAll": "npm link @node-projects/web-component-designer @node-projects/web-component-designer-codeview-monaco @node-projects/web-component-designer-htmlparserservice-nodehtmlparser @node-projects/web-component-designer-stylesheetservice-css-parser @node-projects/web-component-designer-widgets-wunderbaum",
10+
"linkAll": "npm link @node-projects/web-component-designer @node-projects/web-component-designer-codeview-monaco @node-projects/web-component-designer-htmlparserservice-nodehtmlparser @node-projects/web-component-designer-stylesheetservice-css-parser @node-projects/web-component-designer-widgets-wunderbaum @node-projects/web-component-designer-collaboration-service",
1111
"bundleMonaco": "node _patchAndMinifyMonaco.js",
1212
"postinstall": "npm run bundleMonaco"
1313
},
@@ -34,8 +34,9 @@
3434
"@node-projects/lean-he-esm": "^3.4.1",
3535
"@node-projects/node-html-parser-esm": "^6.4.1",
3636
"@node-projects/pickr-webcomponent": "^1.1.0",
37-
"@node-projects/web-component-designer": "^0.1.350",
37+
"@node-projects/web-component-designer": "^0.1.351",
3838
"@node-projects/web-component-designer-codeview-monaco": "^0.1.33",
39+
"@node-projects/web-component-designer-collaboration-service": "^0.1.3",
3940
"@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.12",
4041
"@node-projects/web-component-designer-stylesheetservice-css-parser": "^0.1.4",
4142
"@node-projects/web-component-designer-widgets-wunderbaum": "^0.1.44",

src/CommandHandling.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export class CommandHandling {
1414
this.init(serviceContainer);
1515
}
1616

17+
private supportsMouseHold(commandName: string) {
18+
return commandName === 'undo' || commandName === 'redo';
19+
}
20+
1721
handleCommandButtonClick(e) {
1822
let button = e.currentTarget;
1923
let commandName = button.dataset['command'];
@@ -23,6 +27,8 @@ export class CommandHandling {
2327
this.appShell.newDocument(false);
2428
else if (commandName === 'screenshot')
2529
this.appShell.showScreenshotContextMenu(e);
30+
else if (commandName === 'collaboration')
31+
this.appShell.showCollaborationContextMenu(e);
2632
else if (commandName === 'newFixedWidth')
2733
this.appShell.newDocument(true);
2834
else if (commandName === 'github')
@@ -60,17 +66,22 @@ export class CommandHandling {
6066
buttons.forEach(b => {
6167
if (b instanceof HTMLButtonElement) {
6268
b.onclick = (e) => this.handleCommandButtonClick(e);
63-
let mouseDownTimer = null;
64-
b.onmousedown = (e) => {
65-
mouseDownTimer = setTimeout(() => {
66-
this.handleCommandButtonMouseHold(b, e);
67-
}, 300)
68-
}
69-
b.onmouseup = (e) => {
70-
if (mouseDownTimer) {
71-
clearTimeout(mouseDownTimer);
72-
mouseDownTimer = null;
69+
if (this.supportsMouseHold(b.dataset['command'])) {
70+
let mouseDownTimer = null;
71+
b.onmousedown = (e) => {
72+
mouseDownTimer = setTimeout(() => {
73+
this.handleCommandButtonMouseHold(b, e);
74+
}, 300)
7375
}
76+
b.onmouseup = (e) => {
77+
if (mouseDownTimer) {
78+
clearTimeout(mouseDownTimer);
79+
mouseDownTimer = null;
80+
}
81+
}
82+
} else {
83+
b.onmousedown = null;
84+
b.onmouseup = null;
7485
}
7586
} else {
7687
b.onchange = (e) => this.handleInputValueChanged(e);
@@ -137,6 +148,8 @@ export class CommandHandling {
137148
b.disabled = false;
138149
else if (command === 'newFixedWidth')
139150
b.disabled = false;
151+
else if (command === 'collaboration')
152+
b.disabled = !this.dockManager.activeDocument;
140153
else if (command === 'github')
141154
b.disabled = false;
142155
else

0 commit comments

Comments
 (0)