aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.ts
diff options
context:
space:
mode:
authortschicke-brown <tyler_schicke@brown.edu>2019-02-19 21:58:18 -0500
committerGitHub <noreply@github.com>2019-02-19 21:58:18 -0500
commit4610f1cc4653aa3b8389a677b9a1bd94590752a1 (patch)
tree6fd1cfe02eaeaf1dc074a26cc4cde39c3313d1f3 /src/Utils.ts
parent190d0225d7bf605aa53847eb7beda5de72e753a8 (diff)
parentef10a6bdf753f75cbc5b5d8b7dcc53c3d4c219ad (diff)
Merge pull request #8 from browngraphicslab/server_database_merge
Server database merge
Diffstat (limited to 'src/Utils.ts')
-rw-r--r--src/Utils.ts43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/Utils.ts b/src/Utils.ts
index cc1d8f6c6..c9c006aa8 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -1,14 +1,25 @@
import v4 = require('uuid/v4');
import v5 = require("uuid/v5");
+import { Socket } from 'socket.io';
+import { Message, Types } from './server/Message';
+import { Field } from './fields/Field';
+import { TextField } from './fields/TextField';
+import { NumberField } from './fields/NumberField';
+import { RichTextField } from './fields/RichTextField';
+import { Key } from './fields/Key';
+import { ImageField } from './fields/ImageField';
+import { ListField } from './fields/ListField';
+import { Document } from './fields/Document';
+import { Server } from './client/Server';
export class Utils {
public static GenerateGuid(): string {
- return v4();
+ return v4()
}
public static GenerateDeterministicGuid(seed: string): string {
- return v5(seed, v5.URL);
+ return v5(seed, v5.URL)
}
public static GetScreenTransform(ele: HTMLElement): { scale: number, translateX: number, translateY: number } {
@@ -19,4 +30,32 @@ export class Utils {
return { scale, translateX, translateY };
}
+
+ public static CopyText(text: string) {
+ var textArea = document.createElement("textarea");
+ textArea.value = text;
+ document.body.appendChild(textArea);
+ textArea.focus();
+ textArea.select();
+
+ try { document.execCommand('copy'); } catch (err) { }
+
+ document.body.removeChild(textArea);
+ }
+
+ public static Emit<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T) {
+ socket.emit(message.Message, args);
+ }
+
+ public static EmitCallback<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T, fn: (args: any) => any) {
+ socket.emit(message.Message, args, fn);
+ }
+
+ public static AddServerHandler<T>(socket: Socket, message: Message<T>, handler: (args: T) => any) {
+ socket.on(message.Message, handler);
+ }
+
+ public static AddServerHandlerCallback<T>(socket: Socket, message: Message<T>, handler: (args: [T, (res: any) => any]) => any) {
+ socket.on(message.Message, (arg: T, fn: (res: any) => any) => handler([arg, fn]));
+ }
} \ No newline at end of file