Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
4d01da6
Merge pull request #164 from desmosinc/merge-with-upstream
jwmerrill Nov 29, 2021
83c0e62
add typescript dependency
mikehaverstock Nov 30, 2021
3b5b1f8
convert Point to ES6 class
mikehaverstock Nov 30, 2021
353bebd
convert Node to ES6 class
mikehaverstock Nov 30, 2021
8917422
convert Fragment to ES6 class
mikehaverstock Nov 30, 2021
eff2a39
convert Cursor to ES6 cclass
mikehaverstock Nov 30, 2021
16d268d
convert MathElement and Selection to ES6 class
mikehaverstock Nov 30, 2021
d74c2ef
convert MathCommand to ES6 class.
mikehaverstock Nov 30, 2021
b6ea07a
convert Symbol to ES6 class
mikehaverstock Nov 30, 2021
a5ddd2f
convert VanillaSymbol to ES6 class
mikehaverstock Nov 30, 2021
be4ef87
convert BinaryOperator to ES6 class
mikehaverstock Nov 30, 2021
bd89011
convert MathBlock to ES6 class
mikehaverstock Nov 30, 2021
d9093d7
convert TextBlock to ES6 class
mikehaverstock Nov 30, 2021
4d5dc93
convert TextPiece to ES6 class
mikehaverstock Nov 30, 2021
3ca5272
convert RootMathCommand to ES6 class
mikehaverstock Nov 30, 2021
e41a1a8
convert RootTextBlock to ES6 class
mikehaverstock Nov 30, 2021
a22f537
convert DigitGroupingChar to ES6 class
mikehaverstock Nov 30, 2021
089b5a7
convert Digit to ES6 class
mikehaverstock Nov 30, 2021
4d4a29b
pass bundle through typescript with es5 target
mikehaverstock Nov 30, 2021
4215e40
convert Variable to ES6 class
mikehaverstock Nov 30, 2021
2a3bb7f
convert Letter to ES6 class
mikehaverstock Nov 30, 2021
de28319
convert OperatorName to ES6 class
mikehaverstock Dec 1, 2021
dad0fd8
convert LatexCcmds.operatorname to ES6 class
mikehaverstock Dec 1, 2021
1d7d036
convert LatexCcmds.f to ES6 class
mikehaverstock Dec 1, 2021
fcec2a0
convert LatexCmds space and period to ES6 class
mikehaverstock Dec 1, 2021
b4ed1d1
convert NonSymbolaSymbol to ES6 class
mikehaverstock Dec 1, 2021
b6b122f
convert % to ES6 class
mikehaverstock Dec 1, 2021
5187aec
convert greek letters to ES6 class
mikehaverstock Dec 1, 2021
739c72c
convert LatexFragment to ES6 class
mikehaverstock Dec 1, 2021
88cb05b
convert makeTextBlock to ES6 class
mikehaverstock Dec 1, 2021
828dd26
remove TextBlock extension and makOperatorName
mikehaverstock Dec 1, 2021
cc59cc7
convert LatexCmds.notin to ES6 class
mikehaverstock Dec 1, 2021
002c58e
convert LatexCmds.mathbb to ES6 class
mikehaverstock Dec 1, 2021
1428586
simplify space and . LatexCmds
mikehaverstock Dec 1, 2021
62d9ff0
convert PlusMinus to ES6 class
mikehaverstock Dec 1, 2021
c9a6513
convert + and - to ES6 class
mikehaverstock Dec 1, 2021
e439dd4
convert To to ES6 class
mikehaverstock Dec 1, 2021
6e47835
convert Inequality to ES6 class
mikehaverstock Dec 1, 2021
407c4a1
convert Greater to ES6 class
mikehaverstock Dec 1, 2021
26f182b
convert Equality to ES6 class
mikehaverstock Dec 1, 2021
8fc43ee
convert Sim and Approx to ES6 class
mikehaverstock Dec 1, 2021
deb3b4b
convert Style to ES6 class
mikehaverstock Dec 1, 2021
9186813
convert mathrm to ES6 class
mikehaverstock Dec 1, 2021
18347c3
convert dot to ES6 class
mikehaverstock Dec 1, 2021
9c6bf37
convert textcolor to ES6 class
mikehaverstock Dec 1, 2021
57618b6
convert ans and percentof to ES6 class
mikehaverstock Dec 1, 2021
2699ad0
convert LatexCmds.class to ES6 class
mikehaverstock Dec 1, 2021
1eb8f95
convert SupSub to ES6 class
mikehaverstock Dec 1, 2021
7f1dc32
convert LatexCmds._ to ES6 class
mikehaverstock Dec 1, 2021
468ce6d
convert LatexCmds[^] to ES6 class
mikehaverstock Dec 1, 2021
999a2d3
convert SummationNotation to ES6 class
mikehaverstock Dec 1, 2021
3319312
convert LatexCommands.int to ES6 class
mikehaverstock Dec 1, 2021
d23034b
convert Frac to ES6 class
mikehaverstock Dec 1, 2021
3fe5e0b
convert LatexCmds[/] to ES6 class
mikehaverstock Dec 1, 2021
06a0da8
convert SquareRoot to ES6 class
mikehaverstock Dec 1, 2021
0db189b
convert Hat to ES6 class
mikehaverstock Dec 1, 2021
533e594
convert Nthroot to ES6 class
mikehaverstock Dec 1, 2021
fca4eeb
convert cbrt to ES6 class
mikehaverstock Dec 1, 2021
593bcb9
convert DiacriticAbov to ES6 class
mikehaverstock Dec 1, 2021
37b787b
convert Embed to ES6 class
mikehaverstock Dec 1, 2021
bcf44ed
convert LatexCmds.left and right to ES6 class
mikehaverstock Dec 1, 2021
8c57075
convert MathQuillMathField to ES6 class
mikehaverstock Dec 1, 2021
3adaf31
convert Bracket to ES6 class
mikehaverstock Dec 1, 2021
fcdd973
convert Binomial to ES6 class
mikehaverstock Dec 1, 2021
e3ded45
convert LatexCmds.choose to ES6 class
mikehaverstock Dec 1, 2021
382dd5f
convert ChNode to ES6 class
mikehaverstock Dec 1, 2021
089a8db
convert LatexCommandInput to ES6 class
mikehaverstock Dec 1, 2021
a46637d
convert Aria to ES6 class
mikehaverstock Dec 1, 2021
c9425a6
convert Parser to ES6 class
mikehaverstock Dec 1, 2021
d5c2516
convert Options to ES6 class
mikehaverstock Dec 1, 2021
2c5e6a8
convert Progenote to ES6 class
mikehaverstock Dec 2, 2021
a41e2b2
convert EditableField to ES6 class
mikehaverstock Dec 2, 2021
ebf5fb6
convert StaticMath to ES6 class
mikehaverstock Dec 2, 2021
3911c00
remove unnecessary super() calls
mikehaverstock Dec 2, 2021
2c277c3
cleanup some uses of .call(this)
mikehaverstock Dec 2, 2021
5c092ce
convert RootMathBlock to ES6 class
mikehaverstock Dec 2, 2021
cc0b19f
convert MathField to ES6 class
mikehaverstock Dec 2, 2021
8563f80
convert TextField to ES6 class
mikehaverstock Dec 2, 2021
638a733
convert InnerMathField to ES6 class
mikehaverstock Dec 2, 2021
50b83fa
use $.fn instead of PJS to extend jquery
mikehaverstock Dec 2, 2021
2add4c3
remove PJS example in docs
mikehaverstock Dec 2, 2021
a54f0c1
move Controller.onNotify() calls outside of Controller.open()
mikehaverstock Dec 2, 2021
1a874a7
convert Controller to ES6 class
mikehaverstock Dec 2, 2021
c1269bc
remove PJS from build system
mikehaverstock Dec 2, 2021
fe3e836
remove pjs from dependencies
mikehaverstock Dec 2, 2021
3781a3d
remove Controller.open from exportLatex
mikehaverstock Dec 2, 2021
990fbec
remove Controller.open from focusBlur.js
mikehaverstock Dec 2, 2021
d3510f2
remove Controller.open from keystroke.js
mikehaverstock Dec 2, 2021
66cb4df
remove Controlleer.open from latex.js
mikehaverstock Dec 2, 2021
b2f9754
remove Controller.open from mouse.js
mikehaverstock Dec 2, 2021
b64bf78
remove Controller.open from scrollHoriz
mikehaverstock Dec 2, 2021
bd508d8
remove Controller.open from textarea.js
mikehaverstock Dec 2, 2021
a4033fe
remove ControllerBase::open()
mikehaverstock Dec 2, 2021
4c6474e
remove Controller.open from scrollHoriz.js
mikehaverstock Dec 2, 2021
6f441a8
move .supsub to instance property
mikehaverstock Dec 2, 2021
0e4965f
remove Cursor::init()
mikehaverstock Dec 3, 2021
116e936
remove ::init() from StaticMath and AbstractMathQuill
mikehaverstock Dec 3, 2021
8816811
remove a bunch of .init() methods
mikehaverstock Dec 3, 2021
9482c83
remove stale comment
mikehaverstock Dec 3, 2021
2ba5fca
remove more .init() methods
mikehaverstock Dec 3, 2021
9f5aa98
add super() to MathCommand
mikehaverstock Dec 3, 2021
7e7b2c2
use super() in Cmds.integral
mikehaverstock Dec 3, 2021
86b71e9
use super() within Cmds.f
mikehaverstock Dec 3, 2021
1204e7e
use super() within OperatorName
mikehaverstock Dec 3, 2021
904013f
remove init() from MathCommand and NodeBase
mikehaverstock Dec 3, 2021
7a11f60
switch defaults from prototype properties to class fields
mikehaverstock Dec 3, 2021
7491778
add make lint to run typechecking
mikehaverstock Dec 4, 2021
66acc91
remove bind()
mikehaverstock Dec 4, 2021
00b4523
move jQuery and pray to utils.ts
mikehaverstock Dec 4, 2021
cf0b5e5
Node -> MQNode to avoid type issues
mikehaverstock Dec 4, 2021
88285f6
Symbol -> MQSymbol to avoid type issues
mikehaverstock Dec 4, 2021
fac13a4
move MQNode fields out of constructor
mikehaverstock Dec 4, 2021
058e458
cleanup in preparation for switching to .ts file
mikehaverstock Dec 4, 2021
2048922
rename Selection -> MQSelection to avoid type issues
mikehaverstock Dec 4, 2021
2019b97
add type info for NodeBase
mikehaverstock Dec 5, 2021
3840b23
fix types in keystroke.js
mikehaverstock Dec 5, 2021
e65db59
rename keystroke.js -> keystroke.ts
mikehaverstock Dec 5, 2021
362e1bb
rename tree.js -> tree.ts
mikehaverstock Dec 5, 2021
1c419ff
fix types in tree.ts
mikehaverstock Dec 5, 2021
c522114
rename cursor.js -> cursor.ts
mikehaverstock Dec 5, 2021
0da95d7
fix type errors in cursor.ts
mikehaverstock Dec 5, 2021
ebcd2e7
rename aria.js -> aria.ts
mikehaverstock Dec 5, 2021
2f5fcca
fix type errors in aria.ts
mikehaverstock Dec 5, 2021
e567a74
rename controller.js -> controller.js
mikehaverstock Dec 5, 2021
b666d46
fix type errors in controller.ts
mikehaverstock Dec 5, 2021
223f4de
rename parser.util.js -> parser.util.ts
mikehaverstock Dec 5, 2021
6a9b83b
Add typings to parser lib
jwmerrill Dec 6, 2021
2d48080
Narrow argument type of onSuccess
jwmerrill Dec 6, 2021
82a2673
Improve type of result local in times
jwmerrill Dec 6, 2021
bbb5ece
rename saneKeyboardEvents.utils.js to ts
mikehaverstock Dec 7, 2021
39935cb
fix types in saneKeyboardEvents.utils.ts
mikehaverstock Dec 7, 2021
dd199c3
rename exportText.js to ts
mikehaverstock Dec 7, 2021
27ff97b
fix types in exportText.ts
mikehaverstock Dec 7, 2021
5e2037d
rename focusBlur.js to ts
mikehaverstock Dec 7, 2021
e61b2a2
fix types in focusBlur and then all issues in keystroke.ts
mikehaverstock Dec 7, 2021
b3f7586
move latex.js to ts
mikehaverstock Dec 7, 2021
712cc23
fix type errors in latex.ts
mikehaverstock Dec 7, 2021
7e2bc6f
rename mouse.js to ts
mikehaverstock Dec 7, 2021
3a9857e
fix type errors in mouse.ts
mikehaverstock Dec 7, 2021
3266b53
rename scrollHoriz.js to ts
mikehaverstock Dec 7, 2021
245e7c8
fix type errors in scrollHoriz.ts
mikehaverstock Dec 7, 2021
4cd9fc4
rename textarea.js to ts
mikehaverstock Dec 7, 2021
f98bebf
fix type errors in textarea.ts
mikehaverstock Dec 8, 2021
cca7984
rename math.js to ts
mikehaverstock Dec 8, 2021
4e2ba6a
fix type errors in math.ts
mikehaverstock Dec 8, 2021
f72d143
add types for CursorOptions
mikehaverstock Dec 9, 2021
9f1a2d9
add types for jquery
mikehaverstock Dec 9, 2021
0431096
rename publicapi.js to ts
mikehaverstock Dec 9, 2021
9cb4430
fix types in publicapi.ts
mikehaverstock Dec 9, 2021
4bee744
expand list of math files
mikehaverstock Dec 9, 2021
512559d
rename advancedSymbols.js to advancedSymbols.ts
mikehaverstock Dec 9, 2021
296a258
fix type errors in advancedSymbols.ts
mikehaverstock Dec 9, 2021
1a6429d
fix types in advancedSymbols.ts
mikehaverstock Dec 9, 2021
0d768e2
rename commands.js to ts
mikehaverstock Dec 9, 2021
c156025
wip - fix errors commands.ts
mikehaverstock Dec 10, 2021
896df16
finish fixing type errors in commands.ts
mikehaverstock Dec 10, 2021
1a97975
rename basicSymbols.js to ts
mikehaverstock Dec 14, 2021
7dea77c
fix type errors in basicSymbols.ts
mikehaverstock Dec 14, 2021
413e9d2
OperatorName has optional fn parameter -- only to fix type errors?
mikehaverstock Dec 15, 2021
a3a80c9
rename LatexCommandInput.js to ts
mikehaverstock Dec 15, 2021
98a56ab
fix type errors in LatexCommandInput.ts
mikehaverstock Dec 15, 2021
33d3370
rename text.js to ts
mikehaverstock Dec 15, 2021
c9ac46b
fix type errors in text.ts
mikehaverstock Dec 15, 2021
6618898
fix typo caught by fuzz testing
mikehaverstock Dec 17, 2021
c6be5d6
rename Controller_exportLatex -> exportText
mikehaverstock Jan 3, 2022
a565df2
remove obviously unhelpful TODOs
mikehaverstock Jan 3, 2022
242a70d
improve remaining TODO comments
mikehaverstock Jan 3, 2022
ae2c6ae
rename temp_types.d.ts -> shared_types.d.ts
mikehaverstock Jan 3, 2022
a822249
Merge pull request #168 from desmosinc/typescript
mikehaverstock Jan 3, 2022
404f186
remove bad global Node unset
mikehaverstock Jan 8, 2022
328c71b
Merge pull request #171 from desmosinc/remove-node-unset
mikehaverstock Jan 10, 2022
23d2a1b
Scope ARIA alert element down to MQ's textarea
sclower Jan 14, 2022
9124461
Create separate ARIA instances per controller
sclower Jan 14, 2022
0c0d24b
Tweak how ARIA DOM is created and attached to textarea
sclower Jan 18, 2022
362c20e
Modify Aria alert method
sclower Jan 18, 2022
61c48bb
Fix linting
sclower Jan 18, 2022
93bd1f5
Merge pull request #172 from desmosinc/ts-scope-ara
sclower Jan 18, 2022
9c2a0cc
Fix overarrow positioning
jwmerrill Jan 19, 2022
01f661b
Remove now-unreferenced arrow styles
jwmerrill Jan 19, 2022
8d8eccb
Merge pull request #173 from desmosinc/fix-overarrow-positioning
jwmerrill Jan 19, 2022
022c3ba
Add transparentDelimiters option
sclower Jan 20, 2022
4284fb2
Fix linting
sclower Jan 20, 2022
5b08f94
Add method to process delimiter list
sclower Jan 20, 2022
9c86ca1
Add test
sclower Jan 20, 2022
aba4e1a
Respond to code review
sclower Jan 20, 2022
9f62fc7
Remove quiet delimiter check
sclower Jan 21, 2022
441f7fd
rm debug
sclower Jan 21, 2022
b2fcfc1
Make it required to pass cursor to blur (and finalizeInsert)
jwmerrill Jan 21, 2022
b60f41a
Merge remote-tracking branch 'origin/blur-always-gets-cursor' into ts…
sclower Jan 21, 2022
c440257
Add empty delimiter test by directly seting LaTeX
sclower Jan 21, 2022
05e0900
Merge pull request #174 from desmosinc/ts-optionally-hide-bracket-rec…
sclower Jan 21, 2022
5ee96db
Add some comments
Jan 24, 2022
7d5eb55
Merge pull request #177 from desmosinc/misc-comments
anandthakker Jan 24, 2022
5d73507
Add noAutoOpInSubscripts option
sclower Jan 24, 2022
d0b603f
Add tests
sclower Jan 24, 2022
fa50e5c
rm noAutoOpsInSubscripts to disableAutoOpsInSubscripts
sclower Jan 25, 2022
d67de64
disableAutoOpsInSubscripts affects auto commands
sclower Jan 25, 2022
3b04d57
Add benchmark of time to select n characters
jwmerrill Jan 26, 2022
ddd055e
Clean up benchmark
jwmerrill Jan 26, 2022
0a1e6fe
Merge pull request #180 from desmosinc/select-benchmark
jwmerrill Jan 26, 2022
5406c28
Rename option to disableAutoSubstitutionInSubscripts
sclower Jan 26, 2022
17f090c
Merge pull request #178 from desmosinc/ts-add-auto-op-subscript-expan…
sclower Jan 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 35 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,38 @@ SRC_DIR = ./src
INTRO = $(SRC_DIR)/intro.js
OUTRO = $(SRC_DIR)/outro.js

