aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.ts
diff options
context:
space:
mode:
authorAndrew Kim <andrewdkim@users.noreply.github.com>2019-03-05 18:51:20 -0500
committerAndrew Kim <andrewdkim@users.noreply.github.com>2019-03-05 18:51:20 -0500
commit7f93e6639e8fee3e3760d13c69d65b343875091a (patch)
treed29b45310f92a53935177d969ce3c1bee9920c32 /src/Utils.ts
parent9b839a93b98b850aa77087218d4862b97fb24d15 (diff)
parent2cc5eb6ff512dc6128d25903bcb852f25bcadcca (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into PDFNode
Diffstat (limited to 'src/Utils.ts')
-rw-r--r--src/Utils.ts37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/Utils.ts b/src/Utils.ts
index e2b4309bb..d4b7da52c 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -1,17 +1,22 @@
import v4 = require('uuid/v4');
import v5 = require("uuid/v5");
+import { Socket } from 'socket.io';
+import { Message, Types } from './server/Message';
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 } {
+ if (!ele) {
+ return { scale: 1, translateX: 1, translateY: 1 }
+ }
const rect = ele.getBoundingClientRect();
const scale = ele.offsetWidth == 0 && rect.width == 0 ? 1 : rect.width / ele.offsetWidth;
const translateX = rect.left;
@@ -20,5 +25,31 @@ export class Utils {
return { scale, translateX, translateY };
}
- public static pdf_example = require('../deploy/test.pdf');
+ 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