@bhbr/minter 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{paper → apis}/APILoader.d.ts +0 -1
  2. package/dist/apis/APILoader.d.ts.map +1 -0
  3. package/dist/{paper → apis}/APILoader.js +0 -2
  4. package/dist/apis/APILoader.js.map +1 -0
  5. package/dist/apis/cindyjs/CindyCanvas.d.ts +33 -0
  6. package/dist/apis/cindyjs/CindyCanvas.d.ts.map +1 -0
  7. package/dist/apis/cindyjs/CindyCanvas.js +173 -0
  8. package/dist/apis/cindyjs/CindyCanvas.js.map +1 -0
  9. package/dist/apis/cindyjs/CindyLoader.d.ts +6 -0
  10. package/dist/apis/cindyjs/CindyLoader.d.ts.map +1 -0
  11. package/dist/apis/cindyjs/CindyLoader.js +26 -0
  12. package/dist/apis/cindyjs/CindyLoader.js.map +1 -0
  13. package/dist/apis/desmos/DesmosCalculator.d.ts +32 -0
  14. package/dist/apis/desmos/DesmosCalculator.d.ts.map +1 -0
  15. package/dist/apis/desmos/DesmosCalculator.js +130 -0
  16. package/dist/apis/desmos/DesmosCalculator.js.map +1 -0
  17. package/dist/apis/desmos/DesmosLoader.d.ts +5 -0
  18. package/dist/apis/desmos/DesmosLoader.d.ts.map +1 -0
  19. package/dist/apis/desmos/DesmosLoader.js +17 -0
  20. package/dist/apis/desmos/DesmosLoader.js.map +1 -0
  21. package/dist/apis/mathquill/MathQuillInputField.d.ts +29 -0
  22. package/dist/apis/mathquill/MathQuillInputField.d.ts.map +1 -0
  23. package/dist/apis/mathquill/MathQuillInputField.js +129 -0
  24. package/dist/apis/mathquill/MathQuillInputField.js.map +1 -0
  25. package/dist/apis/mathquill/MathQuillLoader.d.ts +5 -0
  26. package/dist/apis/mathquill/MathQuillLoader.d.ts.map +1 -0
  27. package/dist/apis/mathquill/MathQuillLoader.js +28 -0
  28. package/dist/apis/mathquill/MathQuillLoader.js.map +1 -0
  29. package/dist/creators/SpanningCreator.d.ts +1 -1
  30. package/dist/creators/SpanningCreator.d.ts.map +1 -1
  31. package/dist/creators/SpanningCreator.js +6 -6
  32. package/dist/creators/SpanningCreator.js.map +1 -1
  33. package/dist/index.d.ts +9 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +9 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/linkables/constants.js +1 -1
  38. package/dist/paper/Paper.d.ts +1 -1
  39. package/dist/paper/Paper.d.ts.map +1 -1
  40. package/dist/paper/Paper.js.map +1 -1
  41. package/dist/paper/initPaper.js +3 -2
  42. package/dist/paper/initPaper.js.map +1 -1
  43. package/dist/ui/PlayButton.d.ts +10 -0
  44. package/dist/ui/PlayButton.d.ts.map +1 -0
  45. package/dist/ui/PlayButton.js +31 -0
  46. package/dist/ui/PlayButton.js.map +1 -0
  47. package/dist/ui/Playable.d.ts +7 -0
  48. package/dist/ui/Playable.d.ts.map +1 -0
  49. package/dist/ui/Playable.js +2 -0
  50. package/dist/ui/Playable.js.map +1 -0
  51. package/html/minter.css +50 -0
  52. package/html/minter.html +51 -0
  53. package/html/paper.html +38 -0
  54. package/html/sidebar.html +36 -0
  55. package/package.json +6 -2
  56. package/dist/paper/APILoader.d.ts.map +0 -1
  57. package/dist/paper/APILoader.js.map +0 -1
@@ -4,7 +4,6 @@ export declare class APILoader extends BetterObject {
4
4
  status: APILoadStatus;
5
5
  defaults(): object;
6
6
  load(): void;
7
- onload(): void;
8
7
  }
9
8
  export {};
