From c856bc88c1fd51bfe2ee4ebbb05ddc06be7f7ee8 Mon Sep 17 00:00:00 2001 From: kennethanCeyer Date: Fri, 6 Apr 2018 19:31:07 +0900 Subject: [PATCH] WIP: update dist, typedoc files --- dist/formulize.umd.js | 51 +++--- dist/formulize.umd.js.map | 2 +- dist/types/ui/ui.dom.d.ts | 1 + dist/types/ui/ui.element.helper.d.ts | 2 +- docs/assets/js/search.js | 2 +- docs/classes/formulizekeyhelper.html | 26 +-- docs/classes/formulizetokenhelper.html | 12 +- docs/classes/methodbase.html | 28 +-- docs/classes/stringhelper.html | 4 +- docs/classes/ui.html | 142 ++++++++------- docs/classes/uianalyzer.html | 66 ++++--- docs/classes/uibase.html | 142 ++++++++------- docs/classes/uidom.html | 63 +++++-- docs/classes/uielementhelper.html | 24 +-- docs/classes/uihelper.html | 8 +- docs/classes/uihook.html | 140 +++++++++------ docs/classes/uimanager.html | 146 +++++++++------- docs/classes/uipipe.html | 70 +++++--- docs/enums/key.html | 228 ++++++++++++------------- docs/globals.html | 30 ++-- docs/index.html | 30 ++-- docs/interfaces/behavior.html | 4 +- docs/interfaces/elementposition.html | 8 +- docs/interfaces/formulizefunction.html | 2 +- docs/interfaces/formulizeoptions.html | 6 +- docs/interfaces/optionpipe.html | 4 +- docs/interfaces/optiontext.html | 6 +- docs/interfaces/position.html | 4 +- 28 files changed, 725 insertions(+), 526 deletions(-) diff --git a/dist/formulize.umd.js b/dist/formulize.umd.js index cc8bf1f..15b0bc4 100644 --- a/dist/formulize.umd.js +++ b/dist/formulize.umd.js @@ -1397,6 +1397,15 @@ UIElementHelper.setUnitValue(id, unitElem[0], value); return unitElem[0]; }; + UIElementHelper.getUnitDecimalElement = function (id, side, value) { + return $("" + (value || '') + "")[0]; + }; + UIElementHelper.getOperatorElement = function (id, value) { + return $("
" + (value || '').toLowerCase() + "
")[0]; + }; + UIElementHelper.getTextBoxElement = function (id) { + return $("")[0]; + }; UIElementHelper.setUnitValue = function (id, elem, value) { if (value === undefined) return; @@ -1410,19 +1419,10 @@ var suffix = $(UIElementHelper.getUnitDecimalElement(id, 'suffix', "." + split[1])); suffix.appendTo($(elem)); }; - UIElementHelper.getUnitDecimalElement = function (id, side, value) { - return $("" + value + "")[0]; - }; - UIElementHelper.getOperatorElement = function (id, value) { - return $("
" + value.toLowerCase() + "
")[0]; - }; - UIElementHelper.getTextBoxElement = function (id) { - return $("")[0]; - }; UIElementHelper.isElementType = function (id, type, elem) { - if (!elem) - return; - return $(elem).hasClass(id + "-" + type); + return elem + ? $(elem).hasClass(id + "-" + type) + : false; }; UIElementHelper.isDrag = function (id, elem) { return UIElementHelper.isElementType(id, 'drag', elem); @@ -1550,6 +1550,20 @@ .find(":not(\"." + this.options.id + "-cursor\")") .remove(); }; + UIDom.prototype.updateStatus = function (valid) { + if (valid === void 0) { valid = false; } + var statusText = valid + ? this.options.text.pass + : this.options.text.error; + var statusBaseClasses = ['good', 'error']; + var statusClasses = valid + ? statusBaseClasses + : statusBaseClasses.reverse(); + this.statusBox + .text(statusText) + .addClass(this.options.id + "-alert-" + statusClasses[0]) + .removeClass(this.options.id + "-alert-" + statusClasses[1]); + }; return UIDom; }()); @@ -1955,18 +1969,7 @@ if (!data) return; var isValid = valid(data); - if (isValid) { - this.statusBox - .text(this.options.text.pass) - .addClass(this.options.id + "-alert-good") - .removeClass(this.options.id + "-alert-error"); - } - else { - this.statusBox - .text(this.options.text.error) - .removeClass(this.options.id + "-alert-good") - .addClass(this.options.id + "-alert-error"); - } + this.updateStatus(isValid); if (extractor) extractor(isValid); return isValid; diff --git a/dist/formulize.umd.js.map b/dist/formulize.umd.js.map index 704355c..7da7a19 100644 --- a/dist/formulize.umd.js.map +++ b/dist/formulize.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"formulize.umd.js","sources":["../src/option.value.ts","../src/key.enum.ts","../src/values.ts","../src/key.helper.ts","../node_modules/metric-parser/dist/metric.parser.es5.js","../src/string.helper.ts","../src/token.helper.ts","../src/ui/ui.element.helper.ts","../src/ui/ui.helper.ts","../src/ui/ui.dom.ts","../src/ui/ui.analyzer.ts","../src/ui/ui.pipe.ts","../src/ui/ui.manager.ts","../src/ui/ui.hook.ts","../src/ui/ui.base.ts","../src/ui/ui.ts","../src/formulize.plugin.method.ts","../src/formulize.plugin.ts","../src/global.ts","../src/formulize.ts"],"sourcesContent":["import { FormulizeOptions } from './formulize.interface';\r\n\r\nexport const defaultOptions: FormulizeOptions = {\r\n id: 'formulize',\r\n text: {\r\n formula: 'formula',\r\n error: 'error',\r\n pass: 'passed'\r\n }\r\n};\r\n","export enum Key {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Ctrl = 17,\r\n Alt = 18,\r\n PauseBreak = 19,\r\n CapsLock = 20,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n\r\n LeftArrow = 37,\r\n UpArrow = 38,\r\n RightArrow = 39,\r\n DownArrow = 40,\r\n\r\n Insert = 45,\r\n Delete = 46,\r\n\r\n Zero = 48,\r\n ClosedParen = Zero,\r\n One = 49,\r\n ExclamationMark = One,\r\n Two = 50,\r\n AtSign = Two,\r\n Three = 51,\r\n PoundSign = Three,\r\n Hash = PoundSign,\r\n Four = 52,\r\n DollarSign = Four,\r\n Five = 53,\r\n PercentSign = Five,\r\n Six = 54,\r\n Caret = Six,\r\n Hat = Caret,\r\n Seven = 55,\r\n Ampersand = Seven,\r\n Eight = 56,\r\n Star = Eight,\r\n Asterik = Star,\r\n Nine = 57,\r\n OpenParen = Nine,\r\n\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n E = 69,\r\n F = 70,\r\n G = 71,\r\n H = 72,\r\n I = 73,\r\n J = 74,\r\n K = 75,\r\n L = 76,\r\n M = 77,\r\n N = 78,\r\n O = 79,\r\n P = 80,\r\n Q = 81,\r\n R = 82,\r\n S = 83,\r\n T = 84,\r\n U = 85,\r\n V = 86,\r\n W = 87,\r\n X = 88,\r\n Y = 89,\r\n Z = 90,\r\n\r\n LeftWindowKey = 91,\r\n RightWindowKey = 92,\r\n SelectKey = 93,\r\n\r\n Numpad0 = 96,\r\n Numpad1 = 97,\r\n Numpad2 = 98,\r\n Numpad3 = 99,\r\n Numpad4 = 100,\r\n Numpad5 = 101,\r\n Numpad6 = 102,\r\n Numpad7 = 103,\r\n Numpad8 = 104,\r\n Numpad9 = 105,\r\n\r\n Multiply = 106,\r\n Add = 107,\r\n Subtract = 109,\r\n DecimalPoint = 110,\r\n Divide = 111,\r\n\r\n F1 = 112,\r\n F2 = 113,\r\n F3 = 114,\r\n F4 = 115,\r\n F5 = 116,\r\n F6 = 117,\r\n F7 = 118,\r\n F8 = 119,\r\n F9 = 120,\r\n F10 = 121,\r\n F11 = 122,\r\n F12 = 123,\r\n\r\n NumLock = 144,\r\n ScrollLock = 145,\r\n\r\n SemiColon = 186,\r\n Equals = 187,\r\n Comma = 188,\r\n Dash = 189,\r\n Period = 190,\r\n UnderScore = Dash,\r\n PlusSign = Equals,\r\n ForwardSlash = 191,\r\n Tilde = 192,\r\n GraveAccent = Tilde,\r\n\r\n OpenBracket = 219,\r\n ClosedBracket = 221,\r\n Quote = 222\r\n}","export const specialCharacters = [')', '!', '@', '#', '$', '%', '^', '&', 'x', '('];\r\nexport const supportedCharacters = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'x', '*', '/', '.', '+', '-', '%', '^', '(', ')'];\r\n","import { Key } from './key.enum';\r\nimport { specialCharacters } from './values';\r\n\r\nexport class FormulizeKeyHelper {\r\n public static isReload(keyCode: number, pressedCtrl: boolean): boolean {\r\n return keyCode === Key.F5 || pressedCtrl && keyCode === Key.R;\r\n }\r\n\r\n public static isSelectAll(keyCode: number, pressedCtrl: boolean): boolean {\r\n return keyCode === Key.A && pressedCtrl;\r\n }\r\n\r\n public static isBackspace(keyCode: number): boolean {\r\n return keyCode === Key.Backspace;\r\n }\r\n\r\n public static isDelete(keyCode: number): boolean {\r\n return keyCode === Key.Delete;\r\n }\r\n\r\n public static isLeft(keyCode: number): boolean {\r\n return keyCode === Key.LeftArrow;\r\n }\r\n\r\n public static isUp(keyCode: number): boolean {\r\n return keyCode === Key.UpArrow;\r\n }\r\n\r\n public static isRight(keyCode: number): boolean {\r\n return keyCode === Key.RightArrow;\r\n }\r\n\r\n public static isDown(keyCode: number): boolean {\r\n return keyCode === Key.DownArrow;\r\n }\r\n\r\n public static isHome(keyCode: number): boolean {\r\n return keyCode === Key.Home;\r\n }\r\n\r\n public static isEnd(keyCode: number): boolean {\r\n return keyCode === Key.End;\r\n }\r\n\r\n public static doReload(): void {\r\n location.reload();\r\n }\r\n\r\n public static doAction(action: () => T): () => T {\r\n return action;\r\n }\r\n\r\n public static getValue(keyCode: number, pressedShift: boolean = false): string {\r\n if (keyCode === Key.Multiply)\r\n return 'x';\r\n\r\n if (((keyCode === Key.PlusSign || keyCode === 61) && pressedShift) || keyCode === Key.Add)\r\n return '+';\r\n\r\n if (keyCode === Key.Dash || keyCode === 173 || keyCode === Key.Subtract)\r\n return '-';\r\n\r\n if (keyCode === Key.Period || keyCode === Key.DecimalPoint)\r\n return '.';\r\n\r\n if (keyCode === Key.ForwardSlash || keyCode === Key.Divide)\r\n return '/';\r\n\r\n const numberKeyCode = keyCode >= Key.Numpad0 && keyCode <= Key.Numpad9\r\n ? keyCode - (Key.Numpad0 - Key.Zero)\r\n : keyCode;\r\n\r\n if (numberKeyCode >= Key.Zero && numberKeyCode <= Key.Nine) {\r\n const numberValue = String.fromCharCode(numberKeyCode);\r\n return pressedShift\r\n ? specialCharacters[Number(numberValue)]\r\n : numberValue;\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n\r\nvar Token;\r\n(function (Token) {\r\n var Type;\r\n (function (Type) {\r\n Type[Type[\"Unknown\"] = 0] = \"Unknown\";\r\n Type[Type[\"Value\"] = 1] = \"Value\";\r\n Type[Type[\"Dot\"] = 2] = \"Dot\";\r\n Type[Type[\"Operator\"] = 3] = \"Operator\";\r\n Type[Type[\"Bracket\"] = 4] = \"Bracket\";\r\n Type[Type[\"Function\"] = 5] = \"Function\";\r\n Type[Type[\"WhiteSpace\"] = 6] = \"WhiteSpace\";\r\n Type[Type[\"CompareToken\"] = 7] = \"CompareToken\";\r\n })(Type = Token.Type || (Token.Type = {}));\r\n var SubType;\r\n (function (SubType) {\r\n SubType[SubType[\"Group\"] = 0] = \"Group\";\r\n })(SubType = Token.SubType || (Token.SubType = {}));\r\n Token.literal = {\r\n Addition: '+',\r\n Subtraction: '-',\r\n Multiplication: '*',\r\n MultiplicationLiteral: 'x',\r\n Division: '/',\r\n Mod: '%',\r\n Pow: '^',\r\n BracketOpen: '(',\r\n BracketClose: ')',\r\n Dot: '.'\r\n };\r\n Token.value = {\r\n Addition: {\r\n symbols: [Token.literal.Addition],\r\n alias: Token.literal.Addition\r\n },\r\n Subtraction: {\r\n symbols: [Token.literal.Subtraction],\r\n alias: Token.literal.Subtraction\r\n },\r\n Multiplication: {\r\n symbols: [Token.literal.Multiplication, Token.literal.MultiplicationLiteral],\r\n alias: Token.literal.Multiplication\r\n },\r\n Division: {\r\n symbols: [Token.literal.Division],\r\n alias: Token.literal.Division\r\n },\r\n Mod: {\r\n symbols: [Token.literal.Mod],\r\n alias: Token.literal.Mod\r\n },\r\n Pow: {\r\n symbols: [Token.literal.Pow],\r\n alias: Token.literal.Pow\r\n },\r\n BracketOpen: {\r\n symbols: [Token.literal.BracketOpen],\r\n alias: Token.literal.BracketOpen\r\n },\r\n BracketClose: {\r\n symbols: [Token.literal.BracketClose],\r\n alias: Token.literal.BracketOpen\r\n },\r\n Dot: {\r\n symbols: [Token.literal.Dot],\r\n alias: Token.literal.Dot\r\n }\r\n };\r\n Token.addition = [Token.literal.Addition];\r\n Token.subtraction = [Token.literal.Subtraction];\r\n Token.multiplication = [Token.literal.Multiplication, Token.literal.MultiplicationLiteral];\r\n Token.division = [Token.literal.Division];\r\n Token.mod = [Token.literal.Mod];\r\n Token.pow = [Token.literal.Pow];\r\n Token.bracketOpen = Token.literal.BracketOpen;\r\n Token.bracketClose = Token.literal.BracketClose;\r\n Token.bracket = [Token.bracketOpen, Token.bracketClose];\r\n Token.precedence = Token.addition.concat(Token.subtraction, Token.multiplication, Token.division, Token.pow, Token.mod, Token.bracket);\r\n Token.operators = Token.addition.concat(Token.subtraction, Token.multiplication, Token.division, Token.mod, Token.pow);\r\n Token.symbols = Token.operators.concat(Token.bracket);\r\n Token.whiteSpace = [\r\n ' ',\r\n '',\r\n null,\r\n undefined\r\n ];\r\n})(Token || (Token = {}));\r\n\r\nvar TokenTypeHelper = /** @class */ (function () {\r\n function TokenTypeHelper() {\r\n }\r\n TokenTypeHelper.isNumeric = function (value) {\r\n return (/^[\\+\\-]?\\d*\\.?\\d+(?:[Ee][\\+\\-]?\\d+)?$/).test(String(value));\r\n };\r\n TokenTypeHelper.isArray = function (token) {\r\n return Array.isArray(token);\r\n };\r\n TokenTypeHelper.isString = function (token) {\r\n return typeof token === 'string';\r\n };\r\n TokenTypeHelper.isObject = function (token) {\r\n return typeof token === 'object';\r\n };\r\n TokenTypeHelper.isValue = function (token) {\r\n return TokenTypeHelper.isObject(token) || TokenTypeHelper.isNumeric(token);\r\n };\r\n return TokenTypeHelper;\r\n}());\r\n\r\nvar TokenHelperBase = /** @class */ (function (_super) {\r\n __extends(TokenHelperBase, _super);\r\n function TokenHelperBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TokenHelperBase.isToken = function (token) {\r\n var validators = [\r\n TokenHelperBase.isNumeric,\r\n TokenHelperBase.isSymbol,\r\n TokenHelperBase.isObject\r\n ];\r\n return token && validators.some(function (validator) { return validator(token); });\r\n };\r\n TokenHelperBase.isUnkown = function (token) {\r\n return token === undefined || token === null;\r\n };\r\n TokenHelperBase.isLineEscape = function (token) {\r\n return token === '\\n';\r\n };\r\n TokenHelperBase.isWhiteSpace = function (token) {\r\n return Token.whiteSpace.includes(String(token));\r\n };\r\n TokenHelperBase.isDot = function (token) {\r\n return token === Token.literal.Dot;\r\n };\r\n TokenHelperBase.isAddition = function (token) {\r\n return Token.addition.includes(token);\r\n };\r\n TokenHelperBase.isSubtraction = function (token) {\r\n return Token.subtraction.includes(token);\r\n };\r\n TokenHelperBase.isMultiplication = function (token) {\r\n return Token.multiplication.includes(token);\r\n };\r\n TokenHelperBase.isDivision = function (token) {\r\n return Token.division.includes(token);\r\n };\r\n TokenHelperBase.isMod = function (token) {\r\n return Token.mod.includes(token);\r\n };\r\n TokenHelperBase.isPow = function (token) {\r\n return Token.pow.includes(token);\r\n };\r\n TokenHelperBase.isBracket = function (token) {\r\n return Token.bracket.includes(token);\r\n };\r\n TokenHelperBase.isBracketOpen = function (token) {\r\n return token === Token.bracketOpen;\r\n };\r\n TokenHelperBase.isBracketClose = function (token) {\r\n return token === Token.bracketClose;\r\n };\r\n TokenHelperBase.isSymbol = function (token) {\r\n return Token.symbols.includes(String(token));\r\n };\r\n TokenHelperBase.isOperator = function (token) {\r\n return Token.operators.includes(String(token));\r\n };\r\n return TokenHelperBase;\r\n}(TokenTypeHelper));\r\n\r\nvar TokenHelper = /** @class */ (function (_super) {\r\n __extends(TokenHelper, _super);\r\n function TokenHelper() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TokenHelper.isHigher = function (source, target) {\r\n return TokenHelper.getPrecedence(source) - TokenHelper.getPrecedence(target) > 0;\r\n };\r\n TokenHelper.induceType = function (token) {\r\n var typeInducers = [\r\n { predicate: TokenHelper.isUnkown, type: Token.Type.Unknown },\r\n { predicate: TokenHelper.isWhiteSpace, type: Token.Type.WhiteSpace },\r\n { predicate: TokenHelper.isOperator, type: Token.Type.Operator },\r\n { predicate: TokenHelper.isBracket, type: Token.Type.Bracket },\r\n { predicate: TokenHelper.isDot, type: Token.Type.Dot },\r\n { predicate: TokenHelper.isValue, type: Token.Type.Value }\r\n ];\r\n var extractedToken = typeInducers.find(function (inducer) { return inducer.predicate(token); });\r\n return extractedToken\r\n ? extractedToken.type\r\n : Token.Type.Unknown;\r\n };\r\n TokenHelper.getPrecedence = function (token) {\r\n return [\r\n [TokenHelper.isAddition, TokenHelper.isSubtraction],\r\n [TokenHelper.isMultiplication, TokenHelper.isDivision],\r\n [TokenHelper.isMod, TokenHelper.isPow],\r\n [TokenHelper.isBracket]\r\n ].findIndex(function (predicate) { return predicate.some(function (func) { return func(token); }); });\r\n };\r\n return TokenHelper;\r\n}(TokenHelperBase));\r\n\r\nvar BuilderHelper = /** @class */ (function () {\r\n function BuilderHelper() {\r\n }\r\n BuilderHelper.isOperand = function (data) {\r\n return !!data.value;\r\n };\r\n BuilderHelper.isTree = function (value) {\r\n return TokenHelper.isObject(value) && !TokenHelper.isArray(value);\r\n };\r\n BuilderHelper.needParse = function (value) {\r\n return !BuilderHelper.isTree(value);\r\n };\r\n BuilderHelper.needUnparse = function (value) {\r\n return BuilderHelper.isTree(value);\r\n };\r\n return BuilderHelper;\r\n}());\r\n\r\nvar StringHelper = /** @class */ (function () {\r\n function StringHelper() {\r\n }\r\n StringHelper.format = function (value) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var targetValue = value;\r\n if (args)\r\n args.forEach(function (match, index) { return targetValue = StringHelper.replaceArg(index, targetValue, match); });\r\n return targetValue;\r\n };\r\n StringHelper.replaceArg = function (match, target, value) {\r\n return target.replace(new RegExp(\"\\\\{\" + match + \"\\\\}\", 'g'), value);\r\n };\r\n return StringHelper;\r\n}());\r\n\r\nvar success = 0;\r\nvar ParserError = /** @class */ (function (_super) {\r\n __extends(ParserError, _super);\r\n function ParserError(error) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var _this = _super.call(this) || this;\r\n _this.error = error;\r\n Object.setPrototypeOf(_this, ParserError.prototype);\r\n if (args.length)\r\n _this.error = __assign({}, _this.error, { text: StringHelper.format.apply(StringHelper, [_this.error.text].concat(args)) });\r\n _this.code = _this.error.code;\r\n _this.text = _this.error.text;\r\n _this.message = _this.text;\r\n return _this;\r\n }\r\n ParserError.prototype.withStack = function (stack) {\r\n this.parserStack = stack;\r\n return this;\r\n };\r\n ParserError.defaultParserStack = { line: 0, col: 0 };\r\n return ParserError;\r\n}(Error));\r\n\r\nvar Packer = /** @class */ (function () {\r\n function Packer() {\r\n }\r\n Packer.makeData = function (data, code) {\r\n if (code === void 0) { code = success; }\r\n return { code: code, data: data };\r\n };\r\n Packer.makeError = function (error) {\r\n return __assign({}, this.makeData(error.text, error.code), { stack: error.parserStack || __assign({}, ParserError.defaultParserStack) });\r\n };\r\n return Packer;\r\n}());\r\n\r\n/* tslint:disable:max-line-length */\r\nvar BuilderError;\r\n(function (BuilderError) {\r\n BuilderError.id = 0x0300;\r\n BuilderError.emptyData = { code: 0x0300, text: 'data is empty' };\r\n})(BuilderError || (BuilderError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\n/* tslint:disable:max-line-length */\r\nvar TokenError;\r\n(function (TokenError) {\r\n TokenError.id = 0x0100;\r\n TokenError.invalidToken = { code: 0x0100, text: '`{0}` token is invalid token type' };\r\n TokenError.invalidTwoOperator = { code: 0x0101, text: 'two operators `{0}`, `{1}` can not come together' };\r\n TokenError.invalidNonNumericValue = { code: 0x0102, text: 'non-numeric token `{0}` can not be consecutive' };\r\n TokenError.missingOperator = { code: 0x0112, text: 'the operator is missing after `{0}`' };\r\n TokenError.missingOpenBracket = { code: 0x0120, text: 'missing open bracket, you cannot close the bracket' };\r\n TokenError.missingCloseBracket = { code: 0x0121, text: 'missing close bracket, the bracket must be closed' };\r\n TokenError.missingValueBefore = { code: 0x0122, text: 'missing value before `{0}` token' };\r\n TokenError.missingValueAfter = { code: 0x0123, text: 'missing value after `{0}` token' };\r\n TokenError.emptyToken = { code: 0x0150, text: 'token is empty' };\r\n})(TokenError || (TokenError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\nvar AbstractSyntaxTreeNode = /** @class */ (function () {\r\n function AbstractSyntaxTreeNode(value) {\r\n if (value)\r\n this.value = value;\r\n }\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"value\", {\r\n get: function () {\r\n return this._value;\r\n },\r\n set: function (value) {\r\n this._value = TokenHelper.isNumeric(value)\r\n ? Number(value)\r\n : value;\r\n this._type = TokenHelper.induceType(this.value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"type\", {\r\n get: function () {\r\n return this._type;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"subType\", {\r\n get: function () {\r\n return this._subType;\r\n },\r\n set: function (value) {\r\n this._subType = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"parent\", {\r\n get: function () {\r\n return this._parent;\r\n },\r\n set: function (value) {\r\n this._parent = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"leftNode\", {\r\n get: function () {\r\n return this._leftNode;\r\n },\r\n set: function (node) {\r\n if (!node)\r\n return;\r\n this._leftNode = node;\r\n node.parent = this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"rightNode\", {\r\n get: function () {\r\n return this._rightNode;\r\n },\r\n set: function (node) {\r\n if (!node)\r\n return;\r\n this._rightNode = node;\r\n node.parent = this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbstractSyntaxTreeNode;\r\n}());\r\n\r\nvar AbstractSyntaxTreeBase = /** @class */ (function (_super) {\r\n __extends(AbstractSyntaxTreeBase, _super);\r\n function AbstractSyntaxTreeBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AbstractSyntaxTreeBase.prototype.findRoot = function () {\r\n if (this.isRoot())\r\n return this.value !== undefined || !this.leftNode\r\n ? this\r\n : this.leftNode;\r\n return this._parent.findRoot();\r\n };\r\n AbstractSyntaxTreeBase.prototype.isRoot = function () {\r\n return !this._parent;\r\n };\r\n AbstractSyntaxTreeBase.prototype.isValid = function () {\r\n return this.value && (!this.leftNode && !this.rightNode) || (!!this.leftNode && !!this.rightNode);\r\n };\r\n AbstractSyntaxTreeBase.prototype.hasOpenBracket = function () {\r\n if (TokenHelper.isBracketOpen(this.value))\r\n return true;\r\n var leftNodeHasOpenBracket = this.leftNode ? this.leftNode.hasOpenBracket() : false;\r\n var rightNodeHasOpenBracket = this.rightNode ? this.rightNode.hasOpenBracket() : false;\r\n return leftNodeHasOpenBracket || rightNodeHasOpenBracket;\r\n };\r\n AbstractSyntaxTreeBase.prototype.findOpenedBracket = function () {\r\n if (this.isRoot())\r\n return undefined;\r\n if (TokenHelper.isBracketOpen(this._value))\r\n return this;\r\n return this._parent.findOpenedBracket();\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeRootBracket = function () {\r\n var rootNode = this.findRoot();\r\n if (TokenHelper.isBracketOpen(rootNode.value))\r\n rootNode.leftNode.removeParent();\r\n return this === rootNode\r\n ? rootNode.leftNode\r\n : this;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeClosestBracket = function () {\r\n var node = this.findOpenedBracket();\r\n if (!node)\r\n throw new ParserError(TokenError.missingOpenBracket);\r\n var targetNode = node.leftNode;\r\n targetNode.subType = Token.SubType.Group;\r\n if (!node.parent) {\r\n targetNode.removeParent();\r\n return targetNode;\r\n }\r\n if (node.parent.leftNode === node)\r\n node.parent.leftNode = targetNode;\r\n else\r\n node.parent.rightNode = targetNode;\r\n return node.parent;\r\n };\r\n AbstractSyntaxTreeBase.prototype.climbUp = function (token) {\r\n return this.isClimbTop(token)\r\n ? this\r\n : this._parent.climbUp(token);\r\n };\r\n AbstractSyntaxTreeBase.prototype.isClimbTop = function (token) {\r\n return this.isTokenHighest(token) ||\r\n !this.parent ||\r\n TokenHelper.isBracketOpen(this.value);\r\n };\r\n AbstractSyntaxTreeBase.prototype.isTokenHighest = function (token) {\r\n return TokenHelper.isHigher(token, this.value) && this.subType !== Token.SubType.Group;\r\n };\r\n AbstractSyntaxTreeBase.prototype.createChildNode = function (value) {\r\n var node = new this.constructor(value);\r\n node.parent = this;\r\n return node;\r\n };\r\n AbstractSyntaxTreeBase.prototype.createParentNode = function (value) {\r\n var node = new this.constructor(value);\r\n this.parent = node;\r\n return node;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertOperatorNode = function (value) {\r\n var rootNode = this.climbUp(value);\r\n if (TokenHelper.isBracketOpen(rootNode.value))\r\n return rootNode.insertJointNodeToLeft(value);\r\n if (this.needJointRight(rootNode, value))\r\n return rootNode.insertJointNodeToRight(value);\r\n var newNode = rootNode.createParentNode(value);\r\n newNode.leftNode = rootNode;\r\n return newNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.needJointRight = function (rootNode, value) {\r\n return rootNode.isTokenHighest(value) && rootNode.parent || this === rootNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertNode = function (value) {\r\n if (TokenHelper.isSymbol(value))\r\n if (!this.value) {\r\n this.value = value;\r\n return this;\r\n }\r\n if (TokenHelper.isOperator(value))\r\n return this.insertOperatorNode(value);\r\n var valueNode = this.createChildNode(value);\r\n if (!this.leftNode)\r\n this.leftNode = valueNode;\r\n else\r\n this.rightNode = valueNode;\r\n return valueNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertJointNodeToLeft = function (value) {\r\n var jointNode = this.createChildNode(value);\r\n jointNode.leftNode = this.leftNode;\r\n jointNode.rightNode = this.rightNode;\r\n this.leftNode = jointNode;\r\n return jointNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertJointNodeToRight = function (value) {\r\n var jointNode = this.createChildNode(value);\r\n jointNode.leftNode = this.rightNode;\r\n this.rightNode = jointNode;\r\n return jointNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeLeftNode = function () {\r\n this._leftNode.removeParent();\r\n this._leftNode = undefined;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeRightNode = function () {\r\n this._rightNode.removeParent();\r\n this._rightNode = undefined;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeParent = function () {\r\n this._parent = undefined;\r\n };\r\n return AbstractSyntaxTreeBase;\r\n}(AbstractSyntaxTreeNode));\r\n\r\nvar AbstractSyntaxTree = /** @class */ (function (_super) {\r\n __extends(AbstractSyntaxTree, _super);\r\n function AbstractSyntaxTree() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(AbstractSyntaxTree.prototype, \"expression\", {\r\n get: function () {\r\n return this.makeExpression();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AbstractSyntaxTree.prototype.getParentOperator = function () {\r\n if (this.isRoot())\r\n return undefined;\r\n return this.parent.findOperator();\r\n };\r\n AbstractSyntaxTree.prototype.findOperator = function () {\r\n if (this.type === Token.Type.Operator)\r\n return this;\r\n return this.parent.findOperator();\r\n };\r\n AbstractSyntaxTree.prototype.makeExpression = function () {\r\n return this.type === Token.Type.Operator\r\n ? this.makeOperatorExpression()\r\n : this.makeValueExpression();\r\n };\r\n AbstractSyntaxTree.prototype.makeOperatorExpression = function () {\r\n var expression = (this.leftNode ? this.leftNode.expression : []).concat([\r\n this.value\r\n ], this.rightNode ? this.rightNode.expression : []);\r\n var parentOperator = this.getParentOperator();\r\n return parentOperator && TokenHelper.isHigher(parentOperator.value, this.value)\r\n ? [Token.literal.BracketOpen].concat(expression, [Token.literal.BracketClose]) : expression;\r\n };\r\n AbstractSyntaxTree.prototype.makeValueExpression = function () {\r\n return [this.value];\r\n };\r\n return AbstractSyntaxTree;\r\n}(AbstractSyntaxTreeBase));\r\n\r\nvar TokenValidateLevel;\r\n(function (TokenValidateLevel) {\r\n TokenValidateLevel[TokenValidateLevel[\"Pass\"] = 0] = \"Pass\";\r\n TokenValidateLevel[TokenValidateLevel[\"Escape\"] = 1] = \"Escape\";\r\n TokenValidateLevel[TokenValidateLevel[\"Fatal\"] = 2] = \"Fatal\";\r\n})(TokenValidateLevel || (TokenValidateLevel = {}));\r\nvar TokenValidator = /** @class */ (function () {\r\n function TokenValidator() {\r\n }\r\n TokenValidator.validateToken = function (token) {\r\n var level = TokenValidator.extractTokenLevel(token);\r\n if (level === TokenValidateLevel.Fatal)\r\n return new ParserError(TokenError.invalidToken, token);\r\n };\r\n TokenValidator.validateValueToken = function (token, prevToken) {\r\n if (!prevToken)\r\n return undefined;\r\n if (TokenHelper.isValue(prevToken))\r\n return new ParserError(TokenError.missingOperator, prevToken);\r\n if (!TokenHelper.isBracketOpen(prevToken) && !TokenHelper.isOperator(prevToken))\r\n return new ParserError(TokenError.missingOperator, prevToken);\r\n };\r\n TokenValidator.extractTokenLevel = function (token) {\r\n var levelExtractors = [\r\n { predicate: TokenHelper.isUnkown, level: TokenValidateLevel.Fatal },\r\n { predicate: TokenHelper.isToken, level: TokenValidateLevel.Pass }\r\n ];\r\n var extractedLevel = levelExtractors.find(function (extractor) { return extractor.predicate(token); });\r\n return extractedLevel\r\n ? extractedLevel.level\r\n : TokenValidateLevel.Fatal;\r\n };\r\n return TokenValidator;\r\n}());\r\n\r\nvar TokenEnumerable = /** @class */ (function () {\r\n function TokenEnumerable(token) {\r\n this.token = token;\r\n this.tokenStack = [];\r\n this.cursor = 0;\r\n this._nextStack = {\r\n line: 0,\r\n col: 0\r\n };\r\n }\r\n Object.defineProperty(TokenEnumerable.prototype, \"stack\", {\r\n get: function () {\r\n return this._stack || this._nextStack;\r\n },\r\n set: function (value) {\r\n this._stack = this._nextStack;\r\n this._nextStack = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TokenEnumerable.prototype.rewind = function () {\r\n this.cursor = 0;\r\n this.currentToken = undefined;\r\n this._stack = undefined;\r\n this._nextStack = {\r\n col: 0,\r\n line: 0\r\n };\r\n this.tokenStack = [];\r\n };\r\n TokenEnumerable.prototype.calculateStack = function (token) {\r\n if (TokenHelper.isLineEscape(token)) {\r\n this.stack = {\r\n line: this._nextStack.line + 1,\r\n col: 0\r\n };\r\n return;\r\n }\r\n this.stack = {\r\n line: this._nextStack.line,\r\n col: this._nextStack.col + 1\r\n };\r\n };\r\n TokenEnumerable.prototype.finalizeStack = function () {\r\n this.stack = undefined;\r\n };\r\n TokenEnumerable.prototype.addStack = function (token) {\r\n this.tokenStack.push(token);\r\n };\r\n TokenEnumerable.prototype.popStack = function () {\r\n return this.tokenStack.length\r\n ? this.tokenStack[this.tokenStack.length - 1]\r\n : undefined;\r\n };\r\n TokenEnumerable.prototype.next = function () {\r\n var tokenStack = [];\r\n if (this.cursor >= this.token.length)\r\n return undefined;\r\n do {\r\n this.currentToken = this.findToken();\r\n if (!TokenHelper.isUnkown(this.currentToken))\r\n tokenStack.push(this.currentToken);\r\n } while (this.proceedNext());\r\n var token = this.makeToken(tokenStack);\r\n var error = TokenValidator.validateToken(token);\r\n if (error)\r\n throw error;\r\n return token;\r\n };\r\n TokenEnumerable.prototype.proceedNext = function () {\r\n var token = this.currentToken;\r\n var nextToken = this.token[this.cursor];\r\n return this.isSequentialValue(token, nextToken);\r\n };\r\n TokenEnumerable.prototype.isSequentialValue = function (token, nextToken) {\r\n var tokenType = TokenHelper.induceType(token);\r\n var nextTokenType = TokenHelper.induceType(nextToken);\r\n return tokenType === Token.Type.Value && TokenHelper.isNumeric(token) && tokenType === nextTokenType ||\r\n tokenType === Token.Type.Value && TokenHelper.isNumeric(token) && nextTokenType === Token.Type.Dot ||\r\n tokenType === Token.Type.Dot && TokenHelper.isNumeric(nextToken) && nextTokenType === Token.Type.Value;\r\n };\r\n TokenEnumerable.prototype.findToken = function () {\r\n while (this.cursor < this.token.length) {\r\n var token = this.getToken();\r\n this.cursor += 1;\r\n this.calculateStack(token);\r\n if (!TokenHelper.isWhiteSpace(token))\r\n return token;\r\n }\r\n };\r\n TokenEnumerable.prototype.getToken = function () {\r\n var token = this.token[this.cursor];\r\n return this.getAliasToken(token);\r\n };\r\n TokenEnumerable.prototype.getAliasToken = function (token) {\r\n if (!TokenHelper.isOperator(token))\r\n return token;\r\n return Object.keys(Token.value)\r\n .map(function (operatorType) { return Token.value[operatorType].symbols.includes(token)\r\n ? Token.value[operatorType].alias\r\n : undefined; })\r\n .find(function (alias) { return alias !== undefined; }) || token;\r\n };\r\n TokenEnumerable.prototype.isTokenArrayNumeric = function (tokens) {\r\n return tokens.every(function (token) { return TokenHelper.isNumeric(token) || TokenHelper.isDot(token); });\r\n };\r\n TokenEnumerable.prototype.makeToken = function (tokens) {\r\n if (!tokens.length)\r\n return undefined;\r\n if (this.isTokenArrayNumeric(tokens))\r\n return tokens.join('');\r\n if (tokens.length > 1)\r\n throw new ParserError(TokenError.invalidNonNumericValue, this.makeTokenString(tokens));\r\n return tokens[0];\r\n };\r\n TokenEnumerable.prototype.makeTokenString = function (tokens) {\r\n return tokens.map(function (token) { return typeof token === 'object' ? JSON.stringify(token) : token; }).join('');\r\n };\r\n return TokenEnumerable;\r\n}());\r\n\r\nvar GeneralError;\r\n(function (GeneralError) {\r\n GeneralError.id = 0x1000;\r\n GeneralError.unknownError = { code: 0x1000, text: 'unknown error is occurred' };\r\n GeneralError.methodNotImplemented = { code: 0x1001, text: 'method not implemented' };\r\n})(GeneralError || (GeneralError = {}));\r\n\r\nvar AbstractSyntaxTreeValidator = /** @class */ (function () {\r\n function AbstractSyntaxTreeValidator() {\r\n }\r\n AbstractSyntaxTreeValidator.validate = function (ast) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var validators = [\r\n this.validateMissingValue,\r\n this.validateMissingCloseBracket\r\n ];\r\n return validators\r\n .map(function (validator) { return validator.apply(void 0, [ast].concat(args)); })\r\n .find(function (validator) { return validator !== undefined; });\r\n };\r\n AbstractSyntaxTreeValidator.validateMissingValue = function (ast) {\r\n if (!ast)\r\n return;\r\n var childError = AbstractSyntaxTreeValidator.validateChildMissingValue(ast);\r\n return childError || AbstractSyntaxTreeValidator.validateCurrentMissingValue(ast);\r\n };\r\n AbstractSyntaxTreeValidator.validateCurrentMissingValue = function (ast) {\r\n if (ast.type !== Token.Type.Operator || ast.leftNode && ast.rightNode)\r\n return;\r\n return !ast.leftNode\r\n ? new ParserError(TokenError.missingValueBefore, ast.value)\r\n : new ParserError(TokenError.missingValueAfter, ast.value);\r\n };\r\n AbstractSyntaxTreeValidator.validateChildMissingValue = function (ast) {\r\n return [\r\n AbstractSyntaxTreeValidator.validateMissingValue(ast.leftNode),\r\n AbstractSyntaxTreeValidator.validateMissingValue(ast.rightNode)\r\n ]\r\n .find(function (error) { return error !== undefined; });\r\n };\r\n AbstractSyntaxTreeValidator.validateMissingCloseBracket = function (ast) {\r\n if (ast.hasOpenBracket())\r\n return new ParserError(TokenError.missingCloseBracket);\r\n };\r\n AbstractSyntaxTreeValidator.validateInvalidTwoOperator = function (ast, token, lastToken) {\r\n if (!TokenHelper.isBracket(ast.value) && !ast.rightNode)\r\n return new ParserError(TokenError.invalidTwoOperator, lastToken, token);\r\n };\r\n return AbstractSyntaxTreeValidator;\r\n}());\r\n\r\nvar TokenAnalyzer = /** @class */ (function (_super) {\r\n __extends(TokenAnalyzer, _super);\r\n function TokenAnalyzer(token) {\r\n return _super.call(this, token) || this;\r\n }\r\n TokenAnalyzer.prototype.parse = function () {\r\n var _this = this;\r\n this.try(function () { return _this.preValidate(); });\r\n this.initialize();\r\n this.try(function () { return _this.makeAst(); });\r\n this.try(function () { return _this.postValidate(); });\r\n return this.ast;\r\n };\r\n TokenAnalyzer.prototype.initialize = function () {\r\n this.ast = new AbstractSyntaxTree(Token.literal.BracketOpen);\r\n this.ast.leftNode = new AbstractSyntaxTree();\r\n this.currentTree = this.ast.leftNode;\r\n this.rewind();\r\n };\r\n TokenAnalyzer.prototype.getAst = function () {\r\n return this.ast;\r\n };\r\n TokenAnalyzer.prototype.makeAst = function () {\r\n var _this = this;\r\n var token;\r\n while (token = this.next()) {\r\n this.try(function () { return _this.doAnalyzeToken(token); });\r\n }\r\n this.finalizeStack();\r\n this.ast = this.ast.removeRootBracket().findRoot();\r\n };\r\n TokenAnalyzer.prototype.try = function (tryFunction) {\r\n try {\r\n return tryFunction();\r\n }\r\n catch (error) {\r\n this.handleError(error);\r\n }\r\n };\r\n TokenAnalyzer.prototype.preValidate = function () {\r\n if (!this.token || !this.token.length)\r\n throw new ParserError(TokenError.emptyToken);\r\n };\r\n TokenAnalyzer.prototype.postValidate = function () {\r\n var error = AbstractSyntaxTreeValidator.validate(this.ast);\r\n if (error)\r\n throw error;\r\n };\r\n TokenAnalyzer.prototype.handleError = function (error) {\r\n if (error instanceof ParserError)\r\n throw error.withStack(this.stack);\r\n throw new ParserError(GeneralError.unknownError).withStack(this.stack);\r\n };\r\n TokenAnalyzer.prototype.doAnalyzeToken = function (token) {\r\n this.analyzeToken(token);\r\n this.addStack(token);\r\n };\r\n TokenAnalyzer.prototype.analyzeToken = function (token) {\r\n var lastToken = this.popStack();\r\n if (TokenHelper.isBracket(token)) {\r\n this.analyzeBracketToken(token);\r\n return;\r\n }\r\n if (TokenHelper.isOperator(token)) {\r\n this.analyzeOperatorToken(token);\r\n return;\r\n }\r\n var error = TokenValidator.validateValueToken(token, lastToken);\r\n if (error)\r\n throw error;\r\n this.currentTree.insertNode(token);\r\n };\r\n TokenAnalyzer.prototype.analyzeBracketToken = function (token) {\r\n if (TokenHelper.isBracketOpen(token)) {\r\n this.analyzeImplicitToken();\r\n this.currentTree = this.currentTree.insertNode(token);\r\n return;\r\n }\r\n if (TokenHelper.isBracketClose(token)) {\r\n this.currentTree = this.currentTree.removeClosestBracket();\r\n this.ast = this.currentTree.findRoot();\r\n return;\r\n }\r\n };\r\n TokenAnalyzer.prototype.analyzeOperatorToken = function (token) {\r\n var lastToken = this.popStack();\r\n if (TokenHelper.isOperator(lastToken))\r\n throw new ParserError(TokenError.invalidTwoOperator, lastToken, token);\r\n if (!this.currentTree.value) {\r\n this.currentTree.value = token;\r\n return;\r\n }\r\n var error = AbstractSyntaxTreeValidator.validateInvalidTwoOperator(this.currentTree, token, lastToken);\r\n if (error)\r\n throw error;\r\n this.currentTree = this.currentTree.insertNode(token);\r\n this.ast = this.ast.findRoot();\r\n };\r\n TokenAnalyzer.prototype.analyzeImplicitToken = function () {\r\n var lastToken = this.popStack();\r\n if (lastToken && !TokenHelper.isSymbol(lastToken) || TokenHelper.isBracketClose(lastToken))\r\n this.insertImplicitMultiplication();\r\n };\r\n TokenAnalyzer.prototype.insertImplicitMultiplication = function () {\r\n this.analyzeToken(Token.literal.Multiplication);\r\n this.addStack(Token.literal.Multiplication);\r\n };\r\n return TokenAnalyzer;\r\n}(TokenEnumerable));\r\n\r\nvar ParserHelper = /** @class */ (function () {\r\n function ParserHelper() {\r\n }\r\n ParserHelper.getArray = function (data) {\r\n return typeof data === 'string'\r\n ? this.stringToArray(data)\r\n : data;\r\n };\r\n ParserHelper.stringToArray = function (value) {\r\n return value.split('');\r\n };\r\n return ParserHelper;\r\n}());\r\n\r\nvar Parser = /** @class */ (function () {\r\n function Parser() {\r\n }\r\n Parser.parse = function (data) {\r\n var analyzer = new TokenAnalyzer(ParserHelper.getArray(data));\r\n return analyzer.parse();\r\n };\r\n Parser.unparse = function (ast) {\r\n return ast.expression;\r\n };\r\n return Parser;\r\n}());\r\n\r\nvar BuilderBase = /** @class */ (function () {\r\n function BuilderBase(treeBuilder) {\r\n this.treeBuilder = treeBuilder;\r\n }\r\n BuilderBase.prototype.build = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doBuild(data); });\r\n };\r\n BuilderBase.prototype.parse = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doParse(data); });\r\n };\r\n BuilderBase.prototype.unparse = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doUnparse(data); });\r\n };\r\n BuilderBase.prototype.handleError = function (error) {\r\n return Packer.makeError(error);\r\n };\r\n BuilderBase.prototype.try = function (tryFunc) {\r\n try {\r\n return tryFunc();\r\n }\r\n catch (error) {\r\n return this.handleError(error);\r\n }\r\n };\r\n BuilderBase.prototype.doBuild = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n BuilderBase.prototype.doParse = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n BuilderBase.prototype.doUnparse = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n return BuilderBase;\r\n}());\r\n\r\nvar Builder = /** @class */ (function (_super) {\r\n __extends(Builder, _super);\r\n function Builder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Builder.prototype.doBuild = function (data) {\r\n if (!data)\r\n throw new ParserError(BuilderError.emptyData);\r\n if (BuilderHelper.needParse(data))\r\n return this.parse(data);\r\n if (BuilderHelper.needUnparse(data))\r\n return this.unparse(data);\r\n };\r\n Builder.prototype.doParse = function (data) {\r\n var ast = Parser.parse(data);\r\n var tree = this.treeBuilder.makeTree(ast);\r\n return Packer.makeData(tree);\r\n };\r\n Builder.prototype.doUnparse = function (data) {\r\n var ast = this.treeBuilder.makeAst(data);\r\n var expression = Parser.unparse(ast);\r\n return Packer.makeData(expression);\r\n };\r\n return Builder;\r\n}(BuilderBase));\r\n\r\n/* tslint:disable:max-line-length */\r\nvar TreeError;\r\n(function (TreeError) {\r\n TreeError.id = 0x0200;\r\n TreeError.emptyAst = { code: 0x0200, text: 'AST is empty' };\r\n TreeError.emptyTree = { code: 0x0201, text: 'tree is empty' };\r\n TreeError.invalidParserTree = { code: 0x0220, text: 'invalid parser tree' };\r\n})(TreeError || (TreeError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\nvar TreeBuilderBase = /** @class */ (function () {\r\n function TreeBuilderBase() {\r\n }\r\n TreeBuilderBase.prototype.makeTree = function (ast) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n TreeBuilderBase.prototype.makeAst = function (tree) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n return TreeBuilderBase;\r\n}());\r\n\r\nvar TreeBuilder = /** @class */ (function (_super) {\r\n __extends(TreeBuilder, _super);\r\n function TreeBuilder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TreeBuilder.prototype.makeTree = function (ast) {\r\n if (!ast)\r\n throw new ParserError(TreeError.emptyAst);\r\n var tree = this.makeNode(ast);\r\n if (!TreeBuilder.isValid(tree))\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return tree;\r\n };\r\n TreeBuilder.prototype.makeAst = function (tree) {\r\n if (!tree)\r\n throw new ParserError(TreeError.emptyTree);\r\n var ast = this.makeAstNode(tree);\r\n if (!ast.isValid())\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return ast;\r\n };\r\n TreeBuilder.prototype.makeNode = function (node) {\r\n if (!node)\r\n return undefined;\r\n return node.type === Token.Type.Operator\r\n ? this.makeOperatorNode(node)\r\n : this.makeValueNode(node);\r\n };\r\n TreeBuilder.prototype.makeOperatorNode = function (sourceNode) {\r\n return {\r\n operator: sourceNode.value,\r\n operand1: this.makeNode(sourceNode.leftNode),\r\n operand2: this.makeNode(sourceNode.rightNode)\r\n };\r\n };\r\n TreeBuilder.prototype.makeValueNode = function (sourceNode) {\r\n return {\r\n value: this.makeOperandValue(sourceNode)\r\n };\r\n };\r\n TreeBuilder.prototype.makeOperandValue = function (sourceNode) {\r\n var type = TokenHelper.isObject(sourceNode.value)\r\n ? 'item'\r\n : 'unit';\r\n return _a = {\r\n type: type\r\n }, _a[type] = sourceNode.value, _a;\r\n var _a;\r\n };\r\n TreeBuilder.prototype.makeAstNode = function (node) {\r\n if (!node)\r\n return undefined;\r\n if (TreeBuilder.isTree(node)) {\r\n var tree = node;\r\n var ast = new AbstractSyntaxTree(tree.operator);\r\n ast.leftNode = this.makeAstNode(tree.operand1);\r\n ast.rightNode = this.makeAstNode(tree.operand2);\r\n return ast;\r\n }\r\n var operand = node;\r\n return new AbstractSyntaxTree(TreeBuilder.getValue(operand));\r\n };\r\n TreeBuilder.isTree = function (node) {\r\n return !!node.operator;\r\n };\r\n TreeBuilder.getValue = function (operand) {\r\n if (!TreeBuilder.isValidOperand(operand))\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return operand.value.type === 'item'\r\n ? operand.value.item\r\n : operand.value.unit;\r\n };\r\n TreeBuilder.isValid = function (node) {\r\n var tree = node;\r\n var operand = node;\r\n return !!(tree.operator && tree.operand1 && tree.operand2) || operand.value !== undefined;\r\n };\r\n TreeBuilder.isValidOperand = function (operand) {\r\n return operand && operand.value && operand.value.type && operand.value[operand.value.type] !== undefined;\r\n };\r\n return TreeBuilder;\r\n}(TreeBuilderBase));\r\n\r\nvar _MODULE_VERSION_ = '0.0.10';\r\nfunction getVersion() {\r\n return _MODULE_VERSION_;\r\n}\r\nfunction convert(data) {\r\n var builder = new Builder(new TreeBuilder());\r\n return builder.build(data);\r\n}\r\nfunction valid(data) {\r\n var builder = new Builder(new TreeBuilder());\r\n return builder.build(data).code === success;\r\n}\r\n\r\nexport { getVersion, convert, valid };\r\n","export class StringHelper {\r\n public static isNumeric(value: string): boolean {\r\n return /^-?[\\d,]+\\.?\\d*$/.test(value) && typeof value !== 'object';\r\n }\r\n\r\n public static toNumber(value: string): string {\r\n return value.replace(/[^\\d-\\.]/g, '');\r\n }\r\n}\r\n","import { supportedCharacters } from './values';\r\nimport { StringHelper } from './string.helper';\r\n\r\nexport class FormulizeTokenHelper {\r\n public static toDecimal(value: string): string {\r\n const splitValue = StringHelper.toNumber(value).split('.');\r\n if (splitValue.length)\r\n splitValue[0] = splitValue[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return splitValue.join('.');\r\n }\r\n\r\n public static isValid(value: string): boolean {\r\n return FormulizeTokenHelper.isNumeric(value) || FormulizeTokenHelper.supportValue(value);\r\n }\r\n\r\n public static isNumeric(value: string): boolean {\r\n return /[0-9\\.]/.test(value);\r\n }\r\n\r\n public static isBracket(value: string): boolean {\r\n return /^[()]$/.test(value);\r\n }\r\n\r\n public static isComma(value: string): boolean {\r\n return value === ',';\r\n }\r\n\r\n public static supportValue(value: string): boolean {\r\n return supportedCharacters.includes(value);\r\n }\r\n}\r\n","import { FormulizeTokenHelper } from '../token.helper';\r\n\r\nexport class UIElementHelper {\r\n public static getDragElement(id: string): HTMLElement {\r\n return $(`
`)[0];\r\n }\r\n\r\n public static getCursorElement(id: string): HTMLElement {\r\n return $(`
`)[0];\r\n }\r\n\r\n public static getUnitElement(id: string, value: string): HTMLElement {\r\n const unitElem = $(`
`);\r\n UIElementHelper.setUnitValue(id, unitElem[0], value);\r\n return unitElem[0];\r\n }\r\n\r\n public static setUnitValue(id: string, elem: HTMLElement, value: string): void {\r\n if (value === undefined)\r\n return;\r\n\r\n $(elem).empty();\r\n const decimalValue = FormulizeTokenHelper.toDecimal(value);\r\n const split = decimalValue.split('.');\r\n const prefix = $(UIElementHelper.getUnitDecimalElement(id, 'prefix', split[0]));\r\n prefix.appendTo($(elem));\r\n\r\n if (split[1] === undefined)\r\n return;\r\n\r\n const suffix = $(UIElementHelper.getUnitDecimalElement(id, 'suffix', `.${split[1]}`));\r\n suffix.appendTo($(elem));\r\n }\r\n\r\n public static getUnitDecimalElement(id: string, side: 'prefix' | 'suffix', value: string): HTMLElement {\r\n return $(`${value}`)[0];\r\n }\r\n\r\n public static getOperatorElement(id: string, value: string): HTMLElement {\r\n return $(`
${value.toLowerCase()}
`)[0];\r\n }\r\n\r\n public static getTextBoxElement(id: string): HTMLElement {\r\n return $(``)[0];\r\n }\r\n\r\n public static isElementType(id: string, type: string, elem: HTMLElement): boolean {\r\n if (!elem)\r\n return;\r\n\r\n return $(elem).hasClass(`${id}-${type}`);\r\n }\r\n\r\n public static isDrag(id: string, elem: HTMLElement): boolean {\r\n return UIElementHelper.isElementType(id, 'drag', elem);\r\n }\r\n\r\n public static isCursor(id: string, elem: HTMLElement): boolean {\r\n return UIElementHelper.isElementType(id, 'cursor', elem);\r\n }\r\n\r\n public static isUnit(id: string, elem: HTMLElement): boolean {\r\n return UIElementHelper.isElementType(id, 'unit', elem);\r\n }\r\n\r\n public static isOperator(id: string, elem: HTMLElement): boolean {\r\n return UIElementHelper.isElementType(id, 'operator', elem);\r\n }\r\n}\r\n","import { FormulizeData, Position } from './ui.interface';\r\nimport { StringHelper } from '../string.helper';\r\n\r\nexport class UIHelper {\r\n public static getDataValue(data: FormulizeData): string {\r\n if (!UIHelper.isDOM(data))\r\n return StringHelper.isNumeric(data)\r\n ? StringHelper.toNumber(String(data))\r\n : data;\r\n\r\n const value = $(data).data('value') || $(data).text();\r\n return StringHelper.isNumeric(value)\r\n ? StringHelper.toNumber(String(value))\r\n : value;\r\n }\r\n\r\n public static isOverDistance(position: Position, targetPosition: Position, distance: number): boolean {\r\n return Math.abs(position.x - targetPosition.x) > distance ||\r\n Math.abs(position.y - targetPosition.y) > distance;\r\n }\r\n\r\n public static isDOM(data: FormulizeData): boolean {\r\n return data instanceof HTMLElement || data instanceof jQuery;\r\n }\r\n\r\n public static getDOM(elem: HTMLElement | JQuery): HTMLElement {\r\n return elem instanceof jQuery\r\n ? (elem)[0]\r\n : elem;\r\n }\r\n}\r\n","import { FormulizeOptions } from '../formulize.interface';\r\nimport { defaultOptions } from '../option.value';\r\nimport { UIElementHelper } from './ui.element.helper';\r\nimport { FormulizeTokenHelper } from '../token.helper';\r\n\r\nexport abstract class UIDom {\r\n protected wrapper: JQuery;\r\n protected container: JQuery;\r\n protected statusBox: JQuery;\r\n protected textBox: JQuery;\r\n protected cursor: JQuery;\r\n protected elem: HTMLElement;\r\n protected options: FormulizeOptions;\r\n\r\n protected get cursorIndex(): number {\r\n return this.cursor\r\n ? this.cursor.index()\r\n : 0;\r\n }\r\n\r\n protected get dragElem(): JQuery {\r\n return this.container.find(`.${this.options.id}-drag`);\r\n }\r\n\r\n protected initializeDOM() {\r\n this.wrapper = $(this.elem);\r\n this.wrapper.addClass(`${this.options.id}-wrapper`);\r\n\r\n this.container = $(`
`);\r\n this.container.appendTo(this.wrapper);\r\n\r\n this.statusBox = $(`
${this.options.text.formula}
`);\r\n this.statusBox.insertBefore(this.container);\r\n\r\n this.textBox = $(UIElementHelper.getTextBoxElement(this.options.id));\r\n this.textBox.insertAfter(this.container);\r\n this.textBox.trigger('focus');\r\n }\r\n\r\n protected bindingDOM() {\r\n this.wrapper = $(this.elem);\r\n this.container = this.wrapper.find(`.${this.options.id}-container`);\r\n this.statusBox = this.wrapper.find(`.${this.options.id}-alert`);\r\n this.textBox = this.wrapper.find(`.${this.options.id}-text`);\r\n }\r\n\r\n protected isAlreadyInitialized(): boolean {\r\n return $(this.elem).hasClass(`${this.options.id}-wrapper`);\r\n }\r\n\r\n protected attachEvents() {\r\n throw new Error('method not implemented');\r\n }\r\n\r\n protected getPrevUnit(elem: HTMLElement): HTMLElement {\r\n const prevElement = $(elem).prev();\r\n return UIElementHelper.isCursor(this.options.id, prevElement.get(0))\r\n ? prevElement.prev().get(0)\r\n : prevElement.get(0);\r\n }\r\n\r\n protected getNextUnit(elem: HTMLElement): HTMLElement {\r\n const nextElem = $(elem).next();\r\n return UIElementHelper.isCursor(this.options.id, nextElem.get(0))\r\n ? nextElem.next().get(0)\r\n : nextElem.get(0);\r\n }\r\n\r\n protected mergeUnit(baseElem: HTMLElement): void {\r\n const prevElem = $(this.getPrevUnit(baseElem));\r\n const nextElem = $(this.getNextUnit(baseElem));\r\n\r\n const unitElem = [prevElem, nextElem]\r\n .find(elem => UIElementHelper.isUnit(this.options.id, elem.get(0)));\r\n\r\n if (!unitElem)\r\n return;\r\n\r\n if (unitElem === prevElem) {\r\n prevElem.prependTo(baseElem);\r\n this.cursor.insertAfter(baseElem);\r\n } else if (unitElem === nextElem) {\r\n nextElem.appendTo(baseElem);\r\n this.cursor.insertBefore(baseElem);\r\n }\r\n\r\n const text = $(baseElem).text();\r\n UIElementHelper.setUnitValue(this.options.id, baseElem, text);\r\n }\r\n\r\n protected removeCursor(): void {\r\n this.container\r\n .find(`.${this.options.id}-cursor`)\r\n .remove();\r\n }\r\n\r\n protected removeUnit(): void {\r\n this.container\r\n .find(`:not(\".${this.options.id}-cursor\")`)\r\n .remove();\r\n }\r\n}\r\n","import { UIDom } from './ui.dom';\r\n\r\nexport abstract class UIAnalyzer extends UIDom {\r\n protected analyzeKey(keyCode: number, pressedCtrl: boolean, pressedShift: boolean): boolean {\r\n throw new Error('method not implemented');\r\n }\r\n}\r\n","import { UIAnalyzer } from './ui.analyzer';\r\nimport { FormulizeData } from './ui.interface';\r\nimport { UIHelper } from './ui.helper';\r\n\r\nexport class UIPipe extends UIAnalyzer {\r\n protected pipeInsert(data: FormulizeData): any {\r\n if (!this.options.pipe || !this.options.pipe.insert)\r\n return data;\r\n\r\n const insertData = UIHelper.isDOM(data)\r\n ? UIHelper.getDOM(data)\r\n : data;\r\n\r\n return this.options.pipe.insert(insertData);\r\n }\r\n\r\n protected pipeParse(elem: HTMLElement): any {\r\n if (!this.options.pipe || !this.options.pipe.parse)\r\n return UIHelper.getDataValue(elem);\r\n\r\n return this.options.pipe.parse(elem);\r\n }\r\n}\r\n","import { convert, valid } from 'metric-parser';\r\nimport { FormulizeTokenHelper } from '../token.helper';\r\nimport { Tree } from 'metric-parser/dist/types/tree/simple.tree/type';\r\nimport { UIElementHelper } from './ui.element.helper';\r\nimport { ElementPosition, FormulizeData, Position } from './ui.interface';\r\nimport { UIHelper } from './ui.helper';\r\nimport { UIPipe } from './ui.pipe';\r\nimport { ParseData } from 'metric-parser/dist/types/parser/parser';\r\n\r\nexport abstract class UIManager extends UIPipe {\r\n protected prevCursorIndex = 0;\r\n protected prevPosition: Position = { x: 0, y: 0 };\r\n protected dragged: boolean;\r\n protected moved: boolean;\r\n\r\n public pick(position: Position = { x: 0, y: 0 }) {\r\n this.removeCursor();\r\n this.cursor = $(UIElementHelper.getCursorElement(this.options.id));\r\n this.cursor.appendTo(this.container);\r\n\r\n const closestUnitElem = this.findClosestUnit(position);\r\n if (closestUnitElem)\r\n this.cursor.insertAfter(closestUnitElem);\r\n else\r\n this.cursor.prependTo(this.container);\r\n\r\n this.removeDrag();\r\n }\r\n\r\n public setData(data: Tree): void {\r\n this.clear();\r\n const result = convert(data);\r\n if (!result.code)\r\n this.insertData(result.data);\r\n }\r\n\r\n public getData(extractor?: (data: T) => void): T {\r\n const expression = this.getExpression();\r\n const result = convert(expression);\r\n\r\n if (extractor)\r\n extractor(result.data);\r\n\r\n return result.data;\r\n }\r\n\r\n protected triggerUpdate(): void {\r\n this.validate();\r\n $(this.elem)\r\n .triggerHandler(`${this.options.id}.input`, this.getData());\r\n }\r\n\r\n private getExpression(): FormulizeData[] {\r\n return this.container\r\n .find(`.${this.options.id}-item`)\r\n .toArray()\r\n .map(elem => this.pipeParse(elem))\r\n .map(value => UIHelper.getDataValue(value));\r\n }\r\n\r\n protected startDrag(position: Position): void {\r\n this.dragged = true;\r\n this.moved = false;\r\n this.prevPosition = position;\r\n this.pick(position);\r\n this.prevCursorIndex = this.cursorIndex;\r\n }\r\n\r\n protected endDrag(position: Position): void {\r\n this.dragged = false;\r\n\r\n if (this.moved)\r\n return;\r\n\r\n this.moved = false;\r\n this.pick(position);\r\n }\r\n\r\n protected moveDrag(position: Position): void {\r\n if (!this.dragged)\r\n return;\r\n\r\n if (!this.moved) {\r\n this.moved = UIHelper.isOverDistance(this.prevPosition, position, 5);\r\n return;\r\n }\r\n\r\n this.removeDrag();\r\n this.pick(position);\r\n\r\n if (this.prevCursorIndex === this.cursorIndex)\r\n return;\r\n\r\n const positions = [this.prevCursorIndex, this.cursorIndex];\r\n positions.sort();\r\n\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n if (this.cursorIndex >= this.prevCursorIndex)\r\n dragElem.insertBefore(this.cursor);\r\n else\r\n dragElem.insertAfter(this.cursor);\r\n\r\n this.selectRange(positions[0], positions[1]);\r\n }\r\n\r\n private findClosestUnit(position: Position): HTMLElement {\r\n const containerPosition = {\r\n x: this.container.offset().left,\r\n y: this.container.offset().top\r\n };\r\n\r\n const parentPadding: Position = {\r\n x: Number(this.container.css('padding-left').replace(/[^\\d.]/gi, '')),\r\n y: Number(this.container.css('padding-top').replace(/[^\\d.]/gi, ''))\r\n };\r\n\r\n const unitPositions: ElementPosition[] = this.container\r\n .children(`*:not(\".${this.options.id}-cursor\")`)\r\n .toArray()\r\n .map(elem => ({\r\n elem,\r\n x: $(elem).offset().left - containerPosition.x + parentPadding.x,\r\n y: $(elem).offset().top - containerPosition.y\r\n }));\r\n\r\n let maxY = 0;\r\n const closestUnitPositions = unitPositions\r\n .filter(unitPosition => unitPosition.x <= position.x)\r\n .map(unitPosition => {\r\n if (unitPosition.y < maxY * 0.5)\r\n return undefined;\r\n\r\n const diffX = Math.abs(position.x - unitPosition.x);\r\n const diffY = Math.abs(position.y - unitPosition.y);\r\n return {\r\n ...unitPosition,\r\n diff: { x: diffX, y: diffY }\r\n };\r\n })\r\n .filter(unitPosition => !!unitPosition);\r\n const filteredUnitPositions = closestUnitPositions.filter(unitPosition => unitPosition.y === maxY).length\r\n ? closestUnitPositions.filter(unitPosition => unitPosition.y === maxY)\r\n : closestUnitPositions.filter(unitPosition => unitPosition.y <= position.y);\r\n filteredUnitPositions.sort((a, b) => a.diff.x - b.diff.x || a.diff.y - b.diff.y);\r\n\r\n const closestUnitPosition = filteredUnitPositions.shift();\r\n\r\n return closestUnitPosition\r\n ? closestUnitPosition.elem\r\n : undefined;\r\n }\r\n\r\n public selectAll(): void {\r\n this.removeDrag();\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n dragElem.prependTo(this.container);\r\n this.container\r\n .children(`:not(\".${this.options.id}-cursor\")`)\r\n .appendTo(dragElem);\r\n }\r\n\r\n public selectRange(start: number, end: number): void {\r\n if (!this.dragElem.length)\r\n return;\r\n\r\n this.container\r\n .children(`:not(\".${this.options.id}-cursor\")`)\r\n .filter(`:gt(\"${start}\")`)\r\n .filter(`:lt(\"${end - start}\")`)\r\n .add(this.container.children(`:not(\".${this.options.id}-cursor\")`).eq(start))\r\n .appendTo(this.dragElem);\r\n }\r\n\r\n protected removeBefore(): void {\r\n if (this.dragElem.length) {\r\n this.cursor.insertBefore(this.dragElem);\r\n this.dragElem.remove();\r\n this.triggerUpdate();\r\n return;\r\n }\r\n\r\n const prevCursorElem = this.cursor.prev();\r\n if (!this.cursor.length || !prevCursorElem.length)\r\n return;\r\n\r\n if (\r\n prevCursorElem.hasClass(`${this.options.id}-unit`) &&\r\n prevCursorElem.text().length > 1\r\n ) {\r\n const text = prevCursorElem.text();\r\n UIElementHelper.setUnitValue(this.options.id, prevCursorElem.get(0), text.substring(0, text.length - 1));\r\n } else\r\n prevCursorElem.remove();\r\n\r\n this.triggerUpdate();\r\n }\r\n\r\n protected removeAfter(): void {\r\n if (this.dragElem.length) {\r\n this.cursor.insertAfter(this.dragElem);\r\n this.dragElem.remove();\r\n this.triggerUpdate();\r\n return;\r\n }\r\n\r\n const nextCursorElem = this.cursor.next();\r\n if (!this.cursor.length || !nextCursorElem.length)\r\n return;\r\n\r\n if (\r\n nextCursorElem.hasClass(`${this.options.id}-unit`) &&\r\n nextCursorElem.text().length > 1\r\n ) {\r\n const text = nextCursorElem.text();\r\n UIElementHelper.setUnitValue(this.options.id, nextCursorElem.get(0), text.substring(1, text.length));\r\n } else\r\n nextCursorElem.remove();\r\n\r\n this.triggerUpdate();\r\n }\r\n\r\n protected dragFirst(): void {\r\n this.cursor.prevAll().prependTo(this.dragElem);\r\n this.cursor.insertAfter(this.dragElem);\r\n }\r\n\r\n protected dragLast(): void {\r\n this.cursor.nextAll().appendTo(this.dragElem);\r\n this.cursor.insertBefore(this.dragElem);\r\n }\r\n\r\n protected dragLeft(): void {\r\n if (UIElementHelper.isDrag(this.options.id, this.cursor.prev().get(0))) {\r\n this.dragElem.prev().prependTo(this.dragElem);\r\n this.moveCursorAfter(this.dragElem.get(0));\r\n return;\r\n }\r\n\r\n if (UIElementHelper.isDrag(this.options.id, this.cursor.next().get(0))) {\r\n const lastDraggedElem = this.dragElem.children().last();\r\n lastDraggedElem.insertAfter(this.dragElem);\r\n\r\n if (!this.dragElem.children().length)\r\n this.removeDrag();\r\n\r\n return;\r\n }\r\n }\r\n\r\n protected dragRight(): void {\r\n if (UIElementHelper.isDrag(this.options.id, this.cursor.next().get(0))) {\r\n this.dragElem.next().appendTo(this.dragElem);\r\n this.moveCursorBefore(this.dragElem.get(0));\r\n return;\r\n }\r\n\r\n if (UIElementHelper.isDrag(this.options.id, this.cursor.prev().get(0))) {\r\n const firstDraggedElem = this.dragElem.children().first();\r\n firstDraggedElem.insertBefore(this.dragElem);\r\n\r\n if (!this.dragElem.children().length)\r\n this.removeDrag();\r\n\r\n return;\r\n }\r\n }\r\n\r\n private moveCursorBefore(elem: HTMLElement) {\r\n if (!$(elem).length)\r\n return;\r\n\r\n this.cursor.insertBefore($(elem));\r\n }\r\n\r\n private moveCursorAfter(elem: HTMLElement) {\r\n if (!$(elem).length)\r\n return;\r\n\r\n this.cursor.insertAfter($(elem));\r\n }\r\n\r\n protected moveLeftCursor(dragMode: boolean = false): void {\r\n const prevCursorElem = this.cursor.prev();\r\n\r\n if (!this.cursor.length || !dragMode) {\r\n this.moveCursorBefore(prevCursorElem.get(0));\r\n this.removeDrag();\r\n return;\r\n }\r\n\r\n if (!this.dragElem.length) {\r\n if (!prevCursorElem.length)\r\n return;\r\n\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n dragElem.insertBefore(this.cursor);\r\n prevCursorElem.prependTo(this.dragElem);\r\n return;\r\n }\r\n\r\n this.dragLeft();\r\n }\r\n\r\n protected moveUpCursor(): void {\r\n if (!this.cursor.length)\r\n return;\r\n\r\n this.pick({\r\n x: this.cursor.position().left + this.cursor.outerWidth(),\r\n y: this.cursor.position().top - this.cursor.outerHeight() / 2\r\n });\r\n }\r\n\r\n protected moveRightCursor(dragMode: boolean = false): void {\r\n const nextCursorElem = this.cursor.next();\r\n\r\n if (!this.cursor.length || !dragMode) {\r\n this.moveCursorAfter(nextCursorElem.get(0));\r\n this.removeDrag();\r\n return;\r\n }\r\n\r\n if (!this.dragElem.length) {\r\n if (!nextCursorElem.length)\r\n return;\r\n\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n dragElem.insertAfter(this.cursor);\r\n nextCursorElem.appendTo(this.dragElem);\r\n return;\r\n }\r\n\r\n this.dragRight();\r\n }\r\n\r\n protected moveDownCursor(): void {\r\n if (!this.cursor.length)\r\n return;\r\n\r\n this.pick({\r\n x: this.cursor.position().left + this.cursor.outerWidth(),\r\n y: this.cursor.position().top + this.cursor.outerHeight() * 1.5\r\n });\r\n }\r\n\r\n protected moveFirstCursor(dragMode: boolean = false): void {\r\n const firstCursorElem = this.container.children(':first');\r\n if (!this.cursor.length || !firstCursorElem.length || !dragMode) {\r\n this.removeDrag();\r\n this.moveCursorBefore(firstCursorElem.get(0));\r\n return;\r\n }\r\n\r\n if (!this.dragElem.length) {\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n dragElem.insertAfter(this.cursor);\r\n }\r\n\r\n this.dragFirst();\r\n }\r\n\r\n protected moveLastCursor(dragMode: boolean = false): void {\r\n const lastCursorElem = this.container.children(':last');\r\n if (!this.cursor.length || !lastCursorElem.length || !dragMode) {\r\n this.removeDrag();\r\n this.moveCursorAfter(lastCursorElem.get(0));\r\n return;\r\n }\r\n\r\n if (!this.dragElem.length) {\r\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\r\n dragElem.insertBefore(this.cursor);\r\n }\r\n\r\n this.dragLast();\r\n }\r\n\r\n public clear(): void {\r\n this.removeCursor();\r\n this.removeUnit();\r\n this.triggerUpdate();\r\n }\r\n\r\n public blur(): void {\r\n if (!this.cursor)\r\n return;\r\n\r\n this.cursor.remove();\r\n this.removeDrag();\r\n }\r\n\r\n public removeDrag(): void {\r\n this.dragElem.children().insertBefore(this.dragElem);\r\n this.dragElem.remove();\r\n this.triggerUpdate();\r\n }\r\n\r\n public insert(data: FormulizeData, position?: Position): void {\r\n if (!data)\r\n return;\r\n\r\n const pipedData = this.pipeInsert(data);\r\n\r\n if (!this.cursor || !this.cursor.length || position)\r\n this.pick(position);\r\n\r\n if (typeof pipedData === 'string' || typeof pipedData === 'number') {\r\n this.insertValue(String(pipedData));\r\n return;\r\n }\r\n\r\n if (!UIHelper.isDOM(pipedData))\r\n return;\r\n\r\n const insertElem = $(pipedData);\r\n insertElem.addClass(`${this.options.id}-item`);\r\n insertElem.insertBefore(this.cursor);\r\n\r\n this.triggerUpdate();\r\n }\r\n\r\n public insertValue(value: string): void {\r\n if (!FormulizeTokenHelper.isValid(value))\r\n return;\r\n\r\n if (FormulizeTokenHelper.isNumeric(value)) {\r\n const unitElem = $(UIElementHelper.getUnitElement(this.options.id, value));\r\n\r\n if (this.dragElem.length) {\r\n this.cursor.insertBefore(this.dragElem);\r\n this.dragElem.remove();\r\n }\r\n\r\n if (this.cursor && this.cursor.length)\r\n this.cursor.before(unitElem);\r\n else\r\n this.container.append(unitElem);\r\n\r\n this.mergeUnit(unitElem[0]);\r\n\r\n this.triggerUpdate();\r\n return;\r\n }\r\n\r\n const operatorElem = $(UIElementHelper.getOperatorElement(this.options.id, value));\r\n if (this.cursor && this.cursor.length)\r\n this.cursor.before(operatorElem);\r\n else\r\n this.container.append(operatorElem);\r\n\r\n if (FormulizeTokenHelper.isBracket(value))\r\n operatorElem.addClass(`${this.options.id}-bracket`);\r\n }\r\n\r\n public insertData(data: string | string[] | any[]): void {\r\n const arrayData = typeof data === 'string'\r\n ? data.split('')\r\n : data;\r\n\r\n arrayData.forEach(value => this.insert(value));\r\n this.triggerUpdate();\r\n }\r\n\r\n public validate(extractor?: (valid: boolean) => void): boolean {\r\n const data = this.getData();\r\n\r\n if (!data)\r\n return;\r\n\r\n const isValid = valid(data);\r\n if (isValid) {\r\n this.statusBox\r\n .text(this.options.text.pass)\r\n .addClass(`${this.options.id}-alert-good`)\r\n .removeClass(`${this.options.id}-alert-error`);\r\n }\r\n else {\r\n this.statusBox\r\n .text(this.options.text.error)\r\n .removeClass(`${this.options.id}-alert-good`)\r\n .addClass(`${this.options.id}-alert-error`);\r\n }\r\n\r\n if (extractor)\r\n extractor(isValid);\r\n\r\n return isValid;\r\n }\r\n}\r\n","import { UIManager } from './ui.manager';\r\nimport { FormulizeKeyHelper } from '../key.helper';\r\n\r\nexport abstract class UIHook extends UIManager {\r\n protected hookKeyDown(event: JQuery.Event): void {\r\n event.preventDefault();\r\n\r\n if (!this.cursor || !this.cursor.length)\r\n return;\r\n\r\n this.analyzeKey(event.which, event.ctrlKey, event.shiftKey);\r\n\r\n const key = FormulizeKeyHelper.getValue(event.which, event.shiftKey);\r\n if (key === undefined)\r\n return;\r\n\r\n this.insertValue(key);\r\n this.validate();\r\n }\r\n}\r\n","import { defaultOptions } from '../option.value';\r\nimport { UIHook } from './ui.hook';\r\nimport { FormulizeOptions } from '../formulize.interface';\r\n\r\nexport abstract class UIBase extends UIHook {\r\n public constructor(elem: HTMLElement, options: FormulizeOptions = { ...defaultOptions }) {\r\n super();\r\n this.elem = elem;\r\n this.options = { ...defaultOptions, ...options };\r\n\r\n if (this.isAlreadyInitialized()) {\r\n this.bindingDOM();\r\n return;\r\n }\r\n\r\n this.initializeDOM();\r\n this.attachEvents();\r\n }\r\n}\r\n","import { FormulizeKeyHelper } from '../key.helper';\r\nimport { UIBase } from './ui.base';\r\nimport { Behavior } from './ui.interface';\r\n\r\nexport class UI extends UIBase {\r\n protected analyzeKey(keyCode: number, pressedCtrl: boolean, pressedShift: boolean): boolean {\r\n const behaviors: Behavior[] = [\r\n { predicate: FormulizeKeyHelper.isReload, doBehavior: FormulizeKeyHelper.doReload },\r\n {\r\n predicate: FormulizeKeyHelper.isSelectAll,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.selectAll())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isBackspace,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.removeBefore())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isDelete,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.removeAfter())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isLeft,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveLeftCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isUp,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveUpCursor())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isRight,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveRightCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isDown,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveDownCursor())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isHome,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveFirstCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isEnd,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveLastCursor(pressedShift))\r\n }\r\n ];\r\n const behavior = behaviors.find(behavior => behavior.predicate(keyCode, pressedCtrl, pressedShift));\r\n\r\n if (!behavior)\r\n return false;\r\n\r\n behavior.doBehavior();\r\n return true;\r\n }\r\n\r\n protected attachEvents(): void {\r\n this.textBox\r\n .off('blur')\r\n .on('blur', () => this.blur());\r\n\r\n this.textBox\r\n .off(`dblclick.${this.options.id}Handler`)\r\n .on(`dblclick.${this.options.id}Handler`, this.selectAll);\r\n\r\n this.textBox\r\n .off(`mousedown.${this.options.id}Handler`)\r\n .on(`mousedown.${this.options.id}Handler`,\r\n event => this.startDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`mouseup.${this.options.id}Handler`)\r\n .on(`mouseup.${this.options.id}Handler`,\r\n event => this.endDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`mousemove.${this.options.id}Handler`)\r\n .on(`mousemove.${this.options.id}Handler`,\r\n event => this.moveDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`keydown.${this.options.id}Handler`)\r\n .on(`keydown.${this.options.id}Handler`,\r\n (event: any) => {\r\n this.hookKeyDown(event);\r\n });\r\n }\r\n}\r\n","import { FormulizePluginMethods } from './formulize.jquery';\r\nimport { UI } from './ui/ui';\r\nimport { Position } from './ui/ui.interface';\r\nimport { Tree } from 'metric-parser/dist/types/tree/simple.tree/type';\r\n\r\nexport function methodBinder(this: JQuery, name: string, ...args: any[]): JQuery {\r\n this\r\n .toArray()\r\n .forEach(elem => {\r\n const instance = $(elem).data('$formulize');\r\n if (!instance)\r\n return;\r\n\r\n const base = new MethodBase(instance);\r\n Object.getPrototypeOf(base)[name].call(base, ...args);\r\n });\r\n return this;\r\n}\r\n\r\nexport class MethodBase implements FormulizePluginMethods {\r\n protected formulize: UI;\r\n\r\n constructor(formulize: UI) {\r\n this.formulize = formulize;\r\n }\r\n\r\n pick(): void {\r\n this.formulize.pick();\r\n }\r\n\r\n clear(): void {\r\n this.formulize.clear();\r\n }\r\n\r\n blur(): void {\r\n this.formulize.blur();\r\n }\r\n\r\n setData(data: Tree): void {\r\n this.formulize.setData(data);\r\n }\r\n\r\n getData(extractor?: (data: T) => void): T {\r\n return this.formulize.getData(extractor);\r\n }\r\n\r\n selectRange(start: number, end: number): void {\r\n this.formulize.selectRange(start, end);\r\n }\r\n\r\n selectAll(): void {\r\n this.formulize.selectAll();\r\n }\r\n\r\n removeDrag(): void {\r\n this.formulize.removeDrag();\r\n }\r\n\r\n insert(obj: string | number | HTMLElement | JQuery, position?: Position): void {\r\n this.formulize.insert(obj, position);\r\n }\r\n\r\n insertValue(value: string): void {\r\n this.formulize.insertValue(value);\r\n }\r\n\r\n insertData(data: string | string[] | any[]): void {\r\n this.formulize.insertData(data);\r\n }\r\n\r\n validate(extractor?: (valid: boolean) => void): boolean {\r\n return this.formulize.validate(extractor);\r\n }\r\n}\r\n","import { defaultOptions } from './option.value';\r\nimport { FormulizeFunction, FormulizeOptions } from './formulize.interface';\r\nimport { UI } from './ui/ui';\r\nimport { FormulizePlugin } from './formulize.jquery';\r\nimport { MethodBase, methodBinder } from './formulize.plugin.method';\r\n\r\nexport function pluginBinder() {\r\n const reflectedMethod = new MethodBase(null);\r\n const reflectedMethodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(reflectedMethod));\r\n\r\n $.fn.formulize = Object.assign(\r\n function (this: JQuery, options: FormulizeOptions): JQuery {\r\n this\r\n .toArray()\r\n .forEach(elem => {\r\n $(elem).data('$formulize', new UI(elem, options));\r\n });\r\n return this;\r\n },\r\n { ...defaultOptions }\r\n );\r\n\r\n reflectedMethodNames\r\n .filter(name => name !== 'constructor')\r\n .map(name => ({\r\n name,\r\n func: function (...args: any[]) {\r\n methodBinder.call(this, name, ...args);\r\n }\r\n }))\r\n .forEach(binder => {\r\n ($.fn)[binder.name] = binder.func;\r\n });\r\n}\r\n","const _MODULE_VERSION_ = '0.0.10';\n\nexport function getVersion(): string {\n return _MODULE_VERSION_;\n}\n","import '../style/formulize.scss';\nimport { pluginBinder } from './formulize.plugin';\n\nexport { UI } from './ui/ui';\nexport * from './global';\nexport * from 'metric-parser/dist/types/ast.d';\nexport * from 'metric-parser/dist/types/tree/simple.tree/type.d';\n\npluginBinder();\n"],"names":["extendStatics","__extends","__assign","StringHelper","tslib_1.__extends","tslib_1.__assign","_MODULE_VERSION_"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"formulize.umd.js","sources":["../src/option.value.ts","../src/key.enum.ts","../src/values.ts","../src/key.helper.ts","../node_modules/metric-parser/dist/metric.parser.es5.js","../src/string.helper.ts","../src/token.helper.ts","../src/ui/ui.element.helper.ts","../src/ui/ui.helper.ts","../src/ui/ui.dom.ts","../src/ui/ui.analyzer.ts","../src/ui/ui.pipe.ts","../src/ui/ui.manager.ts","../src/ui/ui.hook.ts","../src/ui/ui.base.ts","../src/ui/ui.ts","../src/formulize.plugin.method.ts","../src/formulize.plugin.ts","../src/global.ts","../src/formulize.ts"],"sourcesContent":["import { FormulizeOptions } from './formulize.interface';\r\n\r\nexport const defaultOptions: FormulizeOptions = {\r\n id: 'formulize',\r\n text: {\r\n formula: 'formula',\r\n error: 'error',\r\n pass: 'passed'\r\n }\r\n};\r\n","export enum Key {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Ctrl = 17,\r\n Alt = 18,\r\n PauseBreak = 19,\r\n CapsLock = 20,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n\r\n LeftArrow = 37,\r\n UpArrow = 38,\r\n RightArrow = 39,\r\n DownArrow = 40,\r\n\r\n Insert = 45,\r\n Delete = 46,\r\n\r\n Zero = 48,\r\n ClosedParen = Zero,\r\n One = 49,\r\n ExclamationMark = One,\r\n Two = 50,\r\n AtSign = Two,\r\n Three = 51,\r\n PoundSign = Three,\r\n Hash = PoundSign,\r\n Four = 52,\r\n DollarSign = Four,\r\n Five = 53,\r\n PercentSign = Five,\r\n Six = 54,\r\n Caret = Six,\r\n Hat = Caret,\r\n Seven = 55,\r\n Ampersand = Seven,\r\n Eight = 56,\r\n Star = Eight,\r\n Asterik = Star,\r\n Nine = 57,\r\n OpenParen = Nine,\r\n\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n E = 69,\r\n F = 70,\r\n G = 71,\r\n H = 72,\r\n I = 73,\r\n J = 74,\r\n K = 75,\r\n L = 76,\r\n M = 77,\r\n N = 78,\r\n O = 79,\r\n P = 80,\r\n Q = 81,\r\n R = 82,\r\n S = 83,\r\n T = 84,\r\n U = 85,\r\n V = 86,\r\n W = 87,\r\n X = 88,\r\n Y = 89,\r\n Z = 90,\r\n\r\n LeftWindowKey = 91,\r\n RightWindowKey = 92,\r\n SelectKey = 93,\r\n\r\n Numpad0 = 96,\r\n Numpad1 = 97,\r\n Numpad2 = 98,\r\n Numpad3 = 99,\r\n Numpad4 = 100,\r\n Numpad5 = 101,\r\n Numpad6 = 102,\r\n Numpad7 = 103,\r\n Numpad8 = 104,\r\n Numpad9 = 105,\r\n\r\n Multiply = 106,\r\n Add = 107,\r\n Subtract = 109,\r\n DecimalPoint = 110,\r\n Divide = 111,\r\n\r\n F1 = 112,\r\n F2 = 113,\r\n F3 = 114,\r\n F4 = 115,\r\n F5 = 116,\r\n F6 = 117,\r\n F7 = 118,\r\n F8 = 119,\r\n F9 = 120,\r\n F10 = 121,\r\n F11 = 122,\r\n F12 = 123,\r\n\r\n NumLock = 144,\r\n ScrollLock = 145,\r\n\r\n SemiColon = 186,\r\n Equals = 187,\r\n Comma = 188,\r\n Dash = 189,\r\n Period = 190,\r\n UnderScore = Dash,\r\n PlusSign = Equals,\r\n ForwardSlash = 191,\r\n Tilde = 192,\r\n GraveAccent = Tilde,\r\n\r\n OpenBracket = 219,\r\n ClosedBracket = 221,\r\n Quote = 222\r\n}","export const specialCharacters = [')', '!', '@', '#', '$', '%', '^', '&', 'x', '('];\r\nexport const supportedCharacters = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'x', '*', '/', '.', '+', '-', '%', '^', '(', ')'];\r\n","import { Key } from './key.enum';\r\nimport { specialCharacters } from './values';\r\n\r\nexport class FormulizeKeyHelper {\r\n public static isReload(keyCode: number, pressedCtrl: boolean): boolean {\r\n return keyCode === Key.F5 || pressedCtrl && keyCode === Key.R;\r\n }\r\n\r\n public static isSelectAll(keyCode: number, pressedCtrl: boolean): boolean {\r\n return keyCode === Key.A && pressedCtrl;\r\n }\r\n\r\n public static isBackspace(keyCode: number): boolean {\r\n return keyCode === Key.Backspace;\r\n }\r\n\r\n public static isDelete(keyCode: number): boolean {\r\n return keyCode === Key.Delete;\r\n }\r\n\r\n public static isLeft(keyCode: number): boolean {\r\n return keyCode === Key.LeftArrow;\r\n }\r\n\r\n public static isUp(keyCode: number): boolean {\r\n return keyCode === Key.UpArrow;\r\n }\r\n\r\n public static isRight(keyCode: number): boolean {\r\n return keyCode === Key.RightArrow;\r\n }\r\n\r\n public static isDown(keyCode: number): boolean {\r\n return keyCode === Key.DownArrow;\r\n }\r\n\r\n public static isHome(keyCode: number): boolean {\r\n return keyCode === Key.Home;\r\n }\r\n\r\n public static isEnd(keyCode: number): boolean {\r\n return keyCode === Key.End;\r\n }\r\n\r\n public static doReload(): void {\r\n location.reload();\r\n }\r\n\r\n public static doAction(action: () => T): () => T {\r\n return action;\r\n }\r\n\r\n public static getValue(keyCode: number, pressedShift: boolean = false): string {\r\n if (keyCode === Key.Multiply)\r\n return 'x';\r\n\r\n if (((keyCode === Key.PlusSign || keyCode === 61) && pressedShift) || keyCode === Key.Add)\r\n return '+';\r\n\r\n if (keyCode === Key.Dash || keyCode === 173 || keyCode === Key.Subtract)\r\n return '-';\r\n\r\n if (keyCode === Key.Period || keyCode === Key.DecimalPoint)\r\n return '.';\r\n\r\n if (keyCode === Key.ForwardSlash || keyCode === Key.Divide)\r\n return '/';\r\n\r\n const numberKeyCode = keyCode >= Key.Numpad0 && keyCode <= Key.Numpad9\r\n ? keyCode - (Key.Numpad0 - Key.Zero)\r\n : keyCode;\r\n\r\n if (numberKeyCode >= Key.Zero && numberKeyCode <= Key.Nine) {\r\n const numberValue = String.fromCharCode(numberKeyCode);\r\n return pressedShift\r\n ? specialCharacters[Number(numberValue)]\r\n : numberValue;\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n\r\nvar Token;\r\n(function (Token) {\r\n var Type;\r\n (function (Type) {\r\n Type[Type[\"Unknown\"] = 0] = \"Unknown\";\r\n Type[Type[\"Value\"] = 1] = \"Value\";\r\n Type[Type[\"Dot\"] = 2] = \"Dot\";\r\n Type[Type[\"Operator\"] = 3] = \"Operator\";\r\n Type[Type[\"Bracket\"] = 4] = \"Bracket\";\r\n Type[Type[\"Function\"] = 5] = \"Function\";\r\n Type[Type[\"WhiteSpace\"] = 6] = \"WhiteSpace\";\r\n Type[Type[\"CompareToken\"] = 7] = \"CompareToken\";\r\n })(Type = Token.Type || (Token.Type = {}));\r\n var SubType;\r\n (function (SubType) {\r\n SubType[SubType[\"Group\"] = 0] = \"Group\";\r\n })(SubType = Token.SubType || (Token.SubType = {}));\r\n Token.literal = {\r\n Addition: '+',\r\n Subtraction: '-',\r\n Multiplication: '*',\r\n MultiplicationLiteral: 'x',\r\n Division: '/',\r\n Mod: '%',\r\n Pow: '^',\r\n BracketOpen: '(',\r\n BracketClose: ')',\r\n Dot: '.'\r\n };\r\n Token.value = {\r\n Addition: {\r\n symbols: [Token.literal.Addition],\r\n alias: Token.literal.Addition\r\n },\r\n Subtraction: {\r\n symbols: [Token.literal.Subtraction],\r\n alias: Token.literal.Subtraction\r\n },\r\n Multiplication: {\r\n symbols: [Token.literal.Multiplication, Token.literal.MultiplicationLiteral],\r\n alias: Token.literal.Multiplication\r\n },\r\n Division: {\r\n symbols: [Token.literal.Division],\r\n alias: Token.literal.Division\r\n },\r\n Mod: {\r\n symbols: [Token.literal.Mod],\r\n alias: Token.literal.Mod\r\n },\r\n Pow: {\r\n symbols: [Token.literal.Pow],\r\n alias: Token.literal.Pow\r\n },\r\n BracketOpen: {\r\n symbols: [Token.literal.BracketOpen],\r\n alias: Token.literal.BracketOpen\r\n },\r\n BracketClose: {\r\n symbols: [Token.literal.BracketClose],\r\n alias: Token.literal.BracketOpen\r\n },\r\n Dot: {\r\n symbols: [Token.literal.Dot],\r\n alias: Token.literal.Dot\r\n }\r\n };\r\n Token.addition = [Token.literal.Addition];\r\n Token.subtraction = [Token.literal.Subtraction];\r\n Token.multiplication = [Token.literal.Multiplication, Token.literal.MultiplicationLiteral];\r\n Token.division = [Token.literal.Division];\r\n Token.mod = [Token.literal.Mod];\r\n Token.pow = [Token.literal.Pow];\r\n Token.bracketOpen = Token.literal.BracketOpen;\r\n Token.bracketClose = Token.literal.BracketClose;\r\n Token.bracket = [Token.bracketOpen, Token.bracketClose];\r\n Token.precedence = Token.addition.concat(Token.subtraction, Token.multiplication, Token.division, Token.pow, Token.mod, Token.bracket);\r\n Token.operators = Token.addition.concat(Token.subtraction, Token.multiplication, Token.division, Token.mod, Token.pow);\r\n Token.symbols = Token.operators.concat(Token.bracket);\r\n Token.whiteSpace = [\r\n ' ',\r\n '',\r\n null,\r\n undefined\r\n ];\r\n})(Token || (Token = {}));\r\n\r\nvar TokenTypeHelper = /** @class */ (function () {\r\n function TokenTypeHelper() {\r\n }\r\n TokenTypeHelper.isNumeric = function (value) {\r\n return (/^[\\+\\-]?\\d*\\.?\\d+(?:[Ee][\\+\\-]?\\d+)?$/).test(String(value));\r\n };\r\n TokenTypeHelper.isArray = function (token) {\r\n return Array.isArray(token);\r\n };\r\n TokenTypeHelper.isString = function (token) {\r\n return typeof token === 'string';\r\n };\r\n TokenTypeHelper.isObject = function (token) {\r\n return typeof token === 'object';\r\n };\r\n TokenTypeHelper.isValue = function (token) {\r\n return TokenTypeHelper.isObject(token) || TokenTypeHelper.isNumeric(token);\r\n };\r\n return TokenTypeHelper;\r\n}());\r\n\r\nvar TokenHelperBase = /** @class */ (function (_super) {\r\n __extends(TokenHelperBase, _super);\r\n function TokenHelperBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TokenHelperBase.isToken = function (token) {\r\n var validators = [\r\n TokenHelperBase.isNumeric,\r\n TokenHelperBase.isSymbol,\r\n TokenHelperBase.isObject\r\n ];\r\n return token && validators.some(function (validator) { return validator(token); });\r\n };\r\n TokenHelperBase.isUnkown = function (token) {\r\n return token === undefined || token === null;\r\n };\r\n TokenHelperBase.isLineEscape = function (token) {\r\n return token === '\\n';\r\n };\r\n TokenHelperBase.isWhiteSpace = function (token) {\r\n return Token.whiteSpace.includes(String(token));\r\n };\r\n TokenHelperBase.isDot = function (token) {\r\n return token === Token.literal.Dot;\r\n };\r\n TokenHelperBase.isAddition = function (token) {\r\n return Token.addition.includes(token);\r\n };\r\n TokenHelperBase.isSubtraction = function (token) {\r\n return Token.subtraction.includes(token);\r\n };\r\n TokenHelperBase.isMultiplication = function (token) {\r\n return Token.multiplication.includes(token);\r\n };\r\n TokenHelperBase.isDivision = function (token) {\r\n return Token.division.includes(token);\r\n };\r\n TokenHelperBase.isMod = function (token) {\r\n return Token.mod.includes(token);\r\n };\r\n TokenHelperBase.isPow = function (token) {\r\n return Token.pow.includes(token);\r\n };\r\n TokenHelperBase.isBracket = function (token) {\r\n return Token.bracket.includes(token);\r\n };\r\n TokenHelperBase.isBracketOpen = function (token) {\r\n return token === Token.bracketOpen;\r\n };\r\n TokenHelperBase.isBracketClose = function (token) {\r\n return token === Token.bracketClose;\r\n };\r\n TokenHelperBase.isSymbol = function (token) {\r\n return Token.symbols.includes(String(token));\r\n };\r\n TokenHelperBase.isOperator = function (token) {\r\n return Token.operators.includes(String(token));\r\n };\r\n return TokenHelperBase;\r\n}(TokenTypeHelper));\r\n\r\nvar TokenHelper = /** @class */ (function (_super) {\r\n __extends(TokenHelper, _super);\r\n function TokenHelper() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TokenHelper.isHigher = function (source, target) {\r\n return TokenHelper.getPrecedence(source) - TokenHelper.getPrecedence(target) > 0;\r\n };\r\n TokenHelper.induceType = function (token) {\r\n var typeInducers = [\r\n { predicate: TokenHelper.isUnkown, type: Token.Type.Unknown },\r\n { predicate: TokenHelper.isWhiteSpace, type: Token.Type.WhiteSpace },\r\n { predicate: TokenHelper.isOperator, type: Token.Type.Operator },\r\n { predicate: TokenHelper.isBracket, type: Token.Type.Bracket },\r\n { predicate: TokenHelper.isDot, type: Token.Type.Dot },\r\n { predicate: TokenHelper.isValue, type: Token.Type.Value }\r\n ];\r\n var extractedToken = typeInducers.find(function (inducer) { return inducer.predicate(token); });\r\n return extractedToken\r\n ? extractedToken.type\r\n : Token.Type.Unknown;\r\n };\r\n TokenHelper.getPrecedence = function (token) {\r\n return [\r\n [TokenHelper.isAddition, TokenHelper.isSubtraction],\r\n [TokenHelper.isMultiplication, TokenHelper.isDivision],\r\n [TokenHelper.isMod, TokenHelper.isPow],\r\n [TokenHelper.isBracket]\r\n ].findIndex(function (predicate) { return predicate.some(function (func) { return func(token); }); });\r\n };\r\n return TokenHelper;\r\n}(TokenHelperBase));\r\n\r\nvar BuilderHelper = /** @class */ (function () {\r\n function BuilderHelper() {\r\n }\r\n BuilderHelper.isOperand = function (data) {\r\n return !!data.value;\r\n };\r\n BuilderHelper.isTree = function (value) {\r\n return TokenHelper.isObject(value) && !TokenHelper.isArray(value);\r\n };\r\n BuilderHelper.needParse = function (value) {\r\n return !BuilderHelper.isTree(value);\r\n };\r\n BuilderHelper.needUnparse = function (value) {\r\n return BuilderHelper.isTree(value);\r\n };\r\n return BuilderHelper;\r\n}());\r\n\r\nvar StringHelper = /** @class */ (function () {\r\n function StringHelper() {\r\n }\r\n StringHelper.format = function (value) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var targetValue = value;\r\n if (args)\r\n args.forEach(function (match, index) { return targetValue = StringHelper.replaceArg(index, targetValue, match); });\r\n return targetValue;\r\n };\r\n StringHelper.replaceArg = function (match, target, value) {\r\n return target.replace(new RegExp(\"\\\\{\" + match + \"\\\\}\", 'g'), value);\r\n };\r\n return StringHelper;\r\n}());\r\n\r\nvar success = 0;\r\nvar ParserError = /** @class */ (function (_super) {\r\n __extends(ParserError, _super);\r\n function ParserError(error) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var _this = _super.call(this) || this;\r\n _this.error = error;\r\n Object.setPrototypeOf(_this, ParserError.prototype);\r\n if (args.length)\r\n _this.error = __assign({}, _this.error, { text: StringHelper.format.apply(StringHelper, [_this.error.text].concat(args)) });\r\n _this.code = _this.error.code;\r\n _this.text = _this.error.text;\r\n _this.message = _this.text;\r\n return _this;\r\n }\r\n ParserError.prototype.withStack = function (stack) {\r\n this.parserStack = stack;\r\n return this;\r\n };\r\n ParserError.defaultParserStack = { line: 0, col: 0 };\r\n return ParserError;\r\n}(Error));\r\n\r\nvar Packer = /** @class */ (function () {\r\n function Packer() {\r\n }\r\n Packer.makeData = function (data, code) {\r\n if (code === void 0) { code = success; }\r\n return { code: code, data: data };\r\n };\r\n Packer.makeError = function (error) {\r\n return __assign({}, this.makeData(error.text, error.code), { stack: error.parserStack || __assign({}, ParserError.defaultParserStack) });\r\n };\r\n return Packer;\r\n}());\r\n\r\n/* tslint:disable:max-line-length */\r\nvar BuilderError;\r\n(function (BuilderError) {\r\n BuilderError.id = 0x0300;\r\n BuilderError.emptyData = { code: 0x0300, text: 'data is empty' };\r\n})(BuilderError || (BuilderError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\n/* tslint:disable:max-line-length */\r\nvar TokenError;\r\n(function (TokenError) {\r\n TokenError.id = 0x0100;\r\n TokenError.invalidToken = { code: 0x0100, text: '`{0}` token is invalid token type' };\r\n TokenError.invalidTwoOperator = { code: 0x0101, text: 'two operators `{0}`, `{1}` can not come together' };\r\n TokenError.invalidNonNumericValue = { code: 0x0102, text: 'non-numeric token `{0}` can not be consecutive' };\r\n TokenError.missingOperator = { code: 0x0112, text: 'the operator is missing after `{0}`' };\r\n TokenError.missingOpenBracket = { code: 0x0120, text: 'missing open bracket, you cannot close the bracket' };\r\n TokenError.missingCloseBracket = { code: 0x0121, text: 'missing close bracket, the bracket must be closed' };\r\n TokenError.missingValueBefore = { code: 0x0122, text: 'missing value before `{0}` token' };\r\n TokenError.missingValueAfter = { code: 0x0123, text: 'missing value after `{0}` token' };\r\n TokenError.emptyToken = { code: 0x0150, text: 'token is empty' };\r\n})(TokenError || (TokenError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\nvar AbstractSyntaxTreeNode = /** @class */ (function () {\r\n function AbstractSyntaxTreeNode(value) {\r\n if (value)\r\n this.value = value;\r\n }\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"value\", {\r\n get: function () {\r\n return this._value;\r\n },\r\n set: function (value) {\r\n this._value = TokenHelper.isNumeric(value)\r\n ? Number(value)\r\n : value;\r\n this._type = TokenHelper.induceType(this.value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"type\", {\r\n get: function () {\r\n return this._type;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"subType\", {\r\n get: function () {\r\n return this._subType;\r\n },\r\n set: function (value) {\r\n this._subType = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"parent\", {\r\n get: function () {\r\n return this._parent;\r\n },\r\n set: function (value) {\r\n this._parent = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"leftNode\", {\r\n get: function () {\r\n return this._leftNode;\r\n },\r\n set: function (node) {\r\n if (!node)\r\n return;\r\n this._leftNode = node;\r\n node.parent = this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbstractSyntaxTreeNode.prototype, \"rightNode\", {\r\n get: function () {\r\n return this._rightNode;\r\n },\r\n set: function (node) {\r\n if (!node)\r\n return;\r\n this._rightNode = node;\r\n node.parent = this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbstractSyntaxTreeNode;\r\n}());\r\n\r\nvar AbstractSyntaxTreeBase = /** @class */ (function (_super) {\r\n __extends(AbstractSyntaxTreeBase, _super);\r\n function AbstractSyntaxTreeBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AbstractSyntaxTreeBase.prototype.findRoot = function () {\r\n if (this.isRoot())\r\n return this.value !== undefined || !this.leftNode\r\n ? this\r\n : this.leftNode;\r\n return this._parent.findRoot();\r\n };\r\n AbstractSyntaxTreeBase.prototype.isRoot = function () {\r\n return !this._parent;\r\n };\r\n AbstractSyntaxTreeBase.prototype.isValid = function () {\r\n return this.value && (!this.leftNode && !this.rightNode) || (!!this.leftNode && !!this.rightNode);\r\n };\r\n AbstractSyntaxTreeBase.prototype.hasOpenBracket = function () {\r\n if (TokenHelper.isBracketOpen(this.value))\r\n return true;\r\n var leftNodeHasOpenBracket = this.leftNode ? this.leftNode.hasOpenBracket() : false;\r\n var rightNodeHasOpenBracket = this.rightNode ? this.rightNode.hasOpenBracket() : false;\r\n return leftNodeHasOpenBracket || rightNodeHasOpenBracket;\r\n };\r\n AbstractSyntaxTreeBase.prototype.findOpenedBracket = function () {\r\n if (this.isRoot())\r\n return undefined;\r\n if (TokenHelper.isBracketOpen(this._value))\r\n return this;\r\n return this._parent.findOpenedBracket();\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeRootBracket = function () {\r\n var rootNode = this.findRoot();\r\n if (TokenHelper.isBracketOpen(rootNode.value))\r\n rootNode.leftNode.removeParent();\r\n return this === rootNode\r\n ? rootNode.leftNode\r\n : this;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeClosestBracket = function () {\r\n var node = this.findOpenedBracket();\r\n if (!node)\r\n throw new ParserError(TokenError.missingOpenBracket);\r\n var targetNode = node.leftNode;\r\n targetNode.subType = Token.SubType.Group;\r\n if (!node.parent) {\r\n targetNode.removeParent();\r\n return targetNode;\r\n }\r\n if (node.parent.leftNode === node)\r\n node.parent.leftNode = targetNode;\r\n else\r\n node.parent.rightNode = targetNode;\r\n return node.parent;\r\n };\r\n AbstractSyntaxTreeBase.prototype.climbUp = function (token) {\r\n return this.isClimbTop(token)\r\n ? this\r\n : this._parent.climbUp(token);\r\n };\r\n AbstractSyntaxTreeBase.prototype.isClimbTop = function (token) {\r\n return this.isTokenHighest(token) ||\r\n !this.parent ||\r\n TokenHelper.isBracketOpen(this.value);\r\n };\r\n AbstractSyntaxTreeBase.prototype.isTokenHighest = function (token) {\r\n return TokenHelper.isHigher(token, this.value) && this.subType !== Token.SubType.Group;\r\n };\r\n AbstractSyntaxTreeBase.prototype.createChildNode = function (value) {\r\n var node = new this.constructor(value);\r\n node.parent = this;\r\n return node;\r\n };\r\n AbstractSyntaxTreeBase.prototype.createParentNode = function (value) {\r\n var node = new this.constructor(value);\r\n this.parent = node;\r\n return node;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertOperatorNode = function (value) {\r\n var rootNode = this.climbUp(value);\r\n if (TokenHelper.isBracketOpen(rootNode.value))\r\n return rootNode.insertJointNodeToLeft(value);\r\n if (this.needJointRight(rootNode, value))\r\n return rootNode.insertJointNodeToRight(value);\r\n var newNode = rootNode.createParentNode(value);\r\n newNode.leftNode = rootNode;\r\n return newNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.needJointRight = function (rootNode, value) {\r\n return rootNode.isTokenHighest(value) && rootNode.parent || this === rootNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertNode = function (value) {\r\n if (TokenHelper.isSymbol(value))\r\n if (!this.value) {\r\n this.value = value;\r\n return this;\r\n }\r\n if (TokenHelper.isOperator(value))\r\n return this.insertOperatorNode(value);\r\n var valueNode = this.createChildNode(value);\r\n if (!this.leftNode)\r\n this.leftNode = valueNode;\r\n else\r\n this.rightNode = valueNode;\r\n return valueNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertJointNodeToLeft = function (value) {\r\n var jointNode = this.createChildNode(value);\r\n jointNode.leftNode = this.leftNode;\r\n jointNode.rightNode = this.rightNode;\r\n this.leftNode = jointNode;\r\n return jointNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.insertJointNodeToRight = function (value) {\r\n var jointNode = this.createChildNode(value);\r\n jointNode.leftNode = this.rightNode;\r\n this.rightNode = jointNode;\r\n return jointNode;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeLeftNode = function () {\r\n this._leftNode.removeParent();\r\n this._leftNode = undefined;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeRightNode = function () {\r\n this._rightNode.removeParent();\r\n this._rightNode = undefined;\r\n };\r\n AbstractSyntaxTreeBase.prototype.removeParent = function () {\r\n this._parent = undefined;\r\n };\r\n return AbstractSyntaxTreeBase;\r\n}(AbstractSyntaxTreeNode));\r\n\r\nvar AbstractSyntaxTree = /** @class */ (function (_super) {\r\n __extends(AbstractSyntaxTree, _super);\r\n function AbstractSyntaxTree() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(AbstractSyntaxTree.prototype, \"expression\", {\r\n get: function () {\r\n return this.makeExpression();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AbstractSyntaxTree.prototype.getParentOperator = function () {\r\n if (this.isRoot())\r\n return undefined;\r\n return this.parent.findOperator();\r\n };\r\n AbstractSyntaxTree.prototype.findOperator = function () {\r\n if (this.type === Token.Type.Operator)\r\n return this;\r\n return this.parent.findOperator();\r\n };\r\n AbstractSyntaxTree.prototype.makeExpression = function () {\r\n return this.type === Token.Type.Operator\r\n ? this.makeOperatorExpression()\r\n : this.makeValueExpression();\r\n };\r\n AbstractSyntaxTree.prototype.makeOperatorExpression = function () {\r\n var expression = (this.leftNode ? this.leftNode.expression : []).concat([\r\n this.value\r\n ], this.rightNode ? this.rightNode.expression : []);\r\n var parentOperator = this.getParentOperator();\r\n return parentOperator && TokenHelper.isHigher(parentOperator.value, this.value)\r\n ? [Token.literal.BracketOpen].concat(expression, [Token.literal.BracketClose]) : expression;\r\n };\r\n AbstractSyntaxTree.prototype.makeValueExpression = function () {\r\n return [this.value];\r\n };\r\n return AbstractSyntaxTree;\r\n}(AbstractSyntaxTreeBase));\r\n\r\nvar TokenValidateLevel;\r\n(function (TokenValidateLevel) {\r\n TokenValidateLevel[TokenValidateLevel[\"Pass\"] = 0] = \"Pass\";\r\n TokenValidateLevel[TokenValidateLevel[\"Escape\"] = 1] = \"Escape\";\r\n TokenValidateLevel[TokenValidateLevel[\"Fatal\"] = 2] = \"Fatal\";\r\n})(TokenValidateLevel || (TokenValidateLevel = {}));\r\nvar TokenValidator = /** @class */ (function () {\r\n function TokenValidator() {\r\n }\r\n TokenValidator.validateToken = function (token) {\r\n var level = TokenValidator.extractTokenLevel(token);\r\n if (level === TokenValidateLevel.Fatal)\r\n return new ParserError(TokenError.invalidToken, token);\r\n };\r\n TokenValidator.validateValueToken = function (token, prevToken) {\r\n if (!prevToken)\r\n return undefined;\r\n if (TokenHelper.isValue(prevToken))\r\n return new ParserError(TokenError.missingOperator, prevToken);\r\n if (!TokenHelper.isBracketOpen(prevToken) && !TokenHelper.isOperator(prevToken))\r\n return new ParserError(TokenError.missingOperator, prevToken);\r\n };\r\n TokenValidator.extractTokenLevel = function (token) {\r\n var levelExtractors = [\r\n { predicate: TokenHelper.isUnkown, level: TokenValidateLevel.Fatal },\r\n { predicate: TokenHelper.isToken, level: TokenValidateLevel.Pass }\r\n ];\r\n var extractedLevel = levelExtractors.find(function (extractor) { return extractor.predicate(token); });\r\n return extractedLevel\r\n ? extractedLevel.level\r\n : TokenValidateLevel.Fatal;\r\n };\r\n return TokenValidator;\r\n}());\r\n\r\nvar TokenEnumerable = /** @class */ (function () {\r\n function TokenEnumerable(token) {\r\n this.token = token;\r\n this.tokenStack = [];\r\n this.cursor = 0;\r\n this._nextStack = {\r\n line: 0,\r\n col: 0\r\n };\r\n }\r\n Object.defineProperty(TokenEnumerable.prototype, \"stack\", {\r\n get: function () {\r\n return this._stack || this._nextStack;\r\n },\r\n set: function (value) {\r\n this._stack = this._nextStack;\r\n this._nextStack = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TokenEnumerable.prototype.rewind = function () {\r\n this.cursor = 0;\r\n this.currentToken = undefined;\r\n this._stack = undefined;\r\n this._nextStack = {\r\n col: 0,\r\n line: 0\r\n };\r\n this.tokenStack = [];\r\n };\r\n TokenEnumerable.prototype.calculateStack = function (token) {\r\n if (TokenHelper.isLineEscape(token)) {\r\n this.stack = {\r\n line: this._nextStack.line + 1,\r\n col: 0\r\n };\r\n return;\r\n }\r\n this.stack = {\r\n line: this._nextStack.line,\r\n col: this._nextStack.col + 1\r\n };\r\n };\r\n TokenEnumerable.prototype.finalizeStack = function () {\r\n this.stack = undefined;\r\n };\r\n TokenEnumerable.prototype.addStack = function (token) {\r\n this.tokenStack.push(token);\r\n };\r\n TokenEnumerable.prototype.popStack = function () {\r\n return this.tokenStack.length\r\n ? this.tokenStack[this.tokenStack.length - 1]\r\n : undefined;\r\n };\r\n TokenEnumerable.prototype.next = function () {\r\n var tokenStack = [];\r\n if (this.cursor >= this.token.length)\r\n return undefined;\r\n do {\r\n this.currentToken = this.findToken();\r\n if (!TokenHelper.isUnkown(this.currentToken))\r\n tokenStack.push(this.currentToken);\r\n } while (this.proceedNext());\r\n var token = this.makeToken(tokenStack);\r\n var error = TokenValidator.validateToken(token);\r\n if (error)\r\n throw error;\r\n return token;\r\n };\r\n TokenEnumerable.prototype.proceedNext = function () {\r\n var token = this.currentToken;\r\n var nextToken = this.token[this.cursor];\r\n return this.isSequentialValue(token, nextToken);\r\n };\r\n TokenEnumerable.prototype.isSequentialValue = function (token, nextToken) {\r\n var tokenType = TokenHelper.induceType(token);\r\n var nextTokenType = TokenHelper.induceType(nextToken);\r\n return tokenType === Token.Type.Value && TokenHelper.isNumeric(token) && tokenType === nextTokenType ||\r\n tokenType === Token.Type.Value && TokenHelper.isNumeric(token) && nextTokenType === Token.Type.Dot ||\r\n tokenType === Token.Type.Dot && TokenHelper.isNumeric(nextToken) && nextTokenType === Token.Type.Value;\r\n };\r\n TokenEnumerable.prototype.findToken = function () {\r\n while (this.cursor < this.token.length) {\r\n var token = this.getToken();\r\n this.cursor += 1;\r\n this.calculateStack(token);\r\n if (!TokenHelper.isWhiteSpace(token))\r\n return token;\r\n }\r\n };\r\n TokenEnumerable.prototype.getToken = function () {\r\n var token = this.token[this.cursor];\r\n return this.getAliasToken(token);\r\n };\r\n TokenEnumerable.prototype.getAliasToken = function (token) {\r\n if (!TokenHelper.isOperator(token))\r\n return token;\r\n return Object.keys(Token.value)\r\n .map(function (operatorType) { return Token.value[operatorType].symbols.includes(token)\r\n ? Token.value[operatorType].alias\r\n : undefined; })\r\n .find(function (alias) { return alias !== undefined; }) || token;\r\n };\r\n TokenEnumerable.prototype.isTokenArrayNumeric = function (tokens) {\r\n return tokens.every(function (token) { return TokenHelper.isNumeric(token) || TokenHelper.isDot(token); });\r\n };\r\n TokenEnumerable.prototype.makeToken = function (tokens) {\r\n if (!tokens.length)\r\n return undefined;\r\n if (this.isTokenArrayNumeric(tokens))\r\n return tokens.join('');\r\n if (tokens.length > 1)\r\n throw new ParserError(TokenError.invalidNonNumericValue, this.makeTokenString(tokens));\r\n return tokens[0];\r\n };\r\n TokenEnumerable.prototype.makeTokenString = function (tokens) {\r\n return tokens.map(function (token) { return typeof token === 'object' ? JSON.stringify(token) : token; }).join('');\r\n };\r\n return TokenEnumerable;\r\n}());\r\n\r\nvar GeneralError;\r\n(function (GeneralError) {\r\n GeneralError.id = 0x1000;\r\n GeneralError.unknownError = { code: 0x1000, text: 'unknown error is occurred' };\r\n GeneralError.methodNotImplemented = { code: 0x1001, text: 'method not implemented' };\r\n})(GeneralError || (GeneralError = {}));\r\n\r\nvar AbstractSyntaxTreeValidator = /** @class */ (function () {\r\n function AbstractSyntaxTreeValidator() {\r\n }\r\n AbstractSyntaxTreeValidator.validate = function (ast) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var validators = [\r\n this.validateMissingValue,\r\n this.validateMissingCloseBracket\r\n ];\r\n return validators\r\n .map(function (validator) { return validator.apply(void 0, [ast].concat(args)); })\r\n .find(function (validator) { return validator !== undefined; });\r\n };\r\n AbstractSyntaxTreeValidator.validateMissingValue = function (ast) {\r\n if (!ast)\r\n return;\r\n var childError = AbstractSyntaxTreeValidator.validateChildMissingValue(ast);\r\n return childError || AbstractSyntaxTreeValidator.validateCurrentMissingValue(ast);\r\n };\r\n AbstractSyntaxTreeValidator.validateCurrentMissingValue = function (ast) {\r\n if (ast.type !== Token.Type.Operator || ast.leftNode && ast.rightNode)\r\n return;\r\n return !ast.leftNode\r\n ? new ParserError(TokenError.missingValueBefore, ast.value)\r\n : new ParserError(TokenError.missingValueAfter, ast.value);\r\n };\r\n AbstractSyntaxTreeValidator.validateChildMissingValue = function (ast) {\r\n return [\r\n AbstractSyntaxTreeValidator.validateMissingValue(ast.leftNode),\r\n AbstractSyntaxTreeValidator.validateMissingValue(ast.rightNode)\r\n ]\r\n .find(function (error) { return error !== undefined; });\r\n };\r\n AbstractSyntaxTreeValidator.validateMissingCloseBracket = function (ast) {\r\n if (ast.hasOpenBracket())\r\n return new ParserError(TokenError.missingCloseBracket);\r\n };\r\n AbstractSyntaxTreeValidator.validateInvalidTwoOperator = function (ast, token, lastToken) {\r\n if (!TokenHelper.isBracket(ast.value) && !ast.rightNode)\r\n return new ParserError(TokenError.invalidTwoOperator, lastToken, token);\r\n };\r\n return AbstractSyntaxTreeValidator;\r\n}());\r\n\r\nvar TokenAnalyzer = /** @class */ (function (_super) {\r\n __extends(TokenAnalyzer, _super);\r\n function TokenAnalyzer(token) {\r\n return _super.call(this, token) || this;\r\n }\r\n TokenAnalyzer.prototype.parse = function () {\r\n var _this = this;\r\n this.try(function () { return _this.preValidate(); });\r\n this.initialize();\r\n this.try(function () { return _this.makeAst(); });\r\n this.try(function () { return _this.postValidate(); });\r\n return this.ast;\r\n };\r\n TokenAnalyzer.prototype.initialize = function () {\r\n this.ast = new AbstractSyntaxTree(Token.literal.BracketOpen);\r\n this.ast.leftNode = new AbstractSyntaxTree();\r\n this.currentTree = this.ast.leftNode;\r\n this.rewind();\r\n };\r\n TokenAnalyzer.prototype.getAst = function () {\r\n return this.ast;\r\n };\r\n TokenAnalyzer.prototype.makeAst = function () {\r\n var _this = this;\r\n var token;\r\n while (token = this.next()) {\r\n this.try(function () { return _this.doAnalyzeToken(token); });\r\n }\r\n this.finalizeStack();\r\n this.ast = this.ast.removeRootBracket().findRoot();\r\n };\r\n TokenAnalyzer.prototype.try = function (tryFunction) {\r\n try {\r\n return tryFunction();\r\n }\r\n catch (error) {\r\n this.handleError(error);\r\n }\r\n };\r\n TokenAnalyzer.prototype.preValidate = function () {\r\n if (!this.token || !this.token.length)\r\n throw new ParserError(TokenError.emptyToken);\r\n };\r\n TokenAnalyzer.prototype.postValidate = function () {\r\n var error = AbstractSyntaxTreeValidator.validate(this.ast);\r\n if (error)\r\n throw error;\r\n };\r\n TokenAnalyzer.prototype.handleError = function (error) {\r\n if (error instanceof ParserError)\r\n throw error.withStack(this.stack);\r\n throw new ParserError(GeneralError.unknownError).withStack(this.stack);\r\n };\r\n TokenAnalyzer.prototype.doAnalyzeToken = function (token) {\r\n this.analyzeToken(token);\r\n this.addStack(token);\r\n };\r\n TokenAnalyzer.prototype.analyzeToken = function (token) {\r\n var lastToken = this.popStack();\r\n if (TokenHelper.isBracket(token)) {\r\n this.analyzeBracketToken(token);\r\n return;\r\n }\r\n if (TokenHelper.isOperator(token)) {\r\n this.analyzeOperatorToken(token);\r\n return;\r\n }\r\n var error = TokenValidator.validateValueToken(token, lastToken);\r\n if (error)\r\n throw error;\r\n this.currentTree.insertNode(token);\r\n };\r\n TokenAnalyzer.prototype.analyzeBracketToken = function (token) {\r\n if (TokenHelper.isBracketOpen(token)) {\r\n this.analyzeImplicitToken();\r\n this.currentTree = this.currentTree.insertNode(token);\r\n return;\r\n }\r\n if (TokenHelper.isBracketClose(token)) {\r\n this.currentTree = this.currentTree.removeClosestBracket();\r\n this.ast = this.currentTree.findRoot();\r\n return;\r\n }\r\n };\r\n TokenAnalyzer.prototype.analyzeOperatorToken = function (token) {\r\n var lastToken = this.popStack();\r\n if (TokenHelper.isOperator(lastToken))\r\n throw new ParserError(TokenError.invalidTwoOperator, lastToken, token);\r\n if (!this.currentTree.value) {\r\n this.currentTree.value = token;\r\n return;\r\n }\r\n var error = AbstractSyntaxTreeValidator.validateInvalidTwoOperator(this.currentTree, token, lastToken);\r\n if (error)\r\n throw error;\r\n this.currentTree = this.currentTree.insertNode(token);\r\n this.ast = this.ast.findRoot();\r\n };\r\n TokenAnalyzer.prototype.analyzeImplicitToken = function () {\r\n var lastToken = this.popStack();\r\n if (lastToken && !TokenHelper.isSymbol(lastToken) || TokenHelper.isBracketClose(lastToken))\r\n this.insertImplicitMultiplication();\r\n };\r\n TokenAnalyzer.prototype.insertImplicitMultiplication = function () {\r\n this.analyzeToken(Token.literal.Multiplication);\r\n this.addStack(Token.literal.Multiplication);\r\n };\r\n return TokenAnalyzer;\r\n}(TokenEnumerable));\r\n\r\nvar ParserHelper = /** @class */ (function () {\r\n function ParserHelper() {\r\n }\r\n ParserHelper.getArray = function (data) {\r\n return typeof data === 'string'\r\n ? this.stringToArray(data)\r\n : data;\r\n };\r\n ParserHelper.stringToArray = function (value) {\r\n return value.split('');\r\n };\r\n return ParserHelper;\r\n}());\r\n\r\nvar Parser = /** @class */ (function () {\r\n function Parser() {\r\n }\r\n Parser.parse = function (data) {\r\n var analyzer = new TokenAnalyzer(ParserHelper.getArray(data));\r\n return analyzer.parse();\r\n };\r\n Parser.unparse = function (ast) {\r\n return ast.expression;\r\n };\r\n return Parser;\r\n}());\r\n\r\nvar BuilderBase = /** @class */ (function () {\r\n function BuilderBase(treeBuilder) {\r\n this.treeBuilder = treeBuilder;\r\n }\r\n BuilderBase.prototype.build = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doBuild(data); });\r\n };\r\n BuilderBase.prototype.parse = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doParse(data); });\r\n };\r\n BuilderBase.prototype.unparse = function (data) {\r\n var _this = this;\r\n return this.try(function () { return _this.doUnparse(data); });\r\n };\r\n BuilderBase.prototype.handleError = function (error) {\r\n return Packer.makeError(error);\r\n };\r\n BuilderBase.prototype.try = function (tryFunc) {\r\n try {\r\n return tryFunc();\r\n }\r\n catch (error) {\r\n return this.handleError(error);\r\n }\r\n };\r\n BuilderBase.prototype.doBuild = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n BuilderBase.prototype.doParse = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n BuilderBase.prototype.doUnparse = function (data) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n return BuilderBase;\r\n}());\r\n\r\nvar Builder = /** @class */ (function (_super) {\r\n __extends(Builder, _super);\r\n function Builder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Builder.prototype.doBuild = function (data) {\r\n if (!data)\r\n throw new ParserError(BuilderError.emptyData);\r\n if (BuilderHelper.needParse(data))\r\n return this.parse(data);\r\n if (BuilderHelper.needUnparse(data))\r\n return this.unparse(data);\r\n };\r\n Builder.prototype.doParse = function (data) {\r\n var ast = Parser.parse(data);\r\n var tree = this.treeBuilder.makeTree(ast);\r\n return Packer.makeData(tree);\r\n };\r\n Builder.prototype.doUnparse = function (data) {\r\n var ast = this.treeBuilder.makeAst(data);\r\n var expression = Parser.unparse(ast);\r\n return Packer.makeData(expression);\r\n };\r\n return Builder;\r\n}(BuilderBase));\r\n\r\n/* tslint:disable:max-line-length */\r\nvar TreeError;\r\n(function (TreeError) {\r\n TreeError.id = 0x0200;\r\n TreeError.emptyAst = { code: 0x0200, text: 'AST is empty' };\r\n TreeError.emptyTree = { code: 0x0201, text: 'tree is empty' };\r\n TreeError.invalidParserTree = { code: 0x0220, text: 'invalid parser tree' };\r\n})(TreeError || (TreeError = {}));\r\n/* tslint:enable:max-line-length */\r\n\r\nvar TreeBuilderBase = /** @class */ (function () {\r\n function TreeBuilderBase() {\r\n }\r\n TreeBuilderBase.prototype.makeTree = function (ast) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n TreeBuilderBase.prototype.makeAst = function (tree) {\r\n throw new ParserError(GeneralError.methodNotImplemented);\r\n };\r\n return TreeBuilderBase;\r\n}());\r\n\r\nvar TreeBuilder = /** @class */ (function (_super) {\r\n __extends(TreeBuilder, _super);\r\n function TreeBuilder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TreeBuilder.prototype.makeTree = function (ast) {\r\n if (!ast)\r\n throw new ParserError(TreeError.emptyAst);\r\n var tree = this.makeNode(ast);\r\n if (!TreeBuilder.isValid(tree))\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return tree;\r\n };\r\n TreeBuilder.prototype.makeAst = function (tree) {\r\n if (!tree)\r\n throw new ParserError(TreeError.emptyTree);\r\n var ast = this.makeAstNode(tree);\r\n if (!ast.isValid())\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return ast;\r\n };\r\n TreeBuilder.prototype.makeNode = function (node) {\r\n if (!node)\r\n return undefined;\r\n return node.type === Token.Type.Operator\r\n ? this.makeOperatorNode(node)\r\n : this.makeValueNode(node);\r\n };\r\n TreeBuilder.prototype.makeOperatorNode = function (sourceNode) {\r\n return {\r\n operator: sourceNode.value,\r\n operand1: this.makeNode(sourceNode.leftNode),\r\n operand2: this.makeNode(sourceNode.rightNode)\r\n };\r\n };\r\n TreeBuilder.prototype.makeValueNode = function (sourceNode) {\r\n return {\r\n value: this.makeOperandValue(sourceNode)\r\n };\r\n };\r\n TreeBuilder.prototype.makeOperandValue = function (sourceNode) {\r\n var type = TokenHelper.isObject(sourceNode.value)\r\n ? 'item'\r\n : 'unit';\r\n return _a = {\r\n type: type\r\n }, _a[type] = sourceNode.value, _a;\r\n var _a;\r\n };\r\n TreeBuilder.prototype.makeAstNode = function (node) {\r\n if (!node)\r\n return undefined;\r\n if (TreeBuilder.isTree(node)) {\r\n var tree = node;\r\n var ast = new AbstractSyntaxTree(tree.operator);\r\n ast.leftNode = this.makeAstNode(tree.operand1);\r\n ast.rightNode = this.makeAstNode(tree.operand2);\r\n return ast;\r\n }\r\n var operand = node;\r\n return new AbstractSyntaxTree(TreeBuilder.getValue(operand));\r\n };\r\n TreeBuilder.isTree = function (node) {\r\n return !!node.operator;\r\n };\r\n TreeBuilder.getValue = function (operand) {\r\n if (!TreeBuilder.isValidOperand(operand))\r\n throw new ParserError(TreeError.invalidParserTree);\r\n return operand.value.type === 'item'\r\n ? operand.value.item\r\n : operand.value.unit;\r\n };\r\n TreeBuilder.isValid = function (node) {\r\n var tree = node;\r\n var operand = node;\r\n return !!(tree.operator && tree.operand1 && tree.operand2) || operand.value !== undefined;\r\n };\r\n TreeBuilder.isValidOperand = function (operand) {\r\n return operand && operand.value && operand.value.type && operand.value[operand.value.type] !== undefined;\r\n };\r\n return TreeBuilder;\r\n}(TreeBuilderBase));\r\n\r\nvar _MODULE_VERSION_ = '0.0.10';\r\nfunction getVersion() {\r\n return _MODULE_VERSION_;\r\n}\r\nfunction convert(data) {\r\n var builder = new Builder(new TreeBuilder());\r\n return builder.build(data);\r\n}\r\nfunction valid(data) {\r\n var builder = new Builder(new TreeBuilder());\r\n return builder.build(data).code === success;\r\n}\r\n\r\nexport { getVersion, convert, valid };\r\n","export class StringHelper {\r\n public static isNumeric(value: string): boolean {\r\n return /^-?[\\d,]+\\.?\\d*$/.test(value) && typeof value !== 'object';\r\n }\r\n\r\n public static toNumber(value: string): string {\r\n return value.replace(/[^\\d-\\.]/g, '');\r\n }\r\n}\r\n","import { supportedCharacters } from './values';\r\nimport { StringHelper } from './string.helper';\r\n\r\nexport class FormulizeTokenHelper {\r\n public static toDecimal(value: string): string {\r\n const splitValue = StringHelper.toNumber(value).split('.');\r\n if (splitValue.length)\r\n splitValue[0] = splitValue[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return splitValue.join('.');\r\n }\r\n\r\n public static isValid(value: string): boolean {\r\n return FormulizeTokenHelper.isNumeric(value) || FormulizeTokenHelper.supportValue(value);\r\n }\r\n\r\n public static isNumeric(value: string): boolean {\r\n return /[0-9\\.]/.test(value);\r\n }\r\n\r\n public static isBracket(value: string): boolean {\r\n return /^[()]$/.test(value);\r\n }\r\n\r\n public static isComma(value: string): boolean {\r\n return value === ',';\r\n }\r\n\r\n public static supportValue(value: string): boolean {\r\n return supportedCharacters.includes(value);\r\n }\r\n}\r\n","import { FormulizeTokenHelper } from '../token.helper';\n\nexport class UIElementHelper {\n public static getDragElement(id: string): HTMLElement {\n return $(`
`)[0];\n }\n\n public static getCursorElement(id: string): HTMLElement {\n return $(`
`)[0];\n }\n\n public static getUnitElement(id: string, value: string): HTMLElement {\n const unitElem = $(`
`);\n UIElementHelper.setUnitValue(id, unitElem[0], value);\n return unitElem[0];\n }\n\n public static getUnitDecimalElement(id: string, side: 'prefix' | 'suffix', value: string): HTMLElement {\n return $(`${value || ''}`)[0];\n }\n\n public static getOperatorElement(id: string, value: string): HTMLElement {\n return $(`
${(value || '').toLowerCase()}
`)[0];\n }\n\n public static getTextBoxElement(id: string): HTMLElement {\n return $(``)[0];\n }\n\n public static setUnitValue(id: string, elem: HTMLElement, value: string): void {\n if (value === undefined)\n return;\n\n $(elem).empty();\n const decimalValue = FormulizeTokenHelper.toDecimal(value);\n const split = decimalValue.split('.');\n const prefix = $(UIElementHelper.getUnitDecimalElement(id, 'prefix', split[0]));\n prefix.appendTo($(elem));\n\n if (split[1] === undefined)\n return;\n\n const suffix = $(UIElementHelper.getUnitDecimalElement(id, 'suffix', `.${split[1]}`));\n suffix.appendTo($(elem));\n }\n\n public static isElementType(id: string, type: string, elem: HTMLElement): boolean {\n return elem\n ? $(elem).hasClass(`${id}-${type}`)\n : false;\n }\n\n public static isDrag(id: string, elem: HTMLElement): boolean {\n return UIElementHelper.isElementType(id, 'drag', elem);\n }\n\n public static isCursor(id: string, elem: HTMLElement): boolean {\n return UIElementHelper.isElementType(id, 'cursor', elem);\n }\n\n public static isUnit(id: string, elem: HTMLElement): boolean {\n return UIElementHelper.isElementType(id, 'unit', elem);\n }\n\n public static isOperator(id: string, elem: HTMLElement): boolean {\n return UIElementHelper.isElementType(id, 'operator', elem);\n }\n}\n","import { FormulizeData, Position } from './ui.interface';\r\nimport { StringHelper } from '../string.helper';\r\n\r\nexport class UIHelper {\r\n public static getDataValue(data: FormulizeData): string {\r\n if (!UIHelper.isDOM(data))\r\n return StringHelper.isNumeric(data)\r\n ? StringHelper.toNumber(String(data))\r\n : data;\r\n\r\n const value = $(data).data('value') || $(data).text();\r\n return StringHelper.isNumeric(value)\r\n ? StringHelper.toNumber(String(value))\r\n : value;\r\n }\r\n\r\n public static isOverDistance(position: Position, targetPosition: Position, distance: number): boolean {\r\n return Math.abs(position.x - targetPosition.x) > distance ||\r\n Math.abs(position.y - targetPosition.y) > distance;\r\n }\r\n\r\n public static isDOM(data: FormulizeData): boolean {\r\n return data instanceof HTMLElement || data instanceof jQuery;\r\n }\r\n\r\n public static getDOM(elem: HTMLElement | JQuery): HTMLElement {\r\n return elem instanceof jQuery\r\n ? (elem)[0]\r\n : elem;\r\n }\r\n}\r\n","import { FormulizeOptions } from '../formulize.interface';\nimport { defaultOptions } from '../option.value';\nimport { UIElementHelper } from './ui.element.helper';\nimport { FormulizeTokenHelper } from '../token.helper';\n\nexport abstract class UIDom {\n protected wrapper: JQuery;\n protected container: JQuery;\n protected statusBox: JQuery;\n protected textBox: JQuery;\n protected cursor: JQuery;\n protected elem: HTMLElement;\n protected options: FormulizeOptions;\n\n protected get cursorIndex(): number {\n return this.cursor\n ? this.cursor.index()\n : 0;\n }\n\n protected get dragElem(): JQuery {\n return this.container.find(`.${this.options.id}-drag`);\n }\n\n protected initializeDOM() {\n this.wrapper = $(this.elem);\n this.wrapper.addClass(`${this.options.id}-wrapper`);\n\n this.container = $(`
`);\n this.container.appendTo(this.wrapper);\n\n this.statusBox = $(`
${this.options.text.formula}
`);\n this.statusBox.insertBefore(this.container);\n\n this.textBox = $(UIElementHelper.getTextBoxElement(this.options.id));\n this.textBox.insertAfter(this.container);\n this.textBox.trigger('focus');\n }\n\n protected bindingDOM() {\n this.wrapper = $(this.elem);\n this.container = this.wrapper.find(`.${this.options.id}-container`);\n this.statusBox = this.wrapper.find(`.${this.options.id}-alert`);\n this.textBox = this.wrapper.find(`.${this.options.id}-text`);\n }\n\n protected isAlreadyInitialized(): boolean {\n return $(this.elem).hasClass(`${this.options.id}-wrapper`);\n }\n\n protected attachEvents() {\n throw new Error('method not implemented');\n }\n\n protected getPrevUnit(elem: HTMLElement): HTMLElement {\n const prevElement = $(elem).prev();\n return UIElementHelper.isCursor(this.options.id, prevElement.get(0))\n ? prevElement.prev().get(0)\n : prevElement.get(0);\n }\n\n protected getNextUnit(elem: HTMLElement): HTMLElement {\n const nextElem = $(elem).next();\n return UIElementHelper.isCursor(this.options.id, nextElem.get(0))\n ? nextElem.next().get(0)\n : nextElem.get(0);\n }\n\n protected mergeUnit(baseElem: HTMLElement): void {\n const prevElem = $(this.getPrevUnit(baseElem));\n const nextElem = $(this.getNextUnit(baseElem));\n\n const unitElem = [prevElem, nextElem]\n .find(elem => UIElementHelper.isUnit(this.options.id, elem.get(0)));\n\n if (!unitElem)\n return;\n\n if (unitElem === prevElem) {\n prevElem.prependTo(baseElem);\n this.cursor.insertAfter(baseElem);\n } else if (unitElem === nextElem) {\n nextElem.appendTo(baseElem);\n this.cursor.insertBefore(baseElem);\n }\n\n const text = $(baseElem).text();\n UIElementHelper.setUnitValue(this.options.id, baseElem, text);\n }\n\n protected removeCursor(): void {\n this.container\n .find(`.${this.options.id}-cursor`)\n .remove();\n }\n\n protected removeUnit(): void {\n this.container\n .find(`:not(\".${this.options.id}-cursor\")`)\n .remove();\n }\n\n protected updateStatus(valid: boolean = false): void {\n const statusText = valid\n ? this.options.text.pass\n : this.options.text.error;\n\n const statusBaseClasses = ['good', 'error'];\n const statusClasses = valid\n ? statusBaseClasses\n : statusBaseClasses.reverse();\n\n this.statusBox\n .text(statusText)\n .addClass(`${this.options.id}-alert-${statusClasses[0]}`)\n .removeClass(`${this.options.id}-alert-${statusClasses[1]}`);\n }\n}\n","import { UIDom } from './ui.dom';\r\n\r\nexport abstract class UIAnalyzer extends UIDom {\r\n protected analyzeKey(keyCode: number, pressedCtrl: boolean, pressedShift: boolean): boolean {\r\n throw new Error('method not implemented');\r\n }\r\n}\r\n","import { UIAnalyzer } from './ui.analyzer';\r\nimport { FormulizeData } from './ui.interface';\r\nimport { UIHelper } from './ui.helper';\r\n\r\nexport class UIPipe extends UIAnalyzer {\r\n protected pipeInsert(data: FormulizeData): any {\r\n if (!this.options.pipe || !this.options.pipe.insert)\r\n return data;\r\n\r\n const insertData = UIHelper.isDOM(data)\r\n ? UIHelper.getDOM(data)\r\n : data;\r\n\r\n return this.options.pipe.insert(insertData);\r\n }\r\n\r\n protected pipeParse(elem: HTMLElement): any {\r\n if (!this.options.pipe || !this.options.pipe.parse)\r\n return UIHelper.getDataValue(elem);\r\n\r\n return this.options.pipe.parse(elem);\r\n }\r\n}\r\n","import { convert, valid } from 'metric-parser';\nimport { FormulizeTokenHelper } from '../token.helper';\nimport { Tree } from 'metric-parser/dist/types/tree/simple.tree/type';\nimport { UIElementHelper } from './ui.element.helper';\nimport { ElementPosition, FormulizeData, Position } from './ui.interface';\nimport { UIHelper } from './ui.helper';\nimport { UIPipe } from './ui.pipe';\nimport { ParseData } from 'metric-parser/dist/types/parser/parser';\n\nexport abstract class UIManager extends UIPipe {\n protected prevCursorIndex = 0;\n protected prevPosition: Position = { x: 0, y: 0 };\n protected dragged: boolean;\n protected moved: boolean;\n\n public pick(position: Position = { x: 0, y: 0 }) {\n this.removeCursor();\n this.cursor = $(UIElementHelper.getCursorElement(this.options.id));\n this.cursor.appendTo(this.container);\n\n const closestUnitElem = this.findClosestUnit(position);\n if (closestUnitElem)\n this.cursor.insertAfter(closestUnitElem);\n else\n this.cursor.prependTo(this.container);\n\n this.removeDrag();\n }\n\n public setData(data: Tree): void {\n this.clear();\n const result = convert(data);\n if (!result.code)\n this.insertData(result.data);\n }\n\n public getData(extractor?: (data: T) => void): T {\n const expression = this.getExpression();\n const result = convert(expression);\n\n if (extractor)\n extractor(result.data);\n\n return result.data;\n }\n\n protected triggerUpdate(): void {\n this.validate();\n $(this.elem)\n .triggerHandler(`${this.options.id}.input`, this.getData());\n }\n\n private getExpression(): FormulizeData[] {\n return this.container\n .find(`.${this.options.id}-item`)\n .toArray()\n .map(elem => this.pipeParse(elem))\n .map(value => UIHelper.getDataValue(value));\n }\n\n protected startDrag(position: Position): void {\n this.dragged = true;\n this.moved = false;\n this.prevPosition = position;\n this.pick(position);\n this.prevCursorIndex = this.cursorIndex;\n }\n\n protected endDrag(position: Position): void {\n this.dragged = false;\n\n if (this.moved)\n return;\n\n this.moved = false;\n this.pick(position);\n }\n\n protected moveDrag(position: Position): void {\n if (!this.dragged)\n return;\n\n if (!this.moved) {\n this.moved = UIHelper.isOverDistance(this.prevPosition, position, 5);\n return;\n }\n\n this.removeDrag();\n this.pick(position);\n\n if (this.prevCursorIndex === this.cursorIndex)\n return;\n\n const positions = [this.prevCursorIndex, this.cursorIndex];\n positions.sort();\n\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n if (this.cursorIndex >= this.prevCursorIndex)\n dragElem.insertBefore(this.cursor);\n else\n dragElem.insertAfter(this.cursor);\n\n this.selectRange(positions[0], positions[1]);\n }\n\n private findClosestUnit(position: Position): HTMLElement {\n const containerPosition = {\n x: this.container.offset().left,\n y: this.container.offset().top\n };\n\n const parentPadding: Position = {\n x: Number(this.container.css('padding-left').replace(/[^\\d.]/gi, '')),\n y: Number(this.container.css('padding-top').replace(/[^\\d.]/gi, ''))\n };\n\n const unitPositions: ElementPosition[] = this.container\n .children(`*:not(\".${this.options.id}-cursor\")`)\n .toArray()\n .map(elem => ({\n elem,\n x: $(elem).offset().left - containerPosition.x + parentPadding.x,\n y: $(elem).offset().top - containerPosition.y\n }));\n\n let maxY = 0;\n const closestUnitPositions = unitPositions\n .filter(unitPosition => unitPosition.x <= position.x)\n .map(unitPosition => {\n if (unitPosition.y < maxY * 0.5)\n return undefined;\n\n const diffX = Math.abs(position.x - unitPosition.x);\n const diffY = Math.abs(position.y - unitPosition.y);\n return {\n ...unitPosition,\n diff: { x: diffX, y: diffY }\n };\n })\n .filter(unitPosition => !!unitPosition);\n const filteredUnitPositions = closestUnitPositions.filter(unitPosition => unitPosition.y === maxY).length\n ? closestUnitPositions.filter(unitPosition => unitPosition.y === maxY)\n : closestUnitPositions.filter(unitPosition => unitPosition.y <= position.y);\n filteredUnitPositions.sort((a, b) => a.diff.x - b.diff.x || a.diff.y - b.diff.y);\n\n const closestUnitPosition = filteredUnitPositions.shift();\n\n return closestUnitPosition\n ? closestUnitPosition.elem\n : undefined;\n }\n\n public selectAll(): void {\n this.removeDrag();\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n dragElem.prependTo(this.container);\n this.container\n .children(`:not(\".${this.options.id}-cursor\")`)\n .appendTo(dragElem);\n }\n\n public selectRange(start: number, end: number): void {\n if (!this.dragElem.length)\n return;\n\n this.container\n .children(`:not(\".${this.options.id}-cursor\")`)\n .filter(`:gt(\"${start}\")`)\n .filter(`:lt(\"${end - start}\")`)\n .add(this.container.children(`:not(\".${this.options.id}-cursor\")`).eq(start))\n .appendTo(this.dragElem);\n }\n\n protected removeBefore(): void {\n if (this.dragElem.length) {\n this.cursor.insertBefore(this.dragElem);\n this.dragElem.remove();\n this.triggerUpdate();\n return;\n }\n\n const prevCursorElem = this.cursor.prev();\n if (!this.cursor.length || !prevCursorElem.length)\n return;\n\n if (\n prevCursorElem.hasClass(`${this.options.id}-unit`) &&\n prevCursorElem.text().length > 1\n ) {\n const text = prevCursorElem.text();\n UIElementHelper.setUnitValue(this.options.id, prevCursorElem.get(0), text.substring(0, text.length - 1));\n } else\n prevCursorElem.remove();\n\n this.triggerUpdate();\n }\n\n protected removeAfter(): void {\n if (this.dragElem.length) {\n this.cursor.insertAfter(this.dragElem);\n this.dragElem.remove();\n this.triggerUpdate();\n return;\n }\n\n const nextCursorElem = this.cursor.next();\n if (!this.cursor.length || !nextCursorElem.length)\n return;\n\n if (\n nextCursorElem.hasClass(`${this.options.id}-unit`) &&\n nextCursorElem.text().length > 1\n ) {\n const text = nextCursorElem.text();\n UIElementHelper.setUnitValue(this.options.id, nextCursorElem.get(0), text.substring(1, text.length));\n } else\n nextCursorElem.remove();\n\n this.triggerUpdate();\n }\n\n protected dragFirst(): void {\n this.cursor.prevAll().prependTo(this.dragElem);\n this.cursor.insertAfter(this.dragElem);\n }\n\n protected dragLast(): void {\n this.cursor.nextAll().appendTo(this.dragElem);\n this.cursor.insertBefore(this.dragElem);\n }\n\n protected dragLeft(): void {\n if (UIElementHelper.isDrag(this.options.id, this.cursor.prev().get(0))) {\n this.dragElem.prev().prependTo(this.dragElem);\n this.moveCursorAfter(this.dragElem.get(0));\n return;\n }\n\n if (UIElementHelper.isDrag(this.options.id, this.cursor.next().get(0))) {\n const lastDraggedElem = this.dragElem.children().last();\n lastDraggedElem.insertAfter(this.dragElem);\n\n if (!this.dragElem.children().length)\n this.removeDrag();\n\n return;\n }\n }\n\n protected dragRight(): void {\n if (UIElementHelper.isDrag(this.options.id, this.cursor.next().get(0))) {\n this.dragElem.next().appendTo(this.dragElem);\n this.moveCursorBefore(this.dragElem.get(0));\n return;\n }\n\n if (UIElementHelper.isDrag(this.options.id, this.cursor.prev().get(0))) {\n const firstDraggedElem = this.dragElem.children().first();\n firstDraggedElem.insertBefore(this.dragElem);\n\n if (!this.dragElem.children().length)\n this.removeDrag();\n\n return;\n }\n }\n\n private moveCursorBefore(elem: HTMLElement) {\n if (!$(elem).length)\n return;\n\n this.cursor.insertBefore($(elem));\n }\n\n private moveCursorAfter(elem: HTMLElement) {\n if (!$(elem).length)\n return;\n\n this.cursor.insertAfter($(elem));\n }\n\n protected moveLeftCursor(dragMode: boolean = false): void {\n const prevCursorElem = this.cursor.prev();\n\n if (!this.cursor.length || !dragMode) {\n this.moveCursorBefore(prevCursorElem.get(0));\n this.removeDrag();\n return;\n }\n\n if (!this.dragElem.length) {\n if (!prevCursorElem.length)\n return;\n\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n dragElem.insertBefore(this.cursor);\n prevCursorElem.prependTo(this.dragElem);\n return;\n }\n\n this.dragLeft();\n }\n\n protected moveUpCursor(): void {\n if (!this.cursor.length)\n return;\n\n this.pick({\n x: this.cursor.position().left + this.cursor.outerWidth(),\n y: this.cursor.position().top - this.cursor.outerHeight() / 2\n });\n }\n\n protected moveRightCursor(dragMode: boolean = false): void {\n const nextCursorElem = this.cursor.next();\n\n if (!this.cursor.length || !dragMode) {\n this.moveCursorAfter(nextCursorElem.get(0));\n this.removeDrag();\n return;\n }\n\n if (!this.dragElem.length) {\n if (!nextCursorElem.length)\n return;\n\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n dragElem.insertAfter(this.cursor);\n nextCursorElem.appendTo(this.dragElem);\n return;\n }\n\n this.dragRight();\n }\n\n protected moveDownCursor(): void {\n if (!this.cursor.length)\n return;\n\n this.pick({\n x: this.cursor.position().left + this.cursor.outerWidth(),\n y: this.cursor.position().top + this.cursor.outerHeight() * 1.5\n });\n }\n\n protected moveFirstCursor(dragMode: boolean = false): void {\n const firstCursorElem = this.container.children(':first');\n if (!this.cursor.length || !firstCursorElem.length || !dragMode) {\n this.removeDrag();\n this.moveCursorBefore(firstCursorElem.get(0));\n return;\n }\n\n if (!this.dragElem.length) {\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n dragElem.insertAfter(this.cursor);\n }\n\n this.dragFirst();\n }\n\n protected moveLastCursor(dragMode: boolean = false): void {\n const lastCursorElem = this.container.children(':last');\n if (!this.cursor.length || !lastCursorElem.length || !dragMode) {\n this.removeDrag();\n this.moveCursorAfter(lastCursorElem.get(0));\n return;\n }\n\n if (!this.dragElem.length) {\n const dragElem = $(UIElementHelper.getDragElement(this.options.id));\n dragElem.insertBefore(this.cursor);\n }\n\n this.dragLast();\n }\n\n public clear(): void {\n this.removeCursor();\n this.removeUnit();\n this.triggerUpdate();\n }\n\n public blur(): void {\n if (!this.cursor)\n return;\n\n this.cursor.remove();\n this.removeDrag();\n }\n\n public removeDrag(): void {\n this.dragElem.children().insertBefore(this.dragElem);\n this.dragElem.remove();\n this.triggerUpdate();\n }\n\n public insert(data: FormulizeData, position?: Position): void {\n if (!data)\n return;\n\n const pipedData = this.pipeInsert(data);\n\n if (!this.cursor || !this.cursor.length || position)\n this.pick(position);\n\n if (typeof pipedData === 'string' || typeof pipedData === 'number') {\n this.insertValue(String(pipedData));\n return;\n }\n\n if (!UIHelper.isDOM(pipedData))\n return;\n\n const insertElem = $(pipedData);\n insertElem.addClass(`${this.options.id}-item`);\n insertElem.insertBefore(this.cursor);\n\n this.triggerUpdate();\n }\n\n public insertValue(value: string): void {\n if (!FormulizeTokenHelper.isValid(value))\n return;\n\n if (FormulizeTokenHelper.isNumeric(value)) {\n const unitElem = $(UIElementHelper.getUnitElement(this.options.id, value));\n\n if (this.dragElem.length) {\n this.cursor.insertBefore(this.dragElem);\n this.dragElem.remove();\n }\n\n if (this.cursor && this.cursor.length)\n this.cursor.before(unitElem);\n else\n this.container.append(unitElem);\n\n this.mergeUnit(unitElem[0]);\n\n this.triggerUpdate();\n return;\n }\n\n const operatorElem = $(UIElementHelper.getOperatorElement(this.options.id, value));\n if (this.cursor && this.cursor.length)\n this.cursor.before(operatorElem);\n else\n this.container.append(operatorElem);\n\n if (FormulizeTokenHelper.isBracket(value))\n operatorElem.addClass(`${this.options.id}-bracket`);\n }\n\n public insertData(data: string | string[] | any[]): void {\n const arrayData = typeof data === 'string'\n ? data.split('')\n : data;\n\n arrayData.forEach(value => this.insert(value));\n this.triggerUpdate();\n }\n\n public validate(extractor?: (valid: boolean) => void): boolean {\n const data = this.getData();\n\n if (!data)\n return;\n\n const isValid = valid(data);\n\n this.updateStatus(isValid);\n\n if (extractor)\n extractor(isValid);\n\n return isValid;\n }\n}\n","import { UIManager } from './ui.manager';\r\nimport { FormulizeKeyHelper } from '../key.helper';\r\n\r\nexport abstract class UIHook extends UIManager {\r\n protected hookKeyDown(event: JQuery.Event): void {\r\n event.preventDefault();\r\n\r\n if (!this.cursor || !this.cursor.length)\r\n return;\r\n\r\n this.analyzeKey(event.which, event.ctrlKey, event.shiftKey);\r\n\r\n const key = FormulizeKeyHelper.getValue(event.which, event.shiftKey);\r\n if (key === undefined)\r\n return;\r\n\r\n this.insertValue(key);\r\n this.validate();\r\n }\r\n}\r\n","import { defaultOptions } from '../option.value';\r\nimport { UIHook } from './ui.hook';\r\nimport { FormulizeOptions } from '../formulize.interface';\r\n\r\nexport abstract class UIBase extends UIHook {\r\n public constructor(elem: HTMLElement, options: FormulizeOptions = { ...defaultOptions }) {\r\n super();\r\n this.elem = elem;\r\n this.options = { ...defaultOptions, ...options };\r\n\r\n if (this.isAlreadyInitialized()) {\r\n this.bindingDOM();\r\n return;\r\n }\r\n\r\n this.initializeDOM();\r\n this.attachEvents();\r\n }\r\n}\r\n","import { FormulizeKeyHelper } from '../key.helper';\r\nimport { UIBase } from './ui.base';\r\nimport { Behavior } from './ui.interface';\r\n\r\nexport class UI extends UIBase {\r\n protected analyzeKey(keyCode: number, pressedCtrl: boolean, pressedShift: boolean): boolean {\r\n const behaviors: Behavior[] = [\r\n { predicate: FormulizeKeyHelper.isReload, doBehavior: FormulizeKeyHelper.doReload },\r\n {\r\n predicate: FormulizeKeyHelper.isSelectAll,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.selectAll())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isBackspace,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.removeBefore())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isDelete,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.removeAfter())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isLeft,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveLeftCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isUp,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveUpCursor())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isRight,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveRightCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isDown,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveDownCursor())\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isHome,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveFirstCursor(pressedShift))\r\n },\r\n {\r\n predicate: FormulizeKeyHelper.isEnd,\r\n doBehavior: FormulizeKeyHelper.doAction(() => this.moveLastCursor(pressedShift))\r\n }\r\n ];\r\n const behavior = behaviors.find(behavior => behavior.predicate(keyCode, pressedCtrl, pressedShift));\r\n\r\n if (!behavior)\r\n return false;\r\n\r\n behavior.doBehavior();\r\n return true;\r\n }\r\n\r\n protected attachEvents(): void {\r\n this.textBox\r\n .off('blur')\r\n .on('blur', () => this.blur());\r\n\r\n this.textBox\r\n .off(`dblclick.${this.options.id}Handler`)\r\n .on(`dblclick.${this.options.id}Handler`, this.selectAll);\r\n\r\n this.textBox\r\n .off(`mousedown.${this.options.id}Handler`)\r\n .on(`mousedown.${this.options.id}Handler`,\r\n event => this.startDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`mouseup.${this.options.id}Handler`)\r\n .on(`mouseup.${this.options.id}Handler`,\r\n event => this.endDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`mousemove.${this.options.id}Handler`)\r\n .on(`mousemove.${this.options.id}Handler`,\r\n event => this.moveDrag({ x: event.offsetX, y: event.offsetY }));\r\n\r\n this.textBox\r\n .off(`keydown.${this.options.id}Handler`)\r\n .on(`keydown.${this.options.id}Handler`,\r\n (event: any) => {\r\n this.hookKeyDown(event);\r\n });\r\n }\r\n}\r\n","import { FormulizePluginMethods } from './formulize.jquery';\r\nimport { UI } from './ui/ui';\r\nimport { Position } from './ui/ui.interface';\r\nimport { Tree } from 'metric-parser/dist/types/tree/simple.tree/type';\r\n\r\nexport function methodBinder(this: JQuery, name: string, ...args: any[]): JQuery {\r\n this\r\n .toArray()\r\n .forEach(elem => {\r\n const instance = $(elem).data('$formulize');\r\n if (!instance)\r\n return;\r\n\r\n const base = new MethodBase(instance);\r\n Object.getPrototypeOf(base)[name].call(base, ...args);\r\n });\r\n return this;\r\n}\r\n\r\nexport class MethodBase implements FormulizePluginMethods {\r\n protected formulize: UI;\r\n\r\n constructor(formulize: UI) {\r\n this.formulize = formulize;\r\n }\r\n\r\n pick(): void {\r\n this.formulize.pick();\r\n }\r\n\r\n clear(): void {\r\n this.formulize.clear();\r\n }\r\n\r\n blur(): void {\r\n this.formulize.blur();\r\n }\r\n\r\n setData(data: Tree): void {\r\n this.formulize.setData(data);\r\n }\r\n\r\n getData(extractor?: (data: T) => void): T {\r\n return this.formulize.getData(extractor);\r\n }\r\n\r\n selectRange(start: number, end: number): void {\r\n this.formulize.selectRange(start, end);\r\n }\r\n\r\n selectAll(): void {\r\n this.formulize.selectAll();\r\n }\r\n\r\n removeDrag(): void {\r\n this.formulize.removeDrag();\r\n }\r\n\r\n insert(obj: string | number | HTMLElement | JQuery, position?: Position): void {\r\n this.formulize.insert(obj, position);\r\n }\r\n\r\n insertValue(value: string): void {\r\n this.formulize.insertValue(value);\r\n }\r\n\r\n insertData(data: string | string[] | any[]): void {\r\n this.formulize.insertData(data);\r\n }\r\n\r\n validate(extractor?: (valid: boolean) => void): boolean {\r\n return this.formulize.validate(extractor);\r\n }\r\n}\r\n","import { defaultOptions } from './option.value';\r\nimport { FormulizeFunction, FormulizeOptions } from './formulize.interface';\r\nimport { UI } from './ui/ui';\r\nimport { FormulizePlugin } from './formulize.jquery';\r\nimport { MethodBase, methodBinder } from './formulize.plugin.method';\r\n\r\nexport function pluginBinder() {\r\n const reflectedMethod = new MethodBase(null);\r\n const reflectedMethodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(reflectedMethod));\r\n\r\n $.fn.formulize = Object.assign(\r\n function (this: JQuery, options: FormulizeOptions): JQuery {\r\n this\r\n .toArray()\r\n .forEach(elem => {\r\n $(elem).data('$formulize', new UI(elem, options));\r\n });\r\n return this;\r\n },\r\n { ...defaultOptions }\r\n );\r\n\r\n reflectedMethodNames\r\n .filter(name => name !== 'constructor')\r\n .map(name => ({\r\n name,\r\n func: function (...args: any[]) {\r\n methodBinder.call(this, name, ...args);\r\n }\r\n }))\r\n .forEach(binder => {\r\n ($.fn)[binder.name] = binder.func;\r\n });\r\n}\r\n","const _MODULE_VERSION_ = '0.0.10';\n\nexport function getVersion(): string {\n return _MODULE_VERSION_;\n}\n","import '../style/formulize.scss';\nimport { pluginBinder } from './formulize.plugin';\n\nexport { UI } from './ui/ui';\nexport * from './global';\nexport * from 'metric-parser/dist/types/ast.d';\nexport * from 'metric-parser/dist/types/tree/simple.tree/type.d';\n\npluginBinder();\n"],"names":["extendStatics","__extends","__assign","StringHelper","tslib_1.__extends","tslib_1.__assign","_MODULE_VERSION_"],"mappings":"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"} \ No newline at end of file diff --git a/dist/types/ui/ui.dom.d.ts b/dist/types/ui/ui.dom.d.ts index e547636..658323d 100644 --- a/dist/types/ui/ui.dom.d.ts +++ b/dist/types/ui/ui.dom.d.ts @@ -18,4 +18,5 @@ export declare abstract class UIDom { protected mergeUnit(baseElem: HTMLElement): void; protected removeCursor(): void; protected removeUnit(): void; + protected updateStatus(valid?: boolean): void; } diff --git a/dist/types/ui/ui.element.helper.d.ts b/dist/types/ui/ui.element.helper.d.ts index ff24a5d..8f1bdf8 100644 --- a/dist/types/ui/ui.element.helper.d.ts +++ b/dist/types/ui/ui.element.helper.d.ts @@ -2,10 +2,10 @@ export declare class UIElementHelper { static getDragElement(id: string): HTMLElement; static getCursorElement(id: string): HTMLElement; static getUnitElement(id: string, value: string): HTMLElement; - static setUnitValue(id: string, elem: HTMLElement, value: string): void; static getUnitDecimalElement(id: string, side: 'prefix' | 'suffix', value: string): HTMLElement; static getOperatorElement(id: string, value: string): HTMLElement; static getTextBoxElement(id: string): HTMLElement; + static setUnitValue(id: string, elem: HTMLElement, value: string): void; static isElementType(id: string, type: string, elem: HTMLElement): boolean; static isDrag(id: string, elem: HTMLElement): boolean; static isCursor(id: string, elem: HTMLElement): boolean; diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 3886f3a..3fbff53 100644 --- a/docs/assets/js/search.js +++ b/docs/assets/js/search.js @@ -1,3 +1,3 @@ var typedoc = typedoc || {}; typedoc.search = typedoc.search || {}; - typedoc.search.data = {"kinds":{"4":"Enumeration","16":"Enumeration member","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":256,"name":"Position","url":"interfaces/position.html","classes":"tsd-kind-interface"},{"id":1,"kind":1024,"name":"x","url":"interfaces/position.html#x","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Position"},{"id":2,"kind":1024,"name":"y","url":"interfaces/position.html#y","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Position"},{"id":3,"kind":256,"name":"ElementPosition","url":"interfaces/elementposition.html","classes":"tsd-kind-interface"},{"id":4,"kind":1024,"name":"elem","url":"interfaces/elementposition.html#elem","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ElementPosition"},{"id":5,"kind":1024,"name":"diff","url":"interfaces/elementposition.html#diff","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ElementPosition"},{"id":6,"kind":65536,"name":"__type","url":"interfaces/elementposition.html#diff.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"ElementPosition.diff"},{"id":7,"kind":32,"name":"x","url":"interfaces/elementposition.html#diff.__type.x","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"ElementPosition.diff.__type"},{"id":8,"kind":32,"name":"y","url":"interfaces/elementposition.html#diff.__type.y","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"ElementPosition.diff.__type"},{"id":9,"kind":1024,"name":"x","url":"interfaces/elementposition.html#x-1","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"ElementPosition"},{"id":10,"kind":1024,"name":"y","url":"interfaces/elementposition.html#y-1","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"ElementPosition"},{"id":11,"kind":256,"name":"Behavior","url":"interfaces/behavior.html","classes":"tsd-kind-interface"},{"id":12,"kind":1024,"name":"predicate","url":"interfaces/behavior.html#predicate","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Behavior"},{"id":13,"kind":65536,"name":"__type","url":"interfaces/behavior.html#predicate.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"Behavior.predicate"},{"id":14,"kind":1024,"name":"doBehavior","url":"interfaces/behavior.html#dobehavior","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Behavior"},{"id":15,"kind":65536,"name":"__type","url":"interfaces/behavior.html#dobehavior.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"Behavior.doBehavior"},{"id":16,"kind":4194304,"name":"FormulizeData","url":"globals.html#formulizedata","classes":"tsd-kind-type-alias"},{"id":17,"kind":256,"name":"OptionText","url":"interfaces/optiontext.html","classes":"tsd-kind-interface"},{"id":18,"kind":1024,"name":"formula","url":"interfaces/optiontext.html#formula","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":19,"kind":1024,"name":"error","url":"interfaces/optiontext.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":20,"kind":1024,"name":"pass","url":"interfaces/optiontext.html#pass","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":21,"kind":4194304,"name":"PipeInsert","url":"globals.html#pipeinsert","classes":"tsd-kind-type-alias"},{"id":22,"kind":65536,"name":"__type","url":"globals.html#pipeinsert.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"PipeInsert"},{"id":23,"kind":4194304,"name":"PipeParse","url":"globals.html#pipeparse","classes":"tsd-kind-type-alias"},{"id":24,"kind":65536,"name":"__type","url":"globals.html#pipeparse.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"PipeParse"},{"id":25,"kind":256,"name":"FormulizeOptions","url":"interfaces/formulizeoptions.html","classes":"tsd-kind-interface"},{"id":26,"kind":1024,"name":"id","url":"interfaces/formulizeoptions.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":27,"kind":1024,"name":"text","url":"interfaces/formulizeoptions.html#text","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":28,"kind":1024,"name":"pipe","url":"interfaces/formulizeoptions.html#pipe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":29,"kind":256,"name":"OptionPipe","url":"interfaces/optionpipe.html","classes":"tsd-kind-interface"},{"id":30,"kind":1024,"name":"insert","url":"interfaces/optionpipe.html#insert","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionPipe"},{"id":31,"kind":1024,"name":"parse","url":"interfaces/optionpipe.html#parse","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionPipe"},{"id":32,"kind":256,"name":"FormulizeFunction","url":"interfaces/formulizefunction.html","classes":"tsd-kind-interface"},{"id":33,"kind":4,"name":"Key","url":"enums/key.html","classes":"tsd-kind-enum"},{"id":34,"kind":16,"name":"Backspace","url":"enums/key.html#backspace","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":35,"kind":16,"name":"Tab","url":"enums/key.html#tab","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":36,"kind":16,"name":"Enter","url":"enums/key.html#enter","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":37,"kind":16,"name":"Shift","url":"enums/key.html#shift","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":38,"kind":16,"name":"Ctrl","url":"enums/key.html#ctrl","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":39,"kind":16,"name":"Alt","url":"enums/key.html#alt","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":40,"kind":16,"name":"PauseBreak","url":"enums/key.html#pausebreak","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":41,"kind":16,"name":"CapsLock","url":"enums/key.html#capslock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":42,"kind":16,"name":"Escape","url":"enums/key.html#escape","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":43,"kind":16,"name":"Space","url":"enums/key.html#space","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":44,"kind":16,"name":"PageUp","url":"enums/key.html#pageup","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":45,"kind":16,"name":"PageDown","url":"enums/key.html#pagedown","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":46,"kind":16,"name":"End","url":"enums/key.html#end","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":47,"kind":16,"name":"Home","url":"enums/key.html#home","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":48,"kind":16,"name":"LeftArrow","url":"enums/key.html#leftarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":49,"kind":16,"name":"UpArrow","url":"enums/key.html#uparrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":50,"kind":16,"name":"RightArrow","url":"enums/key.html#rightarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":51,"kind":16,"name":"DownArrow","url":"enums/key.html#downarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":52,"kind":16,"name":"Insert","url":"enums/key.html#insert","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":53,"kind":16,"name":"Delete","url":"enums/key.html#delete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":54,"kind":16,"name":"Zero","url":"enums/key.html#zero","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":55,"kind":16,"name":"ClosedParen","url":"enums/key.html#closedparen","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":56,"kind":16,"name":"One","url":"enums/key.html#one","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":57,"kind":16,"name":"ExclamationMark","url":"enums/key.html#exclamationmark","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":58,"kind":16,"name":"Two","url":"enums/key.html#two","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":59,"kind":16,"name":"AtSign","url":"enums/key.html#atsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":60,"kind":16,"name":"Three","url":"enums/key.html#three","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":61,"kind":16,"name":"PoundSign","url":"enums/key.html#poundsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":62,"kind":16,"name":"Hash","url":"enums/key.html#hash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":63,"kind":16,"name":"Four","url":"enums/key.html#four","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":64,"kind":16,"name":"DollarSign","url":"enums/key.html#dollarsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":65,"kind":16,"name":"Five","url":"enums/key.html#five","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":66,"kind":16,"name":"PercentSign","url":"enums/key.html#percentsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":67,"kind":16,"name":"Six","url":"enums/key.html#six","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":68,"kind":16,"name":"Caret","url":"enums/key.html#caret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":69,"kind":16,"name":"Hat","url":"enums/key.html#hat","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":70,"kind":16,"name":"Seven","url":"enums/key.html#seven","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":71,"kind":16,"name":"Ampersand","url":"enums/key.html#ampersand","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":72,"kind":16,"name":"Eight","url":"enums/key.html#eight","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":73,"kind":16,"name":"Star","url":"enums/key.html#star","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":74,"kind":16,"name":"Asterik","url":"enums/key.html#asterik","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":75,"kind":16,"name":"Nine","url":"enums/key.html#nine","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":76,"kind":16,"name":"OpenParen","url":"enums/key.html#openparen","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":77,"kind":16,"name":"A","url":"enums/key.html#a","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":78,"kind":16,"name":"B","url":"enums/key.html#b","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":79,"kind":16,"name":"C","url":"enums/key.html#c","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":80,"kind":16,"name":"D","url":"enums/key.html#d","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":81,"kind":16,"name":"E","url":"enums/key.html#e","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":82,"kind":16,"name":"F","url":"enums/key.html#f","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":83,"kind":16,"name":"G","url":"enums/key.html#g","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":84,"kind":16,"name":"H","url":"enums/key.html#h","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":85,"kind":16,"name":"I","url":"enums/key.html#i","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":86,"kind":16,"name":"J","url":"enums/key.html#j","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":87,"kind":16,"name":"K","url":"enums/key.html#k","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":88,"kind":16,"name":"L","url":"enums/key.html#l","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":89,"kind":16,"name":"M","url":"enums/key.html#m","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":90,"kind":16,"name":"N","url":"enums/key.html#n","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":91,"kind":16,"name":"O","url":"enums/key.html#o","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":92,"kind":16,"name":"P","url":"enums/key.html#p","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":93,"kind":16,"name":"Q","url":"enums/key.html#q","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":94,"kind":16,"name":"R","url":"enums/key.html#r","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":95,"kind":16,"name":"S","url":"enums/key.html#s","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":96,"kind":16,"name":"T","url":"enums/key.html#t","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":97,"kind":16,"name":"U","url":"enums/key.html#u","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":98,"kind":16,"name":"V","url":"enums/key.html#v","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":99,"kind":16,"name":"W","url":"enums/key.html#w","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":100,"kind":16,"name":"X","url":"enums/key.html#x","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":101,"kind":16,"name":"Y","url":"enums/key.html#y","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":102,"kind":16,"name":"Z","url":"enums/key.html#z","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":103,"kind":16,"name":"LeftWindowKey","url":"enums/key.html#leftwindowkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":104,"kind":16,"name":"RightWindowKey","url":"enums/key.html#rightwindowkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":105,"kind":16,"name":"SelectKey","url":"enums/key.html#selectkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":106,"kind":16,"name":"Numpad0","url":"enums/key.html#numpad0","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":107,"kind":16,"name":"Numpad1","url":"enums/key.html#numpad1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":108,"kind":16,"name":"Numpad2","url":"enums/key.html#numpad2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":109,"kind":16,"name":"Numpad3","url":"enums/key.html#numpad3","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":110,"kind":16,"name":"Numpad4","url":"enums/key.html#numpad4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":111,"kind":16,"name":"Numpad5","url":"enums/key.html#numpad5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":112,"kind":16,"name":"Numpad6","url":"enums/key.html#numpad6","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":113,"kind":16,"name":"Numpad7","url":"enums/key.html#numpad7","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":114,"kind":16,"name":"Numpad8","url":"enums/key.html#numpad8","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":115,"kind":16,"name":"Numpad9","url":"enums/key.html#numpad9","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":116,"kind":16,"name":"Multiply","url":"enums/key.html#multiply","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":117,"kind":16,"name":"Add","url":"enums/key.html#add","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":118,"kind":16,"name":"Subtract","url":"enums/key.html#subtract","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":119,"kind":16,"name":"DecimalPoint","url":"enums/key.html#decimalpoint","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":120,"kind":16,"name":"Divide","url":"enums/key.html#divide","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":121,"kind":16,"name":"F1","url":"enums/key.html#f1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":122,"kind":16,"name":"F2","url":"enums/key.html#f2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":123,"kind":16,"name":"F3","url":"enums/key.html#f3","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":124,"kind":16,"name":"F4","url":"enums/key.html#f4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":125,"kind":16,"name":"F5","url":"enums/key.html#f5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":126,"kind":16,"name":"F6","url":"enums/key.html#f6","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":127,"kind":16,"name":"F7","url":"enums/key.html#f7","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":128,"kind":16,"name":"F8","url":"enums/key.html#f8","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":129,"kind":16,"name":"F9","url":"enums/key.html#f9","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":130,"kind":16,"name":"F10","url":"enums/key.html#f10","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":131,"kind":16,"name":"F11","url":"enums/key.html#f11","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":132,"kind":16,"name":"F12","url":"enums/key.html#f12","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":133,"kind":16,"name":"NumLock","url":"enums/key.html#numlock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":134,"kind":16,"name":"ScrollLock","url":"enums/key.html#scrolllock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":135,"kind":16,"name":"SemiColon","url":"enums/key.html#semicolon","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":136,"kind":16,"name":"Equals","url":"enums/key.html#equals","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":137,"kind":16,"name":"Comma","url":"enums/key.html#comma","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":138,"kind":16,"name":"Dash","url":"enums/key.html#dash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":139,"kind":16,"name":"Period","url":"enums/key.html#period","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":140,"kind":16,"name":"UnderScore","url":"enums/key.html#underscore","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":141,"kind":16,"name":"PlusSign","url":"enums/key.html#plussign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":142,"kind":16,"name":"ForwardSlash","url":"enums/key.html#forwardslash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":143,"kind":16,"name":"Tilde","url":"enums/key.html#tilde","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":144,"kind":16,"name":"GraveAccent","url":"enums/key.html#graveaccent","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":145,"kind":16,"name":"OpenBracket","url":"enums/key.html#openbracket","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":146,"kind":16,"name":"ClosedBracket","url":"enums/key.html#closedbracket","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":147,"kind":16,"name":"Quote","url":"enums/key.html#quote","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":148,"kind":32,"name":"specialCharacters","url":"globals.html#specialcharacters","classes":"tsd-kind-variable"},{"id":149,"kind":32,"name":"supportedCharacters","url":"globals.html#supportedcharacters","classes":"tsd-kind-variable"},{"id":150,"kind":128,"name":"FormulizeKeyHelper","url":"classes/formulizekeyhelper.html","classes":"tsd-kind-class"},{"id":151,"kind":2048,"name":"isReload","url":"classes/formulizekeyhelper.html#isreload","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":152,"kind":2048,"name":"isSelectAll","url":"classes/formulizekeyhelper.html#isselectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":153,"kind":2048,"name":"isBackspace","url":"classes/formulizekeyhelper.html#isbackspace","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":154,"kind":2048,"name":"isDelete","url":"classes/formulizekeyhelper.html#isdelete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":155,"kind":2048,"name":"isLeft","url":"classes/formulizekeyhelper.html#isleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":156,"kind":2048,"name":"isUp","url":"classes/formulizekeyhelper.html#isup","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":157,"kind":2048,"name":"isRight","url":"classes/formulizekeyhelper.html#isright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":158,"kind":2048,"name":"isDown","url":"classes/formulizekeyhelper.html#isdown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":159,"kind":2048,"name":"isHome","url":"classes/formulizekeyhelper.html#ishome","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":160,"kind":2048,"name":"isEnd","url":"classes/formulizekeyhelper.html#isend","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":161,"kind":2048,"name":"doReload","url":"classes/formulizekeyhelper.html#doreload","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":162,"kind":2048,"name":"doAction","url":"classes/formulizekeyhelper.html#doaction","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"FormulizeKeyHelper"},{"id":163,"kind":2048,"name":"getValue","url":"classes/formulizekeyhelper.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":164,"kind":2097152,"name":"defaultOptions","url":"globals.html#defaultoptions","classes":"tsd-kind-object-literal"},{"id":165,"kind":32,"name":"id","url":"globals.html#defaultoptions.id","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions"},{"id":166,"kind":2097152,"name":"text","url":"globals.html#defaultoptions.text","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"defaultOptions"},{"id":167,"kind":32,"name":"formula","url":"globals.html#defaultoptions.text.formula","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":168,"kind":32,"name":"error","url":"globals.html#defaultoptions.text.error","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":169,"kind":32,"name":"pass","url":"globals.html#defaultoptions.text.pass","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":170,"kind":128,"name":"StringHelper","url":"classes/stringhelper.html","classes":"tsd-kind-class"},{"id":171,"kind":2048,"name":"isNumeric","url":"classes/stringhelper.html#isnumeric","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StringHelper"},{"id":172,"kind":2048,"name":"toNumber","url":"classes/stringhelper.html#tonumber","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StringHelper"},{"id":173,"kind":128,"name":"FormulizeTokenHelper","url":"classes/formulizetokenhelper.html","classes":"tsd-kind-class"},{"id":174,"kind":2048,"name":"toDecimal","url":"classes/formulizetokenhelper.html#todecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":175,"kind":2048,"name":"isValid","url":"classes/formulizetokenhelper.html#isvalid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":176,"kind":2048,"name":"isNumeric","url":"classes/formulizetokenhelper.html#isnumeric","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":177,"kind":2048,"name":"isBracket","url":"classes/formulizetokenhelper.html#isbracket","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":178,"kind":2048,"name":"isComma","url":"classes/formulizetokenhelper.html#iscomma","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":179,"kind":2048,"name":"supportValue","url":"classes/formulizetokenhelper.html#supportvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":180,"kind":128,"name":"UIElementHelper","url":"classes/uielementhelper.html","classes":"tsd-kind-class"},{"id":181,"kind":2048,"name":"getDragElement","url":"classes/uielementhelper.html#getdragelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":182,"kind":2048,"name":"getCursorElement","url":"classes/uielementhelper.html#getcursorelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":183,"kind":2048,"name":"getUnitElement","url":"classes/uielementhelper.html#getunitelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":184,"kind":2048,"name":"setUnitValue","url":"classes/uielementhelper.html#setunitvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":185,"kind":2048,"name":"getUnitDecimalElement","url":"classes/uielementhelper.html#getunitdecimalelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":186,"kind":2048,"name":"getOperatorElement","url":"classes/uielementhelper.html#getoperatorelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":187,"kind":2048,"name":"getTextBoxElement","url":"classes/uielementhelper.html#gettextboxelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":188,"kind":2048,"name":"isElementType","url":"classes/uielementhelper.html#iselementtype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":189,"kind":2048,"name":"isDrag","url":"classes/uielementhelper.html#isdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":190,"kind":2048,"name":"isCursor","url":"classes/uielementhelper.html#iscursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":191,"kind":2048,"name":"isUnit","url":"classes/uielementhelper.html#isunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":192,"kind":2048,"name":"isOperator","url":"classes/uielementhelper.html#isoperator","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":193,"kind":128,"name":"UIHelper","url":"classes/uihelper.html","classes":"tsd-kind-class"},{"id":194,"kind":2048,"name":"getDataValue","url":"classes/uihelper.html#getdatavalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":195,"kind":2048,"name":"isOverDistance","url":"classes/uihelper.html#isoverdistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":196,"kind":2048,"name":"isDOM","url":"classes/uihelper.html#isdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":197,"kind":2048,"name":"getDOM","url":"classes/uihelper.html#getdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":198,"kind":128,"name":"UIDom","url":"classes/uidom.html","classes":"tsd-kind-class"},{"id":199,"kind":1024,"name":"wrapper","url":"classes/uidom.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":200,"kind":1024,"name":"container","url":"classes/uidom.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":201,"kind":1024,"name":"statusBox","url":"classes/uidom.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":202,"kind":1024,"name":"textBox","url":"classes/uidom.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":203,"kind":1024,"name":"cursor","url":"classes/uidom.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":204,"kind":1024,"name":"elem","url":"classes/uidom.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":205,"kind":1024,"name":"options","url":"classes/uidom.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":206,"kind":262144,"name":"cursorIndex","url":"classes/uidom.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":207,"kind":262144,"name":"dragElem","url":"classes/uidom.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":208,"kind":2048,"name":"initializeDOM","url":"classes/uidom.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":209,"kind":2048,"name":"bindingDOM","url":"classes/uidom.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":210,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uidom.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":211,"kind":2048,"name":"attachEvents","url":"classes/uidom.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":212,"kind":2048,"name":"getPrevUnit","url":"classes/uidom.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":213,"kind":2048,"name":"getNextUnit","url":"classes/uidom.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":214,"kind":2048,"name":"mergeUnit","url":"classes/uidom.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":215,"kind":2048,"name":"removeCursor","url":"classes/uidom.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":216,"kind":2048,"name":"removeUnit","url":"classes/uidom.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":217,"kind":128,"name":"UIAnalyzer","url":"classes/uianalyzer.html","classes":"tsd-kind-class"},{"id":218,"kind":2048,"name":"analyzeKey","url":"classes/uianalyzer.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-protected","parent":"UIAnalyzer"},{"id":219,"kind":1024,"name":"wrapper","url":"classes/uianalyzer.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":220,"kind":1024,"name":"container","url":"classes/uianalyzer.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":221,"kind":1024,"name":"statusBox","url":"classes/uianalyzer.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":222,"kind":1024,"name":"textBox","url":"classes/uianalyzer.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":223,"kind":1024,"name":"cursor","url":"classes/uianalyzer.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":224,"kind":1024,"name":"elem","url":"classes/uianalyzer.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":225,"kind":1024,"name":"options","url":"classes/uianalyzer.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":226,"kind":262144,"name":"cursorIndex","url":"classes/uianalyzer.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":227,"kind":262144,"name":"dragElem","url":"classes/uianalyzer.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":228,"kind":2048,"name":"initializeDOM","url":"classes/uianalyzer.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":229,"kind":2048,"name":"bindingDOM","url":"classes/uianalyzer.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":230,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uianalyzer.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":231,"kind":2048,"name":"attachEvents","url":"classes/uianalyzer.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":232,"kind":2048,"name":"getPrevUnit","url":"classes/uianalyzer.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":233,"kind":2048,"name":"getNextUnit","url":"classes/uianalyzer.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":234,"kind":2048,"name":"mergeUnit","url":"classes/uianalyzer.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":235,"kind":2048,"name":"removeCursor","url":"classes/uianalyzer.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":236,"kind":2048,"name":"removeUnit","url":"classes/uianalyzer.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":237,"kind":128,"name":"UIPipe","url":"classes/uipipe.html","classes":"tsd-kind-class"},{"id":238,"kind":2048,"name":"pipeInsert","url":"classes/uipipe.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIPipe"},{"id":239,"kind":2048,"name":"pipeParse","url":"classes/uipipe.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIPipe"},{"id":240,"kind":2048,"name":"analyzeKey","url":"classes/uipipe.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":241,"kind":1024,"name":"wrapper","url":"classes/uipipe.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":242,"kind":1024,"name":"container","url":"classes/uipipe.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":243,"kind":1024,"name":"statusBox","url":"classes/uipipe.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":244,"kind":1024,"name":"textBox","url":"classes/uipipe.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":245,"kind":1024,"name":"cursor","url":"classes/uipipe.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":246,"kind":1024,"name":"elem","url":"classes/uipipe.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":247,"kind":1024,"name":"options","url":"classes/uipipe.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":248,"kind":262144,"name":"cursorIndex","url":"classes/uipipe.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":249,"kind":262144,"name":"dragElem","url":"classes/uipipe.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":250,"kind":2048,"name":"initializeDOM","url":"classes/uipipe.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":251,"kind":2048,"name":"bindingDOM","url":"classes/uipipe.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":252,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uipipe.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":253,"kind":2048,"name":"attachEvents","url":"classes/uipipe.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":254,"kind":2048,"name":"getPrevUnit","url":"classes/uipipe.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":255,"kind":2048,"name":"getNextUnit","url":"classes/uipipe.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":256,"kind":2048,"name":"mergeUnit","url":"classes/uipipe.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":257,"kind":2048,"name":"removeCursor","url":"classes/uipipe.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":258,"kind":2048,"name":"removeUnit","url":"classes/uipipe.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":259,"kind":128,"name":"UIManager","url":"classes/uimanager.html","classes":"tsd-kind-class"},{"id":260,"kind":1024,"name":"prevCursorIndex","url":"classes/uimanager.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":261,"kind":2097152,"name":"prevPosition","url":"classes/uimanager.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":262,"kind":32,"name":"x","url":"classes/uimanager.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIManager.prevPosition"},{"id":263,"kind":32,"name":"y","url":"classes/uimanager.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIManager.prevPosition"},{"id":264,"kind":1024,"name":"dragged","url":"classes/uimanager.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":265,"kind":1024,"name":"moved","url":"classes/uimanager.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":266,"kind":2048,"name":"pick","url":"classes/uimanager.html#pick","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":267,"kind":2048,"name":"setData","url":"classes/uimanager.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":268,"kind":2048,"name":"getData","url":"classes/uimanager.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"UIManager"},{"id":269,"kind":2048,"name":"triggerUpdate","url":"classes/uimanager.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":270,"kind":2048,"name":"getExpression","url":"classes/uimanager.html#getexpression","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":271,"kind":2048,"name":"startDrag","url":"classes/uimanager.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":272,"kind":2048,"name":"endDrag","url":"classes/uimanager.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":273,"kind":2048,"name":"moveDrag","url":"classes/uimanager.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":274,"kind":2048,"name":"findClosestUnit","url":"classes/uimanager.html#findclosestunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":275,"kind":2048,"name":"selectAll","url":"classes/uimanager.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":276,"kind":2048,"name":"selectRange","url":"classes/uimanager.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":277,"kind":2048,"name":"removeBefore","url":"classes/uimanager.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":278,"kind":2048,"name":"removeAfter","url":"classes/uimanager.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":279,"kind":2048,"name":"dragFirst","url":"classes/uimanager.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":280,"kind":2048,"name":"dragLast","url":"classes/uimanager.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":281,"kind":2048,"name":"dragLeft","url":"classes/uimanager.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":282,"kind":2048,"name":"dragRight","url":"classes/uimanager.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":283,"kind":2048,"name":"moveCursorBefore","url":"classes/uimanager.html#movecursorbefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":284,"kind":2048,"name":"moveCursorAfter","url":"classes/uimanager.html#movecursorafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":285,"kind":2048,"name":"moveLeftCursor","url":"classes/uimanager.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":286,"kind":2048,"name":"moveUpCursor","url":"classes/uimanager.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":287,"kind":2048,"name":"moveRightCursor","url":"classes/uimanager.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":288,"kind":2048,"name":"moveDownCursor","url":"classes/uimanager.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":289,"kind":2048,"name":"moveFirstCursor","url":"classes/uimanager.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":290,"kind":2048,"name":"moveLastCursor","url":"classes/uimanager.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":291,"kind":2048,"name":"clear","url":"classes/uimanager.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":292,"kind":2048,"name":"blur","url":"classes/uimanager.html#blur","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":293,"kind":2048,"name":"removeDrag","url":"classes/uimanager.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":294,"kind":2048,"name":"insert","url":"classes/uimanager.html#insert","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":295,"kind":2048,"name":"insertValue","url":"classes/uimanager.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":296,"kind":2048,"name":"insertData","url":"classes/uimanager.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":297,"kind":2048,"name":"validate","url":"classes/uimanager.html#validate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":298,"kind":2048,"name":"pipeInsert","url":"classes/uimanager.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":299,"kind":2048,"name":"pipeParse","url":"classes/uimanager.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":300,"kind":2048,"name":"analyzeKey","url":"classes/uimanager.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":301,"kind":1024,"name":"wrapper","url":"classes/uimanager.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":302,"kind":1024,"name":"container","url":"classes/uimanager.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":303,"kind":1024,"name":"statusBox","url":"classes/uimanager.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":304,"kind":1024,"name":"textBox","url":"classes/uimanager.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":305,"kind":1024,"name":"cursor","url":"classes/uimanager.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":306,"kind":1024,"name":"elem","url":"classes/uimanager.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":307,"kind":1024,"name":"options","url":"classes/uimanager.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":308,"kind":262144,"name":"cursorIndex","url":"classes/uimanager.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":309,"kind":262144,"name":"dragElem","url":"classes/uimanager.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":310,"kind":2048,"name":"initializeDOM","url":"classes/uimanager.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":311,"kind":2048,"name":"bindingDOM","url":"classes/uimanager.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":312,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uimanager.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":313,"kind":2048,"name":"attachEvents","url":"classes/uimanager.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":314,"kind":2048,"name":"getPrevUnit","url":"classes/uimanager.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":315,"kind":2048,"name":"getNextUnit","url":"classes/uimanager.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":316,"kind":2048,"name":"mergeUnit","url":"classes/uimanager.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":317,"kind":2048,"name":"removeCursor","url":"classes/uimanager.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":318,"kind":2048,"name":"removeUnit","url":"classes/uimanager.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":319,"kind":128,"name":"UIHook","url":"classes/uihook.html","classes":"tsd-kind-class"},{"id":320,"kind":2048,"name":"hookKeyDown","url":"classes/uihook.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIHook"},{"id":321,"kind":1024,"name":"prevCursorIndex","url":"classes/uihook.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":322,"kind":2097152,"name":"prevPosition","url":"classes/uihook.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":323,"kind":32,"name":"x","url":"classes/uihook.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIHook.prevPosition"},{"id":324,"kind":32,"name":"y","url":"classes/uihook.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIHook.prevPosition"},{"id":325,"kind":1024,"name":"dragged","url":"classes/uihook.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":326,"kind":1024,"name":"moved","url":"classes/uihook.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":327,"kind":2048,"name":"pick","url":"classes/uihook.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":328,"kind":2048,"name":"setData","url":"classes/uihook.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":329,"kind":2048,"name":"getData","url":"classes/uihook.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UIHook"},{"id":330,"kind":2048,"name":"triggerUpdate","url":"classes/uihook.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":331,"kind":2048,"name":"startDrag","url":"classes/uihook.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":332,"kind":2048,"name":"endDrag","url":"classes/uihook.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":333,"kind":2048,"name":"moveDrag","url":"classes/uihook.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":334,"kind":2048,"name":"selectAll","url":"classes/uihook.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":335,"kind":2048,"name":"selectRange","url":"classes/uihook.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":336,"kind":2048,"name":"removeBefore","url":"classes/uihook.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":337,"kind":2048,"name":"removeAfter","url":"classes/uihook.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":338,"kind":2048,"name":"dragFirst","url":"classes/uihook.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":339,"kind":2048,"name":"dragLast","url":"classes/uihook.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":340,"kind":2048,"name":"dragLeft","url":"classes/uihook.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":341,"kind":2048,"name":"dragRight","url":"classes/uihook.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":342,"kind":2048,"name":"moveLeftCursor","url":"classes/uihook.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":343,"kind":2048,"name":"moveUpCursor","url":"classes/uihook.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":344,"kind":2048,"name":"moveRightCursor","url":"classes/uihook.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":345,"kind":2048,"name":"moveDownCursor","url":"classes/uihook.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":346,"kind":2048,"name":"moveFirstCursor","url":"classes/uihook.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":347,"kind":2048,"name":"moveLastCursor","url":"classes/uihook.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":348,"kind":2048,"name":"clear","url":"classes/uihook.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":349,"kind":2048,"name":"blur","url":"classes/uihook.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":350,"kind":2048,"name":"removeDrag","url":"classes/uihook.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":351,"kind":2048,"name":"insert","url":"classes/uihook.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":352,"kind":2048,"name":"insertValue","url":"classes/uihook.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":353,"kind":2048,"name":"insertData","url":"classes/uihook.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":354,"kind":2048,"name":"validate","url":"classes/uihook.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":355,"kind":2048,"name":"pipeInsert","url":"classes/uihook.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":356,"kind":2048,"name":"pipeParse","url":"classes/uihook.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":357,"kind":2048,"name":"analyzeKey","url":"classes/uihook.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":358,"kind":1024,"name":"wrapper","url":"classes/uihook.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":359,"kind":1024,"name":"container","url":"classes/uihook.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":360,"kind":1024,"name":"statusBox","url":"classes/uihook.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":361,"kind":1024,"name":"textBox","url":"classes/uihook.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":362,"kind":1024,"name":"cursor","url":"classes/uihook.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":363,"kind":1024,"name":"elem","url":"classes/uihook.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":364,"kind":1024,"name":"options","url":"classes/uihook.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":365,"kind":262144,"name":"cursorIndex","url":"classes/uihook.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":366,"kind":262144,"name":"dragElem","url":"classes/uihook.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":367,"kind":2048,"name":"initializeDOM","url":"classes/uihook.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":368,"kind":2048,"name":"bindingDOM","url":"classes/uihook.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":369,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uihook.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":370,"kind":2048,"name":"attachEvents","url":"classes/uihook.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":371,"kind":2048,"name":"getPrevUnit","url":"classes/uihook.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":372,"kind":2048,"name":"getNextUnit","url":"classes/uihook.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":373,"kind":2048,"name":"mergeUnit","url":"classes/uihook.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":374,"kind":2048,"name":"removeCursor","url":"classes/uihook.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":375,"kind":2048,"name":"removeUnit","url":"classes/uihook.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":376,"kind":128,"name":"UIBase","url":"classes/uibase.html","classes":"tsd-kind-class"},{"id":377,"kind":512,"name":"constructor","url":"classes/uibase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"UIBase"},{"id":378,"kind":2048,"name":"hookKeyDown","url":"classes/uibase.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":379,"kind":1024,"name":"prevCursorIndex","url":"classes/uibase.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":380,"kind":2097152,"name":"prevPosition","url":"classes/uibase.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":381,"kind":32,"name":"x","url":"classes/uibase.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIBase.prevPosition"},{"id":382,"kind":32,"name":"y","url":"classes/uibase.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIBase.prevPosition"},{"id":383,"kind":1024,"name":"dragged","url":"classes/uibase.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":384,"kind":1024,"name":"moved","url":"classes/uibase.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":385,"kind":2048,"name":"pick","url":"classes/uibase.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":386,"kind":2048,"name":"setData","url":"classes/uibase.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":387,"kind":2048,"name":"getData","url":"classes/uibase.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UIBase"},{"id":388,"kind":2048,"name":"triggerUpdate","url":"classes/uibase.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":389,"kind":2048,"name":"startDrag","url":"classes/uibase.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":390,"kind":2048,"name":"endDrag","url":"classes/uibase.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":391,"kind":2048,"name":"moveDrag","url":"classes/uibase.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":392,"kind":2048,"name":"selectAll","url":"classes/uibase.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":393,"kind":2048,"name":"selectRange","url":"classes/uibase.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":394,"kind":2048,"name":"removeBefore","url":"classes/uibase.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":395,"kind":2048,"name":"removeAfter","url":"classes/uibase.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":396,"kind":2048,"name":"dragFirst","url":"classes/uibase.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":397,"kind":2048,"name":"dragLast","url":"classes/uibase.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":398,"kind":2048,"name":"dragLeft","url":"classes/uibase.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":399,"kind":2048,"name":"dragRight","url":"classes/uibase.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":400,"kind":2048,"name":"moveLeftCursor","url":"classes/uibase.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":401,"kind":2048,"name":"moveUpCursor","url":"classes/uibase.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":402,"kind":2048,"name":"moveRightCursor","url":"classes/uibase.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":403,"kind":2048,"name":"moveDownCursor","url":"classes/uibase.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":404,"kind":2048,"name":"moveFirstCursor","url":"classes/uibase.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":405,"kind":2048,"name":"moveLastCursor","url":"classes/uibase.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":406,"kind":2048,"name":"clear","url":"classes/uibase.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":407,"kind":2048,"name":"blur","url":"classes/uibase.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":408,"kind":2048,"name":"removeDrag","url":"classes/uibase.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":409,"kind":2048,"name":"insert","url":"classes/uibase.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":410,"kind":2048,"name":"insertValue","url":"classes/uibase.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":411,"kind":2048,"name":"insertData","url":"classes/uibase.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":412,"kind":2048,"name":"validate","url":"classes/uibase.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":413,"kind":2048,"name":"pipeInsert","url":"classes/uibase.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":414,"kind":2048,"name":"pipeParse","url":"classes/uibase.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":415,"kind":2048,"name":"analyzeKey","url":"classes/uibase.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":416,"kind":1024,"name":"wrapper","url":"classes/uibase.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":417,"kind":1024,"name":"container","url":"classes/uibase.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":418,"kind":1024,"name":"statusBox","url":"classes/uibase.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":419,"kind":1024,"name":"textBox","url":"classes/uibase.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":420,"kind":1024,"name":"cursor","url":"classes/uibase.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":421,"kind":1024,"name":"elem","url":"classes/uibase.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":422,"kind":1024,"name":"options","url":"classes/uibase.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":423,"kind":262144,"name":"cursorIndex","url":"classes/uibase.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":424,"kind":262144,"name":"dragElem","url":"classes/uibase.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":425,"kind":2048,"name":"initializeDOM","url":"classes/uibase.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":426,"kind":2048,"name":"bindingDOM","url":"classes/uibase.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":427,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uibase.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":428,"kind":2048,"name":"attachEvents","url":"classes/uibase.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":429,"kind":2048,"name":"getPrevUnit","url":"classes/uibase.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":430,"kind":2048,"name":"getNextUnit","url":"classes/uibase.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":431,"kind":2048,"name":"mergeUnit","url":"classes/uibase.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":432,"kind":2048,"name":"removeCursor","url":"classes/uibase.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":433,"kind":2048,"name":"removeUnit","url":"classes/uibase.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":434,"kind":128,"name":"UI","url":"classes/ui.html","classes":"tsd-kind-class"},{"id":435,"kind":2048,"name":"analyzeKey","url":"classes/ui.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite tsd-is-protected","parent":"UI"},{"id":436,"kind":2048,"name":"attachEvents","url":"classes/ui.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-protected","parent":"UI"},{"id":437,"kind":512,"name":"constructor","url":"classes/ui.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":438,"kind":2048,"name":"hookKeyDown","url":"classes/ui.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":439,"kind":1024,"name":"prevCursorIndex","url":"classes/ui.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":440,"kind":2097152,"name":"prevPosition","url":"classes/ui.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":441,"kind":32,"name":"x","url":"classes/ui.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UI.prevPosition"},{"id":442,"kind":32,"name":"y","url":"classes/ui.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UI.prevPosition"},{"id":443,"kind":1024,"name":"dragged","url":"classes/ui.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":444,"kind":1024,"name":"moved","url":"classes/ui.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":445,"kind":2048,"name":"pick","url":"classes/ui.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":446,"kind":2048,"name":"setData","url":"classes/ui.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":447,"kind":2048,"name":"getData","url":"classes/ui.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UI"},{"id":448,"kind":2048,"name":"triggerUpdate","url":"classes/ui.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":449,"kind":2048,"name":"startDrag","url":"classes/ui.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":450,"kind":2048,"name":"endDrag","url":"classes/ui.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":451,"kind":2048,"name":"moveDrag","url":"classes/ui.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":452,"kind":2048,"name":"selectAll","url":"classes/ui.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":453,"kind":2048,"name":"selectRange","url":"classes/ui.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":454,"kind":2048,"name":"removeBefore","url":"classes/ui.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":455,"kind":2048,"name":"removeAfter","url":"classes/ui.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":456,"kind":2048,"name":"dragFirst","url":"classes/ui.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":457,"kind":2048,"name":"dragLast","url":"classes/ui.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":458,"kind":2048,"name":"dragLeft","url":"classes/ui.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":459,"kind":2048,"name":"dragRight","url":"classes/ui.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":460,"kind":2048,"name":"moveLeftCursor","url":"classes/ui.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":461,"kind":2048,"name":"moveUpCursor","url":"classes/ui.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":462,"kind":2048,"name":"moveRightCursor","url":"classes/ui.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":463,"kind":2048,"name":"moveDownCursor","url":"classes/ui.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":464,"kind":2048,"name":"moveFirstCursor","url":"classes/ui.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":465,"kind":2048,"name":"moveLastCursor","url":"classes/ui.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":466,"kind":2048,"name":"clear","url":"classes/ui.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":467,"kind":2048,"name":"blur","url":"classes/ui.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":468,"kind":2048,"name":"removeDrag","url":"classes/ui.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":469,"kind":2048,"name":"insert","url":"classes/ui.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":470,"kind":2048,"name":"insertValue","url":"classes/ui.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":471,"kind":2048,"name":"insertData","url":"classes/ui.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":472,"kind":2048,"name":"validate","url":"classes/ui.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":473,"kind":2048,"name":"pipeInsert","url":"classes/ui.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":474,"kind":2048,"name":"pipeParse","url":"classes/ui.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":475,"kind":1024,"name":"wrapper","url":"classes/ui.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":476,"kind":1024,"name":"container","url":"classes/ui.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":477,"kind":1024,"name":"statusBox","url":"classes/ui.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":478,"kind":1024,"name":"textBox","url":"classes/ui.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":479,"kind":1024,"name":"cursor","url":"classes/ui.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":480,"kind":1024,"name":"elem","url":"classes/ui.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":481,"kind":1024,"name":"options","url":"classes/ui.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":482,"kind":262144,"name":"cursorIndex","url":"classes/ui.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":483,"kind":262144,"name":"dragElem","url":"classes/ui.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":484,"kind":2048,"name":"initializeDOM","url":"classes/ui.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":485,"kind":2048,"name":"bindingDOM","url":"classes/ui.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":486,"kind":2048,"name":"isAlreadyInitialized","url":"classes/ui.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":487,"kind":2048,"name":"getPrevUnit","url":"classes/ui.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":488,"kind":2048,"name":"getNextUnit","url":"classes/ui.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":489,"kind":2048,"name":"mergeUnit","url":"classes/ui.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":490,"kind":2048,"name":"removeCursor","url":"classes/ui.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":491,"kind":2048,"name":"removeUnit","url":"classes/ui.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":492,"kind":128,"name":"MethodBase","url":"classes/methodbase.html","classes":"tsd-kind-class"},{"id":493,"kind":1024,"name":"formulize","url":"classes/methodbase.html#formulize","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"MethodBase"},{"id":494,"kind":512,"name":"constructor","url":"classes/methodbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MethodBase"},{"id":495,"kind":2048,"name":"pick","url":"classes/methodbase.html#pick","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":496,"kind":2048,"name":"clear","url":"classes/methodbase.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":497,"kind":2048,"name":"blur","url":"classes/methodbase.html#blur","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":498,"kind":2048,"name":"setData","url":"classes/methodbase.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":499,"kind":2048,"name":"getData","url":"classes/methodbase.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"MethodBase"},{"id":500,"kind":2048,"name":"selectRange","url":"classes/methodbase.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":501,"kind":2048,"name":"selectAll","url":"classes/methodbase.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":502,"kind":2048,"name":"removeDrag","url":"classes/methodbase.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":503,"kind":2048,"name":"insert","url":"classes/methodbase.html#insert","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":504,"kind":2048,"name":"insertValue","url":"classes/methodbase.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":505,"kind":2048,"name":"insertData","url":"classes/methodbase.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":506,"kind":2048,"name":"validate","url":"classes/methodbase.html#validate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":507,"kind":64,"name":"methodBinder","url":"globals.html#methodbinder","classes":"tsd-kind-function"},{"id":508,"kind":64,"name":"pluginBinder","url":"globals.html#pluginbinder","classes":"tsd-kind-function"},{"id":509,"kind":32,"name":"_MODULE_VERSION_","url":"globals.html#_module_version_","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":510,"kind":64,"name":"getVersion","url":"globals.html#getversion","classes":"tsd-kind-function"}]}; \ No newline at end of file + typedoc.search.data = {"kinds":{"4":"Enumeration","16":"Enumeration member","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":256,"name":"Position","url":"interfaces/position.html","classes":"tsd-kind-interface"},{"id":1,"kind":1024,"name":"x","url":"interfaces/position.html#x","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Position"},{"id":2,"kind":1024,"name":"y","url":"interfaces/position.html#y","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Position"},{"id":3,"kind":256,"name":"ElementPosition","url":"interfaces/elementposition.html","classes":"tsd-kind-interface"},{"id":4,"kind":1024,"name":"elem","url":"interfaces/elementposition.html#elem","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ElementPosition"},{"id":5,"kind":1024,"name":"diff","url":"interfaces/elementposition.html#diff","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ElementPosition"},{"id":6,"kind":65536,"name":"__type","url":"interfaces/elementposition.html#diff.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"ElementPosition.diff"},{"id":7,"kind":32,"name":"x","url":"interfaces/elementposition.html#diff.__type.x","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"ElementPosition.diff.__type"},{"id":8,"kind":32,"name":"y","url":"interfaces/elementposition.html#diff.__type.y","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"ElementPosition.diff.__type"},{"id":9,"kind":1024,"name":"x","url":"interfaces/elementposition.html#x-1","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"ElementPosition"},{"id":10,"kind":1024,"name":"y","url":"interfaces/elementposition.html#y-1","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"ElementPosition"},{"id":11,"kind":256,"name":"Behavior","url":"interfaces/behavior.html","classes":"tsd-kind-interface"},{"id":12,"kind":1024,"name":"predicate","url":"interfaces/behavior.html#predicate","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Behavior"},{"id":13,"kind":65536,"name":"__type","url":"interfaces/behavior.html#predicate.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"Behavior.predicate"},{"id":14,"kind":1024,"name":"doBehavior","url":"interfaces/behavior.html#dobehavior","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Behavior"},{"id":15,"kind":65536,"name":"__type","url":"interfaces/behavior.html#dobehavior.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property tsd-is-not-exported","parent":"Behavior.doBehavior"},{"id":16,"kind":4194304,"name":"FormulizeData","url":"globals.html#formulizedata","classes":"tsd-kind-type-alias"},{"id":17,"kind":256,"name":"OptionText","url":"interfaces/optiontext.html","classes":"tsd-kind-interface"},{"id":18,"kind":1024,"name":"formula","url":"interfaces/optiontext.html#formula","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":19,"kind":1024,"name":"error","url":"interfaces/optiontext.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":20,"kind":1024,"name":"pass","url":"interfaces/optiontext.html#pass","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionText"},{"id":21,"kind":4194304,"name":"PipeInsert","url":"globals.html#pipeinsert","classes":"tsd-kind-type-alias"},{"id":22,"kind":65536,"name":"__type","url":"globals.html#pipeinsert.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"PipeInsert"},{"id":23,"kind":4194304,"name":"PipeParse","url":"globals.html#pipeparse","classes":"tsd-kind-type-alias"},{"id":24,"kind":65536,"name":"__type","url":"globals.html#pipeparse.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"PipeParse"},{"id":25,"kind":256,"name":"FormulizeOptions","url":"interfaces/formulizeoptions.html","classes":"tsd-kind-interface"},{"id":26,"kind":1024,"name":"id","url":"interfaces/formulizeoptions.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":27,"kind":1024,"name":"text","url":"interfaces/formulizeoptions.html#text","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":28,"kind":1024,"name":"pipe","url":"interfaces/formulizeoptions.html#pipe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"FormulizeOptions"},{"id":29,"kind":256,"name":"OptionPipe","url":"interfaces/optionpipe.html","classes":"tsd-kind-interface"},{"id":30,"kind":1024,"name":"insert","url":"interfaces/optionpipe.html#insert","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionPipe"},{"id":31,"kind":1024,"name":"parse","url":"interfaces/optionpipe.html#parse","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"OptionPipe"},{"id":32,"kind":256,"name":"FormulizeFunction","url":"interfaces/formulizefunction.html","classes":"tsd-kind-interface"},{"id":33,"kind":4,"name":"Key","url":"enums/key.html","classes":"tsd-kind-enum"},{"id":34,"kind":16,"name":"Backspace","url":"enums/key.html#backspace","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":35,"kind":16,"name":"Tab","url":"enums/key.html#tab","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":36,"kind":16,"name":"Enter","url":"enums/key.html#enter","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":37,"kind":16,"name":"Shift","url":"enums/key.html#shift","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":38,"kind":16,"name":"Ctrl","url":"enums/key.html#ctrl","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":39,"kind":16,"name":"Alt","url":"enums/key.html#alt","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":40,"kind":16,"name":"PauseBreak","url":"enums/key.html#pausebreak","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":41,"kind":16,"name":"CapsLock","url":"enums/key.html#capslock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":42,"kind":16,"name":"Escape","url":"enums/key.html#escape","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":43,"kind":16,"name":"Space","url":"enums/key.html#space","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":44,"kind":16,"name":"PageUp","url":"enums/key.html#pageup","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":45,"kind":16,"name":"PageDown","url":"enums/key.html#pagedown","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":46,"kind":16,"name":"End","url":"enums/key.html#end","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":47,"kind":16,"name":"Home","url":"enums/key.html#home","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":48,"kind":16,"name":"LeftArrow","url":"enums/key.html#leftarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":49,"kind":16,"name":"UpArrow","url":"enums/key.html#uparrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":50,"kind":16,"name":"RightArrow","url":"enums/key.html#rightarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":51,"kind":16,"name":"DownArrow","url":"enums/key.html#downarrow","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":52,"kind":16,"name":"Insert","url":"enums/key.html#insert","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":53,"kind":16,"name":"Delete","url":"enums/key.html#delete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":54,"kind":16,"name":"Zero","url":"enums/key.html#zero","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":55,"kind":16,"name":"ClosedParen","url":"enums/key.html#closedparen","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":56,"kind":16,"name":"One","url":"enums/key.html#one","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":57,"kind":16,"name":"ExclamationMark","url":"enums/key.html#exclamationmark","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":58,"kind":16,"name":"Two","url":"enums/key.html#two","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":59,"kind":16,"name":"AtSign","url":"enums/key.html#atsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":60,"kind":16,"name":"Three","url":"enums/key.html#three","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":61,"kind":16,"name":"PoundSign","url":"enums/key.html#poundsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":62,"kind":16,"name":"Hash","url":"enums/key.html#hash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":63,"kind":16,"name":"Four","url":"enums/key.html#four","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":64,"kind":16,"name":"DollarSign","url":"enums/key.html#dollarsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":65,"kind":16,"name":"Five","url":"enums/key.html#five","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":66,"kind":16,"name":"PercentSign","url":"enums/key.html#percentsign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":67,"kind":16,"name":"Six","url":"enums/key.html#six","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":68,"kind":16,"name":"Caret","url":"enums/key.html#caret","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":69,"kind":16,"name":"Hat","url":"enums/key.html#hat","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":70,"kind":16,"name":"Seven","url":"enums/key.html#seven","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":71,"kind":16,"name":"Ampersand","url":"enums/key.html#ampersand","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":72,"kind":16,"name":"Eight","url":"enums/key.html#eight","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":73,"kind":16,"name":"Star","url":"enums/key.html#star","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":74,"kind":16,"name":"Asterik","url":"enums/key.html#asterik","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":75,"kind":16,"name":"Nine","url":"enums/key.html#nine","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":76,"kind":16,"name":"OpenParen","url":"enums/key.html#openparen","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":77,"kind":16,"name":"A","url":"enums/key.html#a","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":78,"kind":16,"name":"B","url":"enums/key.html#b","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":79,"kind":16,"name":"C","url":"enums/key.html#c","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":80,"kind":16,"name":"D","url":"enums/key.html#d","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":81,"kind":16,"name":"E","url":"enums/key.html#e","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":82,"kind":16,"name":"F","url":"enums/key.html#f","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":83,"kind":16,"name":"G","url":"enums/key.html#g","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":84,"kind":16,"name":"H","url":"enums/key.html#h","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":85,"kind":16,"name":"I","url":"enums/key.html#i","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":86,"kind":16,"name":"J","url":"enums/key.html#j","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":87,"kind":16,"name":"K","url":"enums/key.html#k","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":88,"kind":16,"name":"L","url":"enums/key.html#l","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":89,"kind":16,"name":"M","url":"enums/key.html#m","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":90,"kind":16,"name":"N","url":"enums/key.html#n","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":91,"kind":16,"name":"O","url":"enums/key.html#o","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":92,"kind":16,"name":"P","url":"enums/key.html#p","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":93,"kind":16,"name":"Q","url":"enums/key.html#q","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":94,"kind":16,"name":"R","url":"enums/key.html#r","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":95,"kind":16,"name":"S","url":"enums/key.html#s","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":96,"kind":16,"name":"T","url":"enums/key.html#t","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":97,"kind":16,"name":"U","url":"enums/key.html#u","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":98,"kind":16,"name":"V","url":"enums/key.html#v","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":99,"kind":16,"name":"W","url":"enums/key.html#w","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":100,"kind":16,"name":"X","url":"enums/key.html#x","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":101,"kind":16,"name":"Y","url":"enums/key.html#y","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":102,"kind":16,"name":"Z","url":"enums/key.html#z","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":103,"kind":16,"name":"LeftWindowKey","url":"enums/key.html#leftwindowkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":104,"kind":16,"name":"RightWindowKey","url":"enums/key.html#rightwindowkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":105,"kind":16,"name":"SelectKey","url":"enums/key.html#selectkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":106,"kind":16,"name":"Numpad0","url":"enums/key.html#numpad0","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":107,"kind":16,"name":"Numpad1","url":"enums/key.html#numpad1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":108,"kind":16,"name":"Numpad2","url":"enums/key.html#numpad2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":109,"kind":16,"name":"Numpad3","url":"enums/key.html#numpad3","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":110,"kind":16,"name":"Numpad4","url":"enums/key.html#numpad4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":111,"kind":16,"name":"Numpad5","url":"enums/key.html#numpad5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":112,"kind":16,"name":"Numpad6","url":"enums/key.html#numpad6","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":113,"kind":16,"name":"Numpad7","url":"enums/key.html#numpad7","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":114,"kind":16,"name":"Numpad8","url":"enums/key.html#numpad8","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":115,"kind":16,"name":"Numpad9","url":"enums/key.html#numpad9","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":116,"kind":16,"name":"Multiply","url":"enums/key.html#multiply","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":117,"kind":16,"name":"Add","url":"enums/key.html#add","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":118,"kind":16,"name":"Subtract","url":"enums/key.html#subtract","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":119,"kind":16,"name":"DecimalPoint","url":"enums/key.html#decimalpoint","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":120,"kind":16,"name":"Divide","url":"enums/key.html#divide","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":121,"kind":16,"name":"F1","url":"enums/key.html#f1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":122,"kind":16,"name":"F2","url":"enums/key.html#f2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":123,"kind":16,"name":"F3","url":"enums/key.html#f3","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":124,"kind":16,"name":"F4","url":"enums/key.html#f4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":125,"kind":16,"name":"F5","url":"enums/key.html#f5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":126,"kind":16,"name":"F6","url":"enums/key.html#f6","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":127,"kind":16,"name":"F7","url":"enums/key.html#f7","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":128,"kind":16,"name":"F8","url":"enums/key.html#f8","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":129,"kind":16,"name":"F9","url":"enums/key.html#f9","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":130,"kind":16,"name":"F10","url":"enums/key.html#f10","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":131,"kind":16,"name":"F11","url":"enums/key.html#f11","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":132,"kind":16,"name":"F12","url":"enums/key.html#f12","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":133,"kind":16,"name":"NumLock","url":"enums/key.html#numlock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":134,"kind":16,"name":"ScrollLock","url":"enums/key.html#scrolllock","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":135,"kind":16,"name":"SemiColon","url":"enums/key.html#semicolon","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":136,"kind":16,"name":"Equals","url":"enums/key.html#equals","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":137,"kind":16,"name":"Comma","url":"enums/key.html#comma","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":138,"kind":16,"name":"Dash","url":"enums/key.html#dash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":139,"kind":16,"name":"Period","url":"enums/key.html#period","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":140,"kind":16,"name":"UnderScore","url":"enums/key.html#underscore","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":141,"kind":16,"name":"PlusSign","url":"enums/key.html#plussign","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":142,"kind":16,"name":"ForwardSlash","url":"enums/key.html#forwardslash","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":143,"kind":16,"name":"Tilde","url":"enums/key.html#tilde","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":144,"kind":16,"name":"GraveAccent","url":"enums/key.html#graveaccent","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":145,"kind":16,"name":"OpenBracket","url":"enums/key.html#openbracket","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":146,"kind":16,"name":"ClosedBracket","url":"enums/key.html#closedbracket","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":147,"kind":16,"name":"Quote","url":"enums/key.html#quote","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Key"},{"id":148,"kind":32,"name":"specialCharacters","url":"globals.html#specialcharacters","classes":"tsd-kind-variable"},{"id":149,"kind":32,"name":"supportedCharacters","url":"globals.html#supportedcharacters","classes":"tsd-kind-variable"},{"id":150,"kind":128,"name":"FormulizeKeyHelper","url":"classes/formulizekeyhelper.html","classes":"tsd-kind-class"},{"id":151,"kind":2048,"name":"isReload","url":"classes/formulizekeyhelper.html#isreload","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":152,"kind":2048,"name":"isSelectAll","url":"classes/formulizekeyhelper.html#isselectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":153,"kind":2048,"name":"isBackspace","url":"classes/formulizekeyhelper.html#isbackspace","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":154,"kind":2048,"name":"isDelete","url":"classes/formulizekeyhelper.html#isdelete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":155,"kind":2048,"name":"isLeft","url":"classes/formulizekeyhelper.html#isleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":156,"kind":2048,"name":"isUp","url":"classes/formulizekeyhelper.html#isup","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":157,"kind":2048,"name":"isRight","url":"classes/formulizekeyhelper.html#isright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":158,"kind":2048,"name":"isDown","url":"classes/formulizekeyhelper.html#isdown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":159,"kind":2048,"name":"isHome","url":"classes/formulizekeyhelper.html#ishome","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":160,"kind":2048,"name":"isEnd","url":"classes/formulizekeyhelper.html#isend","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":161,"kind":2048,"name":"doReload","url":"classes/formulizekeyhelper.html#doreload","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":162,"kind":2048,"name":"doAction","url":"classes/formulizekeyhelper.html#doaction","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"FormulizeKeyHelper"},{"id":163,"kind":2048,"name":"getValue","url":"classes/formulizekeyhelper.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeKeyHelper"},{"id":164,"kind":2097152,"name":"defaultOptions","url":"globals.html#defaultoptions","classes":"tsd-kind-object-literal"},{"id":165,"kind":32,"name":"id","url":"globals.html#defaultoptions.id","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions"},{"id":166,"kind":2097152,"name":"text","url":"globals.html#defaultoptions.text","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"defaultOptions"},{"id":167,"kind":32,"name":"formula","url":"globals.html#defaultoptions.text.formula","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":168,"kind":32,"name":"error","url":"globals.html#defaultoptions.text.error","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":169,"kind":32,"name":"pass","url":"globals.html#defaultoptions.text.pass","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultOptions.text"},{"id":170,"kind":128,"name":"StringHelper","url":"classes/stringhelper.html","classes":"tsd-kind-class"},{"id":171,"kind":2048,"name":"isNumeric","url":"classes/stringhelper.html#isnumeric","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StringHelper"},{"id":172,"kind":2048,"name":"toNumber","url":"classes/stringhelper.html#tonumber","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StringHelper"},{"id":173,"kind":128,"name":"FormulizeTokenHelper","url":"classes/formulizetokenhelper.html","classes":"tsd-kind-class"},{"id":174,"kind":2048,"name":"toDecimal","url":"classes/formulizetokenhelper.html#todecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":175,"kind":2048,"name":"isValid","url":"classes/formulizetokenhelper.html#isvalid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":176,"kind":2048,"name":"isNumeric","url":"classes/formulizetokenhelper.html#isnumeric","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":177,"kind":2048,"name":"isBracket","url":"classes/formulizetokenhelper.html#isbracket","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":178,"kind":2048,"name":"isComma","url":"classes/formulizetokenhelper.html#iscomma","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":179,"kind":2048,"name":"supportValue","url":"classes/formulizetokenhelper.html#supportvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FormulizeTokenHelper"},{"id":180,"kind":128,"name":"UIElementHelper","url":"classes/uielementhelper.html","classes":"tsd-kind-class"},{"id":181,"kind":2048,"name":"getDragElement","url":"classes/uielementhelper.html#getdragelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":182,"kind":2048,"name":"getCursorElement","url":"classes/uielementhelper.html#getcursorelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":183,"kind":2048,"name":"getUnitElement","url":"classes/uielementhelper.html#getunitelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":184,"kind":2048,"name":"getUnitDecimalElement","url":"classes/uielementhelper.html#getunitdecimalelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":185,"kind":2048,"name":"getOperatorElement","url":"classes/uielementhelper.html#getoperatorelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":186,"kind":2048,"name":"getTextBoxElement","url":"classes/uielementhelper.html#gettextboxelement","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":187,"kind":2048,"name":"setUnitValue","url":"classes/uielementhelper.html#setunitvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":188,"kind":2048,"name":"isElementType","url":"classes/uielementhelper.html#iselementtype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":189,"kind":2048,"name":"isDrag","url":"classes/uielementhelper.html#isdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":190,"kind":2048,"name":"isCursor","url":"classes/uielementhelper.html#iscursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":191,"kind":2048,"name":"isUnit","url":"classes/uielementhelper.html#isunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":192,"kind":2048,"name":"isOperator","url":"classes/uielementhelper.html#isoperator","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIElementHelper"},{"id":193,"kind":128,"name":"UIHelper","url":"classes/uihelper.html","classes":"tsd-kind-class"},{"id":194,"kind":2048,"name":"getDataValue","url":"classes/uihelper.html#getdatavalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":195,"kind":2048,"name":"isOverDistance","url":"classes/uihelper.html#isoverdistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":196,"kind":2048,"name":"isDOM","url":"classes/uihelper.html#isdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":197,"kind":2048,"name":"getDOM","url":"classes/uihelper.html#getdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UIHelper"},{"id":198,"kind":128,"name":"UIDom","url":"classes/uidom.html","classes":"tsd-kind-class"},{"id":199,"kind":1024,"name":"wrapper","url":"classes/uidom.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":200,"kind":1024,"name":"container","url":"classes/uidom.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":201,"kind":1024,"name":"statusBox","url":"classes/uidom.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":202,"kind":1024,"name":"textBox","url":"classes/uidom.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":203,"kind":1024,"name":"cursor","url":"classes/uidom.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":204,"kind":1024,"name":"elem","url":"classes/uidom.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":205,"kind":1024,"name":"options","url":"classes/uidom.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":206,"kind":262144,"name":"cursorIndex","url":"classes/uidom.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":207,"kind":262144,"name":"dragElem","url":"classes/uidom.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":208,"kind":2048,"name":"initializeDOM","url":"classes/uidom.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":209,"kind":2048,"name":"bindingDOM","url":"classes/uidom.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":210,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uidom.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":211,"kind":2048,"name":"attachEvents","url":"classes/uidom.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":212,"kind":2048,"name":"getPrevUnit","url":"classes/uidom.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":213,"kind":2048,"name":"getNextUnit","url":"classes/uidom.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":214,"kind":2048,"name":"mergeUnit","url":"classes/uidom.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":215,"kind":2048,"name":"removeCursor","url":"classes/uidom.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":216,"kind":2048,"name":"removeUnit","url":"classes/uidom.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":217,"kind":2048,"name":"updateStatus","url":"classes/uidom.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIDom"},{"id":218,"kind":128,"name":"UIAnalyzer","url":"classes/uianalyzer.html","classes":"tsd-kind-class"},{"id":219,"kind":2048,"name":"analyzeKey","url":"classes/uianalyzer.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-protected","parent":"UIAnalyzer"},{"id":220,"kind":1024,"name":"wrapper","url":"classes/uianalyzer.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":221,"kind":1024,"name":"container","url":"classes/uianalyzer.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":222,"kind":1024,"name":"statusBox","url":"classes/uianalyzer.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":223,"kind":1024,"name":"textBox","url":"classes/uianalyzer.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":224,"kind":1024,"name":"cursor","url":"classes/uianalyzer.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":225,"kind":1024,"name":"elem","url":"classes/uianalyzer.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":226,"kind":1024,"name":"options","url":"classes/uianalyzer.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":227,"kind":262144,"name":"cursorIndex","url":"classes/uianalyzer.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":228,"kind":262144,"name":"dragElem","url":"classes/uianalyzer.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":229,"kind":2048,"name":"initializeDOM","url":"classes/uianalyzer.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":230,"kind":2048,"name":"bindingDOM","url":"classes/uianalyzer.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":231,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uianalyzer.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":232,"kind":2048,"name":"attachEvents","url":"classes/uianalyzer.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":233,"kind":2048,"name":"getPrevUnit","url":"classes/uianalyzer.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":234,"kind":2048,"name":"getNextUnit","url":"classes/uianalyzer.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":235,"kind":2048,"name":"mergeUnit","url":"classes/uianalyzer.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":236,"kind":2048,"name":"removeCursor","url":"classes/uianalyzer.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":237,"kind":2048,"name":"removeUnit","url":"classes/uianalyzer.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":238,"kind":2048,"name":"updateStatus","url":"classes/uianalyzer.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIAnalyzer"},{"id":239,"kind":128,"name":"UIPipe","url":"classes/uipipe.html","classes":"tsd-kind-class"},{"id":240,"kind":2048,"name":"pipeInsert","url":"classes/uipipe.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIPipe"},{"id":241,"kind":2048,"name":"pipeParse","url":"classes/uipipe.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIPipe"},{"id":242,"kind":2048,"name":"analyzeKey","url":"classes/uipipe.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":243,"kind":1024,"name":"wrapper","url":"classes/uipipe.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":244,"kind":1024,"name":"container","url":"classes/uipipe.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":245,"kind":1024,"name":"statusBox","url":"classes/uipipe.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":246,"kind":1024,"name":"textBox","url":"classes/uipipe.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":247,"kind":1024,"name":"cursor","url":"classes/uipipe.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":248,"kind":1024,"name":"elem","url":"classes/uipipe.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":249,"kind":1024,"name":"options","url":"classes/uipipe.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":250,"kind":262144,"name":"cursorIndex","url":"classes/uipipe.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":251,"kind":262144,"name":"dragElem","url":"classes/uipipe.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":252,"kind":2048,"name":"initializeDOM","url":"classes/uipipe.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":253,"kind":2048,"name":"bindingDOM","url":"classes/uipipe.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":254,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uipipe.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":255,"kind":2048,"name":"attachEvents","url":"classes/uipipe.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":256,"kind":2048,"name":"getPrevUnit","url":"classes/uipipe.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":257,"kind":2048,"name":"getNextUnit","url":"classes/uipipe.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":258,"kind":2048,"name":"mergeUnit","url":"classes/uipipe.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":259,"kind":2048,"name":"removeCursor","url":"classes/uipipe.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":260,"kind":2048,"name":"removeUnit","url":"classes/uipipe.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":261,"kind":2048,"name":"updateStatus","url":"classes/uipipe.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIPipe"},{"id":262,"kind":128,"name":"UIManager","url":"classes/uimanager.html","classes":"tsd-kind-class"},{"id":263,"kind":1024,"name":"prevCursorIndex","url":"classes/uimanager.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":264,"kind":2097152,"name":"prevPosition","url":"classes/uimanager.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":265,"kind":32,"name":"x","url":"classes/uimanager.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIManager.prevPosition"},{"id":266,"kind":32,"name":"y","url":"classes/uimanager.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIManager.prevPosition"},{"id":267,"kind":1024,"name":"dragged","url":"classes/uimanager.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":268,"kind":1024,"name":"moved","url":"classes/uimanager.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":269,"kind":2048,"name":"pick","url":"classes/uimanager.html#pick","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":270,"kind":2048,"name":"setData","url":"classes/uimanager.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":271,"kind":2048,"name":"getData","url":"classes/uimanager.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"UIManager"},{"id":272,"kind":2048,"name":"triggerUpdate","url":"classes/uimanager.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":273,"kind":2048,"name":"getExpression","url":"classes/uimanager.html#getexpression","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":274,"kind":2048,"name":"startDrag","url":"classes/uimanager.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":275,"kind":2048,"name":"endDrag","url":"classes/uimanager.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":276,"kind":2048,"name":"moveDrag","url":"classes/uimanager.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":277,"kind":2048,"name":"findClosestUnit","url":"classes/uimanager.html#findclosestunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":278,"kind":2048,"name":"selectAll","url":"classes/uimanager.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":279,"kind":2048,"name":"selectRange","url":"classes/uimanager.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":280,"kind":2048,"name":"removeBefore","url":"classes/uimanager.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":281,"kind":2048,"name":"removeAfter","url":"classes/uimanager.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":282,"kind":2048,"name":"dragFirst","url":"classes/uimanager.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":283,"kind":2048,"name":"dragLast","url":"classes/uimanager.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":284,"kind":2048,"name":"dragLeft","url":"classes/uimanager.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":285,"kind":2048,"name":"dragRight","url":"classes/uimanager.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":286,"kind":2048,"name":"moveCursorBefore","url":"classes/uimanager.html#movecursorbefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":287,"kind":2048,"name":"moveCursorAfter","url":"classes/uimanager.html#movecursorafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"UIManager"},{"id":288,"kind":2048,"name":"moveLeftCursor","url":"classes/uimanager.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":289,"kind":2048,"name":"moveUpCursor","url":"classes/uimanager.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":290,"kind":2048,"name":"moveRightCursor","url":"classes/uimanager.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":291,"kind":2048,"name":"moveDownCursor","url":"classes/uimanager.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":292,"kind":2048,"name":"moveFirstCursor","url":"classes/uimanager.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":293,"kind":2048,"name":"moveLastCursor","url":"classes/uimanager.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIManager"},{"id":294,"kind":2048,"name":"clear","url":"classes/uimanager.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":295,"kind":2048,"name":"blur","url":"classes/uimanager.html#blur","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":296,"kind":2048,"name":"removeDrag","url":"classes/uimanager.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":297,"kind":2048,"name":"insert","url":"classes/uimanager.html#insert","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":298,"kind":2048,"name":"insertValue","url":"classes/uimanager.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":299,"kind":2048,"name":"insertData","url":"classes/uimanager.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":300,"kind":2048,"name":"validate","url":"classes/uimanager.html#validate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UIManager"},{"id":301,"kind":2048,"name":"pipeInsert","url":"classes/uimanager.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":302,"kind":2048,"name":"pipeParse","url":"classes/uimanager.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":303,"kind":2048,"name":"analyzeKey","url":"classes/uimanager.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":304,"kind":1024,"name":"wrapper","url":"classes/uimanager.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":305,"kind":1024,"name":"container","url":"classes/uimanager.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":306,"kind":1024,"name":"statusBox","url":"classes/uimanager.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":307,"kind":1024,"name":"textBox","url":"classes/uimanager.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":308,"kind":1024,"name":"cursor","url":"classes/uimanager.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":309,"kind":1024,"name":"elem","url":"classes/uimanager.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":310,"kind":1024,"name":"options","url":"classes/uimanager.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":311,"kind":262144,"name":"cursorIndex","url":"classes/uimanager.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":312,"kind":262144,"name":"dragElem","url":"classes/uimanager.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":313,"kind":2048,"name":"initializeDOM","url":"classes/uimanager.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":314,"kind":2048,"name":"bindingDOM","url":"classes/uimanager.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":315,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uimanager.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":316,"kind":2048,"name":"attachEvents","url":"classes/uimanager.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":317,"kind":2048,"name":"getPrevUnit","url":"classes/uimanager.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":318,"kind":2048,"name":"getNextUnit","url":"classes/uimanager.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":319,"kind":2048,"name":"mergeUnit","url":"classes/uimanager.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":320,"kind":2048,"name":"removeCursor","url":"classes/uimanager.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":321,"kind":2048,"name":"removeUnit","url":"classes/uimanager.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":322,"kind":2048,"name":"updateStatus","url":"classes/uimanager.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIManager"},{"id":323,"kind":128,"name":"UIHook","url":"classes/uihook.html","classes":"tsd-kind-class"},{"id":324,"kind":2048,"name":"hookKeyDown","url":"classes/uihook.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"UIHook"},{"id":325,"kind":1024,"name":"prevCursorIndex","url":"classes/uihook.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":326,"kind":2097152,"name":"prevPosition","url":"classes/uihook.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":327,"kind":32,"name":"x","url":"classes/uihook.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIHook.prevPosition"},{"id":328,"kind":32,"name":"y","url":"classes/uihook.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIHook.prevPosition"},{"id":329,"kind":1024,"name":"dragged","url":"classes/uihook.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":330,"kind":1024,"name":"moved","url":"classes/uihook.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":331,"kind":2048,"name":"pick","url":"classes/uihook.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":332,"kind":2048,"name":"setData","url":"classes/uihook.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":333,"kind":2048,"name":"getData","url":"classes/uihook.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UIHook"},{"id":334,"kind":2048,"name":"triggerUpdate","url":"classes/uihook.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":335,"kind":2048,"name":"startDrag","url":"classes/uihook.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":336,"kind":2048,"name":"endDrag","url":"classes/uihook.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":337,"kind":2048,"name":"moveDrag","url":"classes/uihook.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":338,"kind":2048,"name":"selectAll","url":"classes/uihook.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":339,"kind":2048,"name":"selectRange","url":"classes/uihook.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":340,"kind":2048,"name":"removeBefore","url":"classes/uihook.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":341,"kind":2048,"name":"removeAfter","url":"classes/uihook.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":342,"kind":2048,"name":"dragFirst","url":"classes/uihook.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":343,"kind":2048,"name":"dragLast","url":"classes/uihook.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":344,"kind":2048,"name":"dragLeft","url":"classes/uihook.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":345,"kind":2048,"name":"dragRight","url":"classes/uihook.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":346,"kind":2048,"name":"moveLeftCursor","url":"classes/uihook.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":347,"kind":2048,"name":"moveUpCursor","url":"classes/uihook.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":348,"kind":2048,"name":"moveRightCursor","url":"classes/uihook.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":349,"kind":2048,"name":"moveDownCursor","url":"classes/uihook.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":350,"kind":2048,"name":"moveFirstCursor","url":"classes/uihook.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":351,"kind":2048,"name":"moveLastCursor","url":"classes/uihook.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":352,"kind":2048,"name":"clear","url":"classes/uihook.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":353,"kind":2048,"name":"blur","url":"classes/uihook.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":354,"kind":2048,"name":"removeDrag","url":"classes/uihook.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":355,"kind":2048,"name":"insert","url":"classes/uihook.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":356,"kind":2048,"name":"insertValue","url":"classes/uihook.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":357,"kind":2048,"name":"insertData","url":"classes/uihook.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":358,"kind":2048,"name":"validate","url":"classes/uihook.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIHook"},{"id":359,"kind":2048,"name":"pipeInsert","url":"classes/uihook.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":360,"kind":2048,"name":"pipeParse","url":"classes/uihook.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":361,"kind":2048,"name":"analyzeKey","url":"classes/uihook.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":362,"kind":1024,"name":"wrapper","url":"classes/uihook.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":363,"kind":1024,"name":"container","url":"classes/uihook.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":364,"kind":1024,"name":"statusBox","url":"classes/uihook.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":365,"kind":1024,"name":"textBox","url":"classes/uihook.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":366,"kind":1024,"name":"cursor","url":"classes/uihook.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":367,"kind":1024,"name":"elem","url":"classes/uihook.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":368,"kind":1024,"name":"options","url":"classes/uihook.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":369,"kind":262144,"name":"cursorIndex","url":"classes/uihook.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":370,"kind":262144,"name":"dragElem","url":"classes/uihook.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":371,"kind":2048,"name":"initializeDOM","url":"classes/uihook.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":372,"kind":2048,"name":"bindingDOM","url":"classes/uihook.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":373,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uihook.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":374,"kind":2048,"name":"attachEvents","url":"classes/uihook.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":375,"kind":2048,"name":"getPrevUnit","url":"classes/uihook.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":376,"kind":2048,"name":"getNextUnit","url":"classes/uihook.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":377,"kind":2048,"name":"mergeUnit","url":"classes/uihook.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":378,"kind":2048,"name":"removeCursor","url":"classes/uihook.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":379,"kind":2048,"name":"removeUnit","url":"classes/uihook.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":380,"kind":2048,"name":"updateStatus","url":"classes/uihook.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIHook"},{"id":381,"kind":128,"name":"UIBase","url":"classes/uibase.html","classes":"tsd-kind-class"},{"id":382,"kind":512,"name":"constructor","url":"classes/uibase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"UIBase"},{"id":383,"kind":2048,"name":"hookKeyDown","url":"classes/uibase.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":384,"kind":1024,"name":"prevCursorIndex","url":"classes/uibase.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":385,"kind":2097152,"name":"prevPosition","url":"classes/uibase.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":386,"kind":32,"name":"x","url":"classes/uibase.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIBase.prevPosition"},{"id":387,"kind":32,"name":"y","url":"classes/uibase.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UIBase.prevPosition"},{"id":388,"kind":1024,"name":"dragged","url":"classes/uibase.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":389,"kind":1024,"name":"moved","url":"classes/uibase.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":390,"kind":2048,"name":"pick","url":"classes/uibase.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":391,"kind":2048,"name":"setData","url":"classes/uibase.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":392,"kind":2048,"name":"getData","url":"classes/uibase.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UIBase"},{"id":393,"kind":2048,"name":"triggerUpdate","url":"classes/uibase.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":394,"kind":2048,"name":"startDrag","url":"classes/uibase.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":395,"kind":2048,"name":"endDrag","url":"classes/uibase.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":396,"kind":2048,"name":"moveDrag","url":"classes/uibase.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":397,"kind":2048,"name":"selectAll","url":"classes/uibase.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":398,"kind":2048,"name":"selectRange","url":"classes/uibase.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":399,"kind":2048,"name":"removeBefore","url":"classes/uibase.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":400,"kind":2048,"name":"removeAfter","url":"classes/uibase.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":401,"kind":2048,"name":"dragFirst","url":"classes/uibase.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":402,"kind":2048,"name":"dragLast","url":"classes/uibase.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":403,"kind":2048,"name":"dragLeft","url":"classes/uibase.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":404,"kind":2048,"name":"dragRight","url":"classes/uibase.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":405,"kind":2048,"name":"moveLeftCursor","url":"classes/uibase.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":406,"kind":2048,"name":"moveUpCursor","url":"classes/uibase.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":407,"kind":2048,"name":"moveRightCursor","url":"classes/uibase.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":408,"kind":2048,"name":"moveDownCursor","url":"classes/uibase.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":409,"kind":2048,"name":"moveFirstCursor","url":"classes/uibase.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":410,"kind":2048,"name":"moveLastCursor","url":"classes/uibase.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":411,"kind":2048,"name":"clear","url":"classes/uibase.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":412,"kind":2048,"name":"blur","url":"classes/uibase.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":413,"kind":2048,"name":"removeDrag","url":"classes/uibase.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":414,"kind":2048,"name":"insert","url":"classes/uibase.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":415,"kind":2048,"name":"insertValue","url":"classes/uibase.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":416,"kind":2048,"name":"insertData","url":"classes/uibase.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":417,"kind":2048,"name":"validate","url":"classes/uibase.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UIBase"},{"id":418,"kind":2048,"name":"pipeInsert","url":"classes/uibase.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":419,"kind":2048,"name":"pipeParse","url":"classes/uibase.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":420,"kind":2048,"name":"analyzeKey","url":"classes/uibase.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":421,"kind":1024,"name":"wrapper","url":"classes/uibase.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":422,"kind":1024,"name":"container","url":"classes/uibase.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":423,"kind":1024,"name":"statusBox","url":"classes/uibase.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":424,"kind":1024,"name":"textBox","url":"classes/uibase.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":425,"kind":1024,"name":"cursor","url":"classes/uibase.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":426,"kind":1024,"name":"elem","url":"classes/uibase.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":427,"kind":1024,"name":"options","url":"classes/uibase.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":428,"kind":262144,"name":"cursorIndex","url":"classes/uibase.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":429,"kind":262144,"name":"dragElem","url":"classes/uibase.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":430,"kind":2048,"name":"initializeDOM","url":"classes/uibase.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":431,"kind":2048,"name":"bindingDOM","url":"classes/uibase.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":432,"kind":2048,"name":"isAlreadyInitialized","url":"classes/uibase.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":433,"kind":2048,"name":"attachEvents","url":"classes/uibase.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":434,"kind":2048,"name":"getPrevUnit","url":"classes/uibase.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":435,"kind":2048,"name":"getNextUnit","url":"classes/uibase.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":436,"kind":2048,"name":"mergeUnit","url":"classes/uibase.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":437,"kind":2048,"name":"removeCursor","url":"classes/uibase.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":438,"kind":2048,"name":"removeUnit","url":"classes/uibase.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":439,"kind":2048,"name":"updateStatus","url":"classes/uibase.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UIBase"},{"id":440,"kind":128,"name":"UI","url":"classes/ui.html","classes":"tsd-kind-class"},{"id":441,"kind":2048,"name":"analyzeKey","url":"classes/ui.html#analyzekey","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite tsd-is-protected","parent":"UI"},{"id":442,"kind":2048,"name":"attachEvents","url":"classes/ui.html#attachevents","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-protected","parent":"UI"},{"id":443,"kind":512,"name":"constructor","url":"classes/ui.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":444,"kind":2048,"name":"hookKeyDown","url":"classes/ui.html#hookkeydown","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":445,"kind":1024,"name":"prevCursorIndex","url":"classes/ui.html#prevcursorindex","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":446,"kind":2097152,"name":"prevPosition","url":"classes/ui.html#prevposition","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":447,"kind":32,"name":"x","url":"classes/ui.html#prevposition.x","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UI.prevPosition"},{"id":448,"kind":32,"name":"y","url":"classes/ui.html#prevposition.y","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"UI.prevPosition"},{"id":449,"kind":1024,"name":"dragged","url":"classes/ui.html#dragged","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":450,"kind":1024,"name":"moved","url":"classes/ui.html#moved","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":451,"kind":2048,"name":"pick","url":"classes/ui.html#pick","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":452,"kind":2048,"name":"setData","url":"classes/ui.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":453,"kind":2048,"name":"getData","url":"classes/ui.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"UI"},{"id":454,"kind":2048,"name":"triggerUpdate","url":"classes/ui.html#triggerupdate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":455,"kind":2048,"name":"startDrag","url":"classes/ui.html#startdrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":456,"kind":2048,"name":"endDrag","url":"classes/ui.html#enddrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":457,"kind":2048,"name":"moveDrag","url":"classes/ui.html#movedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":458,"kind":2048,"name":"selectAll","url":"classes/ui.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":459,"kind":2048,"name":"selectRange","url":"classes/ui.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":460,"kind":2048,"name":"removeBefore","url":"classes/ui.html#removebefore","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":461,"kind":2048,"name":"removeAfter","url":"classes/ui.html#removeafter","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":462,"kind":2048,"name":"dragFirst","url":"classes/ui.html#dragfirst","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":463,"kind":2048,"name":"dragLast","url":"classes/ui.html#draglast","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":464,"kind":2048,"name":"dragLeft","url":"classes/ui.html#dragleft","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":465,"kind":2048,"name":"dragRight","url":"classes/ui.html#dragright","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":466,"kind":2048,"name":"moveLeftCursor","url":"classes/ui.html#moveleftcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":467,"kind":2048,"name":"moveUpCursor","url":"classes/ui.html#moveupcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":468,"kind":2048,"name":"moveRightCursor","url":"classes/ui.html#moverightcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":469,"kind":2048,"name":"moveDownCursor","url":"classes/ui.html#movedowncursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":470,"kind":2048,"name":"moveFirstCursor","url":"classes/ui.html#movefirstcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":471,"kind":2048,"name":"moveLastCursor","url":"classes/ui.html#movelastcursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":472,"kind":2048,"name":"clear","url":"classes/ui.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":473,"kind":2048,"name":"blur","url":"classes/ui.html#blur","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":474,"kind":2048,"name":"removeDrag","url":"classes/ui.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":475,"kind":2048,"name":"insert","url":"classes/ui.html#insert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":476,"kind":2048,"name":"insertValue","url":"classes/ui.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":477,"kind":2048,"name":"insertData","url":"classes/ui.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":478,"kind":2048,"name":"validate","url":"classes/ui.html#validate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"UI"},{"id":479,"kind":2048,"name":"pipeInsert","url":"classes/ui.html#pipeinsert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":480,"kind":2048,"name":"pipeParse","url":"classes/ui.html#pipeparse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":481,"kind":1024,"name":"wrapper","url":"classes/ui.html#wrapper","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":482,"kind":1024,"name":"container","url":"classes/ui.html#container","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":483,"kind":1024,"name":"statusBox","url":"classes/ui.html#statusbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":484,"kind":1024,"name":"textBox","url":"classes/ui.html#textbox","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":485,"kind":1024,"name":"cursor","url":"classes/ui.html#cursor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":486,"kind":1024,"name":"elem","url":"classes/ui.html#elem","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":487,"kind":1024,"name":"options","url":"classes/ui.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":488,"kind":262144,"name":"cursorIndex","url":"classes/ui.html#cursorindex","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":489,"kind":262144,"name":"dragElem","url":"classes/ui.html#dragelem","classes":"tsd-kind-get-signature tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":490,"kind":2048,"name":"initializeDOM","url":"classes/ui.html#initializedom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":491,"kind":2048,"name":"bindingDOM","url":"classes/ui.html#bindingdom","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":492,"kind":2048,"name":"isAlreadyInitialized","url":"classes/ui.html#isalreadyinitialized","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":493,"kind":2048,"name":"getPrevUnit","url":"classes/ui.html#getprevunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":494,"kind":2048,"name":"getNextUnit","url":"classes/ui.html#getnextunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":495,"kind":2048,"name":"mergeUnit","url":"classes/ui.html#mergeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":496,"kind":2048,"name":"removeCursor","url":"classes/ui.html#removecursor","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":497,"kind":2048,"name":"removeUnit","url":"classes/ui.html#removeunit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":498,"kind":2048,"name":"updateStatus","url":"classes/ui.html#updatestatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"UI"},{"id":499,"kind":128,"name":"MethodBase","url":"classes/methodbase.html","classes":"tsd-kind-class"},{"id":500,"kind":1024,"name":"formulize","url":"classes/methodbase.html#formulize","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"MethodBase"},{"id":501,"kind":512,"name":"constructor","url":"classes/methodbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MethodBase"},{"id":502,"kind":2048,"name":"pick","url":"classes/methodbase.html#pick","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":503,"kind":2048,"name":"clear","url":"classes/methodbase.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":504,"kind":2048,"name":"blur","url":"classes/methodbase.html#blur","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":505,"kind":2048,"name":"setData","url":"classes/methodbase.html#setdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":506,"kind":2048,"name":"getData","url":"classes/methodbase.html#getdata","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"MethodBase"},{"id":507,"kind":2048,"name":"selectRange","url":"classes/methodbase.html#selectrange","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":508,"kind":2048,"name":"selectAll","url":"classes/methodbase.html#selectall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":509,"kind":2048,"name":"removeDrag","url":"classes/methodbase.html#removedrag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":510,"kind":2048,"name":"insert","url":"classes/methodbase.html#insert","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":511,"kind":2048,"name":"insertValue","url":"classes/methodbase.html#insertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":512,"kind":2048,"name":"insertData","url":"classes/methodbase.html#insertdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":513,"kind":2048,"name":"validate","url":"classes/methodbase.html#validate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MethodBase"},{"id":514,"kind":64,"name":"methodBinder","url":"globals.html#methodbinder","classes":"tsd-kind-function"},{"id":515,"kind":64,"name":"pluginBinder","url":"globals.html#pluginbinder","classes":"tsd-kind-function"},{"id":516,"kind":32,"name":"_MODULE_VERSION_","url":"globals.html#_module_version_","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":517,"kind":64,"name":"getVersion","url":"globals.html#getversion","classes":"tsd-kind-function"}]}; \ No newline at end of file diff --git a/docs/classes/formulizekeyhelper.html b/docs/classes/formulizekeyhelper.html index e5373cb..d2dc420 100644 --- a/docs/classes/formulizekeyhelper.html +++ b/docs/classes/formulizekeyhelper.html @@ -1092,7 +1092,7 @@

Static doAction

  • Type parameters

    @@ -1145,7 +1145,7 @@

    Static doReload

  • Returns void

    @@ -1162,7 +1162,7 @@

    Static getValue

  • Parameters

    @@ -1188,7 +1188,7 @@

    Static isBackspace

  • Parameters

    @@ -1211,7 +1211,7 @@

    Static isDelete

  • Parameters

    @@ -1234,7 +1234,7 @@

    Static isDown

  • Parameters

    @@ -1257,7 +1257,7 @@

    Static isEnd

  • Parameters

    @@ -1280,7 +1280,7 @@

    Static isHome

  • Parameters

    @@ -1303,7 +1303,7 @@

    Static isLeft

  • Parameters

    @@ -1326,7 +1326,7 @@

    Static isReload

  • Parameters

    @@ -1352,7 +1352,7 @@

    Static isRight

  • Parameters

    @@ -1375,7 +1375,7 @@

    Static isSelectAll

    Parameters

    @@ -1401,7 +1401,7 @@

    Static isUp

  • Parameters

    diff --git a/docs/classes/formulizetokenhelper.html b/docs/classes/formulizetokenhelper.html index 7d9c731..a6d9e02 100644 --- a/docs/classes/formulizetokenhelper.html +++ b/docs/classes/formulizetokenhelper.html @@ -1064,7 +1064,7 @@

    Static isBracket

  • Parameters

    @@ -1087,7 +1087,7 @@

    Static isComma

  • Parameters

    @@ -1110,7 +1110,7 @@

    Static isNumeric

  • Parameters

    @@ -1133,7 +1133,7 @@

    Static isValid

  • Parameters

    @@ -1156,7 +1156,7 @@

    Static supportValue

  • Parameters

    @@ -1179,7 +1179,7 @@

    Static toDecimal

  • Parameters

    diff --git a/docs/classes/methodbase.html b/docs/classes/methodbase.html index 6bba247..9dece83 100644 --- a/docs/classes/methodbase.html +++ b/docs/classes/methodbase.html @@ -1112,7 +1112,7 @@

    constructor

  • Parameters

    @@ -1134,7 +1134,7 @@

    Protected formulize

    formulize: UI
    @@ -1151,7 +1151,7 @@

    blur

  • Returns void

    @@ -1168,7 +1168,7 @@

    clear

  • Returns void

    @@ -1185,7 +1185,7 @@

    getData

  • Type parameters

    @@ -1232,7 +1232,7 @@

    insert

  • Parameters

    @@ -1258,7 +1258,7 @@

    insertData

  • Parameters

    @@ -1281,7 +1281,7 @@

    insertValue

  • Parameters

    @@ -1304,7 +1304,7 @@

    pick

  • Returns void

    @@ -1321,7 +1321,7 @@

    removeDrag

  • Returns void

    @@ -1338,7 +1338,7 @@

    selectAll

  • Returns void

    @@ -1355,7 +1355,7 @@

    selectRange

  • Parameters

    @@ -1381,7 +1381,7 @@

    setData

  • Parameters

    @@ -1404,7 +1404,7 @@

    validate

  • Parameters

    diff --git a/docs/classes/stringhelper.html b/docs/classes/stringhelper.html index af6a16d..71edf92 100644 --- a/docs/classes/stringhelper.html +++ b/docs/classes/stringhelper.html @@ -1048,7 +1048,7 @@

    Static isNumeric

  • Parameters

    @@ -1071,7 +1071,7 @@

    Static toNumber

  • Parameters

    diff --git a/docs/classes/ui.html b/docs/classes/ui.html index 6a8380f..d87c36b 100644 --- a/docs/classes/ui.html +++ b/docs/classes/ui.html @@ -1086,6 +1086,9 @@
  • triggerUpdate
  • +
  • + updateStatus +
  • validate
  • @@ -1261,6 +1264,7 @@

    Methods

  • setData
  • startDrag
  • triggerUpdate
  • +
  • updateStatus
  • validate
  • @@ -1286,7 +1290,7 @@

    constructor

    Parameters

    @@ -1312,7 +1316,7 @@

    Protected container

    @@ -1323,7 +1327,7 @@

    Protected cursor

    @@ -1334,7 +1338,7 @@

    Protected dragged

    @@ -1345,7 +1349,7 @@

    Protected elem

    @@ -1356,7 +1360,7 @@

    Protected moved

    @@ -1367,7 +1371,7 @@

    Protected options

    @@ -1378,7 +1382,7 @@

    Protected prevCursor

    Inherited from UIManager.prevCursorIndex

    @@ -1389,7 +1393,7 @@

    Protected statusBox

    @@ -1400,7 +1404,7 @@

    Protected textBox

    @@ -1411,7 +1415,7 @@

    Protected wrapper

    @@ -1425,7 +1429,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1436,7 +1440,7 @@

    Protected dragElem

    @@ -1454,7 +1458,7 @@

    Protected analyzeKey

    Overrides UIAnalyzer.analyzeKey

    Type parameters

    @@ -1490,7 +1494,7 @@

    Protected attachEvents

    Overrides UIDom.attachEvents

    Returns void

    @@ -1508,7 +1512,7 @@

    Protected bindingDOM

    Returns void

    @@ -1526,7 +1530,7 @@

    blur

    Returns void

    @@ -1544,7 +1548,7 @@

    clear

    Returns void

    @@ -1562,7 +1566,7 @@

    Protected dragFirst

    Returns void

    @@ -1580,7 +1584,7 @@

    Protected dragLast

    Returns void

    @@ -1598,7 +1602,7 @@

    Protected dragLeft

    Returns void

    @@ -1616,7 +1620,7 @@

    Protected dragRight

    Returns void

    @@ -1634,7 +1638,7 @@

    Protected endDrag

    Parameters

    @@ -1658,7 +1662,7 @@

    getData

    Type parameters

    @@ -1706,7 +1710,7 @@

    Protected getNextUn

    Parameters

    @@ -1730,7 +1734,7 @@

    Protected getPrevUn

    Parameters

    @@ -1754,7 +1758,7 @@

    Protected hookKeyDo

    Parameters

    @@ -1778,7 +1782,7 @@

    Protected initializeDOM

    Returns void

    @@ -1796,7 +1800,7 @@

    insert

    Parameters

    @@ -1823,7 +1827,7 @@

    insertData

    Parameters

    @@ -1847,7 +1851,7 @@

    insertValue

    Parameters

    @@ -1871,7 +1875,7 @@

    Protected isAlready

    Returns boolean

    @@ -1889,7 +1893,7 @@

    Protected mergeUnit

    Parameters

    @@ -1913,7 +1917,7 @@

    Protected moveDownC

    Returns void

    @@ -1931,7 +1935,7 @@

    Protected moveDrag

    Parameters

    @@ -1955,7 +1959,7 @@

    Protected moveFirst

    Parameters

    @@ -1979,7 +1983,7 @@

    Protected moveLastC

    Parameters

    @@ -2003,7 +2007,7 @@

    Protected moveLeftC

    Parameters

    @@ -2027,7 +2031,7 @@

    Protected moveRight

    Parameters

    @@ -2051,7 +2055,7 @@

    Protected moveUpCursor

    Inherited from UIManager.moveUpCursor

    Returns void

    @@ -2069,7 +2073,7 @@

    pick

    Parameters

    @@ -2093,7 +2097,7 @@

    Protected pipeInsert

    Inherited from UIPipe.pipeInsert

    Parameters

    @@ -2117,7 +2121,7 @@

    Protected pipeParse

    Parameters

    @@ -2141,7 +2145,7 @@

    Protected removeAfter

    Inherited from UIManager.removeAfter

    Returns void

    @@ -2159,7 +2163,7 @@

    Protected removeBefore

    Inherited from UIManager.removeBefore

    Returns void

    @@ -2177,7 +2181,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -2195,7 +2199,7 @@

    removeDrag

    Returns void

    @@ -2213,7 +2217,7 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    Returns void

    @@ -2231,7 +2235,7 @@

    selectAll

    Returns void

    @@ -2249,7 +2253,7 @@

    selectRange

    Parameters

    @@ -2276,7 +2280,7 @@

    setData

    Parameters

    @@ -2300,7 +2304,7 @@

    Protected startDrag

    Parameters

    @@ -2324,9 +2328,33 @@

    Protected triggerUpdate< +

    Returns void

    + + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + @@ -2342,7 +2370,7 @@

    validate

    Parameters

    @@ -2383,7 +2411,7 @@

    Protected prevPosition

    Inherited from UIManager.prevPosition

    @@ -2392,7 +2420,7 @@

    x

    x: number = 0
    @@ -2402,7 +2430,7 @@

    y

    y: number = 0
    diff --git a/docs/classes/uianalyzer.html b/docs/classes/uianalyzer.html index 1e28e5b..f13cf04 100644 --- a/docs/classes/uianalyzer.html +++ b/docs/classes/uianalyzer.html @@ -987,6 +987,9 @@
  • removeUnit
  • +
  • + updateStatus +
  • @@ -1119,6 +1122,7 @@

    Methods

  • mergeUnit
  • removeCursor
  • removeUnit
  • +
  • updateStatus
  • @@ -1133,7 +1137,7 @@

    Protected container

    @@ -1144,7 +1148,7 @@

    Protected cursor

    @@ -1155,7 +1159,7 @@

    Protected elem

    @@ -1166,7 +1170,7 @@

    Protected options

    @@ -1177,7 +1181,7 @@

    Protected statusBox

    @@ -1188,7 +1192,7 @@

    Protected textBox

    @@ -1199,7 +1203,7 @@

    Protected wrapper

    @@ -1213,7 +1217,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1224,7 +1228,7 @@

    Protected dragElem

    @@ -1241,7 +1245,7 @@

    Protected analyzeKey

    Type parameters

    @@ -1277,7 +1281,7 @@

    Protected attachEvents

    Inherited from UIDom.attachEvents

    Returns void

    @@ -1295,7 +1299,7 @@

    Protected bindingDOM

    Returns void

    @@ -1313,7 +1317,7 @@

    Protected getNextUn

    Parameters

    @@ -1337,7 +1341,7 @@

    Protected getPrevUn

    Parameters

    @@ -1361,7 +1365,7 @@

    Protected initializeDOM

    Returns void

    @@ -1379,7 +1383,7 @@

    Protected isAlready

    Returns boolean

    @@ -1397,7 +1401,7 @@

    Protected mergeUnit

    Parameters

    @@ -1421,7 +1425,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -1439,9 +1443,33 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    + +

    Returns void

    + + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + diff --git a/docs/classes/uibase.html b/docs/classes/uibase.html index 3c86410..a13f5f4 100644 --- a/docs/classes/uibase.html +++ b/docs/classes/uibase.html @@ -1092,6 +1092,9 @@
  • triggerUpdate
  • +
  • + updateStatus +
  • validate
  • @@ -1266,6 +1269,7 @@

    Methods

  • setData
  • startDrag
  • triggerUpdate
  • +
  • updateStatus
  • validate
  • @@ -1290,7 +1294,7 @@

    constructor

  • Parameters

    @@ -1316,7 +1320,7 @@

    Protected container

    @@ -1327,7 +1331,7 @@

    Protected cursor

    @@ -1338,7 +1342,7 @@

    Protected dragged

    @@ -1349,7 +1353,7 @@

    Protected elem

    @@ -1360,7 +1364,7 @@

    Protected moved

    @@ -1371,7 +1375,7 @@

    Protected options

    @@ -1382,7 +1386,7 @@

    Protected prevCursor

    Inherited from UIManager.prevCursorIndex

    @@ -1393,7 +1397,7 @@

    Protected statusBox

    @@ -1404,7 +1408,7 @@

    Protected textBox

    @@ -1415,7 +1419,7 @@

    Protected wrapper

    @@ -1429,7 +1433,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1440,7 +1444,7 @@

    Protected dragElem

    @@ -1458,7 +1462,7 @@

    Protected analyzeKey

    Inherited from UIAnalyzer.analyzeKey

    Type parameters

    @@ -1494,7 +1498,7 @@

    Protected attachEvents

    Inherited from UIDom.attachEvents

    Returns void

    @@ -1512,7 +1516,7 @@

    Protected bindingDOM

    Returns void

    @@ -1530,7 +1534,7 @@

    blur

    Returns void

    @@ -1548,7 +1552,7 @@

    clear

    Returns void

    @@ -1566,7 +1570,7 @@

    Protected dragFirst

    Returns void

    @@ -1584,7 +1588,7 @@

    Protected dragLast

    Returns void

    @@ -1602,7 +1606,7 @@

    Protected dragLeft

    Returns void

    @@ -1620,7 +1624,7 @@

    Protected dragRight

    Returns void

    @@ -1638,7 +1642,7 @@

    Protected endDrag

    Parameters

    @@ -1662,7 +1666,7 @@

    getData

    Type parameters

    @@ -1710,7 +1714,7 @@

    Protected getNextUn

    Parameters

    @@ -1734,7 +1738,7 @@

    Protected getPrevUn

    Parameters

    @@ -1758,7 +1762,7 @@

    Protected hookKeyDo

    Parameters

    @@ -1782,7 +1786,7 @@

    Protected initializeDOM

    Returns void

    @@ -1800,7 +1804,7 @@

    insert

    Parameters

    @@ -1827,7 +1831,7 @@

    insertData

    Parameters

    @@ -1851,7 +1855,7 @@

    insertValue

    Parameters

    @@ -1875,7 +1879,7 @@

    Protected isAlready

    Returns boolean

    @@ -1893,7 +1897,7 @@

    Protected mergeUnit

    Parameters

    @@ -1917,7 +1921,7 @@

    Protected moveDownC

    Returns void

    @@ -1935,7 +1939,7 @@

    Protected moveDrag

    Parameters

    @@ -1959,7 +1963,7 @@

    Protected moveFirst

    Parameters

    @@ -1983,7 +1987,7 @@

    Protected moveLastC

    Parameters

    @@ -2007,7 +2011,7 @@

    Protected moveLeftC

    Parameters

    @@ -2031,7 +2035,7 @@

    Protected moveRight

    Parameters

    @@ -2055,7 +2059,7 @@

    Protected moveUpCursor

    Inherited from UIManager.moveUpCursor

    Returns void

    @@ -2073,7 +2077,7 @@

    pick

    Parameters

    @@ -2097,7 +2101,7 @@

    Protected pipeInsert

    Inherited from UIPipe.pipeInsert

    Parameters

    @@ -2121,7 +2125,7 @@

    Protected pipeParse

    Parameters

    @@ -2145,7 +2149,7 @@

    Protected removeAfter

    Inherited from UIManager.removeAfter

    Returns void

    @@ -2163,7 +2167,7 @@

    Protected removeBefore

    Inherited from UIManager.removeBefore

    Returns void

    @@ -2181,7 +2185,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -2199,7 +2203,7 @@

    removeDrag

    Returns void

    @@ -2217,7 +2221,7 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    Returns void

    @@ -2235,7 +2239,7 @@

    selectAll

    Returns void

    @@ -2253,7 +2257,7 @@

    selectRange

    Parameters

    @@ -2280,7 +2284,7 @@

    setData

    Parameters

    @@ -2304,7 +2308,7 @@

    Protected startDrag

    Parameters

    @@ -2328,9 +2332,33 @@

    Protected triggerUpdate< +

    Returns void

    +
  • + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + @@ -2346,7 +2374,7 @@

    validate

    Parameters

    @@ -2387,7 +2415,7 @@

    Protected prevPosition

    Inherited from UIManager.prevPosition

    @@ -2396,7 +2424,7 @@

    x

    x: number = 0
    @@ -2406,7 +2434,7 @@

    y

    y: number = 0
    diff --git a/docs/classes/uidom.html b/docs/classes/uidom.html index c0169a8..62c03fe 100644 --- a/docs/classes/uidom.html +++ b/docs/classes/uidom.html @@ -990,6 +990,9 @@
  • removeUnit
  • +
  • + updateStatus +
  • @@ -1110,6 +1113,7 @@

    Methods

  • mergeUnit
  • removeCursor
  • removeUnit
  • +
  • updateStatus
  • @@ -1123,7 +1127,7 @@

    Protected container

    container: JQuery
    @@ -1133,7 +1137,7 @@

    Protected cursor

    cursor: JQuery
    @@ -1143,7 +1147,7 @@

    Protected elem

    elem: HTMLElement
    @@ -1153,7 +1157,7 @@

    Protected options

    @@ -1163,7 +1167,7 @@

    Protected statusBox

    statusBox: JQuery
    @@ -1173,7 +1177,7 @@

    Protected textBox

    textBox: JQuery
    @@ -1183,7 +1187,7 @@

    Protected wrapper

    wrapper: JQuery
    @@ -1196,7 +1200,7 @@

    Protected cursorIndexcursorIndex: @@ -1206,7 +1210,7 @@

    Protected dragElem

    dragElem:
    @@ -1223,7 +1227,7 @@

    Protected attachEvents

    Returns void

    @@ -1240,7 +1244,7 @@

    Protected bindingDOM

  • Returns void

    @@ -1257,7 +1261,7 @@

    Protected getNextUn
  • Parameters

    @@ -1280,7 +1284,7 @@

    Protected getPrevUn
  • Parameters

    @@ -1303,7 +1307,7 @@

    Protected initializeDOM

  • Returns void

    @@ -1320,7 +1324,7 @@

    Protected isAlready
  • Returns boolean

    @@ -1337,7 +1341,7 @@

    Protected mergeUnit

  • Parameters

    @@ -1360,7 +1364,7 @@

    Protected removeCursor

    Returns void

    @@ -1377,9 +1381,32 @@

    Protected removeUnit

    +

    Returns void

    +
  • + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        Default value valid: boolean = false
        +
      • +

      Returns void

    diff --git a/docs/classes/uielementhelper.html b/docs/classes/uielementhelper.html index 8ae6c89..3d0b82e 100644 --- a/docs/classes/uielementhelper.html +++ b/docs/classes/uielementhelper.html @@ -1088,7 +1088,7 @@

    Static getCursorElemen
  • Parameters

    @@ -1111,7 +1111,7 @@

    Static getDragElement<
  • Parameters

    @@ -1134,7 +1134,7 @@

    Static getOperatorElem
  • Parameters

    @@ -1160,7 +1160,7 @@

    Static getTextBox
  • Parameters

    @@ -1183,7 +1183,7 @@

    Static getUnitDecimal<
  • Parameters

    @@ -1212,7 +1212,7 @@

    Static getUnitElement<
  • Parameters

    @@ -1238,7 +1238,7 @@

    Static isCursor

  • Parameters

    @@ -1264,7 +1264,7 @@

    Static isDrag

  • Parameters

    @@ -1290,7 +1290,7 @@

    Static isElementType

    Parameters

    @@ -1319,7 +1319,7 @@

    Static isOperator

  • Parameters

    @@ -1345,7 +1345,7 @@

    Static isUnit

  • Parameters

    @@ -1371,7 +1371,7 @@

    Static setUnitValue

    Parameters

    diff --git a/docs/classes/uihelper.html b/docs/classes/uihelper.html index 385b961..38903e7 100644 --- a/docs/classes/uihelper.html +++ b/docs/classes/uihelper.html @@ -1056,7 +1056,7 @@

    Static getDOM

  • Parameters

    @@ -1079,7 +1079,7 @@

    Static getDataValue

    Parameters

    @@ -1102,7 +1102,7 @@

    Static isDOM

  • Parameters

    @@ -1125,7 +1125,7 @@

    Static isOverDistance<
  • Parameters

    diff --git a/docs/classes/uihook.html b/docs/classes/uihook.html index 9272b4e..abc1e0b 100644 --- a/docs/classes/uihook.html +++ b/docs/classes/uihook.html @@ -1101,6 +1101,9 @@
  • triggerUpdate
  • +
  • + updateStatus +
  • validate
  • @@ -1257,6 +1260,7 @@

    Methods

  • setData
  • startDrag
  • triggerUpdate
  • +
  • updateStatus
  • validate
  • @@ -1278,7 +1282,7 @@

    Protected container

    @@ -1289,7 +1293,7 @@

    Protected cursor

    @@ -1300,7 +1304,7 @@

    Protected dragged

    @@ -1311,7 +1315,7 @@

    Protected elem

    @@ -1322,7 +1326,7 @@

    Protected moved

    @@ -1333,7 +1337,7 @@

    Protected options

    @@ -1344,7 +1348,7 @@

    Protected prevCursor

    Inherited from UIManager.prevCursorIndex

    @@ -1355,7 +1359,7 @@

    Protected statusBox

    @@ -1366,7 +1370,7 @@

    Protected textBox

    @@ -1377,7 +1381,7 @@

    Protected wrapper

    @@ -1391,7 +1395,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1402,7 +1406,7 @@

    Protected dragElem

    @@ -1420,7 +1424,7 @@

    Protected analyzeKey

    Inherited from UIAnalyzer.analyzeKey

    Type parameters

    @@ -1456,7 +1460,7 @@

    Protected attachEvents

    Inherited from UIDom.attachEvents

    Returns void

    @@ -1474,7 +1478,7 @@

    Protected bindingDOM

    Returns void

    @@ -1492,7 +1496,7 @@

    blur

    Returns void

    @@ -1510,7 +1514,7 @@

    clear

    Returns void

    @@ -1528,7 +1532,7 @@

    Protected dragFirst

    Returns void

    @@ -1546,7 +1550,7 @@

    Protected dragLast

    Returns void

    @@ -1564,7 +1568,7 @@

    Protected dragLeft

    Returns void

    @@ -1582,7 +1586,7 @@

    Protected dragRight

    Returns void

    @@ -1600,7 +1604,7 @@

    Protected endDrag

    Parameters

    @@ -1624,7 +1628,7 @@

    getData

    Type parameters

    @@ -1672,7 +1676,7 @@

    Protected getNextUn

    Parameters

    @@ -1696,7 +1700,7 @@

    Protected getPrevUn

    Parameters

    @@ -1719,7 +1723,7 @@

    Protected hookKeyDo
  • Parameters

    @@ -1743,7 +1747,7 @@

    Protected initializeDOM

    Returns void

    @@ -1761,7 +1765,7 @@

    insert

    Parameters

    @@ -1788,7 +1792,7 @@

    insertData

    Parameters

    @@ -1812,7 +1816,7 @@

    insertValue

    Parameters

    @@ -1836,7 +1840,7 @@

    Protected isAlready

    Returns boolean

    @@ -1854,7 +1858,7 @@

    Protected mergeUnit

    Parameters

    @@ -1878,7 +1882,7 @@

    Protected moveDownC

    Returns void

    @@ -1896,7 +1900,7 @@

    Protected moveDrag

    Parameters

    @@ -1920,7 +1924,7 @@

    Protected moveFirst

    Parameters

    @@ -1944,7 +1948,7 @@

    Protected moveLastC

    Parameters

    @@ -1968,7 +1972,7 @@

    Protected moveLeftC

    Parameters

    @@ -1992,7 +1996,7 @@

    Protected moveRight

    Parameters

    @@ -2016,7 +2020,7 @@

    Protected moveUpCursor

    Inherited from UIManager.moveUpCursor

    Returns void

    @@ -2034,7 +2038,7 @@

    pick

    Parameters

    @@ -2058,7 +2062,7 @@

    Protected pipeInsert

    Inherited from UIPipe.pipeInsert

    Parameters

    @@ -2082,7 +2086,7 @@

    Protected pipeParse

    Parameters

    @@ -2106,7 +2110,7 @@

    Protected removeAfter

    Inherited from UIManager.removeAfter

    Returns void

    @@ -2124,7 +2128,7 @@

    Protected removeBefore

    Inherited from UIManager.removeBefore

    Returns void

    @@ -2142,7 +2146,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -2160,7 +2164,7 @@

    removeDrag

    Returns void

    @@ -2178,7 +2182,7 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    Returns void

    @@ -2196,7 +2200,7 @@

    selectAll

    Returns void

    @@ -2214,7 +2218,7 @@

    selectRange

    Parameters

    @@ -2241,7 +2245,7 @@

    setData

    Parameters

    @@ -2265,7 +2269,7 @@

    Protected startDrag

    Parameters

    @@ -2289,9 +2293,33 @@

    Protected triggerUpdate< +

    Returns void

    +
  • + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + @@ -2307,7 +2335,7 @@

    validate

    Parameters

    @@ -2348,7 +2376,7 @@

    Protected prevPosition

    Inherited from UIManager.prevPosition

    @@ -2357,7 +2385,7 @@

    x

    x: number = 0
    @@ -2367,7 +2395,7 @@

    y

    y: number = 0
    diff --git a/docs/classes/uimanager.html b/docs/classes/uimanager.html index d0da8b0..b6c598c 100644 --- a/docs/classes/uimanager.html +++ b/docs/classes/uimanager.html @@ -1113,6 +1113,9 @@
  • triggerUpdate
  • +
  • + updateStatus +
  • validate
  • @@ -1269,6 +1272,7 @@

    Methods

  • setData
  • startDrag
  • triggerUpdate
  • +
  • updateStatus
  • validate
  • @@ -1290,7 +1294,7 @@

    Protected container

    @@ -1301,7 +1305,7 @@

    Protected cursor

    @@ -1311,7 +1315,7 @@

    Protected dragged

    dragged: boolean
    @@ -1322,7 +1326,7 @@

    Protected elem

    @@ -1332,7 +1336,7 @@

    Protected moved

    moved: boolean
    @@ -1343,7 +1347,7 @@

    Protected options

    @@ -1353,7 +1357,7 @@

    Protected prevCursorprevCursorIndex: number = 0 @@ -1364,7 +1368,7 @@

    Protected statusBox

    @@ -1375,7 +1379,7 @@

    Protected textBox

    @@ -1386,7 +1390,7 @@

    Protected wrapper

    @@ -1400,7 +1404,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1411,7 +1415,7 @@

    Protected dragElem

    @@ -1429,7 +1433,7 @@

    Protected analyzeKey

    Inherited from UIAnalyzer.analyzeKey

    Type parameters

    @@ -1465,7 +1469,7 @@

    Protected attachEvents

    Inherited from UIDom.attachEvents

    Returns void

    @@ -1483,7 +1487,7 @@

    Protected bindingDOM

    Returns void

    @@ -1500,7 +1504,7 @@

    blur

  • Returns void

    @@ -1517,7 +1521,7 @@

    clear

  • Returns void

    @@ -1534,7 +1538,7 @@

    Protected dragFirst

  • Returns void

    @@ -1551,7 +1555,7 @@

    Protected dragLast

  • Returns void

    @@ -1568,7 +1572,7 @@

    Protected dragLeft

  • Returns void

    @@ -1585,7 +1589,7 @@

    Protected dragRight

  • Returns void

    @@ -1602,7 +1606,7 @@

    Protected endDrag

  • Parameters

    @@ -1625,7 +1629,7 @@

    Private findClosestUn
  • Parameters

    @@ -1648,7 +1652,7 @@

    getData

  • Type parameters

    @@ -1695,7 +1699,7 @@

    Private getExpression

  • Returns FormulizeData[]

    @@ -1713,7 +1717,7 @@

    Protected getNextUn

    Parameters

    @@ -1737,7 +1741,7 @@

    Protected getPrevUn

    Parameters

    @@ -1761,7 +1765,7 @@

    Protected initializeDOM

    Returns void

    @@ -1778,7 +1782,7 @@

    insert

  • Parameters

    @@ -1804,7 +1808,7 @@

    insertData

  • Parameters

    @@ -1827,7 +1831,7 @@

    insertValue

  • Parameters

    @@ -1851,7 +1855,7 @@

    Protected isAlready

    Returns boolean

    @@ -1869,7 +1873,7 @@

    Protected mergeUnit

    Parameters

    @@ -1892,7 +1896,7 @@

    Private moveCursorAft
  • Parameters

    @@ -1915,7 +1919,7 @@

    Private moveCursorBef
  • Parameters

    @@ -1938,7 +1942,7 @@

    Protected moveDownC
  • Returns void

    @@ -1955,7 +1959,7 @@

    Protected moveDrag

  • Parameters

    @@ -1978,7 +1982,7 @@

    Protected moveFirst
  • Parameters

    @@ -2001,7 +2005,7 @@

    Protected moveLastC
  • Parameters

    @@ -2024,7 +2028,7 @@

    Protected moveLeftC
  • Parameters

    @@ -2047,7 +2051,7 @@

    Protected moveRight
  • Parameters

    @@ -2070,7 +2074,7 @@

    Protected moveUpCursor

    Returns void

    @@ -2087,7 +2091,7 @@

    pick

  • Parameters

    @@ -2111,7 +2115,7 @@

    Protected pipeInsert

    Inherited from UIPipe.pipeInsert

    Parameters

    @@ -2135,7 +2139,7 @@

    Protected pipeParse

    Parameters

    @@ -2158,7 +2162,7 @@

    Protected removeAfter

    Returns void

    @@ -2175,7 +2179,7 @@

    Protected removeBefore

    Returns void

    @@ -2193,7 +2197,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -2210,7 +2214,7 @@

    removeDrag

  • Returns void

    @@ -2228,7 +2232,7 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    Returns void

    @@ -2245,7 +2249,7 @@

    selectAll

  • Returns void

    @@ -2262,7 +2266,7 @@

    selectRange

  • Parameters

    @@ -2288,7 +2292,7 @@

    setData

  • Parameters

    @@ -2311,7 +2315,7 @@

    Protected startDrag

  • Parameters

    @@ -2334,9 +2338,33 @@

    Protected triggerUpdate<
  • +

    Returns void

    +
  • + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + @@ -2351,7 +2379,7 @@

    validate

  • Parameters

    @@ -2391,7 +2419,7 @@

    Protected prevPositionprevPosition: object
    @@ -2400,7 +2428,7 @@

    x

    x: number = 0
    @@ -2410,7 +2438,7 @@

    y

    y: number = 0
  • diff --git a/docs/classes/uipipe.html b/docs/classes/uipipe.html index 80ae119..7ee2532 100644 --- a/docs/classes/uipipe.html +++ b/docs/classes/uipipe.html @@ -1014,6 +1014,9 @@
  • removeUnit
  • +
  • + updateStatus +
  • @@ -1127,6 +1130,7 @@

    Methods

  • pipeParse
  • removeCursor
  • removeUnit
  • +
  • updateStatus
  • @@ -1141,7 +1145,7 @@

    Protected container

    @@ -1152,7 +1156,7 @@

    Protected cursor

    @@ -1163,7 +1167,7 @@

    Protected elem

    @@ -1174,7 +1178,7 @@

    Protected options

    @@ -1185,7 +1189,7 @@

    Protected statusBox

    @@ -1196,7 +1200,7 @@

    Protected textBox

    @@ -1207,7 +1211,7 @@

    Protected wrapper

    @@ -1221,7 +1225,7 @@

    Protected cursorIndex

    Inherited from UIDom.cursorIndex

    @@ -1232,7 +1236,7 @@

    Protected dragElem

    @@ -1250,7 +1254,7 @@

    Protected analyzeKey

    Inherited from UIAnalyzer.analyzeKey

    Type parameters

    @@ -1286,7 +1290,7 @@

    Protected attachEvents

    Inherited from UIDom.attachEvents

    Returns void

    @@ -1304,7 +1308,7 @@

    Protected bindingDOM

    Returns void

    @@ -1322,7 +1326,7 @@

    Protected getNextUn

    Parameters

    @@ -1346,7 +1350,7 @@

    Protected getPrevUn

    Parameters

    @@ -1370,7 +1374,7 @@

    Protected initializeDOM

    Returns void

    @@ -1388,7 +1392,7 @@

    Protected isAlready

    Returns boolean

    @@ -1406,7 +1410,7 @@

    Protected mergeUnit

    Parameters

    @@ -1429,7 +1433,7 @@

    Protected pipeInsert

    Parameters

    @@ -1452,7 +1456,7 @@

    Protected pipeParse

  • Parameters

    @@ -1476,7 +1480,7 @@

    Protected removeCursor

    Inherited from UIDom.removeCursor

    Returns void

    @@ -1494,9 +1498,33 @@

    Protected removeUnit

    Inherited from UIDom.removeUnit

    + +

    Returns void

    +
  • + + +
    + +

    Protected updateStatus

    +
      +
    • updateStatus(valid?: boolean): void
    • +
    + diff --git a/docs/enums/key.html b/docs/enums/key.html index c4f260b..4776ee2 100644 --- a/docs/enums/key.html +++ b/docs/enums/key.html @@ -1484,7 +1484,7 @@

    A

    A: = 65
    @@ -1494,7 +1494,7 @@

    Add

    Add: = 107
    @@ -1504,7 +1504,7 @@

    Alt

    Alt: = 18
    @@ -1514,7 +1514,7 @@

    Ampersand

    Ampersand: = Seven
    @@ -1524,7 +1524,7 @@

    Asterik

    Asterik: = Star
    @@ -1534,7 +1534,7 @@

    AtSign

    AtSign: = Two
    @@ -1544,7 +1544,7 @@

    B

    B: = 66
    @@ -1554,7 +1554,7 @@

    Backspace

    Backspace: = 8
    @@ -1564,7 +1564,7 @@

    C

    C: = 67
    @@ -1574,7 +1574,7 @@

    CapsLock

    CapsLock: = 20
    @@ -1584,7 +1584,7 @@

    Caret

    Caret: = Six
    @@ -1594,7 +1594,7 @@

    ClosedBracket

    ClosedBracket: = 221
    @@ -1604,7 +1604,7 @@

    ClosedParen

    ClosedParen: = Zero
    @@ -1614,7 +1614,7 @@

    Comma

    Comma: = 188
    @@ -1624,7 +1624,7 @@

    Ctrl

    Ctrl: = 17
    @@ -1634,7 +1634,7 @@

    D

    D: = 68
    @@ -1644,7 +1644,7 @@

    Dash

    Dash: = 189
    @@ -1654,7 +1654,7 @@

    DecimalPoint

    DecimalPoint: = 110
    @@ -1664,7 +1664,7 @@

    Delete

    Delete: = 46
    @@ -1674,7 +1674,7 @@

    Divide

    Divide: = 111
    @@ -1684,7 +1684,7 @@

    DollarSign

    DollarSign: = Four
    @@ -1694,7 +1694,7 @@

    DownArrow

    DownArrow: = 40
    @@ -1704,7 +1704,7 @@

    E

    E: = 69
    @@ -1714,7 +1714,7 @@

    Eight

    Eight: = 56
    @@ -1724,7 +1724,7 @@

    End

    End: = 35
    @@ -1734,7 +1734,7 @@

    Enter

    Enter: = 13
    @@ -1744,7 +1744,7 @@

    Equals

    Equals: = 187
    @@ -1754,7 +1754,7 @@

    Escape

    Escape: = 27
    @@ -1764,7 +1764,7 @@

    ExclamationMark

    ExclamationMark: = One
    @@ -1774,7 +1774,7 @@

    F

    F: = 70
    @@ -1784,7 +1784,7 @@

    F1

    F1: = 112
    @@ -1794,7 +1794,7 @@

    F10

    F10: = 121
    @@ -1804,7 +1804,7 @@

    F11

    F11: = 122
    @@ -1814,7 +1814,7 @@

    F12

    F12: = 123
    @@ -1824,7 +1824,7 @@

    F2

    F2: = 113
    @@ -1834,7 +1834,7 @@

    F3

    F3: = 114
    @@ -1844,7 +1844,7 @@

    F4

    F4: = 115
    @@ -1854,7 +1854,7 @@

    F5

    F5: = 116
    @@ -1864,7 +1864,7 @@

    F6

    F6: = 117
    @@ -1874,7 +1874,7 @@

    F7

    F7: = 118
    @@ -1884,7 +1884,7 @@

    F8

    F8: = 119
    @@ -1894,7 +1894,7 @@

    F9

    F9: = 120
    @@ -1904,7 +1904,7 @@

    Five

    Five: = 53
    @@ -1914,7 +1914,7 @@

    ForwardSlash

    ForwardSlash: = 191
    @@ -1924,7 +1924,7 @@

    Four

    Four: = 52
    @@ -1934,7 +1934,7 @@

    G

    G: = 71
    @@ -1944,7 +1944,7 @@

    GraveAccent

    GraveAccent: = Tilde
    @@ -1954,7 +1954,7 @@

    H

    H: = 72
    @@ -1964,7 +1964,7 @@

    Hash

    Hash: = PoundSign
    @@ -1974,7 +1974,7 @@

    Hat

    Hat: = Caret
    @@ -1984,7 +1984,7 @@

    Home

    Home: = 36
    @@ -1994,7 +1994,7 @@

    I

    I: = 73
    @@ -2004,7 +2004,7 @@

    Insert

    Insert: = 45
    @@ -2014,7 +2014,7 @@

    J

    J: = 74
    @@ -2024,7 +2024,7 @@

    K

    K: = 75
    @@ -2034,7 +2034,7 @@

    L

    L: = 76
    @@ -2044,7 +2044,7 @@

    LeftArrow

    LeftArrow: = 37
    @@ -2054,7 +2054,7 @@

    LeftWindowKey

    LeftWindowKey: = 91
    @@ -2064,7 +2064,7 @@

    M

    M: = 77
    @@ -2074,7 +2074,7 @@

    Multiply

    Multiply: = 106
    @@ -2084,7 +2084,7 @@

    N

    N: = 78
    @@ -2094,7 +2094,7 @@

    Nine

    Nine: = 57
    @@ -2104,7 +2104,7 @@

    NumLock

    NumLock: = 144
    @@ -2114,7 +2114,7 @@

    Numpad0

    Numpad0: = 96
    @@ -2124,7 +2124,7 @@

    Numpad1

    Numpad1: = 97
    @@ -2134,7 +2134,7 @@

    Numpad2

    Numpad2: = 98
    @@ -2144,7 +2144,7 @@

    Numpad3

    Numpad3: = 99
    @@ -2154,7 +2154,7 @@

    Numpad4

    Numpad4: = 100
    @@ -2164,7 +2164,7 @@

    Numpad5

    Numpad5: = 101
    @@ -2174,7 +2174,7 @@

    Numpad6

    Numpad6: = 102
    @@ -2184,7 +2184,7 @@

    Numpad7

    Numpad7: = 103
    @@ -2194,7 +2194,7 @@

    Numpad8

    Numpad8: = 104
    @@ -2204,7 +2204,7 @@

    Numpad9

    Numpad9: = 105
    @@ -2214,7 +2214,7 @@

    O

    O: = 79
    @@ -2224,7 +2224,7 @@

    One

    One: = 49
    @@ -2234,7 +2234,7 @@

    OpenBracket

    OpenBracket: = 219
    @@ -2244,7 +2244,7 @@

    OpenParen

    OpenParen: = Nine
    @@ -2254,7 +2254,7 @@

    P

    P: = 80
    @@ -2264,7 +2264,7 @@

    PageDown

    PageDown: = 34
    @@ -2274,7 +2274,7 @@

    PageUp

    PageUp: = 33
    @@ -2284,7 +2284,7 @@

    PauseBreak

    PauseBreak: = 19
    @@ -2294,7 +2294,7 @@

    PercentSign

    PercentSign: = Five
    @@ -2304,7 +2304,7 @@

    Period

    Period: = 190
    @@ -2314,7 +2314,7 @@

    PlusSign

    PlusSign: = Equals
    @@ -2324,7 +2324,7 @@

    PoundSign

    PoundSign: = Three
    @@ -2334,7 +2334,7 @@

    Q

    Q: = 81
    @@ -2344,7 +2344,7 @@

    Quote

    Quote: = 222
    @@ -2354,7 +2354,7 @@

    R

    R: = 82
    @@ -2364,7 +2364,7 @@

    RightArrow

    RightArrow: = 39
    @@ -2374,7 +2374,7 @@

    RightWindowKey

    RightWindowKey: = 92
    @@ -2384,7 +2384,7 @@

    S

    S: = 83
    @@ -2394,7 +2394,7 @@

    ScrollLock

    ScrollLock: = 145
    @@ -2404,7 +2404,7 @@

    SelectKey

    SelectKey: = 93
    @@ -2414,7 +2414,7 @@

    SemiColon

    SemiColon: = 186
    @@ -2424,7 +2424,7 @@

    Seven

    Seven: = 55
    @@ -2434,7 +2434,7 @@

    Shift

    Shift: = 16
    @@ -2444,7 +2444,7 @@

    Six

    Six: = 54
    @@ -2454,7 +2454,7 @@

    Space

    Space: = 32
    @@ -2464,7 +2464,7 @@

    Star

    Star: = Eight
    @@ -2474,7 +2474,7 @@

    Subtract

    Subtract: = 109
    @@ -2484,7 +2484,7 @@

    T

    T: = 84
    @@ -2494,7 +2494,7 @@

    Tab

    Tab: = 9
    @@ -2504,7 +2504,7 @@

    Three

    Three: = 51
    @@ -2514,7 +2514,7 @@

    Tilde

    Tilde: = 192
    @@ -2524,7 +2524,7 @@

    Two

    Two: = 50
    @@ -2534,7 +2534,7 @@

    U

    U: = 85
    @@ -2544,7 +2544,7 @@

    UnderScore

    UnderScore: = Dash
    @@ -2554,7 +2554,7 @@

    UpArrow

    UpArrow: = 38
    @@ -2564,7 +2564,7 @@

    V

    V: = 86
    @@ -2574,7 +2574,7 @@

    W

    W: = 87
    @@ -2584,7 +2584,7 @@

    X

    X: = 88
    @@ -2594,7 +2594,7 @@

    Y

    Y: = 89
    @@ -2604,7 +2604,7 @@

    Z

    Z: = 90
    @@ -2614,7 +2614,7 @@

    Zero

    Zero: = 48
    diff --git a/docs/globals.html b/docs/globals.html index 0e941f1..f8dd701 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -1208,7 +1208,7 @@

    FormulizeData

    FormulizeData: string | number | HTMLElement | JQuery | any
    @@ -1218,7 +1218,7 @@

    PipeInsert

    PipeInsert: function
    @@ -1249,7 +1249,7 @@

    PipeParse

    PipeParse: function
    @@ -1283,7 +1283,7 @@

    Const _MODULE_VERSION_

    _MODULE_VERSION_: "0.0.10" = "0.0.10"
    @@ -1293,7 +1293,7 @@

    Const specialCharacters

    specialCharacters: string[] = [')', '!', '@', '#', '$', '%', '^', '&', 'x', '(']
    @@ -1303,7 +1303,7 @@

    Const supportedCharacterssupportedCharacters: (string | number)[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'x', '*', '/', '.', '+', '-', '%', '^', '(', ')']

    @@ -1320,7 +1320,7 @@

    getVersion

  • Returns string

    @@ -1337,7 +1337,7 @@

    methodBinder

  • Parameters

    @@ -1366,7 +1366,7 @@

    pluginBinder

  • Returns void

    @@ -1382,7 +1382,7 @@

    Const defaultOptions

    defaultOptions: object
    @@ -1391,7 +1391,7 @@

    id

    id: string = "formulize"
    @@ -1401,7 +1401,7 @@

    text

    text: object
    @@ -1410,7 +1410,7 @@

    error

    error: string = "error"
    @@ -1420,7 +1420,7 @@

    formula

    formula: string = "formula"
    @@ -1430,7 +1430,7 @@

    pass

    pass: string = "passed"
    diff --git a/docs/index.html b/docs/index.html index d12000d..4dddca1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1209,7 +1209,7 @@

    FormulizeData

    FormulizeData: string | number | HTMLElement | JQuery | any
    @@ -1219,7 +1219,7 @@

    PipeInsert

    PipeInsert: function
    @@ -1250,7 +1250,7 @@

    PipeParse

    PipeParse: function
    @@ -1284,7 +1284,7 @@

    Const _MODULE_VERSION_

    _MODULE_VERSION_: "0.0.10" = "0.0.10"
    @@ -1294,7 +1294,7 @@

    Const specialCharacters

    specialCharacters: string[] = [')', '!', '@', '#', '$', '%', '^', '&', 'x', '(']
    @@ -1304,7 +1304,7 @@

    Const supportedCharacterssupportedCharacters: (string | number)[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'x', '*', '/', '.', '+', '-', '%', '^', '(', ')']

    @@ -1321,7 +1321,7 @@

    getVersion

  • Returns string

    @@ -1338,7 +1338,7 @@

    methodBinder

  • Parameters

    @@ -1367,7 +1367,7 @@

    pluginBinder

  • Returns void

    @@ -1383,7 +1383,7 @@

    Const defaultOptions

    defaultOptions: object
    @@ -1392,7 +1392,7 @@

    id

    id: string = "formulize"
    @@ -1402,7 +1402,7 @@

    text

    text: object
    @@ -1411,7 +1411,7 @@

    error

    error: string = "error"
    @@ -1421,7 +1421,7 @@

    formula

    formula: string = "formula"
    @@ -1431,7 +1431,7 @@

    pass

    pass: string = "passed"
    diff --git a/docs/interfaces/behavior.html b/docs/interfaces/behavior.html index 5d34f4c..5b1fd58 100644 --- a/docs/interfaces/behavior.html +++ b/docs/interfaces/behavior.html @@ -1044,7 +1044,7 @@

    doBehavior

    doBehavior: function
    @@ -1069,7 +1069,7 @@

    predicate

    predicate: function
    diff --git a/docs/interfaces/elementposition.html b/docs/interfaces/elementposition.html index 1b523d1..4756cca 100644 --- a/docs/interfaces/elementposition.html +++ b/docs/interfaces/elementposition.html @@ -1057,7 +1057,7 @@

    Optional diff

    diff: object
    @@ -1078,7 +1078,7 @@

    elem

    elem: HTMLElement
    @@ -1089,7 +1089,7 @@

    x

    @@ -1100,7 +1100,7 @@

    y

    diff --git a/docs/interfaces/formulizefunction.html b/docs/interfaces/formulizefunction.html index 915b127..f50a4d4 100644 --- a/docs/interfaces/formulizefunction.html +++ b/docs/interfaces/formulizefunction.html @@ -1023,7 +1023,7 @@

    Callable

  • Parameters

    diff --git a/docs/interfaces/formulizeoptions.html b/docs/interfaces/formulizeoptions.html index cb4d26a..05e9379 100644 --- a/docs/interfaces/formulizeoptions.html +++ b/docs/interfaces/formulizeoptions.html @@ -1048,7 +1048,7 @@

    Optional id

    id: string
    @@ -1058,7 +1058,7 @@

    Optional pipe

    @@ -1068,7 +1068,7 @@

    Optional text

    diff --git a/docs/interfaces/optionpipe.html b/docs/interfaces/optionpipe.html index 149a2aa..f69a823 100644 --- a/docs/interfaces/optionpipe.html +++ b/docs/interfaces/optionpipe.html @@ -1044,7 +1044,7 @@

    Optional insert

    insert: PipeInsert
    @@ -1054,7 +1054,7 @@

    Optional parse

    parse: PipeParse
    diff --git a/docs/interfaces/optiontext.html b/docs/interfaces/optiontext.html index 74c83aa..873cbed 100644 --- a/docs/interfaces/optiontext.html +++ b/docs/interfaces/optiontext.html @@ -1048,7 +1048,7 @@

    Optional error

    error: string
    @@ -1058,7 +1058,7 @@

    Optional formula

    formula: string
    @@ -1068,7 +1068,7 @@

    Optional pass

    pass: string
    diff --git a/docs/interfaces/position.html b/docs/interfaces/position.html index c847350..03f3be9 100644 --- a/docs/interfaces/position.html +++ b/docs/interfaces/position.html @@ -1049,7 +1049,7 @@

    x

    x: number
    @@ -1059,7 +1059,7 @@

    y

    y: number