var bpfrpt_proptype_MathQuillEditorSymbol = {
  "label": PropTypes.string.isRequired,
  "latex": PropTypes.string.isRequired,
  "description": PropTypes.string.isRequired,
  "cmd": PropTypes.string.isRequired
};
var bpfrpt_proptype_SymbolDefination = {
  // The label shown at the command button.
  "label": PropTypes.string.isRequired,
  // The latex to use
  "latex": PropTypes.string.isRequired,
  // The mathquill command to perform.
  // http://docs.mathquill.com/en/latest/Api_Methods/#writelatex_string
  // "write": Write the given LaTeX at the current cursor position. If the
  //   cursor does not have focus, writes to last position the cursor occupied
  //   in the editable field.
  // "cmd": Enter a LaTeX command at the current cursor position or with the
  //   current selection. If the cursor does not have focus, it writes it to
  //   last position the cursor occupied in the editable field.
  "cmd": PropTypes.oneOf(["cmd", "write"]).isRequired,
  // the description of the command.
  "description": PropTypes.string.isRequired
};
// It's hard to find a full list of latex symbols that we could use.
// Here's are some references that might be helpful.
// https://github.com/mathquill/mathquill/blob/23a0e88c80c79514ffc30ead490bd880306bce2a/src/commands/math/basicSymbols.js
// http://math.chapman.edu/~jipsen/mathquill/test/MathQuillsymbolsMathJax.html
// https://inspera.atlassian.net/wiki/spaces/KB/pages/62062830/MathQuill+symbols
// https://www.rapidtables.com/math/symbols/Basic_Math_Symbols.html
// https://www.math.uci.edu/~xiangwen/pdf/LaTeX-Math-Symbols.pdf

