UNPKG

isoterm

Version:

A Terminal With Precisely Configurable Fonts Using CSS Unicode Ranges

207 lines (183 loc) 7.52 kB
(function() { 'use strict'; var copy_keys, handle_hotkeys, handle_keys, locations, modifier_names, xxx_from_event; // _console = console // #=========================================================================================================== // class Intercepted_console // # #--------------------------------------------------------------------------------------------------------- // # constructor: ( target ) -> // # @target = target // # return undefined // #--------------------------------------------------------------------------------------------------------- // get: ( target, key ) -> // _console.log '^334-1^', key // return target[ key ] // # return Reflect.get arguments... // #--------------------------------------------------------------------------------------------------------- // log: ( P... ) -> // _console.log '^334-2^', P // return _console.log P... // # debug: ƒ debug() // # error: ƒ error() // # info: ƒ info() // # warn: ƒ warn() // #--------------------------------------------------------------------------------------------------------- // # assert: ƒ assert() // # clear: ƒ clear() // # context: ƒ context() // # count: ƒ count() // # countReset: ƒ countReset() // # dir: ƒ dir() // # dirxml: ƒ dirxml() // # group: ƒ group() // # groupCollapsed: ƒ groupCollapsed() // # groupEnd: ƒ groupEnd() // # memory: MemoryInfo {totalJSHeapSize: 19300000, usedJSHeapSize: 19300000, jsHeapSizeLimit: 2190000000} // # profile: ƒ profile() // # profileEnd: ƒ profileEnd() // # table: ƒ table() // # time: ƒ time() // # timeEnd: ƒ timeEnd() // # timeLog: ƒ timeLog() // # timeStamp: ƒ timeStamp() // # trace: ƒ trace() // globalThis.console = new Proxy console, new Intercepted_console() // globalThis.log = console.log // globalThis.µ = require 'mudom' // # globalThis.XXTERM = {}; // Combokeys = require 'combokeys' // count = 0 // # ckeys = new Combokeys document.documentElement // ckeys = new Combokeys µ.DOM.select_id 'terminal-container' // ckeys.bind 'ctrl+y', ( event, key ) -> log '^ops-late@1^', event // ckeys.bind 'ctrl+k', ( event, key ) -> // log '^ops-late@2^', "show or hide side bar" // event.preventDefault() // event.stopPropagation() // return false // ckeys.bind 'ctrl+l', ( event, key ) -> // log '^ops-late@3^', "activate address bar" // event.preventDefault() // event.stopPropagation() // return false console.log('^ops-late@4^', 'OK'); log("^ops-late@5^ OPS loaded"); console.log('^ops-late@5^', term); copy_keys = [ 'xxx', // 'type' 'key', 'code', 'keyCode' ]; modifier_names = ['Alt', 'AltGraph', 'Control', 'Meta', 'Shift', 'CapsLock']; locations = ['standard', 'left', 'right', 'numpad']; xxx_from_event = function(event) { var d, i, j, k, len, len1, location, xxx; d = {}; for (i = 0, len = copy_keys.length; i < len; i++) { k = copy_keys[i]; d[k] = event[k]; } xxx = []; location = locations[event.location]; if (location !== 'standard') { d.location = location; xxx.push(location); } for (j = 0, len1 = modifier_names.length; j < len1; j++) { k = modifier_names[j]; if (!event.getModifierState(k)) { continue; } xxx.push(k); d[k] = true; } xxx.push(d.key); d.xxx = xxx.join('+'); d.event = event; return d; }; handle_hotkeys = function(d) { switch (d.xxx) { case 'Control+l': log('^ops-late@6^', "prevent activation of address bar"); d.event.stopPropagation(); d.event.preventDefault(); return false; case 'Control+q': log('^ops-late@6^', "quit app"); d.event.stopPropagation(); d.event.preventDefault(); return false; } return null; }; handle_keys = function(event) { log('^ops-late@7^', event); log('^ops-late@7^', xxx_from_event(event)); return handle_hotkeys(xxx_from_event(event)); }; µ.DOM.on(document.documentElement, 'keydown', function(event) { return handle_keys(event); }); term.onKey(function(event) { return handle_keys(event.domEvent); }); // term.paste 'helo' // log '^ops-late@7^', require 'cnd' log('^ops-late@7^', require('guy')); log('^ops-late@7^', require('datom')); /* public addMarker(cursorYOffset: number): IMarker | undefined { public attachCustomKeyEventHandler(customKeyEventHandler: CustomKeyEventHandler): void { public bell(): void { public bindMouse(): void { public blur(): void { public browser: IBrowser = Browser as any; public cancel(ev: Event, force?: boolean): boolean | undefined { public clear(): void { public clearSelection(): void { public clearTextureAtlas(): void { public deregisterCharacterJoiner(joinerId: number): void { public deregisterLinkMatcher(matcherId: number): void { public dispose(): void { public element: HTMLElement | undefined; public focus(): void { public get buffer(): IBuffer { public get markers(): IMarker[] { public get onA11yChar(): IEvent<string> { return this._onA11yCharEmitter.event; } public get onA11yTab(): IEvent<number> { return this._onA11yTabEmitter.event; } public get onBell(): IEvent<void> { return this._onBell.event; } public get onBlur(): IEvent<void> { return this._onBlur.event; } public get onCursorMove(): IEvent<void> { return this._onCursorMove.event; } public get onFocus(): IEvent<void> { return this._onFocus.event; } public get onKey(): IEvent<{ key: string, domEvent: KeyboardEvent }> { return this._onKey.event; } public get onRender(): IEvent<{ start: number, end: number }> { return this._onRender.event; } public get onSelectionChange(): IEvent<void> { return this._onSelectionChange.event; } public get onTitleChange(): IEvent<string> { return this._onTitleChange.event; } public getSelection(): string { public getSelectionPosition(): ISelectionPosition | undefined { public hasSelection(): boolean { public linkifier2: ILinkifier2; public linkifier: ILinkifier; public open(parent: HTMLElement): void { public paste(data: string): void { public refresh(start: number, end: number): void { public registerCharacterJoiner(handler: CharacterJoinerHandler): number { public registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined { public registerLinkMatcher(regex: RegExp, handler: LinkMatcherHandler, options?: ILinkMatcherOptions): number { public registerLinkProvider(linkProvider: ILinkProvider): IDisposable { public reset(): void { public resize(x: number, y: number): void { public screenElement: HTMLElement | undefined; public scrollLines(disp: number, suppressScrollEvent?: boolean, source = ScrollSource.TERMINAL): void { public select(column: number, row: number, length: number): void { public selectAll(): void { public selectLines(start: number, end: number): void { public textarea: HTMLTextAreaElement | undefined; public updateCursorStyle(ev: KeyboardEvent): void { public viewport: IViewport | undefined; */ }).call(this); //# sourceMappingURL=ops-late.js.map