PJS_SRC = ./node_modules/pjs/src/p.js

BASE_SOURCES = \
$(PJS_SRC) \
$(SRC_DIR)/tree.js \
$(SRC_DIR)/cursor.js \
$(SRC_DIR)/controller.js \
$(SRC_DIR)/publicapi.js \
$(SRC_DIR)/services/parser.util.js \
$(SRC_DIR)/services/saneKeyboardEvents.util.js \
$(SRC_DIR)/services/aria.js \
$(SRC_DIR)/services/exportText.js \
$(SRC_DIR)/services/focusBlur.js \
$(SRC_DIR)/services/keystroke.js \
$(SRC_DIR)/services/latex.js \
$(SRC_DIR)/services/mouse.js \
$(SRC_DIR)/services/scrollHoriz.js \
$(SRC_DIR)/services/textarea.js
$(SRC_DIR)/utils.ts \
$(SRC_DIR)/services/aria.ts \
$(SRC_DIR)/tree.ts \
$(SRC_DIR)/cursor.ts \
$(SRC_DIR)/controller.ts \
$(SRC_DIR)/publicapi.ts \
$(SRC_DIR)/services/parser.util.ts \
$(SRC_DIR)/services/saneKeyboardEvents.util.ts \
$(SRC_DIR)/services/exportText.ts \
$(SRC_DIR)/services/focusBlur.ts \
$(SRC_DIR)/services/keystroke.ts \
$(SRC_DIR)/services/latex.ts \
$(SRC_DIR)/services/mouse.ts \
$(SRC_DIR)/services/scrollHoriz.ts \
$(SRC_DIR)/services/textarea.ts