export var ABSOLUTE = {
  label: '|x|',
  latex: '|',
  description: 'Absolute Value',
  cmd: 'cmd'
};
export var ANGLE = {
  label: '\\angle',
  latex: '\\angle',
  description: 'Angle',
  cmd: 'write'
};
export var APPROX = {
  label: '\\approx',
  latex: '\\approx',
  description: 'Approximation',
  cmd: 'cmd'
};
export var ARCCOS = {
  label: '\\arccos',
  latex: '\\arccos',
  description: 'Arc Cos',
  cmd: 'write'
};
export var ARCSIN = {
  label: '\\arcsin',
  latex: '\\arcsin',
  description: 'Arc Sin',
  cmd: 'write'
};
export var ARCTAN = {
  label: '\\arctan',
  latex: '\\arctan',
  description: 'Arc Tan',
  cmd: 'write'
};
export var ARROWLL = {
  label: '\\Longleftarrow',
  latex: '\\Longleftarrow',
  description: 'Long Left Arrow',
  cmd: 'write'
};
export var ARROWRL = {
  label: '\\Longrightarrow',
  latex: '\\Longrightarrow',
  description: 'Long Right Arrow',
  cmd: 'write'
};
export var ARROWLLR = {
  label: '\\Longleftrightarrow',
  latex: '\\Longleftrightarrow',
  description: 'Long Left Right Arrow',
  cmd: 'write'
};
export var BRACKETS = {
  label: '[x]',
  latex: '[',
  description: 'Brackets',
  cmd: 'cmd'
};
export var CENT = {
  label: '¢',
  latex: '¢',
  description: 'Cent',
  cmd: 'write'
};
export var COS = {
  label: '\\cos',
  latex: '\\cos',
  description: 'Cos',
  cmd: 'write'
};
export var CONG = {
  label: '\\cong',
  latex: '\\cong',
  description: 'Congruent To',
  cmd: 'write'
};
export var CTIMES = {
  label: '\\otimes',
  latex: '\\otimes',
  description: 'Tensor Product',
  cmd: 'write'
};
export var DEGREES = {
  label: '\\deg',
  latex: '\\deg',
  description: 'Degrees',
  cmd: 'write'
};
export var DIVIDE = {
  label: "\xF7",
  latex: '\\divide',
  description: 'Division',
  cmd: 'cmd'
};
export var DOLLAR = {
  label: '$',
  latex: '$',
  description: 'Dollar',
  cmd: 'write'
};
export var DOTM = {
  label: '\\cdot',
  latex: '\\cdot',
  description: 'Dot for Multiplication',
  cmd: 'write'
};
export var EQUAL = {
  label: '=',
  latex: '=',
  description: 'Equal',
  cmd: 'cmd'
};
export var FRAC = {
  label: '\\frac {x}{y}',
  latex: '\\frac',
  description: 'Fraction',
  cmd: 'cmd'
};
export var GT = {
  label: '>',
  latex: '>',
  description: 'Greater Than',
  cmd: 'cmd'
};
export var GTE = {
  label: '\\ge',
  latex: '\\ge',
  description: 'Greater Than or Equal To',
  cmd: 'cmd'
};
export var IMAGINARY = {
  label: 'i',
  latex: 'i',
  description: 'Imaginary Number',
  cmd: 'write'
};
export var INFINITY = {
  label: '\\infty',
  latex: '\\infty',
  description: 'Infinity',
  cmd: 'write'
};
export var INT = {
  label: '\\int',
  latex: '\\int',
  description: 'Integral',
  cmd: 'cmd'
};
export var INTERSECT = {
  label: '\\cap',
  latex: '\\cap',
  description: 'Intersection',
  cmd: 'write'
};
export var INTXY = {
  label: '\\int_{x}^{y}',
  latex: '\\int_{x}^{y}',
  description: 'Integral',
  cmd: 'write'
};
export var LOG_E = {
  label: '\\log',
  latex: '\\log',
  description: 'Log',
  cmd: 'cmd'
};
export var LT = {
  label: '<',
  latex: '<',
  description: 'Less Than',
  cmd: 'cmd'
};
export var LTE = {
  label: '\\le',
  latex: 'le',
  description: 'Less Than or Equal To',
  cmd: 'cmd'
};
export var MINUS = {
  label: '-',
  latex: '-',
  description: 'Subtraction',
  cmd: 'cmd'
};
export var NEQ = {
  label: '\\neq',
  latex: '\\neq',
  description: 'Not Equal',
  cmd: 'write'
};
export var OVERLINE = {
  label: "\\overline\u3000",
  latex: '\\overline',
  description: 'Overline',
  cmd: 'cmd'
};
export var PARENS = {
  label: '(x)',
  latex: '(',
  description: 'Parentheses',
  cmd: 'cmd'
};
export var PERP = {
  label: '\\perp',
  latex: '\\perp',
  description: 'Perpendicular Lines',
  cmd: 'write'
};
export var PHI = {
  label: '\\phi',
  latex: '\\phi',
  description: 'Phi',
  cmd: 'write'
};
export var PI = {
  label: '\\pi',
  latex: '\\pi',
  description: 'Pi',
  cmd: 'write'
};
export var PLUS = {
  label: '+',
  latex: '+',
  description: 'Addition',
  cmd: 'cmd'
};
export var PM = {
  label: '\\pm',
  latex: '\\pm',
  description: 'Plus-Minus',
  cmd: 'cmd'
};
export var POWER = {
  label: 'x^{y}',
  latex: '^',
  description: 'Power',
  cmd: 'cmd'
};
export var SIMEQ = {
  label: '\\simeq',
  latex: '\\simeq',
  description: 'Approximately Equal',
  cmd: 'write'
};
export var SIM = {
  label: '\\sim',
  latex: '\\sim',
  description: 'Similarity',
  cmd: 'write'
};
export var SIN = {
  label: '\\sin',
  latex: '\\sin',
  description: 'Sin',
  cmd: 'write'
};
export var SMALLE = {
  label: "\u212F",
  latex: "\u212F",
  description: 'Script Small E',
  cmd: 'write'
};
export var SQR = {
  label: 'x^{2}',
  latex: '^{2}',
  description: 'Square',
  cmd: 'write'
};
export var SQRT2 = {
  label: '\\sqrt[x]{y}',
  latex: '\\sqrt[x]{y}',
  description: 'Square Root Alt',
  cmd: 'write'
};
export var SQRT = {
  label: '\\sqrt x',
  latex: '\\sqrt',
  description: 'Square Root',
  cmd: 'cmd'
};
export var SUBSCRIPT = {
  label: 'x_{2}',
  latex: '_{2}',
  description: 'Subscript',
  cmd: 'write'
};
export var SUBSET = {
  label: '\\sub',
  latex: '\\sub',
  description: 'Subset',
  cmd: 'write'
};
export var SUBSETEQ = {
  label: '\\sube',
  latex: '\\sube',
  description: 'Subset or Equal',
  cmd: 'write'
};
export var SUM = {
  label: '\\sum',
  latex: '\\sum',
  description: 'Summation',
  cmd: 'cmd'
};
export var SUPERSET = {
  label: '\\supset',
  latex: '\\supset',
  description: 'Superset',
  cmd: 'write'
};
export var SUPERSETEQ = {
  label: '\\supe',
  latex: '\\supe',
  description: 'Superset or Equal',
  cmd: 'write'
};
export var TAN = {
  label: '\\tan',
  latex: '\\tan',
  description: 'Tan',
  cmd: 'write'
};
export var THETA = {
  label: '\\theta',
  latex: '\\theta',
  description: 'Theta',
  cmd: 'write'
};
export var TIMES = {
  label: '\\times',
  latex: '\\times',
  description: 'Multiplication',
  cmd: 'cmd'
};
export var TRIANGLE = {
  label: '\\bigtriangleup',
  latex: '\\bigtriangleup',
  description: 'Triangle',
  cmd: 'write'
};
export var UNDERLINE = {
  label: "\\underline\u3000",
  latex: "\\underline",
  description: 'Underline',
  cmd: 'cmd'
};
export var UNION = {
  label: '\\cup',
  latex: '\\cup',
  description: 'Union',
  cmd: 'write'
};
export var VDASH = {
  label: '\\vdash',
  latex: '\\vdash',
  description: 'Vertical and Dash Line',
  cmd: 'write'
};
export var VERT = {
  label: '\\vert',
  latex: '\\vert',
  description: 'Vertical Line',
  cmd: 'write'
};
export var OPERATORS = {
  title: 'Operators',
  symbols: [PLUS, MINUS, TIMES, DOTM, DIVIDE, EQUAL, APPROX, SIM, SIMEQ, CONG, NEQ, PM, LT, GT, LTE, GTE, UNION, INTERSECT, SUBSET, SUBSETEQ, SUPERSET, SUPERSETEQ, VERT, CTIMES]
};
export var STRUCTURE = {
  title: 'Structure',
  symbols: [SUM, FRAC, PARENS, BRACKETS, SQR, SUBSCRIPT, ABSOLUTE, INTXY, OVERLINE, UNDERLINE, POWER, INT, SQRT, SQRT2, LOG_E]
};
export var SYMBOLS = {
  title: 'Symbols',
  symbols: [SMALLE, ANGLE, PI, IMAGINARY, DEGREES, THETA, PHI, TRIANGLE, INFINITY, DOLLAR, CENT, VDASH, PERP, ARROWLL, ARROWRL, ARROWLLR]
};
export var TRIG = {
  title: 'Trigonometry',
  symbols: [SIN, COS, TAN, ARCSIN, ARCCOS, ARCTAN]
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_MathQuillEditorSymbol };
export { bpfrpt_proptype_SymbolDefination };