10
9
  //# sourceMappingURL=APILoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APILoader.d.ts","sourceRoot":"","sources":["../../src/apis/APILoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,KAAK,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErD,qBAAa,SAAU,SAAQ,YAAY;IAE1C,MAAM,EAAE,aAAa,CAAA;IAErB,QAAQ,IAAI,MAAM;IAMlB,IAAI;CAOJ"}
@@ -12,7 +12,5 @@ export class APILoader extends BetterObject {
12
12
  });
13
13
  getPaper().loadedAPI(this);
14
14
  }
15
- onload() {
16
- }
17
15
  }
18
16
  //# sourceMappingURL=APILoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APILoader.js","sourceRoot":"","sources":["../../src/apis/APILoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAI/C,MAAM,OAAO,SAAU,SAAQ,YAAY;IAI1C,QAAQ;QACP,OAAO;YACN,MAAM,EAAE,SAAS;SACjB,CAAA;IACF,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CAED"}
@@ -0,0 +1,33 @@
1
+ import { Mobject } from '../../mobjects/Mobject.js';
2
+ import { Linkable } from '../../linkables/Linkable.js';
3
+ import { Playable } from '../../ui/Playable.js';
4
+ import { PlayButton } from '../../ui/PlayButton.js';
5
+ import { Rectangle } from '../../shapes/Rectangle.js';
6
+ export declare class CindyCanvas extends Linkable implements Playable {
7
+ port: object;
8
+ id: string;
9
+ core: any;
10
+ outerFrame: Rectangle;
11
+ innerCanvas: Mobject;
12
+ playButton: PlayButton;
13
+ playState: 'play' | 'pause' | 'stop';
14
+ defaults(): object;
15
+ mutabilities(): object;
16
+ setup(): void;
17
+ createScripts(): void;
18
+ createInitScript(): void;
19
+ createDrawScript(): void;
20
+ createMouseMoveScript(): void;
21
+ initCode(): string;
22
+ drawCode(): string;
23
+ mouseMoveCode(): string;
24
+ play(): void;
25
+ pause(): void;
26
+ togglePlayState(): void;
27
+ stop(): void;
28
+ geometry(): Array<any>;
29
+ setDragging(flag: boolean): void;
30
+ startCore(): void;
31
+ reload(args?: object): void;
32
+ }
33
+ //# sourceMappingURL=CindyCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CindyCanvas.d.ts","sourceRoot":"","sources":["../../../src/apis/cindyjs/CindyCanvas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAMrD,qBAAa,WAAY,SAAQ,QAAS,YAAW,QAAQ;IAE5D,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,GAAG,CAAA;IACT,UAAU,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAEpC,QAAQ,IAAI,MAAM;IA6BlB,YAAY,IAAI,MAAM;IAUtB,KAAK;IAsCL,aAAa;IAMb,gBAAgB;IAQhB,gBAAgB;IAQhB,qBAAqB;IAQrB,QAAQ;IAIR,QAAQ;IAIR,aAAa,IAAI,MAAM;IAKvB,IAAI;IAYJ,KAAK;IAQL,eAAe;IAQf,IAAI;IAQJ,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;IAEtB,WAAW,CAAC,IAAI,EAAE,OAAO;IAazB,SAAS;IAST,MAAM,CAAC,IAAI,GAAE,MAAW;CAUxB"}
@@ -0,0 +1,173 @@
1
+ import { ScreenEventHandler } from '../../mobjects/screen_events.js';
2
+ import { Mobject } from '../../mobjects/Mobject.js';
3
+ import { Linkable } from '../../linkables/Linkable.js';
4
+ import { PlayButton } from '../../ui/PlayButton.js';
5
+ import { Rectangle } from '../../shapes/Rectangle.js';
6
+ export class CindyCanvas extends Linkable {
7
+ defaults() {
8
+ return {
9
+ port: {
10
+ transform: [{
11
+ visibleRect: [0, 1, 1, 0]
12
+ }]
13
+ },
14
+ innerCanvas: new Mobject(),
15
+ outerFrame: new Rectangle(),
16
+ playButton: new PlayButton({
17
+ anchor: [5, -50]
18
+ }),
19
+ id: `Cindy-${Date.now()}`,
20
+ screenEventHandler: ScreenEventHandler.Self,
21
+ playedOnce: false,
22
+ playState: 'stop',
23
+ drawBorder: true,
24
+ core: null
25
+ /*
26
+ core has no default because it is read-only and
27
+ will be created in cindySetup as a CindyJS instance
28
+ with state-dependent arguments
29
+ */
30
+ };
31
+ }
32
+ mutabilities() {
33
+ return {
34
+ port: 'never',
35
+ innerCanvas: 'never',
36
+ outerFrame: 'never',
37
+ playButton: 'never',
38
+ id: 'on_init'
39
+ };
40
+ }
41
+ setup() {
42
+ super.setup();
43
+ this.innerCanvas.view.frame.update({
44
+ width: this.view.frame.width,
45
+ height: this.view.frame.height
46
+ });
47
+ this.innerCanvas.update({
48
+ screenEventHandler: ScreenEventHandler.Auto
49
+ });
50
+ this.innerCanvas.view.div.style['pointer-events'] = 'auto';
51
+ this.innerCanvas.view.div.id = this.id;
52
+ this.add(this.innerCanvas);
53
+ this.outerFrame.update({
54
+ width: this.view.frame.width,
55
+ height: this.view.frame.height,
56
+ screenEventHandler: ScreenEventHandler.Parent
57
+ });
58
+ this.add(this.outerFrame);
59
+ Object.assign(this.port, {
60
+ id: this.id,
61
+ width: this.view.frame.width,
62
+ height: this.view.frame.height,
63
+ started: false
64
+ });
65
+ this.controls.add(this.playButton);
66
+ this.playButton.update({
67
+ mobject: this
68
+ });
69
+ this.createScripts();
70
+ this.startCore();
71
+ }
72
+ createScripts() {
73
+ this.createInitScript();
74
+ this.createDrawScript();
75
+ this.createMouseMoveScript();
76
+ }
77
+ createInitScript() {
78
+ let initScript = document.createElement('script');
79
+ initScript.setAttribute('type', 'text/x-cindyscript');
80
+ initScript.setAttribute('id', `${this.id}init`);
81
+ initScript.textContent = this.initCode();
82
+ document.body.appendChild(initScript);
83
+ }
84
+ createDrawScript() {
85
+ let drawScript = document.createElement('script');
86
+ drawScript.setAttribute('type', 'text/x-cindyscript');
87
+ drawScript.setAttribute('id', `${this.id}draw`);
88
+ drawScript.textContent = this.drawCode();
89
+ document.body.appendChild(drawScript);
90
+ }
91
+ createMouseMoveScript() {
92
+ let mouseMoveScript = document.createElement('script');
93
+ mouseMoveScript.setAttribute('type', 'text/x-cindyscript');
94
+ mouseMoveScript.setAttribute('id', `${this.id}mousemove`);
95
+ mouseMoveScript.textContent = this.mouseMoveCode();
96
+ document.body.appendChild(mouseMoveScript);
97
+ }
98
+ initCode() {
99
+ return `resetclock();`;
100
+ }
101
+ drawCode() {
102
+ return `drawcmd();`;
103
+ }
104
+ mouseMoveCode() {
105
+ // do not redraw until I say so
106
+ return '';
107
+ }
108
+ play() {
109
+ if (!this.core.started) {
110
+ this.core.startup();
111
+ this.core.started = true;
112
+ }
113
+ this.core.play();
114
+ this.playState = 'play';
115
+ this.outerFrame.update({
116
+ screenEventHandler: ScreenEventHandler.Below
117
+ });
118
+ }
119
+ pause() {
120
+ this.core.pause();
121
+ this.playState = 'pause';
122
+ this.outerFrame.update({
123
+ screenEventHandler: ScreenEventHandler.Parent
124
+ });
125
+ }
126
+ togglePlayState() {
127
+ if (this.playState == 'play') {
128
+ this.pause();
129
+ }
130
+ else {
131
+ this.play();
132
+ }
133
+ }
134
+ stop() {
135
+ this.core.stop();
136
+ this.playState = 'stop';
137
+ this.outerFrame.update({
138
+ screenEventHandler: ScreenEventHandler.Self
139
+ });
140
+ }
141
+ geometry() { return []; }
142
+ setDragging(flag) {
143
+ super.setDragging(flag);
144
+ if (flag) {
145
+ this.outerFrame.update({
146
+ screenEventHandler: ScreenEventHandler.Parent
147
+ });
148
+ }
149
+ else {
150
+ this.outerFrame.update({
151
+ screenEventHandler: ScreenEventHandler.Below
152
+ });
153
+ }
154
+ }
155
+ startCore() {
156
+ this.core = CindyJS.newInstance({
157
+ scripts: `${this.id}*`,
158
+ animation: { autoplay: false },
159
+ ports: [this.port],
160
+ geometry: this.geometry()
161
+ });
162
+ }
163
+ reload(args = {}) {
164
+ let initScript = document.querySelector(`#${this.id}init`);
165
+ initScript.textContent = this.initCode();
166
+ let drawScript = document.querySelector(`#${this.id}draw`);
167
+ drawScript.textContent = this.drawCode();
168
+ let mouseMoveScript = document.querySelector(`#${this.id}mousemove`);
169
+ mouseMoveScript.textContent = this.mouseMoveCode();
170
+ this.startCore();
171
+ }
172
+ }
173
+ //# sourceMappingURL=CindyCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CindyCanvas.js","sourceRoot":"","sources":["../../../src/apis/cindyjs/CindyCanvas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { APILoader } from '../APILoader.js';
2
+ export declare class CindyLoader extends APILoader {
3
+ load(): void;
4
+ onload(): void;
5
+ }
6
+ //# sourceMappingURL=CindyLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CindyLoader.d.ts","sourceRoot":"","sources":["../../../src/apis/cindyjs/CindyLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,qBAAa,WAAY,SAAQ,SAAS;IAEzC,IAAI;IAuBJ,MAAM;CAIN"}
@@ -0,0 +1,26 @@
1
+ import { APILoader } from '../APILoader.js';
2
+ import { getPaper } from '../../paper/getPaper.js';
3
+ export class CindyLoader extends APILoader {
4
+ load() {
5
+ this.update({
6
+ status: 'loading'
7
+ });
8
+ let scriptTag1 = document.createElement('script');
9
+ scriptTag1.type = 'text/javascript';
10
+ scriptTag1.src = '../node_modules/cindyjs/build/js/Cindy.js';
11
+ let scriptTag2 = document.createElement('script');
12
+ scriptTag2.type = 'text/javascript';
13
+ scriptTag2.src = '../node_modules/cindyjs/build/js/CindyGL.js';
14
+ scriptTag2.onload = function () {
15
+ this.onload();
16
+ getPaper().loadedAPI(this);
17
+ }.bind(this);
18
+ scriptTag1.onload = function () {
19
+ document.head.append(scriptTag2);
20
+ }.bind(this);
21
+ document.head.append(scriptTag1);
22
+ }
23
+ onload() {
24
+ }
25
+ }
26
+ //# sourceMappingURL=CindyLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CindyLoader.js","sourceRoot":"","sources":["../../../src/apis/cindyjs/CindyLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,MAAM,OAAO,WAAY,SAAQ,SAAS;IAEzC,IAAI;QACH,IAAI,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,SAAS;SACjB,CAAC,CAAA;QAEF,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,UAAU,CAAC,IAAI,GAAG,iBAAiB,CAAA;QACnC,UAAU,CAAC,GAAG,GAAG,2CAA2C,CAAA;QAC5D,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,UAAU,CAAC,IAAI,GAAG,iBAAiB,CAAA;QACnC,UAAU,CAAC,GAAG,GAAG,6CAA6C,CAAA;QAC9D,UAAU,CAAC,MAAM,GAAG;YACnB,IAAI,CAAC,MAAM,EAAE,CAAA;YACb,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,UAAU,CAAC,MAAM,GAAG;YACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC;IAED,MAAM;IAEN,CAAC;CAED"}
@@ -0,0 +1,32 @@
1
+ import { Linkable } from '../../linkables/Linkable.js';
2
+ import { Mobject } from '../../mobjects/Mobject.js';
3
+ import { Rectangle } from '../../shapes/Rectangle.js';
4
+ export declare class DesmosCalculator extends Linkable {
5
+ calculator: any;
6
+ clippingCanvas: Mobject;
7
+ innerCanvas: Mobject;
8
+ outerFrame: Rectangle;
9
+ options: object;
10
+ expressions: object;
11
+ secretInputExpressions: object;
12
+ outputHelperExpressions: object;
13
+ updating: boolean;
14
+ minWidth: number;
15
+ minHeight: number;
16
+ defaults(): object;
17
+ setup(): void;
18
+ setupCanvases(): void;
19
+ setupOuterFrame(): void;
20
+ ensureMinimumFrameSize(): void;
21
+ layoutFrames(): void;
22
+ layoutContent(): void;
23
+ createCalculator(options?: object): void;
24
+ focus(): void;
25
+ boundFocus(): void;
26
+ blur(): void;
27
+ setDragging(flag: boolean): void;
28
+ onChange(eventName: string, event: object): void;
29
+ showKeypad(): void;
30
+ hideKeypad(): void;
31
+ }
32
+ //# sourceMappingURL=DesmosCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesmosCalculator.d.ts","sourceRoot":"","sources":["../../../src/apis/desmos/DesmosCalculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAOrD,qBAAa,gBAAiB,SAAQ,QAAQ;IAE7C,UAAU,EAAE,GAAG,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,SAAS,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IAEjB,QAAQ,IAAI,MAAM;IAsBlB,KAAK;IAUL,aAAa;IAcb,eAAe;IAQf,sBAAsB;IAetB,YAAY;IAiBZ,aAAa;IAEb,gBAAgB,CAAC,OAAO,GAAE,MAAW;IAMrC,KAAK;IAYL,UAAU;IAEV,IAAI;IAOJ,WAAW,CAAC,IAAI,EAAE,OAAO;IAazB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAEzC,UAAU;IAIV,UAAU;CAUV"}
@@ -0,0 +1,130 @@
1
+ import { Linkable } from '../../linkables/Linkable.js';
2
+ import { View } from '../../views/View.js';
3
+ import { Mobject } from '../../mobjects/Mobject.js';
4
+ import { ScreenEventHandler } from '../../mobjects/screen_events.js';
5
+ import { Rectangle } from '../../shapes/Rectangle.js';
6
+ import { Color } from '../../views/Color.js';
7
+ export class DesmosCalculator extends Linkable {
8
+ defaults() {
9
+ return {
10
+ view: new View({
11
+ div: document.createElement('div'),
12
+ frameWidth: 800,
13
+ frameHeight: 500
14
+ }),
15
+ screenEventHandler: ScreenEventHandler.Self,
16
+ calculator: null,
17
+ options: {},
18
+ clippingCanvas: new Mobject(),
19
+ innerCanvas: new Mobject(),
20
+ outerFrame: new Rectangle({ strokeWidth: 0 }),
21
+ expressions: {},
22
+ secretInputExpressions: {},
23
+ outputHelperExpressions: {},
24
+ updating: false,
25
+ minWidth: 100,
26
+ minHeight: 100
27
+ };
28
+ }
29
+ setup() {
30
+ super.setup();
31
+ this.setupCanvases();
32
+ this.setupOuterFrame();
33
+ this.boundFocus = this.focus.bind(this);
34
+ this.ensureMinimumFrameSize();
35
+ this.layoutFrames();
36
+ this.createCalculator();
37
+ }
38
+ setupCanvases() {
39
+ this.innerCanvas.update({
40
+ screenEventHandler: ScreenEventHandler.Auto
41
+ });
42
+ this.clippingCanvas.add(this.innerCanvas);
43
+ this.add(this.clippingCanvas);
44
+ this.clippingCanvas.view.div.style.overflow = 'hidden';
45
+ this.innerCanvas.view.div.style['pointer-events'] = 'auto';
46
+ window.setTimeout(function () {
47
+ this.innerCanvas.view.div.addEventListener('click', this.boundFocus);
48
+ }.bind(this), 100);
49
+ }
50
+ setupOuterFrame() {
51
+ this.add(this.outerFrame);
52
+ this.outerFrame.update({
53
+ screenEventHandler: ScreenEventHandler.Below
54
+ });
55
+ this.outerFrame.view.div.id = 'outerFrame';
56
+ }
57
+ ensureMinimumFrameSize() {
58
+ var changedFrame = false;
59
+ if (this.frameWidth < this.minWidth) {
60
+ this.update({ frameWidth: this.minWidth });
61
+ changedFrame = true;
62
+ }
63
+ if (this.frameHeight < this.minHeight) {
64
+ this.update({ frameHeight: this.minHeight });
65
+ changedFrame = true;
66
+ }
67
+ if (changedFrame) {
68
+ this.layoutFrames();
69
+ }
70
+ }
71
+ layoutFrames() {
72
+ this.clippingCanvas.update({
73
+ frameWidth: this.frameWidth,
74
+ frameHeight: this.frameHeight
75
+ });
76
+ this.innerCanvas.update({
77
+ frameWidth: this.frameWidth,
78
+ frameHeight: this.frameHeight
79
+ });
80
+ this.outerFrame.update({
81
+ width: this.frameWidth,
82
+ height: this.frameHeight,
83
+ strokeColor: Color.gray(0.5),
84
+ strokeWidth: 1
85
+ });
86
+ }
87
+ layoutContent() { }
88
+ createCalculator(options = {}) {
89
+ this.calculator = Desmos.GraphingCalculator(this.innerCanvas.view.div, this.options);
90
+ this.calculator.observeEvent('change', this.onChange.bind(this));
91
+ window.setTimeout(this.layoutContent.bind(this), 50);
92
+ }
93
+ focus() {
94
+ super.focus();
95
+ this.calculator.openKeypad();
96
+ this.innerCanvas.view.div.removeEventListener('click', this.boundFocus);
97
+ this.board.onTap = ((e) => {
98
+ this.blur();
99
+ }).bind(this);
100
+ this.board.onMouseClick = ((e) => {
101
+ this.blur();
102
+ }).bind(this);
103
+ }
104
+ boundFocus() { }
105
+ blur() {
106
+ super.blur();
107
+ let area = this.view.div.querySelector('.dcg-mq-textarea').querySelector('textarea');
108
+ area.blur();
109
+ this.innerCanvas.view.div.querySelector('.dcg-dom-change-wrapper').addEventListener('click', this.boundFocus);
110
+ }
111
+ setDragging(flag) {
112
+ super.setDragging(flag);
113
+ if (flag) {
114
+ this.outerFrame.update({
115
+ screenEventHandler: ScreenEventHandler.Parent
116
+ });
117
+ }
118
+ else {
119
+ this.outerFrame.update({
120
+ screenEventHandler: ScreenEventHandler.Below
121
+ });
122
+ }
123
+ }
124
+ onChange(eventName, event) { }
125
+ showKeypad() {
126
+ this.calculator.openKeypad();
127
+ }
128
+ hideKeypad() { }
129
+ }
130
+ //# sourceMappingURL=DesmosCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesmosCalculator.js","sourceRoot":"","sources":["../../../src/apis/desmos/DesmosCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { APILoader } from '../APILoader.js';
2
+ export declare class DesmosLoader extends APILoader {
3
+ load(): void;
4
+ }
5
+ //# sourceMappingURL=DesmosLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesmosLoader.d.ts","sourceRoot":"","sources":["../../../src/apis/desmos/DesmosLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,qBAAa,YAAa,SAAQ,SAAS;IAE1C,IAAI;CAaJ"}
@@ -0,0 +1,17 @@
1
+ import { APILoader } from '../APILoader.js';
2
+ import { getPaper } from '../../paper/getPaper.js';
3
+ export class DesmosLoader extends APILoader {
4
+ load() {
5
+ this.update({
6
+ status: 'loading'
7
+ });
8
+ let scriptTag = document.createElement('script');
9
+ scriptTag.type = 'text/javascript';
10
+ scriptTag.src = 'https://www.desmos.com/api/v1.10/calculator.js?apiKey=dcb31709b452b1cf9dc26972add0fda6';
11
+ scriptTag.onload = function () {
12
+ getPaper().loadedAPI(this);
13
+ }.bind(this);
14
+ document.head.append(scriptTag);
15
+ }
16
+ }
17
+ //# sourceMappingURL=DesmosLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesmosLoader.js","sourceRoot":"","sources":["../../../src/apis/desmos/DesmosLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,MAAM,OAAO,YAAa,SAAQ,SAAS;IAE1C,IAAI;QACH,IAAI,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,SAAS;SACjB,CAAC,CAAA;QACF,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAChD,SAAS,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAClC,SAAS,CAAC,GAAG,GAAG,wFAAwF,CAAA;QACxG,SAAS,CAAC,MAAM,GAAG;YAClB,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;CAED"}
@@ -0,0 +1,29 @@
1
+ import { ScreenEvent } from '../../mobjects/screen_events.js';
2
+ import { Mobject } from '../../mobjects/Mobject.js';
3
+ export declare class MathQuillInputField extends Mobject {
4
+ MQ: any;
5
+ mathField: any;
6
+ mathFieldLoadingID: number | null;
7
+ span: HTMLSpanElement | null;
8
+ initialTeX: string;
9
+ defaults(): object;
10
+ get tex(): string;
11
+ set tex(newValue: string);
12
+ setup(): void;
13
+ mathFieldWidth(): number;
14
+ createMathField(): void;
15
+ checkIfMathFieldLoaded(): void;
16
+ mathFieldIsLoaded(): boolean;
17
+ onMathFieldLoaded(): void;
18
+ onPointerDown(e: ScreenEvent): void;
19
+ activateKeyboard(): void;
20
+ boundActivateKeyboard(): void;
21
+ deactivateKeyboard(): void;
22
+ boundDeactivateKeyboard(): void;
23
+ boundKeyPressed(e: ScreenEvent): void;
24
+ keyPressed(e: KeyboardEvent): void;
25
+ focus(): void;
26
+ blur(): void;
27
+ updateLayout(): void;
28
+ }
29
+ //# sourceMappingURL=MathQuillInputField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathQuillInputField.d.ts","sourceRoot":"","sources":["../../../src/apis/mathquill/MathQuillInputField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,WAAW,EAAiB,MAAM,iCAAiC,CAAA;AAKhG,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAKnD,qBAAa,mBAAoB,SAAQ,OAAO;IAE/C,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,EAAE,GAAG,CAAA;IACd,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAElB,QAAQ,IAAI,MAAM;IAalB,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAMvB;IAED,KAAK;IASL,cAAc,IAAI,MAAM;IAKxB,eAAe;IA4Bf,sBAAsB;IAQtB,iBAAiB,IAAI,OAAO;IAI5B,iBAAiB;IAKjB,aAAa,CAAC,CAAC,EAAE,WAAW;IAI5B,gBAAgB;IAOhB,qBAAqB;IAErB,kBAAkB;IAMlB,uBAAuB;IAEvB,eAAe,CAAC,CAAC,EAAE,WAAW;IAE9B,UAAU,CAAC,CAAC,EAAE,aAAa;IAO3B,KAAK;IAQL,IAAI;IAQJ,YAAY;CASZ"}
@@ -0,0 +1,129 @@
1
+ import { ScreenEventHandler } from '../../mobjects/screen_events.js';
2
+ import { getPaper } from '../../paper/getPaper.js';
3
+ import { getSidebar } from '../../sidebar/getSidebar.js';
4
+ import { Mobject } from '../../mobjects/Mobject.js';
5
+ import { Color } from '../../views/Color.js';
6
+ export class MathQuillInputField extends Mobject {
7
+ defaults() {
8
+ return {
9
+ frameWidth: 100,
10
+ frameHeight: 50,
11
+ screenEventHandler: ScreenEventHandler.Self,
12
+ MQ: null,
13
+ mathField: null,
14
+ mathFieldLoadingID: null,
15
+ span: null,
16
+ initialTeX: ' '
17
+ };
18
+ }
19
+ get tex() {
20
+ return this.mathFieldIsLoaded() ? this.mathField.latex() : this.initialTeX;
21
+ }
22
+ set tex(newValue) {
23
+ if (this.mathFieldIsLoaded()) {
24
+ this.mathField.write(newValue);
25
+ }
26
+ else {
27
+ this.initialTeX = newValue;
28
+ }
29
+ }
30
+ setup() {
31
+ super.setup();
32
+ this.createMathField();
33
+ this.boundKeyPressed = this.keyPressed.bind(this);
34
+ this.view.div.addEventListener('keydown', this.boundKeyPressed.bind(this));
35
+ }
36
+ mathFieldWidth() {
37
+ if (!this.span) {
38
+ return 0;
39
+ }
40
+ return this.span.clientWidth;
41
+ }
42
+ createMathField() {
43
+ this.MQ = MathQuill.getInterface(2);
44
+ let mob = new Mobject();
45
+ this.addDependency('frameWidth', mob, 'frameWidth');
46
+ this.addDependency('frameHeight', mob, 'frameHeight');
47
+ let p = document.createElement('p');
48
+ this.span = document.createElement('span');
49
+ this.span.style.color = 'white';
50
+ this.span.style.fontSize = '28px';
51
+ this.span.style.backgroundColor = Color.black().toCSS();
52
+ this.span.style.border = '2px solid white';
53
+ this.span.style.width = '200px';
54
+ p.append(this.span);
55
+ mob.view.div.append(p);
56
+ this.add(mob);
57
+ this.mathField = this.MQ.MathField(this.span, {
58
+ handlers: {
59
+ edit: this.updateLayout.bind(this)
60
+ }
61
+ });
62
+ this.mathFieldLoadingID = window.setInterval(this.checkIfMathFieldLoaded.bind(this), 100);
63
+ this.update({
64
+ frameWidth: this.span.clientWidth,
65
+ frameHeight: this.span.clientHeight
66
+ });
67
+ }
68
+ checkIfMathFieldLoaded() {
69
+ if (this.mathField) {
70
+ window.clearInterval(this.mathFieldLoadingID);
71
+ this.mathFieldLoadingID = null;
72
+ this.onMathFieldLoaded();
73
+ }
74
+ }
75
+ mathFieldIsLoaded() {
76
+ return this.mathField && this.mathFieldLoadingID === null;
77
+ }
78
+ onMathFieldLoaded() {
79
+ this.mathField.write(this.initialTeX);
80
+ this.initialTeX = '';
81
+ }
82
+ onPointerDown(e) {
83
+ this.focus();
84
+ }
85
+ activateKeyboard() {
86
+ getPaper().activeKeyboard = false;
87
+ for (let button of getSidebar().buttons) {
88
+ button.activeKeyboard = false;
89
+ }
90
+ }
91
+ boundActivateKeyboard() { }
92
+ deactivateKeyboard() {
93
+ getPaper().activeKeyboard = true;
94
+ for (let button of getSidebar().buttons) {
95
+ button.activeKeyboard = true;
96
+ }
97
+ }
98
+ boundDeactivateKeyboard() { }
99
+ boundKeyPressed(e) { }
100
+ keyPressed(e) {
101
+ this.updateLayout();
102
+ if (e.key == '13' || e.key == 'Enter' || e.key == 'Return') {
103
+ this.blur();
104
+ }
105
+ }
106
+ focus() {
107
+ super.focus();
108
+ this.mathField.focus();
109
+ this.activateKeyboard();
110
+ getPaper().sensor.savedOnPointerUp = getPaper().sensor.onPointerUp;
111
+ getPaper().sensor.onPointerUp = this.blur.bind(this);
112
+ }
113
+ blur() {
114
+ super.blur();
115
+ this.mathField.blur();
116
+ this.deactivateKeyboard();
117
+ getPaper().sensor.onPointerUp = getPaper().sensor.savedOnPointerUp;
118
+ getPaper().sensor.savedOnPointerUp = function (e) { };
119
+ }
120
+ updateLayout() {
121
+ if (this.span) {
122
+ this.update({
123
+ frameWidth: this.span.clientWidth,
124
+ frameHeight: this.span.clientHeight + 30
125
+ });
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=MathQuillInputField.js.map