SOURCES_FULL = \
$(BASE_SOURCES) \
$(SRC_DIR)/commands/math.js \
$(SRC_DIR)/commands/text.js \
$(SRC_DIR)/commands/math/*.js
$(SRC_DIR)/commands/math.ts \
$(SRC_DIR)/commands/text.ts \
$(SRC_DIR)/commands/math/advancedSymbols.ts \
$(SRC_DIR)/commands/math/basicSymbols.ts \
$(SRC_DIR)/commands/math/commands.ts \
$(SRC_DIR)/commands/math/LatexCommandInput.ts


SOURCES_BASIC = \
$(BASE_SOURCES) \
$(SRC_DIR)/commands/math.js \
$(SRC_DIR)/commands/math/basicSymbols.js \
$(SRC_DIR)/commands/math/commands.js
$(SRC_DIR)/commands/math.ts \
$(SRC_DIR)/commands/math/basicSymbols.ts \
$(SRC_DIR)/commands/math/commands.ts

CSS_DIR = $(SRC_DIR)/css
CSS_MAIN = $(CSS_DIR)/main.less
Expand Down Expand Up @@ -113,18 +115,16 @@ font: $(FONT_TARGET)
clean:
rm -rf $(BUILD_DIR)

$(PJS_SRC): $(NODE_MODULES_INSTALLED)

$(BUILD_JS): $(INTRO) $(SOURCES_FULL) $(OUTRO) $(BUILD_DIR_EXISTS)
cat $^ | ./script/escape-non-ascii > $@
cat $^ | ./script/escape-non-ascii | ./script/tsc-emit-only > $@
perl -pi -e s/mq-/$(MQ_CLASS_PREFIX)mq-/g $@
perl -pi -e s/{VERSION}/v$(VERSION)/ $@

$(UGLY_JS): $(BUILD_JS) $(NODE_MODULES_INSTALLED)
$(UGLIFY) $(UGLIFY_OPTS) < $< > $@

$(BASIC_JS): $(INTRO) $(SOURCES_BASIC) $(OUTRO) $(BUILD_DIR_EXISTS)
cat $^ | ./script/escape-non-ascii > $@
cat $^ | ./script/escape-non-ascii | ./script/tsc-emit-only > $@
perl -pi -e s/mq-/$(MQ_CLASS_PREFIX)mq-/g $@
perl -pi -e s/{VERSION}/v$(VERSION)/ $@

Expand Down Expand Up @@ -157,14 +157,20 @@ $(FONT_TARGET): $(FONT_SOURCE) $(BUILD_DIR_EXISTS)
#
# -*- Test tasks -*-
#
.PHONY:
lint:
npx tsc --noEmit

.PHONY: test server run-server
.PHONY: test server benchmark
server:
node script/test_server.js
test: dev $(BUILD_TEST) $(BASIC_JS) $(BASIC_CSS)
@echo
@echo "** now open test/{unit,visual}.html in your browser to run the {unit,visual} tests. **"
benchmark: dev $(BUILD_TEST) $(BASIC_JS) $(BASIC_CSS)
@echo
@echo "** now open benchmark/select.html in your browser. **"

$(BUILD_TEST): $(INTRO) $(SOURCES_FULL) $(UNIT_TESTS) $(OUTRO) $(BUILD_DIR_EXISTS)
cat $^ > $@
cat $^ | ./script/tsc-emit-only > $@
perl -pi -e s/{VERSION}/v$(VERSION)/ $@
77 changes: 77 additions & 0 deletions benchmark/select.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>

<meta charset="UTF-8">
<meta name="viewport" content="width=624">

<title>MathQuill Select benchmark</title>

<link rel="stylesheet" type="text/css" href="support/home.css">
<link rel="stylesheet" type="text/css" href="../build/mathquill.css">

</head>
<body>
<p>Benchmark inserting and then selecting n characters</p>
<button id="run-button">Run</button>
<div>
<span id="editable" style="width: 10em;"></span>
</div>
<table id="report">
<thead>
<tr>
<th>nchars</th>
<th>render (ms)</th>
<th>select (ms)</th>
</tr>
</thead>
</table>
<script type="text/javascript" src="../test/support/jquery-1.5.2.js"></script>
<script type="text/javascript" src="../build/mathquill.js"></script>
<script type="text/javascript">
var MQ = MathQuill.getInterface(MathQuill.getInterface.MAX);

var editableElt = document.getElementById('editable');
var mq = MQ.MathField(editableElt);
var reportElt = document.getElementById('report');

function runOne(n) {
var rowElt = document.createElement('tr');
var td1 = document.createElement('td');
var td2 = document.createElement('td');
var td3 = document.createElement('td');
rowElt.appendChild(td1);
rowElt.appendChild(td2);
rowElt.appendChild(td3);

td1.textContent = n;

var mark = performance.now();
mq.latex(Array(n+1).join('1'));
var insert = performance.now();
td2.textContent = (insert - mark).toFixed(2);
mark = insert;
mq.select();
var select = performance.now();
td3.textContent = (select - mark).toFixed(2);

reportElt.appendChild(rowElt);
}


var i = 0;
var sizes = [1,2,5,10,20,50,100,200,500,1000,2000];

function runNext() {
runOne(sizes[i]);
i += 1;
if (i >= sizes.length) return;
setTimeout(runNext, 100);
}

document.getElementById('run-button').addEventListener('click', function () {
runNext();
});
</script>
</body>
</html>
10 changes: 5 additions & 5 deletions docs/Config.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,24 +101,24 @@ For example, [Desmos](https://www.desmos.com/calculator) substitutes `<span tabi

Handlers are called after a specified event. They are called directly on the `handlers` object passed in, preserving the `this` value, so you can do stuff like:
```js
var MathList = P(function(_) {
_.init = function() {
class MathList {
constructor () {
this.maths = [];
this.el = ...
};
_.add = function() {
add () {
var math = MQ.MathField($('<span/>')[0], { handlers: this });
$(math.el()).appendTo(this.el);
math.data.i = this.maths.length;
this.maths.push(math);
};
_.moveOutOf = function(dir, math) {
moveOutOf (dir, math) {
var adjacentI = (dir === MQ.L ? math.data.i - 1 : math.data.i + 1);
var adjacentMath = this.maths[adjacentI];
if (adjacentMath) adjacentMath.focus().moveToDirEnd(-dir);
};
...
});
};
```

It's common to just ignore the last argument, like if the handlers close over the math field:
Expand Down
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"devDependencies": {
"less": ">=1.5.1 <3.0.0",
"mocha": ">=2.4.1",
"pjs": ">=3.1.0 <5.0.0",
"typescript": "^4.5.2",
"uglify-js": "2.x"
}
}
27 changes: 27 additions & 0 deletions script/tsc-emit-only
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env node

var ts = require('typescript');

function compileTypescript (tsSource) {
compilerOptions = {
target: 'es5'
};

var jsSource = ts.transpileModule(tsSource, {
compilerOptions: compilerOptions
}).outputText;

return jsSource;
}

let contents = '';

process.stdin.setEncoding('utf8');
process.stdin.on('data', function(data) {
contents += data;
});
process.stdin.on('end', function () {
var ts = compileTypescript(contents);
console.log(ts);
})
process.stdin.resume();
Loading