{"version":3,"file":"KeyboardHelpers.js","sourceRoot":"","sources":["../../TS/KeyboardHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { IJSModule } from \"./IJSModule.js\";\r\n\r\nexport class KeyboardHelpers implements IJSModule {\r\n\r\n public serviceName: string;\r\n\r\n private ASSEMBLYNAME;\r\n\r\n private keyDownSubscriptions: any;\r\n\r\n public initialize(): boolean {\r\n this.ASSEMBLYNAME = 'SPCW';\r\n this.serviceName = \"KeyboardHelpers\";\r\n this.keyDownSubscriptions = {};\r\n\r\n window['Keyboard'] = this;\r\n return true;\r\n }\r\n\r\n\r\n public getInputSelection(inputId: string): number[] {\r\n let input = document.getElementById(inputId) as HTMLInputElement;\r\n\r\n let selection = null;\r\n\r\n if (input != null && input != undefined) {\r\n selection = [input.selectionStart, input.selectionEnd];\r\n }\r\n\r\n return selection;\r\n }\r\n\r\n\r\n public isAllTextInInputSelected(inputId: string): boolean {\r\n let input = document.getElementById(inputId) as HTMLInputElement;\r\n\r\n if (input != null && input != undefined && input.value.length > 0) {\r\n return input.selectionStart == 0 && input.selectionEnd == input.value.length;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public subscribeOnKeyDown(inputId: string, handler: any) {\r\n let input = document.getElementById(inputId);\r\n\r\n if (input != null && input != undefined) {\r\n\r\n let s = this.keyDownSubscriptions[inputId];\r\n if (s) {\r\n this.unsubscribeOnKeyDownInternal(input, s);\r\n }\r\n\r\n var x = new KeyboardSubscription();\r\n x.id = inputId;\r\n x.onKeyDown = (e: KeyboardEvent) => this.handleKeyDownEvent(e, handler);\r\n x.handler = handler;\r\n\r\n this.keyDownSubscriptions[inputId] = x;\r\n input.addEventListener('keydown', x.onKeyDown);\r\n }\r\n }\r\n\r\n public subscribeOnKeyDownPreventDefault(inputId: string, handler: any) {\r\n let input = document.getElementById(inputId);\r\n\r\n if (input != null && input != undefined) {\r\n\r\n let s = this.keyDownSubscriptions[inputId];\r\n if (s) {\r\n this.unsubscribeOnKeyDownInternal(input, s);\r\n }\r\n\r\n var x = new KeyboardSubscription();\r\n x.id = inputId;\r\n x.onKeyDown = (e: KeyboardEvent) => this.handleKeyDownEventPreventDefault(e, handler);\r\n x.handler = handler;\r\n\r\n this.keyDownSubscriptions[inputId] = x;\r\n input.addEventListener('keydown', x.onKeyDown);\r\n }\r\n }\r\n\r\n public unsubscribeOnKeyDown(inputId: string) {\r\n let input = document.getElementById(inputId);\r\n let s = this.keyDownSubscriptions[inputId];\r\n this.unsubscribeOnKeyDownInternal(input, s);\r\n }\r\n\r\n private unsubscribeOnKeyDownInternal(input: HTMLElement, subscription: KeyboardSubscription) {\r\n if (input && subscription) {\r\n input.removeEventListener('keydown', subscription.onKeyDown);\r\n }\r\n }\r\n\r\n private handleKeyDownEvent(e: KeyboardEvent, handler: any) {\r\n switch (e.key) {\r\n case 'Tab': {\r\n e.preventDefault();\r\n break;\r\n }\r\n case 'Backspace': {\r\n e.preventDefault();\r\n break;\r\n }\r\n case 'Delete': {\r\n e.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n if (handler) {\r\n handler.invokeMethodAsync('KeyboardInputOnKeyDownHandler', e.key);\r\n }\r\n };\r\n\r\n private handleKeyDownEventPreventDefault(e: KeyboardEvent, handler: any) {\r\n e.preventDefault();\r\n\r\n if (handler) {\r\n handler.invokeMethodAsync('KeyboardInputOnKeyDownHandler', e.key);\r\n }\r\n };\r\n\r\n}\r\n\r\nexport class KeyboardSubscription {\r\n public id: string;\r\n public onKeyDown: any;\r\n public handler: any;\r\n}\r\n"]}