diff --git a/packages/uhk-web/package.json b/packages/uhk-web/package.json index a5c1244c..d6afcd6e 100644 --- a/packages/uhk-web/package.json +++ b/packages/uhk-web/package.json @@ -5,7 +5,7 @@ "scripts": { "ng": "ng", "start": "ng serve", - "build": "ng build --prod --aot", + "build": "ng build --prod --aot --base-href=\"\"", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/key-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/key-action.ts index d33eb10a..459b8afd 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/key-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/key-action.ts @@ -32,7 +32,7 @@ export let keyActionType = { export abstract class KeyAction { assertKeyActionType(jsObject: any): void { - const keyActionClassname: string = this.constructor.name; + const keyActionClassname: string = this.getName(); const keyActionTypeString: string = keyActionType[keyActionClassname]; if (jsObject.keyActionType !== keyActionTypeString) { throw `Invalid ${keyActionClassname}.keyActionType: ${jsObject.keyActionType}`; @@ -40,7 +40,7 @@ export abstract class KeyAction { } readAndAssertKeyActionId(buffer: UhkBuffer): KeyActionId { - const classname: string = this.constructor.name; + const classname: string = this.getName(); const readKeyActionId: number = buffer.readUInt8(); const keyActionId: number = KeyActionId[classname]; if (keyActionId === KeyActionId.KeystrokeAction) { @@ -54,8 +54,11 @@ export abstract class KeyAction { } abstract toJsonObject(macros?: Macro[]): any; + abstract toBinary(buffer: UhkBuffer, userConfiguration?: UserConfiguration): void; + abstract getName(): string; + renameKeymap(oldAbbr: string, newAbbr: string): KeyAction { return this; } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/keystroke-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/keystroke-action.ts index 1c3ef53d..e087f462 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/keystroke-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/keystroke-action.ts @@ -208,4 +208,8 @@ export class KeystrokeAction extends KeyAction { } return modifierList; } + + public getName(): string { + return 'KeystrokeAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/mouse-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/mouse-action.ts index 53e9f302..a6d34063 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/mouse-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/mouse-action.ts @@ -58,4 +58,8 @@ export class MouseAction extends KeyAction { toString(): string { return ``; } + + public getName(): string { + return 'MouseAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/none-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/none-action.ts index bc3acbd2..4a9619d6 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/none-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/none-action.ts @@ -32,4 +32,8 @@ export class NoneAction extends KeyAction { toString(): string { return ''; } + + public getName(): string { + return 'NoneAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/play-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/play-macro-action.ts index 7e2cb221..012f4a01 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/play-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/play-macro-action.ts @@ -49,4 +49,8 @@ export class PlayMacroAction extends KeyAction { toString(): string { return ``; } + + public getName(): string { + return 'PlayMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-keymap-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-keymap-action.ts index 9c87a7f4..c5fee256 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-keymap-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-keymap-action.ts @@ -51,6 +51,10 @@ export class SwitchKeymapAction extends KeyAction { } return new SwitchKeymapAction(newAbbr); } + + public getName(): string { + return 'SwitchKeymapAction'; + } } export class UnresolvedSwitchKeymapAction extends KeyAction { @@ -81,4 +85,8 @@ export class UnresolvedSwitchKeymapAction extends KeyAction { resolve(keymaps: Keymap[]): SwitchKeymapAction { return new SwitchKeymapAction(keymaps[this.keymapIndex]); } + + public getName(): string { + return 'UnresolvedSwitchKeymapAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-layer-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-layer-action.ts index f8096599..01b3ba30 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-layer-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/key-action/switch-layer-action.ts @@ -56,4 +56,7 @@ export class SwitchLayerAction extends KeyAction { return ``; } + public getName(): string { + return 'SwitchLayerAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/delay-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/delay-macro-action.ts index c00701cf..1ae3b8be 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/delay-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/delay-macro-action.ts @@ -42,4 +42,8 @@ export class DelayMacroAction extends MacroAction { toString(): string { return ``; } + + public getName(): string { + return 'DelayMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/key-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/key-macro-action.ts index 7bf369c3..7ca5e2e1 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/key-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/key-macro-action.ts @@ -132,4 +132,8 @@ export class KeyMacroAction extends MacroAction { isReleaseAction(): boolean { return this.action === MacroSubAction.release; } + + public getName(): string { + return 'KeyMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/macro-action.ts index c923307d..7e0f655e 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/macro-action.ts @@ -40,7 +40,7 @@ export let macroActionType = { export abstract class MacroAction { assertMacroActionType(jsObject: any) { - const macroActionClassname = this.constructor.name; + const macroActionClassname = this.getName(); const macroActionTypeString = macroActionType[macroActionClassname]; if (jsObject.macroActionType !== macroActionTypeString) { throw `Invalid ${macroActionClassname}.macroActionType: ${jsObject.macroActionType}`; @@ -48,7 +48,7 @@ export abstract class MacroAction { } readAndAssertMacroActionId(buffer: UhkBuffer): MacroActionId { - const classname: string = this.constructor.name; + const classname: string = this.getName(); const readMacroActionId: MacroActionId = buffer.readUInt8(); const macroActionId: MacroActionId = MacroActionId[classname]; if (macroActionId === MacroActionId.KeyMacroAction) { @@ -67,5 +67,8 @@ export abstract class MacroAction { } abstract toJsonObject(): any; + abstract toBinary(buffer: UhkBuffer): void; + + abstract getName(): string; } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/mouse-button-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/mouse-button-macro-action.ts index 75638ccb..09b5f0a2 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/mouse-button-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/mouse-button-macro-action.ts @@ -92,4 +92,8 @@ export class MouseButtonMacroAction extends MacroAction { isOnlyReleaseAction(): boolean { return this.action === MacroSubAction.release; } + + public getName(): string { + return 'MouseButtonMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/move-mouse-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/move-mouse-macro-action.ts index d2746dff..a2a187ea 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/move-mouse-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/move-mouse-macro-action.ts @@ -50,4 +50,8 @@ export class MoveMouseMacroAction extends MacroAction { toString(): string { return ``; } + + public getName(): string { + return 'MoveMouseMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts index bcc7028a..89bdcc64 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts @@ -50,4 +50,8 @@ export class ScrollMouseMacroAction extends MacroAction { toString(): string { return ``; } + + public getName(): string { + return 'ScrollMouseMacroAction'; + } } diff --git a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/text-macro-action.ts b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/text-macro-action.ts index d63911e5..0e20566c 100644 --- a/packages/uhk-web/src/app/config-serializer/config-items/macro-action/text-macro-action.ts +++ b/packages/uhk-web/src/app/config-serializer/config-items/macro-action/text-macro-action.ts @@ -40,4 +40,8 @@ export class TextMacroAction extends MacroAction { toString(): string { return ``; } + + public getName(): string { + return 'TextMacroAction'; + } } diff --git a/packages/uhk-web/webpack.config.js b/packages/uhk-web/webpack.config.js index ac72046c..431c3e5b 100644 --- a/packages/uhk-web/webpack.config.js +++ b/packages/uhk-web/webpack.config.js @@ -384,7 +384,14 @@ module.exports = { "inject": true, "compile": true, "favicon": false, - "minify": false, + "minify": !AOT_BUILD ? false : { + removeAttributeQuotes: true, + collapseWhitespace: true, + html5: true, + minifyCSS: true, + removeComments: true, + removeEmptyAttributes: true, + }, "cache": true, "showErrors": true, "chunks": "all",