This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/textcomplete/lib/editor.js.map
2020-11-01 22:46:04 +00:00

1 line
5.3 KiB
Plaintext

{"version":3,"sources":["../src/editor.js"],"names":["Editor","_","Error","code","moveEvent","cancelable","detail","emit","enterEvent","changeEvent","beforeCursor","getBeforeCursor","escEvent","e","keyCode","ctrlKey"],"mappings":";;;;;;;;AAGA;;;;AAEA;;AACA;;;;;;;;;;;AALA;;AAkBA;;;;;;;;;;;;;AAXA;IAsBqBA,M;;;;;;;;;;;;AACnB;;;;;8BAKU;AACR,aAAO,IAAP;AACD;;AAED;;;;;;sCAGkBC,C,EAAuB;AACvC,YAAM,IAAIC,KAAJ,CAAU,kBAAV,CAAN;AACD;;AAED;;;;;;;sCAIgC;AAC9B,YAAM,IAAIA,KAAJ,CAAU,kBAAV,CAAN;AACD;;AAED;;;;;;;sCAI2B;AACzB,YAAM,IAAIA,KAAJ,CAAU,kBAAV,CAAN;AACD;;AAED;;;;;;;;;kCAMcC,I,EAAkC;AAC9C,UAAMC,YAAY,8BAAkB,MAAlB,EAA0B;AAC1CC,oBAAY,IAD8B;AAE1CC,gBAAQ;AACNH,gBAAMA;AADA;AAFkC,OAA1B,CAAlB;AAMA,WAAKI,IAAL,CAAU,MAAV,EAAkBH,SAAlB;AACA,aAAOA,SAAP;AACD;;AAED;;;;;;;;;qCAM8B;AAC5B,UAAMI,aAAa,8BAAkB,OAAlB,EAA2B,EAAEH,YAAY,IAAd,EAA3B,CAAnB;AACA,WAAKE,IAAL,CAAU,OAAV,EAAmBC,UAAnB;AACA,aAAOA,UAAP;AACD;;AAED;;;;;;;;;sCAM+B;AAC7B,UAAMC,cAAc,8BAAkB,QAAlB,EAA4B;AAC9CH,gBAAQ;AACNI,wBAAc,KAAKC,eAAL;AADR;AADsC,OAA5B,CAApB;AAKA,WAAKJ,IAAL,CAAU,QAAV,EAAoBE,WAApB;AACA,aAAOA,WAAP;AACD;;AAED;;;;;;;;;mCAM4B;AAC1B,UAAMG,WAAW,8BAAkB,KAAlB,EAAyB,EAAEP,YAAY,IAAd,EAAzB,CAAjB;AACA,WAAKE,IAAL,CAAU,KAAV,EAAiBK,QAAjB;AACA,aAAOA,QAAP;AACD;;AAED;;;;;;;;4BAKQC,C,EAA2B;AACjC,aAAOA,EAAEC,OAAF,KAAc,CAAd,GACH,OADG,CACK;AADL,QAEHD,EAAEC,OAAF,KAAc,EAAd,GACE,OADF,CACU;AADV,QAEED,EAAEC,OAAF,KAAc,EAAd,GACE,KADF,CACQ;AADR,QAEED,EAAEC,OAAF,KAAc,EAAd,GACE,IADF,CACO;AADP,QAEED,EAAEC,OAAF,KAAc,EAAd,GACE,MADF,CACS;AADT,QAEED,EAAEC,OAAF,KAAc,EAAd,IAAoBD,EAAEE,OAAtB,GACE,MADF,CACS;AADT,QAEEF,EAAEC,OAAF,KAAc,EAAd,IAAoBD,EAAEE,OAAtB,GACE,IADF,CACO;AADP,QAEE,OAdhB;AAeD;;;;;;kBA/GkBf,M","file":"editor.js","sourcesContent":["// @flow\n/*eslint no-unused-vars: off*/\n\nimport EventEmitter from \"eventemitter3\"\n\nimport { createCustomEvent } from \"./utils\"\nimport SearchResult from \"./search_result\"\n\n/** @typedef */\nexport type CursorOffset = {\n lineHeight: number,\n top: number,\n left?: number,\n right?: number,\n clientTop?: number\n}\n\ntype KeyCode = \"ESC\" | \"ENTER\" | \"UP\" | \"DOWN\" | \"OTHER\"\n\n/**\n * Abstract class representing a editor target.\n *\n * Editor classes must implement `#applySearchResult`, `#getCursorOffset` and\n * `#getBeforeCursor` methods.\n *\n * Editor classes must invoke `#emitMoveEvent`, `#emitEnterEvent`,\n * `#emitChangeEvent` and `#emitEscEvent` at proper timing.\n *\n * @abstract\n */\nexport default class Editor extends EventEmitter {\n /**\n * It is called when associated textcomplete object is destroyed.\n *\n * @return {this}\n */\n destroy() {\n return this\n }\n\n /**\n * It is called when a search result is selected by a user.\n */\n applySearchResult(_: SearchResult): void {\n throw new Error(\"Not implemented.\")\n }\n\n /**\n * The input cursor's absolute coordinates from the window's left\n * top corner.\n */\n getCursorOffset(): CursorOffset {\n throw new Error(\"Not implemented.\")\n }\n\n /**\n * Editor string value from head to cursor.\n * Returns null if selection type is range not cursor.\n */\n getBeforeCursor(): ?string {\n throw new Error(\"Not implemented.\")\n }\n\n /**\n * Emit a move event, which moves active dropdown element.\n * Child class must call this method at proper timing with proper parameter.\n *\n * @see {@link Textarea} for live example.\n */\n emitMoveEvent(code: \"UP\" | \"DOWN\"): CustomEvent {\n const moveEvent = createCustomEvent(\"move\", {\n cancelable: true,\n detail: {\n code: code,\n },\n })\n this.emit(\"move\", moveEvent)\n return moveEvent\n }\n\n /**\n * Emit a enter event, which selects current search result.\n * Child class must call this method at proper timing.\n *\n * @see {@link Textarea} for live example.\n */\n emitEnterEvent(): CustomEvent {\n const enterEvent = createCustomEvent(\"enter\", { cancelable: true })\n this.emit(\"enter\", enterEvent)\n return enterEvent\n }\n\n /**\n * Emit a change event, which triggers auto completion.\n * Child class must call this method at proper timing.\n *\n * @see {@link Textarea} for live example.\n */\n emitChangeEvent(): CustomEvent {\n const changeEvent = createCustomEvent(\"change\", {\n detail: {\n beforeCursor: this.getBeforeCursor(),\n },\n })\n this.emit(\"change\", changeEvent)\n return changeEvent\n }\n\n /**\n * Emit a esc event, which hides dropdown element.\n * Child class must call this method at proper timing.\n *\n * @see {@link Textarea} for live example.\n */\n emitEscEvent(): CustomEvent {\n const escEvent = createCustomEvent(\"esc\", { cancelable: true })\n this.emit(\"esc\", escEvent)\n return escEvent\n }\n\n /**\n * Helper method for parsing KeyboardEvent.\n *\n * @see {@link Textarea} for live example.\n */\n getCode(e: KeyboardEvent): KeyCode {\n return e.keyCode === 9\n ? \"ENTER\" // tab\n : e.keyCode === 13\n ? \"ENTER\" // enter\n : e.keyCode === 27\n ? \"ESC\" // esc\n : e.keyCode === 38\n ? \"UP\" // up\n : e.keyCode === 40\n ? \"DOWN\" // down\n : e.keyCode === 78 && e.ctrlKey\n ? \"DOWN\" // ctrl-n\n : e.keyCode === 80 && e.ctrlKey\n ? \"UP\" // ctrl-p\n : \"OTHER\"\n }\n}\n"]}